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