00001
00002
00003
00004
00005
00006
00007
00008
00009
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029 #ifndef __SOUND_SERVER_H__
00030 #define __SOUND_SERVER_H__
00031
00033
00034
00035
00036
00037
00038 #define MaxVolume 255
00039 #define SOUND_BUFFER_SIZE 65536
00040
00044 class CSample {
00045 public:
00046 CSample() : Channels(0), SampleSize(0), Frequency(0), BitsPerSample(0),
00047 Buffer(NULL), Pos(0), Len(0) {}
00048 virtual ~CSample() {}
00049
00050 virtual int Read(void *buf, int len) = 0;
00051
00052 unsigned char Channels;
00053 unsigned char SampleSize;
00054 unsigned int Frequency;
00055 unsigned short BitsPerSample;
00056
00057 unsigned char *Buffer;
00058 int Pos;
00059 int Len;
00060 };
00061
00065 enum _play_audio_flags_ {
00066 PlayAudioStream = 1,
00067 PlayAudioPreLoad = 2,
00068 PlayAudioLoadInMemory = 4,
00069 PlayAudioLoadOnDemand = 8,
00070 };
00071
00072
00073
00074
00075
00076 extern CSample *LoadWav(const std::string &name, int flags);
00077 extern CSample *LoadVorbis(const std::string &name, int flags);
00078
00080 extern int SetChannelVolume(int channel, int volume);
00082 extern int SetChannelStereo(int channel, int stereo);
00084 extern void SetChannelFinishedCallback(int channel, void (*callback)(int channel));
00086 extern CSample *GetChannelSample(int channel);
00088 extern void StopChannel(int channel);
00090 extern void StopAllChannels();
00091
00093 extern CSample *LoadSample(const std::string &name);
00095 extern int PlaySample(CSample *sample);
00097 extern int PlaySoundFile(const std::string &name);
00098
00100 extern void SetEffectsVolume(int volume);
00102 extern int GetEffectsVolume(void);
00104 extern void SetEffectsEnabled(bool enabled);
00106 extern bool IsEffectsEnabled(void);
00107
00109 void SetMusicFinishedCallback(void (*callback)(void));
00111 extern int PlayMusic(CSample *sample);
00113 extern int PlayMusic(const std::string &file);
00115 extern void StopMusic(void);
00117 extern void SetMusicVolume(int volume);
00119 extern int GetMusicVolume(void);
00121 extern void SetMusicEnabled(bool enabled);
00123 extern bool IsMusicEnabled(void);
00125 extern bool IsMusicPlaying(void);
00126
00128 extern bool SoundEnabled(void);
00130 extern int InitSound(void);
00132 extern void QuitSound(void);
00133
00135
00136 #endif // !__SOUND_SERVER_H__