FIFE
2008.0
Main Page
Related Pages
Namespaces
Classes
Files
Examples
File List
All
Classes
Namespaces
Functions
Variables
Enumerations
Enumerator
Pages
sounddecoder_ogg.h
1
/***************************************************************************
2
* Copyright (C) 2005-2008 by the FIFE team *
3
* http://www.fifengine.de *
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_SOUNDDECODER_OGG_H
23
#define FIFE_SOUNDDECODER_OGG_H
24
25
// Standard C++ library includes
26
27
// Platform specific includes
28
29
// 3rd party library includes
30
#include <vorbisfile.h>
31
#include <boost/scoped_ptr.hpp>
32
33
// FIFE includes
34
// These includes are split up in two parts, separated by one empty line
35
// First block: files included from the FIFE root src directory
36
// Second block: files included from the same folder
37
#include "vfs/raw/rawdata.h"
38
#include "audio/sounddecoder.h"
39
40
namespace
FIFE {
41
class
SoundDecoderOgg :
public
SoundDecoder {
42
public
:
43
44
SoundDecoderOgg(RawData* ptr);
45
46
~SoundDecoderOgg() {
47
releaseBuffer();
48
}
49
52
unsigned
long
getDecodedLength()
const
{
53
return
m_declength;
54
}
55
60
bool
setCursor(
unsigned
long
pos);
61
67
bool
decode(
unsigned
long
length);
68
73
void
*getBuffer()
const
{
74
return
m_data;
75
}
76
79
unsigned
long
getBufferSize() {
80
return
m_datasize;
81
}
82
85
void
releaseBuffer() {
86
if
(m_data != NULL) {
87
delete
[] m_data;
88
m_data = NULL;
89
}
90
}
91
92
private
:
93
boost::scoped_ptr<RawData> m_file;
94
unsigned
long
m_declength;
95
unsigned
long
m_datasize;
96
char
* m_data;
97
OggVorbis_File m_ovf;
98
};
99
}
100
101
#endif
engine
core
loaders
native
audio_loaders
sounddecoder_ogg.h
Generated on Fri Jun 8 2012 20:34:13 for FIFE by
1.8.1