diff options
author | Jean-Michel Trivi <jmtrivi@google.com> | 2015-03-31 18:02:24 -0700 |
---|---|---|
committer | Jean-Michel Trivi <jmtrivi@google.com> | 2015-04-01 11:29:43 -0700 |
commit | 887a9ed4446cb451181c392a0e51a69914e58fbf (patch) | |
tree | 148916028dcdf5c2db173f62f1b063412d070124 | |
parent | 2110e04cdfbf9ad85ce154ce5f778ee5ccfc95eb (diff) | |
download | frameworks_av-887a9ed4446cb451181c392a0e51a69914e58fbf.zip frameworks_av-887a9ed4446cb451181c392a0e51a69914e58fbf.tar.gz frameworks_av-887a9ed4446cb451181c392a0e51a69914e58fbf.tar.bz2 |
Updates to AudioPolicyManager refactor
Use protected access in AudioPolicyManager class for
- engine field
- querying phone state
- isStrategyActive
Fix inclusion of AudioPolicyManagerInterface header.
Use "APM_" prefix in audio policy conf parsing code to avoid
naming conflicts with some HALs.
DeviceDescriptor and its collection class are good friends now.
Change-Id: I236d62a2b8a4b6bf68dd515932650b912577c145
5 files changed, 21 insertions, 13 deletions
diff --git a/services/audiopolicy/common/managerdefinitions/include/DeviceDescriptor.h b/services/audiopolicy/common/managerdefinitions/include/DeviceDescriptor.h index b9e1d4a..d15f6b4 100644 --- a/services/audiopolicy/common/managerdefinitions/include/DeviceDescriptor.h +++ b/services/audiopolicy/common/managerdefinitions/include/DeviceDescriptor.h @@ -54,6 +54,8 @@ public: private: audio_devices_t mDeviceType; + +friend class DeviceVector; }; class DeviceVector : public SortedVector< sp<DeviceDescriptor> > diff --git a/services/audiopolicy/common/managerdefinitions/include/audio_policy_conf.h b/services/audiopolicy/common/managerdefinitions/include/audio_policy_conf.h index 441bf7b..a393e3b 100644 --- a/services/audiopolicy/common/managerdefinitions/include/audio_policy_conf.h +++ b/services/audiopolicy/common/managerdefinitions/include/audio_policy_conf.h @@ -16,6 +16,7 @@ #pragma once + ///////////////////////////////////////////////// // Definitions for audio policy configuration file (audio_policy.conf) ///////////////////////////////////////////////// @@ -50,9 +51,9 @@ // "formats" in outputs descriptors indicating that supported // values should be queried after opening the output. -#define DEVICES_TAG "devices" -#define DEVICE_TYPE "type" -#define DEVICE_ADDRESS "address" +#define APM_DEVICES_TAG "devices" +#define APM_DEVICE_TYPE "type" +#define APM_DEVICE_ADDRESS "address" #define MIXERS_TAG "mixers" #define MIXER_TYPE "type" diff --git a/services/audiopolicy/common/managerdefinitions/src/HwModule.cpp b/services/audiopolicy/common/managerdefinitions/src/HwModule.cpp index 8004303..0097d69 100644 --- a/services/audiopolicy/common/managerdefinitions/src/HwModule.cpp +++ b/services/audiopolicy/common/managerdefinitions/src/HwModule.cpp @@ -142,7 +142,7 @@ status_t HwModule::loadDevice(cnode *root) audio_devices_t type = AUDIO_DEVICE_NONE; while (node) { - if (strcmp(node->name, DEVICE_TYPE) == 0) { + if (strcmp(node->name, APM_DEVICE_TYPE) == 0) { type = ConfigParsingUtils::parseDeviceNames((char *)node->value); break; } @@ -158,7 +158,7 @@ status_t HwModule::loadDevice(cnode *root) node = root->first_child; while (node) { - if (strcmp(node->name, DEVICE_ADDRESS) == 0) { + if (strcmp(node->name, APM_DEVICE_ADDRESS) == 0) { deviceDesc->mAddress = String8((char *)node->value); } else if (strcmp(node->name, CHANNELS_TAG) == 0) { if (audio_is_input_device(type)) { diff --git a/services/audiopolicy/managerdefault/AudioPolicyManager.cpp b/services/audiopolicy/managerdefault/AudioPolicyManager.cpp index aa2e044..797a2b4 100644 --- a/services/audiopolicy/managerdefault/AudioPolicyManager.cpp +++ b/services/audiopolicy/managerdefault/AudioPolicyManager.cpp @@ -521,6 +521,10 @@ void AudioPolicyManager::setPhoneState(audio_mode_t state) } } +audio_mode_t AudioPolicyManager::getPhoneState() { + return mEngine->getPhoneState(); +} + void AudioPolicyManager::setForceUse(audio_policy_force_use_t usage, audio_policy_forced_cfg_t config) { diff --git a/services/audiopolicy/managerdefault/AudioPolicyManager.h b/services/audiopolicy/managerdefault/AudioPolicyManager.h index dcd74f0..02b678a 100644 --- a/services/audiopolicy/managerdefault/AudioPolicyManager.h +++ b/services/audiopolicy/managerdefault/AudioPolicyManager.h @@ -27,6 +27,7 @@ #include <media/AudioPolicy.h> #include "AudioPolicyInterface.h" +#include <AudioPolicyManagerInterface.h> #include <AudioPolicyManagerObserver.h> #include <AudioGain.h> #include <AudioPort.h> @@ -44,8 +45,6 @@ namespace android { -class AudioPolicyManagerInterface; - // ---------------------------------------------------------------------------- // Attenuation applied to STRATEGY_SONIFICATION streams when a headset is connected: 6dB @@ -284,6 +283,9 @@ protected: virtual audio_devices_t getDeviceForStrategy(routing_strategy strategy, bool fromCache); + bool isStrategyActive(const sp<AudioOutputDescriptor> outputDesc, routing_strategy strategy, + uint32_t inPastMs = 0, nsecs_t sysTime = 0) const; + // change the route of the specified output. Returns the number of ms we have slept to // allow new routing to take effect in certain cases. virtual uint32_t setOutputDevice(audio_io_handle_t output, @@ -337,6 +339,8 @@ protected: // a special tone in the device used for communication void handleIncallSonification(audio_stream_type_t stream, bool starting, bool stateChange); + audio_mode_t getPhoneState(); + // true if device is in a telephony or VoIP call virtual bool isInCall(); // true if given state represents a device in a telephony or VoIP call @@ -523,6 +527,9 @@ protected: #endif //AUDIO_POLICY_TEST uint32_t nextAudioPortGeneration(); + + // Audio Policy Engine Interface. + AudioPolicyManagerInterface *mEngine; private: // updates device caching and output for streams that can influence the // routing of notifications @@ -566,12 +573,6 @@ private: audio_policy_dev_state_t state, const char *device_address, const char *device_name); - - bool isStrategyActive(const sp<AudioOutputDescriptor> outputDesc, routing_strategy strategy, - uint32_t inPastMs = 0, nsecs_t sysTime = 0) const; - - // Audio Policy Engine Interface. - AudioPolicyManagerInterface *mEngine; }; }; |