Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008 #ifndef __SP_AUDIO_SOUND_WINMM_H__
00009 #define __SP_AUDIO_SOUND_WINMM_H__
00010
00011
00012 #include "Base/spStandard.hpp"
00013
00014 #if defined(SP_COMPILE_WITH_WINMM)
00015
00016
00017 #include "SoundSystem/spSound.hpp"
00018
00019
00020 namespace sp
00021 {
00022 namespace audio
00023 {
00024
00025
00026 class SP_EXPORT WinMMSound : public Sound
00027 {
00028
00029 public:
00030
00031 WinMMSound();
00032 ~WinMMSound();
00033
00034
00035
00036 bool reload(const io::stringc &Filename, u8 BufferCount = DEF_SOUND_BUFFERCOUNT);
00037 void close();
00038
00039 void play();
00040 void pause(bool Paused = true);
00041 void stop();
00042
00043 void setSeek(f32 Seek);
00044 f32 getSeek() const;
00045
00046 void setVolume(f32 Volume);
00047 void setSpeed(f32 Speed);
00048 void setBalance(f32 Balance);
00049
00050 f32 getLength() const;
00051 bool valid() const;
00052
00053 bool saveRecord(const io::stringc &Filename);
00054
00055 void beginRecording();
00056 void endRecording();
00057
00058 private:
00059
00060
00061
00062 static const f32 SOUND_VOLUME_HEIGHT;
00063 static const f32 SOUND_SPEED_HEIGHT;
00064 static const f32 SOUND_SEEK_HEIGHT;
00065
00066 static const s32 RECORD_BUFFER_SIZE = 128;
00067
00068
00069
00070 inline u32 getCurID() const
00071 {
00072 return ID_ + CurID_;
00073 }
00074
00075
00076
00077 void init();
00078
00079 void addIDCount();
00080
00081
00082
00083 u32 ID_, CurID_;
00084
00085 u32 RecID_;
00086 c8 RecBuffer_[RECORD_BUFFER_SIZE];
00087
00088 };
00089
00090
00091 }
00092
00093 }
00094
00095
00096 #endif
00097
00098 #endif
00099
00100
00101
00102