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