/*
 *	app.h
 *
 *	ぐるりんもどき
 *
 *	* Tue Apr 25 21:31:44 JST 2017 Naoyuki Sawa
 *	- 1st リリース。
 */
#ifndef __APP_H__
#define __APP_H__

#include <clip.h>

/****************************************************************************
 *	
 ****************************************************************************/

//{{2014/02/01削除:MakefileのUSE_RESOURCEで制御するように変更しました。もうRESOURCE_FNAMEは使用しません。
///* pexファイル添付リソースを使う場合は、RESOURCE_FNAMEにpexファイル名を定義してください。
// * pexファイル添付リソースを使わない場合は、RESOURCE_FNAMEを定義しないでください。
// * - Makefileにも、pexファイル添付リソースの使用有無、および、pexファイル名が記述されているので、
// *   Makefileから、gccの-DオプションでRESOURCE_FNAMEを指定する方法も検討しましたが、やめました。
// *   実験したところ、-Dオプションは「"」を除去してしまうみたいで、文字列を定義できないからです。
// *	-DRESOURCE_FNAME="test.pex" … RESOURCE_FNAMEは、"test.pex"でなく、test.pexになってしまう
// *   文字列化演算子を使って、以下のように対応することもできますが、
// *	[Makefileにおいて...]
// *	-DRESOURCE_FNAME=test.pex
// *	[C言語ソースにおいて...]
// *	#define T(str) #str
// *	char* fname = T(RESOURCE_FNAME);
// *   複雑になりすぎることを防ぐため、単純に、MakefileとC言語ソースで二回指定することにしました。
// */
//#define RESOURCE_FNAME "test.pex" /*{{TODO}}*/
//}}2014/02/01削除:MakefileのUSE_RESOURCEで制御するように変更しました。もうRESOURCE_FNAMEは使用しません。

/* クロック・メモリウェイトを変更する場合は、TURBOシンボルを定義してください。
 * 定義した値は、turbo()関数にそのまま引き渡されます。
 */
//{{2014/02/01削除:MakefileのTURBOで制御するように変更しました。
//#define TURBO -1 /*{{TODO}}*/
//}}2014/02/01削除:MakefileのTURBOで制御するように変更しました。

/* デバッグモードを使う場合は、USE_DBGシンボルを定義してください */
//{{2014/02/01削除:MakefileのUSE_DBGで制御するように変更しました。
//#define USE_DBG /*{{TODO}}*/
//}}2014/02/01削除:MakefileのUSE_DBGで制御するように変更しました。

/* ガーベージコレクターを使う場合は、
 * ・USE_GCシンボルを定義してください。
 * ・GC_LEVELシンボルに適切なGC動作レベルを選択してください。
 */
//{{2014/02/01削除:MakefileのGC_LEVELで制御するように変更しました。もうUSE_GCは使用しません。
//#define USE_GC /*{{TODO}}*/
//#ifdef USE_GC
//#define GC_LEVEL GC_LEVEL_CONSERVATIVE	/* 「保守的」なGC動作レベル */	//推奨//
////#define GC_LEVEL GC_LEVEL_INTERMEDIATE	/* 「中間的」なGC動作レベル */
////#define GC_LEVEL GC_LEVEL_AGGRESSIVE	/* 「積極的」なGC動作レベル */
//#endif /*USE_GC*/
//}}2014/02/01削除:MakefileのGC_LEVELで制御するように変更しました。もうUSE_GCは使用しません。

//{{2014/12/12追加:MakefileのBITMAP_GC_UNITが定義されたら、Bitmap GCを使用するようにしました。
/* Bitmap GCを使用する場合、gc_runをBitmapGC_Runのエイリアスとすることにしました。
 * アプリケーションは常に、'gc_run'と書くようにしてください。
 * ビルド設定のGC_LEVELとBITMAP_GC_UNITの切り替えだけで、通常のガーベージコレクターとBitmap GCを切り替えられます。 */
