33#include < string>
44#include < dlfcn.h>
55
6- AidlVersions::AidlVersions () {
7- ALOGD (" AidlVersions::init()" );
8- findAndroidHardwareAudioCommonVersion ();
9- findAndroidHardwareAudioEffectVersion ();
10- findAndroidHardwareCommonVersion ();
11- findAndroidHardwareCommonFmqVersion ();
12- findAndroidMediaAudioCommonTypesVersion ();
13- findAndroidMediaAudioEraserTypesVersion ();
14- }
15-
16- void AidlVersions::findAndroidHardwareAudioCommonVersion () {
6+ void AidlVersions::init () {
177 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- }
298
30- void AidlVersions::findAndroidHardwareAudioEffectVersion () {
31- char tmp[ 128 ];
9+ ALOGD ( " AidlVersions::init() " );
10+
3211 for (uint32_t i = ANDROID_HARDWARE_AUDIO_EFFECT_MAX_VERSION; i > 0 ; i--) {
3312 snprintf (tmp, sizeof (tmp), " android.hardware.audio.effect-V%u-ndk.so" , i);
3413 void *handle = dlopen (tmp, RTLD_LAZY);
@@ -42,10 +21,7 @@ void AidlVersions::findAndroidHardwareAudioEffectVersion() {
4221 if (androidHardwareAudioEffectVersion == 0 ) {
4322 ALOGE (" Failed to find android.hardware.audio.effect version!" );
4423 }
45- }
4624
47- void AidlVersions::findAndroidHardwareCommonVersion () {
48- char tmp[128 ];
4925 for (uint32_t i = ANDROID_HARDWARE_COMMON_MAX_VERSION; i > 0 ; i--) {
5026 snprintf (tmp, sizeof (tmp), " android.hardware.common-V%u-ndk.so" , i);
5127 void *handle = dlopen (tmp, RTLD_LAZY);
@@ -59,10 +35,7 @@ void AidlVersions::findAndroidHardwareCommonVersion() {
5935 if (androidHardwareCommonVersion == 0 ) {
6036 ALOGE (" Failed to find android.hardware.common version!" );
6137 }
62- }
6338
64- void AidlVersions::findAndroidHardwareCommonFmqVersion () {
65- char tmp[128 ];
6639 for (uint32_t i = ANDROID_HARDWARE_COMMON_FMQ_MAX_VERSION; i > 0 ; i--) {
6740 snprintf (tmp, sizeof (tmp), " android.hardware.common.fmq-V%u-ndk.so" , i);
6841 void *handle = dlopen (tmp, RTLD_LAZY);
@@ -76,10 +49,7 @@ void AidlVersions::findAndroidHardwareCommonFmqVersion() {
7649 if (androidHardwareCommonFmqVersion == 0 ) {
7750 ALOGE (" Failed to find android.hardware.common.fmq version!" );
7851 }
79- }
8052
81- void AidlVersions::findAndroidMediaAudioCommonTypesVersion () {
82- char tmp[128 ];
8353 for (uint32_t i = ANDROID_MEDIA_AUDIO_COMMON_TYPES_MAX_VERSION; i > 0 ; i--) {
8454 snprintf (tmp, sizeof (tmp), " android.media.audio.common.types-V%u-ndk.so" , i);
8555 void *handle = dlopen (tmp, RTLD_LAZY);
@@ -95,7 +65,7 @@ void AidlVersions::findAndroidMediaAudioCommonTypesVersion() {
9565 }
9666}
9767
98- void AidlVersions::findAndroidMediaAudioEraserTypesVersion () {
99- char tmp[ 128 ];
100- // TODO
68+ __attribute__ ((constructor))
69+ void aidl_versions_init() {
70+ AidlVersions::init ();
10171}
0 commit comments