FIFE
be64c707dea6b3250bd4355bf5c825d25920087d
soundclip.h
Go to the documentation of this file.
1
/***************************************************************************
2
* Copyright (C) 2005-2019 by the FIFE team *
3
* http://www.fifengine.net *
4
* This file is part of FIFE. *
5
* *
6
* FIFE is free software; you can redistribute it and/or *
7
* modify it under the terms of the GNU Lesser General Public *
8
* License as published by the Free Software Foundation; either *
9
* version 2.1 of the License, or (at your option) any later version. *
10
* *
11
* This library is distributed in the hope that it will be useful, *
12
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
13
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
14
* Lesser General Public License for more details. *
15
* *
16
* You should have received a copy of the GNU Lesser General Public *
17
* License along with this library; if not, write to the *
18
* Free Software Foundation, Inc., *
19
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA *
20
***************************************************************************/
21
22
#ifndef FIFE_SOUNDCLIP_H_
23
#define FIFE_SOUNDCLIP_H_
24
25
// Standard C++ library includes
26
#include <vector>
27
28
// Platform specific includes
29
30
// 3rd party library includes
31
32
// FIFE includes
33
// These includes are split up in two parts, separated by one empty line
34
// First block: files included from the FIFE root src directory
35
// Second block: files included from the same folder
36
#include "
util/resource/resource.h
"
37
38
#include "
sounddecoder.h
"
39
40
namespace
FIFE
{
41
44
enum
SoundPositionType
{
45
SD_SAMPLE_POS
,
46
SD_TIME_POS
,
47
SD_BYTE_POS
48
};
49
50
struct
SoundBufferEntry
{
51
ALuint
buffers
[
BUFFER_NUM
];
52
uint32_t
usedbufs
;
53
uint64_t
deccursor
;
54
};
55
58
class
SoundClip
:
public
IResource
{
59
public
:
60
61
SoundClip
(
IResourceLoader
* loader = 0);
62
SoundClip
(
const
std::string& name,
IResourceLoader
* loader = 0);
63
64
~
SoundClip
();
65
70
bool
isStream()
const
;
71
77
uint32_t
countBuffers()
const
;
78
82
ALuint* getBuffers(
uint32_t
streamid = 0)
const
;
83
87
uint32_t
beginStreaming();
88
93
void
acquireStream(
uint32_t
streamid);
94
98
bool
setStreamPos(
uint32_t
streamid,
SoundPositionType
type,
float
value);
99
102
float
getStreamPos(
uint32_t
streamid,
SoundPositionType
type)
const
;
103
110
bool
getStream(
uint32_t
streamid, ALuint buffer);
111
114
void
quitStreaming(
uint32_t
streamid);
115
118
void
endStreaming(
uint32_t
streamid);
119
122
void
adobtDecoder(
SoundDecoder
* decoder);
123
126
void
setDecoder(
SoundDecoder
* decoder);
127
130
SoundDecoder
* getDecoder()
const
;
131
132
virtual
size_t
getSize();
133
134
virtual
void
load();
135
virtual
void
free();
136
137
private
:
138
// is stream?
139
bool
m_isStream
;
140
// attached decoder
141
SoundDecoder
*
m_decoder
;
142
// when loadFromDecoder-method is used, decoder shouldn't be deleted
143
bool
m_deleteDecoder
;
144
std::vector<SoundBufferEntry*>
m_buffervec
;
145
146
std::string createUniqueClipName();
147
};
148
149
typedef
SharedPtr<SoundClip>
SoundClipPtr
;
150
}
151
152
#endif
FIFE::SD_BYTE_POS
Definition:
soundclip.h:47
FIFE::SoundClipPtr
SharedPtr< SoundClip > SoundClipPtr
Definition:
soundclip.h:149
FIFE::SoundClip::m_deleteDecoder
bool m_deleteDecoder
Definition:
soundclip.h:143
FIFE::SoundBufferEntry::buffers
ALuint buffers[BUFFER_NUM]
Definition:
soundclip.h:51
FIFE::SoundClip::m_isStream
bool m_isStream
Definition:
soundclip.h:139
FIFE::IResourceLoader
Definition:
resource.h:42
sounddecoder.h
FIFE::SoundPositionType
SoundPositionType
Different types of audio-file positions.
Definition:
soundclip.h:44
FIFE::SoundBufferEntry::usedbufs
uint32_t usedbufs
Definition:
soundclip.h:52
FIFE::SD_TIME_POS
Definition:
soundclip.h:46
FIFE::SoundBufferEntry
Definition:
soundclip.h:50
resource.h
FIFE::SD_SAMPLE_POS
Definition:
soundclip.h:45
FIFE::SoundClip::m_buffervec
std::vector< SoundBufferEntry * > m_buffervec
Definition:
soundclip.h:144
FIFE::SoundBufferEntry::deccursor
uint64_t deccursor
Definition:
soundclip.h:53
FIFE::SharedPtr< SoundClip >
FIFE::BUFFER_NUM
const int16_t BUFFER_NUM
Definition:
soundconfig.h:190
utf8::uint32_t
unsigned int uint32_t
Definition:
core.h:40
FIFE::SoundClip::m_decoder
SoundDecoder * m_decoder
Definition:
soundclip.h:141
FIFE::SoundDecoder
Definition:
sounddecoder.h:41
FIFE::IResource
Definition:
resource.h:50
FIFE::SoundClip
Class to handle the buffers of an audio file.
Definition:
soundclip.h:58
FIFE
Definition:
actionaudio.cpp:37
engine
core
audio
soundclip.h
Generated on Sun Feb 5 2023 01:00:05 for FIFE by
1.8.13