- Main Page
- Namespaces
- Classes
- Files

- File List

# SoundBuffer.hpp

    00001
    00002 //
    00003 // SFML - Simple and Fast Multimedia Library
    00004 // Copyright (C) 2007-2009 Laurent Gomila (laurent.gom@gmail.com)
    00005 //
    00006 // This software is provided 'as-is', without any express or implied warranty.
    00007 // In no event will the authors be held liable for any damages arising from the use of this software.
    00008 //
    00009 // Permission is granted to anyone to use this software for any purpose,
    00010 // including commercial applications, and to alter it and redistribute it freely,
    00011 // subject to the following restrictions:
    00012 //
    00013 // 1. The origin of this software must not be misrepresented;
    00014 //    you must not claim that you wrote the original software.
    00015 //    If you use this software in a product, an acknowledgment
    00016 //    in the product documentation would be appreciated but is not required.
    00017 //
    00018 // 2. Altered source versions must be plainly marked as such,
    00019 //    and must not be misrepresented as being the original software.
    00020 //
    00021 // 3. This notice may not be removed or altered from any source distribution.
    00022 //
    00024
    00025 #ifndef SFML_SOUNDBUFFER_HPP
    00026 #define SFML_SOUNDBUFFER_HPP
    00027
    00029 // Headers
    00031 #include <SFML/System/Resource.hpp>
    00032 #include <SFML/Audio/AudioResource.hpp>
    00033 #include <string>
    00034 #include <vector>
    00035
    00036
    00037 namespace sf
    00038 {
    00043 class SFML_API SoundBuffer : public AudioResource, public Resource<SoundBuffer>
    00044 {
    00045 public :
    00046
    00051     SoundBuffer();
    00052
    00059     SoundBuffer(const SoundBuffer& Copy);
    00060
    00065     ~SoundBuffer();
    00066
    00075     bool LoadFromFile(const std::string& Filename);
    00076
    00086     bool LoadFromMemory(const char* Data, std::size_t SizeInBytes);
    00087
    00100     bool LoadFromSamples(const Int16* Samples, std::size_t SamplesCount, unsigned int ChannelsCount, unsigned int SampleRate);
    00101
    00110     bool SaveToFile(const std::string& Filename) const;
    00111
    00118     const Int16* GetSamples() const;
    00119
    00126     std::size_t GetSamplesCount() const;
    00127
    00134     unsigned int GetSampleRate() const;
    00135
    00142     unsigned int GetChannelsCount() const;
    00143
    00150     float GetDuration() const;
    00151
    00160     SoundBuffer& operator =(const SoundBuffer& Other);
    00161
    00162 private :
    00163
    00164     friend class Sound;
    00165
    00175     bool Update(unsigned int ChannelsCount, unsigned int SampleRate);
    00176
    00178     // Member data
    00180     unsigned int       myBuffer;
    00181     std::vector<Int16> mySamples;
    00182     float              myDuration;
    00183 };
    00184
    00185 } // namespace sf
    00186
    00187
    00188 #endif // SFML_SOUNDBUFFER_HPP

:: Copyright © 2007-2008 Laurent Gomila, all rights reserved :: Documentation generated by doxygen 1.5.2 ::