cAudio  2.3.0
3d Audio Engine
 All Classes Namespaces Functions Variables Enumerations Pages
cOggDecoder.h
1 // Copyright (c) 2008-2011 Raynaldo (Wildicv) Rivera, Joshua (Dark_Kilauea) Jones, Murat (wolfmanfx) Sari
2 // This file is part of the "cAudio Engine"
3 // For conditions of distribution and use, see copyright notice in cAudio.h
4 
5 #pragma once
6 
7 #include "cAudioDefines.h"
8 
9 #if CAUDIO_COMPILE_WITH_OGG_DECODER == 1
10 
11 #include "IAudioDecoder.h"
12 #include <ogg/ogg.h>
13 #include <vorbis/codec.h>
14 #include <vorbis/vorbisfile.h>
15 #include "cMemoryOverride.h"
16 
17 namespace cAudio
18 {
19 
20  class cOggDecoder : public IAudioDecoder, public cMemoryOverride
21  {
22  public:
23 
24  cOggDecoder(IDataSource* stream);
25  ~cOggDecoder();
26 
27  virtual AudioFormats getFormat();
28  virtual int getFrequency();
29  virtual bool isSeekingSupported();
30  virtual bool isValid();
31  virtual int readAudioData(void* output, int amount);
32  virtual bool setPosition(int position, bool relative);
33  virtual bool seek(float seconds,bool relative);
34  virtual float getTotalTime();
35  virtual int getTotalSize();
36  virtual int getCompressedSize();
37  virtual float getCurrentTime();
38  virtual int getCurrentPosition();
39  virtual int getCurrentCompressedPosition();
40  virtual cAudioString getType() const;
41 
42  protected:
44  ov_callbacks vorbisCallbacks;
46  vorbis_info* vorbisInfo;
48  vorbis_comment* vorbisComment;
50  OggVorbis_File oggStream;
51  bool Valid;
52  };
53 
54 }
55 
56 #endif
AudioFormats
Enumeration of audio formats supported by the engine.
Definition: EAudioFormats.h:10