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 <SFML/Utilities/NonCopyable.hpp>
00033 #include <vector>
00034
00035
00040 class SFML_API sfSoundRecorder : private sfThread
00041 {
00042 public :
00043
00048 sfSoundRecorder();
00049
00054 virtual ~sfSoundRecorder();
00055
00064 void Start(unsigned int Frequency = 44100);
00065
00070 void Stop();
00071
00078 unsigned int GetFrequency() const;
00079
00087 static bool CanCapture();
00088
00089 private :
00090
00100 virtual bool ProcessSamples(const sfInt16* Samples, std::size_t SamplesCount) = 0;
00101
00106 virtual void Run();
00107
00112 void ProcessCapturedSamples();
00113
00118 void CleanUp();
00119
00121
00123 std::vector<sfInt16> mySamples;
00124 unsigned int myFrequency;
00125 bool myIsCapturing;
00126 };
00127
00128
00129 #endif // SFML_SOUNDRECORDER_HPP