Annonces Google
Serveur IRC
Serveur : irc.portlane.se
Canal : #AmigaNG
Activité du Site

Pages vues depuis 25/07/2007 : 25 320 328

  • Nb. de membres 187
  • Nb. d'articles 1 270
  • Nb. de forums 19
  • Nb. de sujets 20
  • Nb. de critiques 24

Top 10  Statistiques

Index du forum »»  Création-Développement »» question multiview

question multiview#1380

8Contributeur(s)
sinisrusTarzinCreolsthellierzzd10hElwoodLioAmiDARK
3 Modérateur(s)
K-LElwoodcorto
AmiDARK AmiDARKicon_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)szFilename,
????????????????????????????????????????????????????????????????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?sound.
????????????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,?&AESound[?iID?].longueur,
???????????????????????????????????????????????????SDTA_VoiceHeader,?&vh,
???????????????????????????????????????????????????TAG_END?);
?????#else
????????AESound[?iID?].res?=?GetDTAttrs(?AESound[?iID?].ObjectPTR,
???????????????????????????????????????SDTA_SampleLength,?&AESound[?iID?].longueur,
???????????????????????????????????????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?].samplesParSec;????/*?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
zzd10h zzd10hicon_post
En compilant mon exemple, tu as du voir que j'avais moi aussi un warning sur cette DoMethod. Mais cela n'empeche pas le pgm de fonctionner.

Comme ça, je ne vois pas de pb,
si tu joues ton szFilename dans mon pgm, il marche ?

Ah, si peut-étre un truc, elle te sert à quoi la durée ?
Si tu n'utilises pas les signaux, il faut laisser le temps au son de se jouer...
bref, je ne vois pas de delay(), j'espére que tu ne détruis pas l'objet avant de lui avoir laisser 'duree' de temps.

Si oui, c'est là tout l'intérét des signaux, pas besoin de calculer un delai.

AmiDARK AmiDARKicon_post
zzd10h,

n'oublie pas que l'AmiDARK Engine est un SDK.

Par exemple, on peut faire un :



DELoadSound( "mon fichier.extension", 1 );
DEPlaySound( 1 );

while( !DELoop() ){
  DESync();
 }

DEDeleteSound( 1 );



C'est un peu ce que fait mon exemple qui me permet de tester
le !DELoop() quitte lorsque l'on appuie sur ESCAPE ou CTRL+C ou qu'on clique pour fermer la fenetre ... donc la démo tourne tant que l'utilisateur ne demande pas à ce qu'elle soit finie ... et le son n'est supprimée qu'à la fin ...
Donc, aucun soucis ...
thellier thelliericon_post
Salut
A propos du warning le dernier argument est sensé être un Msg donc faudrait caster en (Msg) :

DoDTMethodA( AESound[ iID ].ObjectPTR, NULL, NULL ,(Msg) &mydtt );

Voir ici

http://amiga.sourceforge.net/amigadevhelp/phpwebdev.php?keyword=DoDTMethodA&funcgroup=AmigaOS&action=Search

Alain
zzd10h zzd10hicon_post
Alain,
merci
mais cela fait pareil, toujours le même Warning avec :

dores = DoDTMethodA(dtobject, NULL, NULL, (Msg)&mydtt);
AmiDARK AmiDARKicon_post
Merci Alain,

Pour ma part, je n'ai plus le message d'erreur à la compilation en mettant (Msg)&mydtt en paramètre.
Mais ... toujours pas de son :(

zzd10h : supprime le fichier .o si ta compilation ne le fait pas sinon il risque de reprendre le contenu du .o pour créer l'exécutable... ça m'arrive parfois sur AmiDevCPP.

@+
zzd10h zzd10hicon_post
Plus de warning désormais, merci
j'ai reuploadé le package
http://zzd10h.amiga-ng.org/DataType/DataType_Sound_Signal.lha
AmiDARK AmiDARKicon_post
zzd10h:
On pourrait créer une petite librairie .a avec ton exemple si on le poussait un peu plus loin dans la gestion ;)

Je vais testouiller ce soir :p

@+
zzd10h zzd10hicon_post
Je t'en prie pour la library, je n'y connais absolument rien !
AmiDARK AmiDARKicon_post
En fait il faudrait juste qu'on arrive à faire les commandes suivantes :

Load
Delete
Play
Pause
Resume

et on pourrait en faire une petite librairie .a à utiliser en C/C++ :p

Je vais voir ça et je te tiens au courant.

@+
Petites Annonces

0 annonce(s) publiée(s)

Consulter

AmigaOS 4.1

Laissez-vous tenter par
AmigaOS 4.1
AmiTheme

AmiTheme