#include "main.h"

// サウンド準備処理
void GameMain::setupSound()
{
	if(bgm.open("BGM\\stage_01.ogg") == false) {
		fkut_PrintString("bgm open() failed.");	// 読み込みに失敗したらエラーメッセージを出す
	}
	bgm.setLoopMode(true);

	if(se0.open("drum\\BDTIGHT2.wav") == false) {
		fkut_PrintString("se0 open() failed.");	// 読み込みに失敗したらエラーメッセージを出す
	}
	if(se1.open("drum\\SDCRKRM.wav") == false) {
		fkut_PrintString("se1 open() failed.");	// 読み込みに失敗したらエラーメッセージを出す
	}
	if(se3D.open("SE\\iPhone.wav") == false) {
		fkut_PrintString("se2 open() failed.");	// 読み込みに失敗したらエラーメッセージを出す
	}
	se3D.setLoopMode(true);
	se3D.setPosition(fk_Vector(0.0, 0.0, 0.0));
	se3D.setReferenceDist(100.0);
	se3D.setListenerModel(camera);

	bgm_play = false;
	se0_play = false;
	se1_play = false;
	se3D_play = false;
}

// サウンド再生処理
void GameMain::procSound()
{
	// se0のキー操作(a)による再生
	playSoundByKey('a', se0_play, se0);
	// se1のキー操作(s)による再生
	playSoundByKey('s', se1_play, se1);

	// BGMはスペースで再生と一時停止を切り替え
	if(window.getKeyStatus(' ') == FKUT_SW_DOWN) {
		if(bgm_play == true) {
			bgm_play = false;
			bgm.pause();
		} else {
			bgm_play = true;
		}
	}
	if(bgm_play == true) {
		bgm_play = bgm.play();
	}

	// 3DサラウンドはENTERで切り替え
	if(window.getSpecialKeyStatus(FK_ENTER) == FKUT_SW_DOWN) {
		if(se3D_play == true) {
			se3D_play = false;
			se3D.pause();
		} else {
			se3D_play = true;
		}
	}
	if(se3D_play == true) {
		se3D_play = se3D.play();
	}
}

void GameMain::playSoundByKey(const char &argKey, bool &argFlag, fk_AudioWavBuffer &argSE)
{
	// se0のキー操作(a)による再生
	if(window.getKeyStatus(argKey) == FKUT_SW_DOWN) {
		argFlag = true;
		argSE.seek(0.0);
	}
	if(argFlag == true) {
		argFlag = argSE.play();
	}
}
