@@ -72,6 +72,13 @@ typedef uint32_t aaudio_channel_mask_t;
7272typedef int32_t aaudio_spatialization_behavior_t ;
7373#endif
7474
75+ #if __NDK_MAJOR__ < 36
76+ // Defined in W
77+ typedef void (*AAudioStream_presentationEndCallback)(
78+ AAudioStream* stream,
79+ void * userData);
80+ #endif
81+
7582#ifndef __ANDROID_API_Q__
7683#define __ANDROID_API_Q__ 29
7784#endif
@@ -124,6 +131,7 @@ class AAudioLoader {
124131 // H = cHar
125132 // U = uint32_t
126133 // O = bOol
134+ // R = pResentation end callback
127135
128136 typedef int32_t (*signature_I_PPB)(AAudioStreamBuilder **builder);
129137
@@ -157,6 +165,10 @@ class AAudioLoader {
157165 AAudioStream_errorCallback,
158166 void *);
159167
168+ typedef void (*signature_V_PBPRPV)(AAudioStreamBuilder *,
169+ AAudioStream_presentationEndCallback,
170+ void *);
171+
160172 typedef aaudio_format_t (*signature_F_PS)(AAudioStream *stream);
161173
162174 typedef int32_t (*signature_I_PSPVIL)(AAudioStream *, void *, int32_t , int64_t );
@@ -176,6 +188,7 @@ class AAudioLoader {
176188 typedef int32_t (*signature_I_II)(int32_t , int32_t );
177189 typedef int32_t (*signature_I_I)(int32_t );
178190 typedef int32_t (*signature_I)();
191+ typedef int32_t (*signature_I_PSII)(AAudioStream *, int32_t , int32_t );
179192
180193 static AAudioLoader* getInstance (); // singleton
181194
@@ -224,6 +237,7 @@ class AAudioLoader {
224237
225238 signature_V_PBPDPV builder_setDataCallback = nullptr ;
226239 signature_V_PBPEPV builder_setErrorCallback = nullptr ;
240+ signature_V_PBPRPV builder_setPresentationEndCallback = nullptr ;
227241
228242 signature_I_PB builder_delete = nullptr ;
229243
@@ -279,12 +293,18 @@ class AAudioLoader {
279293 signature_I_PS stream_getHardwareSampleRate = nullptr ;
280294 signature_F_PS stream_getHardwareFormat = nullptr ;
281295
296+
282297 signature_I_II aaudio_getPlatformMMapPolicy = nullptr ;
283298 signature_I_II aaudio_getPlatformMMapExclusivePolicy = nullptr ;
284299 signature_I_I aaudio_setMMapPolicy = nullptr ;
285300 signature_I aaudio_getMMapPolicy = nullptr ;
286301 signature_O_PS stream_isMMapUsed = nullptr ;
287302
303+ signature_I_PSII stream_setOffloadDelayPadding = nullptr ;
304+ signature_I_PS stream_getOffloadDelay = nullptr ;
305+ signature_I_PS stream_getOffloadPadding = nullptr ;
306+ signature_I_PS stream_setOffloadEndOfStream = nullptr ;
307+
288308 private:
289309 AAudioLoader () {}
290310 ~AAudioLoader ();
@@ -313,6 +333,8 @@ class AAudioLoader {
313333 signature_I_II load_I_II (const char *name);
314334 signature_I_I load_I_I (const char *name);
315335 signature_I load_I (const char *name);
336+ signature_V_PBPRPV load_V_PBPRPV (const char *name);
337+ signature_I_PSII load_I_PSII (const char *name);
316338
317339 void *mLibHandle = nullptr ;
318340};
0 commit comments