OSErr mainULT( OSType order, Ptr AlienFileName, MADMusic *MadFile, PPInfoRec *info, MADDriverSettings *init) { OSErr myErr = noErr; Ptr AlienFile; UNFILE iFileRefI; long sndSize; switch( order) { case 'IMPL': iFileRefI = iFileOpen(AlienFileName); if( iFileRefI) { sndSize = iGetEOF( iFileRefI); // ** MEMORY Test Start AlienFile = MADPlugNewPtr( sndSize * 2, init); if( AlienFile == NULL) myErr = MADNeedMemory; // ** MEMORY Test End else { DisposePtr( AlienFile); AlienFile = MADPlugNewPtr( sndSize, init); if( AlienFile == NULL) myErr = MADNeedMemory; else { myErr = iRead(sndSize, AlienFile, iFileRefI); if( myErr == noErr) { myErr = TestULTFile( AlienFile); if( myErr == noErr) { myErr = ConvertULT2Mad( AlienFile, GetPtrSize( AlienFile), MadFile, init); } } } DisposePtr( AlienFile); AlienFile = NULL; } iClose( iFileRefI); } else myErr = MADReadingErr; break; case 'TEST': iFileRefI = iFileOpen(AlienFileName); if( iFileRefI) { sndSize = 1024L; AlienFile = MADPlugNewPtr( sndSize, init); if( AlienFile == NULL) myErr = MADNeedMemory; else { myErr = iRead(sndSize, AlienFile, iFileRefI); if (myErr == noErr) myErr = TestULTFile( AlienFile); DisposePtr( AlienFile); AlienFile = NULL; } iClose( iFileRefI); } else myErr = MADReadingErr; break; case 'INFO': iFileRefI = iFileOpen(AlienFileName); if( iFileRefI) { info->fileSize = iGetEOF( iFileRefI); sndSize = 5000L; // Read only 5000 first bytes for optimisation AlienFile = MADPlugNewPtr( sndSize, init); if( AlienFile == NULL) myErr = MADNeedMemory; else { myErr = iRead(sndSize, AlienFile, iFileRefI); if( myErr == noErr) { myErr = ExtractULTInfo( info, AlienFile); } DisposePtr( AlienFile); AlienFile = NULL; } iClose( iFileRefI); } else myErr = MADReadingErr; break; default: myErr = MADOrderNotImplemented; break; } return myErr; }
extern MADErr PPImpExpMain(MADFourChar order, char *AlienFileName, MADMusic *MadFile, PPInfoRec *info, MADDriverSettings *init) #endif { MADErr myErr = MADNoErr; void* AlienFile; UNFILE iFileRefI; long sndSize; switch (order) { case MADPlugImport: iFileRefI = iFileOpenRead(AlienFileName); if (iFileRefI) { sndSize = iGetEOF(iFileRefI); // ** MEMORY Test AlienFile = malloc(sndSize * 2); if (AlienFile == NULL) { myErr = MADNeedMemory; } else { free(AlienFile); AlienFile = (char*)malloc(sndSize); if (AlienFile == NULL) { myErr = MADNeedMemory; } else { myErr = iRead(sndSize, AlienFile, iFileRefI); if (myErr == MADNoErr) { myErr = TestULTFile(AlienFile); if (myErr == MADNoErr) { myErr = ConvertULT2Mad(AlienFile, sndSize, MadFile, init); } } } free(AlienFile); AlienFile = NULL; } iClose(iFileRefI); } else myErr = MADReadingErr; break; case MADPlugTest: iFileRefI = iFileOpenRead(AlienFileName); if (iFileRefI) { sndSize = 1024; AlienFile = malloc(sndSize); if (AlienFile == NULL) { myErr = MADNeedMemory; } else { myErr = iRead(sndSize, AlienFile, iFileRefI); if (myErr == MADNoErr) myErr = TestULTFile(AlienFile); free(AlienFile); AlienFile = NULL; } iClose(iFileRefI); } else myErr = MADReadingErr; break; case 'INFO': iFileRefI = iFileOpenRead(AlienFileName); if (iFileRefI) { info->fileSize = iGetEOF(iFileRefI); sndSize = 5000; // Read only 5000 first bytes for optimisation AlienFile = malloc(sndSize); if (AlienFile == NULL) { myErr = MADNeedMemory; } else { myErr = iRead(sndSize, AlienFile, iFileRefI); if (myErr == MADNoErr) { myErr = ExtractULTInfo(info, AlienFile); } free(AlienFile); AlienFile = NULL; } iClose(iFileRefI); } else myErr = MADReadingErr; break; default: myErr = MADOrderNotImplemented; break; } return myErr; }