Page 1 sur 1

pour changer, besoin d'une traduction du C vers PureBasic

Publié : sam. 03/sept./2005 18:48
par gansta93
Bonjour,

Je ne sais pas comment fonctionne ce code.

Code : Tout sélectionner

char *file = "C:\\download\\booga.mp3";
                int x;
                for (x = 0; x <= strlen(file); x ++)
                        PostMessage(hwnd_winamp,WM_WA_IPC,(LPARAM)file[x],IPC_PLAYFILE);
Pour les constentes :

Code : Tout sélectionner

#WM_WA_IPC = #WM_USER
#IPC_PLAYFILE = 100
Pour le hendle de la fenêtre de Winamp, voilà une petite routine en pure.

Code : Tout sélectionner

HwND_Winamp=FindWindow_("Winamp v1.x",#Null)
Je pense qu'il ne manque rien. :-)

Ah si, j'allais oublier. Voilà un code proposé par Dri quand je lui est demandé s'il pouvait traduir ce code. à partir de la structure, c plus moi (en gros j'ai rien fais moi appart changer le nom du fichier lol) c sa traduction.

Code : Tout sélectionner

HwND_Winamp=FindWindow_("Winamp v1.x",#Null)
If hwnd_winamp=0
MessageBeep_(#MB_ICONASTERISK)
EndIf
Structure Bytes 
  b.b[0] 
EndStructure 
 
file.s = "E:\Téléchargements\Les Experts.mp3"
*ptr.Bytes = @file 
 x = 0
While *ptr\b[x] 
  PostMessage_(hWnd_Winamp, #WM_WA_IPC, *ptr\b[x], #IPC_PLAYFILE) 
  x + 1 
Wend
J'espère qu'il ne manque rien.

Merci d'avance.

Publié : sam. 03/sept./2005 19:32
par djes
Le code de Dri est bon, je crois qu'il manque quelque chose pour enclencher la lecture

Publié : sam. 03/sept./2005 19:49
par gansta93
djes a écrit :Le code de Dri est bon, je crois qu'il manque quelque chose pour enclencher la lecture
En fait ce code sert à ajouter un fichier en queue. Mais moi, si je fais "B" pour passer au fichier suivant, ça ne marche pas...

Publié : sam. 03/sept./2005 19:55
par Dr. Dri
djes a écrit :Le code de Dri est bon, je crois qu'il manque quelque chose pour enclencher la lecture
Mon code est faux et c'est grace à toi que j'ai tilté... dans le for c'est un <=

Code : Tout sélectionner

For x = 0 To Len(file)
  PostMessage_(hWnd_Winamp, #WM_WA_IPC, *ptr\b[x], #IPC_PLAYFILE)
  x + 1
Next x
Dri ^^

Publié : sam. 03/sept./2005 20:01
par djes
J'avais même pas fait gaffe, j'avais testé ça :

Code : Tout sélectionner

For x=1 To Len(file)
  PostMessage_(hWnd_Winamp, #WM_WA_IPC, Asc(Mid(file,x,1)), #IPC_PLAYFILE)

Publié : sam. 03/sept./2005 20:20
par gansta93
OK, ça marche ! :-D par contre faut pas mettre le X+1 pusique le For...Next le fait.
ça m'a fait découvrir un bug qui doit être de winamp : si on essait après de refaire ça pour un autre fichier, Winamp plante.

Publié : sam. 03/sept./2005 20:38
par Dr. Dri
ah c'est de ca ke tu voulais parler quand tu disais que tu le commentais...
j'ai transformé le while sans faire attention... une grosse erreur de débutant...

Dri :0::jesors:

Publié : sam. 03/sept./2005 20:43
par gansta93
Oui, si tu laisse le x+1 ça donne un nom de fichier comment dirais-je... euh ben comme passé sous un rouleau compresseur puis sous une sie électrique ou non (pas important lol). Quoi qu'un hachoir serait le meilleur outil... menfin ça marche maintenant, appart ce bug étrange de Winamp... ça le fait chez quelqu'un d'autre ?
Merci pour les codes. :-D