Welcome to the official BlackBerry Support Community Forums.

This is your resource to discuss support topics with your peers, and learn from each other.

inside custom component

Native Development

New Developer
Posts: 20
Registered: ‎03-27-2012
My Device: Z10 LE, PlayBook & Dev Alpha C

Re: Porting openFrameworks (need help with the audio/QSA part)

[ Edited ]

While the audio problem is mostly solved (the actual reason why I opened this thread in the first place), I thought'd I give you guys a small update on ofxQNX.



Some of you might know that NodeBeat is currently available and featured app in the AppStore ( http://appworld.blackberry.com/webstore/content/106167/?lang=en ). NodeBeat is build on openFrameworks and ofxQNX. Proving that ofxQNX is pretty much ready for prime time use.



With the announcement of the BlackBerry 10 Native SDK earlier this week, I spend the last few days trying to get ofxQNX working for BB10 as well. It seemed that the new compiler is a bit more strict, but with a few tweaks to the code I managed to get it up and running: https://twitter.com/#!/LaurenceMuller/status/198200640621654017/photo/1


I tested most of the ofx examples using the BB10 Dev Alpha Simulator and so far it seems to run great. As I did not attended BBJam10 I do not have access to the real dev alpha device. My guess is that it will probably run (I included new ARMv7 libraries for BB10), if not let me know. I have pushed the sourcecode onto Github ( https://github.com/falcon4ever/openFrameworks/tree/developPlayBook/addons/ofxQNX ). 


I also included converted test projects for the BB10 target and updated the dependencies a bit. FreeImage and Poco lib now includes additional instructions on how to build them from scratch (+ the custom Makefiles that I use)


Since the BB10 target is mostly similar to the PlayBook target, I'll try to maintain both in the same project (ofxQNX).


New Contributor
Posts: 2
Registered: ‎05-25-2012
My Device: nonuser

Re: Porting openFrameworks (need help with the audio/QSA part)



I am new to BB development.  The BB Native SDK Documentation says that it supports ALSA 5 drivers, through the shared library libasound.so:




So, why was it necessary to make the ported code use QSA?  i.e. Couldn't it have just used ALSA through the provided libasound.so? 


Thanks for your help!



New Contributor
Posts: 2
Registered: ‎05-25-2012
My Device: nonuser

Re: Porting openFrameworks (need help with the audio/QSA part)

OK, I found the answer to my question (sorry to bother).  I found this more complete documentation on the QNX website:


The key components of the QNX Audio driver architecture include:

Audio system manager. deva-ctrl-*.so drivers Audio drivers. For example, the audio driver for the Ensoniq Audio PCI cards is deva-ctrl-audiopci.so; and 
Programmer interface library.
<asound.h>, <asoundlib.h> Header files in /usr/include/sys/.


The only supported interface to the ALSA 5 drivers is through libasound.so. Direct use of ioctl()'s aren't supported because of the requirements of the ALSA API. It uses ioctl()'s in ways that are illegal in the QNX OS (e.g. passing a structure that contains a pointer through an ioctl()).

The asound library is licensed under the Library GNU Public License (LGPL). This means that any changes to the library must be open-sourced, but proprietary code can link to the library without becoming open-source.

The asound library is released with QNX only as a shared library (libasound.so). QNX Software Systems won't be offering a static library. The intention is to gradually improve the quality and number of services that this library provides; by linking against shared libraries, you'll receive the benefits of improvements without recompiling.

Posts: 99
Registered: ‎10-03-2009
My Device: Not Specified

Re: Porting openFrameworks (need help with the audio/QSA part)

Thanks for reporting the answer.


I'm collecting volunteers to capture things like this in a new Community Wiki.  Staged at http://pelegri.github.com/Community/ with older versions integrated into http://blackberry-community.github.com/Community/ and http://blackberry.github.com/Community/ 


Interested in helping with the general effort?