1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- /*!
- * \file include/Sound.h
- * \brief This is the audio manager Header
- *
- * \author Mongoose
- * \author xythobuz
- */
-
- #ifndef _SOUND_H_
- #define _SOUND_H_
-
- /*!
- * \brief This is the audio manager for OpenRaider
- */
- class Sound {
- public:
-
- typedef enum {
- SoundFlagsNone = 0, //!< No FX
- SoundFlagsLoop = 1 //!< Enable looping during playback
- } SoundFlags;
-
- /*!
- * \brief Constructs an object of Sound
- */
- Sound();
-
- /*!
- * \brief Deconstructs an object of Sound
- */
- ~Sound();
-
- /*!
- * \brief Initialize sound system
- * \returns 0 on success or < 0 error flags
- */
- int init();
-
- /*!
- * \brief Move listener and repositions them
- * \param pos New position for listener
- * \param angle New orientation for listener
- */
- void listenAt(float pos[3], float angle[3]);
-
- /*!
- * \brief Move sound source to position
- * \param source valid source id
- * \param pos new position for source
- */
- void sourceAt(int source, float pos[3]);
-
- /*!
- * \brief Load wav file from disk
- * \param filename not NULL!
- * \param source not NULL! Returns new source ID or -1 on error.
- * \param flags (un)set options. Use SoundFlags enum
- * \returns 0 for no error or < 0 error flag
- */
- int addFile(const char *filename, int *source, unsigned int flags);
-
- /*!
- * \brief Load wav file from buffer
- * \param wav not NULL! Is a valid waveform buffer!
- * \param length length of wav buffer
- * \param source not NULL! Returns new source ID or -1 on error.
- * \param flags (un)set options. Use SoundFlags enum
- * \returns 0 for no error or < 0 error flag
- */
- int addWave(unsigned char *wav, unsigned int length, int *source, unsigned int flags);
-
- /*!
- * \brief Play sound source
- * \param source sound source to play
- */
- void play(int source);
-
- /*!
- * \brief Stop playing sound source
- * \param source sound source to stop
- */
- void stop(int source);
-
- private:
- bool mInit; //!< Guard to ensure ausio system is active
- unsigned int mBuffer[256]; //!< Audio buffer id list
- unsigned int mSource[256]; //!< Audio source id list
- unsigned int mNextBuffer; //!< Audio buffer id cursor
- unsigned int mNextSource; //!< Audio source id cursor
- };
-
- #endif
|