]> git.sesse.net Git - casparcg/blob - SFML-1.6/include/SFML/Audio/SoundBufferRecorder.hpp
(no commit message)
[casparcg] / SFML-1.6 / include / SFML / Audio / SoundBufferRecorder.hpp
1 ////////////////////////////////////////////////////////////\r
2 //\r
3 // SFML - Simple and Fast Multimedia Library\r
4 // Copyright (C) 2007-2009 Laurent Gomila (laurent.gom@gmail.com)\r
5 //\r
6 // This software is provided 'as-is', without any express or implied warranty.\r
7 // In no event will the authors be held liable for any damages arising from the use of this software.\r
8 //\r
9 // Permission is granted to anyone to use this software for any purpose,\r
10 // including commercial applications, and to alter it and redistribute it freely,\r
11 // subject to the following restrictions:\r
12 //\r
13 // 1. The origin of this software must not be misrepresented;\r
14 //    you must not claim that you wrote the original software.\r
15 //    If you use this software in a product, an acknowledgment\r
16 //    in the product documentation would be appreciated but is not required.\r
17 //\r
18 // 2. Altered source versions must be plainly marked as such,\r
19 //    and must not be misrepresented as being the original software.\r
20 //\r
21 // 3. This notice may not be removed or altered from any source distribution.\r
22 //\r
23 ////////////////////////////////////////////////////////////\r
24 \r
25 #ifndef SFML_SOUNDBUFFERRECORDER_HPP\r
26 #define SFML_SOUNDBUFFERRECORDER_HPP\r
27 \r
28 ////////////////////////////////////////////////////////////\r
29 // Headers\r
30 ////////////////////////////////////////////////////////////\r
31 #include <SFML/Audio/SoundBuffer.hpp>\r
32 #include <SFML/Audio/SoundRecorder.hpp>\r
33 #include <vector>\r
34 \r
35 \r
36 namespace sf\r
37 {\r
38 ////////////////////////////////////////////////////////////\r
39 /// Specialized SoundRecorder which saves the captured\r
40 /// audio data into a sound buffer\r
41 ////////////////////////////////////////////////////////////\r
42 class SFML_API SoundBufferRecorder : public SoundRecorder\r
43 {\r
44 public :\r
45 \r
46     ////////////////////////////////////////////////////////////\r
47     /// Get the sound buffer containing the captured audio data\r
48     ///\r
49     /// \return Constant reference to the sound buffer\r
50     ///\r
51     ////////////////////////////////////////////////////////////\r
52     const SoundBuffer& GetBuffer() const;\r
53 \r
54 private :\r
55 \r
56     ////////////////////////////////////////////////////////////\r
57     /// /see SoundBuffer::OnStart\r
58     ///\r
59     ////////////////////////////////////////////////////////////\r
60     virtual bool OnStart();\r
61 \r
62     ////////////////////////////////////////////////////////////\r
63     /// /see SoundBuffer::OnProcessSamples\r
64     ///\r
65     ////////////////////////////////////////////////////////////\r
66     virtual bool OnProcessSamples(const Int16* Samples, std::size_t SamplesCount);\r
67 \r
68     ////////////////////////////////////////////////////////////\r
69     /// /see SoundBuffer::OnStop\r
70     ///\r
71     ////////////////////////////////////////////////////////////\r
72     virtual void OnStop();\r
73 \r
74     ////////////////////////////////////////////////////////////\r
75     // Member data\r
76     ////////////////////////////////////////////////////////////\r
77     std::vector<Int16> mySamples; ///< Temporary sample buffer to hold the recorded data\r
78     SoundBuffer        myBuffer;  ///< Sound buffer that will contain the recorded data\r
79 };\r
80 \r
81 } // namespace sf\r
82 \r
83 #endif // SFML_SOUNDBUFFERRECORDER_HPP\r