/** \file
 *  Game Develop
 *  2008-2014 Florian Rival (Florian.Rival@gmail.com)
 */

#ifndef AUDIOTOOLS_H
#define AUDIOTOOLS_H
#include <string>

class RuntimeScene;

bool GD_API MusicPlaying( RuntimeScene & scene, unsigned int channel );
bool GD_API MusicPaused( RuntimeScene & scene, unsigned int channel );
bool GD_API MusicStopped( RuntimeScene & scene, unsigned int channel );
bool GD_API SoundPlaying( RuntimeScene & scene, unsigned int channel );
bool GD_API SoundPaused( RuntimeScene & scene, unsigned int channel );
bool GD_API SoundStopped( RuntimeScene & scene, unsigned int channel );
void GD_API PlaySound( RuntimeScene & scene, const std::string & file, bool repeat, float volume, float pitch );
void GD_API PlaySoundOnChannel( RuntimeScene & scene, const std::string & file, unsigned int channel, bool repeat, float volume, float pitch );
void GD_API StopSoundOnChannel( RuntimeScene & scene, unsigned int channel );
void GD_API PauseSoundOnChannel( RuntimeScene & scene, unsigned int channel );
void GD_API RePlaySoundOnChannel( RuntimeScene & scene, unsigned int channel );
void GD_API PlayMusic( RuntimeScene & scene, const std::string & file, bool repeat, float volume, float pitch );
void GD_API PlayMusicOnChannel( RuntimeScene & scene, const std::string & file, unsigned int channel, bool repeat, float volume, float pitch );
void GD_API StopMusicOnChannel( RuntimeScene & scene, unsigned int channel );
void GD_API PauseMusicOnChannel( RuntimeScene & scene, unsigned int channel );
void GD_API RePlayMusicOnChannel( RuntimeScene & scene, unsigned int channel );
void GD_API SetSoundVolumeOnChannel( RuntimeScene & scene, unsigned int channel, float pitch );
void GD_API SetMusicVolumeOnChannel( RuntimeScene & scene, unsigned int channel, float playingOffset );
double GD_API GetSoundVolumeOnChannel( RuntimeScene & scene, unsigned int channel);
double GD_API GetMusicVolumeOnChannel( RuntimeScene & scene, unsigned int channel);
void GD_API SetGlobalVolume( RuntimeScene & scene, float volume );
double GD_API GetGlobalVolume( RuntimeScene & scene );
void GD_API SetSoundPitchOnChannel( RuntimeScene & scene, unsigned int channel, float pitch );
void GD_API SetMusicPitchOnChannel( RuntimeScene & scene, unsigned int channel, float playingOffset );
double GD_API GetSoundPitchOnChannel( RuntimeScene & scene, unsigned int channel);
double GD_API GetMusicPitchOnChannel( RuntimeScene & scene, unsigned int channel);
void GD_API SetSoundPlayingOffsetOnChannel( RuntimeScene & scene, unsigned int channel, float playingOffset );
void GD_API SetMusicPlayingOffsetOnChannel( RuntimeScene & scene, unsigned int channel, float playingOffset );
double GD_API GetSoundPlayingOffsetOnChannel( RuntimeScene & scene, unsigned int channel);
double GD_API GetMusicPlayingOffsetOnChannel( RuntimeScene & scene, unsigned int channel);

#endif // AUDIOTOOLS_H

