00001 #ifndef AUDIOOUTPUTJACK 00002 #define AUDIOOUTPUTJACK 00003 00004 #include <vector> 00005 #include <qstring.h> 00006 #include <qmutex.h> 00007 00008 #include "audiooutputbase.h" 00009 00010 using namespace std; 00011 00012 class AudioOutputJACK : public AudioOutputBase 00013 { 00014 public: 00015 AudioOutputJACK(QString laudio_main_device, 00016 QString laudio_passthru_device, 00017 int laudio_bits, 00018 int laudio_channels, int laudio_samplerate, 00019 AudioOutputSource lsource, 00020 bool lset_initial_vol, bool laudio_passthru); 00021 virtual ~AudioOutputJACK(); 00022 00023 // Volume control 00024 virtual int GetVolumeChannel(int channel); // Returns 0-100 00025 virtual void SetVolumeChannel(int channel, int volume); // range 0-100 for vol 00026 00027 protected: 00028 00029 // You need to implement the following functions 00030 virtual bool OpenDevice(void); 00031 virtual void CloseDevice(void); 00032 virtual void WriteAudio(unsigned char *aubuf, int size); 00033 virtual inline int getSpaceOnSoundcard(void); 00034 virtual inline int getBufferedOnSoundcard(void); 00035 00036 private: 00037 00038 void VolumeInit(void); 00039 00040 int audioid; 00041 00042 }; 00043 00044 #endif 00045
1.5.5