website logo
Auteur
avatar
thellier

Forum » » Création-Développement » » *Urgent* besoin d'aide pour Datatype Audio.


Posté : 01-03-2013 19:23 icone du post

(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