Librairie load_Net()
Publié : mer. 22/juin/2016 6:23
				
				voici en poursuivant l'idée une collection de fonctions
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 
			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
 
  
  
   et ton libellé de topic "Librairie" m'a trompé.
  et ton libellé de topic "Librairie" m'a trompé.   
 

 )
 ) ) se fera entendre si tout se passe bien
 ) se fera entendre si tout se passe bien