/************* * DESCRIPTION: destructor * INPUT: - * OUTPUT: - *************/ IPREVIEW_TEXTURE::~IPREVIEW_TEXTURE() { if(ttable) if(ttable->cleanup) #ifdef __PPC__ ITextureCleanup(ttable); #else ttable->cleanup(); #endif #ifdef __AMIGA__ if(seglist) UnLoadSeg(seglist); #else FreeLibrary(hInst); #endif /* __AMIGA__ */ }
int main (int argc, char ** argv) { struct Library *base1, *base2; BPTR seglist; FPuts(Output(), (STRPTR)"Testing peropener.library\n"); base1=OpenLibrary((STRPTR)"peropener.library",0); base2=OpenLibrary((STRPTR)"peropener.library",0); FPrintf(Output(), (STRPTR)"base1=%lx, base2=%lx\n", base1, base2); if (base1 != NULL) CloseLibrary(base1); if (base2 != NULL) CloseLibrary(base2); FPuts(Output(), (STRPTR)"\nTesting perid.library\n"); base1=OpenLibrary((STRPTR)"perid.library",0); base2=OpenLibrary((STRPTR)"perid.library",0); FPrintf(Output(), (STRPTR)"base1=%lx, base2=%lx\n", base1, base2); seglist = LoadSeg((CONST_STRPTR)"peropenertest_child"); if (seglist != (BPTR)NULL) { RunCommand(seglist, 10*1024, "\n", -1); UnLoadSeg(seglist); } else { FPrintf(Output(), (STRPTR)"Failed to load peropenertest_child\n"); } if (base1 != NULL) CloseLibrary(base1); if (base2 != NULL) CloseLibrary(base2); Flush (Output ()); return 0; }
/************* * DESCRIPTION: Destructor * INPUT: none * OUTPUT: none *************/ IM_TEXT::~IM_TEXT() { if(ttable) { if(ttable->cleanup) { #ifdef __PPC__ ppc_texture_cleanup(ttable->cleanup); #else ttable->cleanup(); #endif // __PPC__ } } #ifdef __AMIGA__ if(seglist) UnLoadSeg(seglist); #else FreeLibrary(hInst); #endif /* __AMIGA__ */ if(name) delete name; }
global bool InitSoundDriver() { int patchNum; Handle patchHandle; /* Load sound driver */ #ifdef IBM if((soundDrv = LoadHandle(soundDriver)) == (Handle)NULL) { RAlert(E_CANT_FIND, soundDriver); return (FALSE); } LockHandle(soundDrv); #endif #ifdef AMIGA if(!(bseg = (struct Segment *) LoadSeg(soundDriver))) { RAlert(E_CANT_FIND, soundDriver); return (FALSE); } drvHandle = (unsigned char far *) (((ulong) bseg << 2) + 4); soundDrv = (Handle) &drvHandle; if((DoSound(SPatchReq,(void far *) *(soundDrv), (int far *) &numberOfVoices, (int far *) &numberOfDACs, (int far *) &devID) & 0x7f) == 5) { if(dummysoundbank) { int bankFile; long bankIndex = 0, bankSize; if((bankFile = open("patch.005")) == NULL) { RAlert(E_NO_PATCH); return (FALSE); } read(bankFile,&bankSize,2); bankSize = dsoundsize; while(bankSize > 1024) { read(bankFile,(dummysoundbank + bankIndex),1024); bankSize -= 1024; bankIndex += 1024; } if(bankSize) { read(bankFile,(dummysoundbank + bankIndex),bankSize); } close(bankFile); } else { UnLoadSeg(bseg); if(!(bseg = (struct Segment *) LoadSeg("amiga3v.drv"))) { RAlert(E_CANT_FIND,soundDriver); return (FALSE); } drvHandle = (unsigned char far *) (((ulong) bseg << 2) + 4); soundDrv = (Handle) &drvHandle; } } else { if(dummysoundbank) { FreeMem(dummysoundbank,dsoundsize); dummysoundbank = NULL; } } seglist[segcount++] = bseg; #endif /* Load patch (if one is needed) * If bit 7 of the patch number is set, then the patch * will need to be locked permanently in hunk */ patchNum = DoSound(SPatchReq,(void far *) *(soundDrv), (int far *) &numberOfVoices, (int far *) &numberOfDACs, (int far *) &devID); #ifdef AMIGA if((patchNum & 0x7f) == 5) { /* This Kludge is temporary, until */ patchNum = -1; /* the Amiga interpreter is capable of*/ } /* handling 64k+ resources */ #endif if(patchNum != -1) { if ((patchNum&0x7f) == 10) patchHandle = DoLoad(RES_PATCH,(patchNum & 0x7f)); else patchHandle = ResLoad(RES_PATCH,(patchNum & 0x7f)); if(patchNum & 0x80) { ResLock(RES_PATCH,(patchNum & 0x7f),TRUE); LockHandle(patchHandle); } } /* Initialize sound driver */ #ifdef IBM if(DoSound(SInit,(char far *) *(patchHandle),0) == -1) { DisposeHandle(soundDrv); RAlert(E_NO_MUSIC); return(FALSE); } #endif #ifdef AMIGA if(dummysoundbank) { DoSound(SInit,dummysoundbank); } else { DoSound(SInit,(char far *) *(patchHandle),0); } #endif InitList(&soundList); InstallServer(SoundServer,1); DoSound(SProcess,TRUE); return(TRUE); }