1 #include "output-drv.hpp"
9 class output_driver_rawaudio
: public output_driver
12 output_driver_rawaudio(const std::string
& filename
)
15 out
= new std::ofstream(filename
.c_str(), std::ios_base::binary
);
19 throw std::runtime_error("Unable to open output file");
20 set_audio_callback
<output_driver_rawaudio
>(*this, &output_driver_rawaudio::audio_callback
);
23 ~output_driver_rawaudio()
33 void audio_callback(short left
, short right
)
36 rawdata
[1] = ((unsigned short)left
>> 8) & 0xFF;
37 rawdata
[0] = ((unsigned short)left
) & 0xFF;
38 rawdata
[3] = ((unsigned short)right
>> 8) & 0xFF;
39 rawdata
[2] = ((unsigned short)right
) & 0xFF;
40 out
->write((const char*)rawdata
, 4);
42 throw std::runtime_error("Error writing frame to file");
48 class output_driver_rawaudio_factory
: output_driver_factory
51 output_driver_rawaudio_factory()
52 : output_driver_factory("rawaudio")
56 output_driver
& make(const std::string
& type
, const std::string
& name
, const std::string
& parameters
)
59 throw std::runtime_error("rawaudio output does not take parameters");
60 return *new output_driver_rawaudio(name
);