/*
 *	app.h
 *
 *	dpmucc - ミュージック・データ・コンバーター
 *	Copyright (C) 2015-2017 Naoyuki Sawa
 *
 *	* Thu Jan 22 00:43:59 JST 2015 Naoyuki Sawa
 *	- 1st リリース。
 *	* Sat Jan 24 05:36:54 JST 2015 Naoyuki Sawa
 *	- mmlEnd()のループ処理が間違っていたのを修正しました。
 *	  元のmucc.exeのソース(\usr\PIECE\tools\mucc\mmlcv.c)は正しくて、自分で再実装した際のエンバグです。
 *	* Tue Feb 03 20:30:54 JST 2015 Naoyuki Sawa
 *	- コマンドラインオプション'-p'を追加しました。
 *	* Sun Feb 21 21:02:01 JST 2016 Naoyuki Sawa
 *	- 「Boehm GC」をマルチスレッド対応にした事,及び,それに伴ってclipbpe.cモジュールを修正した事に伴い、当ツールもプロジェクト設定の変更を行ってリビルドしました。
 *	  詳細は、/clip/tool/gc/README.TXT と /clip/clipbpe.c の2015/11/03のコメントを参照して下さい。
 *	- libclipのライブラリ化の伴い、以下の変更を行いました。
 *	  ・extclip.hとextclip.cを削除しました。extclip.hとextclip.cはlibclipに含まれるようになったからです。
 *	  ・"CLiP Files"を削除しました。CLiPライブラリの各モジュールはlibclipに含まれるようになったからです。
 *	  当ツールの動作には変更有りません。
 *	* Tue May 09 22:14:45 JST 2017 Naoyuki Sawa
 *	- ライブラリのバグ修正に伴う、ツールのリビルドを行いました。
 *	  詳細は、clipmisc.cの'Sun May 07 09:13:01 JST 2017 Naoyuki Sawa'のコメントを参照して下さい。
 *	- 前回更新後〜本日までの間に、他のツール群に対して行ったのと同じビルド設定の変更を、当ツールにも対しても適用しました。
 */
#ifndef __APP_H__
#define __APP_H__
#include <clip.h>
#define VERSION		"20170509"	//最終更新日
/****************************************************************************
 *	\usr\PIECE\sysdev\music\seq.c参照
 ****************************************************************************/
enum {
	SEQ_END		= 0x00,
	SEQ_LEX		= 0x7F,
	SEQ_RRR		= 0xE0,
	SEQ_GAT		= 0xE1,
	SEQ_JMP		= 0xE2,
	SEQ_CAL		= 0xE3,
	SEQ_RPT		= 0xE4,
	SEQ_NXT		= 0xE5,
	SEQ_TRS		= 0xE6,
	SEQ_TMP		= 0xE7,
	SEQ_INO		= 0xE8,
	SEQ_VOL		= 0xE9,
	SEQ_ENV		= 0xEA,
	SEQ_DTN		= 0xEB,
	SEQ_NOT		= 0xEC,
	SEQ_PPA		= 0xED,
	SEQ_PON		= 0xEE,
	SEQ_POF		= 0xEF,
	SEQ_TAT		= 0xF0,
	SEQ_VIB		= 0xF1,
//	SEQ_MVL		= 0xF2,
//	SEQ_MFD		= 0xF3,
//	SEQ_PFD		= 0xF4,
//	SEQ_BND		= 0xF5,
	SEQ_BRK		= 0xF6,
	SEQ_NOP		= 0xF7,
	SEQ_LEG		= 0xF8,
	SEQ_LOF		= 0xF9,
	SEQ_EXP		= 0xFA,
	SEQ_EXR		= 0xFB,
//	SEQ_NOP		= 0xFC,
//	SEQ_NOP		= 0xFD,
//	SEQ_NOP		= 0xFE,
//	SEQ_NOP		= 0xFF,
};
/****************************************************************************
 *	app.c
 ****************************************************************************/
extern char	outName[_MAX_PATH];	//出力ファイル名
extern char	srcName[_MAX_PATH];	//現在の入力ファイル名
extern int	srcLine;		//現在の入力ファイルの行番号
extern FILE*	fp;			//現在の入力ストリーム,又は,出力ストリーム
/****************************************************************************
 *	mml.c
 ****************************************************************************/
void mmlSetup();
void mmlParse();
void mmlEnd();
/****************************************************************************
 *	buf.c
 ****************************************************************************/
int getAddr();
int getByte(int addr);
int getWord(int addr);
void addByte(int data);
void addWord(int data);
void addLen(int len);
void putByte(int addr, int data);
void putWord(int addr, int data);
#endif/*__APP_H__*/
