BurnCore.h 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. #include "FileInterface.h"
  2. #include "include/NeroAPIGlue.h"
  3. #include "include/NeroAPI.h"
  4. #include <stdio.h>
  5. #include "NeroProgress.h"
  6. class CBurnContextProgress : public CNeroProgress
  7. {
  8. public:
  9. CBurnContextProgress ();
  10. };
  11. class CWriteToDVD:public IWriteCD
  12. {
  13. friend CBurnContextProgress;
  14. private:
  15. NERO_DEVICEHANDLE m_handle;
  16. FILE*m_log;
  17. string m_cdtitle;
  18. int m_cd_type;//0=cd,1=dvd
  19. bool m_IsEject;
  20. //bool m_Burning;
  21. //NERO_PROGRESS npProgress;
  22. //bool m_Aborted;
  23. protected:
  24. static bool s_bAborted;
  25. static NERO_SETTINGS s_NeroSettings;
  26. public:
  27. CWriteToDVD():m_handle(0),
  28. m_cdtitle(""),m_cd_type(1){
  29. };
  30. ~CWriteToDVD();
  31. //virtual function list
  32. EXITCODE SetCDParam(CDPARAM *cdParam);
  33. NERO_CD_INFO * GetCDParam();
  34. EXITCODE BurnData(const CFileList *listRecData);
  35. void StopBurn(){CWriteToDVD::s_bAborted = true;};
  36. EXITCODE InitNero();
  37. void LogError(char *action);
  38. int LogError(const char * format, ...);
  39. //bool IsAbort(){return m_Aborted;}
  40. static BOOL WINAPI CtrlHandler (DWORD dwCtrlType);
  41. static BOOL NERO_CALLBACK_ATTR IdleCallback (void *pUserData);
  42. static NeroUserDlgInOut NERO_CALLBACK_ATTR UserDialog (void * pUserData, NeroUserDlgInOut type, void *data);
  43. static BOOL NERO_CALLBACK_ATTR ProgressCallback (void *pUserData, DWORD dwProgressInPercent);
  44. static BOOL NERO_CALLBACK_ATTR AbortedCallback (void *pUserData);
  45. static void NERO_CALLBACK_ATTR AddLogLine (void *pUserData, NERO_TEXT_TYPE type, const char *text);
  46. static void NERO_CALLBACK_ATTR SetPhaseCallback (void *pUserData, const char *text);
  47. static void NERO_CALLBACK_ATTR SetMajorPhaseCallback (void *pUserData, NERO_MAJOR_PHASE phase, void * reserved);
  48. static void NERO_CALLBACK_ATTR DisableAbortCallback (void *pUserData, BOOL enableAbort);
  49. static DWORD NERO_CALLBACK_ATTR WriteIOCallback (void *pUserData, BYTE *pBuffer, DWORD dwLen);
  50. static BOOL NERO_CALLBACK_ATTR EOFCallback (void *pUserData);
  51. static BOOL NERO_CALLBACK_ATTR ErrorCallback (void *pUserData);
  52. static DWORD NERO_CALLBACK_ATTR ReadIOCallback (void *pUserData, BYTE *pBuffer, DWORD dwLen);
  53. };
  54. void DeleteIsoItemTree (NERO_ISO_ITEM * pItem);
  55. void FreeOurOwnResources (NERO_ISO_ITEM * pItem);
  56. EXITCODE CreateIsoTree (bool Recursive, LPCSTR psFilename, NERO_ISO_ITEM ** ppItem, int iLevel=0);
  57. bool MergeIsoTrack (NERO_ISO_ITEM ** ppItemFirst, NERO_ISO_ITEM * pItemToAdd);
  58. EXITCODE GetIsoTrack (string s_VolumeName,const CFileList *fList,CNeroIsoTrack** ppIsoTrack, NERO_ISO_ITEM** ppItem);