Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: orxonox.OLD/trunk/src/lib/sound/ogg_player.h @ 6842

Last change on this file since 6842 was 6842, checked in by bensch, 18 years ago

orxonox/trunk: ogg-player does not segfault, when no sources are availiable

File size: 1.4 KB
RevLine 
[4836]1/*!
2 * @file ogg_player.h
[4961]3 * Ogg-Player definition
[4836]4 */
5
6
7#ifndef _OGG_PLAYER_H
8#define _OGG_PLAYER_H
9
10using namespace std;
11
[4961]12#include "base_object.h"
13
[5279]14#include "alincl.h"
[4836]15#include <ogg/ogg.h>
16#include <vorbis/vorbisfile.h>
17
[5282]18struct File;
[4836]19
20
[5282]21
[4985]22#define BUFFER_SIZE (4096 * 4)
[4836]23
24
[4961]25// the definition of a Ogg-Player
26class OggPlayer : public BaseObject
27  {
28  public:
29    OggPlayer(const char* fileName = NULL);
[4836]30
[6842]31    bool open(const char* fileName);
[4961]32    void release();
[6828]33    void debug();
[4961]34    bool playback();
35    bool playing();
36    bool update();
[4836]37
[4961]38  protected:
[4836]39
[4961]40    bool stream(ALuint buffer);
41    void empty();
42    void check();
43    const char* errorString(int code);
[4836]44
[4961]45  private:
[4836]46
[4961]47    FILE*               oggFile;              //!< general file-handler, to open the sound-file
48    OggVorbis_File      oggStream;            //!< The stream this Ogg-player is playing back
49    vorbis_info*        vorbisInfo;           //!< The information held in the opened ogg-file
50    vorbis_comment*     vorbisComment;        //!< Comments about the ogg-file
[4836]51
[4961]52    ALuint              buffers[2];           //!< buffers that handle sequentially buffering of the audio
53    ALuint              source;               //!< The source we play back on
54    ALenum              format;               //!< The format we play back
[6842]55    bool                trackLoaded;          //!< If a Track has been loaded.
[4961]56  };
[4836]57
58
59#endif /* _OGG_PLAYER_H */
Note: See TracBrowser for help on using the repository browser.