qui permettent d'utiliser des fichiers media, localisés sur internet
je n'ai pas tenu compte des parametres optionnel de certaines fonction Load()
simplement, parceque je ne sais plus comment on fait pour declarer un parametre optionnel dans une procedure ....
@Ar-s j'ai uniformisé les procedures, inutile d'inclure les Pluggin (UsePNGImageDecoder() .... )
puisqu'en principe ceux ci sont deja dans le code qui utilisera ces procedures
si tu veux t'amuser a rajouter les parametres optionnel , c'est toi qui voit
voici le code, libre a vous de le modifier
Code : Tout sélectionner
;***********************************************
;Titre :*internet_load()
;Auteur : Dobro and Ar-s
;Date :02/07/2016
;Heure :17:01:08
;Version Purebasic : PureBasic 5.42 LTS (Windows - x86)
;Version de l'editeur :EPB V2.64
; Libairies necessaire : Aucune
;***********************************************
UseJPEGImageDecoder()
UsePNGImageDecoder()
UseTGAImageDecoder()
UseTIFFImageDecoder()
Declare openwindow_win()
Declare.l loadimage_net(adr$,nom_fichier$)
Declare.l loadsound_net(adr$,nom_fichier$)
Declare.l loadsound3d_net(adr$,nom_fichier$)
Declare.l loadmusic_net(adr$,nom_fichier$)
Declare.l loadsprite_net(adr$,nom_fichier$)
Declare.l loadmovie_net(adr$,nom_fichier$)
Declare.l loadfont_net(adr$,nom_fichier$,taille)
Declare catchimage_net(adr$)
Declare catchsound_net(adr$)
Declare catchmusic_net(adr$)
Declare catchsprite_net(adr$)
; ************************************* Code Sample ***********************************
;{- Enumerations / DataSections
;{ Windows
Enumeration
#Win
EndEnumeration
;}
;{ Gadgets
Enumeration
#Image_gadget
#Text_titre
#Button_Play
EndEnumeration
;}
;{ Images
Enumeration
#Image
EndEnumeration
;}
Define.l Event
InitSound()
;}
Procedure OpenWindow_Win()
If OpenWindow(#Win, 404, 84, 400, 400, "Demo Lib Loadnet by Dobro", #PB_Window_SystemMenu|#PB_Window_SizeGadget|#PB_Window_MinimizeGadget|#PB_Window_TitleBar)
ImageGadget(#Image_gadget, 45, 50, 295, 270, 0, #PB_Image_Border)
TextGadget(#Text_titre, 160, 10, 95, 25, "Demo Lib Load Net")
ButtonGadget(#Button_Play, 45, 340, 80, 35, "Play")
EndIf
EndProcedure
OpenWindow_Win()
;{- Event loop
Repeat
Event = WaitWindowEvent(12)
Select Event
; ///////////////////
Case #PB_Event_Gadget
Select EventGadget()
Case #Image_gadget
Case #Text_titre
Case #Button_Play
Adr$="http://michel.dobro.free.fr/Bank_images/"
nom_fichier$="girl2.bmp"
;im=Loadimage_net(Adr$,nom_fichier$) ; Choice 1
im=CatchImage_Net(Adr$ + nom_fichier$) ; choice 2
if im>0
SetGadgetState(#Image_gadget, imageId(im))
Endif
nom_music$="Maupiti.mod"
;music=LoadMusic_net(Adr$,nom_music$) ; choice 1
music= CatchMusic_Net(Adr$+nom_music$) ; choice 2
if music>0
PlayMusic(music)
Endif
EndSelect
; ////////////////////////
Case #PB_Event_CloseWindow
Select EventWindow()
Case #Win
CloseWindow(#Win)
Break
EndSelect
EndSelect
Forever
;
;}
; ********************************************************************************************
; ***************************** Librairie LoadNEt *****************************************
Procedure.l Loadimage_net(Adr$,nom_fichier$)
; By Dobro
;Adr$=adresse du fichier image a charger
;nom_image$ = nom qu'on donne a cette image
; la procedure renvoi l'Id de l'image recupérée ou False en cas d'erreur
Protected image
if InitNetwork()
path$=GetTemporaryDirectory()
If ReceiveHTTPFile(Adr$+nom_fichier$,path$+nom_fichier$)
image=LoadImage(#pb_any,path$+nom_fichier$)
DeleteFile(path$+nom_fichier$)
ProcedureReturn image
Else
ProcedureReturn #false
EndIf
Else
ProcedureReturn #false
Endif
EndProcedure
Procedure.l LoadSound_net(Adr$,nom_fichier$)
; By Dobro
;Adr$=adresse du fichier image a charger
;nom_fichier$ = nom qu'on donne a ce son
; la procedure renvoi l'Id du son recupéré ou False en cas d'erreur
Protected sound,path$
InitNetwork()
path$=GetTemporaryDirectory()
If ReceiveHTTPFile(Adr$+nom_fichier$, path$+nom_fichier$)
sound=LoadSound(#pb_any, path$+nom_fichier$)
DeleteFile(path$+nom_fichier$)
ProcedureReturn sound
Else
ProcedureReturn #false
EndIf
EndProcedure
Procedure.l LoadSound3D_net(Adr$,nom_fichier$)
; By Dobro
;Adr$=adresse du fichier image a charger
;nom_fichier$ = nom qu'on donne a ce son
; la procedure renvoi l'Id du son recupéré ou False en cas d'erreur
Protected sound,path$
InitNetwork()
path$=GetTemporaryDirectory()
If ReceiveHTTPFile(Adr$+nom_fichier$, path$+nom_fichier$)
sound=LoadSound3D(#pb_any, path$+nom_fichier$)
DeleteFile(path$+nom_fichier$)
ProcedureReturn sound
Else
ProcedureReturn #false
EndIf
EndProcedure
Procedure.l LoadMusic_net(Adr$,nom_fichier$)
; By Dobro
;Adr$=adresse du fichier image a charger
;nom_fichier$ = nom qu'on donne a cette Musique
; la procedure renvoi l'Id de la Music recupérée ou False en cas d'erreur
Protected Music, path$
InitNetwork()
path$=GetTemporaryDirectory()
If ReceiveHTTPFile(Adr$+nom_fichier$, path$+nom_fichier$)
Music=LoadMusic(#pb_any,path$+nom_fichier$)
DeleteFile(path$+nom_fichier$)
ProcedureReturn Music
Else
ProcedureReturn #false
EndIf
EndProcedure
Procedure.l LoadSprite_net(Adr$,nom_fichier$)
; By Dobro
;Adr$=adresse du fichier image a charger
;nom_fichier$ = nom qu'on donne a ce Sprite
; la procedure renvoi l'Id du Sprite recupéré ou False en cas d'erreur
Protected spr,path$
InitNetwork()
path$=GetTemporaryDirectory()
If ReceiveHTTPFile(Adr$+nom_fichier$, path$+nom_fichier$)
spr=LoadSprite(#pb_any, path$+nom_fichier$)
DeleteFile(path$+nom_fichier$)
ProcedureReturn spr
Else
ProcedureReturn #false
EndIf
EndProcedure
Procedure.l LoadMovie_net(Adr$,nom_fichier$)
; By Dobro
;Adr$=adresse du fichier image a charger
;nom_fichier$ = nom qu'on donne a cette Video
; la procedure renvoi l'Id de la video recup?r? ou False en cas d'erreur
Protected movie
InitNetwork()
path$=GetTemporaryDirectory()
If ReceiveHTTPFile(Adr$+nom_fichier$, path$+nom_fichier$)
movie=LoadSprite(#pb_any, path$+nom_fichier$)
DeleteFile(path$+nom_fichier$)
ProcedureReturn movie
Else
ProcedureReturn #false
EndIf
EndProcedure
Procedure.l LoadFont_net(Adr$,nom_fichier$,taille)
; By Dobro
;Adr$=adresse du fichier image a charger
;taille = taille de la fonte
; la procedure renvoi l'Id de la Fonte recupérée ou False en cas d'erreur
Protected Font
InitNetwork()
path$=GetTemporaryDirectory()
If ReceiveHTTPFile(Adr$+nom_fichier$, path$+nom_fichier$)
Font=LoadFont(#pb_any, path$+nom_fichier$,taille)
DeleteFile(path$+nom_fichier$)
ProcedureReturn Font
Else
ProcedureReturn #false
EndIf
EndProcedure
; ************** les Catchs ***********************************************************
Procedure CatchImage_Net(Adr$)
InitNetwork()
Protected image
; By Ar-S
*Buffer = ReceiveHTTPMemory(Adr$)
If *Buffer
Image = CatchImage(#PB_Any, *Buffer, MemorySize(*Buffer) )
FreeMemory(*Buffer)
ProcedureReturn Image
Else
ProcedureReturn #false
EndIf
EndProcedure
Procedure CatchSound_Net(Adr$)
InitNetwork()
Protected sound
; By Ar-S
*Buffer = ReceiveHTTPMemory(Adr$)
If *Buffer
Sound = Catchsound(#PB_Any, *Buffer, MemorySize(*Buffer) )
FreeMemory(*Buffer)
ProcedureReturn Sound
Else
ProcedureReturn #false
EndIf
EndProcedure
Procedure CatchMusic_Net(Adr$)
InitNetwork()
Protected Music
; By Ar-S
*Buffer = ReceiveHTTPMemory(Adr$)
If *Buffer
Music = CatchMusic(#PB_Any, *Buffer, MemorySize(*Buffer) )
FreeMemory(*Buffer)
ProcedureReturn Music
Else
ProcedureReturn #false
EndIf
EndProcedure
Procedure CatchSprite_Net(Adr$)
InitNetwork()
Protected Spr
; By Ar-S
*Buffer = ReceiveHTTPMemory(Adr$)
If *Buffer
Spr = CatchSprite(#PB_Any, *Buffer, MemorySize(*Buffer) )
FreeMemory(*Buffer)
ProcedureReturn Spr
Else
ProcedureReturn #false
EndIf
Endprocedure
; Epb