SWIG-Schnittstelle zum Empfangen einer undurchsichtigen Strukturreferenz in Java über das Funktionsargument

Ich versuche, SWIG zu verwenden, um die Spotify-API (libspotify) für Android zu verwenden:https://developer.spotify.com/technologies/libspotify/

Ich habe Probleme beim Definieren der SWIG-Schnittstellendatei, um die folgende native C-Funktion erfolgreich aufrufen zu können:

sp_error sp_session_create(const sp_session_config * config, sp_session ** sess);

Was in C so heißen würde:

//config struct defined previously
sp_session *sess;
sp_session_create(&config, &sess);

Aber in Java müsste ich es so nennen:

//config object defined previously
sp_session javaSess = new sp_session();
sp_session_create(config, javaSess);

sp_session ist eine undurchsichtige Struktur und wird nur in der Datei API.h von libspotify definiert als:

typedef struct sp_session sp_session;

Ich erwarte, dass die libspotify-Bibliothek sie erstellt und mir einen Verweis darauf gibt. Das Einzige, wofür ich diese Referenz benötige, ist die Weitergabe an andere Funktionen in der API.

Ich glaube, die Antwort liegt in der SWIG-Oberfläche und den Typemaps, aber ich habe bisher nicht versucht, die anzuwendenBeispiele I gefunden in der Dokumentation.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage