/***************************************************************/
//
//
//		DirectX	[ debuglog.cpp ]
//
//											Author	kazuki tanaka
//											Date	2017 1/6
/*---------------------------------------------------------------
■Update : 2017/1/6
			debuglog.cppの作成

/*---------------------------------------------------------------
	インクルードファイル
---------------------------------------------------------------*/

#include <stdio.h>
#include "window.h"
#include "d_log.h"

//#include <Windows.h>
//#include <stdio.h>
//#include <d3dx9.h>

//#pragma comment (lib,"d3d9.lib")
//#pragma comment (lib,"d3dx9.lib")
//#pragma comment (lib,"dxguid.lib")

/*---------------------------------------------------------------
	マクロ定義
---------------------------------------------------------------*/

#define LOG_FILENAME "data\\log.txt"

/*----------------------------------------------------------------
	スタティックメンバ変数の初期化
----------------------------------------------------------------*/


// コンストラクタ
CDebugLog::CDebugLog()
{

	filename = NULL;
	pfile = NULL;

}

// デストラクタ
CDebugLog::~CDebugLog()
{


}

// ログファイル書き込みの開始
HRESULT CDebugLog::StartLog( void )
{

	// エラーチェック
	if( !LOG_FILENAME ){
	
		return E_FAIL;
	}

	// ファイルオープン
	pfile = fopen( LOG_FILENAME , "w+" );
	if( !pfile ){

		#ifdef _DEBUG
		MessageBox(NULL, "TXT LOAD ERROR !!", APPLICATION_NAME, MB_OK | MB_ICONINFORMATION );
		#endif	// _DEBUG
		return E_FAIL;
	}
	
	return S_OK;

}

// ログファイル書き込みの開始
HRESULT CDebugLog::StartLog( const LPTSTR FILE_NAME )
{

	// ファイル名の取得
	if( FILE_NAME ){
		filename = FILE_NAME;
	}

	// ファイルオープン
	pfile = fopen( filename , "w+" );
	if( !pfile ){

		#ifdef _DEBUG
		MessageBox(NULL, "TXT LOAD ERROR !!", APPLICATION_NAME, MB_OK | MB_ICONINFORMATION );
		#endif	// _DEBUG
		return E_FAIL;
	}
	
	return S_OK;

}

// ファイルクローズ
void CDebugLog::EndLog( void )
{

	// ファイルクローズ
	fclose( pfile );
	pfile = NULL;

}

// デバッグ情報の書き出し
void CDebugLog::WriteLog( char* fmt, ... )
{

	if( pfile == NULL ){
		
		return;
	}

	// 可変長配列
	va_list ap;
	char buf[ 256 ];
	bool flag = false;
	DWORD word;
	
	// 可変長データの取得
	va_start( ap, fmt );

	// バッファへデータを書き込み
	vsprintf( buf, fmt, ap );
	
	// 終了
	va_end( ap );
	
	// ファイル書き込み
	fprintf( pfile, buf );

}

// ログの表示
void CDebugLog::ShowLog( void )
{

	bool key = false;

	// ファイルがロックされているかどうか確認
	if( pfile ){

		// ファイルクローズ
		CDebugLog::EndLog( );
		key = true;
	}

	// ログファイルの表示
	if( filename ){

		system( filename );
	}

	// keyが掛かっていた場合、再鍵する
	if( key ){
	
		// ファイルオープン
		pfile = fopen( filename , "a+" );
		if( !pfile ){

			#ifdef _DEBUG
			MessageBox(NULL, "TXT LOAD ERROR !!", APPLICATION_NAME, MB_OK | MB_ICONINFORMATION );
			#endif	// _DEBUG
		}
	}

}



