Learn
Download
Community
Development
Home
»
Learn
»
2.0 Documentation
»
Music.hpp Source File
Français
Donate
Documentation of SFML 2.0
Warning:
this page refers to an old version of SFML. Click here to switch to the latest version.
Main Page
Modules
Classes
Files
File List
sfml
sfml
include
SFML
Audio
Music.hpp
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>
32
#include <SFML/Audio/SoundStream.hpp>
33
#include <SFML/System/Mutex.hpp>
34
#include <SFML/System/Time.hpp>
35
#include <string>
36
#include <vector>
37
38
39
namespace
sf
40
{
41
namespace
priv
42
{
43
class
SoundFile;
44
}
45
46
class
InputStream;
47
52
class
SFML_AUDIO_API
Music
:
public
SoundStream
53
{
54
public
:
55
60
Music
();
61
66
~
Music
();
67
84
bool
openFromFile(
const
std::string& filename);
85
107
bool
openFromMemory(
const
void
* data, std::size_t sizeInBytes);
108
129
bool
openFromStream(
InputStream
& stream);
130
137
Time
getDuration()
const
;
138
139
protected
:
140
152
virtual
bool
onGetData(
Chunk
& data);
153
160
virtual
void
onSeek(
Time
timeOffset);
161
162
private
:
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