#ifdef  BITMAP_GC_UNIT
#ifdef  GC_LEVEL
#error 通常のガーベージコレクターとBitmap GCは併用できません。
#endif//GC_LEVEL
#define gc_run BitmapGC_Run
#endif//BITMAP_GC_UNIT
//}}2014/12/12追加:MakefileのBITMAP_GC_UNITが定義されたら、Bitmap GCを使用するようにしました。

/* 高速切替・16階調表示を使う場合は、
 * ・LDIRECT_INTERVALに更新タイミング[ミリ秒]を定義してください。
 *   更新タイミングの目安は、おおよそ次の通りです。
 *	11以下	処理が間に合わずハングアップの危険あり。
 *	12	高品質・高負荷。48MHz/1WAIT以外では処理が間に合わずハングアップの危険性あり。
 *	25	中品質・中負荷。48MHz/1WAIT時は、この値が適切です。
 *	33	低品質・低負荷。24MHz/2WAIT時は、この値が適切です。
 *	34以上	切替えが遅すぎて、点滅が見えてしまいます。
 * ・高速切替・16階調表示を使わない場合は、LDIRECT_INTERVALを定義しないでください。
 *   通常の4階調表示となります。
 */
//{{2014/02/01削除:MakefileのLDIRECT_INTERVALで制御するように変更しました。
//#define LDIRECT_INTERVAL 12 /*{{TODO}}*/
//}}2014/02/01削除:MakefileのLDIRECT_INTERVALで制御するように変更しました。

/* 縦画面モードを使う場合は、V_SCREENシンボルを定義してください */
//{{2014/02/01削除:MakefileのV_SCREENで制御するように変更しました。
//#define V_SCREEN /*{{TODO}}*/
//}}2014/02/01削除:MakefileのV_SCREENで制御するように変更しました。
#ifdef V_SCREEN
#undef DISP_X
#undef DISP_Y
#define DISP_X	 88
#define DISP_Y	128
#endif /*V_SCREEN*/

//{{2016/02/04削除:MakefileのUSE_COUNTER_MANAGER,及び,EnmDef.txtのCntChで制御するように変更しました。
///* 汎用カウンタ管理を使う場合は、
// * ・USE_COUNTER_MANAGERシンボルを定義してください。
// * ・COUNTER_MAXCHシンボルに適切なチャネル数を指定してください。
// */
//#ifdef  USE_COUNTER_MANAGER
//#define COUNTER_MAXCH	4
//#endif/*USE_COUNTER_MANAGER*/
//}}2016/02/04削除:MakefileのUSE_COUNTER_MANAGER,及び,EnmDef.txtのCntChで制御するように変更しました。

/* 3D描画を使う場合は、
 * ・USE_3Dシンボルを定義してください。
 * ・FRONTに適切な前面クリッピング距離(＝視点〜投影面距離)を指定してください。
 * ・BACK に適切な背面クリッピング距離(＝視点〜可視限界遠)を指定してください。
 * ・FOVY に適切な垂直視野角度を指定してください。
 */
//{{2014/02/01削除:MakefileのUSE_3Dで制御するように変更しました。
//#define USE_3D /*{{TODO}}*/
//}}2014/02/01削除:MakefileのUSE_3Dで制御するように変更しました。
#ifdef USE_3D
#define FRONT	fld(1)
#define BACK	fld(100)
#define FOVY	DEG(45)
#endif /*USE_3D*/

/* 浮動小数点3D描画を使う場合は、
 * ・USE_RENDFシンボルを定義してください。
 * ・FRONTに適切な前面クリッピング距離(＝視点〜投影面距離)を指定してください。
 * ・BACK に適切な背面クリッピング距離(＝視点〜可視限界遠)を指定してください。
 * ・FOVY に適切な垂直視野角度を指定してください。
 * USE_3Dと同時に使うことはできません。(FRONT、BACK、FOVYが多重定義になります。)
 * 固定小数点3D描画(RENDER)と浮動小数点3D描画(RENDF)を併用することは可能ですが、
 * あまり意味が無いので、あえて多重定義警告がでるようにしてあります。
 */
