/* *****************************************************************************
	Title : sound.c
***************************************************************************** */

#include	"main.h"									/* main.h				*/


#define		SND_DEBUG		FALSE


/* -----------------------
	グローバル変数
------------------------ */
SoundIL		soundIL;									/* ｻｳﾝﾄﾞIL				*/


/* ******************************************************************************
　関　　数	：
　内　　容	：
　表　　記	：
　引　　数	：
　返　　値	：−
　コメント	：サウンド初期化関数です。
		  	：
　履　　歴	：Ver 1.00		2000/12/07		K.Kimura		初版
****************************************************************************** */
void	SndInit( void)
{
	/* ///  SoundIL のチェック  /// */
	if(open_sound_il( &soundIL) != E_FS_SUCCESS)
	{
		DbgPrintPort("SoundIL Error!\n\r");			/* ﾃﾞﾊﾞｯｸﾞ用			*/
		return;
	}

	/* ///  サウンドの初期化  /// */
	sounddrv_init();
	sound_open();

	if (bgm_check())
		bgm_stop();

}

/* ******************************************************************************
　関　　数	：SndPlayBGM
　内　　容	：
　表　　記	：
　引　　数	：
　返　　値	：−
　コメント	：ＢＧＭ再生
		  	：これも、メモリがもったいないのでエラーチェックはしてません。
		  	：
　履　　歴	：Ver 1.00		2000/12/07		K.Kimura		初版
****************************************************************************** */
void	SndPlayBGM( int idx, u_short mode)
{
	static	char far	*res;


	/* ///  ＢＧＭ再生  /// */
	res = FileGetPointer(( int)TFD_SOUND, idx);
	bgm_play(( res_music_t far *)res, mode);				/* BGM 演奏開始 */ 

}


/* ******************************************************************************
　関　　数	：SndSetInst
　内　　容	：
　表　　記	：
　引　　数	：
　返　　値	：−
　コメント	：音色設定
		  	：
　履　　歴	：Ver 1.00		2000/12/07		K.Kimura		初版
****************************************************************************** */
void	SndSetInst( int idx, u_short mode)
{
	static	char far	*res;


	/* ///  音色設定  /// */
	res = FileGetPointer(( int)TFD_SOUND, idx);
	set_instrument (( void far *)res, mode);				/* 音色設定			*/

	/* ついでにＳＥも初期化 */
	res = FileGetPointer(( int)TFD_SOUND, SND_SE_FR);
	se_play(( void far *)res, -1);							/* ｱﾄﾞﾚｽ設定のみ	*/
}


/* ******************************************************************************
　関　　数	：
　内　　容	：
　表　　記	：
　引　　数	：
　返　　値	：−
　コメント	：後処理関数です。
		  	：
　履　　歴	：Ver 1.00		2000/12/07		K.Kimura		初版
****************************************************************************** */
void	SndRelease( void)
{
	/* ///  サウンド後処理（必要なの？） /// */
#if SND_DEBUG
	DbgPrintPort("sound_close() ..");
#endif
	sound_close();

#if SND_DEBUG
	DbgPrintPort("OK!\r\n");
	DbgPrintPort("sounddrv_release() ..");
#endif
	sounddrv_release();

#if SND_DEBUG
	DbgPrintPort("OK!\r\n");
#endif
}


