website logo
Auteur
avatar
AmiDARK

Forum » » Création-Développement » » question multiview


Posté : 18-10-2012 20:17 icone du post

Bah j'ai pas noté mais pour savoir faut que j'arrive à le refaire planter. Mais je pense que je devais pas libérer le signal comme il faut ou ... une connerie dans le style..

Bon j'ai testé comme suit, en m'inspirant complètement de ton exemple "sans" signaux :

Ma fonction pour charger un son :

void?DELoadSound(?char?*szFilename,?int?iID?){
//??ULONG?res;
//??uint32?longueur?;
??if?(?iID?>?0?){
????if?(?iID???????if?(?DESoundExist(?iID?)?==?0?){
????????if(?DEFileExist(?szFilename?)?==?TRUE?){
??????????AESound[?iID?].ObjectPTR?=?IDataTypes->NewDTObject(?(STRPTR)szFilen ame,
????????????????????????????????????????????????????????????????DTA_GroupID,? GID_SOUND,
????????????????????????????????????????????????????????????????SDTA_Volume,? (uint16)64,
????????????????????????????????????????????????????????????????TAG_END?);
??????????if?(?AESound[?iID?].ObjectPTR?!=?NULL??){
????????????AESound[?iID?].Exist?=?TRUE;
????????????AESound[?iID?].Loop?=?FALSE;
????????????AESound[?iID?].Playing?=?FALSE;
????????????AESound[?iID?].Audio3D?=?0?;?//?This?sound?IS?NOT?a?3D?Audio?soun d.
????????????AESound[?iID?].FileName?=?LCreateString(?256?);
????????????LCopyString(?szFilename,?AESound[?iID?].FileName?);
???????????}
?????????}
???????}
?????}
???}
?}



Ma fonction pour jouer un son :

void?DEPlaySound(?int?iID?){
??struct?dtTrigger?mydtt;
??struct?VoiceHeader?*vh?=?NULL?;
??if?(?DESoundExist(?iID?)?==?1?){
????if?(?AESound[?iID?].Playing?>?0?){
??????DEStopSound(?iID?);
?????}
????mydtt.MethodID?????=?DTM_TRIGGER;?/*?Fill?in?the?dtTrigger?struct?*/
????mydtt.dtt_GInfo????=?NULL;
????mydtt.dtt_Function?=?STM_PLAY;
????mydtt.dtt_Data?????=?NULL;
????#if?defined(?__amigaos4__?)
????????AESound[?iID?].res?=?IDataTypes->GetDTAttrs(?AESound[?iID?].ObjectPTR ,
???????????????????????????????????????????????????SDTA_SampleLength,?&AESoun d[?iID?].longueur,
???????????????????????????????????????????????????SDTA_VoiceHeader,?&vh,
???????????????????????????????????????????????????TAG_END?);
?????#else
????????AESound[?iID?].res?=?GetDTAttrs(?AESound[?iID?].ObjectPTR,
???????????????????????????????????????SDTA_SampleLength,?&AESound[?iID?].lon gueur,
???????????????????????????????????????SDTA_VoiceHeader,?&vh,
???????????????????????????????????????TAG_END?);
?????#endif
????AESound[?iID?].vh?=?vh;
????AESound[?iID?].samplesParSec?=?(int)vh->vh_SamplesPerSec;
????AESound[?iID?].duree?=?(50?*?AESound[?iID?].longueur?)/?AESound[?iID?].sa mplesParSec;????/*?50?ticks/sec??*/
????AESound[?iID?].dores?=?IDataTypes->DoDTMethodA(?AESound[?iID?].ObjectPTR, ?NULL,?NULL,?&mydtt?);
????AESound[?iID?].Playing?=?1;
???}
?}


J'ai un joli warning me pointant sur l'argument #5 de la fonction DoDTMethodA me disant : [Warning] passing argument 5 o 'IDataTypes->DoDTMethodA' from incompatible pointer type.
Je pense que c'est mon bidule qu'appelle pas la bonne version de la fonction.
Car j'ai AUCUN son qui ne sort ...



Message édité par : AmiDARK / 18-10-2012 22:44
Message édité par : AmiDARK / 18-10-2012 22:44
Message édité par : AmiDARK / 19-10-2012 13:39

Cet article provient de Le site des utilisateurs francophones actuels et futurs d'AmigaOS 4.x
https://amiga-ng.org/viewtopic.php?topic=1380&forum=14