/*************************************************************************
*	環境設定
*************************************************************************/

int		SwapDrv = -1;	/* HEwin/EDIA 作業ドライブ	*/
int		HewinRsmidi = 0;
int		EdiaRsmidi  = 0;

#define	_GS_MIDI	1
#define	_GS_RS		2
#define	_GS_TOWNS	3

int		GsplayDev = _GS_MIDI;
int		GsplaySample = 0;

int		He386sample = 0;

int		_inst_cfg_setup()
{
	int		ret;
	char	*dlg;
	char	*btn;
	char	*mnu;
	char	tmp[512], msgbuf[256];

_RETRY:
	/* 確認	------------------------------------------------------------*/
	DSP_writePage(1);
	btn = MNU_allocBtn(2);
	MNU_setBtn( btn, 0, '\r'  , KA_EXEC  , 1, "設定 : [実行]" );
	MNU_setBtn( btn, 1, '\x1B', KA_CANCEL, 2, "中止 : [取消]" );
	ret = MNU_selectBtn( DlgX0, DlgY0,
	    C_MBLACK, C_DLGBASE, COLMIX(C_INFO,C_GRAY), SELBTN_ATT_CENTER, 2, btn,
	    "    インストール・アプリケーションの設定を行います。  " );
	MNU_freeBtn( btn );
	if ( ret != 1)
		return (1);

	/* HEwin/EDIA スワップドライブ	------------------------------------*/
	dlg = DLG_getsOpen( DlgX0, DlgY0, 320,
	    "HEwin/EDIA の作業ドライブを指定してください。\n省略した場合は環境変数TMP を参照します。");
	DLG_getsSetTitle( dlg, "SWAPOUT DRIVE" );
	if ( SwapDrv >= 0 )
		sprintf(tmp,"%c",SwapDrv + 'A');
	else
		tmp[0] = '\0';
	ret = DLG_getsStart( dlg, 4, tmp );
	DLG_getsClose(dlg);
	if ( ret < 0 )
		goto _RETRY;
	if ( isalpha(tmp[0]) )
		SwapDrv = toupper(tmp[0]) - 'A';
	else
		SwapDrv - 1;

	/* HEwin RS-232C MIDI	--------------------------------------------*/
	btn = MNU_allocBtn(2);
	MNU_setBtn( btn, 0, '\r', KA_EXEC  , 1, "MIDI : [実行]" );
	MNU_setBtn( btn, 1, 'R' , KA_R     , 2, "RS-232C : [R]" );
	sprintf(tmp,
	    "  HEwin のMIDIインターフェースを指定してください。\n\n%s\n%s\n\n%s\n%s",
	    "MIDI    … MIDIカード          ",
	    "RS-232C … RS-232C MIDIアダプタ",
	    "   BGM 演奏機能を使わない場合は[MIDI]を指定してください。",
	    "※ RS-232C を指定すると通信機能が使えなくなります。      " );
	ret = MNU_selectBtn( DlgX0, DlgY0,
	    C_MBLACK, C_DLGBASE, COLMIX(C_INFO,C_GRAY), SELBTN_ATT_CENTER, 2, btn,
	    tmp);
	MNU_freeBtn( btn );
	switch ( ret)
	{
		case 1:		HewinRsmidi = 0;	break;	/* Normal MIDI	*/
		case 2:		HewinRsmidi = 1;	break;	/* RS-232C MIDI	*/
		default:	goto _RETRY;
	}

	/* EDIA RS-232C MIDI	--------------------------------------------*/
	btn = MNU_allocBtn(2);
	MNU_setBtn( btn, 0, '\r', KA_EXEC  , 1, "MIDI : [実行]" );
	MNU_setBtn( btn, 1, 'R' , KA_R     , 2, "RS-232C MIDI : [R]" );
	ret = MNU_selectBtn( DlgX0, DlgY0,
	    C_MBLACK, C_DLGBASE, COLMIX(C_INFO,C_GRAY), SELBTN_ATT_CENTER, 2, btn,
	    "   EDIA のMIDIインターフェースを指定してください。  \n\n%s\n%s\n\n%s",
	    "MIDI    … MIDIカード          ",
	    "RS-232C … RS-232C MIDIアダプタ",
	    "BGM 演奏機能を使わない場合は[MIDI]を指定してください。" );
	MNU_freeBtn( btn );
	switch ( ret)
	{
		case 1:		EdiaRsmidi = 0;	break;	/* Normal MIDI	*/
		case 2:		EdiaRsmidi = 1;	break;	/* RS-232C MIDI	*/
		default:	goto _RETRY;
	}

	/* GSPLAY MIDIボード	--------------------------------------------*/
	btn = MNU_allocBtn(3);
	MNU_setBtn( btn, 0, '\r', KA_EXEC, _GS_MIDI , "MIDI CARD :[実行]" );
	MNU_setBtn( btn, 1, 'R' , KA_R   , _GS_RS   , "RS-232C MIDI : [R]" );
	MNU_setBtn( btn, 2, 'T' , KA_T   , _GS_TOWNS, "TOWNS only : [T]" );
	ret = MNU_selectBtn( DlgX0, DlgY0,
	    C_MBLACK, C_DLGBASE, COLMIX(C_INFO,C_GRAY), SELBTN_ATT_CENTER, 3, btn,
	    "  GSPLAYで使用するMIDIインターフェースを指定してください。\n\n%s\n%s\n%s",
	    "MIDI CARD    … FMT-401/402/403,MC-P23T",
	    "RS-232C MIDI … RS-232C MIDI アダプタ  ",
	    "TOWNS only   … 内蔵音源のみ           " );
	MNU_freeBtn( btn );
	if ( ret < _GS_MIDI || ret > _GS_TOWNS )
		goto _RETRY;
	GsplayDev = ret;

	/* GSPLAY サンプルデータ	----------------------------------------*/
	btn = MNU_allocBtn(2);
	MNU_setBtn( btn, 0, '\r'  , KA_EXEC  , 1, "ｲﾝｽﾄｰﾙする : [実行]" );
	MNU_setBtn( btn, 1, '\x1B', KA_CANCEL, 2, "しない : [取消]" );
	ret = MNU_selectBtn( DlgX0, DlgY0,
	    C_MBLACK, C_DLGBASE, COLMIX(C_INFO,C_GRAY), SELBTN_ATT_CENTER, 2, btn,
	    "  GSPLAY用サンプル演奏データはインストールしますか？  \nｲﾝｽﾄｰﾙに必要な容量は84KBです（1ｸﾗｽﾀ＝4KB）" );
	MNU_freeBtn( btn );
	switch ( ret )
	{
		case 1:		GsplaySample = 1;	break;	/* ｲﾝｽﾄｰﾙする	*/
		case 2:		GsplaySample = 0;	break;	/* しない		*/
		default:	goto _RETRY;
	}

	/* HE386 サンプルデータ	----------------------------------------*/
	btn = MNU_allocBtn(2);
	MNU_setBtn( btn, 0, '\r'  , KA_EXEC  , 1, "ｲﾝｽﾄｰﾙする : [実行]" );
	MNU_setBtn( btn, 1, '\x1B', KA_CANCEL, 2, "しない : [取消]" );
	ret = MNU_selectBtn( DlgX0, DlgY0,
	    C_MBLACK, C_DLGBASE, COLMIX(C_INFO,C_GRAY), SELBTN_ATT_CENTER, 2, btn,
	    "  HE386用のサンプルデータはインストールしますか？  \nｲﾝｽﾄｰﾙに必要な容量は104KBです（1ｸﾗｽﾀ＝4KB）" );
	MNU_freeBtn( btn );
	switch ( ret )
	{
		case 1:		He386sample = 1;	break;	/* ｲﾝｽﾄｰﾙする	*/
		case 2:		He386sample = 0;	break;	/* しない		*/
		default:	goto _RETRY;
	}

	/* ファイル複写方法	----------------------------------------*/
	btn = MNU_allocBtn(2);
	MNU_setBtn( btn, 0, '\r', KA_EXEC, 1, "UPDATE : [実行]" );
	MNU_setBtn( btn, 1, 'O' , KA_O   , 2, "OVERWRITE : [O]" );
	ret = MNU_selectBtn( DlgX0, DlgY0,
	    C_MBLACK, C_DLGBASE, COLMIX(C_INFO,C_GRAY), SELBTN_ATT_CENTER, 2, btn,
	    "  ｲﾝｽﾄｰﾙ時のファイルの複写モードを決めてください。\n\n%s\n%s",
	    "UPDATE    … タイムスタンプを比較して新しいファイルを複写",
	    "OVERWRITE … 無条件に複写（上書き）する                  " );
	MNU_freeBtn( btn );
	switch ( ret )
	{
		case 1:		InstUpdate = 1;	break;
		case 2:		InstUpdate = 0;	break;
		default:	goto _RETRY;
	}


	/* 確認	------------------------------------------------------------*/
	dsp_init(NULL);
	DSP_writePage(0);
	dspmsg_setpos(24,32,20);
	dspmsg_puts("●  設定状態");
	dspmsg_setpos(24,64,18);

	if ( SwapDrv < 0 )
		sprintf(tmp,"環境変数TMP 参照");
	else
		sprintf(tmp,"%c ドライブ", (int)(SwapDrv+'A'));
	sprintf(msgbuf,"HEwin/EDIA 作業ドライブ            [%s]", tmp);
	dspmsg_puts(msgbuf);

	sprintf(msgbuf,"HEwin のMIDI演奏デバイス           [%s]",
	    HewinRsmidi ? "RS-232C" : "MIDI");
	dspmsg_puts(msgbuf);

	sprintf(msgbuf,"EDIA  のMIDI演奏デバイス           [%s]",
	    EdiaRsmidi ? "RS-232C" : "MIDI");
	dspmsg_puts(msgbuf);

	switch ( GsplayDev )
	{
		case _GS_MIDI:	strcpy(tmp,"MIDI");		break;
		case _GS_RS:	strcpy(tmp,"RS-232C");	break;
		case _GS_TOWNS:	strcpy(tmp,"内蔵音源");	break;
	}
	sprintf(msgbuf,"GSPLAY 演奏デバイス                [%s]", tmp);
	dspmsg_puts(msgbuf);

	sprintf(msgbuf,"GSPLAY用サンプル演奏データのｲﾝｽﾄｰﾙ [%s]",
	    GsplaySample ? "する" : "しない");
	dspmsg_puts(msgbuf);

	sprintf(msgbuf,"HE386用サンプルデータのｲﾝｽﾄｰﾙ      [%s]",
	    He386sample ? "する" : "しない");
	dspmsg_puts(msgbuf);

	sprintf(msgbuf,"ｲﾝｽﾄｰﾙ時のファイル複写動作         [%s]",
	    InstUpdate ? "UPDATE" : "OVERWRITE");
	dspmsg_puts(msgbuf);

	DSP_writePage(1);
	btn = MNU_allocBtn(2);
	MNU_setBtn( btn, 0, 'Y', KA_Y, 1, "設定完了 : [Y]" );
	MNU_setBtn( btn, 1, 'R', KA_R, 2, "再設定 : [R]"    );
	ret = MNU_selectBtn( DlgX0, DlgY0,
	    C_MBLACK, C_DLGBASE, COLMIX(C_INFO,C_GRAY), SELBTN_ATT_CENTER, 2, btn,
	    "  設定はこれでいいですか？" );
	MNU_freeBtn( btn );
	if ( ret != 1 )
		goto _RETRY;

	return (0);
}
