Loading...
Searching...
No Matches
Music.hpp
Go to the documentation of this file.
1
2//
3// SFML - Simple and Fast Multimedia Library
4// Copyright (C) 2007-2013 Laurent Gomila (laurent.gom@gmail.com)
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_MUSIC_HPP
26#define SFML_MUSIC_HPP
27
29// Headers
31#include <SFML/Audio/Export.hpp>
33#include <SFML/System/Mutex.hpp>
34#include <SFML/System/Time.hpp>
35#include <string>
36#include <vector>
37
38
39namespace sf
40{
41namespace priv
42{
43 class SoundFile;
44}
45
46class InputStream;
47
53{
54public :
55
61
67
84 bool openFromFile(const std::string& filename);
85
107 bool openFromMemory(const void* data, std::size_t sizeInBytes);
108
130
138
139protected :
140
152 virtual bool onGetData(Chunk& data);
153
160 virtual void onSeek(Time timeOffset);
161
162private :
163
168 void initialize();
169
171 // Member data
173 priv::SoundFile* m_file;
174 Time m_duration;
175 std::vector<Int16> m_samples;
176 Mutex m_mutex;
177};
178
179} // namespace sf
180
181
182#endif // SFML_MUSIC_HPP
183
184
#define SFML_AUDIO_API
Abstract class for custom file input streams.
Music()
Default constructor.
virtual void onSeek(Time timeOffset)
Change the current playing position in the stream source.
Time getDuration() const
Get the total duration of the music.
bool openFromFile(const std::string &filename)
Open a music from an audio file.
~Music()
Destructor.
bool openFromStream(InputStream &stream)
Open a music from an audio file in a custom stream.
virtual bool onGetData(Chunk &data)
Request a new chunk of audio samples from the stream source.
bool openFromMemory(const void *data, std::size_t sizeInBytes)
Open a music from an audio file in memory.
Blocks concurrent access to shared resources from multiple threads.
Definition Mutex.hpp:48
SoundStream()
Default constructor.
Represents a time value.
Definition Time.hpp:41
Structure defining a chunk of audio data to stream.