Open Source Tomb Raider Engine
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. /*!
  2. * \file include/SoundNull.h
  3. * \brief This is the null audio manager Header
  4. *
  5. * \author xythobuz
  6. */
  7. #ifndef _SOUND_NULL_H_
  8. #define _SOUND_NULL_H_
  9. #include "Sound.h"
  10. /*!
  11. * \brief This is the null audio manager
  12. */
  13. class SoundNull : public Sound {
  14. public:
  15. /*!
  16. * \brief Constructs an object of SoundNull
  17. */
  18. SoundNull();
  19. /*!
  20. * \brief Deconstructs an object of SoundNull
  21. */
  22. virtual ~SoundNull();
  23. /*!
  24. * \brief Initialize sound system
  25. * \returns 0 on success or < 0 error flags
  26. */
  27. virtual int initialize();
  28. virtual void setEnabled(bool on);
  29. /*!
  30. * \brief Set the volume
  31. * \param vol new source gain
  32. */
  33. virtual void setVolume(float vol);
  34. /*!
  35. * \brief Get number of registered sources
  36. * \returns number of registered sources
  37. */
  38. virtual unsigned long registeredSources();
  39. /*!
  40. * \brief Remove all loaded sounds
  41. */
  42. virtual void clear();
  43. /*!
  44. * \brief Move listener and repositions them
  45. * \param pos New position for listener
  46. * \param angle New orientation for listener
  47. */
  48. virtual void listenAt(float pos[3], float angle[3]);
  49. /*!
  50. * \brief Move sound source to position
  51. * \param source valid source id
  52. * \param pos new position for source
  53. */
  54. virtual void sourceAt(unsigned long source, float pos[3]);
  55. /*!
  56. * \brief Load wav file from disk
  57. * \param filename not NULL!
  58. * \param source not NULL! Returns new source ID or -1 on error.
  59. * \param flags set options. Use SoundFlags enum bitwise OR-ed
  60. * \returns 0 for no error or < 0 error flag
  61. */
  62. virtual int addFile(const char* filename, unsigned long* source, unsigned int flags);
  63. /*!
  64. * \brief Load wav file from buffer
  65. * \param wav not NULL! Is a valid waveform buffer!
  66. * \param length length of wav buffer
  67. * \param source not NULL! Returns new source ID or -1 on error.
  68. * \param flags set options. Use SoundFlags enum bitwise OR-ed
  69. * \returns 0 for no error or < 0 error flag
  70. */
  71. virtual int addWave(unsigned char* wav, unsigned int length, unsigned long* source,
  72. unsigned int flags);
  73. /*!
  74. * \brief Play sound source
  75. * \param source sound source to play
  76. */
  77. virtual void play(unsigned long source);
  78. /*!
  79. * \brief Stop playing sound source
  80. * \param source sound source to stop
  81. */
  82. virtual void stop(unsigned long source);
  83. private:
  84. unsigned long sources;
  85. };
  86. #endif