// サウンドコマンド
enum
{
COMMAND_UPDATE, // 稼働
COMMAND_PREPARE, // 準備
COMMAND_PLAY, // 再生・再開
COMMAND_STOP, // 停止
COMMAND_VOLUME, // 音量設定
COMMAND_NEXT, // 連続再生設定
COMMAND_PAUSE, // 一時停止
COMMAND_PAUSE_SYS,
COMMAND_RESUME, // 再開
COMMAND_RESUME_SYS,
};
/**********
稼働
**********/
void SoundManager::update(void)
{
set_command(-1, COMMAND_UPDATE);
}
/********************************************************
再生
引数 _channel = チャンネル番号
_data = サウンドデータ
_size = サウンドデータサイズ
_loop = ループ回数(0:無限ループ)
_vol = 音量
*******************************************************/
void SoundManager::prepare(int _channel, const void* _data, u32 _size, int _loop, float _vol)
{
assert((0 <= _channel) && (_channel < SOUND_CHANNEL_MAX));
set_command(_channel, COMMAND_PREPARE, _data, _size, _loop, _vol);
}
void SoundManager::play(int _channel)
{
assert((0 <= _channel) && (_channel < SOUND_CHANNEL_MAX));
set_command(_channel, COMMAND_PLAY);
}
void SoundManager::play(int _channel, const void* _data, u32 _size, int _loop, float _vol)
{
assert((0 <= _channel) && (_channel < SOUND_CHANNEL_MAX));
set_command(_channel, COMMAND_PLAY, _data, _size, _loop, _vol);
}
void SoundManager::play(void)
{
set_command(-1, COMMAND_PLAY); // 全て再生開始
}
/*******************************************
停止
引数 _channel = チャンネル番号
_cnt = フェード時間
*******************************************/
void SoundManager::stop(int _channel, int _cnt)
{
assert((0 <= _channel) && (_channel < SOUND_CHANNEL_MAX));
set_command(_channel, COMMAND_STOP, NULL, (u32)_cnt);
}
void SoundManager::stop(void)
{
set_command(-1, COMMAND_STOP); // 全て停止
}
/*********************************************************
音量設定
引数 _channel = チャンネル番号
_vol = 音量(0.0:最小 〜 1.0:最大)
*********************************************************/
void SoundManager::set_volume(int _channel, float _vol)
{
assert((0 <= _channel) && (_channel < SOUND_CHANNEL_MAX));
set_command(_channel, COMMAND_VOLUME, NULL, 0, 0, _vol);
}
/*****************************************************
マスター音量設定
引数 _vol = 音量(0.0:最小 〜 1.0:最大)
*****************************************************/
void SoundManager::set_master_volume(float _vol)
{
set_command(-1, COMMAND_VOLUME, NULL, 0, 0, _vol);
}
/*******************************************************
連続再生設定
引数 _channel = チャンネル番号
_data = サウンドデータ
_size = サウンドデータサイズ
_loop = ループ回数(0:無限ループ)
*******************************************************/
void SoundManager::set_next(int _channel, const void* _data, u32 _size, int _loop)
{
assert((0 <= _channel) && (_channel < SOUND_CHANNEL_MAX));
set_command(_channel, COMMAND_NEXT, _data, _size, _loop);
}
/*********************************************
一時停止
引数 _channel = チャンネル番号
*********************************************/
void SoundManager::pause(int _channel)
{
assert((0 <= _channel) && (_channel < SOUND_CHANNEL_MAX));
set_command(_channel, COMMAND_PAUSE);
}
void SoundManager::pause(void)
{
set_command(-1, COMMAND_PAUSE); // 全て一時停止
}
void SoundManager::pause_system(void) // システムによる一時停止
{
set_command(-1, COMMAND_PAUSE_SYS);
}
/*********************************************
再開
引数 _channel = チャンネル番号
*********************************************/
void SoundManager::resume(int _channel)
{
assert((0 <= _channel) && (_channel < SOUND_CHANNEL_MAX));
set_command(_channel, COMMAND_RESUME);
}
void SoundManager::resume(void)
{
set_command(-1, COMMAND_RESUME); // 全て再開
}
void SoundManager::resume_system(void) // システムによる再開
{
set_command(-1, COMMAND_RESUME_SYS);
}
セコメントをする