//{{2014/02/01削除:MakefileのUSE_RENDFで制御するように変更しました。
//#define USE_RENDF /*{{TODO}}*/
//}}2014/02/01削除:MakefileのUSE_RENDFで制御するように変更しました。
#ifdef USE_RENDF
#define FRONT	1.0f
#define BACK	100.0f
#define FOVY	((float)M_PI_4)
#endif /*USE_RENDF*/

/* テクスチャリストを初期化する場合は、USE_TEXTUREシンボルを定義してください。 */
//{{2014/02/01削除:MakefileのUSE_TEXTUREで制御するように変更しました。
//#define USE_TEXTURE /*{{TODO}}*/
//}}2014/02/01削除:MakefileのUSE_TEXTUREで制御するように変更しました。
#ifdef USE_TEXTURE
#define TEXTURE_(name) TEX_##name,
#define TEXTURE_RESOURCE_(name,fname) TEX_##name,
enum {
#include "texture.h"
	TEXTURE_COUNT,
};
extern TEXTURE texture_table[TEXTURE_COUNT];
#undef TEXTURE_
#undef TEXTURE_RESOURCE_
#endif /*USE_TEXTURE*/

/* 簡易スプライトドライバを使う場合は、USE_SPRITEシンボルを定義してください */
//{{2014/02/01削除:MakefileのUSE_SPRITEで制御するように変更しました。
//#define USE_SPRITE /*{{TODO}}*/
//}}2014/02/01削除:MakefileのUSE_SPRITEで制御するように変更しました。
#ifdef USE_SPRITE
#define SPRITE_ SPRITE_INIT1
enum {
#include "sprite.h"
	SPRITE_COUNT
};
extern const SPRITE sprite_table[SPRITE_COUNT];
#undef SPRITE_
#endif /*USE_SPRITE*/

/* サウンドリストを初期化する場合は、USE_SOUNDシンボルを定義してください。 */
//{{2014/02/01削除:MakefileのUSE_SOUNDで制御するように変更しました。
//#define USE_SOUND /*{{TODO}}*/
//}}2014/02/01削除:MakefileのUSE_SOUNDで制御するように変更しました。
#ifdef USE_SOUND
#define SOUND_(name) SND_##name,
#define SOUND_RESOURCE_(name,fname) SND_##name,
enum {
#include "sound.h"
	SOUND_COUNT,
};
extern const void* sound_table[SOUND_COUNT];
#undef SOUND_
#undef SOUND_RESOURCE_
#endif /*USE_SOUND*/

/* オートリピートを使用する場合は、
 * ・USE_REPEATシンボルを定義してください。
 * ・REPEAT_PADにオートリピートを有効にするPAD_*の組み合わせを指定してください。
 * ・REPEAT_DELAYにオートリピートが開始するまでの時間を指定してください。
 * ・REPEAT_INTERVALにオートリピート間隔の時間を指定してください。
 */
//{{2014/02/01削除:MakefileのUSE_REPEATで制御するように変更しました。
//#define USE_REPEAT /*{{TODO}}*/
//}}2014/02/01削除:MakefileのUSE_REPEATで制御するように変更しました。
#ifdef USE_REPEAT
#define REPEAT_PAD	(PAD_LF|PAD_RI)
#define REPEAT_DELAY	SEC(0.25)
#define REPEAT_INTERVAL	SEC(0.1)
#endif /*USE_REPEAT*/

/* ポーズ機能を使う場合は、USE_PAUSEシンボルを定義してください。
 * また、アプリケーションの通常背景色にあわせて、PAUSE_COLORを選択してください。
 */
