Loading...
Searching...
No Matches
InputSoundFile.hpp
Go to the documentation of this file.
1
2//
3// SFML - Simple and Fast Multimedia Library
4// Copyright (C) 2007-2015 Laurent Gomila (laurent@sfml-dev.org)
5//
6// This software is provided 'as-is', without any express or implied warranty.
7// In no event will the authors be held liable for any damages arising from the use of this software.
8//
9// Permission is granted to anyone to use this software for any purpose,
10// including commercial applications, and to alter it and redistribute it freely,
11// subject to the following restrictions:
12//
13// 1. The origin of this software must not be misrepresented;
14// you must not claim that you wrote the original software.
15// If you use this software in a product, an acknowledgment
16// in the product documentation would be appreciated but is not required.
17//
18// 2. Altered source versions must be plainly marked as such,
19// and must not be misrepresented as being the original software.
20//
21// 3. This notice may not be removed or altered from any source distribution.
22//
24
25#ifndef SFML_INPUTSOUNDFILE_HPP
26#define SFML_INPUTSOUNDFILE_HPP
27
29// Headers
31#include <SFML/Audio/Export.hpp>
33#include <SFML/System/Time.hpp>
34#include <string>
35
36
37namespace sf
38{
39class InputStream;
40class SoundFileReader;
41
47{
48public:
49
55
61
72 bool openFromFile(const std::string& filename);
73
85 bool openFromMemory(const void* data, std::size_t sizeInBytes);
86
98
109 bool openForWriting(const std::string& filename, unsigned int channelCount, unsigned int sampleRate);
110
118
125 unsigned int getChannelCount() const;
126
133 unsigned int getSampleRate() const;
134
145
159 void seek(Uint64 sampleOffset);
160
173 void seek(Time timeOffset);
174
184 Uint64 read(Int16* samples, Uint64 maxCount);
185
186private:
187
192 void close();
193
195 // Member data
197 SoundFileReader* m_reader;
198 InputStream* m_stream;
199 bool m_streamOwned;
200 Uint64 m_sampleCount;
201 unsigned int m_channelCount;
202 unsigned int m_sampleRate;
203};
204
205} // namespace sf
206
207
208#endif // SFML_INPUTSOUNDFILE_HPP
209
210
#define SFML_AUDIO_API
~InputSoundFile()
Destructor.
bool openFromStream(InputStream &stream)
Open a sound file from a custom stream for reading.
InputSoundFile()
Default constructor.
bool openFromMemory(const void *data, std::size_t sizeInBytes)
Open a sound file in memory for reading.
unsigned int getChannelCount() const
Get the number of channels used by the sound.
Uint64 getSampleCount() const
Get the total number of audio samples in the file.
unsigned int getSampleRate() const
Get the sample rate of the sound.
Uint64 read(Int16 *samples, Uint64 maxCount)
Read audio samples from the open file.
bool openForWriting(const std::string &filename, unsigned int channelCount, unsigned int sampleRate)
Open the sound file from the disk for writing.
void seek(Time timeOffset)
Change the current read position to the given time offset.
Time getDuration() const
Get the total duration of the sound file.
void seek(Uint64 sampleOffset)
Change the current read position to the given sample offset.
bool openFromFile(const std::string &filename)
Open a sound file from the disk for reading.
Abstract class for custom file input streams.
NonCopyable()
Default constructor.
Abstract base class for sound file decoding.
Represents a time value.
Definition Time.hpp:41
signed short Int16
Definition Config.hpp:174
unsigned long long Uint64
Definition Config.hpp:187