diff options
Diffstat (limited to 'audio/common/all-versions/default/service/service.cpp')
| -rw-r--r-- | audio/common/all-versions/default/service/service.cpp | 32 |
1 files changed, 24 insertions, 8 deletions
diff --git a/audio/common/all-versions/default/service/service.cpp b/audio/common/all-versions/default/service/service.cpp index c45f885650..8a7b2ea09d 100644 --- a/audio/common/all-versions/default/service/service.cpp +++ b/audio/common/all-versions/default/service/service.cpp @@ -18,36 +18,52 @@ #include <android/hardware/audio/2.0/IDevicesFactory.h> #include <android/hardware/audio/4.0/IDevicesFactory.h> +#include <android/hardware/audio/5.0/IDevicesFactory.h> #include <android/hardware/audio/effect/2.0/IEffectsFactory.h> #include <android/hardware/audio/effect/4.0/IEffectsFactory.h> +#include <android/hardware/audio/effect/5.0/IEffectsFactory.h> #include <android/hardware/bluetooth/a2dp/1.0/IBluetoothAudioOffload.h> #include <android/hardware/bluetooth/audio/2.0/IBluetoothAudioProvidersFactory.h> #include <android/hardware/soundtrigger/2.0/ISoundTriggerHw.h> #include <android/hardware/soundtrigger/2.1/ISoundTriggerHw.h> +#include <android/hardware/soundtrigger/2.2/ISoundTriggerHw.h> #include <binder/ProcessState.h> +#include <cutils/properties.h> #include <hidl/HidlTransportSupport.h> #include <hidl/LegacySupport.h> +#include <hwbinder/ProcessState.h> using namespace android::hardware; using android::OK; int main(int /* argc */, char* /* argv */ []) { - android::ProcessState::initWithDriver("/dev/vndbinder"); + ::android::ProcessState::initWithDriver("/dev/vndbinder"); // start a threadpool for vndbinder interactions - android::ProcessState::self()->startThreadPool(); + ::android::ProcessState::self()->startThreadPool(); + + const int32_t defaultValue = -1; + int32_t value = + property_get_int32("persist.vendor.audio.service.hwbinder.size_kbyte", defaultValue); + if (value != defaultValue) { + ALOGD("Configuring hwbinder with mmap size %d KBytes", value); + ProcessState::initWithMmapSize(static_cast<size_t>(value) * 1024); + } configureRpcThreadpool(16, true /*callerWillJoin*/); - bool fail = registerPassthroughServiceImplementation<audio::V4_0::IDevicesFactory>() != OK && + bool fail = registerPassthroughServiceImplementation<audio::V5_0::IDevicesFactory>() != OK && + registerPassthroughServiceImplementation<audio::V4_0::IDevicesFactory>() != OK && registerPassthroughServiceImplementation<audio::V2_0::IDevicesFactory>() != OK; - LOG_ALWAYS_FATAL_IF(fail, "Could not register audio core API 2.0 nor 4.0"); + LOG_ALWAYS_FATAL_IF(fail, "Could not register audio core API 2, 4 nor 5"); - fail = registerPassthroughServiceImplementation<audio::effect::V4_0::IEffectsFactory>() != OK && + fail = registerPassthroughServiceImplementation<audio::effect::V5_0::IEffectsFactory>() != OK && + registerPassthroughServiceImplementation<audio::effect::V4_0::IEffectsFactory>() != OK && registerPassthroughServiceImplementation<audio::effect::V2_0::IEffectsFactory>() != OK, - LOG_ALWAYS_FATAL_IF(fail, "Could not register audio effect API 2.0 nor 4.0"); + LOG_ALWAYS_FATAL_IF(fail, "Could not register audio effect API 2, 4 nor 5"); - fail = registerPassthroughServiceImplementation<soundtrigger::V2_1::ISoundTriggerHw>() != OK && + fail = registerPassthroughServiceImplementation<soundtrigger::V2_2::ISoundTriggerHw>() != OK && + registerPassthroughServiceImplementation<soundtrigger::V2_1::ISoundTriggerHw>() != OK && registerPassthroughServiceImplementation<soundtrigger::V2_0::ISoundTriggerHw>() != OK, - ALOGW_IF(fail, "Could not register soundtrigger API 2.0 nor 2.1"); + ALOGW_IF(fail, "Could not register soundtrigger API 2.0, 2.1 nor 2.2"); fail = registerPassthroughServiceImplementation< bluetooth::audio::V2_0::IBluetoothAudioProvidersFactory>() != OK; |
