static prMALError SDKCloseFile( imStdParms *stdParms, imFileRef *SDKfileRef, void *privateData) { ImporterLocalRec8H ldataH = reinterpret_cast<ImporterLocalRec8H>(privateData); // If file has not yet been closed if(SDKfileRef && *SDKfileRef != imInvalidHandleValue) { SDKQuietFile(stdParms, SDKfileRef, privateData); } // Remove the privateData handle. // CLEANUP - Destroy the handle we created to avoid memory leaks if(ldataH && *ldataH) { stdParms->piSuites->memFuncs->lockHandle(reinterpret_cast<char**>(ldataH)); ImporterLocalRec8Ptr localRecP = reinterpret_cast<ImporterLocalRec8Ptr>( *ldataH );; stdParms->piSuites->memFuncs->disposeHandle(reinterpret_cast<PrMemoryHandle>(ldataH)); } return malNoError; }
static prMALError SDKCloseFile( imStdParms *stdParms, imFileRef *file, PrivateDataH pdH) { if (file && *file) //If we have a file handle, close it { SDKQuietFile (stdParms, file, pdH); } if (pdH) //If we have private data, release it and clean up { (*pdH)->suiteBasic->ReleaseSuite(kPrSDKAudioSuite, kPrSDKAudioSuiteVersion); if((*pdH)->flacDecoder != NULL) { FLAC__stream_decoder_finish((*pdH)->flacDecoder); FLAC__stream_decoder_delete((*pdH)->flacDecoder); } if((*pdH)->audioConversionBuffer) { stdParms->piSuites->memFuncs->disposePtr((*pdH)->audioConversionBuffer); } stdParms->piSuites->memFuncs->disposeHandle(reinterpret_cast<char**>(pdH)); } return malNoError; }
PREMPLUGENTRY DllExport xImportEntry ( csSDK_int32 selector, imStdParms *stdParms, void *param1, void *param2) { prMALError result = imUnsupported; try{ switch (selector) { case imInit: result = SDKInit(stdParms, reinterpret_cast<imImportInfoRec*>(param1)); break; case imGetInfo8: result = SDKGetInfo8(stdParms, reinterpret_cast<imFileAccessRec8*>(param1), reinterpret_cast<imFileInfoRec8*>(param2)); break; case imOpenFile8: result = SDKOpenFile8( stdParms, reinterpret_cast<imFileRef*>(param1), reinterpret_cast<imFileOpenRec8*>(param2)); break; case imQuietFile: result = SDKQuietFile( stdParms, reinterpret_cast<imFileRef*>(param1), param2); break; case imCloseFile: result = SDKCloseFile( stdParms, reinterpret_cast<imFileRef*>(param1), param2); break; case imAnalysis: result = SDKAnalysis( stdParms, reinterpret_cast<imFileRef>(param1), reinterpret_cast<imAnalysisRec*>(param2)); break; case imGetIndFormat: result = SDKGetIndFormat(stdParms, reinterpret_cast<csSDK_size_t>(param1), reinterpret_cast<imIndFormatRec*>(param2)); break; // Importers that support the Premiere Pro 2.0 API must return malSupports8 for this selector case imGetSupports8: result = malSupports8; break; case imImportAudio7: result = SDKImportAudio7( stdParms, reinterpret_cast<imFileRef>(param1), reinterpret_cast<imImportAudioRec7*>(param2)); break; case imCreateAsyncImporter: result = imUnsupported; break; } }catch(...) { result = imOtherErr; } return result; }
PREMPLUGENTRY DllExport xImportEntry ( csSDK_int32 selector, imStdParms *stdParms, void *param1, void *param2) { prMALError result = imUnsupported; switch (selector) { case imInit: result = SDKInit(stdParms, reinterpret_cast<imImportInfoRec*>(param1)); break; // To be demonstrated // case imShutdown: // To be demonstrated // case imSetPrefs: case imGetInfo8: result = SDKGetInfo8(stdParms, reinterpret_cast<imFileAccessRec8*>(param1), reinterpret_cast<imFileInfoRec8*>(param2)); break; case imImportAudio7: result = SDKImportAudio7(stdParms, reinterpret_cast<imFileRef>(param1), reinterpret_cast<imImportAudioRec7*>(param2)); break; case imOpenFile8: result = SDKOpenFile8( stdParms, reinterpret_cast<imFileRef*>(param1), reinterpret_cast<imFileOpenRec8*>(param2)); break; case imQuietFile: result = SDKQuietFile( stdParms, reinterpret_cast<imFileRef*>(param1), reinterpret_cast<PrivateDataH>(param2)); break; case imCloseFile: result = SDKCloseFile( stdParms, reinterpret_cast<imFileRef*>(param1), reinterpret_cast<PrivateDataH>(param2)); break; case imGetIndFormat: result = SDKGetIndFormat(stdParms, reinterpret_cast<csSDK_size_t>(param1), reinterpret_cast<imIndFormatRec*>(param2)); break; // Importers that support the Premiere Pro 2.0 API must return malSupports8 for this selector case imGetSupports8: result = malSupports8; break; } return result; }