00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00024
00025 #ifndef SFML_SOUNDRECORDER_HPP
00026 #define SFML_SOUNDRECORDER_HPP
00027
00029
00031 #include <SFML/System/Thread.hpp>
00032 #include <vector>
00033
00034
00039 class SFML_API sfSoundRecorder : private sfThread
00040 {
00041 public :
00042
00047 sfSoundRecorder();
00048
00053 virtual ~sfSoundRecorder();
00054
00063 void Start(unsigned int SampleRate = 44100);
00064
00069 void Stop();
00070
00077 unsigned int GetSampleRate() const;
00078
00086 static bool CanCapture();
00087
00088 private :
00089
00099 virtual bool ProcessSamples(const sfInt16* Samples, std::size_t SamplesCount) = 0;
00100
00105 virtual void Run();
00106
00111 void ProcessCapturedSamples();
00112
00117 void CleanUp();
00118
00120
00122 std::vector<sfInt16> mySamples;
00123 unsigned int mySampleRate;
00124 bool myIsCapturing;
00125 };
00126
00127
00128 #endif // SFML_SOUNDRECORDER_HPP