Forum » » Création-Développement » » *Urgent* besoin d'aide pour Datatype Audio.
Posté : 01-03-2013 19:23
(passé sur le PC pour mieux taper)
Bon dans ce genre de cas de debuggage où je comprends rien de la bug,
où mes yeux ne voyent plus les problèmes et où ça me gave je fais ainsi:
au début de chaque ligne je rajoute LL de cette façon
LL mydtt.MethodID = DTM_TRIGGER;
LL mydtt.dtt_GInfo = NULL;
LL mydtt.dtt_Function = STM_PLAY;
LL mydtt.dtt_Data = NULL;
LL AESound[ iID ].dores = IDataTypes->DoDTMethodA( AESound[ iID ].ObjectPTR, NULL, NULL, (Msg)&mydtt );
LL IExec->Wait( SIGBREAKF_CTRL_C );
LL AESound[ iID ].Playing = 1;
avec LL juste défini ainsi
#define LL printf("Line:%ld\n",__LINE__);
Ainsi ça m'imprime le numéro de la ligne avant le freeze/crash
Note: avec LL faire gaffe aux if() genre:
LL if(truc==NULL)
LL return;
J'ai même un LLL qui fais du pas à pas :
#define LLL debugprintf("Line:%ld\n",__LINE__); OSAlert("OK");
/*==================================================================*/
void OSAlert(void *p1)
{
UBYTE *t=p1;
void *Data=&t+1L;
struct EasyStruct EasyStruct;
ULONG IDCMPFlags;
EasyStruct.es_StructSize=sizeof(struct EasyStruct);
EasyStruct.es_Flags=0L;
EasyStruct.es_Title=(void *)"Message:";
EasyStruct.es_TextFormat=(void*)t;
EasyStruct.es_GadgetFormat=(void*)"OK";
IDCMPFlags=0L;
(void)EasyRequestArgs(NULL,&EasyStruct,&IDCMPFlags,Data);
return;
}
Si le datatype joue "en parallele" de ton prog alors il faudrait voir si il existe un mecanisme de l4OS (interruption survenant une fois son joué ? hook d'action à faire quand survenant une fois son joué ? etcc..) qui peut supprimer ton datatype juste une fois le son joué
Bon courage
Alain
Cet article provient de Le site des utilisateurs francophones actuels et futurs d'AmigaOS 4.x
https://amiga-ng.org/viewtopic.php?topic=1478&forum=14