// BonTsDemux.cpp : アプリケーションのクラス動作を定義します。
//

#include "stdafx.h"
#include "BonTsDemux.h"
#include "BonTsDemuxDlg.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#endif


// CBonTsDemuxApp

BEGIN_MESSAGE_MAP(CBonTsDemuxApp, CWinApp)
	ON_COMMAND(ID_HELP, &CWinApp::OnHelp)
END_MESSAGE_MAP()


// CBonTsDemuxApp コンストラクション

CBonTsDemuxApp::CBonTsDemuxApp()
{
	// TODO: この位置に構築用コードを追加してください。
	// ここに InitInstance 中の重要な初期化処理をすべて記述してください。
}


// 唯一の CBonTsDemuxApp オブジェクトです。

CBonTsDemuxApp theApp;


// CBonTsDemuxApp 初期化

BOOL CBonTsDemuxApp::InitInstance()
{
	// アプリケーション マニフェストが visual スタイルを有効にするために、
	// ComCtl32.dll Version 6 以降の使用を指定する場合は、
	// Windows XP に InitCommonControlsEx() が必要です。さもなければ、ウィンドウ作成はすべて失敗します。
	INITCOMMONCONTROLSEX InitCtrls;
	InitCtrls.dwSize = sizeof(InitCtrls);
	// アプリケーションで使用するすべてのコモン コントロール クラスを含めるには、
	// これを設定します。
	InitCtrls.dwICC = ICC_WIN95_CLASSES;
	InitCommonControlsEx(&InitCtrls);

	CWinApp::InitInstance();

    ParseCommandLine(m_CmdInfo);

	// 標準初期化
	// これらの機能を使わずに最終的な実行可能ファイルの
	// サイズを縮小したい場合は、以下から不要な初期化
	// ルーチンを削除してください。
	// 設定が格納されているレジストリ キーを変更します。
	// TODO: 会社名または組織名などの適切な文字列に
	// この文字列を変更してください。
	SetRegistryKey(_T("アプリケーション ウィザードで生成されたローカル アプリケーション"));

	CBonTsDemuxDlg dlg;
	m_pMainWnd = &dlg;
	INT_PTR nResponse = dlg.DoModal();
	if (nResponse == IDOK)
	{
		// TODO: ダイアログが <OK> で消された時のコードを
		//  記述してください。
	}
	else if (nResponse == IDCANCEL)
	{
		// TODO: ダイアログが <キャンセル> で消された時のコードを
		//  記述してください。
	}

	// ダイアログは閉じられました。アプリケーションのメッセージ ポンプを開始しないで
	//  アプリケーションを終了するために FALSE を返してください。
	return FALSE;
}

CCommandLine::CCommandLine()
{
    m_next = 0;
    m_sound_method = 0;
    m_service = 0;
    m_audio_es = 0;
	m_start = FALSE;
	m_quit = FALSE;
	m_disable_rename = FALSE;
	m_rf64 = FALSE;
	m_input_file = "";
	m_output_file = "";
	m_ffmpeg_param = "";
}

void CCommandLine::ParseParam(const TCHAR* pszParam, BOOL bFlag, BOOL bLast)
{
    CCommandLineInfo::ParseParam(pszParam, bFlag, bLast);
    if( bFlag ) {
        CString strOption = pszParam;
        if( strOption == _T("i") ) {
            m_next = INPUT_FILE;
        } else if( strOption == _T("o") ) {
            m_next = OUTPUT_FILE;
        } else if( strOption == _T("srv") ) {
            m_next = SERVICE_NUM;
        } else if( strOption == _T("es") ) {
            m_next = AUDIO_ES;
        } else if( strOption == _T("encode") ) {
            m_next = FFMPEG_PARAM;
        } else if( strOption == _T("sound") ) {
            m_next = SOUND_METHOD;
        } else if( strOption == _T("start") ) {
            m_start = TRUE;
        } else if( strOption == _T("quit") ) {
            m_quit = TRUE;
        } else if( strOption == _T("dn") ) {
            m_disable_rename = TRUE;
        } else if( strOption == _T("rf64") ) {
            m_rf64 = TRUE;
		} else {
		}
	} else {
		if(m_next == INPUT_FILE){
			m_input_file = pszParam;
		} else if(m_next == OUTPUT_FILE){
			m_output_file = pszParam;
		} else if(m_next == FFMPEG_PARAM){
			m_ffmpeg_param = pszParam;
		} else if(m_next == SOUND_METHOD){
			m_sound_method = (DWORD)_wtoi(pszParam);
		} else if(m_next == SERVICE_NUM){
			m_service = (DWORD)_wtoi(pszParam);
		} else if(m_next == AUDIO_ES){
			m_audio_es = (DWORD)_wtoi(pszParam);
		}
		m_next = 0;
	}
}

