Ok, merci Harko.
Effectivement, je voyais bien qu'il me manquais quelque chose. En fait, j'ai récupéré jsasio, une interface JNI pour utliser des drivers audio ASIO avec le système audio "javax.sound.sampled" de Java. Quand j'utilise l'option VM -Djava.library.path = path/to/jsasio.dll j'ai une erreur à l'entrée dans le main (jsasio.jar est bien dans mon classpath) :
java.lang.NoClassDefFoundError: =
Caused by: java.lang.ClassNotFoundException: =
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
Exception in thread "main"
|
Du coup je me suis dit que cette DLL n'était pas linké avec le driver (constructeur) de ma carte, peut-être plutôt avec celui d'Asio4all de manière générique.
J'ai essayé de recompiler les sources de jsasio.dll (ver 1.2 dispo sur sourceforge) et j'avais l'erreur comme quoi "CLSIDFromString" n'était pas une référence connue. Cette erreur concerne certains fichiers .cpp fournis avec le "sdk" de Steinberg (ceux qui ont inventé les spécifications Asio).
J'ai encore réduit les erreurs : j'ai ouvert le projet (.dsw) de Steinberg et j'ai vu quels fichiers sont réellement communs et lesquels ne servent qu'aux exemples fournis. En intégrant que le nécessaire dans mon projet jsasio, tout compile correctement et je suis maintenant bloqué au niveau du linkage ("linking" ?).
De la dernière ligne de compilation à la première ligne d'erreur :
P:projectscodeblocksjsasio_1.2_dlljASIO.h:24: warning: 'activeMixer' defined but not used
Linking dynamic library: binDebugjsasio_1.dll
Creating library file: binDebuglibjsasio_1.a
objDebugasioasio.o: In function `Z8ASIOExitv':
P:/projects/codeblocks/jsasio_1.2_dll/asio/asio.cpp:101: undefined reference to `asioDrivers'
|
J'ai beacoup de warnings du même genre pendant la compilation mais je suppose que c'est normal pour du JNI ...
Toutes mes erreurs de linkage sont du même type ("undefined reference to ..." ) et concernent :
- la classe AsioDrivers (dépend des fichiers Steinberg) et je suppose qu'il faut que je fasse le lien avec le driver de ma carte pour lequel je n'ai pas de .lib (unique la dll et un .sys, est-ce utilisable ?). Pour l'instant c'est défini comme "extern AsioDrivers *asioDrivers;"
- IID_IUnknown, StringFromCLSID et autres du même genre pour lesquels je ne sais pas où récupérer le(s) .lib.
Bref, si tu sais où je peux trouver les bons .lib ou même faire sans pour le driver de ma carte, je te serais très reconnaissant.
---------------
The Rom's, à votre service