See site in english Voir le site en francais
Website skin:
home  download  forum  link  contact

Welcome, Guest. Please login or register.
Did you miss your activation email?

Login with username, password and session length

Author Topic: [C++] déclencher un son par lecture scn  (Read 2072 times)

0 Members and 1 Guest are viewing this topic.

Offline no matter

  • Legend
  • ******
  • Posts: 2826
  • Karma: 1
28 May 2007, 08:36:02
:help:
Je cherche à restorer l'état de lecture d'un son en lisant le scénario.
Pour sauvegarder l'état, j'ai mis:

if(IsPlaying3(MyID,BACK)==TRUE)
{oapiWriteScenario_string(scn,"BREATHE","");}


Ok, çà écrit bien le mot BREATHE dans mon scénario. Mais lorsque je veux le relire:

if (!strnicmp (line, "BREATHE",6))
{PlayVesselWave3(MyID,BACK,LOOP);}


il ne se passe rien, le fichier n'est pas lu :(

Par ailleurs, le fichier est aussi déclenché et éteint par une touche et çà fonctionne bien. Il y a quelque chose à
rajouter, ma syntaxe est fausse? Quelqu'un peut m'éclairer là-dessus, merci!!!

C'est pour l'ATV que je suis en train de convertir en C++.



Message modifié ( 28-05-2007 08:39 )

------------

no matter.

Offline Momo

  • Legend
  • ******
  • Posts: 2682
  • Karma: 1
Reply #1 - 28 May 2007, 10:09:52
if (!strnicmp (line, "BREATHE",7))
{PlayVesselWave3(MyID,BACK,LOOP);}

BREATHE a 7 lettres! pas 6! voila le prb :)



Offline no matter

  • Legend
  • ******
  • Posts: 2826
  • Karma: 1
Reply #2 - 28 May 2007, 10:56:18
ARF, oui, breathe a 7 lettres en effet :)
Mais çà ne marche toujours pas par contre après correction de cette boulette :???:



Message modifié ( 28-05-2007 10:56 )

------------

no matter.

Offline DanSteph

  • Administrator
  • Legend
  • *****
  • Posts: 15407
  • Karma: 256
  • Hein, quoi !?
    • FsPassengers
Reply #3 - 28 May 2007, 13:15:57
Quote
no matter a écrit:
ARF, oui, breathe a 7 lettres en effet :)
Mais çà ne marche toujours pas par contre après correction de cette boulette :???:

oapiloadscn est appellée avant potsbidule ou tu loades le son...
soluce: essaie de jouer dans postbidule mais je crois pas que ca va marcher
moi je l'ai mis dans simstep avec un flag.

J'ai pleins de truc de toute facon qui s'initent dans simstep au début.
Avant souvent Orbiter est dans des étât indefini.

Dan


Offline no matter

  • Legend
  • ******
  • Posts: 2826
  • Karma: 1
Reply #4 - 28 May 2007, 13:22:10
le son est loadé dans void ATV::clbkPostCreation (void), ainsi:

RequestLoadVesselWave3(MyID,BACK,LOADBACK,INTERNAL_ONLY);

Je n'ai pas utilisé de oapiloadscn. Je vais essayer de voir si il y a un moyen de faire dans clbkpoststep (??)



Message modifié ( 28-05-2007 13:29 )

------------

no matter.

Offline DanSteph

  • Administrator
  • Legend
  • *****
  • Posts: 15407
  • Karma: 256
  • Hein, quoi !?
    • FsPassengers
Reply #5 - 28 May 2007, 17:30:45
Le load du son est bien dans clbkPostCreation mais le play lui meme est fait dans postsimstep

static BOOL FirstInitDone=FALSE;
if(FirstInitDone==FALSE)
{

joue son welcome;
FirstInitDone=TRUE;
}

Faut pas mettre de statique of course ;)

Dan



Message modifié ( 29-05-2007 05:25 )


Offline no matter

  • Legend
  • ******
  • Posts: 2826
  • Karma: 1
Reply #6 - 29 May 2007, 12:22:30
Merci ;)

« Last Edit: 29 May 2007, 12:36:38 by no matter »
------------

no matter.

Offline DanSteph

  • Administrator
  • Legend
  • *****
  • Posts: 15407
  • Karma: 256
  • Hein, quoi !?
    • FsPassengers
Reply #7 - 29 May 2007, 12:36:38
Désolé pour les noms de fonctions aproximatif , j'ai plus ouvert
mon C++ depuis samedi...

Je me repose :badsmile:

Dan

« Last Edit: 29 May 2007, 12:36:38 by DanSteph »