Seite 1 von 2

FMOD, wer kann mir beim Einstieg helfen? Habe keinen Plan.

Verfasst: 21.05.2013 11:21
von OlderCoder
Hallo allerseits,

ich möchte mich gerne mit FMOD beschäftigen. Die Motivation dafür ist, ich möchte mir z.B. einen Audio-Player basteln, der etwas fortgeschrittenere Funktionen bietet. Außerdem interessiere ich mich für Audio und Musik am PC.

Es gibt nicht wenig Threads zu diesem Thema hier im Forum, aber alle helfen mir irgendwie nicht weiter.

Das erste Problem war, das richtige Programm zu finden.
Zunächst hatte ich die Datei fmodstudioapi10003win-installer auf der Homepage gefunden, die war wohl verkehrt.
Jetzt hab ich die Datei fmodapi44413win-installer, die wird es vermutlich sein.
Soweit ich das verstanden habe, kann PureBasic nicht ohne weiteres mit der fmodex.dll komunizieren, dafür braucht es einen Wrapper oder so, richtig?
So wie es aussieht, gibt es den nicht für das aktuelle FMOD.
Für die Version 3.74 hab ich aber ein Paket mit Wrapper gefunden (bei PureAreanet, glaub ich).
Soll ich mich dann damit beschäftigen? Aber dieser Wrapper passt vielleicht nicht mehr für die aktuelle PB-Version, oder?
Es würde mich ziemlich ärgern, wenn ich dafür einige Zeit investiere, und dann wäre es doch umsonst.

Als nächstes hab ich überhaupt keinen Plan, wie ich an dieses Thema weiter herangehen soll.
Ich habe noch nie irgendwelche Libraries in PureBasic eingebunden und verwendet.
In der FMOD-Hife steht zwar sehr viel, aber ich bekomme keinen rechten Zugang dazu, und dass es auf englisch ist, macht es auch noch mal schwerer.
Was mach ich mit dem Wrapper (sofern ich einen habe), was mit der dll? Wo finde ich eine Liste der Funktionen und deren Parameter usw.
Wie setze ich das am besten in PB ein?

Wer mag mir helfen?

Gruß
Oldercoder

Re: FMOD, wer kann mir beim Einstieg helfen? Habe keinen Pla

Verfasst: 21.05.2013 11:49
von NicTheQuick
Normalerweise lädt man sich die C-Headerdateien herunter, also die Dateien mit der Endung .h und schreibt dann alle dort definierten Konstanten, Makros und Funktionendeklarationen in PB-Syntax um. Dann lädt man die entsprechende DLL mit 'OpenLibrary()' und verknüpft die darin bereit gestellten Funktionen mit den passenden Prototypes. Soweit ich weiß gibt e da sogar ein Tool, was mit PB mitgeliefert wird.

Da ich unter Linux arbeite, lade ich mir also auf http://www.fmod.org/fmod-downloads.html die fmodapi44413linux.tar.gz herunter und konvertiere die '.h'-Dateien im Unterordner '/fmodapi44413linux/api/inc/' des Archivs in PB-Syntax.

Re: FMOD, wer kann mir beim Einstieg helfen? Habe keinen Pla

Verfasst: 21.05.2013 12:04
von OlderCoder
Gut, es geht also darum, einen Wrapper für die neueste FMOD-Version zu erstellen.
Ich habe durchaus Geduld und bin auch bereit, Mühe zu investieren, möchte aber alles richtig machen.
Zunächst mal die .Dateien.
Ist dieser Pfad
C:\Program Files (x86)\FMOD SoundSystem\FMOD Programmers API Windows\api\inc
korrekt?
Dort finde ich folgende Dateien:
fmod.h
fmod.hpp
fmod_codec.h
fmod_dsp.h
fmod_errors.h
fmod_memoryinfo.h
fmod_output.h

Geht es um diese 7 Dateien?

