le PBi "MCI-Commands" dans les includes de japbe tu le fourni toujours avec japbe ?
parce que si ça t'intéresse , j'ai ajouté , le support du format "wav" en mode lecture et enregistrement, plus ajout des parametres de resolution du format wav (16 bits, stereo,frequence)
puis j'ai commencé a y ajouter le support des lecteurs de cd rom (avec ouverture/fermeture du tiroir, choix du lecteur)
Code : Tout sélectionner
;Info: MCI-Commands (to play mp3s, and so on)
Enumeration 0
#MCI_Unknown
#MCI_Stopped
#MCI_Playing
#MCI_Paused
EndEnumeration
Procedure MCI_GetStatus(Nb)
Protected Result.l, i, a$
Result=#MCI_Unknown
a$=Space(#MAX_PATH)
i=mciSendString_("status MCI_"+Str(Nb)+" mode",@a$,#MAX_PATH,0)
If i=0
Select a$
Case "stopped":Result=#MCI_Stopped
Case "playing":Result=#MCI_Playing
Case "paused":Result=#MCI_Paused
Case "not ready":Result=#MCI_Unknown
EndSelect
EndIf
ProcedureReturn Result
EndProcedure
Procedure MCI_Load(Nb,file.s,Type$)
Protected i.l
If Type$="midi"
; ajout par Dobro
i=mciSendString_("OPEN "+Chr(34)+file+Chr(34)+" Type sequencer alias MCI_"+Str(Nb),0,0,0)
EndIf
If Type$="mpeg" Or Type$="mp3"
i=mciSendString_("OPEN "+Chr(34)+file+Chr(34)+" Type mpegvideo alias MCI_"+Str(Nb),0,0,0); video et Mp3
EndIf
If Type$="wav"
; ajout Par Dobro
i=mciSendString_("OPEN "+Chr(34)+file+Chr(34)+" Type waveaudio alias MCI_"+Str(Nb),0,0,0)
EndIf
If Type$="cd"
; ajout Par Dobro
i=mciSendString_("OPEN "+Chr(34)+file+Chr(34)+" Type cdaudio alias MCI_"+Str(Nb),0,0,0)
EndIf
If i=0
ProcedureReturn #True
Else
ProcedureReturn #False
EndIf
EndProcedure
Procedure MCI_Play(Nb)
Protected i.l
i=mciSendString_("play MCI_"+Str(Nb),0,0,0)
ProcedureReturn i
EndProcedure
Procedure MCI_PlayStart(Nb)
Protected i.l
i=mciSendString_("play MCI_"+Str(Nb)+" from "+Str(0),0,0,0)
ProcedureReturn i
EndProcedure
Procedure MCI_PlayPart(Nb,start,endPos)
Protected i.l
i=mciSendString_("play MCI_"+Str(Nb)+" from "+Str(start)+" to "+Str(endPos),0,0,0)
ProcedureReturn i
EndProcedure
Procedure MCI_Pause(Nb)
Protected i.l
i=mciSendString_("pause MCI_"+Str(Nb),0,0,0)
ProcedureReturn i
EndProcedure
Procedure MCI_Resume(Nb)
Protected i.l
i=mciSendString_("resume MCI_"+Str(Nb),0,0,0)
ProcedureReturn i
EndProcedure
Procedure MCI_Stop(Nb)
Protected i.l
i=mciSendString_("stop MCI_"+Str(Nb),0,0,0)
ProcedureReturn i
EndProcedure
Procedure MCI_Free(Nb)
Protected i.l
i=mciSendString_("close MCI_"+Str(Nb),0,0,0)
ProcedureReturn i
EndProcedure
Procedure MCI_SetVolume(Nb,Volume)
Protected i.l
i=mciSendString_("SetAudio MCI_"+Str(Nb)+" volume to "+Str(volume),0,0,0)
ProcedureReturn i
EndProcedure
Procedure MCI_GetVolume(Nb)
Protected i.l
Protected a$=Space(#MAX_PATH)
i=mciSendString_("status MCI_"+Str(Nb)+" volume",@a$,#MAX_PATH,0)
ProcedureReturn Val(a$)
EndProcedure
Procedure MCI_SetSpeed(Nb,Tempo)
Protected i.l
i=mciSendString_("set MCI_"+Str(Nb)+" Speed "+Str(Tempo),0,0,0)
ProcedureReturn i
EndProcedure
Procedure MCI_GetSpeed(Nb)
Protected a$=Space(#MAX_PATH)
Protected i.l
i=mciSendString_("status MCI_"+Str(Nb)+" Speed",@a$,#MAX_PATH,0)
ProcedureReturn Val(a$)
EndProcedure
Procedure MCI_GetLength(Nb)
Protected a$=Space(#MAX_PATH)
Protected i.l
i=mciSendString_("status MCI_"+Str(Nb)+" length",@a$,#MAX_PATH,0)
ProcedureReturn Val(a$)
EndProcedure
Procedure MCI_GetPosition(Nb)
Protected a$=Space(#MAX_PATH)
Protected i.l
i=mciSendString_("status MCI_"+Str(Nb)+" position",@a$,#MAX_PATH,0)
ProcedureReturn Val(a$)
EndProcedure
Procedure MCI_Seek(Nb,pos)
Protected i.l
i=mciSendString_("Seek MCI_"+Str(Nb)+" to "+Str(pos),0,0,0)
ProcedureReturn i
EndProcedure
Procedure.s MCI_TimeString(Time)
Protected sek.l, min.l
Time/1000
sek=Time%60:Time/60
min=Time%60:Time/60
ProcedureReturn RSet(Str(Time),2,"0")+":"+RSet(Str(min),2,"0")+":"+RSet(Str(sek),2,"0")
EndProcedure
; *********** ajouté par Dobro **********************
; *************** CD rom ********************
Procedure MCI_open_door() ; ouvre la porte du lecteur
; ajout Par Dobro
mciSendString_("Set MCI_ door open wait", 0, 0, 0);
EndProcedure
Procedure MCI_close_door() ; ferme la porte du lecteur
; ajout Par Dobro
mciSendString_("Set MCI_ door closed wait", 0, 0, 0);
EndProcedure
Procedure MCI_drive(letter.s) ; choix du lecteur de Cd rom
; ajout Par Dobro
mciSendString_("open "+letter.s+":\ Type cdaudio alias MCI_", 0, 0, 0)
EndProcedure
Procedure MCI_drive_numb_track(letter.s) ; choix du lecteur de Cd rom
; ajout Par Dobro
a$=Space(#MAX_PATH)
i=mciSendString_("status MCI_"+Str(Nb)+" number of tracks ",@a$,#MAX_PATH,0)
ProcedureReturn Val(a$)
EndProcedure
; *******************************************************************************
; ********************** wav *****************************************
Procedure MCI_init_Record(filename$) ; a faire avant tout enregistrement !!
; ajout Par Dobro
Global buffer$
buffer$=Space(128)
DeleteFile_(filename$)
mciSendString_("open new type waveaudio alias MCI_ ",buffer$,128,0) ; atribue la carte son a 'capture'
EndProcedure
Procedure mci_frequence(num=44100); 44,100 par defaut
; ajout Par Dobro
mciSendString_("set MCI_ samplesperbuffer "+Str( num)+Chr(34) ,0,0,0) ; passe en 44,1
mciSendString_("set MCI_ samplespersec "+Str( num)+Chr(34) ,0,0,0) ;
EndProcedure
Procedure mci_bits(num=16) ; 16 bits par defaut
; ajout Par Dobro
mciSendString_("set MCI_ bitspersample "+Str( num)+Chr(34) ,0,0,0) ; 16 bits
EndProcedure
Procedure mci_channels(num=2); stereo par defaut
; ajout Par Dobro
mciSendString_("set MCI_ channels "+Str(num)+Chr(34) ,0,0,0) ; stereo
EndProcedure
Procedure mci_save_record(filename$)
; ajout Par Dobro
mciSendString_("save MCI_ "+filename$,buffer$,128,0) ; sauve le buffer
EndProcedure
Procedure mci_RecordWav_time(filename$,ms)
; ajout Par Dobro
mciSendString_("record MCI_ ",buffer$,128,0) ; passe en mode recording (a defaut de play)
Sleep_(ms) ; Wait for specified capture time to end.
mci_save_record(filename$)
EndProcedure
Procedure mci_RecordWav(filename$)
; ajout Par Dobro
mciSendString_("record MCI_ ",buffer$,128,0) ; passe en mode recording (a defaut de play)
EndProcedure
;****************************************************************************************
; ************************ Midi *********************************************************
Procedure SetMidiTempo(Nb,Tempo)
; ajout Par Dobro
i=mciSendString_("set MCI_"+Str(Nb)+" tempo "+Str(Tempo),0,0,0)
ProcedureReturn i
EndProcedure
Procedure GetMidiTempo(Nb)
; ajout Par Dobro
a$=Space(#MAX_PATH)
i=mciSendString_("status MCI_"+Str(Nb)+" Tempo",@a$,#MAX_PATH,0)
ProcedureReturn Val(a$)
EndProcedure
; ********************************************************************************************