OpenAL - Már megint alkottam valami haszontalant... :-)

Van egy projektem, egy touchscreen-es kioszkszerű valamibe (több részeletet nem akarok elárulni) kell csinálnom egy játékot, pontosabban egy GUI-t egy meglévő játékhoz.

Mivel mostanság eléggé bele vagyok csúszva a C#-os fejlesztésekbe, ezért ez lett a fejlesztés nyelve (+ Mikroszop .NET framework). Követelmény volt, hogy legyen valami hangja is, ezért próbálkoztam a System.Media névtérbe belegányolt SoundPlayer osztállyal.

Na, itt jött a bukfenc. Ez a kis gyönyörűség, hiába csinálok több példányt belőle, nem engedi egyidejűleg több sample lejátszását. Ha egy új player példánnyal elkezdek lejátszani egy másik mintát, a régi elhallgat... :-) Ez már döfi! :-)) Akkor mi a ráknak lehet belőle több példányt létrehozni??? Na, mindegy. Szóval ez kuka, valami mást kellett választani, már csak azért is, mert nem bírja az intenzív újraindítgatásokat, mert szétszáll tőle az alkalmazás (és nem kivételt dob, hanem GP faulttal röppen el!!! Nem semmi....)

Létezik a Tao framework OpenAL API wrappere, ami az OpenAL teljes C-stílusú API függvénykészletét és konstansait odaadja. Ez mind nagyon szép és jó, csak én szeretek kifejezetten objektumorientáltan folytatni egy projektet amit egyszer már OOP szemlélettel építettem fel. Szóval kitaláltam, hogy csinálok hozzá egy rendes wrapper osztálykészletet. Már az alapok megvannak, tudok benne Device-ot, Context-et, Source-ot és Buffert használni, minden OpenAL property rendes class propertyként jelenik meg, és úgy néz ki, hogy a GUI-ba is sikerült beletenni. Még nem teljes, de használni már lehet egy-két dologra.

Most azon gondolkodom, hogy az erre a könyvtárra ráfordított időt ki a túró fogja nekem megfizetni, de hát nem ezért kezd bele az ember.... :-D Esetleg kiteszem LGPL-es cuccként valahová, persze csak ha érdekel egyáltalán valakit egy ilyen. :-)

Hozzászólások

Na, azt hiszem tényleg kissé elkapkodtam a dolgot. Mint ahogy sejthető volt, van már ilyen library, OpenAlDotNet-nek hívják, fent van a SF-en.... :-)

Mindegy, az enyém nekem jobban tetszik. :-)