Die nächste Hürde ist, dass ich kein C kann, eigentlich ein K.O.-Kriterium. Aber vielleicht mach ich mal einen Versuch, mich einzulesen. Infos gibt es sicher genug.
Und herauskommen sollen auch wieder 7 Dateien, die dasselbe tun, nur in PB-Syntax, oder?
Aber das ist schon mächtig viel. Selbst, wenn es mir gelingt, mit meinem 0-Wissen in C und geringem Wissen in PB ein fehlerfreies PB-Abbild dieser Dateien zu erstellen, werde ich wohl vor Weihnachten nicht damit rechnen können, das auch einzusetzen.
Vielleicht sollte ich dann doch lieber mit der Version 3.74 versuchen zu arbeiten.
Aber auch dann kenne ich mich absolut nicht aus (siehe mein Start-Post).

Re: FMOD, wer kann mir beim Einstieg helfen? Habe keinen Pla

Verfasst: 21.05.2013 12:13
von Bisonte
Ähem. Eigentlich reicht eine Datei ;)
In diesen ganzen Dateien stehen Konstanten, Strukturen und was man sonst noch so alles braucht, um daraus EINEN Wrapper zu machen.
Am besten schaust du Dir den "veralteten" Wrapper, den du schon hast, etwas genauer an und vergleichst.
So lernt man wohl am besten, wie das ganze funktioniert.

Re: FMOD, wer kann mir beim Einstieg helfen? Habe keinen Pla

Verfasst: 21.05.2013 12:18
von OlderCoder
Mit was soll ich denn diese Datei öffnen?
Mit dem Editor kommt nur unformatiertes Chaos heraus, mit Wordpad ist es nicht viel besser. Besonders unten sieht das aus wie Binär-Code.
Ich denk mal, das ist diese Datei
https://dl.dropboxusercontent.com/u/225 ... LL_WRAPPER

Re: FMOD, wer kann mir beim Einstieg helfen? Habe keinen Pla

Verfasst: 21.05.2013 12:24
von Bisonte
Nene... Ein PBWrapper ist eine .pb oder .pbi Datei (Also Textformat)

Re: FMOD, wer kann mir beim Einstieg helfen? Habe keinen Pla

Verfasst: 21.05.2013 12:36
von OlderCoder
Ach so.
Da ist nur eine Datei dabei
FMOD374_PROC_ADDON.pbi mit 317 Zeilen.
Die kann es aber auch nicht sein, oder?
In diesem Fall hab ich gar nichts.
Was ich aber gefunden habe ist das hier:
http://forums.purebasic.com/german/view ... e531e2e91c
Hilft mir das?

Re: FMOD, wer kann mir beim Einstieg helfen? Habe keinen Pla

Verfasst: 21.05.2013 12:41
von Bisonte
Konstanten, Strukturen, Imports... Das sieht gut aus ;)

Re: FMOD, wer kann mir beim Einstieg helfen? Habe keinen Pla

Verfasst: 21.05.2013 14:32
von OlderCoder
Schön.
Oben steht
;fmodex 4.20.00 Include

Passt für 3.74 wohl eher nicht, oder?
Und da der Post von Kai vom 31.10.2008 stammt, wird es auch nicht unbedingt für das aktuelle FMOD passen, oder sehe ich das falsch?

Re: FMOD, wer kann mir beim Einstieg helfen? Habe keinen Pla

Verfasst: 21.05.2013 14:42
von Derren
Probieren geht über Studieren.
Es gibt eigentlich nur zwei Szenarien. Entweder es hat sich an der Struktur der DLL nichts geändert, sondern nur interner Kram (besserer Algorithmus, der aber immernoch mit der gleichen Funktion und mit den gleichen Parametern aufgerufen wird), dann funktioniert der Wrapper einwandfrei auch mit einer neuen Version.

Falls sich an der Struktur was geändert haben sollte wird PB meckern, dass der Prototyp nicht mit der DLL-Funktion übereinstimmt. Dann musst du nachbessern.