www.pudn.com > NEROSDK5582.ZIP > parameters.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: parameters.h
|*
|* PURPOSE: PARAMETERS class declaration, COMMAND_LINE_ERRORS enumeration
|* enumerations for available burn types and commands; structure
|* for storing a track list.
******************************************************************************/
#ifndef _PARAMETERS_H_
#define _PARAMETERS_H_
#include "SimpleStringArray.h"
#include "NeroAPI.h"
// These are errors that happen when command line arguments are parsed.
enum COMMAND_LINE_ERRORS {
CLE_NO_ERROR = 0,
CLE_MULTIPLE_COMMANDS_SPECIFIED,
CLE_MISSING_DRIVE_NAME_PARAMETER,
CLE_MISSING_ARTIST_PARAMETER,
CLE_MISSING_TITLE_PARAMETER,
CLE_MISSING_SPEED_PARAMETER,
CLE_INVALID_SPEED_PARAMETER,
CLE_MISSING_ISO_PARAMETER,
CLE_INVALID_PARAMETER,
CLE_BURN_TYPE_ALREADY_SPECIFIED,
CLE_MISSING_TRACK_PARAMETER,
CLE_MAXIMUM_NUMBER_OF_TRACKS_REACHED,
CLE_PARAMETER_FILE_ALREADY_PROCESSED,
CLE_MISSING_IMAGE_PARAMETER,
CLE_MISSING_ERROR_LOG_PARAMETER,
CLE_MISSING_IMPORT_PARAMETER,
CLE_INVALID_IMPORT_PARAMETER,
CLE_NEED_TRACKS,
CLE_BURN_TYPE_NOT_SPECIFIED,
CLE_MAX
};
// Enumeration of available commands
enum COMMAND {
COMMAND_UNKNOWN = 0,
COMMAND_LISTDRIVES,
COMMAND_READ,
COMMAND_WRITE,
COMMAND_CDINFO,
COMMAND_ERASE,
COMMAND_EJECT,
COMMAND_LOAD,
COMMAND_VERSION,
};
// Enumeration of available CD formats
enum BURNTYPE {
BURNTYPE_UNKNOWN = 0,
BURNTYPE_ISOAUDIO,
BURNTYPE_VIDEOCD,
BURNTYPE_SVIDEOCD,
BURNTYPE_IMAGE,
BURNTYPE_FREESTYLE,
};
// Track structure
struct TRACK {
int m_iTrack;
LPCSTR m_psFilename;
NERO_TRACKMODE_TYPE m_Mode;
};
class PARAMETERS {
public:
PARAMETERS ();
~PARAMETERS () {}
private:
bool m_bForceEraseCDRW;
bool m_bNeroLogTimestamp;
COMMAND m_Command;
LPCSTR m_psDriveName;
bool m_bReal;
bool m_bTAO;
bool m_bUnderRunProt;
LPCSTR m_psArtist;
LPCSTR m_psTitle;
int m_iSpeed;
bool m_bCDExtra;
bool m_bEnableAbort;
bool m_bSpeedTest;
bool m_bCloseSession;
int m_iSessionToImport;
bool m_bDetectNonEmptyCDRW;
bool m_bCDText;
bool m_bUseRockridge;
bool m_bCreateIsoFS;
bool m_bCreateUdfFS;
bool m_bImportRockridge;
bool m_bImportIsoOnly;
bool m_bPreferRockridge;
bool m_bDisableEject;
bool m_bVerify;
bool m_bAudioSelected;
bool m_bISOSelected;
LPCSTR m_psVolumeName;
bool m_bJoliet;
bool m_bMode2;
bool m_bVolumeNameSupplied;
bool m_bDVD;
BURNTYPE m_BurnType;
LPCSTR m_psImageFilename;
NEROAPI_CDRW_ERASE_MODE m_eEraseMode;
int m_iNumTracks;
TRACK m_Tracks[99];
bool m_bWriteNeroErrorLog;
LPCSTR m_psErrorLogFilename;
CSimpleStringArray m_FileList;
bool m_bProcessedParameterFile;
const TRACK GetTrack (int iTrack) const;
TRACK& GetTrack (int iTrack);
public:
const bool GetForceEraseCDRW() const;
COMMAND_LINE_ERRORS SetForceEraseCDRW();
COMMAND_LINE_ERRORS SetNeroLogTimestamp();
const bool GetNeroLogTimestamp() const;
COMMAND_LINE_ERRORS AddAudioIsoFreestyleWriteTrack(int& argc, char**& argv);
COMMAND_LINE_ERRORS AddAudioReadTrack(int& argc, char**& argv);
COMMAND_LINE_ERRORS SetFreestyleBurnType(int& argc, char**& argv);
COMMAND_LINE_ERRORS SetImageBurnType(int& argc, char**& argv);
// Access functions
const COMMAND GetCommand() const;
COMMAND_LINE_ERRORS SetCommand (COMMAND Command);
const LPCSTR GetDriveName() const;
COMMAND_LINE_ERRORS SetDriveName (int& argc, char**& argv);
const bool GetUseReal() const;
COMMAND_LINE_ERRORS SetUseReal ();
const bool GetUseTAO() const;
COMMAND_LINE_ERRORS SetUseTAO ();
const bool GetUseUnderRunProt() const;
COMMAND_LINE_ERRORS SetUseUnderRunProt ();
const LPCSTR GetArtist() const;
COMMAND_LINE_ERRORS SetArtist (int& argc, char**& argv);
const LPCSTR GetTitle() const;
COMMAND_LINE_ERRORS SetTitle (int& argc, char**& argv);
const bool GetAudioSelected() const;
COMMAND_LINE_ERRORS SetAudioSelected ();
const int GetSpeed() const;
COMMAND_LINE_ERRORS SetSpeed (int& argc, char**& argv);
const bool GetUseCDExtra() const;
COMMAND_LINE_ERRORS SetCDExtra ();
const bool GetEnableAbort() const;
COMMAND_LINE_ERRORS SetEnableAbort ();
const bool GetUseSpeedTest() const;
COMMAND_LINE_ERRORS SetSpeedTest ();
const bool GetCloseSession() const;
COMMAND_LINE_ERRORS SetCloseSession ();
const int GetSessionToImport() const;
COMMAND_LINE_ERRORS SetSessionToImport (int& argc, char**& argv);
const bool GetDetectNonEmptyCDRW() const;
COMMAND_LINE_ERRORS SetDetectNonEmptyCDRW ();
const bool GetUseCDText() const;
COMMAND_LINE_ERRORS SetUseCDText ();
const bool GetUseRockridge() const;
COMMAND_LINE_ERRORS SetUseRockridge ();
const bool GetCreateIsoFs() const;
COMMAND_LINE_ERRORS SetCreateIsoFs ();
const bool GetCreateUdfFS() const;
COMMAND_LINE_ERRORS SetCreateUdfFs ();
const bool GetImportRockridge() const;
COMMAND_LINE_ERRORS SetImportRockridge ();
const bool GetImportIsoOnly() const;
COMMAND_LINE_ERRORS SetImportIsoOnly ();
const bool GetPreferRockRidge() const;
COMMAND_LINE_ERRORS SetPreferRockridge ();
const bool GetDisableEject() const;
COMMAND_LINE_ERRORS SetDisableEject ();
const bool GetVerify() const;
COMMAND_LINE_ERRORS SetVerify ();
const bool GetISOSelected() const;
COMMAND_LINE_ERRORS SetISOSelected (int& argc, char**& argv);
const LPCSTR GetVolumeName() const;
COMMAND_LINE_ERRORS SetVolumeName (char* psName);
const bool GetUseJoliet() const;
COMMAND_LINE_ERRORS SetUseJoliet ();
const bool GetUseMode2() const;
COMMAND_LINE_ERRORS SetUseMode2 ();
const bool GetVolumeNameSupplied() const;
COMMAND_LINE_ERRORS SetVolumeNameSupplied ();
const bool GetUseDVD() const;
COMMAND_LINE_ERRORS SetUseDVD ();
const BURNTYPE GetBurnType () const;
COMMAND_LINE_ERRORS SetBurnType (BURNTYPE Type);
const LPCSTR GetImageFileName () const;
COMMAND_LINE_ERRORS SetImageFileName (const char* psName);
COMMAND_LINE_ERRORS SetEraseMode (NEROAPI_CDRW_ERASE_MODE);
const NEROAPI_CDRW_ERASE_MODE GetEraseMode () const;
COMMAND_LINE_ERRORS SetTrackNumber(int iTrack, int iNumber);
COMMAND_LINE_ERRORS IncrementNumberOfTracks();
COMMAND_LINE_ERRORS SetTrackMode(int iTrack, NERO_TRACKMODE_TYPE eType);
const int GetNumberOfTracks () const;
COMMAND_LINE_ERRORS SetTrackFileName (int iTrack, const char* psName);
const int GetTrackNumber(int iTrack) const;
const LPCSTR GetTrackFileName (int iTrack) const;
const NERO_TRACKMODE_TYPE GetTrackMode(int iTrack) const;
const bool StillTrackSpaceLeft() const;
bool GetProcessedParameterFile ();
COMMAND_LINE_ERRORS SetProcessedParameterFile ();
bool GetWriteErrorLog () const;
COMMAND_LINE_ERRORS SetWriteErrorLog ();
COMMAND_LINE_ERRORS SetErrorLogName (int& argc, char**& argv);
LPCSTR GetErrorLogName() const;
const CSimpleStringArray& GetFileList() const;
CSimpleStringArray& GetFileList();
int GetFileListSize() const;
};
#endif