]> git.mxchange.org Git - simgear.git/blob - src/sm.h
Temporary destructor patch until Steve can release next version of PUI.
[simgear.git] / src / sm.h
1
2 #ifndef __SM_H__
3 #define __SM_H__ 1
4
5 #include "slPortability.h"
6
7 #ifdef SL_USING_OSS_AUDIO
8 #define SMMIXER_DEFAULT_DEVICE "/dev/mixer"
9 #elif defined(WIN32)
10 #define SMMIXER_DEFAULT_DEVICE "mixer"
11 #else
12 #endif
13
14
15 # define SM_TRUE  1
16 # define SM_FALSE 0
17
18 typedef unsigned char  Uchar  ;
19 typedef unsigned short Ushort ;
20
21
22 class smMixer
23 {
24 private:
25
26   int devices ;
27   int error ;
28   int fd ;
29
30 #ifdef SL_USING_OSS_AUDIO
31   static char *labels [] = SOUND_DEVICE_LABELS ;
32
33   int ioctl ( int cmd, int param = 0 )
34   {
35     if ( error ) return param ;
36
37     if ( ::ioctl ( fd, cmd, & param ) == -1 )
38     {
39       perror ( "smMixer: ioctl" ) ;
40       error = SM_TRUE ;
41     }
42
43     return param ;
44   }
45 #endif
46   void open ( char *device ) ;
47   void close () ;
48
49 public:
50
51   /* Tom */
52
53   smMixer ();
54   smMixer ( char *device );
55  ~smMixer ();
56   
57   int not_working ();
58
59   /* Volume controls are in integer percentages */
60
61   int  getVolume        ( int channel             );
62   void setVolume        ( int channel, int volume ); 
63
64   void getVolume        ( int channel, int *left, int *right );
65   void setVolume        ( int channel, int  left, int  right );
66
67   void setTreble       ( int treble );
68   void setBass         ( int bass   );
69
70   void setMasterVolume ( int volume );
71   void setSynthVolume  ( int volume );
72   void setPCMVolume    ( int volume );
73   void setSpeakerVolume( int volume );
74   void setLineVolume   ( int volume );
75   void setMicVolume    ( int volume );
76   void setCDVolume     ( int volume );
77
78   void setMasterVolume ( int left, int right );
79   void setSynthVolume  ( int left, int right );
80   void setPCMVolume    ( int left, int right );
81   void setSpeakerVolume( int left, int right );
82   void setLineVolume   ( int left, int right );
83   void setMicVolume    ( int left, int right );
84   void setCDVolume     ( int left, int right );
85 } ;
86
87 #endif
88