/*************************************************************************
*	MML サポート
*************************************************************************/

int		mml_tone_gen( char *txd, char *name )
{
	char	tmp[256];

	TXD_setBuf( txd, 0, 2, "\r\n");

	sprintf( tmp, "#define\tA_%s\t$TONE_MODIFY(64,64,64, 64,64, 64,64,64)\r\n", name );
	TXD_setBuf( txd, 0, strlen(tmp), tmp);

	sprintf( tmp, "#define\tF_%s\t$INSTFILTER(off:0,off:0,rnd:-1/1)\r\n", name );
	TXD_setBuf( txd, 0, strlen(tmp), tmp);

	sprintf( tmp, "#define\tT_%s\t$F_%s() $INSTMAC(  0, 40, 80, 14,100, 0, 0,12) $A_%s()\r\n", name, name, name );
	TXD_setBuf( txd, 0, strlen(tmp), tmp);

	sprintf( tmp, "#define\tD_%s\t?(delay:*0..8)\r\n", name );
	TXD_setBuf( txd, 0, strlen(tmp), tmp);

	sprintf( tmp, "#define\tO_%s\to4\r\n", name );
	TXD_setBuf( txd, 0, strlen(tmp), tmp);

	sprintf( tmp, "#define\tG_%s\tq92 ?#(gate:*-16..0)\r\n", name );
	TXD_setBuf( txd, 0, strlen(tmp), tmp);

	sprintf( tmp, "#define\tC_%s\tv100 x127 i0 m0 p0\r\n", name );
	TXD_setBuf( txd, 0, strlen(tmp), tmp);

	sprintf( tmp, "#define\t  %s\t$D_%s() $O_%s() $C_%s() $G_%s() $GenPin()\r\n", name, name, name, name, name );
	TXD_setBuf( txd, 0, strlen(tmp), tmp);

	TXD_scnFlush( txd );
	return (NORMAL);
}

int		TxdUsr_mml_toneGen( char *txd )
{
	int		ret;
	char	*dlg;
	char	name[128];

	DSP_writePage(1);
	dlg = DLG_getsOpen( DLGPOS_MOS_SET_HOME, DLGPOS_MOS_SET_HOME, 320,
	    "音色マクロ名を入力してください。");
	DLG_getsSetTitle( dlg, "MML GENERATE" );
	name[0] = '\0';
	ret = DLG_getsStart( dlg, 127, name );
	if ( ret > 0 && name[0] != '\0' )
	{
		mml_tone_gen( txd, name );
	}
	DLG_getsClose(dlg);
	return (0);
}
