www.pudn.com > NEROSDK5582.ZIP > BurnContext.h


/****************************************************************************** 
|* THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF 
|* ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO 
|* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A 
|* PARTICULAR PURPOSE. 
|*  
|* Copyright 1995-2002 Ahead Software AG. All Rights Reserved. 
|*----------------------------------------------------------------------------- 
|* NeroSDK / NeroCmd 
|* 
|* PROGRAM: BurnContext.h 
|* 
|* PURPOSE: Central class for CD operations 
******************************************************************************/ 
 
 
#ifndef _BURN_CONTEXT_H_ 
#define _BURN_CONTEXT_H_ 
 
 
#include "ExitCode.h" 
#include "getopt.h" 
#include "ErrorLog.h" 
#include "parameters.h"	// Added by ClassView 
 
 
class CBurnContext { 
protected: 
	static bool s_bAborted; 
	NERO_DEVICEHANDLE m_NeroDeviceHandle; 
	NERO_SCSI_DEVICE_INFOS * m_NeroDeviceInfos; 
	NERO_CD_INFO * m_NeroCDInfo; 
	void * m_pCDStamp; 
	bool m_bNeroInitialized; 
	CErrorLog m_ErrorLog; 
 
	static NERO_SETTINGS s_NeroSettings; 
	static NERO_PROGRESS s_NeroProgress; 
 
public: 
	void PrintLogLine(LPCSTR s); 
	EXITCODE Exit (EXITCODE code); 
	CBurnContext (); 
	CBurnContext(PARAMETERS* params); 
	~CBurnContext (); 
 
	EXITCODE WriteImage (const PARAMETERS & params); 
	EXITCODE OpenDevice (const PARAMETERS & params); 
	EXITCODE NeroLoad (void); 
	EXITCODE InitNeroAPI (void); 
	EXITCODE GetAvailableDrives (void); 
	void WriteNeroErrorLog (const PARAMETERS & params); 
	bool OpenLogFile (LPCSTR psLogFilename); 
 
	EXITCODE WriteIsoAudio (const PARAMETERS & params); 
	EXITCODE WriteVideoCD (const PARAMETERS & params); 
	EXITCODE WriteFreestyle (const PARAMETERS & params); 
	EXITCODE CommandErase (const PARAMETERS & params); 
	EXITCODE CommandListDrives (const PARAMETERS & params); 
	EXITCODE CommandCDInfo (const PARAMETERS & params); 
	EXITCODE CommandRead (const PARAMETERS & params); 
	EXITCODE CommandWrite (const PARAMETERS & params); 
	EXITCODE CommandEject (const PARAMETERS & params); 
	void CommandVersion (void); 
 
protected: 
	EXITCODE TranslateNeroToExitCode (NEROAPI_BURN_ERROR err); 
	DWORD GetBurnFlags (const PARAMETERS & params); 
	EXITCODE GetIsoTrack (const PARAMETERS & params, CNeroIsoTrack ** ppIsoTrack, NERO_ISO_ITEM ** ppItem); 
	void DeleteIsoItemTree (NERO_ISO_ITEM * pItem); 
	EXITCODE CreateIsoTree (LPCSTR psFilename, NERO_ISO_ITEM ** ppItem, int iLevel = 0); 
 
	static BOOL WINAPI CtrlHandler (DWORD dwCtrlType); 
	static BOOL NERO_CALLBACK_ATTR IdleCallback (void *pUserData); 
	static NeroUserDlgInOut NERO_CALLBACK_ATTR UserDialog (void * pUserData, NeroUserDlgInOut type, void *data); 
	static BOOL NERO_CALLBACK_ATTR ProgressCallback (void *pUserData, DWORD dwProgressInPercent); 
	static BOOL NERO_CALLBACK_ATTR AbortedCallback (void *pUserData); 
	static void NERO_CALLBACK_ATTR AddLogLine (void *pUserData, NERO_TEXT_TYPE type, const char *text); 
	static void NERO_CALLBACK_ATTR SetPhaseCallback (void *pUserData, const char *text); 
	static void NERO_CALLBACK_ATTR DisableAbortCallback (void *pUserData, BOOL enableAbort); 
	static DWORD NERO_CALLBACK_ATTR WriteIOCallback (void *pUserData, BYTE *pBuffer, DWORD dwLen); 
	static BOOL NERO_CALLBACK_ATTR EOFCallback (void *pUserData); 
	static BOOL NERO_CALLBACK_ATTR ErrorCallback (void *pUserData); 
	static DWORD NERO_CALLBACK_ATTR ReadIOCallback (void *pUserData, BYTE *pBuffer, DWORD dwLen); 
private: 
	const PARAMETERS* m_params; 
	void GetLastErrorLogLine(); 
	char* m_pNeroLastError; 
}; 
 
 
#endif