00001 #ifndef AUDIOOUTPUTOSS 00002 #define AUDIOOUTPUTOSS 00003 00004 #include "audiooutputbase.h" 00005 00006 using namespace std; 00007 00008 00009 class AudioOutputOSS : public AudioOutputBase 00010 { 00011 public: 00012 AudioOutputOSS(const AudioSettings &settings); 00013 virtual ~AudioOutputOSS(); 00014 00015 // Volume control 00016 virtual int GetVolumeChannel(int channel) const; 00017 virtual void SetVolumeChannel(int channel, int volume); 00018 00019 protected: 00020 // You need to implement the following functions 00021 virtual bool OpenDevice(void); 00022 virtual void CloseDevice(void); 00023 virtual void WriteAudio(unsigned char *aubuf, int size); 00024 virtual int GetBufferedOnSoundcard(void) const; 00025 AudioOutputSettings* GetOutputSettings(bool digital); 00026 00027 private: 00028 void VolumeInit(void); 00029 void VolumeCleanup(void); 00030 00031 void SetFragSize(void); 00032 00033 int audiofd; 00034 mutable int numbadioctls; 00035 00036 // Volume related 00037 int mixerfd; 00038 int control; 00039 }; 00040 00041 #endif 00042
1.6.3