The SL Mixer Library.By Steve Baker |
A port of SM to the Windows family of operating systems is currently underway.
SM does not work under SGI's IRIX.
Most programs will only ever create a single smMixer object.
Here are the member functions:
class smMixer { public: smMixer () ; smMixer ( char *device ) ; ~smMixer () ; int not_working () ; /* Volume/Treble/Bass controls are in integer percentages */ void setTreble ( int treble ) ; void setBass ( int bass ) ; void setMasterVolume ( int volume ) ; void setSynthVolume ( int volume ) ; void setPCMVolume ( int volume ) ; void setSpeakerVolume( int volume ) ; void setLineVolume ( int volume ) ; void setMicVolume ( int volume ) ; void setCDVolume ( int volume ) ; void setMasterVolume ( int left, int right ) ; void setSynthVolume ( int left, int right ) ; void setPCMVolume ( int left, int right ) ; void setSpeakerVolume( int left, int right ) ; void setLineVolume ( int left, int right ) ; void setMicVolume ( int left, int right ) ; void setCDVolume ( int left, int right ) ; } ;Basically, each of the mixer devices can be driven with either mono or stereo volume controls, each volume is a expressed as an integer percentage of maximum.
By default, "/dev/mixer" is the device used by this class, but an alternative device may be accessed if it's name is passed into the constructor.
The 'not_working()' function returns TRUE if there is any kind of problem with the driver. Mostly it returns TRUE if your system isn't set up for audio.
The driver will not fail if you call it's member functions when 'not_working()' returns TRUE - so programs written for audio should work OK even on Linux boxes with no audio support.
Steve J. Baker. <sjbaker1@airmail.net> |