Quelqu'un pourrais me filer un coup de main sur du streaming

Programmation d'applications complexes
meganet
Messages : 317
Inscription : jeu. 20/janv./2005 22:00

Le pb, c'est pas le C.

Message par meganet »

Merci!
Le pb, c'est pas le C, c'est de pouvoir l'interprèter en PB.
Et ta DLL, lol je suis un merde en anglais!
DC ouai je veu bien un coup de main stp.
KarLKoX
Messages : 1191
Inscription : jeu. 26/févr./2004 15:36
Localisation : France
Contact :

Message par KarLKoX »

Je viens de checker l'archive que je t'ai uploadé et, ouf, la userlib est bien disponible, il te suffit juste de copier le fichier "fmodex.lib" dans le dossier "PureLibraries\Windows\Libraries" de PureBasic et le fichier "fmodex.res" dans le dossier "Residents" de PB.
Tu pourras ensuite appeler les fonctions de FMOD Ex comme si elles faisaient partis de PureBasic.
Testé avec PB 3.94, devrait fonctionner avec la 4.0.
"Qui baise trop bouffe un poil." P. Desproges
meganet
Messages : 317
Inscription : jeu. 20/janv./2005 22:00

Oui mais

Message par meganet »

Oui, mais si je veu le faire à la main, c'est parce que mon soft doit tourner sous Windows, Linux, et MacOS.
DC je ne suis pas sur que je peu utiliser ta lib.
Si quelqu'un qui est sous linux pourrais tester SVP?
Merci.
KarLKoX
Messages : 1191
Inscription : jeu. 26/févr./2004 15:36
Localisation : France
Contact :

Message par KarLKoX »

Ah bein oui, j'avais oublié linux et mac os x :lol:
Bon, voici l'étape, en tout cas sous Windows/Linux :

- Chargement de la lib (dll ou .so) via OpenLibrary,
- Déclaration des pointeurs sur fonctions (variables globales),
- Récupération des pointeurs sur fonction GetFunction,
- Appel de la fonction via CallFunctionFast.

Ce qui donne avec une fonction prise au hasard :

Code : Tout sélectionner

Global PB_FMOD_System_CreateSound.l
#FMODEX = 1

Procedure FMOD_Load()
Protected DLL.l
DLL = OpenLibrary(#FMODEX, "fmodex.dll")
If DLL = 0
    MessageRequester("Error", "Can't load FMODEX.DLL", 0)
    End
Else
    PB_FMOD_System_CreateSound = GetFunction(#FMODEX, "FMOD_System_CreateSound")
    ProcedureReturn DLL
EndIf

EndProcedure

Procedure FMOD_System_CreateSound(*system.l, *name_or_data.l, mode.l, *exinfo.l, *sound)
    ProcedureReturn CallFunctionFast(PB_FMOD_System_CreateSound, *system, *name_or_data, *exinfo, *sound)
EndProcedure

Procedure FMOD_Close()
   CloseLibrary(#FMODEX)
EndProcedure
"Qui baise trop bouffe un poil." P. Desproges
meganet
Messages : 317
Inscription : jeu. 20/janv./2005 22:00

Ouaou

Message par meganet »

Ouaou!
Lol et tu les trouve où tes variable à mettre en global?
J'ai essayer d'autre fonctions en essayant de suivre le même principe, ça à planter!
KarLKoX
Messages : 1191
Inscription : jeu. 26/févr./2004 15:36
Localisation : France
Contact :

Message par KarLKoX »

Les variables tu les trouves ... dans ta logique :P
Regarde bien, je prend une fonction de FMOD Ex au hasard, auquel je rajoute PB_ (pour garder la philosophie des userlibs), cette variable servira de pointeur sur fonction et pour l'appeler, je créer une fonction qui porte exactement le même prototype que celle de FMOD Ex, sans le PB_, et c'est dans cette même fonction que j'appel ma variable global (avec le PB_ donc) qui est en fait le pointeur sur fonction du même nom.
"Qui baise trop bouffe un poil." P. Desproges
meganet
Messages : 317
Inscription : jeu. 20/janv./2005 22:00

Je vais essayer de faire avec.

Message par meganet »

Merci, je vais essayer de faire avec ça!
MC BCP!
meganet
Messages : 317
Inscription : jeu. 20/janv./2005 22:00

9a ne passe pas.

Message par meganet »

Salut, ya un truc qui bug, quand j'utilise System_CreateSOund("http://www.votresite.com:8000", 0, 0) Sa plante. ç parrament, il faut utiliser une autre commande pour lire du streaming, mais j'y arrive pas je ne comprend pas grand chose à la doc en anglais.
Si quelqu'un pourrais me dire comment utiliser FMOD pour lire une radio en streaming?
Merci!
KarLKoX
Messages : 1191
Inscription : jeu. 26/févr./2004 15:36
Localisation : France
Contact :

Message par KarLKoX »

Tu as lu les examples ? Tu en a un tout fait. (netstream)
"Qui baise trop bouffe un poil." P. Desproges
meganet
Messages : 317
Inscription : jeu. 20/janv./2005 22:00

Oui mais les autre

Message par meganet »

Oui, mais cette example utilise la lib.
KarLKoX
Messages : 1191
Inscription : jeu. 26/févr./2004 15:36
Localisation : France
Contact :

Message par KarLKoX »

Ca ne change en rien à la façon d'utiliser FMOD* :wink:



* si tu as utilisé ma méthode qui consiste à appeler les procedures de la même façon que celle de FMOD :)
"Qui baise trop bouffe un poil." P. Desproges
meganet
Messages : 317
Inscription : jeu. 20/janv./2005 22:00

Y a un pb!

Message par meganet »

Salut,
j'ai un pb, lorsque 'écrit:
ProcedureReturn CallFunctionFast(PB_FMOD_CreateStream,System,URL,0,0)
Le programme plante.
Quelqu'un pourrais me dire où est l'erreur, j'ai passé 2 h dessu sans trouver!
Merci!
KarLKoX
Messages : 1191
Inscription : jeu. 26/févr./2004 15:36
Localisation : France
Contact :

Message par KarLKoX »

Ca ne plante que sur cette fonction ou pas ?
"Qui baise trop bouffe un poil." P. Desproges
meganet
Messages : 317
Inscription : jeu. 20/janv./2005 22:00

Oui

Message par meganet »

OUi, quand je commante cette fonction, le programme se lance, mais lol il ne veu pas lire.
J'ai pas été plus loin par example avec playsound, car je teste toutes mais fonction à chaque fois.
KarLKoX
Messages : 1191
Inscription : jeu. 26/févr./2004 15:36
Localisation : France
Contact :

Message par KarLKoX »

Il manque un paramètre, il y en à 5 et non 4 ;)
"Qui baise trop bouffe un poil." P. Desproges
Répondre