I am using datatypes to play some sounds, mainly MP3s. It will work once, then the next sound locks up the computer.
Using STM_STOP does not stop the sound from playing.
Using MultiView I may get 3 MP3s to play before lock up.
mpega.library (libmad version) 2.4
mpega.datatype 20.4 (08/06/2005)
VOID PreviewSoundPlay() { if (!SoundPlaying) { PreviewSoundSignal=IExec->AllocSignal(-1); if ((SoundObject=IDataTypes->NewDTObject(SoundPath, DTA_GroupID, GID_SOUND, SDTA_Volume, 64, SDTA_Cycles, 1, SDTA_Continuous, FALSE, SDTA_FreeSampleData, FALSE, SDTA_SignalTask, IExec->FindTask(NULL), SDTA_SignalBitMask, 1<<PreviewSoundSignal, TAG_END))) { ILayout->SetPageGadgetAttrs((struct Gadget *)Objects[GAD_PREVIEW_SOUND_PLAY],Objects[PAGE_PREVIEW_SOUND],MainWindow,NULL, GA_Selected, TRUE, TAG_DONE); IDataTypes->DoDTMethod(SoundObject,NULL,NULL,DTM_TRIGGER,NULL,STM_PLAY,NULL); SoundPlaying=TRUE; } } else { PreviewSoundFree(); } } VOID PreviewSoundFree() { if (SoundObject) { IDataTypes->DoDTMethod(SoundObject,NULL,NULL,DTM_TRIGGER,NULL,STM_STOP,NULL); IDataTypes->DisposeDTObject(SoundObject); SoundObject=NULL; } if (PreviewSoundSignal) IExec->FreeSignal(PreviewSoundSignal); ILayout->SetPageGadgetAttrs((struct Gadget *)Objects[GAD_PREVIEW_SOUND_PLAY],Objects[PAGE_PREVIEW_SOUND],MainWindow,NULL, GA_Selected, FALSE, TAG_DONE); SoundPlaying=FALSE; }