shadow1779
Messages postés706Date d'inscriptionmercredi 17 novembre 2004StatutMembreDernière intervention29 septembre 2013
-
29 déc. 2005 à 17:25
shadow1779
Messages postés706Date d'inscriptionmercredi 17 novembre 2004StatutMembreDernière intervention29 septembre 2013
-
30 déc. 2005 à 12:46
Bonsoir, j'ai presque terminé mon lecteur mp3 en C, fait avec l'API fmod, je cherche a mettre le temps ecoulé sur le temps total, cependant je ne sais pas faire comment actualiser tout le temps afin que le contenue de l'editbox change, sans cependant faire un while qui figera le programme
shadow1779
Messages postés706Date d'inscriptionmercredi 17 novembre 2004StatutMembreDernière intervention29 septembre 2013 29 déc. 2005 à 17:43
0o les timers, j'ai du rater un episode dans la programmation C, en fait j'ai ce code suivant disons une partie de ce code , comment j'peu faire reactualiser cette valeur
//on recupere le temps total:
length = FSOUND_Stream_GetLengthMs(stream);
//on recupere la position ou on est actuellement
position = FSOUND_Stream_GetTime(stream);
et j'veu repeter cette action environ tout les 500ms sans que ca me ralentisse a mort le prog, vous pourriez me faire un ti exemple que j'vois comment c'est les timers
.
Vous n’avez pas trouvé la réponse que vous recherchez ?
julienbj
Messages postés452Date d'inscriptionjeudi 4 décembre 2003StatutMembreDernière intervention19 décembre 200815 29 déc. 2005 à 17:48
Dans to fonction de traitement des messages:
Tu dois avoir des messages du type: WM_CREATE, WM_COMMAND...
En gros un timer t'enverras un message WM_TIMER toutes les x ms.
Tu n'as plus qu'à intercepter le message et faire ce que tu veux (c'est a dire changer le contenu de ton editbox).
Pour créer un timer: SetTimer Pour le détruire: KillTimer
Si tu as besoin d'un exemple, demande, on fera, mais si ca peut te suffire, tant mieux
Vive le C
Tchao
[mailto:julienbj@hotmail.com Savon]
shadow1779
Messages postés706Date d'inscriptionmercredi 17 novembre 2004StatutMembreDernière intervention29 septembre 2013 29 déc. 2005 à 19:32
franchement j'aimerai bien un exemple j'comprend en gros que c'est
SetTimer(hwnd,?,500,?);
tu pourrai me dire ou le mettre dans mon prog (si il ya une importance et ou mettre mon code pour qu'il le repete toute les 500 millisecondes)
<NAME></NAME>
<NAME></NAME>
julienbj
Messages postés452Date d'inscriptionjeudi 4 décembre 2003StatutMembreDernière intervention19 décembre 200815 29 déc. 2005 à 20:04
UINT SetTimer(
HWND hWnd, // handle of window for timer messages
UINT nIDEvent, // timer identifier
UINT uElapse, // time-out value
TIMERPROC lpTimerFunc // address of timer procedure
);
Donc en gros:
hWnd: Handle de la fenetre à laquelle les messages WM_TIMER seront envoyés
nIDEvent: Identifiant du timer (c'est par cet identifiant que tu pourras différencier les différents timers que tu auras lancé)
uElapse: Temps au bout duquel le timer te genere un message WM_TIMER.
lpTimerFunc: Fonction de traitement du timer, personnellement encore jamais utilisé, donc je la laisse à NULL, mais doit permettre de définir une fonction appelé à chaque évenement timer.
Je te fais un exemple ce soir
Vive le C
Tchao
[mailto:julienbj@hotmail.com Savon]
shadow1779
Messages postés706Date d'inscriptionmercredi 17 novembre 2004StatutMembreDernière intervention29 septembre 2013 30 déc. 2005 à 12:05
en fait je fais ceci
case ID_PLAY:
//on crée un timer pour savoir le temps total et le temps écoulé
//puis enfin on converti ce temps en seconde
SetTimer(hwnd,ID_TIME,1000,NULL);
total = FSOUND_Stream_GetTime(stream);
total = total / 1000;
SetDlgItemText(hwnd,ID_FILEPLAYING,file);
FSOUND_Stream_Play(channel,stream);
break;
case ID_TIME:
if(time = total || time > total)
{
KillTimer(hwnd,ID_TIME);
}
time = FSOUND_GetCurrentPosition(channel);
time = time / 1000;
sprintf(buffer,"Position : %d :: %d",time,total);
SetDlgItemText(hwnd,ID_TIME,buffer);
break;
mais le probleme c'est que jamais on arrive a ID_TIME, donc jamais le chrono se lance :s
shadow1779
Messages postés706Date d'inscriptionmercredi 17 novembre 2004StatutMembreDernière intervention29 septembre 2013 30 déc. 2005 à 12:46
ouai aussi, ca revient au meme mais oui c'est vrai que ca se comprendra peut etre mieux, j'pensais que le == OU > etais plus clair mais au pire si tu l'dis