//{{2014/02/01削除:MakefileのUSE_PAUSEで制御するように変更しました。
//#define USE_PAUSE /*{{TODO}}*/
//}}2014/02/01削除:MakefileのUSE_PAUSEで制御するように変更しました。
#ifdef USE_PAUSE
#define PAUSE_FONT	0x80		/* PAUSEフォント         */
#ifndef LDIRECT_INTERVAL
//#define PAUSE_COLOR	0x130		/* PAUSEカラー(白背景用) */
#define PAUSE_COLOR	0x203		/* PAUSEカラー(黒背景用) */
#else /*LDIRECT_INTERVAL*/
//#define PAUSE_COLOR	0x5f0		/* PAUSEカラー(16階調・白背景用) */
#define PAUSE_COLOR	0xa0f		/* PAUSEカラー(16階調・黒背景用) */
#endif /*LDIRECT_INTERVAL*/
#define PAUSE_STR	"PAUSE"		/* PAUSEメッセージ       */
#define PAUSE_W		(5 * 5 + 2)	/* PAUSEメッセージの横幅 */
#define PAUSE_H		(10    + 2)	/* PAUSEメッセージの縦幅 */
#define PAUSE_X		((DISP_X - PAUSE_W) / 2) /* 水平表示位置 */
#define PAUSE_Y		((DISP_Y - PAUSE_H) / 2) /* 垂直表示位置 */
#endif /*USE_PAUSE*/

//不揮発性ログバッファを使う場合は、MakefileでUSE_NVLOGシンボルを定義してください。
void nvlog_(const char* fmt, ...);	//USE_NVLOGが定義されていない場合は、nvlog_()は宣言のみで実体を持たない。
#ifdef  USE_NVLOG
#define NVLOG 0 ? (void)0 : nvlog_
#else //USE_NVLOG
#define NVLOG 1 ? (void)0 : nvlog_
#endif//USE_NVLOG

/* アイドルスレッドを使う場合は、USE_IDLEシンボルを定義してください。 */
//{{2014/02/01削除:MakefileのUSE_IDLEで制御するように変更しました。
//#define USE_IDLE /*{{TODO}}*/
//}}2014/02/01削除:MakefileのUSE_IDLEで制御するように変更しました。

/* USBファイルシステムエミュレーションを使う場合は、USE_UFEシンボルを定義してください。 */
//{{2014/02/01削除:MakefileのUSE_UFEで制御するように変更しました。
//#define USE_UFE /*{{TODO}}*/
//}}2014/02/01削除:MakefileのUSE_UFEで制御するように変更しました。

/* USBファイルシステムエミュレーションとトレース出力は併用できません。 */
#if defined(USE_UFE) && defined(TRACE_ON) && (TRACE_ON)
#error USBファイルシステムエミュレーションとトレース出力は併用できません。
#endif /*defined(USE_UFE) && defined(TRACE_ON) && (TRACE_ON)*/

/* TCP/IPプロトコルスイートを使う場合は、USE_TCPIPシンボルを定義してください。 */
//{{2014/02/01削除:MakefileのUSE_TCPIPで制御するように変更しました。
//#define USE_TCPIP /*{{TODO}}*/
//}}2014/02/01削除:MakefileのUSE_TCPIPで制御するように変更しました。

/* TCP/IPプロトコルスイートとトレース出力は併用できません。 */
#if defined(USE_TCPIP) && defined(TRACE_ON) && (TRACE_ON)
#error TCP/IPプロトコルスイートとトレース出力は併用できません。
#endif /*defined(USE_TCPIP) && defined(TRACE_ON) && (TRACE_ON)*/

#ifdef USE_TCPIP
#include "tcpip.h"
#endif /*USE_TCPIP*/

