00001 #ifndef AUDIOOUTPUTOSS 00002 #define AUDIOOUTPUTOSS 00003 00004 #include <vector> 00005 #include <qstring.h> 00006 #include <qmutex.h> 00007 00008 #include "audiooutputbase.h" 00009 00010 using namespace std; 00011 00012 00013 class AudioOutputOSS : public AudioOutputBase 00014 { 00015 public: 00016 AudioOutputOSS(QString audiodevice, QString passthrudevice, 00017 int laudio_bits, 00018 int laudio_channels, int laudio_samplerate, 00019 AudioOutputSource source, bool set_initial_vol, 00020 bool laudio_passthru); 00021 virtual ~AudioOutputOSS(); 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 // You need to implement the following functions 00029 virtual bool OpenDevice(void); 00030 virtual void CloseDevice(void); 00031 virtual void WriteAudio(unsigned char *aubuf, int size); 00032 virtual inline int getSpaceOnSoundcard(void); 00033 virtual inline int getBufferedOnSoundcard(void); 00034 00035 private: 00036 void VolumeInit(void); 00037 void VolumeCleanup(void); 00038 00039 void SetFragSize(void); 00040 00041 int audiofd; 00042 int numbadioctls; 00043 00044 // Volume related 00045 int mixerfd; 00046 int control; 00047 00048 }; 00049 00050 #endif 00051
1.5.5