123456789101112131415161718192021222324252627282930313233343536373839404142 |
- #pragma once
- #include "../Agave/DecodeFile/ifc_audiostream.h"
- #include "../Agave/DecodeFile/api_decodefile.h"
- enum
- {
- BURN_OK = 0, // OK to burn
- BURN_GENERAL_FAILURE = 1, // can't burn, not 100% sure why
- BURN_FILE_NOT_FOUND = 2, // file doesn't exist
- BURN_DRM_NO_LICENSE = 3, // user doesn't have a license to open this DRM protected track
- BURN_DRM_NOT_ALLOWED = 4, // DRM license disallows burning
- BURN_DRM_BURN_COUNT_EXCEEDED= 5, // user has done too many burns already
- BURN_NO_DECODER=6, // no decoder was found to decompress this file
- };
- typedef unsigned __int32 WRESULT;
- class BurnManagerCallback
- {
- public:
- virtual void OnLicenseCallback(size_t numFiles, WRESULT *results) = 0;
- };
- class BurnManager
- {
- public:
- BurnManager();
- ~BurnManager();
- public:
- void SetDecodeAPI(api_decodefile *decoderAPI);
- api_decodefile *GetDecodeAPI(void);
- void SetFiles(size_t numFiles, const wchar_t **filenames, BurnManagerCallback *callback);
- ifc_audiostream *CreateDecoder(const wchar_t *filename);
- void CloseDecoder(ifc_audiostream *decoder);
- void CancelBurn();
- void BurnFinished();
- private:
- api_decodefile *decodeFile;
- void *context; // pImpl (pointer to implementation)
- };
|