/* 画面出力を使う場合は、USE_VIDRECシンボルを定義してください。 */
//{{2014/02/01削除:MakefileのUSE_VIDRECで制御するように変更しました。
//#define USE_VIDREC /*{{TODO}}*/
//}}2014/02/01削除:MakefileのUSE_VIDRECで制御するように変更しました。

/* 画面出力とトレース出力は併用できません。 */
#if defined(USE_VIDREC) && defined(TRACE_ON) && (TRACE_ON)
#error 画面出力とトレース出力は併用できません。
#endif /*defined(USE_VIDREC) && defined(TRACE_ON) && (TRACE_ON)*/

/* Bison/Flexを使う場合は、USE_BISON_FLEXシンボルを定義してください。 */
//{{2014/02/01削除:MakefileのUSE_BISON_FLEXで制御するように変更しました。
//#define USE_BISON_FLEX
//}}2014/02/01削除:MakefileのUSE_BISON_FLEXで制御するように変更しました。
#ifdef  USE_BISON_FLEX /*{{TODO}}*/
#define YYDEBUG 1 /* 構文解析器追跡機能が不要ならば、この行をコメントアウトしてください */
/* y.tab.y */
extern int yynerrs;
#if     (YYDEBUG!=0)
extern int yydebug;
#endif/*(YYDEBUG!=0)*/
int yyparse();
void yyerror(const char* fmt, ...);
/* lex.yy.l */
extern FILE* yyin;
extern FILE* yyout;
extern int yylineno;
int yylex();
void yylex_init(FILE* input_file);
#endif/*USE_BISON_FLEX*/

/* 抽選テーブルを使う場合は、USE_LOTシンボルを定義してください */
//{{2014/02/01削除:MakefileのUSE_LOTで制御するように変更しました。
//#define USE_LOT /*{{TODO}}*/
//}}2014/02/01削除:MakefileのUSE_LOTで制御するように変更しました。
#ifdef  USE_LOT
#include "LotTbl.h"
extern const int TBL_LotTblNo[];	//MkLotTbl.batがLotTbl.cでなくLotTbl.binを生成するようにした場合、LotTbl.hにTBL_LotTblNo[]の宣言は含まれないので、TBL_LotTblNo[]を明示的に宣言する必要が有る。
#endif/*USE_LOT*/

//演出シーケンサを使う場合は、MakefileでUSE_DIRシンボルを定義してください。
#ifdef  USE_DIR
#include "DirSeq.h"
extern const int TBL_DirTblNo[];	//MkDirSeq.batがDirSeq.cでなくDirSeq.binを生成するようにした場合、DirSeq.hにTBL_DirTblNo[]の宣言は含まれないので、TBL_DirTblNo[]を明示的に宣言する必要が有る。
#endif//USE_DIR

//LEDシーケンサを使う場合は、
//・MakefileでUSE_LEDシンボルを定義してください。
//・LedSeqCh_MaxシンボルにLEDシーケンサチャネル番号の最大値(この番号も含む)を指定してください。
#ifdef  USE_LED
#include "LedDef.h"
extern const int TBL_LedSeqNo[];	//MkLedDef.batがLedDef.cでなくLedDef.binを生成するようにした場合、LedDef.hにTBL_LedSeqNo[]の宣言は含まれないので、TBL_LedSeqNo[]を明示的に宣言する必要が有る。
#define LedSeqCh_Max 3 //{{TODO}}
#endif//USE_LED

//アニメーションシーケンサを使う場合は、MakefileでUSE_ANMシンボルを定義してください。
#ifdef  USE_ANM
#include "AnmSeq.h"
extern const int TBL_AnmSeqNo[];	//MkAnmSeq.batがAnmSeq.cでなくAnmSeq.binを生成するようにした場合、AnmSeq.hにTBL_AnmSeqNo[]の宣言は含まれないので、TBL_AnmSeqNo[]を明示的に宣言する必要が有る。
#endif//USE_ANM

