18#include <OgreSingleton.h>
19#include <boost/thread.hpp>
20#include <vorbis/vorbisfile.h>
24#if defined(__WIN32__) || defined(_WIN32)
205 const char* name1,
const char* name2,
const char* name3,
const char* name4
259 void AddTrack(
const int id,
const int track_id);
298 Player(boost::recursive_mutex* mutex);
334 void SetLoop(
const float loop);
427 const char*
ALCError(
const ALCdevice* device );
504 std::unordered_map<unsigned int, unsigned int>
tracks_;
An audio player.
Definition: AudioManager.h:290
float loop_
Loop point for the current track.
Definition: AudioManager.h:361
bool stream_finished_
Indicates if the stream is finished.
Definition: AudioManager.h:386
void Play(const Ogre::String &file)
Plays an audio file.
Definition: AudioManager.cpp:287
void Stop()
Stops the audio player.
Definition: AudioManager.cpp:330
void Pause()
Pauses the player.
Definition: AudioManager.cpp:274
float GetPosition()
Get the playing position of the current track.
Definition: AudioManager.cpp:432
int vorbis_section_
Section of the track.
Definition: AudioManager.h:381
void Resume()
Resumes the playback of a paused player.
Definition: AudioManager.cpp:279
~Player()
Destructor.
Definition: AudioManager.cpp:272
OggVorbis_File vorbis_file_
File played or to play.
Definition: AudioManager.h:371
vorbis_info * vorbis_info_
Info about the track.
Definition: AudioManager.h:376
boost::recursive_mutex * update_mutex_
Mutex to handle concurrent update on the player.
Definition: AudioManager.h:356
Player(boost::recursive_mutex *mutex)
Constructor.
Definition: AudioManager.cpp:267
ALuint source_
Audio source.
Definition: AudioManager.h:396
char * buffer_
Audio buffer.
Definition: AudioManager.h:391
void Update()
Updates the audio player.
Definition: AudioManager.cpp:357
void SetLoop(const float loop)
Sets the loop for the current track.
Definition: AudioManager.cpp:352
Ogre::String file_
Name of the file currently being played.
Definition: AudioManager.h:366
ALsizei FillBuffer()
Fills the audio buffer.
Definition: AudioManager.cpp:398
The audio manager.
Definition: AudioManager.h:39
void SoundPlay(const Ogre::String &name)
Plays a sound.
Definition: AudioManager.cpp:146
void MusicPlay(const Ogre::String &name)
Plays a music track.
Definition: AudioManager.cpp:125
void ScriptSetBattleTrack(int id)
Sets the music track for upcoming battles.
Definition: AudioManager.cpp:234
void ClearBattle() override
Clears all battle information in the audio manager.
Definition: AudioManager.cpp:104
std::unordered_map< unsigned int, unsigned int > tracks_
IDs of the music tracks of the current content (field or world map).
Definition: AudioManager.h:504
void ClearField() override
Clears all field information in the audio manager.
Definition: AudioManager.cpp:102
void UpdateWorld() override
Updates the audio manager while on the world map.
Definition: AudioManager.cpp:248
int battle_track_
ID of the track for the current battle.
Definition: AudioManager.h:509
AudioManager::Music * GetMusic(const Ogre::String &name)
Retrieves a music track by name.
Definition: AudioManager.cpp:209
void Input(const VGears::Event &event) override
Handles an input event.
Definition: AudioManager.cpp:96
ALCcontext * al_context_
Audio context.
Definition: AudioManager.h:457
boost::thread * update_thread_
Thread to handle concurrent operations.
Definition: AudioManager.h:474
bool initialized_
Indicates if the audio manager has been initialized.
Definition: AudioManager.h:447
char * buffer_
Audio buffer.
Definition: AudioManager.h:464
void ClearWorld() override
Clears all world map information in the audio manager.
Definition: AudioManager.cpp:106
std::list< AudioManager::Music > music_list_
List of music.
Definition: AudioManager.h:499
void ScriptPlaySounds(const char *name1, const char *name2, const char *name3, const char *name4)
Plays up to 4 sounds, in 4 different channels.
Definition: AudioManager.cpp:166
int ScriptGetBattleTrack()
Retrieves the music ID for the current or next battle.
Definition: AudioManager.cpp:232
void UpdateBattle() override
Updates the audio manager while on a battle.
Definition: AudioManager.cpp:242
AudioManager::Player music_
Music player for either fields or world map.
Definition: AudioManager.h:484
void MusicResume()
resumes currently paused music.
Definition: AudioManager.cpp:114
void UpdateDebug() override
Updates the audio manager with debug information.
Definition: AudioManager.cpp:98
const bool Init()
Initializes the audio manager.
void MusicPause()
Pauses currently playing music.
Definition: AudioManager.cpp:108
void AddTrack(const int id, const int track_id)
Adds a music track ID to the list of music tracks of the field.
Definition: AudioManager.cpp:223
int ScriptGetTrack(int id)
Retrieves the music ID for the specified track for a field or world map.
Definition: AudioManager.cpp:227
static ALsizei channel_buffer_size_
Size of a channel buffer.
Definition: AudioManager.h:523
void ScriptPlaySound(const char *name)
Plays a sound.
Definition: AudioManager.cpp:159
void AddSound(const AudioManager::Sound &sound)
Adds a sound to the audio manager.
Definition: AudioManager.cpp:194
const char * ALError()
Handles errors.
Definition: AudioManager.cpp:250
const char * ALCError(const ALCdevice *device)
Handles errors.
Definition: AudioManager.cpp:257
void AddMusic(const AudioManager::Music &music)
Adds a music track to the audio manager.
Definition: AudioManager.cpp:179
AudioManager::Player battle_music_
Music player for battles.
Definition: AudioManager.h:489
AudioManager::Player fx_
Sound effect player.
Definition: AudioManager.h:494
ALCdevice * al_device_
Audio output device.
Definition: AudioManager.h:452
void UpdateField() override
Updates the audio manager while on the field.
Definition: AudioManager.cpp:236
virtual ~AudioManager()
Destructor.
Definition: AudioManager.cpp:71
boost::recursive_mutex update_mutex_
Mutex to handle concurrent operations.
Definition: AudioManager.h:469
void ScriptPlayMusic(const char *name)
Plays a music track.
Definition: AudioManager.cpp:120
void operator()()
Used by boost libraries.
Definition: AudioManager.cpp:85
AudioManager()
Constructor.
Definition: AudioManager.cpp:33
std::list< AudioManager::Sound > sound_list_
List of music.
Definition: AudioManager.h:514
AudioManager::Sound * GetSound(const Ogre::String &name)
Retrieves a sound by name.
Definition: AudioManager.cpp:216
static int channel_buffer_number_
Number of buffers.
Definition: AudioManager.h:530
void OnResize() override
Handles resizing events.
Definition: AudioManager.cpp:100
void MusicStop()
Stops the currently playing music.
Definition: AudioManager.cpp:173
bool thread_continue_
Flag to indicate if the playback must continue.
Definition: AudioManager.h:479
A base manager.
Definition: Manager.h:24
Ogre::String String
Definition: TypeDefine.h:37
Music structure.
Definition: AudioManager.h:48
Ogre::String name
The name of the track.
Definition: AudioManager.h:53
Ogre::String file
Track filename.
Definition: AudioManager.h:58
float loop
Music loop location for continuous playback.
Definition: AudioManager.h:63
Music structure.
Definition: AudioManager.h:71
Ogre::String file
Sound filename.
Definition: AudioManager.h:81
Ogre::String name
The name of the sound.
Definition: AudioManager.h:76
An input event.
Definition: Event.h:84