extern MADErr PPImpExpMain(MADFourChar order, char* AlienFileName, MADMusic *MadFile, MADInfoRec *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); if (AlienFile == NULL) { myErr = MADNeedMemory; } else { myErr = iRead(sndSize, AlienFile, iFileRefI); if (myErr == MADNoErr) { myErr = TestoldMADFile(AlienFile); if (myErr == MADNoErr) { myErr = MADFG2Mad(AlienFile, sndSize, MadFile, init); } } free(AlienFile); AlienFile = NULL; } iClose(iFileRefI); } else myErr = MADReadingErr; break; case MADPlugTest: iFileRefI = iFileOpenRead(AlienFileName); if (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 = TestoldMADFile(AlienFile); free(AlienFile); AlienFile = NULL; } iClose(iFileRefI); } else myErr = MADReadingErr; break; case MADPlugInfo: 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 = ExtractoldMADInfo(info, AlienFile); } free(AlienFile); AlienFile = NULL; } iClose(iFileRefI); } else myErr = MADReadingErr; break; default: myErr = MADOrderNotImplemented; break; } return myErr; }
OSErr mainMADfg( 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 * 2L, init); if( AlienFile == NULL) myErr = MADNeedMemory; // ** MEMORY Test End else { DisposePtr( AlienFile); AlienFile = MADPlugNewPtr( sndSize, init); myErr = iRead(sndSize, AlienFile, iFileRefI); if( myErr == noErr) { myErr = TestoldMADFile( AlienFile); if( myErr == noErr) { myErr = MADFG2Mad( AlienFile, GetPtrSize( AlienFile), MadFile, init); } } DisposePtr( AlienFile); AlienFile = NULL; } iClose( iFileRefI); } else myErr = MADReadingErr; break; case 'TEST': iFileRefI = iFileOpen( AlienFileName); if( 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 = TestoldMADFile( 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 = ExtractoldMADInfo( info, AlienFile); } DisposePtr( AlienFile); AlienFile = NULL; } iClose( iFileRefI); } else myErr = MADReadingErr; break; default: myErr = MADOrderNotImplemented; break; } return myErr; }