//NCS補間シーケンサを使う場合は、MakefileでUSE_NCSシンボルを定義してください。
#ifdef  USE_NCS
#include "NcsSeq.h"
extern const int TBL_NcsSeqNo[];	//MkNcsSeq.batがNcsSeq.cでなくNcsSeq.binを生成するようにした場合、NcsSeq.hにTBL_NcsSeqNo[]の宣言は含まれないので、TBL_NcsSeqNo[]を明示的に宣言する必要が有る。
#endif//USE_NCS

//レジストリテーブルを使う場合は、MakefileでUSE_REGシンボルを定義してください。
#ifdef  USE_REG
#include "RegTbl.h"
extern const unsigned char TBL_RegTbl[];	//MkRegTbl.batがRegTbl.cでなくRegTbl.binを生成するようにした場合、RegTbl.hにTBL_RegTbl[]の宣言は含まれないので、TBL_RegTbl[]を明示的に宣言する必要が有る。
#endif//USE_REG

//列挙定義を使う場合は、MakefileでUSE_ENMシンボルを定義してください。
#ifdef  USE_ENM
#include "EnmDef.h"
#endif//USE_ENM

//プロパティテーブルを使う場合は、MakefileでUSE_PRPシンボルを定義してください。
#ifdef  USE_PRP
#include "PrpTbl.h"
#endif//USE_PRP

//有限状態機械マップを使う場合は、MakefileでUSE_FSMシンボルを定義してください。
#ifdef  USE_FSM
#include "FsmMap.h"
#endif//USE_FSM

//サウンドシーケンサを使う場合は、MakefileでUSE_SOUND_SEQUENCERシンボルを定義してください。
#ifdef  USE_SOUND_SEQUENCER
#include "TapDef.h"
extern const int TBL_TapSeqNo[];	//MkTapDef.batがTapDef.cでなくTapDef.binを生成するようにした場合、TapDef.hにTBL_TapSeqNo[]の宣言は含まれないので、TBL_TapSeqNo[]を明示的に宣言する必要が有る。
#endif//USE_SOUND_SEQUENCER

//イベントタイマを使う場合は、MakefileでUSE_EVENT_TIMERシンボルを定義してください。
#ifdef  USE_EVENT_TIMER
#include "EvtTmr.h"
extern const int TBL_EvtTmrNo[];	//MkEvtTmr.batがEvtTmr.cでなくEvtTmr.binを生成するようにした場合、EvtTmr.hにTBL_EvtTmrNo[]の宣言は含まれないので、TBL_EvtTmrNo[]を明示的に宣言する必要が有る。
#endif//USE_EVENT_TIMER

/* 2-bit ADPCM Decoderを使う場合は、
 * ・USE_2BIT_ADPCMシンボルを定義してください。
 * ・SOUND_MAXCHシンボルに適切なチャネル数を指定してください。
 */
//{{2014/02/01削除:MakefileのUSE_2BIT_ADPCMで制御するように変更しました。
//#define USE_2BIT_ADPCM /*{{TODO}}*/
//}}2014/02/01削除:MakefileのUSE_2BIT_ADPCMで制御するように変更しました。
#ifdef USE_2BIT_ADPCM
//{{2016/02/16変更:デバイスチャネル数をEnmDef.txtのTapDevChで定義するように変更しました。
//#undef  SOUND_MAXCH	/* clip/clippce.hの定義をキャンセル */
//#define SOUND_MAXCH	4
//↓2016/02/16変更:デバイスチャネル数をEnmDef.txtのTapDevChで定義するように変更しました。
#ifdef  TapDevCh_Max
#undef  SOUND_MAXCH	/* clip/clippce.hの定義をキャンセル */
#define SOUND_MAXCH	(TapDevCh_Max+1)
#endif//TapDevCh_Max
//}}2016/02/16変更:デバイスチャネル数をEnmDef.txtのTapDevChで定義するように変更しました。
/* - 利用するサウンド形式を、標準4-bit ADPCM⇔拡張2-bit ADPCMに切り替えたときに、
 *   ソースコードの変更が少なくて済むよう、以下のマクロを定義することにしました。
 *   標準4-bit ADPCMと拡張2-bit ADPCMを併用する場合は、コメントアウトしてください。
 *   (物理チャネル0で2-bit ADPCM(多重)、物理チャネル1-3で4-bit ADPCMを利用する場合)
 */
