33#include < string>
44#include < dlfcn.h>
55
6- void AidlVersions::init () {
7- char tmp[128 ];
8-
6+ AidlVersions::AidlVersions () {
97 ALOGD (" AidlVersions::init()" );
8+ findAndroidHardwareAudioCommonVersion ();
9+ findAndroidHardwareAudioEffectVersion ();
10+ findAndroidHardwareCommonVersion ();
11+ findAndroidHardwareCommonFmqVersion ();
12+ findAndroidMediaAudioCommonTypesVersion ();
13+ findAndroidMediaAudioEraserTypesVersion ();
14+ }
15+
16+ void AidlVersions::findAndroidHardwareAudioCommonVersion () {
17+ char tmp[128 ];
18+ for (uint32_t i = ANDROID_HARDWARE_AUDIO_COMMON_MAX_VERSION; i > 0 ; i--) {
19+ snprintf (tmp, sizeof (tmp), " android.hardware.audio.common-V%u-ndk.so" , i);
20+ void *handle = dlopen (tmp, RTLD_LAZY);
21+ if (handle) {
22+ ALOGD (" Found android.hardware.audio.common-V%u-ndk.so" , i);
23+ androidHardwareAudioCommonVersion = i;
24+ dlclose (handle);
25+ break ;
26+ }
27+ }
28+ }
1029
30+ void AidlVersions::findAndroidHardwareAudioEffectVersion () {
31+ char tmp[128 ];
1132 for (uint32_t i = ANDROID_HARDWARE_AUDIO_EFFECT_MAX_VERSION; i > 0 ; i--) {
1233 snprintf (tmp, sizeof (tmp), " android.hardware.audio.effect-V%u-ndk.so" , i);
1334 void *handle = dlopen (tmp, RTLD_LAZY);
@@ -21,7 +42,10 @@ void AidlVersions::init() {
2142 if (androidHardwareAudioEffectVersion == 0 ) {
2243 ALOGE (" Failed to find android.hardware.audio.effect version!" );
2344 }
45+ }
2446
47+ void AidlVersions::findAndroidHardwareCommonVersion () {
48+ char tmp[128 ];
2549 for (uint32_t i = ANDROID_HARDWARE_COMMON_MAX_VERSION; i > 0 ; i--) {
2650 snprintf (tmp, sizeof (tmp), " android.hardware.common-V%u-ndk.so" , i);
2751 void *handle = dlopen (tmp, RTLD_LAZY);
@@ -35,7 +59,10 @@ void AidlVersions::init() {
3559 if (androidHardwareCommonVersion == 0 ) {
3660 ALOGE (" Failed to find android.hardware.common version!" );
3761 }
62+ }
3863
64+ void AidlVersions::findAndroidHardwareCommonFmqVersion () {
65+ char tmp[128 ];
3966 for (uint32_t i = ANDROID_HARDWARE_COMMON_FMQ_MAX_VERSION; i > 0 ; i--) {
4067 snprintf (tmp, sizeof (tmp), " android.hardware.common.fmq-V%u-ndk.so" , i);
4168 void *handle = dlopen (tmp, RTLD_LAZY);
@@ -49,7 +76,10 @@ void AidlVersions::init() {
4976 if (androidHardwareCommonFmqVersion == 0 ) {
5077 ALOGE (" Failed to find android.hardware.common.fmq version!" );
5178 }
79+ }
5280
81+ void AidlVersions::findAndroidMediaAudioCommonTypesVersion () {
82+ char tmp[128 ];
5383 for (uint32_t i = ANDROID_MEDIA_AUDIO_COMMON_TYPES_MAX_VERSION; i > 0 ; i--) {
5484 snprintf (tmp, sizeof (tmp), " android.media.audio.common.types-V%u-ndk.so" , i);
5585 void *handle = dlopen (tmp, RTLD_LAZY);
@@ -65,7 +95,7 @@ void AidlVersions::init() {
6595 }
6696}
6797
68- __attribute__ ((constructor))
69- void aidl_versions_init() {
70- AidlVersions::init ();
98+ void AidlVersions::findAndroidMediaAudioEraserTypesVersion () {
99+ char tmp[ 128 ];
100+ // TODO
71101}
0 commit comments