#define sound_play	adpcm_play
#define sound_stop	adpcm_stop
#define sound_stat	adpcm_stat
#define sound_att	adpcm_att
#endif /*USE_2BIT_ADPCM*/

/* DSP Group TrueSpeech Decoderを使う場合は、
 * ・USE_TRUESPEECHシンボルを定義してください。
 * ・SOUND_MAXCHシンボルに適切なチャネル数を指定してください。
 */
#ifdef USE_TRUESPEECH
//{{2016/02/16変更:デバイスチャネル数をEnmDef.txtのTapDevChで定義するように変更しました。
//#undef  SOUND_MAXCH	/* clip/clippce.hの定義をキャンセル */
//#define SOUND_MAXCH	4
//↓2016/02/16変更:デバイスチャネル数をEnmDef.txtのTapDevChで定義するように変更しました。
#ifdef  TapDevCh_Max
#undef  SOUND_MAXCH	/* clip/clippce.hの定義をキャンセル */
#define SOUND_MAXCH	(TapDevCh_Max+1)
#endif//TapDevCh_Max
//}}2016/02/16変更:デバイスチャネル数をEnmDef.txtのTapDevChで定義するように変更しました。
/* - 利用するサウンド形式を、標準4-bit ADPCM⇔拡張2-bit ADPCMに切り替えたときに、
 *   ソースコードの変更が少なくて済むよう、以下のマクロを定義することにしました。
 */
#define sound_play	TrueSpeech_PlayCh
#define sound_stop	TrueSpeech_StopCh
#define sound_stat	TrueSpeech_GetChStat
#define sound_att	TrueSpeech_SetChAtt
#endif /*USE_TRUESPEECH*/

/* Sound Managerを使う場合は、
 * ・USE_SOUND_MANAGERシンボルを定義してください。
 * ・SOUND_MANAGER_*_*シンボルに適切なチャネル下限上限を指定してください。
 *   Sound Manager構成を変更する場合は、シンボルの種類を変更してください。
 */
//{{2014/02/01削除:MakefileのUSE_SOUND_MANAGERで制御するように変更しました。
//#define USE_SOUND_MANAGER /*{{TODO}}*/
//}}2014/02/01削除:MakefileのUSE_SOUND_MANAGERで制御するように変更しました。
#ifdef  USE_SOUND_MANAGER
#define SOUND_MANAGER_BGM_MINCH 0		/* BGMチャネル下限 */
#define SOUND_MANAGER_BGM_MAXCH 0		/* BGMチャネル上限 */
#define SOUND_MANAGER_SE1_MINCH 1		/* SE1チャネル下限 */
#define SOUND_MANAGER_SE1_MAXCH 1		/* SE1チャネル上限 */
#define SOUND_MANAGER_SE2_MINCH 2		/* SE2チャネル下限 */
#define SOUND_MANAGER_SE2_MAXCH (SOUND_MAXCH-1)	/* SE2チャネル上限 */
#endif/*USE_SOUND_MANAGER*/

/****************************************************************************
 *	
 ****************************************************************************/

#include "Layout.h"
#include "Define.h"
#include "Struct.h"
#include "Const.h"

/****************************************************************************
 *	
 ****************************************************************************/

void app_init(int argc, char* argv[]);
void app_exit();
void update();
void schedule();
void delay(int frame);
int app_main(int argc, char* argv[]);

/****************************************************************************
 *	
 ****************************************************************************/

#include "work.h"

#endif /*__APP_H__*/
