From 6fc6a64fa3b0a9e4577eb763590f531c0a50a27b Mon Sep 17 00:00:00 2001 From: Eric Laurent Date: Sat, 25 Apr 2015 05:18:59 +0000 Subject: Revert "Add a configurable version of the policy engine based on PFW" This reverts commit 65c3781db3443531deacecfbda5c7e7e82868a34. Change-Id: Ib61cd70f97c4c4f4b503fb845643627d6896f4f9 --- services/audiopolicy/engineconfigurable/Android.mk | 59 -- .../include/AudioPolicyEngineInstance.h | 81 --- .../engineconfigurable/include/EngineDefinition.h | 22 - .../interface/AudioPolicyPluginInterface.h | 147 ----- .../parameter-framework/Android.mk | 7 - .../parameter-framework/example/Android.mk | 104 ---- .../ParameterFrameworkConfigurationPolicy.xml | 15 - .../parameter-framework/example/README.md | 11 - .../example/Settings/device_for_input_source.pfw | 515 ----------------- .../Settings/device_for_strategy_accessibility.pfw | 302 ---------- .../example/Settings/device_for_strategy_dtmf.pfw | 637 --------------------- .../device_for_strategy_enforced_audible.pfw | 358 ------------ .../example/Settings/device_for_strategy_media.pfw | 331 ----------- .../example/Settings/device_for_strategy_phone.pfw | 485 ---------------- .../Settings/device_for_strategy_rerouting.pfw | 297 ---------- .../Settings/device_for_strategy_sonification.pfw | 485 ---------------- ...device_for_strategy_sonification_respectful.pfw | 545 ------------------ ...ce_for_strategy_transmitted_through_speaker.pfw | 40 -- .../example/Settings/strategy_for_stream.pfw | 20 - .../example/Settings/strategy_for_usage.pfw | 39 -- .../example/Settings/volumes.pfw | 545 ------------------ .../example/Structure/PolicyClass.xml | 5 - .../Structure/PolicySubsystem-CommonTypes.xml | 170 ------ .../example/Structure/PolicySubsystem-Volume.xml | 26 - .../example/Structure/PolicySubsystem.xml | 137 ----- .../example/policy_criteria.txt | 14 - .../parameter-framework/plugin/Android.mk | 40 -- .../parameter-framework/plugin/InputSource.cpp | 53 -- .../parameter-framework/plugin/InputSource.h | 49 -- .../parameter-framework/plugin/PolicyMappingKeys.h | 32 -- .../parameter-framework/plugin/PolicySubsystem.cpp | 105 ---- .../parameter-framework/plugin/PolicySubsystem.h | 60 -- .../plugin/PolicySubsystemBuilder.cpp | 29 - .../parameter-framework/plugin/Strategy.cpp | 54 -- .../parameter-framework/plugin/Strategy.h | 49 -- .../parameter-framework/plugin/Stream.cpp | 56 -- .../parameter-framework/plugin/Stream.h | 49 -- .../parameter-framework/plugin/Usage.cpp | 56 -- .../parameter-framework/plugin/Usage.h | 49 -- .../parameter-framework/plugin/VolumeProfile.cpp | 75 --- .../parameter-framework/plugin/VolumeProfile.h | 64 --- .../engineconfigurable/src/Collection.h | 163 ------ .../audiopolicy/engineconfigurable/src/Element.h | 99 ---- .../audiopolicy/engineconfigurable/src/Engine.cpp | 281 --------- .../audiopolicy/engineconfigurable/src/Engine.h | 225 -------- .../engineconfigurable/src/EngineInstance.cpp | 63 -- .../engineconfigurable/src/InputSource.cpp | 69 --- .../engineconfigurable/src/InputSource.h | 88 --- .../engineconfigurable/src/Strategy.cpp | 68 --- .../audiopolicy/engineconfigurable/src/Strategy.h | 89 --- .../audiopolicy/engineconfigurable/src/Stream.cpp | 158 ----- .../audiopolicy/engineconfigurable/src/Stream.h | 115 ---- .../audiopolicy/engineconfigurable/src/Usage.cpp | 57 -- .../audiopolicy/engineconfigurable/src/Usage.h | 88 --- .../engineconfigurable/wrapper/Android.mk | 42 -- .../wrapper/ParameterManagerWrapper.cpp | 434 -------------- .../wrapper/audio_policy_criteria_conf.h | 71 --- .../wrapper/config/audio_policy_criteria.conf | 192 ------- .../wrapper/include/ParameterManagerWrapper.h | 286 --------- 59 files changed, 8805 deletions(-) delete mode 100755 services/audiopolicy/engineconfigurable/Android.mk delete mode 100755 services/audiopolicy/engineconfigurable/include/AudioPolicyEngineInstance.h delete mode 100755 services/audiopolicy/engineconfigurable/include/EngineDefinition.h delete mode 100755 services/audiopolicy/engineconfigurable/interface/AudioPolicyPluginInterface.h delete mode 100644 services/audiopolicy/engineconfigurable/parameter-framework/Android.mk delete mode 100644 services/audiopolicy/engineconfigurable/parameter-framework/example/Android.mk delete mode 100755 services/audiopolicy/engineconfigurable/parameter-framework/example/ParameterFrameworkConfigurationPolicy.xml delete mode 100644 services/audiopolicy/engineconfigurable/parameter-framework/example/README.md delete mode 100644 services/audiopolicy/engineconfigurable/parameter-framework/example/Settings/device_for_input_source.pfw delete mode 100644 services/audiopolicy/engineconfigurable/parameter-framework/example/Settings/device_for_strategy_accessibility.pfw delete mode 100644 services/audiopolicy/engineconfigurable/parameter-framework/example/Settings/device_for_strategy_dtmf.pfw delete mode 100644 services/audiopolicy/engineconfigurable/parameter-framework/example/Settings/device_for_strategy_enforced_audible.pfw delete mode 100644 services/audiopolicy/engineconfigurable/parameter-framework/example/Settings/device_for_strategy_media.pfw delete mode 100644 services/audiopolicy/engineconfigurable/parameter-framework/example/Settings/device_for_strategy_phone.pfw delete mode 100644 services/audiopolicy/engineconfigurable/parameter-framework/example/Settings/device_for_strategy_rerouting.pfw delete mode 100644 services/audiopolicy/engineconfigurable/parameter-framework/example/Settings/device_for_strategy_sonification.pfw delete mode 100644 services/audiopolicy/engineconfigurable/parameter-framework/example/Settings/device_for_strategy_sonification_respectful.pfw delete mode 100644 services/audiopolicy/engineconfigurable/parameter-framework/example/Settings/device_for_strategy_transmitted_through_speaker.pfw delete mode 100755 services/audiopolicy/engineconfigurable/parameter-framework/example/Settings/strategy_for_stream.pfw delete mode 100644 services/audiopolicy/engineconfigurable/parameter-framework/example/Settings/strategy_for_usage.pfw delete mode 100644 services/audiopolicy/engineconfigurable/parameter-framework/example/Settings/volumes.pfw delete mode 100755 services/audiopolicy/engineconfigurable/parameter-framework/example/Structure/PolicyClass.xml delete mode 100755 services/audiopolicy/engineconfigurable/parameter-framework/example/Structure/PolicySubsystem-CommonTypes.xml delete mode 100755 services/audiopolicy/engineconfigurable/parameter-framework/example/Structure/PolicySubsystem-Volume.xml delete mode 100755 services/audiopolicy/engineconfigurable/parameter-framework/example/Structure/PolicySubsystem.xml delete mode 100755 services/audiopolicy/engineconfigurable/parameter-framework/example/policy_criteria.txt delete mode 100755 services/audiopolicy/engineconfigurable/parameter-framework/plugin/Android.mk delete mode 100755 services/audiopolicy/engineconfigurable/parameter-framework/plugin/InputSource.cpp delete mode 100755 services/audiopolicy/engineconfigurable/parameter-framework/plugin/InputSource.h delete mode 100755 services/audiopolicy/engineconfigurable/parameter-framework/plugin/PolicyMappingKeys.h delete mode 100755 services/audiopolicy/engineconfigurable/parameter-framework/plugin/PolicySubsystem.cpp delete mode 100755 services/audiopolicy/engineconfigurable/parameter-framework/plugin/PolicySubsystem.h delete mode 100755 services/audiopolicy/engineconfigurable/parameter-framework/plugin/PolicySubsystemBuilder.cpp delete mode 100755 services/audiopolicy/engineconfigurable/parameter-framework/plugin/Strategy.cpp delete mode 100755 services/audiopolicy/engineconfigurable/parameter-framework/plugin/Strategy.h delete mode 100755 services/audiopolicy/engineconfigurable/parameter-framework/plugin/Stream.cpp delete mode 100755 services/audiopolicy/engineconfigurable/parameter-framework/plugin/Stream.h delete mode 100755 services/audiopolicy/engineconfigurable/parameter-framework/plugin/Usage.cpp delete mode 100755 services/audiopolicy/engineconfigurable/parameter-framework/plugin/Usage.h delete mode 100755 services/audiopolicy/engineconfigurable/parameter-framework/plugin/VolumeProfile.cpp delete mode 100755 services/audiopolicy/engineconfigurable/parameter-framework/plugin/VolumeProfile.h delete mode 100755 services/audiopolicy/engineconfigurable/src/Collection.h delete mode 100755 services/audiopolicy/engineconfigurable/src/Element.h delete mode 100755 services/audiopolicy/engineconfigurable/src/Engine.cpp delete mode 100755 services/audiopolicy/engineconfigurable/src/Engine.h delete mode 100755 services/audiopolicy/engineconfigurable/src/EngineInstance.cpp delete mode 100755 services/audiopolicy/engineconfigurable/src/InputSource.cpp delete mode 100755 services/audiopolicy/engineconfigurable/src/InputSource.h delete mode 100755 services/audiopolicy/engineconfigurable/src/Strategy.cpp delete mode 100755 services/audiopolicy/engineconfigurable/src/Strategy.h delete mode 100755 services/audiopolicy/engineconfigurable/src/Stream.cpp delete mode 100755 services/audiopolicy/engineconfigurable/src/Stream.h delete mode 100755 services/audiopolicy/engineconfigurable/src/Usage.cpp delete mode 100755 services/audiopolicy/engineconfigurable/src/Usage.h delete mode 100644 services/audiopolicy/engineconfigurable/wrapper/Android.mk delete mode 100755 services/audiopolicy/engineconfigurable/wrapper/ParameterManagerWrapper.cpp delete mode 100755 services/audiopolicy/engineconfigurable/wrapper/audio_policy_criteria_conf.h delete mode 100755 services/audiopolicy/engineconfigurable/wrapper/config/audio_policy_criteria.conf delete mode 100755 services/audiopolicy/engineconfigurable/wrapper/include/ParameterManagerWrapper.h (limited to 'services/audiopolicy/engineconfigurable') diff --git a/services/audiopolicy/engineconfigurable/Android.mk b/services/audiopolicy/engineconfigurable/Android.mk deleted file mode 100755 index 0b13085..0000000 --- a/services/audiopolicy/engineconfigurable/Android.mk +++ /dev/null @@ -1,59 +0,0 @@ - -LOCAL_PATH := $(call my-dir) - -# Component build -####################################################################### - -include $(CLEAR_VARS) - -LOCAL_SRC_FILES := \ - src/Engine.cpp \ - src/EngineInstance.cpp \ - src/Stream.cpp \ - src/Strategy.cpp \ - src/Usage.cpp \ - src/InputSource.cpp \ - -audio_policy_engine_includes_common := \ - $(TOPDIR)frameworks/av/services/audiopolicy/engineconfigurable/include \ - $(TOPDIR)frameworks/av/services/audiopolicy/engineconfigurable/interface \ - $(TOPDIR)frameworks/av/services/audiopolicy/engine/interface - -LOCAL_CFLAGS += \ - -Wall \ - -Werror \ - -Wextra \ - -LOCAL_EXPORT_C_INCLUDE_DIRS := \ - $(audio_policy_engine_includes_common) - -LOCAL_C_INCLUDES := \ - $(audio_policy_engine_includes_common) \ - $(TARGET_OUT_HEADERS)/hw \ - $(call include-path-for, frameworks-av) \ - $(call include-path-for, audio-utils) \ - $(call include-path-for, bionic) \ - $(TOPDIR)frameworks/av/services/audiopolicy/common/include - - -LOCAL_MODULE := libaudiopolicyengineconfigurable -LOCAL_MODULE_TAGS := optional -LOCAL_STATIC_LIBRARIES := \ - libmedia_helper \ - libaudiopolicypfwwrapper \ - libaudiopolicycomponents - -LOCAL_SHARED_LIBRARIES += \ - libcutils \ - libutils \ - libaudioutils \ - libparameter - -include external/stlport/libstlport.mk - -include $(BUILD_SHARED_LIBRARY) - -####################################################################### -# Recursive call sub-folder Android.mk -# -include $(call all-makefiles-under,$(LOCAL_PATH)) diff --git a/services/audiopolicy/engineconfigurable/include/AudioPolicyEngineInstance.h b/services/audiopolicy/engineconfigurable/include/AudioPolicyEngineInstance.h deleted file mode 100755 index 6c4be2c..0000000 --- a/services/audiopolicy/engineconfigurable/include/AudioPolicyEngineInstance.h +++ /dev/null @@ -1,81 +0,0 @@ -/* - * Copyright (C) 2015 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#pragma once - -class AudioPolicyManagerInterface; -class AudioPolicyPluginInterface; - -namespace android -{ -namespace audio_policy -{ - -class Engine; - -class EngineInstance -{ -protected: - EngineInstance(); - -public: - virtual ~EngineInstance(); - - /** - * Get Audio Policy Engine instance. - * - * @return pointer to Route Manager Instance object. - */ - static EngineInstance *getInstance(); - - /** - * Interface query. - * The first client of an interface of the policy engine will start the singleton. - * - * @tparam RequestedInterface: interface that the client is wishing to retrieve. - * - * @return interface handle. - */ - template - RequestedInterface *queryInterface() const; - -protected: - /** - * Get Audio Policy Engine instance. - * - * @return Audio Policy Engine singleton. - */ - Engine *getEngine() const; - -private: - /* Copy facilities are put private to disable copy. */ - EngineInstance(const EngineInstance &object); - EngineInstance &operator=(const EngineInstance &object); -}; - -/** - * Limit template instantation to supported type interfaces. - * Compile time error will claim if invalid interface is requested. - */ -template <> -AudioPolicyManagerInterface *EngineInstance::queryInterface() const; - -template <> -AudioPolicyPluginInterface *EngineInstance::queryInterface() const; - -}; // namespace audio_policy - -}; // namespace android diff --git a/services/audiopolicy/engineconfigurable/include/EngineDefinition.h b/services/audiopolicy/engineconfigurable/include/EngineDefinition.h deleted file mode 100755 index 54d8db5..0000000 --- a/services/audiopolicy/engineconfigurable/include/EngineDefinition.h +++ /dev/null @@ -1,22 +0,0 @@ -/* - * Copyright (C) 2015 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#pragma once - -#include -#include - -typedef std::vector VolumeCurvePoints; diff --git a/services/audiopolicy/engineconfigurable/interface/AudioPolicyPluginInterface.h b/services/audiopolicy/engineconfigurable/interface/AudioPolicyPluginInterface.h deleted file mode 100755 index 74daba5..0000000 --- a/services/audiopolicy/engineconfigurable/interface/AudioPolicyPluginInterface.h +++ /dev/null @@ -1,147 +0,0 @@ -/* - * Copyright (C) 2015 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#pragma once - -#include -#include -#include -#include -#include -#include -#include - -namespace android { - -/** - * This interface allows the parameter plugin to: - * - instantiate all the members of the policy engine (strategies, input sources, usages, profiles) - * - keep up to date the attributes of these policy members ( i.e. devices to be used for a - * strategy, strategy to be followed by a usage or a stream, ...) - */ -class AudioPolicyPluginInterface -{ -public: - /** - * Add a strategy to the engine - * - * @param[in] name of the strategy to add - * @param[in] identifier: the numerical value associated to this member. It MUST match either - * system/audio.h or system/audio_policy.h enumration value in order to link the - * parameter controled by the PFW and the policy manager component. - * - * @return NO_ERROR if the strategy has been added successfully, error code otherwise. - * - */ - virtual android::status_t addStrategy(const std::string &name, routing_strategy id) = 0; - - /** - * Add a streams to the engine. - * - * @param[in] name of the stream to add - * @param[in] identifier: the numerical value associated to this member. It MUST match either - * system/audio.h or system/audio_policy.h enumration value in order to link the - * parameter controled by the PFW and the policy manager component. - * - * @return NO_ERROR if the stream has been added successfully, error code otherwise. - * - */ - virtual android::status_t addStream(const std::string &name, audio_stream_type_t id) = 0; - - /** - * Add a usage to the engine - * - * @param[in] name of the usage to add - * @param[in] identifier: the numerical value associated to this member. It MUST match either - * system/audio.h or system/audio_policy.h enumration value in order to link the - * parameter controled by the PFW and the policy manager component. - * - * @return NO_ERROR if the usage has been added successfully, error code otherwise. - * - */ - virtual android::status_t addUsage(const std::string &name, audio_usage_t id) = 0; - - /** - * Add an input source to the engine - * - * @param[in] name of the input source to add - * @param[in] identifier: the numerical value associated to this member. It MUST match either - * system/audio.h or system/audio_policy.h enumration value in order to link the - * parameter controled by the PFW and the policy manager component. - * - * @return NO_ERROR if the input source has been added successfully, error code otherwise. - * - */ - virtual android::status_t addInputSource(const std::string &name, audio_source_t id) = 0; - - /** - * Set the device to be used by a strategy. - * - * @param[in] strategy: name of the strategy for which the device to use has to be set - * @param[in] devices; mask of devices to be used for the given strategy. - * - * @return true if the devices were set correclty for this strategy, false otherwise. - */ - virtual bool setDeviceForStrategy(const routing_strategy &strategy, audio_devices_t devices) = 0; - - /** - * Set the strategy to be followed by a stream. - * - * @param[in] stream: name of the stream for which the strategy to use has to be set - * @param[in] strategy to follow for the given stream. - * - * @return true if the strategy were set correclty for this stream, false otherwise. - */ - virtual bool setStrategyForStream(const audio_stream_type_t &stream, routing_strategy strategy) = 0; - - /** - * Set the strategy to be followed by a stream. - * - * @param[in] stream: name of the stream for which the strategy to use has to be set - * @param[in] strategy to follow for the given stream. - * - * @return true if the strategy were set correclty for this stream, false otherwise. - */ - virtual bool setVolumeProfileForStream(const audio_stream_type_t &stream, - Volume::device_category category, - const VolumeCurvePoints &points) = 0; - - /** - * Set the strategy to be followed by a usage. - * - * @param[in] usage: name of the usage for which the strategy to use has to be set - * @param[in] strategy to follow for the given usage. - * - * @return true if the strategy were set correclty for this usage, false otherwise. - */ - virtual bool setStrategyForUsage(const audio_usage_t &usage, routing_strategy strategy) = 0; - - /** - * Set the input device to be used by an input source. - * - * @param[in] inputSource: name of the input source for which the device to use has to be set - * @param[in] devices; mask of devices to be used for the given input source. - * - * @return true if the devices were set correclty for this input source, false otherwise. - */ - virtual bool setDeviceForInputSource(const audio_source_t &inputSource, - audio_devices_t device) = 0; - -protected: - virtual ~AudioPolicyPluginInterface() {} -}; - -}; // namespace android diff --git a/services/audiopolicy/engineconfigurable/parameter-framework/Android.mk b/services/audiopolicy/engineconfigurable/parameter-framework/Android.mk deleted file mode 100644 index c402fd5..0000000 --- a/services/audiopolicy/engineconfigurable/parameter-framework/Android.mk +++ /dev/null @@ -1,7 +0,0 @@ -LOCAL_PATH := $(call my-dir) - -####################################################################### -# Recursive call sub-folder Android.mk -####################################################################### - -include $(call all-makefiles-under,$(LOCAL_PATH)) diff --git a/services/audiopolicy/engineconfigurable/parameter-framework/example/Android.mk b/services/audiopolicy/engineconfigurable/parameter-framework/example/Android.mk deleted file mode 100644 index 98b7152..0000000 --- a/services/audiopolicy/engineconfigurable/parameter-framework/example/Android.mk +++ /dev/null @@ -1,104 +0,0 @@ -################################################################################################ -# -# @NOTE: -# Audio Policy Engine configurable example for generic device build -# -# Any vendor shall have its own configuration within the corresponding device folder -# -################################################################################################ - - -LOCAL_PATH := $(call my-dir) - -################################################################## -# CONFIGURATION FILES -################################################################## -######### Policy PFW top level file ######### - -include $(CLEAR_VARS) -LOCAL_MODULE := ParameterFrameworkConfigurationPolicy.xml -LOCAL_MODULE_TAGS := optional -LOCAL_MODULE_CLASS := ETC -LOCAL_MODULE_PATH := $(TARGET_OUT_ETC)/parameter-framework -LOCAL_SRC_FILES := $(LOCAL_MODULE) -include $(BUILD_PREBUILT) - - -########## Policy PFW Structures ######### - -include $(CLEAR_VARS) -LOCAL_MODULE := PolicyClass.xml -LOCAL_MODULE_TAGS := optional -LOCAL_MODULE_CLASS := ETC -LOCAL_MODULE_PATH := $(TARGET_OUT_ETC)/parameter-framework/Structure/Policy -LOCAL_SRC_FILES := Structure/$(LOCAL_MODULE) -include $(BUILD_PREBUILT) - -include $(CLEAR_VARS) -LOCAL_MODULE := PolicySubsystem.xml -LOCAL_MODULE_TAGS := optional -LOCAL_MODULE_CLASS := ETC -LOCAL_REQUIRED_MODULES := \ - PolicySubsystem-CommonTypes.xml \ - PolicySubsystem-Volume.xml \ - libpolicy-subsystem \ - -LOCAL_MODULE_PATH := $(TARGET_OUT_ETC)/parameter-framework/Structure/Policy -LOCAL_SRC_FILES := Structure/$(LOCAL_MODULE) -include $(BUILD_PREBUILT) - -include $(CLEAR_VARS) -LOCAL_MODULE := PolicySubsystem-CommonTypes.xml -LOCAL_MODULE_TAGS := optional -LOCAL_MODULE_CLASS := ETC -LOCAL_MODULE_PATH := $(TARGET_OUT_ETC)/parameter-framework/Structure/Policy -LOCAL_SRC_FILES := Structure/$(LOCAL_MODULE) -include $(BUILD_PREBUILT) - -include $(CLEAR_VARS) -LOCAL_MODULE := PolicySubsystem-Volume.xml -LOCAL_MODULE_TAGS := optional -LOCAL_MODULE_CLASS := ETC -LOCAL_MODULE_PATH := $(TARGET_OUT_ETC)/parameter-framework/Structure/Policy -LOCAL_SRC_FILES := Structure/$(LOCAL_MODULE) -include $(BUILD_PREBUILT) - -######### Policy PFW Settings ######### - -######## Generate routing domains file ######## -include $(CLEAR_VARS) -LOCAL_MODULE := parameter-framework.policy -LOCAL_MODULE_STEM := PolicyConfigurableDomains.xml -LOCAL_MODULE_TAGS := optional -LOCAL_REQUIRED_MODULES := \ - PolicyClass.xml \ - PolicySubsystem.xml \ - ParameterFrameworkConfigurationPolicy.xml - -LOCAL_MODULE_CLASS := ETC -LOCAL_MODULE_PATH := $(TARGET_OUT_ETC)/parameter-framework/Settings/Policy -include $(BUILD_SYSTEM)/base_rules.mk - -$(LOCAL_BUILT_MODULE): MY_TOOL := $(HOST_OUT_EXECUTABLES)/hostDomainGenerator.sh -$(LOCAL_BUILT_MODULE): $(HOST_OUT_EXECUTABLES)/hostDomainGenerator.sh -$(LOCAL_BUILT_MODULE): MY_SRC_FILES := \ - $(TARGET_OUT_ETC)/parameter-framework/ParameterFrameworkConfigurationPolicy.xml \ - $(LOCAL_PATH)/policy_criteria.txt \ - /dev/null \ - $(LOCAL_PATH)/Settings/device_for_strategy_media.pfw \ - $(LOCAL_PATH)/Settings/device_for_strategy_phone.pfw \ - $(LOCAL_PATH)/Settings/device_for_strategy_sonification.pfw \ - $(LOCAL_PATH)/Settings/device_for_strategy_sonification_respectful.pfw \ - $(LOCAL_PATH)/Settings/device_for_strategy_dtmf.pfw \ - $(LOCAL_PATH)/Settings/device_for_strategy_enforced_audible.pfw \ - $(LOCAL_PATH)/Settings/device_for_strategy_transmitted_through_speaker.pfw \ - $(LOCAL_PATH)/Settings/device_for_strategy_accessibility.pfw \ - $(LOCAL_PATH)/Settings/device_for_strategy_rerouting.pfw \ - $(LOCAL_PATH)/Settings/strategy_for_stream.pfw \ - $(LOCAL_PATH)/Settings/strategy_for_usage.pfw \ - $(LOCAL_PATH)/Settings/device_for_input_source.pfw \ - $(LOCAL_PATH)/Settings/volumes.pfw \ - -$(LOCAL_BUILT_MODULE): $(LOCAL_REQUIRED_MODULES) - $(hide) mkdir -p $(dir $@) - bash --debug $(MY_TOOL) --nonverbose --validate $(MY_SRC_FILES) > $@ diff --git a/services/audiopolicy/engineconfigurable/parameter-framework/example/ParameterFrameworkConfigurationPolicy.xml b/services/audiopolicy/engineconfigurable/parameter-framework/example/ParameterFrameworkConfigurationPolicy.xml deleted file mode 100755 index 6905201..0000000 --- a/services/audiopolicy/engineconfigurable/parameter-framework/example/ParameterFrameworkConfigurationPolicy.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - diff --git a/services/audiopolicy/engineconfigurable/parameter-framework/example/README.md b/services/audiopolicy/engineconfigurable/parameter-framework/example/README.md deleted file mode 100644 index 92668e1..0000000 --- a/services/audiopolicy/engineconfigurable/parameter-framework/example/README.md +++ /dev/null @@ -1,11 +0,0 @@ -Configurable Policy Engine Example -================================ - -This folder exposes a generic functional configurable policy engine configuration files -to provide to have a product following the nexus experience. - -A vendor wishing to customize the behavior shall provides its own set of configuration files -within the device folder for the product to customize. - -For any question about the parameter framework and configuration files, -See [the wiki on github](https://github.com/01org/parameter-framework/wiki). diff --git a/services/audiopolicy/engineconfigurable/parameter-framework/example/Settings/device_for_input_source.pfw b/services/audiopolicy/engineconfigurable/parameter-framework/example/Settings/device_for_input_source.pfw deleted file mode 100644 index d4bc370..0000000 --- a/services/audiopolicy/engineconfigurable/parameter-framework/example/Settings/device_for_input_source.pfw +++ /dev/null @@ -1,515 +0,0 @@ -supDomain: DeviceForInputSource - domain: Calibration - conf: Calibration - # - # Note that ALL input devices must have the sign bit set to 1. - # As the devices is a mask, use the "in" bit as a direction indicator. - # - component: /Policy/policy/input_sources/default/applicable_input_device/mask - in = 1 - communication = 0 - ambient = 0 - hdmi = 0 - telephony_rx = 0 - back_mic = 0 - remote_submix = 0 - anlg_dock_headset = 0 - dgtl_dock_headset = 0 - usb_accessory = 0 - fm_tuner = 0 - tv_tuner = 0 - line = 0 - spdif = 0 - loopback = 0 - component: /Policy/policy/input_sources/mic/applicable_input_device/mask - in = 1 - communication = 0 - ambient = 0 - hdmi = 0 - telephony_rx = 0 - back_mic = 0 - remote_submix = 0 - anlg_dock_headset = 0 - dgtl_dock_headset = 0 - usb_accessory = 0 - fm_tuner = 0 - tv_tuner = 0 - line = 0 - spdif = 0 - loopback = 0 - component: /Policy/policy/input_sources/voice_downlink/applicable_input_device/mask - in = 1 - communication = 0 - ambient = 0 - builtin_mic = 0 - bluetooth_sco_headset = 0 - wired_headset = 0 - hdmi = 0 - back_mic = 0 - remote_submix = 0 - anlg_dock_headset = 0 - dgtl_dock_headset = 0 - usb_accessory = 0 - usb_device = 0 - fm_tuner = 0 - tv_tuner = 0 - line = 0 - spdif = 0 - bluetooth_a2dp = 0 - loopback = 0 - component: /Policy/policy/input_sources/voice_call/applicable_input_device/mask - in = 1 - communication = 0 - ambient = 0 - builtin_mic = 0 - bluetooth_sco_headset = 0 - wired_headset = 0 - hdmi = 0 - back_mic = 0 - remote_submix = 0 - anlg_dock_headset = 0 - dgtl_dock_headset = 0 - usb_accessory = 0 - usb_device = 0 - fm_tuner = 0 - tv_tuner = 0 - line = 0 - spdif = 0 - bluetooth_a2dp = 0 - loopback = 0 - component: /Policy/policy/input_sources/voice_uplink/applicable_input_device/mask - in = 1 - communication = 0 - ambient = 0 - builtin_mic = 0 - bluetooth_sco_headset = 0 - wired_headset = 0 - hdmi = 0 - back_mic = 0 - remote_submix = 0 - anlg_dock_headset = 0 - dgtl_dock_headset = 0 - usb_accessory = 0 - usb_device = 0 - fm_tuner = 0 - tv_tuner = 0 - line = 0 - spdif = 0 - bluetooth_a2dp = 0 - loopback = 0 - component: /Policy/policy/input_sources/camcorder/applicable_input_device/mask - in = 1 - communication = 0 - ambient = 0 - bluetooth_sco_headset = 0 - wired_headset = 0 - hdmi = 0 - telephony_rx = 0 - remote_submix = 0 - anlg_dock_headset = 0 - dgtl_dock_headset = 0 - usb_accessory = 0 - usb_device = 0 - fm_tuner = 0 - tv_tuner = 0 - line = 0 - spdif = 0 - bluetooth_a2dp = 0 - loopback = 0 - component: /Policy/policy/input_sources/voice_recognition/applicable_input_device/mask - in = 1 - communication = 0 - ambient = 0 - hdmi = 0 - telephony_rx = 0 - back_mic = 0 - remote_submix = 0 - anlg_dock_headset = 0 - dgtl_dock_headset = 0 - usb_accessory = 0 - fm_tuner = 0 - tv_tuner = 0 - line = 0 - spdif = 0 - bluetooth_a2dp = 0 - loopback = 0 - component: /Policy/policy/input_sources/voice_communication/applicable_input_device/mask - in = 1 - communication = 0 - ambient = 0 - hdmi = 0 - telephony_rx = 0 - remote_submix = 0 - anlg_dock_headset = 0 - dgtl_dock_headset = 0 - usb_accessory = 0 - fm_tuner = 0 - tv_tuner = 0 - line = 0 - spdif = 0 - bluetooth_a2dp = 0 - loopback = 0 - component: /Policy/policy/input_sources/remote_submix/applicable_input_device/mask - in = 1 - communication = 0 - ambient = 0 - builtin_mic = 0 - bluetooth_sco_headset = 0 - wired_headset = 0 - hdmi = 0 - telephony_rx = 0 - back_mic = 0 - anlg_dock_headset = 0 - dgtl_dock_headset = 0 - usb_accessory = 0 - usb_device = 0 - fm_tuner = 0 - tv_tuner = 0 - line = 0 - spdif = 0 - bluetooth_a2dp = 0 - loopback = 0 - component: /Policy/policy/input_sources/hotword/applicable_input_device/mask - in = 1 - communication = 0 - ambient = 0 - hdmi = 0 - telephony_rx = 0 - back_mic = 0 - remote_submix = 0 - anlg_dock_headset = 0 - dgtl_dock_headset = 0 - usb_accessory = 0 - fm_tuner = 0 - tv_tuner = 0 - line = 0 - spdif = 0 - bluetooth_a2dp = 0 - loopback = 0 - component: /Policy/policy/input_sources/fm_tuner/applicable_input_device/mask - in = 1 - communication = 0 - ambient = 0 - bluetooth_sco_headset = 0 - hdmi = 0 - telephony_rx = 0 - builtin_mic = 0 - wired_headset = 0 - back_mic = 0 - remote_submix = 0 - anlg_dock_headset = 0 - dgtl_dock_headset = 0 - usb_accessory = 0 - usb_device = 0 - fm_tuner = 0 - tv_tuner = 0 - line = 0 - spdif = 0 - bluetooth_a2dp = 0 - loopback = 0 - - domain: DefaultAndMic - conf: A2dp - AvailableInputDevices Includes BluetoothA2dp - - component: /Policy/policy/input_sources - component: default/applicable_input_device/mask/ - bluetooth_a2dp = 1 - wired_headset = 0 - usb_device = 0 - builtin_mic = 0 - bluetooth_sco_headset = 0 - component: mic/applicable_input_device/mask/ - bluetooth_a2dp = 1 - wired_headset = 0 - usb_device = 0 - builtin_mic = 0 - bluetooth_sco_headset = 0 - - conf: Sco - AvailableInputDevices Includes BluetoothScoHeadset - ForceUseForRecord Is ForceBtSco - - component: /Policy/policy/input_sources - component: default/applicable_input_device/mask/ - bluetooth_a2dp = 0 - wired_headset = 0 - usb_device = 0 - builtin_mic = 0 - bluetooth_sco_headset = 1 - component: mic/applicable_input_device/mask/ - bluetooth_a2dp = 0 - wired_headset = 1 - usb_device = 0 - builtin_mic = 0 - bluetooth_sco_headset = 1 - - conf: WiredHeadset - AvailableInputDevices Includes WiredHeadset - - component: /Policy/policy/input_sources - component: default/applicable_input_device/mask/ - bluetooth_a2dp = 0 - wired_headset = 1 - usb_device = 0 - builtin_mic = 0 - bluetooth_sco_headset = 0 - component: mic/applicable_input_device/mask/ - bluetooth_a2dp = 0 - wired_headset = 1 - usb_device = 0 - builtin_mic = 0 - bluetooth_sco_headset = 0 - - conf: UsbDevice - AvailableInputDevices Includes UsbDevice - - component: /Policy/policy/input_sources - component: default/applicable_input_device/mask/ - bluetooth_a2dp = 0 - wired_headset = 0 - usb_device = 1 - builtin_mic = 0 - bluetooth_sco_headset = 0 - component: mic/applicable_input_device/mask/ - bluetooth_a2dp = 0 - wired_headset = 0 - usb_device = 1 - builtin_mic = 0 - bluetooth_sco_headset = 0 - - conf: BuiltinMic - AvailableInputDevices Includes BuiltinMic - - component: /Policy/policy/input_sources - component: default/applicable_input_device/mask/ - bluetooth_a2dp = 0 - wired_headset = 0 - usb_device = 0 - builtin_mic = 1 - bluetooth_sco_headset = 0 - component: mic/applicable_input_device/mask/ - bluetooth_a2dp = 0 - wired_headset = 0 - usb_device = 0 - builtin_mic = 1 - bluetooth_sco_headset = 0 - - conf: Default - component: /Policy/policy/input_sources - component: default/applicable_input_device/mask/ - bluetooth_a2dp = 0 - wired_headset = 0 - usb_device = 0 - builtin_mic = 0 - bluetooth_sco_headset = 0 - component: mic/applicable_input_device/mask/ - bluetooth_a2dp = 0 - wired_headset = 0 - usb_device = 0 - builtin_mic = 0 - bluetooth_sco_headset = 0 - - domain: VoiceUplinkAndVoiceDownlinkAndVoiceCall - conf: VoiceCall - AvailableInputDevices Includes TelephonyRx - - component: /Policy/policy/input_sources - voice_downlink/applicable_input_device/mask/telephony_rx = 1 - voice_call/applicable_input_device/mask/telephony_rx = 1 - voice_uplink/applicable_input_device/mask/telephony_rx = 1 - - conf: Default - component: /Policy/policy/input_sources - voice_downlink/applicable_input_device/mask/telephony_rx = 0 - voice_call/applicable_input_device/mask/telephony_rx = 0 - voice_uplink/applicable_input_device/mask/telephony_rx = 0 - - domain: Camcorder - conf: BackMic - AvailableInputDevices Includes BackMic - - component: /Policy/policy/input_sources/camcorder/applicable_input_device/mask - back_mic = 1 - builtin_mic = 0 - - conf: BuiltinMic - AvailableInputDevices Includes BuiltinMic - - component: /Policy/policy/input_sources/camcorder/applicable_input_device/mask - back_mic = 0 - builtin_mic = 1 - - conf: Default - component: /Policy/policy/input_sources/camcorder/applicable_input_device/mask - back_mic = 0 - builtin_mic = 0 - - domain: VoiceRecognitionAndHotword - conf: ScoHeadset - ForceUseForRecord Is ForceBtSco - AvailableInputDevices Includes BluetoothScoHeadset - - component: /Policy/policy/input_sources - component: voice_recognition/applicable_input_device/mask - bluetooth_sco_headset = 1 - wired_headset = 0 - usb_device = 0 - builtin_mic = 0 - component: hotword/applicable_input_device/mask - bluetooth_sco_headset = 1 - wired_headset = 0 - usb_device = 0 - builtin_mic = 0 - - conf: WiredHeadset - AvailableInputDevices Includes WiredHeadset - - component: /Policy/policy/input_sources - component: voice_recognition/applicable_input_device/mask - bluetooth_sco_headset = 0 - wired_headset = 1 - usb_device = 0 - builtin_mic = 0 - component: hotword/applicable_input_device/mask - bluetooth_sco_headset = 0 - wired_headset = 1 - usb_device = 0 - builtin_mic = 0 - - conf: UsbDevice - AvailableInputDevices Includes UsbDevice - - component: /Policy/policy/input_sources - component: voice_recognition/applicable_input_device/mask - bluetooth_sco_headset = 0 - wired_headset = 0 - usb_device = 1 - builtin_mic = 0 - component: hotword/applicable_input_device/mask - bluetooth_sco_headset = 0 - wired_headset = 0 - usb_device = 1 - builtin_mic = 0 - - conf: BuiltinMic - AvailableInputDevices Includes BuiltinMic - - component: /Policy/policy/input_sources - component: voice_recognition/applicable_input_device/mask - bluetooth_sco_headset = 0 - wired_headset = 0 - usb_device = 0 - builtin_mic = 1 - component: hotword/applicable_input_device/mask - bluetooth_sco_headset = 0 - wired_headset = 0 - usb_device = 0 - builtin_mic = 1 - - conf: Default - component: /Policy/policy/input_sources - component: voice_recognition/applicable_input_device/mask - bluetooth_sco_headset = 0 - wired_headset = 0 - usb_device = 0 - builtin_mic = 0 - component: hotword/applicable_input_device/mask - bluetooth_sco_headset = 0 - wired_headset = 0 - usb_device = 0 - builtin_mic = 0 - - domain: VoiceCommunication - conf: ScoHeadset - # - # SCO device may be requested but no SCO device is available - # - ForceUseForCommunication Is ForceBtSco - AvailableInputDevices Includes BluetoothScoHeadset - - component: /Policy/policy/input_sources/voice_communication/applicable_input_device/mask - bluetooth_sco_headset = 1 - wired_headset = 0 - usb_device = 0 - builtin_mic = 0 - back_mic = 0 - - conf: WiredHeadset - ForceUseForCommunication Is ForceNone - AvailableInputDevices Includes WiredHeadset - - component: /Policy/policy/input_sources/voice_communication/applicable_input_device/mask - bluetooth_sco_headset = 0 - wired_headset = 1 - usb_device = 0 - builtin_mic = 0 - back_mic = 0 - - conf: UsbDevice - ForceUseForCommunication Is ForceNone - AvailableInputDevices Includes UsbDevice - - component: /Policy/policy/input_sources/voice_communication/applicable_input_device/mask - bluetooth_sco_headset = 0 - wired_headset = 0 - usb_device = 1 - builtin_mic = 0 - back_mic = 0 - - conf: BuiltinMic - AvailableInputDevices Includes BuiltinMic - ANY - ForceUseForCommunication Is ForceNone - ALL - ForceUseForCommunication Is ForceSpeaker - AvailableInputDevices Excludes BackMic - - component: /Policy/policy/input_sources/voice_communication/applicable_input_device/mask - bluetooth_sco_headset = 0 - wired_headset = 0 - usb_device = 0 - builtin_mic = 1 - back_mic = 0 - - conf: BackMic - ForceUseForCommunication Is ForceSpeaker - AvailableInputDevices Includes BackMic - - component: /Policy/policy/input_sources/voice_communication/applicable_input_device/mask - bluetooth_sco_headset = 0 - wired_headset = 0 - usb_device = 0 - builtin_mic = 0 - back_mic = 1 - - conf: Default - component: /Policy/policy/input_sources/voice_communication/applicable_input_device/mask - bluetooth_sco_headset = 0 - wired_headset = 0 - usb_device = 0 - builtin_mic = 0 - back_mic = 0 - - domain: RemoteSubmix - conf: RemoteSubmix - AvailableInputDevices Includes RemoteSubmix - - component: /Policy/policy/input_sources/remote_submix/applicable_input_device/mask - remote_submix = 1 - - conf: Default - component: /Policy/policy/input_sources/remote_submix/applicable_input_device/mask - remote_submix = 0 - - domain: FmTuner - conf: FmTuner - AvailableInputDevices Includes FmTuner - - component: /Policy/policy/input_sources/fm_tuner/applicable_input_device/mask - fm_tuner = 1 - - conf: Default - component: /Policy/policy/input_sources/fm_tuner/applicable_input_device/mask - fm_tuner = 0 - diff --git a/services/audiopolicy/engineconfigurable/parameter-framework/example/Settings/device_for_strategy_accessibility.pfw b/services/audiopolicy/engineconfigurable/parameter-framework/example/Settings/device_for_strategy_accessibility.pfw deleted file mode 100644 index e8ab33b..0000000 --- a/services/audiopolicy/engineconfigurable/parameter-framework/example/Settings/device_for_strategy_accessibility.pfw +++ /dev/null @@ -1,302 +0,0 @@ -supDomain: DeviceForStrategy - - supDomain: Accessibility - # - # @FIXME: STRATEGY_ACCESSIBILITY follows STRATEGY_MEDIA for now - # - # @FIXME: How to disable HDMI if !audio_is_linear_pcm other than programmatically??? - # - domain: UnreachableDevices - conf: Calibration - component: /Policy/policy/strategies/accessibility/selected_output_devices/mask - hdmi_arc = 0 - spdif = 0 - aux_line = 0 - fm = 0 - speaker_safe = 0 - earpiece = 0 - bluetooth_sco = 0 - bluetooth_sco_headset = 0 - bluetooth_sco_carkit = 0 - telephony_tx = 0 - - domain: Device2 - conf: RemoteSubmix - AvailableOutputDevices Includes RemoteSubmix - - component: /Policy/policy/strategies/accessibility/selected_output_devices/mask - remote_submix = 1 - bluetooth_a2dp = 0 - bluetooth_a2dp_headphones = 0 - bluetooth_a2dp_speaker = 0 - speaker = 0 - wired_headset = 0 - wired_headphone = 0 - line = 0 - angl_dock_headset = 0 - dgtl_dock_headset = 0 - usb_accessory = 0 - usb_device = 0 - hdmi = 0 - - conf: BluetoothA2dp - ForceUseForMedia IsNot ForceNoBtA2dp - AvailableOutputDevices Includes BluetoothA2dp - - component: /Policy/policy/strategies/accessibility/selected_output_devices/mask - remote_submix = 0 - bluetooth_a2dp = 1 - bluetooth_a2dp_headphones = 0 - bluetooth_a2dp_speaker = 0 - speaker = 0 - wired_headset = 0 - wired_headphone = 0 - line = 0 - angl_dock_headset = 0 - dgtl_dock_headset = 0 - usb_accessory = 0 - usb_device = 0 - hdmi = 0 - - conf: BluetoothA2dpHeadphone - ForceUseForMedia IsNot ForceNoBtA2dp - AvailableOutputDevices Includes BluetoothA2dpHeadphones - - component: /Policy/policy/strategies/accessibility/selected_output_devices/mask - remote_submix = 0 - bluetooth_a2dp = 0 - bluetooth_a2dp_headphones = 1 - bluetooth_a2dp_speaker = 0 - speaker = 0 - wired_headset = 0 - wired_headphone = 0 - line = 0 - angl_dock_headset = 0 - dgtl_dock_headset = 0 - usb_accessory = 0 - usb_device = 0 - hdmi = 0 - - conf: BluetoothA2dpSpeaker - ForceUseForMedia IsNot ForceNoBtA2dp - AvailableOutputDevices Includes BluetoothA2dpSpeaker - - component: /Policy/policy/strategies/accessibility/selected_output_devices/mask - remote_submix = 0 - bluetooth_a2dp = 0 - bluetooth_a2dp_headphones = 0 - bluetooth_a2dp_speaker = 1 - speaker = 0 - wired_headset = 0 - wired_headphone = 0 - line = 0 - angl_dock_headset = 0 - dgtl_dock_headset = 0 - usb_accessory = 0 - usb_device = 0 - hdmi = 0 - - conf: ForceSpeaker - ForceUseForMedia Is ForceSpeaker - AvailableOutputDevices Includes Speaker - - component: /Policy/policy/strategies/accessibility/selected_output_devices/mask - remote_submix = 0 - bluetooth_a2dp = 0 - bluetooth_a2dp_headphones = 0 - bluetooth_a2dp_speaker = 0 - speaker = 1 - wired_headset = 0 - wired_headphone = 0 - line = 0 - angl_dock_headset = 0 - dgtl_dock_headset = 0 - usb_accessory = 0 - usb_device = 0 - hdmi = 0 - - conf: WiredHeadphone - AvailableOutputDevices Includes WiredHeadphone - - component: /Policy/policy/strategies/accessibility/selected_output_devices/mask - remote_submix = 0 - bluetooth_a2dp = 0 - bluetooth_a2dp_headphones = 0 - bluetooth_a2dp_speaker = 0 - speaker = 0 - wired_headset = 0 - wired_headphone = 1 - line = 0 - angl_dock_headset = 0 - dgtl_dock_headset = 0 - usb_accessory = 0 - usb_device = 0 - hdmi = 0 - - conf: Line - AvailableOutputDevices Includes Line - - component: /Policy/policy/strategies/accessibility/selected_output_devices/mask - remote_submix = 0 - bluetooth_a2dp = 0 - bluetooth_a2dp_headphones = 0 - bluetooth_a2dp_speaker = 0 - speaker = 0 - wired_headset = 0 - wired_headphone = 0 - line = 1 - angl_dock_headset = 0 - dgtl_dock_headset = 0 - usb_accessory = 0 - usb_device = 0 - hdmi = 0 - - conf: WiredHeadset - AvailableOutputDevices Includes WiredHeadset - - component: /Policy/policy/strategies/accessibility/selected_output_devices/mask - remote_submix = 0 - bluetooth_a2dp = 0 - bluetooth_a2dp_headphones = 0 - bluetooth_a2dp_speaker = 0 - speaker = 0 - wired_headset = 1 - wired_headphone = 0 - line = 0 - angl_dock_headset = 0 - dgtl_dock_headset = 0 - usb_accessory = 0 - usb_device = 0 - hdmi = 0 - - conf: UsbAccessory - AvailableOutputDevices Includes UsbAccessory - - component: /Policy/policy/strategies/accessibility/selected_output_devices/mask - remote_submix = 0 - bluetooth_a2dp = 0 - bluetooth_a2dp_headphones = 0 - bluetooth_a2dp_speaker = 0 - speaker = 0 - wired_headset = 0 - wired_headphone = 0 - line = 0 - angl_dock_headset = 0 - dgtl_dock_headset = 0 - usb_accessory = 1 - usb_device = 0 - hdmi = 0 - - conf: UsbDevice - AvailableOutputDevices Includes UsbDevice - - component: /Policy/policy/strategies/accessibility/selected_output_devices/mask - remote_submix = 0 - bluetooth_a2dp = 0 - bluetooth_a2dp_headphones = 0 - bluetooth_a2dp_speaker = 0 - speaker = 0 - wired_headset = 0 - wired_headphone = 0 - line = 0 - angl_dock_headset = 0 - dgtl_dock_headset = 0 - usb_accessory = 0 - usb_device = 1 - hdmi = 0 - - conf: DgtlDockHeadset - AvailableOutputDevices Includes DgtlDockHeadset - - component: /Policy/policy/strategies/accessibility/selected_output_devices/mask - remote_submix = 0 - bluetooth_a2dp = 0 - bluetooth_a2dp_headphones = 0 - bluetooth_a2dp_speaker = 0 - speaker = 0 - wired_headset = 0 - wired_headphone = 0 - line = 0 - angl_dock_headset = 0 - dgtl_dock_headset = 1 - usb_accessory = 0 - usb_device = 0 - hdmi = 0 - - conf: AuxDigital - # - # Do not route accessibility prompts to a digital output currently configured with a - # compressed format as they would likely not be mixed and dropped. - # - # @TODO How to translate the following condition(???) - # desc->isActive() && !audio_is_linear_pcm(desc->mFormat) && devices != AUDIO_DEVICE_NONE - # - AvailableOutputDevices Includes Hdmi - - component: /Policy/policy/strategies/accessibility/selected_output_devices/mask - remote_submix = 0 - bluetooth_a2dp = 0 - bluetooth_a2dp_headphones = 0 - bluetooth_a2dp_speaker = 0 - speaker = 0 - wired_headset = 0 - wired_headphone = 0 - line = 0 - angl_dock_headset = 0 - dgtl_dock_headset = 0 - usb_accessory = 0 - usb_device = 0 - hdmi = 1 - - conf: AnlgDockHeadset - AvailableOutputDevices Includes AnlgDockHeadset - ForceUseForDock Is ForceAnalogDock - - component: /Policy/policy/strategies/accessibility/selected_output_devices/mask - remote_submix = 0 - bluetooth_a2dp = 0 - bluetooth_a2dp_headphones = 0 - bluetooth_a2dp_speaker = 0 - speaker = 0 - wired_headset = 0 - wired_headphone = 0 - line = 0 - angl_dock_headset = 1 - dgtl_dock_headset = 0 - usb_accessory = 0 - usb_device = 0 - hdmi = 0 - - conf: Speaker - AvailableOutputDevices Includes Speaker - - component: /Policy/policy/strategies/accessibility/selected_output_devices/mask - remote_submix = 0 - bluetooth_a2dp = 0 - bluetooth_a2dp_headphones = 0 - bluetooth_a2dp_speaker = 0 - speaker = 1 - wired_headset = 0 - wired_headphone = 0 - line = 0 - angl_dock_headset = 0 - dgtl_dock_headset = 0 - usb_accessory = 0 - usb_device = 0 - hdmi = 0 - - conf: Default - component: /Policy/policy/strategies/accessibility/selected_output_devices/mask - remote_submix = 0 - bluetooth_a2dp = 0 - bluetooth_a2dp_headphones = 0 - bluetooth_a2dp_speaker = 0 - speaker = 0 - wired_headset = 0 - wired_headphone = 0 - line = 0 - angl_dock_headset = 0 - dgtl_dock_headset = 0 - usb_accessory = 0 - usb_device = 0 - hdmi = 0 diff --git a/services/audiopolicy/engineconfigurable/parameter-framework/example/Settings/device_for_strategy_dtmf.pfw b/services/audiopolicy/engineconfigurable/parameter-framework/example/Settings/device_for_strategy_dtmf.pfw deleted file mode 100644 index 85273b2..0000000 --- a/services/audiopolicy/engineconfigurable/parameter-framework/example/Settings/device_for_strategy_dtmf.pfw +++ /dev/null @@ -1,637 +0,0 @@ -supDomain: DeviceForStrategy - - supDomain: Dtmf - - domain: UnreachableDevices - conf: Calibration - component: /Policy/policy/strategies/dtmf/selected_output_devices/mask - fm = 0 - speaker_safe = 0 - bluetooth_sco_carkit = 0 - - domain: Device2 - conf: RemoteSubmix - # - # DTMF follows Media strategy if not in call - # - TelephonyMode IsNot InCall - TelephonyMode IsNot InCommunication - AvailableOutputDevices Includes RemoteSubmix - - component: /Policy/policy/strategies/dtmf/selected_output_devices/mask - remote_submix = 1 - earpiece = 0 - wired_headset = 0 - wired_headphone = 0 - bluetooth_sco = 0 - bluetooth_sco_headset = 0 - bluetooth_a2dp = 0 - bluetooth_a2dp_headphones = 0 - bluetooth_a2dp_speaker = 0 - hdmi = 0 - angl_dock_headset = 0 - dgtl_dock_headset = 0 - usb_accessory = 0 - usb_device = 0 - telephony_tx = 0 - line = 0 - speaker = 0 - - conf: BluetoothA2dp - # - # DTMF follows Media strategy if not in call - # - TelephonyMode IsNot InCall - TelephonyMode IsNot InCommunication - ForceUseForMedia IsNot ForceNoBtA2dp - AvailableOutputDevices Includes BluetoothA2dp - - component: /Policy/policy/strategies/dtmf/selected_output_devices/mask - remote_submix = 0 - earpiece = 0 - wired_headset = 0 - wired_headphone = 0 - bluetooth_sco = 0 - bluetooth_sco_headset = 0 - bluetooth_a2dp = 1 - bluetooth_a2dp_headphones = 0 - bluetooth_a2dp_speaker = 0 - hdmi = 0 - angl_dock_headset = 0 - dgtl_dock_headset = 0 - usb_accessory = 0 - usb_device = 0 - telephony_tx = 0 - line = 0 - speaker = 0 - - conf: BluetoothA2dpHeadphones - # - # DTMF follows Media strategy if not in call - # - TelephonyMode IsNot InCall - TelephonyMode IsNot InCommunication - ForceUseForMedia IsNot ForceNoBtA2dp - AvailableOutputDevices Includes BluetoothA2dpHeadphones - - component: /Policy/policy/strategies/dtmf/selected_output_devices/mask - remote_submix = 0 - earpiece = 0 - wired_headset = 0 - wired_headphone = 0 - bluetooth_sco = 0 - bluetooth_sco_headset = 0 - bluetooth_a2dp = 0 - bluetooth_a2dp_headphones = 1 - bluetooth_a2dp_speaker = 0 - hdmi = 0 - angl_dock_headset = 0 - dgtl_dock_headset = 0 - usb_accessory = 0 - usb_device = 0 - telephony_tx = 0 - line = 0 - speaker = 0 - - conf: BluetoothA2dpSpeaker - # - # DTMF follows Media strategy if not in call - # - TelephonyMode IsNot InCall - TelephonyMode IsNot InCommunication - ForceUseForMedia IsNot ForceNoBtA2dp - AvailableOutputDevices Includes BluetoothA2dpSpeaker - - component: /Policy/policy/strategies/dtmf/selected_output_devices/mask - remote_submix = 0 - earpiece = 0 - wired_headset = 0 - wired_headphone = 0 - bluetooth_sco = 0 - bluetooth_sco_headset = 0 - bluetooth_a2dp = 0 - bluetooth_a2dp_headphones = 0 - bluetooth_a2dp_speaker = 1 - hdmi = 0 - angl_dock_headset = 0 - dgtl_dock_headset = 0 - usb_accessory = 0 - usb_device = 0 - telephony_tx = 0 - line = 0 - speaker = 0 - - conf: ForceSpeakerWhenNotInCall - # - # DTMF follows Media strategy if not in call - # - TelephonyMode IsNot InCall - TelephonyMode IsNot InCommunication - ForceUseForMedia Is ForceSpeaker - ForceUseForHdmiSystemAudio IsNot ForceHdmiSystemEnforced - AvailableOutputDevices Includes Speaker - - component: /Policy/policy/strategies/dtmf/selected_output_devices/mask - remote_submix = 0 - earpiece = 0 - wired_headset = 0 - wired_headphone = 0 - bluetooth_sco = 0 - bluetooth_sco_headset = 0 - bluetooth_a2dp = 0 - bluetooth_a2dp_headphones = 0 - bluetooth_a2dp_speaker = 0 - hdmi = 0 - angl_dock_headset = 0 - dgtl_dock_headset = 0 - usb_accessory = 0 - usb_device = 0 - telephony_tx = 0 - line = 0 - speaker = 1 - - conf: BluetoothScoHeadset - # - # DTMF falls through Phone strategy if in call - # - ANY - TelephonyMode Is InCall - TelephonyMode Is InCommunication - AvailableOutputDevices Includes BluetoothScoHeadset - ForceUseForCommunication Is ForceBtSco - - component: /Policy/policy/strategies/dtmf/selected_output_devices/mask - remote_submix = 0 - earpiece = 0 - wired_headset = 0 - wired_headphone = 0 - bluetooth_sco = 0 - bluetooth_sco_headset = 1 - bluetooth_a2dp = 0 - bluetooth_a2dp_headphones = 0 - bluetooth_a2dp_speaker = 0 - hdmi = 0 - angl_dock_headset = 0 - dgtl_dock_headset = 0 - usb_accessory = 0 - usb_device = 0 - telephony_tx = 0 - line = 0 - speaker = 0 - - conf: BluetoothSco - # - # DTMF falls through Phone strategy if in call - # - ANY - TelephonyMode Is InCall - TelephonyMode Is InCommunication - AvailableOutputDevices Includes BluetoothSco - ForceUseForCommunication Is ForceBtSco - - component: /Policy/policy/strategies/dtmf/selected_output_devices/mask - remote_submix = 0 - earpiece = 0 - wired_headset = 0 - wired_headphone = 0 - bluetooth_sco = 1 - bluetooth_sco_headset = 0 - bluetooth_a2dp = 0 - bluetooth_a2dp_headphones = 0 - bluetooth_a2dp_speaker = 0 - hdmi = 0 - angl_dock_headset = 0 - dgtl_dock_headset = 0 - usb_accessory = 0 - usb_device = 0 - telephony_tx = 0 - line = 0 - speaker = 0 - - conf: WiredHeadphone - ANY - # - # DTMF falls through Phone strategy if in call - # - ALL - ANY - TelephonyMode Is InCall - TelephonyMode Is InCommunication - ForceUseForCommunication IsNot ForceSpeaker - # - # DTMF follows Media strategy if not in call - # - ALL - TelephonyMode IsNot InCall - TelephonyMode IsNot InCommunication - AvailableOutputDevices Includes WiredHeadphone - - component: /Policy/policy/strategies/dtmf/selected_output_devices/mask - remote_submix = 0 - earpiece = 0 - wired_headset = 0 - wired_headphone = 1 - bluetooth_sco = 0 - bluetooth_sco_headset = 0 - bluetooth_a2dp = 0 - bluetooth_a2dp_headphones = 0 - bluetooth_a2dp_speaker = 0 - hdmi = 0 - angl_dock_headset = 0 - dgtl_dock_headset = 0 - usb_accessory = 0 - usb_device = 0 - telephony_tx = 0 - line = 0 - speaker = 0 - - conf: LineWhenFollowingMedia - # - # DTMF follows Media strategy if not in call - # - TelephonyMode IsNot InCall - TelephonyMode IsNot InCommunication - AvailableOutputDevices Includes Line - - component: /Policy/policy/strategies/dtmf/selected_output_devices/mask - remote_submix = 0 - earpiece = 0 - wired_headset = 0 - wired_headphone = 0 - bluetooth_sco = 0 - bluetooth_sco_headset = 0 - bluetooth_a2dp = 0 - bluetooth_a2dp_headphones = 0 - bluetooth_a2dp_speaker = 0 - hdmi = 0 - angl_dock_headset = 0 - dgtl_dock_headset = 0 - usb_accessory = 0 - usb_device = 0 - telephony_tx = 0 - line = 1 - speaker = 0 - - conf: WiredHeadset - ANY - # - # DTMF falls through Phone strategy if in call - # - ALL - ANY - TelephonyMode Is InCall - TelephonyMode Is InCommunication - ForceUseForCommunication IsNot ForceSpeaker - # - # DTMF follows Media strategy if not in call - # - ALL - TelephonyMode IsNot InCall - TelephonyMode IsNot InCommunication - AvailableOutputDevices Includes WiredHeadset - - component: /Policy/policy/strategies/dtmf/selected_output_devices/mask - remote_submix = 0 - earpiece = 0 - wired_headset = 1 - wired_headphone = 0 - bluetooth_sco = 0 - bluetooth_sco_headset = 0 - bluetooth_a2dp = 0 - bluetooth_a2dp_headphones = 0 - bluetooth_a2dp_speaker = 0 - hdmi = 0 - angl_dock_headset = 0 - dgtl_dock_headset = 0 - usb_accessory = 0 - usb_device = 0 - telephony_tx = 0 - line = 0 - speaker = 0 - - conf: UsbDevice - ANY - # - # DTMF falls through Phone strategy if in call (widely speaking) - # - ALL - ANY - TelephonyMode Is InCall - TelephonyMode Is InCommunication - ForceUseForCommunication IsNot ForceSpeaker - # - # DTMF follows Media strategy if not in call - # Media strategy inverts the priority of USB device vs accessory - # - ALL - TelephonyMode IsNot InCall - TelephonyMode IsNot InCommunication - AvailableOutputDevices Excludes UsbAccessory - ForceUseForCommunication Is ForceSpeaker - AvailableOutputDevices Includes UsbDevice - - component: /Policy/policy/strategies/dtmf/selected_output_devices/mask - remote_submix = 0 - earpiece = 0 - wired_headset = 0 - wired_headphone = 0 - bluetooth_sco = 0 - bluetooth_sco_headset = 0 - bluetooth_a2dp = 0 - bluetooth_a2dp_headphones = 0 - bluetooth_a2dp_speaker = 0 - hdmi = 0 - angl_dock_headset = 0 - dgtl_dock_headset = 0 - usb_accessory = 0 - usb_device = 1 - telephony_tx = 0 - line = 0 - speaker = 0 - - conf: UsbAccessory - # - # DTMF falls through Phone strategy if in call (widely speaking) - # but USB accessory not reachable in call - # - # DTMF follows Media strategy if not in call - # Media strategy inverts the priority of USB device vs accessory - # - TelephonyMode IsNot InCall - TelephonyMode IsNot InCommunication - AvailableOutputDevices Includes UsbAccessory - - component: /Policy/policy/strategies/dtmf/selected_output_devices/mask - remote_submix = 0 - earpiece = 0 - wired_headset = 0 - wired_headphone = 0 - bluetooth_sco = 0 - bluetooth_sco_headset = 0 - bluetooth_a2dp = 0 - bluetooth_a2dp_headphones = 0 - bluetooth_a2dp_speaker = 0 - hdmi = 0 - angl_dock_headset = 0 - dgtl_dock_headset = 0 - usb_accessory = 1 - usb_device = 0 - telephony_tx = 0 - line = 0 - speaker = 0 - - conf: DgtlDockHeadset - # - # DTMF falls through Phone strategy if in call (widely speaking) - # but DgtlDockHeadset not reachable in call - # - # DTMF follows Media strategy if not in call - # - TelephonyMode IsNot InCall - TelephonyMode IsNot InCommunication - AvailableOutputDevices Includes DgtlDockHeadset - - component: /Policy/policy/strategies/dtmf/selected_output_devices/mask - remote_submix = 0 - earpiece = 0 - wired_headset = 0 - wired_headphone = 0 - bluetooth_sco = 0 - bluetooth_sco_headset = 0 - bluetooth_a2dp = 0 - bluetooth_a2dp_headphones = 0 - bluetooth_a2dp_speaker = 0 - hdmi = 0 - angl_dock_headset = 0 - dgtl_dock_headset = 1 - usb_accessory = 0 - usb_device = 0 - telephony_tx = 0 - line = 0 - speaker = 0 - - conf: Hdmi - # - # DTMF falls through Phone strategy if in call (widely speaking) - # but Hdmi not reachable in call - # - # DTMF follows Media strategy if not in call - # - TelephonyMode IsNot InCall - TelephonyMode IsNot InCommunication - AvailableOutputDevices Includes Hdmi - - component: /Policy/policy/strategies/dtmf/selected_output_devices/mask - remote_submix = 0 - earpiece = 0 - wired_headset = 0 - wired_headphone = 0 - bluetooth_sco = 0 - bluetooth_sco_headset = 0 - bluetooth_a2dp = 0 - bluetooth_a2dp_headphones = 0 - bluetooth_a2dp_speaker = 0 - hdmi = 1 - angl_dock_headset = 0 - dgtl_dock_headset = 0 - usb_accessory = 0 - usb_device = 0 - telephony_tx = 0 - line = 0 - speaker = 0 - - conf: AnlgDockHeadset - # - # DTMF falls through Phone strategy if in call (widely speaking) - # but AnlgDockHeadset not reachable in call - # - # DTMF follows Media strategy if not in call - # Media strategy inverts the priority of USB device vs accessory - # - TelephonyMode IsNot InCall - TelephonyMode IsNot InCommunication - ForceUseForDock Is ForceAnalogDock - AvailableOutputDevices Includes AnlgDockHeadset - - component: /Policy/policy/strategies/dtmf/selected_output_devices/mask - remote_submix = 0 - earpiece = 0 - wired_headset = 0 - wired_headphone = 0 - bluetooth_sco = 0 - bluetooth_sco_headset = 0 - bluetooth_a2dp = 0 - bluetooth_a2dp_headphones = 0 - bluetooth_a2dp_speaker = 0 - hdmi = 0 - angl_dock_headset = 1 - dgtl_dock_headset = 0 - usb_accessory = 0 - usb_device = 0 - telephony_tx = 0 - line = 0 - speaker = 0 - - conf: Earpiece - # - # DTMF falls through Phone strategy if in call - # - ANY - TelephonyMode Is InCall - TelephonyMode Is InCommunication - AvailableOutputDevices Includes Earpiece - ForceUseForCommunication IsNot ForceSpeaker - - component: /Policy/policy/strategies/dtmf/selected_output_devices/mask - remote_submix = 0 - earpiece = 1 - wired_headset = 0 - wired_headphone = 0 - bluetooth_sco = 0 - bluetooth_sco_headset = 0 - bluetooth_a2dp = 0 - bluetooth_a2dp_headphones = 0 - bluetooth_a2dp_speaker = 0 - hdmi = 0 - angl_dock_headset = 0 - dgtl_dock_headset = 0 - usb_accessory = 0 - usb_device = 0 - telephony_tx = 0 - line = 0 - speaker = 0 - - conf: LineWhenFallThroughPhone - # - # DTMF falls through Phone strategy if in call - # - ANY - TelephonyMode Is InCall - TelephonyMode Is InCommunication - AvailableOutputDevices Includes Line - ForceUseForCommunication Is ForceSpeaker - - component: /Policy/policy/strategies/dtmf/selected_output_devices/mask - remote_submix = 0 - earpiece = 0 - wired_headset = 0 - wired_headphone = 0 - bluetooth_sco = 0 - bluetooth_sco_headset = 0 - bluetooth_a2dp = 0 - bluetooth_a2dp_headphones = 0 - bluetooth_a2dp_speaker = 0 - hdmi = 0 - angl_dock_headset = 0 - dgtl_dock_headset = 0 - usb_accessory = 0 - usb_device = 0 - telephony_tx = 0 - line = 1 - speaker = 0 - - conf: Speaker - ANY - # - # DTMF falls through Phone strategy if in call - # - ALL - ANY - TelephonyMode Is InCall - TelephonyMode Is InCommunication - ForceUseForCommunication Is ForceSpeaker - # - # DTMF follows Media strategy if not in call - # - ALL - TelephonyMode IsNot InCall - TelephonyMode IsNot InCommunication - ForceUseForHdmiSystemAudio IsNot ForceHdmiSystemEnforced - AvailableOutputDevices Includes Speaker - - component: /Policy/policy/strategies/dtmf/selected_output_devices/mask - remote_submix = 0 - earpiece = 0 - wired_headset = 0 - wired_headphone = 0 - bluetooth_sco = 0 - bluetooth_sco_headset = 0 - bluetooth_a2dp = 0 - bluetooth_a2dp_headphones = 0 - bluetooth_a2dp_speaker = 0 - hdmi = 0 - angl_dock_headset = 0 - dgtl_dock_headset = 0 - usb_accessory = 0 - usb_device = 0 - telephony_tx = 0 - line = 0 - speaker = 1 - - conf: Default - component: /Policy/policy/strategies/dtmf/selected_output_devices/mask - remote_submix = 0 - earpiece = 0 - wired_headset = 0 - wired_headphone = 0 - bluetooth_sco = 0 - bluetooth_sco_headset = 0 - bluetooth_a2dp = 0 - bluetooth_a2dp_headphones = 0 - bluetooth_a2dp_speaker = 0 - hdmi = 0 - angl_dock_headset = 0 - dgtl_dock_headset = 0 - usb_accessory = 0 - usb_device = 0 - telephony_tx = 0 - line = 0 - speaker = 0 - - domain: Arc - # - # DTMF strategy follows media strategy if not in call - # these following domains consists in device(s) that can co-exist with others - # e.g. ARC, SPDIF, AUX_LINE - # - conf: Selected - TelephonyMode IsNot InCall - TelephonyMode IsNot InCommunication - AvailableOutputDevices Includes HdmiArc - - /Policy/policy/strategies/media/selected_output_devices/mask/hdmi_arc = 1 - - conf: NotSelected - /Policy/policy/strategies/media/selected_output_devices/mask/hdmi_arc = 0 - - domain: Spdif - # - # DTMF strategy follows media strategy if not in call - # these following domains consists in device(s) that can co-exist with others - # e.g. ARC, SPDIF, AUX_LINE - # - conf: Selected - TelephonyMode IsNot InCall - TelephonyMode IsNot InCommunication - AvailableOutputDevices Includes Spdif - - /Policy/policy/strategies/media/selected_output_devices/mask/spdif = 1 - - conf: NotSelected - /Policy/policy/strategies/media/selected_output_devices/mask/spdif = 0 - - domain: AuxLine - # - # DTMF strategy follows media strategy if not in call - # these following domains consists in device(s) that can co-exist with others - # e.g. ARC, SPDIF, AUX_LINE - # - conf: Selected - TelephonyMode IsNot InCall - TelephonyMode IsNot InCommunication - AvailableOutputDevices Includes AuxLine - - /Policy/policy/strategies/media/selected_output_devices/mask/aux_line = 1 - - conf: NotSelected - /Policy/policy/strategies/media/selected_output_devices/mask/aux_line = 0 diff --git a/services/audiopolicy/engineconfigurable/parameter-framework/example/Settings/device_for_strategy_enforced_audible.pfw b/services/audiopolicy/engineconfigurable/parameter-framework/example/Settings/device_for_strategy_enforced_audible.pfw deleted file mode 100644 index d714743..0000000 --- a/services/audiopolicy/engineconfigurable/parameter-framework/example/Settings/device_for_strategy_enforced_audible.pfw +++ /dev/null @@ -1,358 +0,0 @@ -supDomain: DeviceForStrategy - - supDomain: EnforcedAudible - - domain: UnreachableDevices - conf: Calibration - component: /Policy/policy/strategies/enforced_audible/selected_output_devices/mask - # no enforced_audible on remote submix (e.g. WFD) - remote_submix = 0 - hdmi_arc = 0 - spdif = 0 - aux_line = 0 - speaker_safe = 0 - - domain: Speaker - conf: Selected - # - # strategy STRATEGY_ENFORCED_AUDIBLE uses same routing policy as STRATEGY_SONIFICATION - # except: - # - when in call where it doesn't default to STRATEGY_PHONE behavior - # - in countries where not enforced in which case it follows STRATEGY_MEDIA - # - AvailableOutputDevices Includes Speaker - ANY - ForceUseForSystem Is ForceSystemEnforced - ALL - ForceUseForMedia Is ForceSpeaker - AvailableOutputDevices Excludes RemoteSubmix - ANY - ForceUseForMedia IsNot ForceNoBtA2dp - AvailableOutputDevices Excludes BluetoothA2dp - AvailableOutputDevices Excludes BluetoothA2dpHeadphones - AvailableOutputDevices Excludes BluetoothA2dpSpeaker - # - # Speaker is also the fallback device if any of the device from Device2 domain - # is selected. - # - ALL - AvailableOutputDevices Excludes RemoteSubmix - AvailableOutputDevices Excludes WiredHeadphone - AvailableOutputDevices Excludes Line - AvailableOutputDevices Excludes WiredHeadset - AvailableOutputDevices Excludes UsbAccessory - AvailableOutputDevices Excludes UsbDevice - AvailableOutputDevices Excludes DgtlDockHeadset - AvailableOutputDevices Excludes Hdmi - ANY - AvailableOutputDevices Excludes AnlgDockHeadset - ForceUseForDock IsNot ForceAnalogDock - - component: /Policy/policy/strategies/enforced_audible/selected_output_devices/mask - speaker = 1 - - conf: NotSelected - component: /Policy/policy/strategies/enforced_audible/selected_output_devices/mask - speaker = 0 - - domain: Device2 - conf: RemoteSubmix - AvailableOutputDevices Includes RemoteSubmix - - component: /Policy/policy/strategies/enforced_audible/selected_output_devices/mask - remote_submix = 1 - earpiece = 0 - wired_headset = 0 - wired_headphone = 0 - bluetooth_sco = 0 - bluetooth_sco_headset = 0 - bluetooth_sco_carkit = 0 - bluetooth_a2dp = 0 - bluetooth_a2dp_headphones = 0 - bluetooth_a2dp_speaker = 0 - hdmi = 0 - angl_dock_headset = 0 - dgtl_dock_headset = 0 - usb_accessory = 0 - usb_device = 0 - telephony_tx = 0 - line = 0 - fm = 0 - speaker_safe = 0 - - conf: BluetoothA2dp - AvailableOutputDevices Includes BluetoothA2dp - ForceUseForMedia IsNot ForceNoBtA2dp - - component: /Policy/policy/strategies/enforced_audible/selected_output_devices/mask - remote_submix = 0 - earpiece = 0 - wired_headset = 0 - wired_headphone = 0 - bluetooth_sco = 0 - bluetooth_sco_headset = 0 - bluetooth_sco_carkit = 0 - bluetooth_a2dp = 1 - bluetooth_a2dp_headphones = 0 - bluetooth_a2dp_speaker = 0 - hdmi = 0 - angl_dock_headset = 0 - dgtl_dock_headset = 0 - usb_accessory = 0 - usb_device = 0 - telephony_tx = 0 - line = 0 - fm = 0 - speaker_safe = 0 - - conf: BluetoothA2dpHeadphones - AvailableOutputDevices Includes BluetoothA2dpHeadphones - ForceUseForMedia IsNot ForceNoBtA2dp - - component: /Policy/policy/strategies/enforced_audible/selected_output_devices/mask - remote_submix = 0 - earpiece = 0 - wired_headset = 0 - wired_headphone = 0 - bluetooth_sco = 0 - bluetooth_sco_headset = 0 - bluetooth_sco_carkit = 0 - bluetooth_a2dp = 0 - bluetooth_a2dp_headphones = 1 - bluetooth_a2dp_speaker = 0 - hdmi = 0 - angl_dock_headset = 0 - dgtl_dock_headset = 0 - usb_accessory = 0 - usb_device = 0 - telephony_tx = 0 - line = 0 - fm = 0 - speaker_safe = 0 - - conf: BluetoothA2dpSpeaker - AvailableOutputDevices Includes BluetoothA2dpSpeaker - ForceUseForMedia IsNot ForceNoBtA2dp - - component: /Policy/policy/strategies/enforced_audible/selected_output_devices/mask - remote_submix = 0 - earpiece = 0 - wired_headset = 0 - wired_headphone = 0 - bluetooth_sco = 0 - bluetooth_sco_headset = 0 - bluetooth_sco_carkit = 0 - bluetooth_a2dp = 0 - bluetooth_a2dp_headphones = 0 - bluetooth_a2dp_speaker = 1 - hdmi = 0 - angl_dock_headset = 0 - dgtl_dock_headset = 0 - usb_accessory = 0 - usb_device = 0 - telephony_tx = 0 - line = 0 - fm = 0 - speaker_safe = 0 - - conf: WiredHeadphone - ForceUseForMedia IsNot ForceSpeaker - AvailableOutputDevices Includes WiredHeadphone - - component: /Policy/policy/strategies/enforced_audible/selected_output_devices/mask - remote_submix = 0 - earpiece = 0 - wired_headset = 0 - wired_headphone = 1 - bluetooth_sco = 0 - bluetooth_sco_headset = 0 - bluetooth_sco_carkit = 0 - bluetooth_a2dp = 0 - bluetooth_a2dp_headphones = 0 - bluetooth_a2dp_speaker = 0 - hdmi = 0 - angl_dock_headset = 0 - dgtl_dock_headset = 0 - usb_accessory = 0 - usb_device = 0 - telephony_tx = 0 - line = 0 - fm = 0 - speaker_safe = 0 - - conf: Line - ForceUseForMedia IsNot ForceSpeaker - AvailableOutputDevices Includes Line - - component: /Policy/policy/strategies/enforced_audible/selected_output_devices/mask - remote_submix = 0 - earpiece = 0 - wired_headset = 0 - wired_headphone = 0 - bluetooth_sco = 0 - bluetooth_sco_headset = 0 - bluetooth_sco_carkit = 0 - bluetooth_a2dp = 0 - bluetooth_a2dp_headphones = 0 - bluetooth_a2dp_speaker = 0 - hdmi = 0 - angl_dock_headset = 0 - dgtl_dock_headset = 0 - usb_accessory = 0 - usb_device = 0 - telephony_tx = 0 - line = 1 - fm = 0 - speaker_safe = 0 - - conf: WiredHeadset - ForceUseForMedia IsNot ForceSpeaker - AvailableOutputDevices Includes WiredHeadset - - component: /Policy/policy/strategies/enforced_audible/selected_output_devices/mask - remote_submix = 0 - earpiece = 0 - wired_headset = 1 - wired_headphone = 0 - bluetooth_sco = 0 - bluetooth_sco_headset = 0 - bluetooth_sco_carkit = 0 - bluetooth_a2dp = 0 - bluetooth_a2dp_headphones = 0 - bluetooth_a2dp_speaker = 0 - hdmi = 0 - angl_dock_headset = 0 - dgtl_dock_headset = 0 - usb_accessory = 0 - usb_device = 0 - telephony_tx = 0 - line = 0 - fm = 0 - speaker_safe = 0 - - conf: UsbAccessory - ForceUseForMedia IsNot ForceSpeaker - AvailableOutputDevices Includes UsbAccessory - - component: /Policy/policy/strategies/enforced_audible/selected_output_devices/mask - remote_submix = 0 - earpiece = 0 - wired_headset = 0 - wired_headphone = 0 - bluetooth_sco = 0 - bluetooth_sco_headset = 0 - bluetooth_sco_carkit = 0 - bluetooth_a2dp = 0 - bluetooth_a2dp_headphones = 0 - bluetooth_a2dp_speaker = 0 - hdmi = 0 - angl_dock_headset = 0 - dgtl_dock_headset = 0 - usb_accessory = 1 - usb_device = 0 - telephony_tx = 0 - line = 0 - fm = 0 - speaker_safe = 0 - - conf: UsbDevice - ForceUseForMedia IsNot ForceSpeaker - AvailableOutputDevices Includes UsbDevice - - component: /Policy/policy/strategies/enforced_audible/selected_output_devices/mask - remote_submix = 0 - earpiece = 0 - wired_headset = 0 - wired_headphone = 0 - bluetooth_sco = 0 - bluetooth_sco_headset = 0 - bluetooth_sco_carkit = 0 - bluetooth_a2dp = 0 - bluetooth_a2dp_headphones = 0 - bluetooth_a2dp_speaker = 0 - hdmi = 0 - angl_dock_headset = 0 - dgtl_dock_headset = 0 - usb_accessory = 0 - usb_device = 1 - telephony_tx = 0 - line = 0 - fm = 0 - speaker_safe = 0 - - conf: DgtlDockHeadset - ForceUseForMedia IsNot ForceSpeaker - AvailableOutputDevices Includes DgtlDockHeadset - - component: /Policy/policy/strategies/enforced_audible/selected_output_devices/mask - remote_submix = 0 - earpiece = 0 - wired_headset = 0 - wired_headphone = 0 - bluetooth_sco = 0 - bluetooth_sco_headset = 0 - bluetooth_sco_carkit = 0 - bluetooth_a2dp = 0 - bluetooth_a2dp_headphones = 0 - bluetooth_a2dp_speaker = 0 - hdmi = 0 - angl_dock_headset = 0 - dgtl_dock_headset = 1 - usb_accessory = 0 - usb_device = 0 - telephony_tx = 0 - line = 0 - fm = 0 - speaker_safe = 0 - - conf: Hdmi - ForceUseForMedia IsNot ForceSpeaker - AvailableOutputDevices Includes Hdmi - - component: /Policy/policy/strategies/enforced_audible/selected_output_devices/mask - remote_submix = 0 - earpiece = 0 - wired_headset = 0 - wired_headphone = 0 - bluetooth_sco = 0 - bluetooth_sco_headset = 0 - bluetooth_sco_carkit = 0 - bluetooth_a2dp = 0 - bluetooth_a2dp_headphones = 0 - bluetooth_a2dp_speaker = 0 - hdmi = 1 - angl_dock_headset = 0 - dgtl_dock_headset = 0 - usb_accessory = 0 - usb_device = 0 - telephony_tx = 0 - line = 0 - fm = 0 - speaker_safe = 0 - - conf: AnlgDockHeadset - ForceUseForMedia IsNot ForceSpeaker - ForceUseForDock Is ForceAnalogDock - AvailableOutputDevices Includes AnlgDockHeadset - - component: /Policy/policy/strategies/enforced_audible/selected_output_devices/mask - remote_submix = 0 - earpiece = 0 - wired_headset = 0 - wired_headphone = 0 - bluetooth_sco = 0 - bluetooth_sco_headset = 0 - bluetooth_sco_carkit = 0 - bluetooth_a2dp = 0 - bluetooth_a2dp_headphones = 0 - bluetooth_a2dp_speaker = 0 - hdmi = 0 - angl_dock_headset = 1 - dgtl_dock_headset = 0 - usb_accessory = 0 - usb_device = 0 - telephony_tx = 0 - line = 0 - fm = 0 - speaker_safe = 0 - diff --git a/services/audiopolicy/engineconfigurable/parameter-framework/example/Settings/device_for_strategy_media.pfw b/services/audiopolicy/engineconfigurable/parameter-framework/example/Settings/device_for_strategy_media.pfw deleted file mode 100644 index 38bede5..0000000 --- a/services/audiopolicy/engineconfigurable/parameter-framework/example/Settings/device_for_strategy_media.pfw +++ /dev/null @@ -1,331 +0,0 @@ -domainGroup: DeviceForStrategy - - domainGroup: Media - - domain: UnreachableDevices - conf: Calibration - component: /Policy/policy/strategies/media/selected_output_devices/mask - fm = 0 - speaker_safe = 0 - earpiece = 0 - bluetooth_sco = 0 - bluetooth_sco_headset = 0 - bluetooth_sco_carkit = 0 - telephony_tx = 0 - - domain: Device2 - conf: RemoteSubmix - AvailableOutputDevices Includes RemoteSubmix - - component: /Policy/policy/strategies/media/selected_output_devices/mask - speaker = 0 - hdmi = 0 - dgtl_dock_headset = 0 - angl_dock_headset = 0 - usb_device = 0 - usb_accessory = 0 - wired_headset = 0 - wired_headphone = 0 - bluetooth_a2dp_speaker = 0 - bluetooth_a2dp_headphones = 0 - bluetooth_a2dp = 0 - remote_submix = 1 - line = 0 - - conf: BluetoothA2dp - ForceUseForMedia IsNot ForceNoBtA2dp - AvailableOutputDevices Includes BluetoothA2dp - - component: /Policy/policy/strategies/media/selected_output_devices/mask - speaker = 0 - hdmi = 0 - dgtl_dock_headset = 0 - angl_dock_headset = 0 - usb_device = 0 - usb_accessory = 0 - wired_headset = 0 - wired_headphone = 0 - bluetooth_a2dp_speaker = 0 - bluetooth_a2dp_headphones = 0 - bluetooth_a2dp = 1 - remote_submix = 0 - line = 0 - - conf: BluetoothA2dpHeadphone - ForceUseForMedia IsNot ForceNoBtA2dp - AvailableOutputDevices Includes BluetoothA2dpHeadphones - - component: /Policy/policy/strategies/media/selected_output_devices/mask - speaker = 0 - hdmi = 0 - dgtl_dock_headset = 0 - angl_dock_headset = 0 - usb_device = 0 - usb_accessory = 0 - wired_headset = 0 - wired_headphone = 0 - bluetooth_a2dp_speaker = 0 - bluetooth_a2dp_headphones = 1 - bluetooth_a2dp = 0 - remote_submix = 0 - line = 0 - - conf: BluetoothA2dpSpeaker - ForceUseForMedia IsNot ForceNoBtA2dp - AvailableOutputDevices Includes BluetoothA2dpSpeaker - - component: /Policy/policy/strategies/media/selected_output_devices/mask - speaker = 0 - hdmi = 0 - dgtl_dock_headset = 0 - angl_dock_headset = 0 - usb_device = 0 - usb_accessory = 0 - wired_headset = 0 - wired_headphone = 0 - bluetooth_a2dp_speaker = 1 - bluetooth_a2dp_headphones = 0 - bluetooth_a2dp = 0 - remote_submix = 0 - line = 0 - - conf: ForceSpeaker - ForceUseForMedia Is ForceSpeaker - AvailableOutputDevices Includes Speaker - # - # If hdmi system audio mode is on, remove speaker out of output list. - # - ForceUseForHdmiSystemAudio IsNot ForceHdmiSystemEnforced - - component: /Policy/policy/strategies/media/selected_output_devices/mask - speaker = 1 - hdmi = 0 - dgtl_dock_headset = 0 - angl_dock_headset = 0 - usb_device = 0 - usb_accessory = 0 - wired_headset = 0 - wired_headphone = 0 - bluetooth_a2dp_speaker = 0 - bluetooth_a2dp_headphones = 0 - bluetooth_a2dp = 0 - remote_submix = 0 - line = 0 - - conf: WiredHeadphone - AvailableOutputDevices Includes WiredHeadphone - - component: /Policy/policy/strategies/media/selected_output_devices/mask - speaker = 0 - hdmi = 0 - dgtl_dock_headset = 0 - angl_dock_headset = 0 - usb_device = 0 - usb_accessory = 0 - wired_headset = 0 - wired_headphone = 1 - bluetooth_a2dp_speaker = 0 - bluetooth_a2dp_headphones = 0 - bluetooth_a2dp = 0 - remote_submix = 0 - line = 0 - - conf: Line - AvailableOutputDevices Includes Line - - component: /Policy/policy/strategies/media/selected_output_devices/mask - speaker = 0 - hdmi = 0 - dgtl_dock_headset = 0 - angl_dock_headset = 0 - usb_device = 0 - usb_accessory = 0 - wired_headset = 0 - wired_headphone = 0 - bluetooth_a2dp_speaker = 0 - bluetooth_a2dp_headphones = 0 - bluetooth_a2dp = 0 - remote_submix = 0 - line = 1 - - conf: WiredHeadset - AvailableOutputDevices Includes WiredHeadset - - component: /Policy/policy/strategies/media/selected_output_devices/mask - speaker = 0 - hdmi = 0 - dgtl_dock_headset = 0 - angl_dock_headset = 0 - usb_device = 0 - usb_accessory = 0 - wired_headset = 1 - wired_headphone = 0 - bluetooth_a2dp_speaker = 0 - bluetooth_a2dp_headphones = 0 - bluetooth_a2dp = 0 - remote_submix = 0 - line = 0 - - conf: UsbAccessory - AvailableOutputDevices Includes UsbAccessory - - component: /Policy/policy/strategies/media/selected_output_devices/mask - speaker = 0 - hdmi = 0 - dgtl_dock_headset = 0 - angl_dock_headset = 0 - usb_device = 0 - usb_accessory = 1 - wired_headset = 0 - wired_headphone = 0 - bluetooth_a2dp_speaker = 0 - bluetooth_a2dp_headphones = 0 - bluetooth_a2dp = 0 - remote_submix = 0 - line = 0 - - conf: UsbDevice - AvailableOutputDevices Includes UsbDevice - - component: /Policy/policy/strategies/media/selected_output_devices/mask - speaker = 0 - hdmi = 0 - dgtl_dock_headset = 0 - angl_dock_headset = 0 - usb_device = 1 - usb_accessory = 0 - wired_headset = 0 - wired_headphone = 0 - bluetooth_a2dp_speaker = 0 - bluetooth_a2dp_headphones = 0 - bluetooth_a2dp = 0 - remote_submix = 0 - line = 0 - - conf: DgtlDockHeadset - AvailableOutputDevices Includes DgtlDockHeadset - - component: /Policy/policy/strategies/media/selected_output_devices/mask - speaker = 0 - hdmi = 0 - dgtl_dock_headset = 1 - angl_dock_headset = 0 - usb_device = 0 - usb_accessory = 0 - wired_headset = 0 - wired_headphone = 0 - bluetooth_a2dp_speaker = 0 - bluetooth_a2dp_headphones = 0 - bluetooth_a2dp = 0 - remote_submix = 0 - line = 0 - - conf: AuxDigital - AvailableOutputDevices Includes Hdmi - - component: /Policy/policy/strategies/media/selected_output_devices/mask - speaker = 0 - hdmi = 1 - dgtl_dock_headset = 0 - angl_dock_headset = 0 - usb_device = 0 - usb_accessory = 0 - wired_headset = 0 - wired_headphone = 0 - bluetooth_a2dp_speaker = 0 - bluetooth_a2dp_headphones = 0 - bluetooth_a2dp = 0 - remote_submix = 0 - line = 0 - - conf: AnlgDockHeadset - AvailableOutputDevices Includes AnlgDockHeadset - ForceUseForDock Is ForceAnalogDock - - component: /Policy/policy/strategies/media/selected_output_devices/mask - speaker = 0 - hdmi = 0 - dgtl_dock_headset = 0 - angl_dock_headset = 1 - usb_device = 0 - usb_accessory = 0 - wired_headset = 0 - wired_headphone = 0 - bluetooth_a2dp_speaker = 0 - bluetooth_a2dp_headphones = 0 - bluetooth_a2dp = 0 - remote_submix = 0 - line = 0 - - conf: Speaker - AvailableOutputDevices Includes Speaker - # - # If hdmi system audio mode is on, remove speaker out of output list. - # - ForceUseForHdmiSystemAudio IsNot ForceHdmiSystemEnforced - - component: /Policy/policy/strategies/media/selected_output_devices/mask - speaker = 1 - hdmi = 0 - dgtl_dock_headset = 0 - angl_dock_headset = 0 - usb_device = 0 - usb_accessory = 0 - wired_headset = 0 - wired_headphone = 0 - bluetooth_a2dp_speaker = 0 - bluetooth_a2dp_headphones = 0 - bluetooth_a2dp = 0 - remote_submix = 0 - line = 0 - - conf: Default - component: /Policy/policy/strategies/media/selected_output_devices/mask - speaker = 0 - hdmi = 0 - dgtl_dock_headset = 0 - angl_dock_headset = 0 - usb_device = 0 - usb_accessory = 0 - wired_headset = 0 - wired_headphone = 0 - bluetooth_a2dp_speaker = 0 - bluetooth_a2dp_headphones = 0 - bluetooth_a2dp = 0 - remote_submix = 0 - line = 0 - - domain: Arc - # - # these following domains consists in device(s) that can co-exist with others - # e.g. ARC, SPDIF, AUX_LINE - # - conf: Selected - AvailableOutputDevices Includes HdmiArc - - /Policy/policy/strategies/media/selected_output_devices/mask/hdmi_arc = 1 - - conf: NotSelected - /Policy/policy/strategies/media/selected_output_devices/mask/hdmi_arc = 0 - - domain: Spdif - # - # these following domains consists in device(s) that can co-exist with others - # e.g. ARC, SPDIF, AUX_LINE - # - conf: Selected - AvailableOutputDevices Includes Spdif - - /Policy/policy/strategies/media/selected_output_devices/mask/spdif = 1 - - conf: NotSelected - /Policy/policy/strategies/media/selected_output_devices/mask/spdif = 0 - - domain: AuxLine - conf: Selected - AvailableOutputDevices Includes AuxLine - - /Policy/policy/strategies/media/selected_output_devices/mask/aux_line = 1 - - conf: NotSelected - /Policy/policy/strategies/media/selected_output_devices/mask/aux_line = 0 diff --git a/services/audiopolicy/engineconfigurable/parameter-framework/example/Settings/device_for_strategy_phone.pfw b/services/audiopolicy/engineconfigurable/parameter-framework/example/Settings/device_for_strategy_phone.pfw deleted file mode 100644 index 7b01491..0000000 --- a/services/audiopolicy/engineconfigurable/parameter-framework/example/Settings/device_for_strategy_phone.pfw +++ /dev/null @@ -1,485 +0,0 @@ -supDomain: DeviceForStrategy - - supDomain: Phone - - domain: UnreachableDevices - conf: Calibration - component: /Policy/policy/strategies/phone/selected_output_devices/mask - # no sonification on remote submix (e.g. WFD) - remote_submix = 0 - hdmi_arc = 0 - aux_line = 0 - spdif = 0 - fm = 0 - speaker_safe = 0 - - domain: Device - conf: ScoCarkit - AvailableOutputDevices Includes BluetoothScoCarkit - ForceUseForCommunication Is ForceBtSco - - component: /Policy/policy/strategies/phone/selected_output_devices/mask - earpiece = 0 - wired_headset = 0 - wired_headphone = 0 - bluetooth_sco = 0 - bluetooth_sco_headset = 0 - bluetooth_sco_carkit = 1 - bluetooth_a2dp = 0 - bluetooth_a2dp_headphones = 0 - bluetooth_a2dp_speaker = 0 - hdmi = 0 - angl_dock_headset = 0 - dgtl_dock_headset = 0 - usb_accessory = 0 - usb_device = 0 - telephony_tx = 0 - line = 0 - speaker = 0 - - conf: BluetoothScoHeadset - AvailableOutputDevices Includes BluetoothScoHeadset - ForceUseForCommunication Is ForceBtSco - - component: /Policy/policy/strategies/phone/selected_output_devices/mask - earpiece = 0 - wired_headset = 0 - wired_headphone = 0 - bluetooth_sco = 0 - bluetooth_sco_headset = 1 - bluetooth_sco_carkit = 0 - bluetooth_a2dp = 0 - bluetooth_a2dp_headphones = 0 - bluetooth_a2dp_speaker = 0 - hdmi = 0 - angl_dock_headset = 0 - dgtl_dock_headset = 0 - usb_accessory = 0 - usb_device = 0 - telephony_tx = 0 - line = 0 - speaker = 0 - - conf: BluetoothSco - AvailableOutputDevices Includes BluetoothSco - ForceUseForCommunication Is ForceBtSco - - component: /Policy/policy/strategies/phone/selected_output_devices/mask - earpiece = 0 - wired_headset = 0 - wired_headphone = 0 - bluetooth_sco = 1 - bluetooth_sco_headset = 0 - bluetooth_sco_carkit = 0 - bluetooth_a2dp = 0 - bluetooth_a2dp_headphones = 0 - bluetooth_a2dp_speaker = 0 - hdmi = 0 - angl_dock_headset = 0 - dgtl_dock_headset = 0 - usb_accessory = 0 - usb_device = 0 - telephony_tx = 0 - line = 0 - speaker = 0 - - conf: BluetoothA2dp - # - # Fallback BT Sco devices in case of FORCE_BT_SCO - # or FORCE_NONE - # - AvailableOutputDevices Includes BluetoothA2dp - TelephonyMode IsNot InCall - TelephonyMode IsNot InCommunication - ForceUseForMedia IsNot ForceNoBtA2dp - ANY - ForceUseForCommunication Is ForceBtSco - ForceUseForCommunication Is ForceNone - - component: /Policy/policy/strategies/phone/selected_output_devices/mask - earpiece = 0 - wired_headset = 0 - wired_headphone = 0 - bluetooth_sco = 0 - bluetooth_sco_headset = 0 - bluetooth_sco_carkit = 0 - bluetooth_a2dp = 1 - bluetooth_a2dp_headphones = 0 - bluetooth_a2dp_speaker = 0 - hdmi = 0 - angl_dock_headset = 0 - dgtl_dock_headset = 0 - usb_accessory = 0 - usb_device = 0 - telephony_tx = 0 - line = 0 - speaker = 0 - - conf: BluetoothA2dpHeadphones - # - # Fallback BT Sco devices in case of FORCE_BT_SCO - # or FORCE_NONE - # - AvailableOutputDevices Includes BluetoothA2dpHeadphones - TelephonyMode IsNot InCall - TelephonyMode IsNot InCommunication - ForceUseForMedia IsNot ForceNoBtA2dp - ANY - ForceUseForCommunication Is ForceBtSco - ForceUseForCommunication Is ForceNone - - component: /Policy/policy/strategies/phone/selected_output_devices/mask - earpiece = 0 - wired_headset = 0 - wired_headphone = 0 - bluetooth_sco = 0 - bluetooth_sco_headset = 0 - bluetooth_sco_carkit = 0 - bluetooth_a2dp = 0 - bluetooth_a2dp_headphones = 1 - bluetooth_a2dp_speaker = 0 - hdmi = 0 - angl_dock_headset = 0 - dgtl_dock_headset = 0 - usb_accessory = 0 - usb_device = 0 - telephony_tx = 0 - line = 0 - speaker = 0 - - conf: BluetoothA2dpSpeaker - # - # Fallback BT Sco devices in case of FORCE_BT_SCO - # or FORCE_NONE - # - AvailableOutputDevices Includes BluetoothA2dpSpeaker - TelephonyMode IsNot InCall - TelephonyMode IsNot InCommunication - ForceUseForMedia IsNot ForceNoBtA2dp - ForceUseForCommunication Is ForceSpeaker - - component: /Policy/policy/strategies/phone/selected_output_devices/mask - earpiece = 0 - wired_headset = 0 - wired_headphone = 0 - bluetooth_sco = 0 - bluetooth_sco_headset = 0 - bluetooth_sco_carkit = 0 - bluetooth_a2dp = 0 - bluetooth_a2dp_headphones = 1 - bluetooth_a2dp_speaker = 0 - hdmi = 0 - angl_dock_headset = 0 - dgtl_dock_headset = 0 - usb_accessory = 0 - usb_device = 0 - telephony_tx = 0 - line = 0 - speaker = 0 - - conf: WiredHeadphone - # - # Fallback BT Sco devices in case of FORCE_BT_SCO - # or FORCE_NONE - # - AvailableOutputDevices Includes WiredHeadphone - ForceUseForCommunication IsNot ForceSpeaker - - component: /Policy/policy/strategies/phone/selected_output_devices/mask - earpiece = 0 - wired_headset = 0 - wired_headphone = 1 - bluetooth_sco = 0 - bluetooth_sco_headset = 0 - bluetooth_sco_carkit = 0 - bluetooth_a2dp = 0 - bluetooth_a2dp_headphones = 0 - bluetooth_a2dp_speaker = 0 - hdmi = 0 - angl_dock_headset = 0 - dgtl_dock_headset = 0 - usb_accessory = 0 - usb_device = 0 - telephony_tx = 0 - line = 0 - speaker = 0 - - conf: WiredHeadset - # - # Fallback BT Sco devices in case of FORCE_BT_SCO - # or FORCE_NONE - # - AvailableOutputDevices Includes WiredHeadset - ForceUseForCommunication IsNot ForceSpeaker - - component: /Policy/policy/strategies/phone/selected_output_devices/mask - earpiece = 0 - wired_headset = 1 - wired_headphone = 0 - bluetooth_sco = 0 - bluetooth_sco_headset = 0 - bluetooth_sco_carkit = 0 - bluetooth_a2dp = 0 - bluetooth_a2dp_headphones = 0 - bluetooth_a2dp_speaker = 0 - hdmi = 0 - angl_dock_headset = 0 - dgtl_dock_headset = 0 - usb_accessory = 0 - usb_device = 0 - telephony_tx = 0 - line = 0 - speaker = 0 - - conf: UsbDevice - # - # Fallback BT Sco devices in case of FORCE_BT_SCO - # or FORCE_NONE - # - AvailableOutputDevices Includes UsbDevice - ANY - ForceUseForCommunication Is ForceBtSco - ForceUseForCommunication Is ForceNone - ALL - ForceUseForCommunication Is ForceSpeaker - # - # In case of Force Speaker, priority between device and accessory are - # inverted compared to Force None or Bt Sco - # - AvailableOutputDevices Excludes UsbAccessory - TelephonyMode IsNot InCall - TelephonyMode IsNot InCommunication - - component: /Policy/policy/strategies/phone/selected_output_devices/mask - earpiece = 0 - wired_headset = 0 - wired_headphone = 0 - bluetooth_sco = 0 - bluetooth_sco_headset = 0 - bluetooth_sco_carkit = 0 - bluetooth_a2dp = 0 - bluetooth_a2dp_headphones = 0 - bluetooth_a2dp_speaker = 0 - hdmi = 0 - angl_dock_headset = 0 - dgtl_dock_headset = 0 - usb_accessory = 0 - usb_device = 1 - telephony_tx = 0 - line = 0 - speaker = 0 - - conf: UsbAccessory - # - # Fallback BT Sco devices in case of FORCE_BT_SCO - # or FORCE_NONE - # - AvailableOutputDevices Includes UsbAccessory - TelephonyMode IsNot InCommunication - TelephonyMode IsNot InCall - - component: /Policy/policy/strategies/phone/selected_output_devices/mask - earpiece = 0 - wired_headset = 0 - wired_headphone = 0 - bluetooth_sco = 0 - bluetooth_sco_headset = 0 - bluetooth_sco_carkit = 0 - bluetooth_a2dp = 0 - bluetooth_a2dp_headphones = 0 - bluetooth_a2dp_speaker = 0 - hdmi = 0 - angl_dock_headset = 0 - dgtl_dock_headset = 0 - usb_accessory = 0 - usb_device = 1 - telephony_tx = 0 - line = 0 - speaker = 0 - - conf: DgtlDockHeadset - # - # Fallback BT Sco devices in case of FORCE_BT_SCO - # or FORCE_NONE - # - AvailableOutputDevices Includes DgtlDockHeadset - TelephonyMode IsNot InCall - TelephonyMode IsNot InCommunication - - component: /Policy/policy/strategies/phone/selected_output_devices/mask - earpiece = 0 - wired_headset = 0 - wired_headphone = 0 - bluetooth_sco = 0 - bluetooth_sco_headset = 0 - bluetooth_sco_carkit = 0 - bluetooth_a2dp = 0 - bluetooth_a2dp_headphones = 0 - bluetooth_a2dp_speaker = 0 - hdmi = 0 - angl_dock_headset = 0 - dgtl_dock_headset = 1 - usb_accessory = 0 - usb_device = 0 - telephony_tx = 0 - line = 0 - speaker = 0 - - conf: Hdmi - # - # Fallback BT Sco devices in case of FORCE_BT_SCO - # or FORCE_NONE - # - AvailableOutputDevices Includes Hdmi - TelephonyMode IsNot InCall - TelephonyMode IsNot InCommunication - - component: /Policy/policy/strategies/phone/selected_output_devices/mask - earpiece = 0 - wired_headset = 0 - wired_headphone = 0 - bluetooth_sco = 0 - bluetooth_sco_headset = 0 - bluetooth_sco_carkit = 0 - bluetooth_a2dp = 0 - bluetooth_a2dp_headphones = 0 - bluetooth_a2dp_speaker = 0 - hdmi = 1 - angl_dock_headset = 0 - dgtl_dock_headset = 0 - usb_accessory = 0 - usb_device = 0 - telephony_tx = 0 - line = 0 - speaker = 0 - - conf: AnlgDockHeadset - # - # Fallback BT Sco devices in case of FORCE_BT_SCO - # or FORCE_NONE - # - AvailableOutputDevices Includes AnlgDockHeadset - TelephonyMode IsNot InCall - TelephonyMode IsNot InCommunication - - component: /Policy/policy/strategies/phone/selected_output_devices/mask - earpiece = 0 - wired_headset = 0 - wired_headphone = 0 - bluetooth_sco = 0 - bluetooth_sco_headset = 0 - bluetooth_sco_carkit = 0 - bluetooth_a2dp = 0 - bluetooth_a2dp_headphones = 0 - bluetooth_a2dp_speaker = 0 - hdmi = 0 - angl_dock_headset = 1 - dgtl_dock_headset = 0 - usb_accessory = 0 - usb_device = 0 - telephony_tx = 0 - line = 0 - speaker = 0 - - conf: Earpiece - # - # Fallback BT Sco devices in case of FORCE_BT_SCO - # or FORCE_NONE - # - AvailableOutputDevices Includes Earpiece - ForceUseForCommunication IsNot ForceSpeaker - - component: /Policy/policy/strategies/phone/selected_output_devices/mask - earpiece = 1 - wired_headset = 0 - wired_headphone = 0 - bluetooth_sco = 0 - bluetooth_sco_headset = 0 - bluetooth_sco_carkit = 0 - bluetooth_a2dp = 0 - bluetooth_a2dp_headphones = 0 - bluetooth_a2dp_speaker = 0 - hdmi = 0 - angl_dock_headset = 0 - dgtl_dock_headset = 0 - usb_accessory = 0 - usb_device = 0 - telephony_tx = 0 - line = 0 - speaker = 0 - - conf: Line - # - # Fallback BT Sco devices in case of FORCE_BT_SCO - # or FORCE_NONE - # - AvailableOutputDevices Includes Line - ForceUseForCommunication Is ForceSpeaker - - component: /Policy/policy/strategies/phone/selected_output_devices/mask - earpiece = 0 - wired_headset = 0 - wired_headphone = 0 - bluetooth_sco = 0 - bluetooth_sco_headset = 0 - bluetooth_sco_carkit = 0 - bluetooth_a2dp = 0 - bluetooth_a2dp_headphones = 0 - bluetooth_a2dp_speaker = 0 - hdmi = 0 - angl_dock_headset = 0 - dgtl_dock_headset = 0 - usb_accessory = 0 - usb_device = 0 - telephony_tx = 0 - line = 1 - speaker = 0 - - conf: Speaker - # - # Fallback BT Sco devices in case of FORCE_BT_SCO - # or FORCE_NONE - # - AvailableOutputDevices Includes Speaker - ForceUseForCommunication Is ForceSpeaker - - component: /Policy/policy/strategies/phone/selected_output_devices/mask - earpiece = 0 - wired_headset = 0 - wired_headphone = 0 - bluetooth_sco = 0 - bluetooth_sco_headset = 0 - bluetooth_sco_carkit = 0 - bluetooth_a2dp = 0 - bluetooth_a2dp_headphones = 0 - bluetooth_a2dp_speaker = 0 - hdmi = 0 - angl_dock_headset = 0 - dgtl_dock_headset = 0 - usb_accessory = 0 - usb_device = 0 - telephony_tx = 0 - line = 0 - speaker = 1 - - conf: Default - component: /Policy/policy/strategies/phone/selected_output_devices/mask - earpiece = 0 - wired_headset = 0 - wired_headphone = 0 - bluetooth_sco = 0 - bluetooth_sco_headset = 0 - bluetooth_sco_carkit = 0 - bluetooth_a2dp = 0 - bluetooth_a2dp_headphones = 0 - bluetooth_a2dp_speaker = 0 - hdmi = 0 - angl_dock_headset = 0 - dgtl_dock_headset = 0 - usb_accessory = 0 - usb_device = 0 - telephony_tx = 0 - line = 0 - speaker = 0 - - diff --git a/services/audiopolicy/engineconfigurable/parameter-framework/example/Settings/device_for_strategy_rerouting.pfw b/services/audiopolicy/engineconfigurable/parameter-framework/example/Settings/device_for_strategy_rerouting.pfw deleted file mode 100644 index d390a33..0000000 --- a/services/audiopolicy/engineconfigurable/parameter-framework/example/Settings/device_for_strategy_rerouting.pfw +++ /dev/null @@ -1,297 +0,0 @@ -domainGroup: DeviceForStrategy - - domainGroup: Rerouting - # - # Falls through media strategy - # - domain: UnreachableDevices - conf: Calibration - component: /Policy/policy/strategies/rerouting/selected_output_devices/mask - hdmi_arc = 0 - spdif = 0 - aux_line = 0 - fm = 0 - speaker_safe = 0 - earpiece = 0 - bluetooth_sco = 0 - bluetooth_sco_headset = 0 - bluetooth_sco_carkit = 0 - telephony_tx = 0 - - domain: Device2 - conf: RemoteSubmix - AvailableOutputDevices Includes RemoteSubmix - - component: /Policy/policy/strategies/rerouting/selected_output_devices/mask - remote_submix = 1 - bluetooth_a2dp = 0 - bluetooth_a2dp_headphones = 0 - bluetooth_a2dp_speaker = 0 - speaker = 0 - wired_headset = 0 - wired_headphone = 0 - line = 0 - angl_dock_headset = 0 - dgtl_dock_headset = 0 - usb_accessory = 0 - usb_device = 0 - hdmi = 0 - - conf: BluetoothA2dp - ForceUseForMedia IsNot ForceNoBtA2dp - AvailableOutputDevices Includes BluetoothA2dp - - component: /Policy/policy/strategies/rerouting/selected_output_devices/mask - remote_submix = 0 - bluetooth_a2dp = 1 - bluetooth_a2dp_headphones = 0 - bluetooth_a2dp_speaker = 0 - speaker = 0 - wired_headset = 0 - wired_headphone = 0 - line = 0 - angl_dock_headset = 0 - dgtl_dock_headset = 0 - usb_accessory = 0 - usb_device = 0 - hdmi = 0 - - conf: BluetoothA2dpHeadphone - ForceUseForMedia IsNot ForceNoBtA2dp - AvailableOutputDevices Includes BluetoothA2dpHeadphones - - component: /Policy/policy/strategies/rerouting/selected_output_devices/mask - remote_submix = 0 - bluetooth_a2dp = 0 - bluetooth_a2dp_headphones = 1 - bluetooth_a2dp_speaker = 0 - speaker = 0 - wired_headset = 0 - wired_headphone = 0 - line = 0 - angl_dock_headset = 0 - dgtl_dock_headset = 0 - usb_accessory = 0 - usb_device = 0 - hdmi = 0 - - conf: BluetoothA2dpSpeaker - ForceUseForMedia IsNot ForceNoBtA2dp - AvailableOutputDevices Includes BluetoothA2dpSpeaker - - component: /Policy/policy/strategies/rerouting/selected_output_devices/mask - remote_submix = 0 - bluetooth_a2dp = 0 - bluetooth_a2dp_headphones = 0 - bluetooth_a2dp_speaker = 1 - speaker = 0 - wired_headset = 0 - wired_headphone = 0 - line = 0 - angl_dock_headset = 0 - dgtl_dock_headset = 0 - usb_accessory = 0 - usb_device = 0 - hdmi = 0 - - conf: ForceSpeaker - ForceUseForMedia Is ForceSpeaker - AvailableOutputDevices Includes Speaker - - component: /Policy/policy/strategies/rerouting/selected_output_devices/mask - remote_submix = 0 - bluetooth_a2dp = 0 - bluetooth_a2dp_headphones = 0 - bluetooth_a2dp_speaker = 0 - speaker = 1 - wired_headset = 0 - wired_headphone = 0 - line = 0 - angl_dock_headset = 0 - dgtl_dock_headset = 0 - usb_accessory = 0 - usb_device = 0 - hdmi = 0 - - conf: WiredHeadphone - AvailableOutputDevices Includes WiredHeadphone - - component: /Policy/policy/strategies/rerouting/selected_output_devices/mask - remote_submix = 0 - bluetooth_a2dp = 0 - bluetooth_a2dp_headphones = 0 - bluetooth_a2dp_speaker = 0 - speaker = 0 - wired_headset = 0 - wired_headphone = 1 - line = 0 - angl_dock_headset = 0 - dgtl_dock_headset = 0 - usb_accessory = 0 - usb_device = 0 - hdmi = 0 - - conf: Line - AvailableOutputDevices Includes Line - - component: /Policy/policy/strategies/rerouting/selected_output_devices/mask - remote_submix = 0 - bluetooth_a2dp = 0 - bluetooth_a2dp_headphones = 0 - bluetooth_a2dp_speaker = 0 - speaker = 0 - wired_headset = 0 - wired_headphone = 0 - line = 1 - angl_dock_headset = 0 - dgtl_dock_headset = 0 - usb_accessory = 0 - usb_device = 0 - hdmi = 0 - - conf: WiredHeadset - AvailableOutputDevices Includes WiredHeadset - - component: /Policy/policy/strategies/rerouting/selected_output_devices/mask - remote_submix = 0 - bluetooth_a2dp = 0 - bluetooth_a2dp_headphones = 0 - bluetooth_a2dp_speaker = 0 - speaker = 0 - wired_headset = 1 - wired_headphone = 0 - line = 0 - angl_dock_headset = 0 - dgtl_dock_headset = 0 - usb_accessory = 0 - usb_device = 0 - hdmi = 0 - - conf: UsbAccessory - AvailableOutputDevices Includes UsbAccessory - - component: /Policy/policy/strategies/rerouting/selected_output_devices/mask - remote_submix = 0 - bluetooth_a2dp = 0 - bluetooth_a2dp_headphones = 0 - bluetooth_a2dp_speaker = 0 - speaker = 0 - wired_headset = 0 - wired_headphone = 0 - line = 0 - angl_dock_headset = 0 - dgtl_dock_headset = 0 - usb_accessory = 1 - usb_device = 0 - hdmi = 0 - - conf: UsbDevice - AvailableOutputDevices Includes UsbDevice - - component: /Policy/policy/strategies/rerouting/selected_output_devices/mask - remote_submix = 0 - bluetooth_a2dp = 0 - bluetooth_a2dp_headphones = 0 - bluetooth_a2dp_speaker = 0 - speaker = 0 - wired_headset = 0 - wired_headphone = 0 - line = 0 - angl_dock_headset = 0 - dgtl_dock_headset = 0 - usb_accessory = 0 - usb_device = 1 - hdmi = 0 - - conf: DgtlDockHeadset - AvailableOutputDevices Includes DgtlDockHeadset - - component: /Policy/policy/strategies/rerouting/selected_output_devices/mask - remote_submix = 0 - bluetooth_a2dp = 0 - bluetooth_a2dp_headphones = 0 - bluetooth_a2dp_speaker = 0 - speaker = 0 - wired_headset = 0 - wired_headphone = 0 - line = 0 - angl_dock_headset = 0 - dgtl_dock_headset = 1 - usb_accessory = 0 - usb_device = 0 - hdmi = 0 - - conf: AuxDigital - # - # Rerouting is similar to media and sonification (exept here: sonification is not allowed on HDMI) - # - AvailableOutputDevices Includes Hdmi - - component: /Policy/policy/strategies/rerouting/selected_output_devices/mask - remote_submix = 0 - bluetooth_a2dp = 0 - bluetooth_a2dp_headphones = 0 - bluetooth_a2dp_speaker = 0 - speaker = 0 - wired_headset = 0 - wired_headphone = 0 - line = 0 - angl_dock_headset = 0 - dgtl_dock_headset = 0 - usb_accessory = 0 - usb_device = 0 - hdmi = 1 - - conf: AnlgDockHeadset - AvailableOutputDevices Includes AnlgDockHeadset - ForceUseForDock Is ForceAnalogDock - - component: /Policy/policy/strategies/rerouting/selected_output_devices/mask - remote_submix = 0 - bluetooth_a2dp = 0 - bluetooth_a2dp_headphones = 0 - bluetooth_a2dp_speaker = 0 - speaker = 0 - wired_headset = 0 - wired_headphone = 0 - line = 0 - angl_dock_headset = 1 - dgtl_dock_headset = 0 - usb_accessory = 0 - usb_device = 0 - hdmi = 0 - - conf: Speaker - AvailableOutputDevices Includes Speaker - - component: /Policy/policy/strategies/rerouting/selected_output_devices/mask - remote_submix = 0 - bluetooth_a2dp = 0 - bluetooth_a2dp_headphones = 0 - bluetooth_a2dp_speaker = 0 - speaker = 1 - wired_headset = 0 - wired_headphone = 0 - line = 0 - angl_dock_headset = 0 - dgtl_dock_headset = 0 - usb_accessory = 0 - usb_device = 0 - hdmi = 0 - - conf: Default - component: /Policy/policy/strategies/rerouting/selected_output_devices/mask - remote_submix = 0 - bluetooth_a2dp = 0 - bluetooth_a2dp_headphones = 0 - bluetooth_a2dp_speaker = 0 - speaker = 0 - wired_headset = 0 - wired_headphone = 0 - line = 0 - angl_dock_headset = 0 - dgtl_dock_headset = 0 - usb_accessory = 0 - usb_device = 0 - hdmi = 0 - diff --git a/services/audiopolicy/engineconfigurable/parameter-framework/example/Settings/device_for_strategy_sonification.pfw b/services/audiopolicy/engineconfigurable/parameter-framework/example/Settings/device_for_strategy_sonification.pfw deleted file mode 100644 index 71101f8..0000000 --- a/services/audiopolicy/engineconfigurable/parameter-framework/example/Settings/device_for_strategy_sonification.pfw +++ /dev/null @@ -1,485 +0,0 @@ -supDomain: DeviceForStrategy - - supDomain: Sonification - - domain: UnreachableDevices - conf: Calibration - component: /Policy/policy/strategies/sonification/selected_output_devices/mask - # no sonification on remote submix (e.g. WFD) - remote_submix = 0 - hdmi_arc = 0 - spdif = 0 - fm = 0 - speaker_safe = 0 - aux_line = 0 - # - # Sonification follows phone strategy if in call but HDMI is not reachable - # - hdmi = 0 - - domain: Speaker - - conf: Selected - AvailableOutputDevices Includes Speaker - ANY - # - # Sonification falls through ENFORCED_AUDIBLE if not in call (widely speaking) - # - ALL - TelephonyMode IsNot InCall - TelephonyMode IsNot InCommunication - ALL - # - # Sonification follows phone strategy if in call (widely speaking) - # - ForceUseForCommunication Is ForceSpeaker - ANY - TelephonyMode Is InCall - TelephonyMode Is InCommunication - AvailableOutputDevices Excludes Line - - component: /Policy/policy/strategies/sonification/selected_output_devices/mask - speaker = 1 - - conf: NotSelected - component: /Policy/policy/strategies/sonification/selected_output_devices/mask - speaker = 0 - - domain: Device2 - - conf: BluetoothA2dp - # - # Sonification falls through media strategy if not in call (widely speaking) - # - AvailableOutputDevices Includes BluetoothA2dp - TelephonyMode IsNot InCall - TelephonyMode IsNot InCommunication - ForceUseForMedia IsNot ForceNoBtA2dp - - component: /Policy/policy/strategies/sonification/selected_output_devices/mask - earpiece = 0 - wired_headset = 0 - wired_headphone = 0 - bluetooth_sco = 0 - bluetooth_sco_headset = 0 - bluetooth_sco_carkit = 0 - bluetooth_a2dp = 1 - bluetooth_a2dp_headphones = 0 - bluetooth_a2dp_speaker = 0 - angl_dock_headset = 0 - dgtl_dock_headset = 0 - usb_accessory = 0 - usb_device = 0 - telephony_tx = 0 - line = 0 - - conf: BluetoothA2dpHeadphones - # - # Sonification falls through media strategy if not in call (widely speaking) - # - AvailableOutputDevices Includes BluetoothA2dpHeadphones - TelephonyMode IsNot InCall - TelephonyMode IsNot InCommunication - ForceUseForMedia IsNot ForceNoBtA2dp - - component: /Policy/policy/strategies/sonification/selected_output_devices/mask - earpiece = 0 - wired_headset = 0 - wired_headphone = 0 - bluetooth_sco = 0 - bluetooth_sco_headset = 0 - bluetooth_sco_carkit = 0 - bluetooth_a2dp = 0 - bluetooth_a2dp_headphones = 1 - bluetooth_a2dp_speaker = 0 - angl_dock_headset = 0 - dgtl_dock_headset = 0 - usb_accessory = 0 - usb_device = 0 - telephony_tx = 0 - line = 0 - - conf: BluetoothA2dpSpeaker - # - # Sonification falls through media strategy if not in call (widely speaking) - # - AvailableOutputDevices Includes BluetoothA2dpSpeaker - TelephonyMode IsNot InCall - TelephonyMode IsNot InCommunication - ForceUseForMedia IsNot ForceNoBtA2dp - - component: /Policy/policy/strategies/sonification/selected_output_devices/mask - earpiece = 0 - wired_headset = 0 - wired_headphone = 0 - bluetooth_sco = 0 - bluetooth_sco_headset = 0 - bluetooth_sco_carkit = 0 - bluetooth_a2dp = 0 - bluetooth_a2dp_headphones = 0 - bluetooth_a2dp_speaker = 1 - angl_dock_headset = 0 - dgtl_dock_headset = 0 - usb_accessory = 0 - usb_device = 0 - telephony_tx = 0 - line = 0 - - conf: ScoCarkit - # - # Sonification follows phone strategy if in call (widely speaking) - # - ANY - TelephonyMode Is InCall - TelephonyMode Is InCommunication - ForceUseForCommunication Is ForceBtSco - AvailableOutputDevices Includes BluetoothScoCarkit - - component: /Policy/policy/strategies/sonification/selected_output_devices/mask - earpiece = 0 - wired_headset = 0 - wired_headphone = 0 - bluetooth_sco = 0 - bluetooth_sco_headset = 0 - bluetooth_sco_carkit = 1 - bluetooth_a2dp = 0 - bluetooth_a2dp_headphones = 0 - bluetooth_a2dp_speaker = 0 - angl_dock_headset = 0 - dgtl_dock_headset = 0 - usb_accessory = 0 - usb_device = 0 - telephony_tx = 0 - line = 0 - - conf: ScoHeadset - # - # Sonification follows phone strategy if in call (widely speaking) - # - ANY - TelephonyMode Is InCall - TelephonyMode Is InCommunication - ForceUseForCommunication Is ForceBtSco - AvailableOutputDevices Includes BluetoothScoHeadset - - component: /Policy/policy/strategies/sonification/selected_output_devices/mask - earpiece = 0 - wired_headset = 0 - wired_headphone = 0 - bluetooth_sco = 0 - bluetooth_sco_headset = 1 - bluetooth_sco_carkit = 0 - bluetooth_a2dp = 0 - bluetooth_a2dp_headphones = 0 - bluetooth_a2dp_speaker = 0 - angl_dock_headset = 0 - dgtl_dock_headset = 0 - usb_accessory = 0 - usb_device = 0 - telephony_tx = 0 - line = 0 - - conf: Sco - # - # Sonification follows phone strategy if in call (widely speaking) - # - ANY - TelephonyMode Is InCall - TelephonyMode Is InCommunication - ForceUseForCommunication Is ForceBtSco - AvailableOutputDevices Includes BluetoothSco - - component: /Policy/policy/strategies/sonification/selected_output_devices/mask - earpiece = 0 - wired_headset = 0 - wired_headphone = 0 - bluetooth_sco = 1 - bluetooth_sco_headset = 0 - bluetooth_sco_carkit = 0 - bluetooth_a2dp = 0 - bluetooth_a2dp_headphones = 0 - bluetooth_a2dp_speaker = 0 - angl_dock_headset = 0 - dgtl_dock_headset = 0 - usb_accessory = 0 - usb_device = 0 - telephony_tx = 0 - line = 0 - - conf: WiredHeadphone - AvailableOutputDevices Includes WiredHeadphone - ANY - # - # Sonification falls through media strategy if not in call (widely speaking) - # - ALL - TelephonyMode IsNot InCall - TelephonyMode IsNot InCommunication - ForceUseForMedia IsNot ForceSpeaker - # - # Sonification follows Phone strategy if in call (widely speaking) - # - ALL - ANY - TelephonyMode Is InCall - TelephonyMode Is InCommunication - ForceUseForCommunication IsNot ForceSpeaker - - component: /Policy/policy/strategies/sonification/selected_output_devices/mask - earpiece = 0 - wired_headset = 0 - wired_headphone = 1 - bluetooth_sco = 0 - bluetooth_sco_headset = 0 - bluetooth_sco_carkit = 0 - bluetooth_a2dp = 0 - bluetooth_a2dp_headphones = 0 - bluetooth_a2dp_speaker = 0 - angl_dock_headset = 0 - dgtl_dock_headset = 0 - usb_accessory = 0 - usb_device = 0 - telephony_tx = 0 - line = 0 - - conf: Line - AvailableOutputDevices Includes Line - ANY - # - # Sonification follows Phone strategy if in call (widely speaking) - # - ALL - ANY - TelephonyMode Is InCall - TelephonyMode Is InCommunication - ForceUseForCommunication Is ForceSpeaker - # - # Sonification falls through media strategy if not in call (widely speaking) - # - ALL - TelephonyMode IsNot InCall - TelephonyMode IsNot InCommunication - ForceUseForMedia IsNot ForceSpeaker - - component: /Policy/policy/strategies/sonification/selected_output_devices/mask - earpiece = 0 - wired_headset = 0 - wired_headphone = 0 - bluetooth_sco = 0 - bluetooth_sco_headset = 0 - bluetooth_sco_carkit = 0 - bluetooth_a2dp = 0 - bluetooth_a2dp_headphones = 0 - bluetooth_a2dp_speaker = 0 - angl_dock_headset = 0 - dgtl_dock_headset = 0 - usb_accessory = 0 - usb_device = 0 - telephony_tx = 0 - line = 1 - - conf: WiredHeadset - AvailableOutputDevices Includes WiredHeadset - ANY - # - # Sonification falls through media strategy if not in call (widely speaking) - # - ALL - TelephonyMode IsNot InCall - TelephonyMode IsNot InCommunication - ForceUseForMedia IsNot ForceSpeaker - ALL - # - # Sonification Follows Phone Strategy if in call (widely speaking) - # - ANY - TelephonyMode Is InCall - TelephonyMode Is InCommunication - ForceUseForCommunication IsNot ForceSpeaker - - component: /Policy/policy/strategies/sonification/selected_output_devices/mask - earpiece = 0 - wired_headset = 1 - wired_headphone = 0 - bluetooth_sco = 0 - bluetooth_sco_headset = 0 - bluetooth_sco_carkit = 0 - bluetooth_a2dp = 0 - bluetooth_a2dp_headphones = 0 - bluetooth_a2dp_speaker = 0 - angl_dock_headset = 0 - dgtl_dock_headset = 0 - usb_accessory = 0 - usb_device = 0 - telephony_tx = 0 - line = 0 - - conf: UsbDevice - AvailableOutputDevices Includes UsbDevice - ANY - # - # Sonification falls through media strategy if not in call (widely speaking) - # - ALL - AvailableOutputDevices Excludes UsbAccessory - TelephonyMode IsNot InCall - TelephonyMode IsNot InCommunication - ForceUseForMedia IsNot ForceSpeaker - ALL - # - # Sonification Follows Phone Strategy if in call (widely speaking) - # - ANY - TelephonyMode Is InCall - TelephonyMode Is InCommunication - ForceUseForCommunication IsNot ForceSpeaker - - component: /Policy/policy/strategies/sonification/selected_output_devices/mask - earpiece = 0 - wired_headset = 0 - wired_headphone = 0 - bluetooth_sco = 0 - bluetooth_sco_headset = 0 - bluetooth_sco_carkit = 0 - bluetooth_a2dp = 0 - bluetooth_a2dp_headphones = 0 - bluetooth_a2dp_speaker = 0 - angl_dock_headset = 0 - dgtl_dock_headset = 0 - usb_accessory = 0 - usb_device = 1 - telephony_tx = 0 - line = 0 - - conf: UsbAccessory - AvailableOutputDevices Includes UsbAccessory - # - # Sonification falls through media strategy if not in call (widely speaking) - # - # Sonification Follows Phone Strategy if in call (widely speaking) - # but USB Accessory not reachable in call. - # - TelephonyMode IsNot InCall - TelephonyMode IsNot InCommunication - ForceUseForMedia IsNot ForceSpeaker - - component: /Policy/policy/strategies/sonification/selected_output_devices/mask - earpiece = 0 - wired_headset = 0 - wired_headphone = 0 - bluetooth_sco = 0 - bluetooth_sco_headset = 0 - bluetooth_sco_carkit = 0 - bluetooth_a2dp = 0 - bluetooth_a2dp_headphones = 0 - bluetooth_a2dp_speaker = 0 - angl_dock_headset = 0 - dgtl_dock_headset = 0 - usb_accessory = 1 - usb_device = 0 - telephony_tx = 0 - line = 0 - - conf: DgtlDockHeadset - AvailableOutputDevices Includes DgtlDockHeadset - # - # Sonification falls through media strategy if not in call - # - # Sonification Follows Phone Strategy if in call (widely speaking) - # but DgtlDockHeadset not reachable in call. - # - TelephonyMode IsNot InCall - TelephonyMode IsNot InCommunication - ForceUseForMedia IsNot ForceSpeaker - - component: /Policy/policy/strategies/sonification/selected_output_devices/mask - earpiece = 0 - wired_headset = 0 - wired_headphone = 0 - bluetooth_sco = 0 - bluetooth_sco_headset = 0 - bluetooth_sco_carkit = 0 - bluetooth_a2dp = 0 - bluetooth_a2dp_headphones = 0 - bluetooth_a2dp_speaker = 0 - angl_dock_headset = 0 - dgtl_dock_headset = 1 - usb_accessory = 0 - usb_device = 0 - telephony_tx = 0 - line = 0 - - conf: AnlgDockHeadset - AvailableOutputDevices Includes AnlgDockHeadset - # - # Sonification falls through media strategy if not in call - # - # Sonification Follows Phone Strategy if in call (widely speaking) - # but AnlgDockHeadset not reachable in call. - # - TelephonyMode IsNot InCall - TelephonyMode IsNot InCommunication - ForceUseForMedia IsNot ForceSpeaker - ForceUseForDock Is ForceAnalogDock - - component: /Policy/policy/strategies/sonification/selected_output_devices/mask - earpiece = 0 - wired_headset = 0 - wired_headphone = 0 - bluetooth_sco = 0 - bluetooth_sco_headset = 0 - bluetooth_sco_carkit = 0 - bluetooth_a2dp = 0 - bluetooth_a2dp_headphones = 0 - bluetooth_a2dp_speaker = 0 - angl_dock_headset = 1 - dgtl_dock_headset = 0 - usb_accessory = 0 - usb_device = 0 - telephony_tx = 0 - line = 0 - - conf: Earpiece - # - # Sonification Follows Phone Strategy if in call - # - ANY - TelephonyMode Is InCall - TelephonyMode Is InCommunication - ForceUseForCommunication IsNot ForceSpeaker - AvailableOutputDevices Includes Earpiece - - component: /Policy/policy/strategies/sonification/selected_output_devices/mask - earpiece = 1 - wired_headset = 0 - wired_headphone = 0 - bluetooth_sco = 0 - bluetooth_sco_headset = 0 - bluetooth_sco_carkit = 0 - bluetooth_a2dp = 0 - bluetooth_a2dp_headphones = 0 - bluetooth_a2dp_speaker = 0 - angl_dock_headset = 0 - dgtl_dock_headset = 0 - usb_accessory = 0 - usb_device = 0 - telephony_tx = 0 - line = 0 - - conf: None - component: /Policy/policy/strategies/sonification/selected_output_devices/mask - earpiece = 0 - wired_headset = 0 - wired_headphone = 0 - bluetooth_sco = 0 - bluetooth_sco_headset = 0 - bluetooth_sco_carkit = 0 - bluetooth_a2dp = 0 - bluetooth_a2dp_headphones = 0 - bluetooth_a2dp_speaker = 0 - angl_dock_headset = 0 - dgtl_dock_headset = 0 - usb_accessory = 0 - usb_device = 0 - telephony_tx = 0 - line = 0 diff --git a/services/audiopolicy/engineconfigurable/parameter-framework/example/Settings/device_for_strategy_sonification_respectful.pfw b/services/audiopolicy/engineconfigurable/parameter-framework/example/Settings/device_for_strategy_sonification_respectful.pfw deleted file mode 100644 index f66674c..0000000 --- a/services/audiopolicy/engineconfigurable/parameter-framework/example/Settings/device_for_strategy_sonification_respectful.pfw +++ /dev/null @@ -1,545 +0,0 @@ -domainGroup: DeviceForStrategy - - domainGroup: SonificationRespectful - # - # Sonificiation Respectful follows: - # - If in call: Strategy sonification (that follows phone strategy in call also...) - # - If not in call AND a music stream is active remotely: Strategy sonification (that - # follows enforced audible, which follows media) - # - if not in call and no music stream active remotely and music stream active): strategy - # media - # - Otherwise follows sonification by replacing speaker with speaker safe if speaker is - # selected. - # - # Case of stream active handled programmatically - - domain: UnreachableDevices - conf: Calibration - component: /Policy/policy/strategies/sonification_respectful/selected_output_devices/mask - remote_submix = 0 - hdmi_arc = 0 - aux_line = 0 - spdif = 0 - fm = 0 - telephony_tx = 0 - - domain: Speakers - - conf: SpeakerSafe - AvailableOutputDevices Includes Speaker - AvailableOutputDevices Includes SpeakerSafe - # - # Follows sonification strategy if not in call and replace speaker by speaker safe - # if and only if speaker only selected - # - TelephonyMode IsNot InCall - TelephonyMode IsNot InCommunication - - component: /Policy/policy/strategies/sonification_respectful/selected_output_devices/mask - speaker_safe = 1 - speaker = 0 - - conf: Speaker - AvailableOutputDevices Includes Speaker - ANY - # - # Follows sonification strategy if not in call - # - ALL - TelephonyMode IsNot InCall - TelephonyMode IsNot InCommunication - ALL - # - # Follows Phone Strategy if call - # - ForceUseForCommunication Is ForceSpeaker - ANY - TelephonyMode Is InCall - TelephonyMode Is InCommunication - AvailableOutputDevices Excludes Line - - component: /Policy/policy/strategies/sonification_respectful/selected_output_devices/mask - speaker_safe = 0 - speaker = 1 - - conf: None - component: /Policy/policy/strategies/sonification_respectful/selected_output_devices/mask - speaker_safe = 0 - speaker = 0 - - domain: Device2 - conf: BluetoothA2dp - # - # SonificationRespectful Follows Sonification that falls through Media strategy if not in call - # SonificationRespectful follows media if music stream is active - # - TelephonyMode IsNot InCall - TelephonyMode IsNot InCommunication - ForceUseForMedia Is ForceNoBtA2dp - AvailableOutputDevices Includes BluetoothA2dp - - component: /Policy/policy/strategies/sonification_respectful/selected_output_devices/mask - earpiece = 0 - bluetooth_sco = 0 - bluetooth_sco_headset = 0 - bluetooth_sco_carkit = 0 - bluetooth_a2dp_headphones = 0 - bluetooth_a2dp_speaker = 0 - bluetooth_a2dp = 1 - wired_headset = 0 - wired_headphone = 0 - line = 0 - angl_dock_headset = 0 - dgtl_dock_headset = 0 - usb_accessory = 0 - usb_device = 0 - hdmi = 0 - - conf: BluetoothA2dpHeadphones - # - # SonificationRespectful Follows Sonification that falls through Media strategy if not in call - # SonificationRespectful follows media if music stream is active - # - TelephonyMode IsNot InCall - TelephonyMode IsNot InCommunication - ForceUseForMedia Is ForceNoBtA2dp - AvailableOutputDevices Includes BluetoothA2dpHeadphones - - component: /Policy/policy/strategies/sonification_respectful/selected_output_devices/mask - earpiece = 0 - bluetooth_sco = 0 - bluetooth_sco_headset = 0 - bluetooth_sco_carkit = 0 - bluetooth_a2dp_headphones = 1 - bluetooth_a2dp_speaker = 0 - bluetooth_a2dp = 0 - wired_headset = 0 - wired_headphone = 0 - line = 0 - angl_dock_headset = 0 - dgtl_dock_headset = 0 - usb_accessory = 0 - usb_device = 0 - hdmi = 0 - - conf: BluetoothA2dpSpeaker - # - # SonificationRespectful Follows Sonification that falls through Media strategy if not in call - # SonificationRespectful follows media if music stream is active - # - TelephonyMode IsNot InCall - TelephonyMode IsNot InCommunication - ForceUseForMedia Is ForceNoBtA2dp - AvailableOutputDevices Includes BluetoothA2dpSpeaker - - component: /Policy/policy/strategies/sonification_respectful/selected_output_devices/mask - earpiece = 0 - bluetooth_sco = 0 - bluetooth_sco_headset = 0 - bluetooth_sco_carkit = 0 - bluetooth_a2dp_headphones = 0 - bluetooth_a2dp_speaker = 1 - bluetooth_a2dp = 0 - wired_headset = 0 - wired_headphone = 0 - line = 0 - angl_dock_headset = 0 - dgtl_dock_headset = 0 - usb_accessory = 0 - usb_device = 0 - hdmi = 0 - - conf: BluetoothScoCarkit - # - # SonificationRespectful Follows Phone strategy if in call - # - ANY - TelephonyMode Is InCall - TelephonyMode Is InCommunication - ForceUseForCommunication Is ForceBtSco - AvailableOutputDevices Includes BluetoothScoCarkit - - component: /Policy/policy/strategies/sonification_respectful/selected_output_devices/mask - earpiece = 0 - bluetooth_sco = 0 - bluetooth_sco_headset = 0 - bluetooth_sco_carkit = 1 - bluetooth_a2dp_headphones = 0 - bluetooth_a2dp_speaker = 0 - bluetooth_a2dp = 0 - wired_headset = 0 - wired_headphone = 0 - line = 0 - angl_dock_headset = 0 - dgtl_dock_headset = 0 - usb_accessory = 0 - usb_device = 0 - hdmi = 0 - - conf: BluetoothScoHeadset - # - # SonificationRespectful Follows Phone strategy if in call - # - ANY - TelephonyMode Is InCall - TelephonyMode Is InCommunication - ForceUseForCommunication Is ForceBtSco - AvailableOutputDevices Includes BluetoothScoHeadset - - component: /Policy/policy/strategies/sonification_respectful/selected_output_devices/mask - earpiece = 0 - bluetooth_sco = 0 - bluetooth_sco_headset = 1 - bluetooth_sco_carkit = 0 - bluetooth_a2dp_headphones = 0 - bluetooth_a2dp_speaker = 0 - bluetooth_a2dp = 0 - wired_headset = 0 - wired_headphone = 0 - line = 0 - angl_dock_headset = 0 - dgtl_dock_headset = 0 - usb_accessory = 0 - usb_device = 0 - hdmi = 0 - - conf: BluetoothSco - # - # SonificationRespectful Follows Phone strategy if in call - # - ANY - TelephonyMode Is InCall - TelephonyMode Is InCommunication - ForceUseForCommunication Is ForceBtSco - AvailableOutputDevices Includes BluetoothSco - - component: /Policy/policy/strategies/sonification_respectful/selected_output_devices/mask - earpiece = 0 - bluetooth_sco = 1 - bluetooth_sco_headset = 0 - bluetooth_sco_carkit = 0 - bluetooth_a2dp_headphones = 0 - bluetooth_a2dp_speaker = 0 - bluetooth_a2dp = 0 - wired_headset = 0 - wired_headphone = 0 - line = 0 - angl_dock_headset = 0 - dgtl_dock_headset = 0 - usb_accessory = 0 - usb_device = 0 - hdmi = 0 - - conf: WiredHeadphone - ANY - ALL - # - # SonificationRespectful Follows Phone strategy if in call - # - ANY - TelephonyMode Is InCall - TelephonyMode Is InCommunication - ForceUseForCommunication IsNot ForceSpeaker - ALL - # - # SonificationRespectful Follows Sonification that falls through Media strategy if not in call - # SonificationRespectful follows media if music stream is active - # - TelephonyMode IsNot InCall - TelephonyMode IsNot InCommunication - ForceUseForMedia IsNot ForceSpeaker - AvailableOutputDevices Includes WiredHeadphone - - component: /Policy/policy/strategies/sonification_respectful/selected_output_devices/mask - earpiece = 0 - bluetooth_sco = 0 - bluetooth_sco_headset = 0 - bluetooth_sco_carkit = 0 - bluetooth_a2dp_headphones = 0 - bluetooth_a2dp_speaker = 0 - bluetooth_a2dp = 0 - wired_headset = 0 - wired_headphone = 1 - line = 0 - angl_dock_headset = 0 - dgtl_dock_headset = 0 - usb_accessory = 0 - usb_device = 0 - hdmi = 0 - - conf: LineWhenFollowMediaStrategy - # - # SonificationRespectful Follows Sonification that falls through Media strategy if not in call - # SonificationRespectful follows media if music stream is active - # - TelephonyMode IsNot InCall - TelephonyMode IsNot InCommunication - AvailableOutputDevices Includes WiredHeadphone - ForceUseForMedia IsNot ForceSpeaker - - component: /Policy/policy/strategies/sonification_respectful/selected_output_devices/mask - earpiece = 0 - bluetooth_sco = 0 - bluetooth_sco_headset = 0 - bluetooth_sco_carkit = 0 - bluetooth_a2dp_headphones = 0 - bluetooth_a2dp_speaker = 0 - bluetooth_a2dp = 0 - wired_headset = 0 - wired_headphone = 0 - line = 1 - angl_dock_headset = 0 - dgtl_dock_headset = 0 - usb_accessory = 0 - usb_device = 0 - hdmi = 0 - - conf: WiredHeadset - ANY - ALL - # - # SonificationRespectful Follows Phone strategy if in call - # - ANY - TelephonyMode Is InCall - TelephonyMode Is InCommunication - ForceUseForCommunication IsNot ForceSpeaker - ALL - # - # SonificationRespectful Follows Sonification that falls through Media strategy if not in call - # SonificationRespectful follows media if music stream is active - # - TelephonyMode IsNot InCall - TelephonyMode IsNot InCommunication - ForceUseForMedia IsNot ForceSpeaker - AvailableOutputDevices Includes WiredHeadset - - component: /Policy/policy/strategies/sonification_respectful/selected_output_devices/mask - earpiece = 0 - bluetooth_sco = 0 - bluetooth_sco_headset = 0 - bluetooth_sco_carkit = 0 - bluetooth_a2dp_headphones = 0 - bluetooth_a2dp_speaker = 0 - bluetooth_a2dp = 0 - wired_headset = 1 - wired_headphone = 0 - line = 0 - angl_dock_headset = 0 - dgtl_dock_headset = 0 - usb_accessory = 0 - usb_device = 0 - hdmi = 0 - - conf: UsbDevice - ANY - ALL - # - # SonificationRespectful Follows Phone strategy if in call - # - ANY - TelephonyMode Is InCall - TelephonyMode Is InCommunication - ForceUseForCommunication IsNot ForceSpeaker - ALL - # - # SonificationRespectful Follows Sonification that falls through Media strategy if not in call - # SonificationRespectful follows media if music stream is active - # - TelephonyMode IsNot InCall - TelephonyMode IsNot InCommunication - ForceUseForMedia IsNot ForceSpeaker - AvailableOutputDevices Excludes UsbAccessory - AvailableOutputDevices Includes UsbDevice - - component: /Policy/policy/strategies/sonification_respectful/selected_output_devices/mask - earpiece = 0 - bluetooth_sco = 0 - bluetooth_sco_headset = 0 - bluetooth_sco_carkit = 0 - bluetooth_a2dp_headphones = 0 - bluetooth_a2dp_speaker = 0 - bluetooth_a2dp = 0 - wired_headset = 0 - wired_headphone = 0 - line = 0 - angl_dock_headset = 0 - dgtl_dock_headset = 0 - usb_accessory = 0 - usb_device = 1 - hdmi = 0 - - conf: UsbAccessory - # - # SonificationRespectful Follows Phone strategy if in call (widely speaking) - # but UsbAccessory not reachable in call. - # - # SonificationRespectful Follows Sonification that falls through Media strategy if not in call - # SonificationRespectful follows media if music stream is active - # - TelephonyMode IsNot InCall - TelephonyMode IsNot InCommunication - ForceUseForMedia IsNot ForceSpeaker - AvailableOutputDevices Includes UsbAccessory - - component: /Policy/policy/strategies/sonification_respectful/selected_output_devices/mask - earpiece = 0 - bluetooth_sco = 0 - bluetooth_sco_headset = 0 - bluetooth_sco_carkit = 0 - bluetooth_a2dp_headphones = 0 - bluetooth_a2dp_speaker = 0 - bluetooth_a2dp = 0 - wired_headset = 0 - wired_headphone = 0 - line = 0 - angl_dock_headset = 0 - dgtl_dock_headset = 0 - usb_accessory = 1 - usb_device = 0 - hdmi = 0 - - conf: DgtlDockHeadset - # - # SonificationRespectful Follows Phone strategy if in call (widely speaking) - # but DgtlDockHeadset not reachable in call. - # - # SonificationRespectful Follows Sonification that falls through Media strategy if not in call - # SonificationRespectful follows media if music stream is active - # - TelephonyMode IsNot InCall - TelephonyMode IsNot InCommunication - ForceUseForMedia IsNot ForceSpeaker - AvailableOutputDevices Includes DgtlDockHeadset - - component: /Policy/policy/strategies/sonification_respectful/selected_output_devices/mask - earpiece = 0 - bluetooth_sco = 0 - bluetooth_sco_headset = 0 - bluetooth_sco_carkit = 0 - bluetooth_a2dp_headphones = 0 - bluetooth_a2dp_speaker = 0 - bluetooth_a2dp = 0 - wired_headset = 0 - wired_headphone = 0 - line = 0 - angl_dock_headset = 0 - dgtl_dock_headset = 1 - usb_accessory = 0 - usb_device = 0 - hdmi = 0 - - conf: AuxDigital - # - # SonificationRespectful Follows Phone strategy if in call (widely speaking) - # but HDMI not reachable in call. - # - # SonificationRespectful Follows Sonification that falls through Media strategy if not in call - # SonificationRespectful follows media if music stream is active - # - TelephonyMode IsNot InCall - TelephonyMode IsNot InCommunication - ForceUseForMedia IsNot ForceSpeaker - AvailableOutputDevices Includes Hdmi - - component: /Policy/policy/strategies/sonification_respectful/selected_output_devices/mask - earpiece = 0 - bluetooth_sco = 0 - bluetooth_sco_headset = 0 - bluetooth_sco_carkit = 0 - bluetooth_a2dp_headphones = 0 - bluetooth_a2dp_speaker = 0 - bluetooth_a2dp = 0 - wired_headset = 0 - wired_headphone = 0 - line = 0 - angl_dock_headset = 0 - dgtl_dock_headset = 0 - usb_accessory = 0 - usb_device = 0 - hdmi = 1 - - conf: AnlgDockHeadset - # - # SonificationRespectful Follows Phone strategy if in call (widely speaking) - # but AnlgDockHeadset not reachable in call. - # - # SonificationRespectful Follows Sonification that falls through Media strategy if not in call - # SonificationRespectful follows media if music stream is active - # - TelephonyMode IsNot InCall - TelephonyMode IsNot InCommunication - ForceUseForMedia IsNot ForceSpeaker - ForceUseForDock Is ForceAnalogDock - AvailableOutputDevices Includes AnlgDockHeadset - - component: /Policy/policy/strategies/sonification_respectful/selected_output_devices/mask - earpiece = 0 - bluetooth_sco = 0 - bluetooth_sco_headset = 0 - bluetooth_sco_carkit = 0 - bluetooth_a2dp_headphones = 0 - bluetooth_a2dp_speaker = 0 - bluetooth_a2dp = 0 - wired_headset = 0 - wired_headphone = 0 - line = 0 - angl_dock_headset = 1 - dgtl_dock_headset = 0 - usb_accessory = 0 - usb_device = 0 - hdmi = 0 - - conf: Earpiece - # - # SonificationRespectful Follows Phone strategy if in call - # - ANY - TelephonyMode Is InCall - TelephonyMode Is InCommunication - ForceUseForCommunication IsNot ForceSpeaker - AvailableOutputDevices Includes Earpiece - - component: /Policy/policy/strategies/sonification_respectful/selected_output_devices/mask - earpiece = 1 - bluetooth_sco = 0 - bluetooth_sco_headset = 0 - bluetooth_sco_carkit = 0 - bluetooth_a2dp_headphones = 0 - bluetooth_a2dp_speaker = 0 - bluetooth_a2dp = 0 - wired_headset = 0 - wired_headphone = 0 - line = 0 - angl_dock_headset = 0 - dgtl_dock_headset = 0 - usb_accessory = 0 - usb_device = 0 - hdmi = 0 - - conf: Line - # - # SonificationRespectful Follows Phone strategy if in call - # - ANY - TelephonyMode Is InCall - TelephonyMode Is InCommunication - ForceUseForCommunication Is ForceSpeaker - AvailableOutputDevices Includes Line - - component: /Policy/policy/strategies/sonification_respectful/selected_output_devices/mask - earpiece = 0 - bluetooth_sco = 0 - bluetooth_sco_headset = 0 - bluetooth_sco_carkit = 0 - bluetooth_a2dp_headphones = 0 - bluetooth_a2dp_speaker = 0 - bluetooth_a2dp = 0 - wired_headset = 0 - wired_headphone = 0 - line = 1 - angl_dock_headset = 0 - dgtl_dock_headset = 0 - usb_accessory = 0 - usb_device = 0 - hdmi = 0 diff --git a/services/audiopolicy/engineconfigurable/parameter-framework/example/Settings/device_for_strategy_transmitted_through_speaker.pfw b/services/audiopolicy/engineconfigurable/parameter-framework/example/Settings/device_for_strategy_transmitted_through_speaker.pfw deleted file mode 100644 index e5ae9d9..0000000 --- a/services/audiopolicy/engineconfigurable/parameter-framework/example/Settings/device_for_strategy_transmitted_through_speaker.pfw +++ /dev/null @@ -1,40 +0,0 @@ -supDomain: DeviceForStrategy - - supDomain: TransmittedThroughSpeaker - domain: UnreacheableDevices - conf: Calibration - component: /Policy/policy/strategies/transmitted_through_speaker/selected_output_devices/mask - remote_submix = 0 - hdmi_arc = 0 - spdif = 0 - aux_line = 0 - fm = 0 - speaker_safe = 0 - earpiece = 0 - wired_headset = 1 - wired_headphone = 0 - bluetooth_sco = 0 - bluetooth_sco_headset = 0 - bluetooth_sco_carkit = 0 - bluetooth_a2dp = 0 - bluetooth_a2dp_headphones = 0 - bluetooth_a2dp_speaker = 0 - hdmi = 0 - angl_dock_headset = 0 - dgtl_dock_headset = 0 - usb_accessory = 0 - usb_device = 0 - telephony_tx = 0 - line = 0 - - domain: Speaker - conf: Selected - AvailableOutputDevices Includes Speaker - - component: /Policy/policy/strategies/transmitted_through_speaker/selected_output_devices/mask - speaker = 1 - - conf: NotSelected - component: /Policy/policy/strategies/transmitted_through_speaker/selected_output_devices/mask - speaker = 0 - diff --git a/services/audiopolicy/engineconfigurable/parameter-framework/example/Settings/strategy_for_stream.pfw b/services/audiopolicy/engineconfigurable/parameter-framework/example/Settings/strategy_for_stream.pfw deleted file mode 100755 index 3940b9d..0000000 --- a/services/audiopolicy/engineconfigurable/parameter-framework/example/Settings/strategy_for_stream.pfw +++ /dev/null @@ -1,20 +0,0 @@ -domain: StrategyForStream - - conf: Calibration - /Policy/policy/streams/voice_call/applicable_strategy/strategy = phone - # - # NOTE: SYSTEM stream uses MEDIA strategy because muting music and switching outputs - # while key clicks are played produces a poor result - # - /Policy/policy/streams/system/applicable_strategy/strategy = media - /Policy/policy/streams/ring/applicable_strategy/strategy = sonification - /Policy/policy/streams/music/applicable_strategy/strategy = media - /Policy/policy/streams/alarm/applicable_strategy/strategy = sonification - /Policy/policy/streams/notification/applicable_strategy/strategy = sonification_respectful - /Policy/policy/streams/bluetooth_sco/applicable_strategy/strategy = phone - /Policy/policy/streams/enforced_audible/applicable_strategy/strategy = enforced_audible - /Policy/policy/streams/dtmf/applicable_strategy/strategy = dtmf - /Policy/policy/streams/tts/applicable_strategy/strategy = transmitted_through_speaker - /Policy/policy/streams/accessibility/applicable_strategy/strategy = accessibility - /Policy/policy/streams/rerouting/applicable_strategy/strategy = rerouting - diff --git a/services/audiopolicy/engineconfigurable/parameter-framework/example/Settings/strategy_for_usage.pfw b/services/audiopolicy/engineconfigurable/parameter-framework/example/Settings/strategy_for_usage.pfw deleted file mode 100644 index 3f5da13..0000000 --- a/services/audiopolicy/engineconfigurable/parameter-framework/example/Settings/strategy_for_usage.pfw +++ /dev/null @@ -1,39 +0,0 @@ -supDomain: SelectedStrategyForUsages - - domain: Calibration - conf: Calibration - /Policy/policy/usages/unknown/applicable_strategy/strategy = media - /Policy/policy/usages/media/applicable_strategy/strategy = media - /Policy/policy/usages/voice_communication/applicable_strategy/strategy = phone - /Policy/policy/usages/voice_communication_signalling/applicable_strategy/strategy = dtmf - /Policy/policy/usages/alarm/applicable_strategy/strategy = sonification - /Policy/policy/usages/notification/applicable_strategy/strategy = sonification_respectful - /Policy/policy/usages/notification_telephony_ringtone/applicable_strategy/strategy = sonification - /Policy/policy/usages/notification_communication_request/applicable_strategy/strategy = sonification_respectful - /Policy/policy/usages/notification_communication_instant/applicable_strategy/strategy = sonification_respectful - /Policy/policy/usages/notification_communication_delayed/applicable_strategy/strategy = sonification_respectful - /Policy/policy/usages/notification_event/applicable_strategy/strategy = sonification_respectful - /Policy/policy/usages/assistance_navigation_guidance/applicable_strategy/strategy = media - /Policy/policy/usages/assistance_sonification/applicable_strategy/strategy = media - /Policy/policy/usages/game/applicable_strategy/strategy = media - - domain: AssistanceAccessibility - conf: Sonification - # - # In case of Ring or Alarm stream type active, switching to sonification - # @todo: handle this dynamic case. As a WA, using Ringtone mode... - # - TelephonyMode Is RingTone - - /Policy/policy/usages/assistance_accessibility/applicable_strategy/strategy = sonification - - conf: Phone - ANY - TelephonyMode Is InCall - TelephonyMode Is InCommunication - - /Policy/policy/usages/assistance_accessibility/applicable_strategy/strategy = phone - - conf: Accessibility - /Policy/policy/usages/assistance_accessibility/applicable_strategy/strategy = accessibility - diff --git a/services/audiopolicy/engineconfigurable/parameter-framework/example/Settings/volumes.pfw b/services/audiopolicy/engineconfigurable/parameter-framework/example/Settings/volumes.pfw deleted file mode 100644 index 1049564..0000000 --- a/services/audiopolicy/engineconfigurable/parameter-framework/example/Settings/volumes.pfw +++ /dev/null @@ -1,545 +0,0 @@ -supDomain: VolumeProfilesForStream - domain: Calibration - conf: Calibration - component: /Policy/policy/streams - component: voice_call/volume_profiles - component: headset_device_category/curve_points - 0/index = 0 - 0/db_attenuation = -24.0 - 1/index = 33 - 1/db_attenuation = -18.0 - 2/index = 66 - 2/db_attenuation = -12.0 - 3/index = 100 - 3/db_attenuation = -6.0 - component: speaker_device_category/curve_points - 0/index = 0 - 0/db_attenuation = -24.0 - 1/index = 33 - 1/db_attenuation = -16.0 - 2/index = 66 - 2/db_attenuation = -8.0 - 3/index = 100 - 3/db_attenuation = 0.0 - component: earpiece_device_category/curve_points - 0/index = 0 - 0/db_attenuation = -24.0 - 1/index = 33 - 1/db_attenuation = -18.0 - 2/index = 66 - 2/db_attenuation = -12.0 - 3/index = 100 - 3/db_attenuation = -6.0 - component: extmedia_device_category/curve_points - 0/index = 1 - 0/db_attenuation = -58.0 - 1/index = 33 - 1/db_attenuation = -40.0 - 2/index = 66 - 2/db_attenuation = -17.0 - 3/index = 100 - 3/db_attenuation = 0.0 - - component: system/volume_profiles - component: headset_device_category/curve_points - 0/index = 1 - 0/db_attenuation = -30.0 - 1/index = 33 - 1/db_attenuation = -26.0 - 2/index = 66 - 2/db_attenuation = -22.0 - 3/index = 100 - 3/db_attenuation = -18.0 - component: speaker_device_category/curve_points - 0/index = 1 - 0/db_attenuation = -24.0 - 1/index = 33 - 1/db_attenuation = -18.0 - 2/index = 66 - 2/db_attenuation = -12.0 - 3/index = 100 - 3/db_attenuation = -6.0 - component: earpiece_device_category/curve_points - 0/index = 1 - 0/db_attenuation = -24.0 - 1/index = 33 - 1/db_attenuation = -18.0 - 2/index = 66 - 2/db_attenuation = -12.0 - 3/index = 100 - 3/db_attenuation = -6.0 - component: extmedia_device_category/curve_points - 0/index = 1 - 0/db_attenuation = -58.0 - 1/index = 33 - 1/db_attenuation = -40.0 - 2/index = 66 - 2/db_attenuation = -21.0 - 3/index = 100 - 3/db_attenuation = -10.0 - - component: ring/volume_profiles - component: headset_device_category/curve_points - 0/index = 1 - 0/db_attenuation = -49.5 - 1/index = 33 - 1/db_attenuation = -33.5 - 2/index = 66 - 2/db_attenuation = -17.0 - 3/index = 100 - 3/db_attenuation = 0.0 - component: speaker_device_category/curve_points - 0/index = 1 - 0/db_attenuation = -35.7 - 1/index = 33 - 1/db_attenuation = -26.1 - 2/index = 66 - 2/db_attenuation = -13.2 - 3/index = 100 - 3/db_attenuation = 0.0 - component: earpiece_device_category/curve_points - 0/index = 1 - 0/db_attenuation = -49.5 - 1/index = 33 - 1/db_attenuation = -33.5 - 2/index = 66 - 2/db_attenuation = -17.0 - 3/index = 100 - 3/db_attenuation = 0.0 - component: extmedia_device_category/curve_points - 0/index = 1 - 0/db_attenuation = -58.0 - 1/index = 33 - 1/db_attenuation = -40.0 - 2/index = 66 - 2/db_attenuation = -27.0 - 3/index = 100 - 3/db_attenuation = -10.0 - - component: music/volume_profiles - component: headset_device_category/curve_points - 0/index = 1 - 0/db_attenuation = -58.0 - 1/index = 33 - 1/db_attenuation = -40.0 - 2/index = 66 - 2/db_attenuation = -17.0 - 3/index = 100 - 3/db_attenuation = 0.0 - component: speaker_device_category/curve_points - 0/index = 1 - 0/db_attenuation = -56.0 - 1/index = 33 - 1/db_attenuation = -34.0 - 2/index = 66 - 2/db_attenuation = -11.0 - 3/index = 100 - 3/db_attenuation = 0.0 - component: earpiece_device_category/curve_points - 0/index = 1 - 0/db_attenuation = -58.0 - 1/index = 33 - 1/db_attenuation = -40.0 - 2/index = 66 - 2/db_attenuation = -17.0 - 3/index = 100 - 3/db_attenuation = 0.0 - component: extmedia_device_category/curve_points - 0/index = 1 - 0/db_attenuation = -58.0 - 1/index = 33 - 1/db_attenuation = -40.0 - 2/index = 66 - 2/db_attenuation = -17.0 - 3/index = 100 - 3/db_attenuation = 0.0 - - component: alarm/volume_profiles - component: headset_device_category/curve_points - 0/index = 1 - 0/db_attenuation = -49.5 - 1/index = 33 - 1/db_attenuation = -33.5 - 2/index = 66 - 2/db_attenuation = -17.0 - 3/index = 100 - 3/db_attenuation = 0.0 - component: speaker_device_category/curve_points - 0/index = 1 - 0/db_attenuation = -35.7 - 1/index = 33 - 1/db_attenuation = -26.1 - 2/index = 66 - 2/db_attenuation = -13.2 - 3/index = 100 - 3/db_attenuation = 0.0 - component: earpiece_device_category/curve_points - 0/index = 1 - 0/db_attenuation = -49.5 - 1/index = 33 - 1/db_attenuation = -33.5 - 2/index = 66 - 2/db_attenuation = -17.0 - 3/index = 100 - 3/db_attenuation = 0.0 - component: extmedia_device_category/curve_points - 0/index = 1 - 0/db_attenuation = -58.0 - 1/index = 33 - 1/db_attenuation = -40.0 - 2/index = 66 - 2/db_attenuation = -27.0 - 3/index = 100 - 3/db_attenuation = -10.0 - - component: notification/volume_profiles - component: headset_device_category/curve_points - 0/index = 1 - 0/db_attenuation = -49.5 - 1/index = 33 - 1/db_attenuation = -33.5 - 2/index = 66 - 2/db_attenuation = -17.0 - 3/index = 100 - 3/db_attenuation = 0.0 - component: speaker_device_category/curve_points - 0/index = 1 - 0/db_attenuation = -35.7 - 1/index = 33 - 1/db_attenuation = -26.1 - 2/index = 66 - 2/db_attenuation = -13.2 - 3/index = 100 - 3/db_attenuation = 0.0 - component: earpiece_device_category/curve_points - 0/index = 1 - 0/db_attenuation = -49.5 - 1/index = 33 - 1/db_attenuation = -33.5 - 2/index = 66 - 2/db_attenuation = -17.0 - 3/index = 100 - 3/db_attenuation = 0.0 - component: extmedia_device_category/curve_points - 0/index = 1 - 0/db_attenuation = -58.0 - 1/index = 33 - 1/db_attenuation = -40.0 - 2/index = 66 - 2/db_attenuation = -27.0 - 3/index = 100 - 3/db_attenuation = -10.0 - - component: bluetooth_sco/volume_profiles - component: headset_device_category/curve_points - 0/index = 0 - 0/db_attenuation = -24.0 - 1/index = 33 - 1/db_attenuation = -18.0 - 2/index = 66 - 2/db_attenuation = -12.0 - 3/index = 100 - 3/db_attenuation = -6.0 - component: speaker_device_category/curve_points - 0/index = 0 - 0/db_attenuation = -24.0 - 1/index = 33 - 1/db_attenuation = -16.0 - 2/index = 66 - 2/db_attenuation = -8.0 - 3/index = 100 - 3/db_attenuation = 0.0 - component: earpiece_device_category/curve_points - 0/index = 0 - 0/db_attenuation = -24.0 - 1/index = 33 - 1/db_attenuation = -18.0 - 2/index = 66 - 2/db_attenuation = -12.0 - 3/index = 100 - 3/db_attenuation = -6.0 - component: extmedia_device_category/curve_points - 0/index = 1 - 0/db_attenuation = -58.0 - 1/index = 33 - 1/db_attenuation = -40.0 - 2/index = 66 - 2/db_attenuation = -17.0 - 3/index = 100 - 3/db_attenuation = 0.0 - - component: enforced_audible/volume_profiles - component: headset_device_category/curve_points - 0/index = 1 - 0/db_attenuation = -30.0 - 1/index = 33 - 1/db_attenuation = -26.0 - 2/index = 66 - 2/db_attenuation = -22.0 - 3/index = 100 - 3/db_attenuation = -18.0 - component: speaker_device_category/curve_points - 0/index = 1 - 0/db_attenuation = -24.0 - 1/index = 33 - 1/db_attenuation = -18.0 - 2/index = 66 - 2/db_attenuation = -12.0 - 3/index = 100 - 3/db_attenuation = -6.0 - component: earpiece_device_category/curve_points - 0/index = 1 - 0/db_attenuation = -24.0 - 1/index = 33 - 1/db_attenuation = -18.0 - 2/index = 66 - 2/db_attenuation = -12.0 - 3/index = 100 - 3/db_attenuation = -6.0 - component: extmedia_device_category/curve_points - 0/index = 1 - 0/db_attenuation = -58.0 - 1/index = 33 - 1/db_attenuation = -40.0 - 2/index = 66 - 2/db_attenuation = -27.0 - 3/index = 100 - 3/db_attenuation = -10.0 - - component: tts/volume_profiles - component: headset_device_category/curve_points - 0/index = 0 - 0/db_attenuation = -96.0 - 1/index = 1 - 1/db_attenuation = -96.0 - 2/index = 2 - 2/db_attenuation = -96.0 - 3/index = 100 - 3/db_attenuation = -96.0 - component: speaker_device_category/curve_points - 0/index = 0 - 0/db_attenuation = -96.0 - 1/index = 33 - 1/db_attenuation = -68.0 - 2/index = 66 - 2/db_attenuation = -34.0 - 3/index = 100 - 3/db_attenuation = 0.0 - component: earpiece_device_category/curve_points - 0/index = 0 - 0/db_attenuation = -96.0 - 1/index = 1 - 1/db_attenuation = -96.0 - 2/index = 2 - 2/db_attenuation = -96.0 - 3/index = 100 - 3/db_attenuation = -96.0 - component: extmedia_device_category/curve_points - 0/index = 0 - 0/db_attenuation = -96.0 - 1/index = 1 - 1/db_attenuation = -96.0 - 2/index = 2 - 2/db_attenuation = -96.0 - 3/index = 100 - 3/db_attenuation = -96.0 - - component: accessibility/volume_profiles - component: headset_device_category/curve_points - 0/index = 1 - 0/db_attenuation = -58.0 - 1/index = 33 - 1/db_attenuation = -40.0 - 2/index = 66 - 2/db_attenuation = -17.0 - 3/index = 100 - 3/db_attenuation = 0.0 - component: speaker_device_category/curve_points - 0/index = 1 - 0/db_attenuation = -56.0 - 1/index = 33 - 1/db_attenuation = -34.0 - 2/index = 66 - 2/db_attenuation = -11.0 - 3/index = 100 - 3/db_attenuation = 0.0 - component: earpiece_device_category/curve_points - 0/index = 1 - 0/db_attenuation = -58.0 - 1/index = 33 - 1/db_attenuation = -40.0 - 2/index = 66 - 2/db_attenuation = -17.0 - 3/index = 100 - 3/db_attenuation = 0.0 - component: extmedia_device_category/curve_points - 0/index = 1 - 0/db_attenuation = -58.0 - 1/index = 33 - 1/db_attenuation = -40.0 - 2/index = 66 - 2/db_attenuation = -17.0 - 3/index = 100 - 3/db_attenuation = 0.0 - - component: rerouting/volume_profiles - component: headset_device_category/curve_points - 0/index = 0 - 0/db_attenuation = 0.0 - 1/index = 1 - 1/db_attenuation = 0.0 - 2/index = 2 - 2/db_attenuation = 0.0 - 3/index = 100 - 3/db_attenuation = 0.0 - component: speaker_device_category/curve_points - 0/index = 0 - 0/db_attenuation = 0.0 - 1/index = 1 - 1/db_attenuation = 0.0 - 2/index = 2 - 2/db_attenuation = 0.0 - 3/index = 100 - 3/db_attenuation = 0.0 - component: earpiece_device_category/curve_points - 0/index = 0 - 0/db_attenuation = 0.0 - 1/index = 1 - 1/db_attenuation = 0.0 - 2/index = 2 - 2/db_attenuation = 0.0 - 3/index = 100 - 3/db_attenuation = 0.0 - component: extmedia_device_category/curve_points - 0/index = 0 - 0/db_attenuation = 0.0 - 1/index = 1 - 1/db_attenuation = 0.0 - 2/index = 2 - 2/db_attenuation = 0.0 - 3/index = 100 - 3/db_attenuation = 0.0 - - component: patch/volume_profiles - component: headset_device_category/curve_points - 0/index = 0 - 0/db_attenuation = 0.0 - 1/index = 1 - 1/db_attenuation = 0.0 - 2/index = 2 - 2/db_attenuation = 0.0 - 3/index = 100 - 3/db_attenuation = 0.0 - component: speaker_device_category/curve_points - 0/index = 0 - 0/db_attenuation = 0.0 - 1/index = 1 - 1/db_attenuation = 0.0 - 2/index = 2 - 2/db_attenuation = 0.0 - 3/index = 100 - 3/db_attenuation = 0.0 - component: earpiece_device_category/curve_points - 0/index = 0 - 0/db_attenuation = 0.0 - 1/index = 1 - 1/db_attenuation = 0.0 - 2/index = 2 - 2/db_attenuation = 0.0 - 3/index = 100 - 3/db_attenuation = 0.0 - component: extmedia_device_category/curve_points - 0/index = 0 - 0/db_attenuation = 0.0 - 1/index = 1 - 1/db_attenuation = 0.0 - 2/index = 2 - 2/db_attenuation = 0.0 - 3/index = 100 - 3/db_attenuation = 0.0 - - domain: Dtmf - conf: InCall - ANY - TelephonyMode Is InCall - TelephonyMode Is InCommunication - - component: /Policy/policy/streams - component: dtmf/volume_profiles - component: headset_device_category/curve_points - 0/index = 1 - 0/db_attenuation = -30.0 - 1/index = 33 - 1/db_attenuation = -26.0 - 2/index = 66 - 2/db_attenuation = -22.0 - 3/index = 100 - 3/db_attenuation = -18.0 - component: speaker_device_category/curve_points - 0/index = 1 - 0/db_attenuation = -24.0 - 1/index = 33 - 1/db_attenuation = -18.0 - 2/index = 66 - 2/db_attenuation = -12.0 - 3/index = 100 - 3/db_attenuation = -6.0 - component: earpiece_device_category/curve_points - 0/index = 1 - 0/db_attenuation = -24.0 - 1/index = 33 - 1/db_attenuation = -18.0 - 2/index = 66 - 2/db_attenuation = -12.0 - 3/index = 100 - 3/db_attenuation = -6.0 - component: extmedia_device_category/curve_points - 0/index = 1 - 0/db_attenuation = -58.0 - 1/index = 33 - 1/db_attenuation = -40.0 - 2/index = 66 - 2/db_attenuation = -27.0 - 3/index = 100 - 3/db_attenuation = -10.0 - - conf: OutOfCall - component: /Policy/policy/streams - component: dtmf/volume_profiles - component: headset_device_category/curve_points - 0/index = 0 - 0/db_attenuation = -24.0 - 1/index = 33 - 1/db_attenuation = -18.0 - 2/index = 66 - 2/db_attenuation = -12.0 - 3/index = 100 - 3/db_attenuation = -6.0 - component: speaker_device_category/curve_points - 0/index = 0 - 0/db_attenuation = -24.0 - 1/index = 33 - 1/db_attenuation = -16.0 - 2/index = 66 - 2/db_attenuation = -8.0 - 3/index = 100 - 3/db_attenuation = 0.0 - component: earpiece_device_category/curve_points - 0/index = 0 - 0/db_attenuation = -24.0 - 1/index = 33 - 1/db_attenuation = -18.0 - 2/index = 66 - 2/db_attenuation = -12.0 - 3/index = 100 - 3/db_attenuation = -6.0 - component: extmedia_device_category/curve_points - 0/index = 1 - 0/db_attenuation = -58.0 - 1/index = 33 - 1/db_attenuation = -40.0 - 2/index = 66 - 2/db_attenuation = -17.0 - 3/index = 100 - 3/db_attenuation = 0.0 - diff --git a/services/audiopolicy/engineconfigurable/parameter-framework/example/Structure/PolicyClass.xml b/services/audiopolicy/engineconfigurable/parameter-framework/example/Structure/PolicyClass.xml deleted file mode 100755 index 296879f..0000000 --- a/services/audiopolicy/engineconfigurable/parameter-framework/example/Structure/PolicyClass.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - diff --git a/services/audiopolicy/engineconfigurable/parameter-framework/example/Structure/PolicySubsystem-CommonTypes.xml b/services/audiopolicy/engineconfigurable/parameter-framework/example/Structure/PolicySubsystem-CommonTypes.xml deleted file mode 100755 index 821d6ad..0000000 --- a/services/audiopolicy/engineconfigurable/parameter-framework/example/Structure/PolicySubsystem-CommonTypes.xml +++ /dev/null @@ -1,170 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/services/audiopolicy/engineconfigurable/parameter-framework/example/Structure/PolicySubsystem-Volume.xml b/services/audiopolicy/engineconfigurable/parameter-framework/example/Structure/PolicySubsystem-Volume.xml deleted file mode 100755 index cf39cc2..0000000 --- a/services/audiopolicy/engineconfigurable/parameter-framework/example/Structure/PolicySubsystem-Volume.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - - - - - - - - - - - diff --git a/services/audiopolicy/engineconfigurable/parameter-framework/example/Structure/PolicySubsystem.xml b/services/audiopolicy/engineconfigurable/parameter-framework/example/Structure/PolicySubsystem.xml deleted file mode 100755 index b21f6ae..0000000 --- a/services/audiopolicy/engineconfigurable/parameter-framework/example/Structure/PolicySubsystem.xml +++ /dev/null @@ -1,137 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/services/audiopolicy/engineconfigurable/parameter-framework/example/policy_criteria.txt b/services/audiopolicy/engineconfigurable/parameter-framework/example/policy_criteria.txt deleted file mode 100755 index 3b3151c..0000000 --- a/services/audiopolicy/engineconfigurable/parameter-framework/example/policy_criteria.txt +++ /dev/null @@ -1,14 +0,0 @@ -ExclusiveCriterion TelephonyMode : Normal RingTone InCall InCommunication - -InclusiveCriterion AvailableInputDevices : Communication Ambient BuiltinMic BluetoothScoHeadset WiredHeadset Hdmi TelephonyRx BackMic RemoteSubmix AnlgDockHeadset DgtlDockHeadset UsbAccessory UsbDevice FmTuner TvTuner Line Spdif BluetoothA2dp Loopback - -InclusiveCriterion AvailableOutputDevices : Earpiece Speaker WiredSpeaker WiredHeadset WiredHeadphone BluetoothSco BluetoothScoHeadset BluetoothScoCarkit BluetoothA2dp BluetoothA2dpHeadphones BluetoothA2dpSpeaker Hdmi AnlgDockHeadset DgtlDockHeadset UsbAccessory UsbDevice RemoteSubmix TelephonyTx Line HdmiArc Spdif Fm AuxLine SpeakerSafe - -ExclusiveCriterion ForceUseForCommunication : ForceNone ForceSpeaker ForceBtSco -ExclusiveCriterion ForceUseForMedia : ForceNone ForceSpeaker ForceHeadphones ForceBtA2dp ForceWiredAccessory ForceAnalogDock ForceDigitalDock ForceNoBtA2dp ForceSystemEnforced -ExclusiveCriterion ForceUseForRecord : ForceNone ForceBtSco ForceWiredAccessory -ExclusiveCriterion ForceUseForDock : ForceNone ForceWiredAccessory ForceBtCarDock ForceBtDeskDock ForceAnalogDock ForceDigitalDock -ExclusiveCriterion ForceUseForSystem : ForceNone ForceSystemEnforced -ExclusiveCriterion ForceUseForHdmiSystemAudio : ForceNone ForceHdmiSystemEnforced - - diff --git a/services/audiopolicy/engineconfigurable/parameter-framework/plugin/Android.mk b/services/audiopolicy/engineconfigurable/parameter-framework/plugin/Android.mk deleted file mode 100755 index a41e6b5..0000000 --- a/services/audiopolicy/engineconfigurable/parameter-framework/plugin/Android.mk +++ /dev/null @@ -1,40 +0,0 @@ -LOCAL_PATH := $(call my-dir) - -include $(CLEAR_VARS) - -LOCAL_MODULE_TAGS := optional -LOCAL_SRC_FILES := \ - PolicySubsystemBuilder.cpp \ - PolicySubsystem.cpp \ - Strategy.cpp \ - InputSource.cpp \ - VolumeProfile.cpp \ - Stream.cpp \ - Usage.cpp - -LOCAL_CFLAGS += \ - -Wall \ - -Werror \ - -Wextra \ - -LOCAL_C_INCLUDES := \ - $(TOPDIR)frameworks/av/services/audiopolicy/common/include \ - $(TOPDIR)frameworks/av/services/audiopolicy/engineconfigurable/include \ - $(TOPDIR)frameworks/av/services/audiopolicy/engineconfigurable/interface \ - -LOCAL_SHARED_LIBRARIES := \ - libaudiopolicyengineconfigurable \ - libparameter \ - liblog \ - -LOCAL_STATIC_LIBRARIES := \ - libparameter_includes \ - libxmlserializer_includes \ - libpfw_utility \ - -LOCAL_MODULE_TAGS := optional -LOCAL_MODULE := libpolicy-subsystem - -include external/stlport/libstlport.mk -include $(BUILD_SHARED_LIBRARY) - diff --git a/services/audiopolicy/engineconfigurable/parameter-framework/plugin/InputSource.cpp b/services/audiopolicy/engineconfigurable/parameter-framework/plugin/InputSource.cpp deleted file mode 100755 index 497d555..0000000 --- a/services/audiopolicy/engineconfigurable/parameter-framework/plugin/InputSource.cpp +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Copyright (C) 2015 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "InputSource.h" -#include "PolicyMappingKeys.h" -#include "PolicySubsystem.h" - -using std::string; - -InputSource::InputSource(const string &mappingValue, - CInstanceConfigurableElement *instanceConfigurableElement, - const CMappingContext &context) - : CFormattedSubsystemObject(instanceConfigurableElement, - mappingValue, - MappingKeyAmend1, - (MappingKeyAmendEnd - MappingKeyAmend1 + 1), - context), - mPolicySubsystem(static_cast( - instanceConfigurableElement->getBelongingSubsystem())), - mPolicyPluginInterface(mPolicySubsystem->getPolicyPluginInterface()), - mApplicableInputDevice(mDefaultApplicableInputDevice) -{ - mId = static_cast(context.getItemAsInteger(MappingKeyIdentifier)); - // Declares the strategy to audio policy engine - mPolicyPluginInterface->addInputSource(getFormattedMappingValue(), mId); -} - -bool InputSource::receiveFromHW(string & /*error*/) -{ - blackboardWrite(&mApplicableInputDevice, sizeof(mApplicableInputDevice)); - return true; -} - -bool InputSource::sendToHW(string & /*error*/) -{ - uint32_t applicableInputDevice; - blackboardRead(&applicableInputDevice, sizeof(applicableInputDevice)); - mApplicableInputDevice = applicableInputDevice; - return mPolicyPluginInterface->setDeviceForInputSource(mId, mApplicableInputDevice); -} diff --git a/services/audiopolicy/engineconfigurable/parameter-framework/plugin/InputSource.h b/services/audiopolicy/engineconfigurable/parameter-framework/plugin/InputSource.h deleted file mode 100755 index 67c5b50..0000000 --- a/services/audiopolicy/engineconfigurable/parameter-framework/plugin/InputSource.h +++ /dev/null @@ -1,49 +0,0 @@ -/* - * Copyright (C) 2015 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#pragma once - -#include "FormattedSubsystemObject.h" -#include "InstanceConfigurableElement.h" -#include "MappingContext.h" -#include -#include - -class PolicySubsystem; - -class InputSource : public CFormattedSubsystemObject -{ -public: - InputSource(const std::string &mappingValue, - CInstanceConfigurableElement *instanceConfigurableElement, - const CMappingContext &context); - -protected: - virtual bool receiveFromHW(std::string &error); - virtual bool sendToHW(std::string &error); - -private: - const PolicySubsystem *mPolicySubsystem; /**< Route subsytem plugin. */ - - /** - * Interface to communicate with Audio Policy Engine. - */ - android::AudioPolicyPluginInterface *mPolicyPluginInterface; - - audio_source_t mId; /**< input source identifier to link with audio.h. */ - uint32_t mApplicableInputDevice; /**< applicable input device for this strategy. */ - static const uint32_t mDefaultApplicableInputDevice = 0; /**< default input device. */ -}; diff --git a/services/audiopolicy/engineconfigurable/parameter-framework/plugin/PolicyMappingKeys.h b/services/audiopolicy/engineconfigurable/parameter-framework/plugin/PolicyMappingKeys.h deleted file mode 100755 index 53944e9..0000000 --- a/services/audiopolicy/engineconfigurable/parameter-framework/plugin/PolicyMappingKeys.h +++ /dev/null @@ -1,32 +0,0 @@ -/* - * Copyright (C) 2015 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#pragma once - -/** - * Mapping item types - */ -enum PolicyItemType -{ - MappingKeyName, - MappingKeyCategory, - MappingKeyIdentifier, - MappingKeyAmend1, - MappingKeyAmend2, - MappingKeyAmend3 -}; - -static const uint8_t MappingKeyAmendEnd = MappingKeyAmend3; diff --git a/services/audiopolicy/engineconfigurable/parameter-framework/plugin/PolicySubsystem.cpp b/services/audiopolicy/engineconfigurable/parameter-framework/plugin/PolicySubsystem.cpp deleted file mode 100755 index a5dab36..0000000 --- a/services/audiopolicy/engineconfigurable/parameter-framework/plugin/PolicySubsystem.cpp +++ /dev/null @@ -1,105 +0,0 @@ -/* - * Copyright (C) 2015 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "PolicySubsystem.h" -#include "SubsystemObjectFactory.h" -#include "PolicyMappingKeys.h" -#include "Strategy.h" -#include "Stream.h" -#include "InputSource.h" -#include "VolumeProfile.h" -#include "Usage.h" -#include -#include -#include - -using android::audio_policy::EngineInstance; - -const char *const PolicySubsystem::mKeyName = "Name"; -const char *const PolicySubsystem::mKeyIdentifier = "Identifier"; -const char *const PolicySubsystem::mKeyCategory = "Category"; -const char *const PolicySubsystem::mKeyAmend1 = "Amend1"; -const char *const PolicySubsystem::mKeyAmend2 = "Amend2"; -const char *const PolicySubsystem::mKeyAmend3 = "Amend3"; - - -const char *const PolicySubsystem::mStreamComponentName = "Stream"; -const char *const PolicySubsystem::mStrategyComponentName = "Strategy"; -const char *const PolicySubsystem::mInputSourceComponentName = "InputSource"; -const char *const PolicySubsystem::mUsageComponentName = "Usage"; -const char *const PolicySubsystem::mVolumeProfileComponentName = "VolumeProfile"; - -PolicySubsystem::PolicySubsystem(const std::string &name) - : CSubsystem(name), - mPluginInterface(NULL) -{ - // Try to connect a Plugin Interface from Audio Policy Engine - EngineInstance *engineInstance = EngineInstance::getInstance(); - - if (engineInstance == NULL) { - ALOG_ASSERT(engineInstance != NULL, "NULL Plugin Interface"); - return; - } - // Retrieve the Route Interface - mPluginInterface = engineInstance->queryInterface(); - if (mPluginInterface == NULL) { - // bailing out - ALOG_ASSERT(mPluginInterface != NULL, "NULL Plugin Interface"); - return; - } - - // Provide mapping keys to the core, necessary when parsing the XML Structure files. - addContextMappingKey(mKeyName); - addContextMappingKey(mKeyCategory); - addContextMappingKey(mKeyIdentifier); - addContextMappingKey(mKeyAmend1); - addContextMappingKey(mKeyAmend2); - addContextMappingKey(mKeyAmend3); - - // Provide creators to upper layer - addSubsystemObjectFactory( - new TSubsystemObjectFactory( - mStreamComponentName, - (1 << MappingKeyAmend1) | (1 << MappingKeyIdentifier)) - ); - addSubsystemObjectFactory( - new TSubsystemObjectFactory( - mStrategyComponentName, - (1 << MappingKeyAmend1) | (1 << MappingKeyIdentifier)) - ); - addSubsystemObjectFactory( - new TSubsystemObjectFactory( - mUsageComponentName, - (1 << MappingKeyAmend1) | (1 << MappingKeyIdentifier)) - ); - addSubsystemObjectFactory( - new TSubsystemObjectFactory( - mInputSourceComponentName, - (1 << MappingKeyAmend1) | (1 << MappingKeyIdentifier)) - ); - addSubsystemObjectFactory( - new TSubsystemObjectFactory( - mVolumeProfileComponentName, - (1 << MappingKeyAmend1) | (1 << MappingKeyIdentifier) | (1 << MappingKeyIdentifier)) - ); -} - -// Retrieve Route interface -android::AudioPolicyPluginInterface *PolicySubsystem::getPolicyPluginInterface() const -{ - ALOG_ASSERT(mPluginInterface != NULL, "NULL Plugin Interface"); - return mPluginInterface; -} diff --git a/services/audiopolicy/engineconfigurable/parameter-framework/plugin/PolicySubsystem.h b/services/audiopolicy/engineconfigurable/parameter-framework/plugin/PolicySubsystem.h deleted file mode 100755 index 3c26fe1..0000000 --- a/services/audiopolicy/engineconfigurable/parameter-framework/plugin/PolicySubsystem.h +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Copyright (C) 2015 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#pragma once - -#include "Subsystem.h" -#include - -namespace android { - -class AudioPolicyPluginInterface; - -} - -class PolicySubsystem : public CSubsystem -{ -public: - PolicySubsystem(const std::string &strName); - - /** - * Retrieve Route Manager interface. - * - * @return RouteManager interface for the route plugin. - */ - android::AudioPolicyPluginInterface *getPolicyPluginInterface() const; - -private: - /* Copy facilities are put private to disable copy. */ - PolicySubsystem(const PolicySubsystem &object); - PolicySubsystem &operator=(const PolicySubsystem &object); - - android::AudioPolicyPluginInterface *mPluginInterface; /**< Audio Policy Plugin Interface. */ - - static const char *const mKeyName; /**< name key mapping string. */ - static const char *const mKeyIdentifier; - static const char *const mKeyCategory; - - static const char *const mKeyAmend1; /**< amend1 key mapping string. */ - static const char *const mKeyAmend2; /**< amend2 key mapping string. */ - static const char *const mKeyAmend3; /**< amend3 key mapping string. */ - - static const char *const mStreamComponentName; - static const char *const mStrategyComponentName; - static const char *const mInputSourceComponentName; - static const char *const mUsageComponentName; - static const char *const mVolumeProfileComponentName; -}; diff --git a/services/audiopolicy/engineconfigurable/parameter-framework/plugin/PolicySubsystemBuilder.cpp b/services/audiopolicy/engineconfigurable/parameter-framework/plugin/PolicySubsystemBuilder.cpp deleted file mode 100755 index b14d446..0000000 --- a/services/audiopolicy/engineconfigurable/parameter-framework/plugin/PolicySubsystemBuilder.cpp +++ /dev/null @@ -1,29 +0,0 @@ -/* - * Copyright (C) 2015 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "SubsystemLibrary.h" -#include "NamedElementBuilderTemplate.h" -#include "PolicySubsystem.h" - -static const char *const POLICY_SUBSYSTEM_NAME = "Policy"; -extern "C" -{ -void getPOLICYSubsystemBuilder(CSubsystemLibrary *subsystemLibrary) -{ - subsystemLibrary->addElementBuilder(POLICY_SUBSYSTEM_NAME, - new TNamedElementBuilderTemplate()); -} -} diff --git a/services/audiopolicy/engineconfigurable/parameter-framework/plugin/Strategy.cpp b/services/audiopolicy/engineconfigurable/parameter-framework/plugin/Strategy.cpp deleted file mode 100755 index 1848813..0000000 --- a/services/audiopolicy/engineconfigurable/parameter-framework/plugin/Strategy.cpp +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Copyright (C) 2015 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "Strategy.h" -#include "PolicyMappingKeys.h" -#include "PolicySubsystem.h" - -using std::string; -using android::routing_strategy; - -Strategy::Strategy(const string &mappingValue, - CInstanceConfigurableElement *instanceConfigurableElement, - const CMappingContext &context) - : CFormattedSubsystemObject(instanceConfigurableElement, - mappingValue, - MappingKeyAmend1, - (MappingKeyAmendEnd - MappingKeyAmend1 + 1), - context), - mPolicySubsystem(static_cast( - instanceConfigurableElement->getBelongingSubsystem())), - mPolicyPluginInterface(mPolicySubsystem->getPolicyPluginInterface()), - mApplicableOutputDevice(mDefaultApplicableOutputDevice) -{ - mId = static_cast(context.getItemAsInteger(MappingKeyIdentifier)); - - // Declares the strategy to audio policy engine - mPolicyPluginInterface->addStrategy(getFormattedMappingValue(), mId); -} - -bool Strategy::receiveFromHW(string & /*error*/) -{ - blackboardWrite(&mApplicableOutputDevice, sizeof(mApplicableOutputDevice)); - return true; -} - -bool Strategy::sendToHW(string & /*error*/) -{ - uint32_t applicableOutputDevice; - blackboardRead(&applicableOutputDevice, sizeof(applicableOutputDevice)); - return mPolicyPluginInterface->setDeviceForStrategy(mId, applicableOutputDevice); -} diff --git a/services/audiopolicy/engineconfigurable/parameter-framework/plugin/Strategy.h b/services/audiopolicy/engineconfigurable/parameter-framework/plugin/Strategy.h deleted file mode 100755 index 9a9b3e4..0000000 --- a/services/audiopolicy/engineconfigurable/parameter-framework/plugin/Strategy.h +++ /dev/null @@ -1,49 +0,0 @@ -/* - * Copyright (C) 2015 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#pragma once - -#include "FormattedSubsystemObject.h" -#include "InstanceConfigurableElement.h" -#include "MappingContext.h" -#include -#include - -class PolicySubsystem; - -class Strategy : public CFormattedSubsystemObject -{ -public: - Strategy(const std::string &mappingValue, - CInstanceConfigurableElement *instanceConfigurableElement, - const CMappingContext &context); - -protected: - virtual bool receiveFromHW(std::string &error); - virtual bool sendToHW(std::string &error); - -private: - const PolicySubsystem *mPolicySubsystem; /**< Route subsytem plugin. */ - - /** - * Interface to communicate with Audio Policy Engine. - */ - android::AudioPolicyPluginInterface *mPolicyPluginInterface; - - android::routing_strategy mId; /**< strategy identifier to link with audio.h.*/ - uint32_t mApplicableOutputDevice; /**< applicable output device for this strategy. */ - static const uint32_t mDefaultApplicableOutputDevice = 0; /**< default output device. */ -}; diff --git a/services/audiopolicy/engineconfigurable/parameter-framework/plugin/Stream.cpp b/services/audiopolicy/engineconfigurable/parameter-framework/plugin/Stream.cpp deleted file mode 100755 index 575b0bb..0000000 --- a/services/audiopolicy/engineconfigurable/parameter-framework/plugin/Stream.cpp +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Copyright (C) 2015 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "Stream.h" -#include "PolicyMappingKeys.h" -#include "PolicySubsystem.h" - -using std::string; -using android::routing_strategy; - -Stream::Stream(const string &mappingValue, - CInstanceConfigurableElement *instanceConfigurableElement, - const CMappingContext &context) - : CFormattedSubsystemObject(instanceConfigurableElement, - mappingValue, - MappingKeyAmend1, - (MappingKeyAmendEnd - MappingKeyAmend1 + 1), - context), - mPolicySubsystem(static_cast( - instanceConfigurableElement->getBelongingSubsystem())), - mPolicyPluginInterface(mPolicySubsystem->getPolicyPluginInterface()), - mApplicableStrategy(mDefaultApplicableStrategy) -{ - mId = static_cast(context.getItemAsInteger(MappingKeyIdentifier)); - - // Declares the strategy to audio policy engine - mPolicyPluginInterface->addStream(getFormattedMappingValue(), mId); -} - -bool Stream::receiveFromHW(string & /*error*/) -{ - blackboardWrite(&mApplicableStrategy, sizeof(mApplicableStrategy)); - return true; -} - -bool Stream::sendToHW(string & /*error*/) -{ - uint32_t applicableStrategy; - blackboardRead(&applicableStrategy, sizeof(applicableStrategy)); - mApplicableStrategy = applicableStrategy; - return mPolicyPluginInterface->setStrategyForStream(mId, - static_cast(mApplicableStrategy)); -} diff --git a/services/audiopolicy/engineconfigurable/parameter-framework/plugin/Stream.h b/services/audiopolicy/engineconfigurable/parameter-framework/plugin/Stream.h deleted file mode 100755 index 7d90c36..0000000 --- a/services/audiopolicy/engineconfigurable/parameter-framework/plugin/Stream.h +++ /dev/null @@ -1,49 +0,0 @@ -/* - * Copyright (C) 2015 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#pragma once - -#include "FormattedSubsystemObject.h" -#include "InstanceConfigurableElement.h" -#include "MappingContext.h" -#include -#include - -class PolicySubsystem; - -class Stream : public CFormattedSubsystemObject -{ -public: - Stream(const std::string &mappingValue, - CInstanceConfigurableElement *instanceConfigurableElement, - const CMappingContext &context); - -protected: - virtual bool receiveFromHW(std::string &error); - virtual bool sendToHW(std::string &error); - -private: - const PolicySubsystem *mPolicySubsystem; /**< Route subsytem plugin. */ - - /** - * Interface to communicate with Audio Policy Engine. - */ - android::AudioPolicyPluginInterface *mPolicyPluginInterface; - - audio_stream_type_t mId; /**< stream type identifier to link with audio.h. */ - uint32_t mApplicableStrategy; /**< applicable strategy for this stream. */ - static const uint32_t mDefaultApplicableStrategy = 0; /**< default strategy. */ -}; diff --git a/services/audiopolicy/engineconfigurable/parameter-framework/plugin/Usage.cpp b/services/audiopolicy/engineconfigurable/parameter-framework/plugin/Usage.cpp deleted file mode 100755 index 1916b9b..0000000 --- a/services/audiopolicy/engineconfigurable/parameter-framework/plugin/Usage.cpp +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Copyright (C) 2015 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "Usage.h" -#include "PolicyMappingKeys.h" -#include "PolicySubsystem.h" - -using std::string; -using android::routing_strategy; - -Usage::Usage(const string &mappingValue, - CInstanceConfigurableElement *instanceConfigurableElement, - const CMappingContext &context) - : CFormattedSubsystemObject(instanceConfigurableElement, - mappingValue, - MappingKeyAmend1, - (MappingKeyAmendEnd - MappingKeyAmend1 + 1), - context), - mPolicySubsystem(static_cast( - instanceConfigurableElement->getBelongingSubsystem())), - mPolicyPluginInterface(mPolicySubsystem->getPolicyPluginInterface()), - mApplicableStrategy(mDefaultApplicableStrategy) -{ - mId = static_cast(context.getItemAsInteger(MappingKeyIdentifier)); - - // Declares the strategy to audio policy engine - mPolicyPluginInterface->addUsage(getFormattedMappingValue(), mId); -} - -bool Usage::receiveFromHW(string & /*error*/) -{ - blackboardWrite(&mApplicableStrategy, sizeof(mApplicableStrategy)); - return true; -} - -bool Usage::sendToHW(string & /*error*/) -{ - uint32_t applicableStrategy; - blackboardRead(&applicableStrategy, sizeof(applicableStrategy)); - mApplicableStrategy = applicableStrategy; - return mPolicyPluginInterface->setStrategyForUsage(mId, - static_cast(mApplicableStrategy)); -} diff --git a/services/audiopolicy/engineconfigurable/parameter-framework/plugin/Usage.h b/services/audiopolicy/engineconfigurable/parameter-framework/plugin/Usage.h deleted file mode 100755 index 8e9b638..0000000 --- a/services/audiopolicy/engineconfigurable/parameter-framework/plugin/Usage.h +++ /dev/null @@ -1,49 +0,0 @@ -/* - * Copyright (C) 2015 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#pragma once - -#include "FormattedSubsystemObject.h" -#include "InstanceConfigurableElement.h" -#include "MappingContext.h" -#include -#include - -class PolicySubsystem; - -class Usage : public CFormattedSubsystemObject -{ -public: - Usage(const std::string &mappingValue, - CInstanceConfigurableElement *instanceConfigurableElement, - const CMappingContext &context); - -protected: - virtual bool receiveFromHW(std::string &error); - virtual bool sendToHW(std::string &error); - -private: - const PolicySubsystem *mPolicySubsystem; /**< Route subsytem plugin. */ - - /** - * Interface to communicate with Audio Policy Engine. - */ - android::AudioPolicyPluginInterface *mPolicyPluginInterface; - - audio_usage_t mId; /**< usage identifier to link with audio.h. */ - uint32_t mApplicableStrategy; /**< applicable strategy for this usage. */ - static const uint32_t mDefaultApplicableStrategy = 0; /**< default strategy. */ -}; diff --git a/services/audiopolicy/engineconfigurable/parameter-framework/plugin/VolumeProfile.cpp b/services/audiopolicy/engineconfigurable/parameter-framework/plugin/VolumeProfile.cpp deleted file mode 100755 index 5c155c8..0000000 --- a/services/audiopolicy/engineconfigurable/parameter-framework/plugin/VolumeProfile.cpp +++ /dev/null @@ -1,75 +0,0 @@ -/* - * Copyright (C) 2015 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "VolumeProfile.h" -#include "PolicyMappingKeys.h" -#include "PolicySubsystem.h" -#include "ParameterBlockType.h" -#include -#include - -using std::string; - -VolumeProfile::VolumeProfile(const string &mappingValue, - CInstanceConfigurableElement *instanceConfigurableElement, - const CMappingContext &context) - : CFormattedSubsystemObject(instanceConfigurableElement, - mappingValue, - MappingKeyAmend1, - (MappingKeyAmendEnd - MappingKeyAmend1 + 1), - context), - mPolicySubsystem(static_cast( - instanceConfigurableElement->getBelongingSubsystem())), - mPolicyPluginInterface(mPolicySubsystem->getPolicyPluginInterface()) -{ - uint32_t categoryKey = context.getItemAsInteger(MappingKeyCategory); - if (categoryKey >= Volume::DEVICE_CATEGORY_CNT) { - mCategory = Volume::DEVICE_CATEGORY_SPEAKER; - } else { - mCategory = static_cast(categoryKey); - } - mId = static_cast(context.getItemAsInteger(MappingKeyIdentifier)); - - // (no exception support, defer the error) - if (instanceConfigurableElement->getType() != CInstanceConfigurableElement::EParameterBlock) { - return; - } - // Get actual element type - const CParameterBlockType *parameterType = static_cast( - instanceConfigurableElement->getTypeElement()); - mPoints = parameterType->getArrayLength(); -} - -bool VolumeProfile::receiveFromHW(string & /*error*/) -{ - return true; -} - -bool VolumeProfile::sendToHW(string & /*error*/) -{ - Point points[mPoints]; - blackboardRead(&points, sizeof(Point) * mPoints); - - VolumeCurvePoints pointsVector; - for (size_t i = 0; i < mPoints; i++) { - VolumeCurvePoint curvePoint; - curvePoint.mIndex = points[i].index; - curvePoint.mDBAttenuation = static_cast(points[i].dbAttenuation) / - (1UL << gFractional); - pointsVector.push_back(curvePoint); - } - return mPolicyPluginInterface->setVolumeProfileForStream(mId, mCategory, pointsVector); -} diff --git a/services/audiopolicy/engineconfigurable/parameter-framework/plugin/VolumeProfile.h b/services/audiopolicy/engineconfigurable/parameter-framework/plugin/VolumeProfile.h deleted file mode 100755 index a00ae84..0000000 --- a/services/audiopolicy/engineconfigurable/parameter-framework/plugin/VolumeProfile.h +++ /dev/null @@ -1,64 +0,0 @@ -/* - * Copyright (C) 2015 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#pragma once - -#include "FormattedSubsystemObject.h" -#include "InstanceConfigurableElement.h" -#include "MappingContext.h" -#include -#include -#include - -class PolicySubsystem; - -class VolumeProfile : public CFormattedSubsystemObject -{ -private: - struct Point - { - int index; - /** Volume is using FixedPointParameter until float parameters are available. */ - int16_t dbAttenuation; - } __attribute__((packed)); - -public: - VolumeProfile(const std::string &mappingValue, - CInstanceConfigurableElement *instanceConfigurableElement, - const CMappingContext &context); - -protected: - virtual bool receiveFromHW(std::string &error); - virtual bool sendToHW(std::string &error); - -private: - const PolicySubsystem *mPolicySubsystem; /**< Route subsytem plugin. */ - - /** - * Interface to communicate with Audio Policy Engine. - */ - android::AudioPolicyPluginInterface *mPolicyPluginInterface; - - /** - * volume profile identifier, which is in fact a stream type to link with audio.h. - */ - audio_stream_type_t mId; - - size_t mPoints; - Volume::device_category mCategory; - - static const uint32_t gFractional = 8; /**< Beware to align with the structure. */ -}; diff --git a/services/audiopolicy/engineconfigurable/src/Collection.h b/services/audiopolicy/engineconfigurable/src/Collection.h deleted file mode 100755 index 8f17b15..0000000 --- a/services/audiopolicy/engineconfigurable/src/Collection.h +++ /dev/null @@ -1,163 +0,0 @@ -/* - * Copyright (C) 2015 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#pragma once - -#include "Element.h" -#include "Stream.h" -#include "Strategy.h" -#include "Usage.h" -#include "InputSource.h" -#include -#include -#include -#include -#include -#include - -namespace android -{ -namespace audio_policy -{ - -/** - * Collection of policy element as a map indexed with a their UID type. - * - * @tparam Key type of the policy element indexing the collection. - * Policy Element supported are: - * - Strategy - * - Stream - * - InputSource - * - Usage. - */ -template -class Collection : public std::map *> -{ -private: - typedef Element T; - typedef typename std::map::iterator CollectionIterator; - typedef typename std::map::const_iterator CollectionConstIterator; - -public: - Collection() - { - collectionSupported(); - } - - /** - * Add a policy element to the collection. Policy elements are streams, strategies, input - * sources, ... Compile time error generated if called with not supported collection. - * It also set the key as the unique identifier of the policy element. - * - * @tparam Key indexing the collection of policy element. - * @param[in] name of the policy element to find. - * @param[in] key to be used to index this new policy element. - * - * @return NO_ERROR if the policy element has been successfully added to the collection. - */ - status_t add(const std::string &name, Key key) - { - if ((*this).find(key) != (*this).end()) { - ALOGW("%s: element %s already added", __FUNCTION__, name.c_str()); - return BAD_VALUE; - } - (*this)[key] = new T(name); - ALOGD("%s: adding element %s to collection", __FUNCTION__, name.c_str()); - return (*this)[key]->setIdentifier(key); - } - - /** - * Get a policy element from the collection by its key. Policy elements are streams, strategies, - * input sources, ... Compile time error generated if called with not supported collection. - * - * @tparam Key indexing the collection of policy element. - * @param[in] key of the policy element to find. - * - * @return valid pointer on policy element if found, NULL otherwise. - */ - T *get(Key key) const - { - CollectionConstIterator it = (*this).find(key); - return (it == (*this).end()) ? NULL : it->second; - } - - /** - * Find a policy element from the collection by its name. Policy elements are streams, - * strategies, input sources, ... - * Compile time error generated if called with not supported collection. - * - * @tparam Key indexing the collection of policy element. - * @param[in] name of the policy element to find. - * @param[in] elementsMap maps of policy elements to search into. - * - * @return valid pointer on element if found, NULL otherwise. - */ - T *findByName(const std::string &name) const - { - - CollectionConstIterator it; - for (it = (*this).begin(); it != (*this).end(); ++it) { - T *element = it->second; - if (element->getName() == name) { - return element; - } - } - return NULL; - } - - /** - * Removes all the elements from the list and destroy them. - */ - void clear() - { - CollectionIterator it; - for (it = (*this).begin(); it != (*this).end(); ++it) { - delete it->second; - } - (*this).clear(); - } - -private: - /** - * provide a compile time error if no specialization is provided for a given type. - * - * @tparam T: type of the policyElement. Policy Element supported are: - * - Strategy - * - Stream - * - InputSource - * - Usage. - */ - struct collectionSupported; -}; - -template <> -struct Collection::collectionSupported {}; -template <> -struct Collection::collectionSupported {}; -template <> -struct Collection::collectionSupported {}; -template <> -struct Collection::collectionSupported {}; -template <> -struct Collection::collectionSupported {}; - -typedef Collection StrategyCollection; -typedef Collection StreamCollection; -typedef Collection UsageCollection; -typedef Collection InputSourceCollection; - -} // namespace audio_policy -} // namespace android diff --git a/services/audiopolicy/engineconfigurable/src/Element.h b/services/audiopolicy/engineconfigurable/src/Element.h deleted file mode 100755 index 52e77e5..0000000 --- a/services/audiopolicy/engineconfigurable/src/Element.h +++ /dev/null @@ -1,99 +0,0 @@ -/* - * Copyright (C) 2015 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#pragma once - -#include -#include -#include -#include -#include - -namespace android -{ -namespace audio_policy -{ - -template -class Element -{ -public: - Element(const std::string &name) - : mName(name) - {} - ~Element() {} - - /** - * Returns identifier of this policy element - * - * @returns string representing the name of this policy element - */ - const std::string &getName() const { return mName; } - - /** - * Set the unique identifier for this policy element. - * - * @tparam Key type of the unique identifier. - * @param[in] identifier to be set. - * - * @return NO_ERROR if the identifier is valid and set correctly, error code otherwise. - */ - status_t setIdentifier(Key identifier) - { - mIdentifier = identifier; - return NO_ERROR; - } - - /** - * @return the unique identifier of this policy element. - */ - const Key &getIdentifier() const { return mIdentifier; } - - /** - * A Policy element may implement getter/setter function for a given property. - * Property may be routing_strategy, audio_stream_type_t, audio_usage_t, audio_source_t - * or a string. - * - * @tparam Property for which this policy element has setter / getter. - * @return the property kept track by this policy base element. - */ - template - Property get() const; - - /** - * A Policy element may implement getter/setter function for a given property. - * Property may be routing_strategy, audio_stream_type_t, audio_usage_t, audio_source_t - * or a string. - * - * @tparam Property for which this policy element has setter / getter. - * - * @param[in] property value to be assigned for this policy base element. - * - * @return the property kept track by this policy base element. - */ - template - status_t set(Property property); - -private: - /* Copy facilities are put private to disable copy. */ - Element(const Element &object); - Element &operator=(const Element &object); - - std::string mName; /**< Unique literal Identifier of a policy base element*/ - Key mIdentifier; /**< Unique numerical Identifier of a policy base element*/ -}; -} // namespace audio_policy -} // namespace android diff --git a/services/audiopolicy/engineconfigurable/src/Engine.cpp b/services/audiopolicy/engineconfigurable/src/Engine.cpp deleted file mode 100755 index c5cccfd..0000000 --- a/services/audiopolicy/engineconfigurable/src/Engine.cpp +++ /dev/null @@ -1,281 +0,0 @@ -/* - * Copyright (C) 2015 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#define LOG_TAG "APM::AudioPolicyEngine" -//#define LOG_NDEBUG 0 - -//#define VERY_VERBOSE_LOGGING -#ifdef VERY_VERBOSE_LOGGING -#define ALOGVV ALOGV -#else -#define ALOGVV(a...) do { } while(0) -#endif - -#include "Engine.h" -#include "Strategy.h" -#include "Stream.h" -#include "InputSource.h" -#include "Usage.h" -#include -#include - -using std::string; -using std::map; - -namespace android -{ -namespace audio_policy -{ -template <> -StrategyCollection &Engine::getCollection() -{ - return mStrategyCollection; -} -template <> -StreamCollection &Engine::getCollection() -{ - return mStreamCollection; -} -template <> -UsageCollection &Engine::getCollection() -{ - return mUsageCollection; -} -template <> -InputSourceCollection &Engine::getCollection() -{ - return mInputSourceCollection; -} - -template <> -const StrategyCollection &Engine::getCollection() const -{ - return mStrategyCollection; -} -template <> -const StreamCollection &Engine::getCollection() const -{ - return mStreamCollection; -} -template <> -const UsageCollection &Engine::getCollection() const -{ - return mUsageCollection; -} -template <> -const InputSourceCollection &Engine::getCollection() const -{ - return mInputSourceCollection; -} - -Engine::Engine() - : mManagerInterface(this), - mPluginInterface(this), - mPolicyParameterMgr(new ParameterManagerWrapper()), - mApmObserver(NULL) -{ - if (mPolicyParameterMgr->start() != NO_ERROR) { - ALOGE("%s: could not start Policy PFW", __FUNCTION__); - delete mPolicyParameterMgr; - mPolicyParameterMgr = NULL; - } -} - -Engine::~Engine() -{ - mStrategyCollection.clear(); - mStreamCollection.clear(); - mInputSourceCollection.clear(); - mUsageCollection.clear(); -} - - -void Engine::setObserver(AudioPolicyManagerObserver *observer) -{ - ALOG_ASSERT(observer != NULL, "Invalid Audio Policy Manager observer"); - mApmObserver = observer; -} - -status_t Engine::initCheck() -{ - return (mPolicyParameterMgr != NULL) && - mPolicyParameterMgr->isStarted() && - (mApmObserver != NULL)? - NO_ERROR : NO_INIT; -} - -bool Engine::setVolumeProfileForStream(const audio_stream_type_t &streamType, - Volume::device_category deviceCategory, - const VolumeCurvePoints &points) -{ - Stream *stream = getFromCollection(streamType); - if (stream == NULL) { - ALOGE("%s: stream %d not found", __FUNCTION__, streamType); - return false; - } - return stream->setVolumeProfile(deviceCategory, points) == NO_ERROR; -} - -template -Element *Engine::getFromCollection(const Key &key) const -{ - const Collection collection = getCollection(); - return collection.get(key); -} - -template -status_t Engine::add(const std::string &name, const Key &key) -{ - Collection &collection = getCollection(); - return collection.add(name, key); -} - -template <> -routing_strategy Engine::getPropertyForKey(audio_usage_t usage) const -{ - const AudioOutputCollection &outputs = mApmObserver->getOutputs(); - - if (usage == AUDIO_USAGE_ASSISTANCE_ACCESSIBILITY && - (outputs.isStreamActive(AUDIO_STREAM_RING) || - outputs.isStreamActive(AUDIO_STREAM_ALARM))) { - return STRATEGY_SONIFICATION; - } - return getPropertyForKey(usage); -} - -template -Property Engine::getPropertyForKey(Key key) const -{ - Element *element = getFromCollection(key); - if (element == NULL) { - ALOGE("%s: Element not found within collection", __FUNCTION__); - return static_cast(0); - } - return element->template get(); -} - -template <> -audio_devices_t Engine::getPropertyForKey(routing_strategy strategy) const -{ - const AudioOutputCollection &outputs = mApmObserver->getOutputs(); - - /** This is the only case handled programmatically because the PFW is unable to know the - * activity of streams. - * - * -While media is playing on a remote device, use the the sonification behavior. - * Note that we test this usecase before testing if media is playing because - * the isStreamActive() method only informs about the activity of a stream, not - * if it's for local playback. Note also that we use the same delay between both tests - * - * -When media is not playing anymore, fall back on the sonification behavior - */ - if (strategy == STRATEGY_SONIFICATION_RESPECTFUL && - !is_state_in_call(getPhoneState()) && - !outputs.isStreamActiveRemotely(AUDIO_STREAM_MUSIC, - SONIFICATION_RESPECTFUL_AFTER_MUSIC_DELAY) && - outputs.isStreamActive(AUDIO_STREAM_MUSIC, SONIFICATION_RESPECTFUL_AFTER_MUSIC_DELAY)) { - return getPropertyForKey(STRATEGY_MEDIA); - } - return getPropertyForKey(strategy); -} - -routing_strategy Engine::ManagerInterfaceImpl::getStrategyForUsage(audio_usage_t usage) -{ - return mPolicyEngine->getPropertyForKey(usage); -} - -audio_devices_t Engine::ManagerInterfaceImpl::getDeviceForStrategy(routing_strategy stategy) const -{ - return mPolicyEngine->getPropertyForKey(stategy); -} - -template -bool Engine::setPropertyForKey(const Property &property, const Key &key) -{ - Element *element = getFromCollection(key); - if (element == NULL) { - ALOGE("%s: Element not found within collection", __FUNCTION__); - return BAD_VALUE; - } - return element->template set(property) == NO_ERROR; -} - -float Engine::volIndexToAmpl(Volume::device_category category, - audio_stream_type_t streamType, - int indexInUi) -{ - Stream *stream = getFromCollection(streamType); - if (stream == NULL) { - ALOGE("%s: Element indexed by key=%d not found", __FUNCTION__, streamType); - return 1.0f; - } - return stream->volIndexToAmpl(category, indexInUi); -} - -status_t Engine::initStreamVolume(audio_stream_type_t streamType, - int indexMin, int indexMax) -{ - Stream *stream = getFromCollection(streamType); - if (stream == NULL) { - ALOGE("%s: Stream Type %d not found", __FUNCTION__, streamType); - return BAD_TYPE; - } - return stream->initVolume(indexMin, indexMax); -} - -status_t Engine::setPhoneState(audio_mode_t mode) -{ - return mPolicyParameterMgr->setPhoneState(mode); -} - -audio_mode_t Engine::getPhoneState() const -{ - return mPolicyParameterMgr->getPhoneState(); -} - -status_t Engine::setForceUse(audio_policy_force_use_t usage, - audio_policy_forced_cfg_t config) -{ - return mPolicyParameterMgr->setForceUse(usage, config); -} - -audio_policy_forced_cfg_t Engine::getForceUse(audio_policy_force_use_t usage) const -{ - return mPolicyParameterMgr->getForceUse(usage); -} - -status_t Engine::setDeviceConnectionState(audio_devices_t devices, audio_policy_dev_state_t state, - const char *deviceAddress) -{ - return mPolicyParameterMgr->setDeviceConnectionState(devices, state, deviceAddress); -} - -template <> -AudioPolicyManagerInterface *Engine::queryInterface() -{ - return &mManagerInterface; -} - -template <> -AudioPolicyPluginInterface *Engine::queryInterface() -{ - return &mPluginInterface; -} - -} // namespace audio_policy -} // namespace android - - diff --git a/services/audiopolicy/engineconfigurable/src/Engine.h b/services/audiopolicy/engineconfigurable/src/Engine.h deleted file mode 100755 index 23ca7d0..0000000 --- a/services/audiopolicy/engineconfigurable/src/Engine.h +++ /dev/null @@ -1,225 +0,0 @@ -/* - * Copyright (C) 2015 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#pragma once - - -#include -#include -#include "Collection.h" - -namespace android -{ -class AudioPolicyManagerObserver; - -namespace audio_policy -{ - -class ParameterManagerWrapper; -class VolumeProfile; - -class Engine -{ -public: - Engine(); - virtual ~Engine(); - - template - RequestedInterface *queryInterface(); - -private: - /// Interface members - class ManagerInterfaceImpl : public AudioPolicyManagerInterface - { - public: - ManagerInterfaceImpl(Engine *policyEngine) - : mPolicyEngine(policyEngine) {} - - virtual android::status_t initCheck() - { - return mPolicyEngine->initCheck(); - } - virtual void setObserver(AudioPolicyManagerObserver *observer) - { - mPolicyEngine->setObserver(observer); - } - virtual audio_devices_t getDeviceForInputSource(audio_source_t inputSource) const - { - return mPolicyEngine->getPropertyForKey(inputSource); - } - virtual audio_devices_t getDeviceForStrategy(routing_strategy stategy) const; - virtual routing_strategy getStrategyForStream(audio_stream_type_t stream) - { - return mPolicyEngine->getPropertyForKey(stream); - } - virtual routing_strategy getStrategyForUsage(audio_usage_t usage); - virtual status_t setPhoneState(audio_mode_t mode) - { - return mPolicyEngine->setPhoneState(mode); - } - virtual audio_mode_t getPhoneState() const - { - return mPolicyEngine->getPhoneState(); - } - virtual status_t setForceUse(audio_policy_force_use_t usage, - audio_policy_forced_cfg_t config) - { - return mPolicyEngine->setForceUse(usage, config); - } - virtual audio_policy_forced_cfg_t getForceUse(audio_policy_force_use_t usage) const - { - return mPolicyEngine->getForceUse(usage); - } - virtual android::status_t setDeviceConnectionState(const sp devDesc, - audio_policy_dev_state_t state) - { - return mPolicyEngine->setDeviceConnectionState(devDesc->type(), state, - devDesc->mAddress); - } - virtual status_t initStreamVolume(audio_stream_type_t stream, - int indexMin, int indexMax) - { - return mPolicyEngine->initStreamVolume(stream, indexMin, indexMax); - } - - virtual void initializeVolumeCurves(bool /*isSpeakerDrcEnabled*/) {} - - virtual float volIndexToAmpl(Volume::device_category deviceCategory, - audio_stream_type_t stream, - int indexInUi) - { - return mPolicyEngine->volIndexToAmpl(deviceCategory, stream, indexInUi); - } - - private: - Engine *mPolicyEngine; - } mManagerInterface; - - class PluginInterfaceImpl : public AudioPolicyPluginInterface - { - public: - PluginInterfaceImpl(Engine *policyEngine) - : mPolicyEngine(policyEngine) {} - - virtual status_t addStrategy(const std::string &name, routing_strategy strategy) - { - return mPolicyEngine->add(name, strategy); - } - virtual status_t addStream(const std::string &name, audio_stream_type_t stream) - { - return mPolicyEngine->add(name, stream); - } - virtual status_t addUsage(const std::string &name, audio_usage_t usage) - { - return mPolicyEngine->add(name, usage); - } - virtual status_t addInputSource(const std::string &name, audio_source_t source) - { - return mPolicyEngine->add(name, source); - } - virtual bool setDeviceForStrategy(const routing_strategy &strategy, audio_devices_t devices) - { - return mPolicyEngine->setPropertyForKey(devices, - strategy); - } - virtual bool setStrategyForStream(const audio_stream_type_t &stream, - routing_strategy strategy) - { - return mPolicyEngine->setPropertyForKey(strategy, - stream); - } - virtual bool setVolumeProfileForStream(const audio_stream_type_t &stream, - Volume::device_category deviceCategory, - const VolumeCurvePoints &points) - { - return mPolicyEngine->setVolumeProfileForStream(stream, deviceCategory, points); - } - - virtual bool setStrategyForUsage(const audio_usage_t &usage, routing_strategy strategy) - { - return mPolicyEngine->setPropertyForKey(strategy, - usage); - } - virtual bool setDeviceForInputSource(const audio_source_t &inputSource, - audio_devices_t device) - { - return mPolicyEngine->setPropertyForKey(device, - inputSource); - } - - private: - Engine *mPolicyEngine; - } mPluginInterface; - -private: - /* Copy facilities are put private to disable copy. */ - Engine(const Engine &object); - Engine &operator=(const Engine &object); - - void setObserver(AudioPolicyManagerObserver *observer); - - bool setVolumeProfileForStream(const audio_stream_type_t &stream, - Volume::device_category deviceCategory, - const VolumeCurvePoints &points); - - status_t initCheck(); - status_t setPhoneState(audio_mode_t mode); - audio_mode_t getPhoneState() const; - status_t setForceUse(audio_policy_force_use_t usage, audio_policy_forced_cfg_t config); - audio_policy_forced_cfg_t getForceUse(audio_policy_force_use_t usage) const; - status_t setDeviceConnectionState(audio_devices_t devices, audio_policy_dev_state_t state, - const char *deviceAddress); - - float volIndexToAmpl(Volume::device_category category, - audio_stream_type_t stream, - int indexInUi); - status_t initStreamVolume(audio_stream_type_t stream, int indexMin, int indexMax); - - StrategyCollection mStrategyCollection; /**< Strategies indexed by their enum id. */ - StreamCollection mStreamCollection; /**< Streams indexed by their enum id. */ - UsageCollection mUsageCollection; /**< Usages indexed by their enum id. */ - InputSourceCollection mInputSourceCollection; /**< Input sources indexed by their enum id. */ - - template - status_t add(const std::string &name, const Key &key); - - template - Element *getFromCollection(const Key &key) const; - - template - const Collection &getCollection() const; - - template - Collection &getCollection(); - - template - Property getPropertyForKey(Key key) const; - - template - bool setPropertyForKey(const Property &property, const Key &key); - - /** - * Policy Parameter Manager hidden through a wrapper. - */ - ParameterManagerWrapper *mPolicyParameterMgr; - - AudioPolicyManagerObserver *mApmObserver; -}; - -}; // namespace audio_policy - -}; // namespace android - diff --git a/services/audiopolicy/engineconfigurable/src/EngineInstance.cpp b/services/audiopolicy/engineconfigurable/src/EngineInstance.cpp deleted file mode 100755 index 9aa89b2..0000000 --- a/services/audiopolicy/engineconfigurable/src/EngineInstance.cpp +++ /dev/null @@ -1,63 +0,0 @@ -/* - * Copyright (C) 2015 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include -#include -#include "AudioPolicyEngineInstance.h" -#include "Engine.h" - -using std::string; - -namespace android -{ -namespace audio_policy -{ - -EngineInstance::EngineInstance() -{ -} - -EngineInstance *EngineInstance::getInstance() -{ - static EngineInstance instance; - return &instance; -} - -EngineInstance::~EngineInstance() -{ -} - -Engine *EngineInstance::getEngine() const -{ - static Engine engine; - return &engine; -} - -template <> -AudioPolicyManagerInterface *EngineInstance::queryInterface() const -{ - return getEngine()->queryInterface(); -} - -template <> -AudioPolicyPluginInterface *EngineInstance::queryInterface() const -{ - return getEngine()->queryInterface(); -} - -} // namespace audio_policy -} // namespace android - diff --git a/services/audiopolicy/engineconfigurable/src/InputSource.cpp b/services/audiopolicy/engineconfigurable/src/InputSource.cpp deleted file mode 100755 index 9ff1538..0000000 --- a/services/audiopolicy/engineconfigurable/src/InputSource.cpp +++ /dev/null @@ -1,69 +0,0 @@ -/* - * Copyright (C) 2015 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#define LOG_TAG "APM::AudioPolicyEngine/InputSource" - -#include "InputSource.h" - -using std::string; - -namespace android -{ -namespace audio_policy -{ -status_t Element::setIdentifier(audio_source_t identifier) -{ - if (identifier > AUDIO_SOURCE_MAX && identifier != AUDIO_SOURCE_HOTWORD) { - return BAD_VALUE; - } - mIdentifier = identifier; - ALOGD("%s: InputSource %s identifier 0x%X", __FUNCTION__, getName().c_str(), identifier); - return NO_ERROR; -} - -/** -* Set the device associated to this source. -* It checks if the input device is valid but allows to set a NONE device -* (i.e. only the IN BIT is set). -* -* @param[in] devices selected for the given input source. -* @tparam audio_devices_t: Applicable input device for this input source. -* -* @return NO_ERROR if the device is either valid or none, error code otherwise. -*/ -template <> -status_t Element::set(audio_devices_t devices) -{ - if (!audio_is_input_device(devices) && devices != AUDIO_DEVICE_BIT_IN) { - ALOGE("%s: trying to set an invalid device 0x%X for input source %s", - __FUNCTION__, devices, getName().c_str()); - return BAD_VALUE; - } - ALOGD("%s: 0x%X for input source %s", __FUNCTION__, devices, getName().c_str()); - mApplicableDevices = devices; - return NO_ERROR; -} - -template <> -audio_devices_t Element::get() const -{ - ALOGV("%s: 0x%X for inputSource %s", __FUNCTION__, mApplicableDevices, getName().c_str()); - return mApplicableDevices; -} -} // namespace audio_policy -} // namespace android - - diff --git a/services/audiopolicy/engineconfigurable/src/InputSource.h b/services/audiopolicy/engineconfigurable/src/InputSource.h deleted file mode 100755 index 6c498dc..0000000 --- a/services/audiopolicy/engineconfigurable/src/InputSource.h +++ /dev/null @@ -1,88 +0,0 @@ -/* - * Copyright (C) 2015 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#pragma once - -#include "Element.h" - -namespace android -{ -namespace audio_policy -{ - -/** - * Specialization of policy base class element for audio_source_t - * @tparam audio_source_t Policy Base Element identified by the audio_source_t definition. - */ -template <> -class Element -{ -public: - Element(const std::string &name) - : mName(name), - mApplicableDevices(AUDIO_DEVICE_NONE) - {} - ~Element() {} - - /** - * Returns identifier of this policy element - * - * @returns string representing the name of this policy element - */ - const std::string &getName() const { return mName; } - - /** - * Set the unique identifier for this policy element. - * - * @tparam Key type of the unique identifier. - * @param[in] identifier to be set. - * - * @return NO_ERROR if the identifier is valid and set correctly, error code otherwise. - */ - status_t setIdentifier(audio_source_t identifier); - - /** - * @return the unique identifier of this policy element. - */ - audio_source_t getIdentifier() const { return mIdentifier; } - - /** - * A Policy element may implement getter/setter function for a given property. - * Property may be routing_strategy, audio_stream_type_t, audio_usage_t, audio_source_t - * or a string. - */ - template - Property get() const; - - template - status_t set(Property property); - -private: - /* Copy facilities are put private to disable copy. */ - Element(const Element &object); - Element &operator=(const Element &object); - - std::string mName; /**< Unique literal Identifier of a policy base element*/ - audio_source_t mIdentifier; /**< Unique numerical Identifier of a policy base element*/ - - audio_devices_t mApplicableDevices; /**< Applicable input device for this input source. */ -}; - -typedef Element InputSource; - -} // namespace audio_policy -} // namespace android - diff --git a/services/audiopolicy/engineconfigurable/src/Strategy.cpp b/services/audiopolicy/engineconfigurable/src/Strategy.cpp deleted file mode 100755 index 847443a..0000000 --- a/services/audiopolicy/engineconfigurable/src/Strategy.cpp +++ /dev/null @@ -1,68 +0,0 @@ -/* - * Copyright (C) 2015 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#define LOG_TAG "APM::AudioPolicyEngine/Strategy" - -#include "Strategy.h" - -using std::string; - -namespace android -{ -namespace audio_policy -{ - -status_t Element::setIdentifier(routing_strategy identifier) -{ - if (identifier >= NUM_STRATEGIES) { - return BAD_VALUE; - } - mIdentifier = identifier; - ALOGD("%s: Strategy %s identifier 0x%X", __FUNCTION__, getName().c_str(), identifier); - return NO_ERROR; -} - -/** - * Set the device associated to this strategy. - * It checks if the output device is valid but allows to set a NONE device - * - * @param[in] devices selected for the given strategy. - * - * @return NO_ERROR if the device is either valid or none, error code otherwise. - */ -template <> -status_t Element::set(audio_devices_t devices) -{ - if (!audio_is_output_devices(devices) && devices != AUDIO_DEVICE_NONE) { - ALOGE("%s: trying to set an invalid device 0x%X for strategy %s", - __FUNCTION__, devices, getName().c_str()); - return BAD_VALUE; - } - ALOGD("%s: 0x%X for strategy %s", __FUNCTION__, devices, getName().c_str()); - mApplicableDevices = devices; - return NO_ERROR; -} - -template <> -audio_devices_t Element::get() const -{ - ALOGV("%s: 0x%X for strategy %s", __FUNCTION__, mApplicableDevices, getName().c_str()); - return mApplicableDevices; -} - -} // namespace audio_policy -} // namespace android - diff --git a/services/audiopolicy/engineconfigurable/src/Strategy.h b/services/audiopolicy/engineconfigurable/src/Strategy.h deleted file mode 100755 index 1157d55..0000000 --- a/services/audiopolicy/engineconfigurable/src/Strategy.h +++ /dev/null @@ -1,89 +0,0 @@ -/* - * Copyright (C) 2015 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#pragma once - -#include "Element.h" -#include - -namespace android -{ -namespace audio_policy -{ - -/** - * @tparam audio_devices_t: Applicable output device(s) for this strategy. - */ -template <> -class Element -{ -public: - Element(const std::string &name) - : mName(name), - mApplicableDevices(AUDIO_DEVICE_NONE) - {} - ~Element() {} - - /** - * Returns identifier of this policy element - * - * @returns string representing the name of this policy element - */ - const std::string &getName() const { return mName; } - - /** - * Set the unique identifier for this policy element. - * - * @tparam Key type of the unique identifier. - * @param[in] identifier to be set. - * - * @return NO_ERROR if the identifier is valid and set correctly, error code otherwise. - */ - status_t setIdentifier(routing_strategy identifier); - - /** - * @return the unique identifier of this policy element. - */ - routing_strategy getIdentifier() const { return mIdentifier; } - - /** - * A Policy element may implement getter/setter function for a given property. - * Property may be routing_strategy, audio_stream_type_t, audio_usage_t, audio_source_t - * or a string. - */ - template - Property get() const; - - template - status_t set(Property property); - -private: - /* Copy facilities are put private to disable copy. */ - Element(const Element &object); - Element &operator=(const Element &object); - - std::string mName; /**< Unique literal Identifier of a policy base element*/ - routing_strategy mIdentifier; /**< Unique numerical Identifier of a policy base element*/ - - audio_devices_t mApplicableDevices; /**< Applicable output device(s) for this strategy. */ -}; - -typedef Element Strategy; - -} // namespace audio_policy -} // namespace android - - diff --git a/services/audiopolicy/engineconfigurable/src/Stream.cpp b/services/audiopolicy/engineconfigurable/src/Stream.cpp deleted file mode 100755 index 7126c27..0000000 --- a/services/audiopolicy/engineconfigurable/src/Stream.cpp +++ /dev/null @@ -1,158 +0,0 @@ -/* - * Copyright (C) 2015 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#define LOG_TAG "APM::AudioPolicyEngine/Stream" - -#include "Stream.h" -#include - -using std::string; - -namespace android -{ -namespace audio_policy -{ - -status_t Element::setIdentifier(audio_stream_type_t identifier) -{ - if (identifier > AUDIO_STREAM_CNT) { - return BAD_VALUE; - } - mIdentifier = identifier; - ALOGD("%s: Stream %s identifier 0x%X", __FUNCTION__, getName().c_str(), identifier); - return NO_ERROR; -} - -/** -* Set the strategy to follow for this stream. -* It checks if the strategy is valid. -* -* @param[in] strategy to be followed. -* -* @return NO_ERROR if the strategy is set correctly, error code otherwise. -*/ -template <> -status_t Element::set(routing_strategy strategy) -{ - if (strategy >= NUM_STRATEGIES) { - return BAD_VALUE; - } - mApplicableStrategy = strategy; - ALOGD("%s: 0x%X for Stream %s", __FUNCTION__, strategy, getName().c_str()); - return NO_ERROR; -} - -template <> -routing_strategy Element::get() const -{ - ALOGV("%s: 0x%X for Stream %s", __FUNCTION__, mApplicableStrategy, getName().c_str()); - return mApplicableStrategy; -} - -status_t Element::setVolumeProfile(Volume::device_category category, - const VolumeCurvePoints &points) -{ - ALOGD("%s: adding volume profile for %s for device category %d, points nb =%d", __FUNCTION__, - getName().c_str(), category, points.size()); - mVolumeProfiles[category] = points; - - for (size_t i = 0; i < points.size(); i++) { - ALOGV("%s: %s cat=%d curve index =%d Index=%d dBAttenuation=%f", - __FUNCTION__, getName().c_str(), category, i, points[i].mIndex, - points[i].mDBAttenuation); - } - return NO_ERROR; -} - -status_t Element::initVolume(int indexMin, int indexMax) -{ - ALOGV("initStreamVolume() stream %s, min %d, max %d", getName().c_str(), indexMin, indexMax); - if (indexMin < 0 || indexMin >= indexMax) { - ALOGW("initStreamVolume() invalid index limits for stream %s, min %d, max %d", - getName().c_str(), indexMin, indexMax); - return BAD_VALUE; - } - mIndexMin = indexMin; - mIndexMax = indexMax; - - return NO_ERROR; -} - -float Element::volIndexToAmpl(Volume::device_category deviceCategory, - int indexInUi) -{ - VolumeProfileConstIterator it = mVolumeProfiles.find(deviceCategory); - if (it == mVolumeProfiles.end()) { - ALOGE("%s: device category %d not found for stream %s", __FUNCTION__, deviceCategory, - getName().c_str()); - return 1.0f; - } - const VolumeCurvePoints curve = mVolumeProfiles[deviceCategory]; - if (curve.size() != Volume::VOLCNT) { - ALOGE("%s: invalid profile for category %d and for stream %s", __FUNCTION__, deviceCategory, - getName().c_str()); - return 1.0f; - } - - // the volume index in the UI is relative to the min and max volume indices for this stream type - int nbSteps = 1 + curve[Volume::VOLMAX].mIndex - - curve[Volume::VOLMIN].mIndex; - - if (mIndexMax - mIndexMin == 0) { - ALOGE("%s: Invalid volume indexes Min=Max=%d", __FUNCTION__, mIndexMin); - return 1.0f; - } - int volIdx = (nbSteps * (indexInUi - mIndexMin)) / - (mIndexMax - mIndexMin); - - // find what part of the curve this index volume belongs to, or if it's out of bounds - int segment = 0; - if (volIdx < curve[Volume::VOLMIN].mIndex) { // out of bounds - return 0.0f; - } else if (volIdx < curve[Volume::VOLKNEE1].mIndex) { - segment = 0; - } else if (volIdx < curve[Volume::VOLKNEE2].mIndex) { - segment = 1; - } else if (volIdx <= curve[Volume::VOLMAX].mIndex) { - segment = 2; - } else { // out of bounds - return 1.0f; - } - - // linear interpolation in the attenuation table in dB - float decibels = curve[segment].mDBAttenuation + - ((float)(volIdx - curve[segment].mIndex)) * - ( (curve[segment+1].mDBAttenuation - - curve[segment].mDBAttenuation) / - ((float)(curve[segment+1].mIndex - - curve[segment].mIndex)) ); - - float amplification = exp(decibels * 0.115129f); /** exp( dB * ln(10) / 20 ) */ - - ALOGV("VOLUME vol index=[%d %d %d], dB=[%.1f %.1f %.1f] ampl=%.5f", - curve[segment].mIndex, volIdx, - curve[segment+1].mIndex, - curve[segment].mDBAttenuation, - decibels, - curve[segment+1].mDBAttenuation, - amplification); - - return amplification; -} - -} // namespace audio_policy -} // namespace android - diff --git a/services/audiopolicy/engineconfigurable/src/Stream.h b/services/audiopolicy/engineconfigurable/src/Stream.h deleted file mode 100755 index 03a9b3e9..0000000 --- a/services/audiopolicy/engineconfigurable/src/Stream.h +++ /dev/null @@ -1,115 +0,0 @@ -/* - * Copyright (C) 2015 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#pragma once - -#include "Element.h" -#include "EngineDefinition.h" -#include -#include -#include - -namespace android -{ -namespace audio_policy -{ -/** - * @tparam routing_strategy: Applicable strategy for this stream. - */ -template <> -class Element -{ -private: - typedef std::map VolumeProfiles; - typedef VolumeProfiles::iterator VolumeProfileIterator; - typedef VolumeProfiles::const_iterator VolumeProfileConstIterator; - -public: - Element(const std::string &name) - : mName(name), - mApplicableStrategy(STRATEGY_MEDIA), - mIndexMin(0), - mIndexMax(1) - {} - ~Element() {} - - /** - * Returns identifier of this policy element - * - * @returns string representing the name of this policy element - */ - const std::string &getName() const { return mName; } - - /** - * Set the unique identifier for this policy element. - * - * @tparam Key type of the unique identifier. - * @param[in] identifier to be set. - * - * @return NO_ERROR if the identifier is valid and set correctly, error code otherwise. - */ - status_t setIdentifier(audio_stream_type_t identifier); - - /** - * @return the unique identifier of this policy element. - */ - audio_stream_type_t getIdentifier() const { return mIdentifier; } - - /** - * A Policy element may implement getter/setter function for a given property. - * Property may be routing_strategy, audio_stream_type_t, audio_usage_t, audio_source_t - * or a string. - */ - template - Property get() const; - - template - status_t set(Property property); - - status_t setVolumeProfile(Volume::device_category category, const VolumeCurvePoints &points); - - float volIndexToAmpl(Volume::device_category deviceCategory, int indexInUi); - - status_t initVolume(int indexMin, int indexMax); - -private: - /* Copy facilities are put private to disable copy. */ - Element(const Element &object); - Element &operator=(const Element &object); - - std::string mName; /**< Unique literal Identifier of a policy base element*/ - audio_stream_type_t mIdentifier; /**< Unique numerical Identifier of a policy base element*/ - - routing_strategy mApplicableStrategy; /**< Applicable strategy for this stream. */ - - /** - * Collection of volume profiles indexed by the stream type. - * Volume is the only reason why the stream profile was not removed from policy when introducing - * attributes. - */ - VolumeProfiles mVolumeProfiles; - - int mIndexMin; - - int mIndexMax; -}; - -typedef Element Stream; - -} // namespace audio_policy -} // namespace android - - diff --git a/services/audiopolicy/engineconfigurable/src/Usage.cpp b/services/audiopolicy/engineconfigurable/src/Usage.cpp deleted file mode 100755 index 5d20828..0000000 --- a/services/audiopolicy/engineconfigurable/src/Usage.cpp +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Copyright (C) 2015 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#define LOG_TAG "APM::AudioPolicyEngine/Usage" - -#include "Usage.h" - -namespace android -{ -namespace audio_policy -{ - -status_t Element::setIdentifier(audio_usage_t identifier) -{ - if (identifier > AUDIO_USAGE_MAX) { - return BAD_VALUE; - } - mIdentifier = identifier; - ALOGD("%s: Usage %s has identifier 0x%X", __FUNCTION__, getName().c_str(), identifier); - return NO_ERROR; -} - -template <> -status_t Element::set(routing_strategy strategy) -{ - if (strategy >= NUM_STRATEGIES) { - return BAD_VALUE; - } - ALOGD("%s: %d for Usage %s", __FUNCTION__, strategy, getName().c_str()); - mApplicableStrategy = strategy; - return NO_ERROR; -} - -template <> -routing_strategy Element::get() const -{ - ALOGD("%s: %d for Usage %s", __FUNCTION__, mApplicableStrategy, getName().c_str()); - return mApplicableStrategy; -} - -} // namespace audio_policy -} // namespace android - - diff --git a/services/audiopolicy/engineconfigurable/src/Usage.h b/services/audiopolicy/engineconfigurable/src/Usage.h deleted file mode 100755 index d69e0e0..0000000 --- a/services/audiopolicy/engineconfigurable/src/Usage.h +++ /dev/null @@ -1,88 +0,0 @@ -/* - * Copyright (C) 2015 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#pragma once - -#include "Element.h" -#include - -namespace android -{ -namespace audio_policy -{ - -/** - * @tparam routing_strategy: Applicable strategy for this usage. - */ -template <> -class Element -{ -public: - Element(const std::string &name) - : mName(name), - mApplicableStrategy(STRATEGY_MEDIA) - {} - ~Element() {} - - /** - * Returns identifier of this policy element - * - * @returns string representing the name of this policy element - */ - const std::string &getName() const { return mName; } - - /** - * Set the unique identifier for this policy element. - * - * @tparam Key type of the unique identifier. - * @param[in] identifier to be set. - * - * @return NO_ERROR if the identifier is valid and set correctly, error code otherwise. - */ - status_t setIdentifier(audio_usage_t identifier); - - /** - * @return the unique identifier of this policy element. - */ - audio_usage_t getIdentifier() const { return mIdentifier; } - - /** - * A Policy element may implement getter/setter function for a given property. - * Property may be routing_strategy, audio_stream_type_t, audio_usage_t, audio_source_t - * or a string. - */ - template - Property get() const; - - template - status_t set(Property property); - -private: - /* Copy facilities are put private to disable copy. */ - Element(const Element &object); - Element &operator=(const Element &object); - - std::string mName; /**< Unique literal Identifier of a policy base element*/ - audio_usage_t mIdentifier; /**< Unique numerical Identifier of a policy base element*/ - routing_strategy mApplicableStrategy; /**< Applicable strategy for this usage. */ -}; - -typedef Element Usage; - -} // namespace audio_policy -} // namespace android - - diff --git a/services/audiopolicy/engineconfigurable/wrapper/Android.mk b/services/audiopolicy/engineconfigurable/wrapper/Android.mk deleted file mode 100644 index 5373613..0000000 --- a/services/audiopolicy/engineconfigurable/wrapper/Android.mk +++ /dev/null @@ -1,42 +0,0 @@ -LOCAL_PATH:= $(call my-dir) - -################################################################## -# WRAPPER LIBRARY -################################################################## - -include $(CLEAR_VARS) - -LOCAL_C_INCLUDES := \ - $(LOCAL_PATH)/include \ - $(TARGET_OUT_HEADERS)/parameter \ - $(TOPDIR)frameworks/av/services/audiopolicy/engineconfigurable/include \ - $(TOPDIR)frameworks/av/services/audiopolicy/engineconfigurable/interface \ - -LOCAL_SRC_FILES:= ParameterManagerWrapper.cpp - -LOCAL_STATIC_LIBRARIES := \ - libmedia_helper \ - libutilities_convert - -LOCAL_MODULE:= libaudiopolicypfwwrapper -LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)/include - -LOCAL_MODULE_TAGS := optional -LOCAL_CFLAGS := -Wall -Werror -Wextra - -include external/stlport/libstlport.mk - -include $(BUILD_STATIC_LIBRARY) - -################################################################## -# CONFIGURATION FILE -################################################################## - -# specific management of audio_policy_criteria.conf -include $(CLEAR_VARS) -LOCAL_MODULE := audio_policy_criteria.conf -LOCAL_MODULE_TAGS := optional -LOCAL_MODULE_CLASS := ETC -LOCAL_MODULE_PATH := $(TARGET_OUT_ETC) -LOCAL_SRC_FILES := config/$(LOCAL_MODULE) -include $(BUILD_PREBUILT) diff --git a/services/audiopolicy/engineconfigurable/wrapper/ParameterManagerWrapper.cpp b/services/audiopolicy/engineconfigurable/wrapper/ParameterManagerWrapper.cpp deleted file mode 100755 index 9dda20c..0000000 --- a/services/audiopolicy/engineconfigurable/wrapper/ParameterManagerWrapper.cpp +++ /dev/null @@ -1,434 +0,0 @@ -/* - * Copyright (C) 2015 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#define LOG_TAG "APM::AudioPolicyEngine/PFWWrapper" - -#include "ParameterManagerWrapper.h" -#include "audio_policy_criteria_conf.h" -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -using std::string; -using std::map; -using std::vector; - -/// PFW related definitions -// Logger -class ParameterMgrPlatformConnectorLogger : public CParameterMgrPlatformConnector::ILogger -{ -public: - ParameterMgrPlatformConnectorLogger() {} - - virtual void log(bool isWarning, const string &log) - { - const static string format("policy-parameter-manager: "); - - if (isWarning) { - ALOGW("%s %s", format.c_str(), log.c_str()); - } else { - ALOGD("%s %s", format.c_str(), log.c_str()); - } - } -}; - -namespace android -{ - -using utilities::convertTo; - -namespace audio_policy -{ -const char *const ParameterManagerWrapper::mPolicyPfwDefaultConfFileName = - "/etc/parameter-framework/ParameterFrameworkConfigurationPolicy.xml"; - -template <> -struct ParameterManagerWrapper::parameterManagerElementSupported {}; -template <> -struct ParameterManagerWrapper::parameterManagerElementSupported {}; - -ParameterManagerWrapper::ParameterManagerWrapper() - : mPfwConnectorLogger(new ParameterMgrPlatformConnectorLogger) -{ - // Connector - mPfwConnector = new CParameterMgrPlatformConnector(mPolicyPfwDefaultConfFileName); - - // Logger - mPfwConnector->setLogger(mPfwConnectorLogger); - - // Load criteria file - if ((loadAudioPolicyCriteriaConfig(gAudioPolicyCriteriaVendorConfFilePath) != NO_ERROR) && - (loadAudioPolicyCriteriaConfig(gAudioPolicyCriteriaConfFilePath) != NO_ERROR)) { - ALOGE("%s: Neither vendor conf file (%s) nor system conf file (%s) could be found", - __FUNCTION__, gAudioPolicyCriteriaVendorConfFilePath, - gAudioPolicyCriteriaConfFilePath); - } - ALOGD("%s: ParameterManagerWrapper instantiated!", __FUNCTION__); -} - -ParameterManagerWrapper::~ParameterManagerWrapper() -{ - // Unset logger - mPfwConnector->setLogger(NULL); - // Remove logger - delete mPfwConnectorLogger; - // Remove connector - delete mPfwConnector; -} - -status_t ParameterManagerWrapper::start() -{ - ALOGD("%s: in", __FUNCTION__); - /// Start PFW - std::string error; - if (!mPfwConnector->start(error)) { - ALOGE("%s: Policy PFW start error: %s", __FUNCTION__, error.c_str()); - return NO_INIT; - } - ALOGD("%s: Policy PFW successfully started!", __FUNCTION__); - return NO_ERROR; -} - - -void ParameterManagerWrapper::addCriterionType(const string &typeName, bool isInclusive) -{ - ALOG_ASSERT(mPolicyCriterionTypes.find(typeName) == mPolicyCriterionTypes.end(), - "CriterionType " << typeName << " already added"); - ALOGD("%s: Adding new criterionType %s", __FUNCTION__, typeName.c_str()); - - mPolicyCriterionTypes[typeName] = mPfwConnector->createSelectionCriterionType(isInclusive); -} - -void ParameterManagerWrapper::addCriterionTypeValuePair( - const string &typeName, - uint32_t numericValue, - const string &literalValue) -{ - ALOG_ASSERT(mPolicyCriterionTypes.find(typeName) != mPolicyCriterionTypes.end(), - "CriterionType " << typeName.c_str() << "not found"); - ALOGV("%s: Adding new value pair (%d,%s) for criterionType %s", __FUNCTION__, - numericValue, literalValue.c_str(), typeName.c_str()); - ISelectionCriterionTypeInterface *criterionType = mPolicyCriterionTypes[typeName]; - criterionType->addValuePair(numericValue, literalValue.c_str()); -} - -void ParameterManagerWrapper::loadCriterionType(cnode *root, bool isInclusive) -{ - ALOG_ASSERT(root != NULL, "error in parsing file"); - cnode *node; - for (node = root->first_child; node != NULL; node = node->next) { - - ALOG_ASSERT(node != NULL, "error in parsing file"); - const char *typeName = node->name; - char *valueNames = (char *)node->value; - - addCriterionType(typeName, isInclusive); - - uint32_t index = 0; - char *ctx; - char *valueName = strtok_r(valueNames, ",", &ctx); - while (valueName != NULL) { - if (strlen(valueName) != 0) { - - // Conf file may use or not pair, if no pair, use incremental index, else - // use provided index. - if (strchr(valueName, ':') != NULL) { - - char *first = strtok(valueName, ":"); - char *second = strtok(NULL, ":"); - ALOG_ASSERT((first != NULL) && (strlen(first) != 0) && - (second != NULL) && (strlen(second) != 0), - "invalid value pair"); - - if (!convertTo(first, index)) { - ALOGE("%s: Invalid index(%s) found", __FUNCTION__, first); - } - addCriterionTypeValuePair(typeName, index, second); - } else { - - uint32_t pfwIndex = isInclusive ? 1 << index : index; - addCriterionTypeValuePair(typeName, pfwIndex, valueName); - index += 1; - } - } - valueName = strtok_r(NULL, ",", &ctx); - } - } -} - -void ParameterManagerWrapper::loadInclusiveCriterionType(cnode *root) -{ - ALOG_ASSERT(root != NULL, "error in parsing file"); - cnode *node = config_find(root, gInclusiveCriterionTypeTag.c_str()); - if (node == NULL) { - return; - } - loadCriterionType(node, true); -} - -void ParameterManagerWrapper::loadExclusiveCriterionType(cnode *root) -{ - ALOG_ASSERT(root != NULL, "error in parsing file"); - cnode *node = config_find(root, gExclusiveCriterionTypeTag.c_str()); - if (node == NULL) { - return; - } - loadCriterionType(node, false); -} - -void ParameterManagerWrapper::parseChildren(cnode *root, string &defaultValue, string &type) -{ - ALOG_ASSERT(root != NULL, "error in parsing file"); - cnode *node; - for (node = root->first_child; node != NULL; node = node->next) { - ALOG_ASSERT(node != NULL, "error in parsing file"); - - if (string(node->name) == gDefaultTag) { - defaultValue = node->value; - } else if (string(node->name) == gTypeTag) { - type = node->value; - } else { - ALOGE("%s: Unrecognized %s %s node", __FUNCTION__, node->name, node->value); - } - } -} - -template -T *ParameterManagerWrapper::getElement(const string &name, std::map &elementsMap) -{ - parameterManagerElementSupported(); - typename std::map::iterator it = elementsMap.find(name); - ALOG_ASSERT(it != elementsMap.end(), "Element " << name << " not found"); - return it->second; -} - -template -const T *ParameterManagerWrapper::getElement(const string &name, const std::map &elementsMap) const -{ - parameterManagerElementSupported(); - typename std::map::const_iterator it = elementsMap.find(name); - ALOG_ASSERT(it != elementsMap.end(), "Element " << name << " not found"); - return it->second; -} - -void ParameterManagerWrapper::loadCriteria(cnode *root) -{ - ALOG_ASSERT(root != NULL, "error in parsing file"); - cnode *node = config_find(root, gCriterionTag.c_str()); - - if (node == NULL) { - ALOGW("%s: no inclusive criteria found", __FUNCTION__); - return; - } - for (node = node->first_child; node != NULL; node = node->next) { - loadCriterion(node); - } -} - -void ParameterManagerWrapper::addCriterion(const string &name, const string &typeName, - const string &defaultLiteralValue) -{ - ALOG_ASSERT(mPolicyCriteria.find(criterionName) == mPolicyCriteria.end(), - "Route Criterion " << criterionName << " already added"); - - ISelectionCriterionTypeInterface *criterionType = - getElement(typeName, mPolicyCriterionTypes); - - ISelectionCriterionInterface *criterion = - mPfwConnector->createSelectionCriterion(name, criterionType); - - mPolicyCriteria[name] = criterion; - int numericalValue = 0; - if (!criterionType->getNumericalValue(defaultLiteralValue.c_str(), numericalValue)) { - ALOGE("%s; trying to apply invalid default literal value", __FUNCTION__, - defaultLiteralValue.c_str()); - } - criterion->setCriterionState(numericalValue); -} - -void ParameterManagerWrapper::loadCriterion(cnode *root) -{ - ALOG_ASSERT(root != NULL, "error in parsing file"); - const char *criterionName = root->name; - - ALOG_ASSERT(mPolicyCriteria.find(criterionName) == mPolicyCriteria.end(), - "Criterion " << criterionName << " already added"); - - string paramKeyName = ""; - string path = ""; - string typeName = ""; - string defaultValue = ""; - - parseChildren(root, defaultValue, typeName); - - addCriterion(criterionName, typeName, defaultValue); -} - -void ParameterManagerWrapper::loadConfig(cnode *root) -{ - ALOG_ASSERT(root != NULL, "error in parsing file"); - cnode *node = config_find(root, gPolicyConfTag.c_str()); - if (node == NULL) { - ALOGW("%s: Could not find node for pfw", __FUNCTION__); - return; - } - ALOGD("%s: Loading conf for pfw", __FUNCTION__); - loadInclusiveCriterionType(node); - loadExclusiveCriterionType(node); - loadCriteria(node); -} - - -status_t ParameterManagerWrapper::loadAudioPolicyCriteriaConfig(const char *path) -{ - ALOG_ASSERT(path != NULL, "error in parsing file: empty path"); - cnode *root; - char *data; - ALOGD("%s", __FUNCTION__); - data = (char *)load_file(path, NULL); - if (data == NULL) { - return -ENODEV; - } - root = config_node("", ""); - ALOG_ASSERT(root != NULL, "Unable to allocate a configuration node"); - config_load(root, data); - - loadConfig(root); - - config_free(root); - free(root); - free(data); - ALOGD("%s: loaded", __FUNCTION__); - return NO_ERROR; -} - -bool ParameterManagerWrapper::isStarted() -{ - return mPfwConnector && mPfwConnector->isStarted(); -} - -status_t ParameterManagerWrapper::setPhoneState(audio_mode_t mode) -{ - ISelectionCriterionInterface *criterion = mPolicyCriteria[gPhoneStateCriterionTag]; - if (!isValueValidForCriterion(criterion, static_cast(mode))) { - return BAD_VALUE; - } - criterion->setCriterionState((int)(mode)); - applyPlatformConfiguration(); - return NO_ERROR; -} - -audio_mode_t ParameterManagerWrapper::getPhoneState() const -{ - const ISelectionCriterionInterface *criterion = - getElement(gPhoneStateCriterionTag, mPolicyCriteria); - return static_cast(criterion->getCriterionState()); -} - -status_t ParameterManagerWrapper::setForceUse(audio_policy_force_use_t usage, - audio_policy_forced_cfg_t config) -{ - // @todo: return an error on a unsupported value - if (usage > AUDIO_POLICY_FORCE_USE_CNT) { - return BAD_VALUE; - } - - ISelectionCriterionInterface *criterion = mPolicyCriteria[gForceUseCriterionTag[usage]]; - if (!isValueValidForCriterion(criterion, static_cast(config))) { - return BAD_VALUE; - } - criterion->setCriterionState((int)config); - applyPlatformConfiguration(); - return NO_ERROR; -} - -audio_policy_forced_cfg_t ParameterManagerWrapper::getForceUse(audio_policy_force_use_t usage) const -{ - // @todo: return an error on a unsupported value - if (usage > AUDIO_POLICY_FORCE_USE_CNT) { - return AUDIO_POLICY_FORCE_NONE; - } - const ISelectionCriterionInterface *criterion = - getElement(gForceUseCriterionTag[usage], mPolicyCriteria); - return static_cast(criterion->getCriterionState()); -} - -bool ParameterManagerWrapper::isValueValidForCriterion(ISelectionCriterionInterface *criterion, - int valueToCheck) -{ - const ISelectionCriterionTypeInterface *interface = criterion->getCriterionType(); - string literalValue; - return interface->getLiteralValue(valueToCheck, literalValue); -} - -status_t ParameterManagerWrapper::setDeviceConnectionState(audio_devices_t devices, - audio_policy_dev_state_t state, - const char */*deviceAddres*/) -{ - ISelectionCriterionInterface *criterion = NULL; - - if (audio_is_output_devices(devices)) { - criterion = mPolicyCriteria[gOutputDeviceCriterionTag]; - } else if (devices & AUDIO_DEVICE_BIT_IN) { - criterion = mPolicyCriteria[gInputDeviceCriterionTag]; - } else { - return BAD_TYPE; - } - if (criterion == NULL) { - ALOGE("%s: no criterion found for devices"); - return DEAD_OBJECT; - } - - int32_t previousDevices = criterion->getCriterionState(); - switch (state) - { - case AUDIO_POLICY_DEVICE_STATE_AVAILABLE: - criterion->setCriterionState(previousDevices |= devices); - break; - - case AUDIO_POLICY_DEVICE_STATE_UNAVAILABLE: - if (devices & AUDIO_DEVICE_BIT_IN) { - devices &= ~AUDIO_DEVICE_BIT_IN; - } - criterion->setCriterionState(previousDevices &= ~devices); - break; - - default: - return BAD_VALUE; - } - applyPlatformConfiguration(); - return NO_ERROR; -} - -void ParameterManagerWrapper::applyPlatformConfiguration() -{ - mPfwConnector->applyConfigurations(); -} - -} // namespace audio_policy -} // namespace android diff --git a/services/audiopolicy/engineconfigurable/wrapper/audio_policy_criteria_conf.h b/services/audiopolicy/engineconfigurable/wrapper/audio_policy_criteria_conf.h deleted file mode 100755 index 58e7135..0000000 --- a/services/audiopolicy/engineconfigurable/wrapper/audio_policy_criteria_conf.h +++ /dev/null @@ -1,71 +0,0 @@ -/* - * Copyright (C) 2015 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#pragma once - -#include -#include - -////////////////////////////////////////////////////////////////////////////////////////////////// -// Definitions for audio policy criteria configuration file (audio_policy_criteria.conf) // -// // -// @TODO: scripted from audio.h & audio_policy,h // -////////////////////////////////////////////////////////////////////////////////////////////////// - -static const char *const gAudioPolicyCriteriaConfFilePath = - "/system/etc/audio_policy_criteria.conf"; -static const char *const gAudioPolicyCriteriaVendorConfFilePath = - "/vendor/etc/audio_policy_criteria.conf"; - -/** - * PFW instances tags - */ -static const std::string &gPolicyConfTag = "Policy"; -static const std::string &gDefaultTag = "Default"; -static const std::string &gTypeTag = "Type"; - -/** - * PFW elements tags - */ -static const std::string &gInclusiveCriterionTypeTag = "InclusiveCriterionType"; -static const std::string &gExclusiveCriterionTypeTag = "ExclusiveCriterionType"; -static const std::string &gCriterionTag = "Criterion"; - -/** - * PFW known criterion tags - */ -static const std::string &gInputDeviceCriterionTag = "AvailableInputDevices"; -static const std::string &gOutputDeviceCriterionTag = "AvailableOutputDevices"; -static const std::string &gPhoneStateCriterionTag = "TelephonyMode"; - -/** - * Order MUST be align with defintiion of audio_policy_force_use_t within audio_policy.h - */ -static const std::string gForceUseCriterionTag[AUDIO_POLICY_FORCE_USE_CNT] = -{ - [AUDIO_POLICY_FORCE_FOR_COMMUNICATION] = "ForceUseForCommunication", - [AUDIO_POLICY_FORCE_FOR_MEDIA] = "ForceUseForMedia", - [AUDIO_POLICY_FORCE_FOR_RECORD] = "ForceUseForRecord", - [AUDIO_POLICY_FORCE_FOR_DOCK] = "ForceUseForDock", - [AUDIO_POLICY_FORCE_FOR_SYSTEM] = "ForceUseForSystem", - [AUDIO_POLICY_FORCE_FOR_HDMI_SYSTEM_AUDIO] = "ForceUseForHdmiSystemAudio" -}; - - - - - - diff --git a/services/audiopolicy/engineconfigurable/wrapper/config/audio_policy_criteria.conf b/services/audiopolicy/engineconfigurable/wrapper/config/audio_policy_criteria.conf deleted file mode 100755 index a4ffdd5..0000000 --- a/services/audiopolicy/engineconfigurable/wrapper/config/audio_policy_criteria.conf +++ /dev/null @@ -1,192 +0,0 @@ -################################################################################################ -# -# @NOTE: -# Audio Policy Criteria file example for generic device build -# -# Any vendor shall have its own configuration within the corresponding device folder -# -################################################################################################ - -######################################################### -# Criterion type Example: -# For each criterion, a couple of numerical, literal values must be provided to the PFW. -# The numerical part is not mandatory. If not filled by the user, a default numerical value will be -# automatically provided by audio HAL using the following logic: -# - Exclusive criterion: -# * 0 -> first literal value, -# * 1 -> second literal value, -# ... -# * N -> (N+1)th literal value. -# - Inclusive criterion: -# * 1 << 0 -> first literal value, -# * 1 << 1 -> second literal value, -# ... -# * 1 << N -> (N+1)th literal value, -# -######################################################### -# Route|Audio { -# InclusiveCriterionType|ExclusiveCriterionType { -# [numerical value 1:],[numerical value 2:],,... -# } -# } - -######################################################### -# Criterion: -######################################################### -# Route|Audio { -# Criterion { -# { -# Type -# Default -# } -# } -# } - -Policy { - ExclusiveCriterionType { - # - # The values of the mode MUST be aligned with the definition of the audio_mode_t - # from system/audio.h - # - AndroidModeType 0:Normal,1:RingTone,2:InCall,3:InCommunication - } - InclusiveCriterionType { - # - # DO NOT CHANGE ORDER. This definition must be aligned with the definition of - # AUDIO_DEVICE_OUT_* within file of android. - # - OutputDevicesMaskType Earpiece,Speaker,WiredHeadset,WiredHeadphone,BluetoothSco,BluetoothScoHeadset,BluetoothScoCarkit,BluetoothA2dp,BluetoothA2dpHeadphones,BluetoothA2dpSpeaker,Hdmi,AnlgDockHeadset,DgtlDockHeadset,UsbAccessory,UsbDevice,RemoteSubmix,TelephonyTx,Line,HdmiArc,Spdif,Fm,AuxLine,SpeakerSafe - } - InclusiveCriterionType { - # - # DO NOT CHANGE ORDER. This definition must be aligned with the definition of - # AUDIO_DEVICE_IN_* within file of android. - # Note also that direction bit will be decimated by AudioHAL in order to allow using a mask - # with the cardinality of 1 between a bit and an input device. - # - InputDevicesMaskType Communication,Ambient,BuiltinMic,BluetoothScoHeadset,WiredHeadset,Hdmi,TelephonyRx,BackMic,RemoteSubmix,AnlgDockHeadset,DgtlDockHeadset,UsbAccessory,UsbDevice,FmTuner,TvTune,Line,Spdif,BluetoothA2dp,Loopback - } - ExclusiveCriterionType { - # - # The values of the mode MUST be aligned with the definition of the - # audio_policy_forced_config_t from system/audio.h - # - ForceUseForCommunicationType 0:ForceNone,1:ForceSpeaker,3:ForceBtSco - } - ExclusiveCriterionType { - # - # The values of the mode MUST be aligned with the definition of the - # audio_policy_forced_config_t from system/audio.h - # - ForceUseForMediaType 0:ForceNone,1:ForceSpeaker,2:ForceHeadphones,4:ForceBtA2dp,5:ForceWiredAccessory,8:ForceAnalogDock,9:ForceDigitalDock,10:ForceNoBtA2dp - } - ExclusiveCriterionType { - # - # The values of the mode MUST be aligned with the definition of the - # audio_policy_forced_config_t from system/audio.h - # - ForceUseForRecordType 0:ForceNone,3:ForceBtSco,5:ForceWiredAccessory - } - ExclusiveCriterionType { - # - # The values of the mode MUST be aligned with the definition of the - # audio_policy_forced_config_t from system/audio.h - # - ForceUseForDockType 0:ForceNone,5:ForceWiredAccessory,6:ForceBtCarDock,7:ForceBtDeskDock,8:ForceAnalogDock,9:ForceDigitalDock - } - ExclusiveCriterionType { - # - # The values of the mode MUST be aligned with the definition of the - # audio_policy_forced_config_t from system/audio.h - # - ForceUseForSystemType 0:ForceNone,11:ForceSystemEnforced - } - ExclusiveCriterionType { - # - # The values of the mode MUST be aligned with the definition of the - # audio_policy_forced_config_t from system/audio.h - # - ForceUseForHdmiSystemAudioType 0:ForceNone,12:ForceHdmiSystemEnforced - } - ExclusiveCriterionType { - Rate 8000,11025,12000,16000,22050,24000,32000,44100,48000,96000,176400,192000 - } - ExclusiveCriterionType { - Format Mp3,AmrNb,AmrWb,Aac,HeAacV1,HeAacV2,Vorbis,Pcm16Bit,Pcm8Bit,Pcm32Bit,Pcm8_24Bit - } - InclusiveCriterionType { - OutputChannelMask FrontLeft,FrontRight,FrontCenter,LowFrequence,BackLeft,BackRight,FromLeftOfCenter,FromRightOfCenter,BackCenter,SideLeft,SideRight,TopCenter,TopFrontLeft,TopFrontCenter,TopFrontRight,TopBackLeft,TopBackCenter,TopBackRight - } - ExclusiveCriterionType { - OutputChannelMasks Mono,Stereo,Quad,QuadBack,QuadSide,5Point1,5Point1Back,5Point1Side,7Point1,All - } - InclusiveCriterionType { - InputChannelMask Left,Right,Front,Back,LeftProcessed,RightProcessed,FrontProcessed,BackProcessed,Pressure,XAxis,YAxis,ZAxis,VoiceUplink,VoiceDnlink - } - ExclusiveCriterionType { - InputChannelMasks Mono,Stereo,FrontBack,VoiceUplinkDnlink,All - } - InclusiveCriterionType { - OutputFlags Direct,Primary,Fast,DeepBuffer,CompressOffload,NonBlocking,HwAvSync - } - ExclusiveCriterionType { - InputSource Default,Mic,VoiceUplink,VoiceDownlink,VoiceCall,Camcorder,VoiceRecognition,VoiceCommunication,RemoteSubmix,Hotword - } - - - Criterion { - AvailableInputDevices { - Type InputDevicesMaskType - Default none - } - } - Criterion { - AvailableOutputDevices { - Type OutputDevicesMaskType - Default none - } - } - Criterion { - TelephonyMode { - Type AndroidModeType - Default Normal - } - } - Criterion { - ForceUseForCommunication { - Type ForceUseForCommunicationType - Default ForceNone - } - } - Criterion { - ForceUseForMedia { - Type ForceUseForMediaType - Default ForceNone - } - } - Criterion { - ForceUseForRecord { - Type ForceUseForRecordType - Default ForceNone - } - } - Criterion { - ForceUseForDock { - Type ForceUseForDockType - Default ForceNone - } - } - Criterion { - ForceUseForSystem { - Type ForceUseForSystemType - Default ForceNone - } - } - Criterion { - ForceUseForHdmiSystemAudio { - Type ForceUseForHdmiSystemAudioType - Default ForceNone - } - } -} - diff --git a/services/audiopolicy/engineconfigurable/wrapper/include/ParameterManagerWrapper.h b/services/audiopolicy/engineconfigurable/wrapper/include/ParameterManagerWrapper.h deleted file mode 100755 index 7530157..0000000 --- a/services/audiopolicy/engineconfigurable/wrapper/include/ParameterManagerWrapper.h +++ /dev/null @@ -1,286 +0,0 @@ -/* - * Copyright (C) 2015 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#pragma once - -#include -#include -#include -#include -#include -#include -#include -#include - -class CParameterMgrPlatformConnector; -class ISelectionCriterionInterface; -class ISelectionCriterionTypeInterface; -class cnode; - -class ParameterMgrPlatformConnectorLogger; - -namespace android -{ -namespace audio_policy -{ - -class ParameterManagerWrapper -{ -private: - typedef std::pair CriterionTypeValuePair; - - typedef std::map CriterionCollection; - typedef std::map CriterionTypeCollection; - typedef CriterionCollection::iterator CriterionMapIterator; - typedef CriterionCollection::const_iterator CriterionMapConstIterator; - typedef CriterionTypeCollection::iterator CriterionTypeMapIterator; - typedef CriterionTypeCollection::const_iterator CriteriaTypeMapConstIterator; - -public: - ParameterManagerWrapper(); - ~ParameterManagerWrapper(); - - /** - * Starts the platform state service. - * It starts the parameter framework policy instance. - * - * @return NO_ERROR if success, error code otherwise. - */ - status_t start(); - - /** - * The following API wrap policy action to criteria - */ - - /** - * Checks if the platform state was correctly started (ie the policy parameter manager - * has been instantiated and started correctly). - * - * @todo: map on initCheck? - * - * @return true if platform state is started correctly, false otherwise. - */ - bool isStarted(); - - /** - * Set Telephony Mode. - * It will set the telephony mode criterion accordingly and apply the configuration in order - * to select the right configuration on domains depending on this mode criterion. - * - * @param[in] mode: Android Phone state (normal, ringtone, csv, in communication) - * - * @return NO_ERROR if criterion set correctly, error code otherwise. - */ - status_t setPhoneState(audio_mode_t mode); - - audio_mode_t getPhoneState() const; - - /** - * Set Force Use config for a given usage. - * It will set the corresponding policy parameter framework criterion. - * - * @param[in] usage for which a configuration shall be forced. - * @param[in] config wished to be forced for the given shall. - * - * @return NO_ERROR if the criterion was set correctly, error code otherwise (e.g. config not - * allowed a given usage...) - */ - status_t setForceUse(audio_policy_force_use_t usage, audio_policy_forced_cfg_t config); - - audio_policy_forced_cfg_t getForceUse(audio_policy_force_use_t usage) const; - - /** - * Set the connection state of device(s). - * It will set the associated policy parameter framework criterion. - * - * @param[in] devices mask of devices for which the state has changed. - * @param[in] state of availability of this(these) device(s). - * @param[in] deviceAddress: the mask might not be enough, as it may represents a type of - * device, so address of the device will help precise identification. - * - * @return NO_ERROR if devices criterion updated correctly, error code otherwise. - */ - status_t setDeviceConnectionState(audio_devices_t devices, audio_policy_dev_state_t state, - const char *deviceAddress); - -private: - /** - * Apply the configuration of the platform on the policy parameter manager. - * Once all the criteria have been set, the client of the platform state must call - * this function in order to have the route PFW taking into account these criteria. - * - * OPENS: shall we expose this? - * - Yes if atomic set operation. - * In this case, abstract it behind the "STAGE AND COMMIT" pattern - * - no if need to set more than one before triggering an apply configuration. - */ - void applyPlatformConfiguration(); - - /** - * Load the criterion configuration file. - * - * @param[in] path Criterion conf file path. - * - * @return NO_ERROR is parsing successful, error code otherwise. - */ - status_t loadAudioPolicyCriteriaConfig(const char *path); - - /** - * Add a criterion type to AudioPolicyPfw. - * - * @param[in] typeName of the PFW criterion type. - * @param[in] isInclusive attribute of the criterion type. - */ - void addCriterionType(const std::string &typeName, bool isInclusive); - - /** - * Add a criterion type value pair to AudioPolicyPfw. - * - * @param[in] typeName criterion type name to which this value pair is added to. - * @param[in] numeric part of the value pair. - * @param[in] literal part of the value pair. - */ - void addCriterionTypeValuePair(const std::string &typeName, uint32_t numeric, - const std::string &literal); - - /** - * Add a criterion to AudioPolicyPfw. - * - * @param[in] name of the PFW criterion. - * @param[in] typeName criterion type name to which this criterion is associated to. - * @param[in] defaultLiteralValue of the PFW criterion. - */ - void addCriterion(const std::string &name, - const std::string &typeName, - const std::string &defaultLiteralValue); - /** - * Parse and load the inclusive criterion type from configuration file. - * - * @param[in] root node of the configuration file. - */ - void loadInclusiveCriterionType(cnode *root); - - /** - * Parse and load the exclusive criterion type from configuration file. - * - * @param[in] root node of the configuration file. - */ - void loadExclusiveCriterionType(cnode *root); - - /** - * Parse and load the criteria from configuration file. - * - * @param[in] root node of the configuration file. - */ - void loadCriteria(cnode *root); - - /** - * Parse and load a criterion from configuration file. - * - * @param[in] root node of the configuration file. - */ - void loadCriterion(cnode *root); - - /** - * Parse and load the criterion types from configuration file. - * - * @param[in] root node of the configuration file - * @param[in] isInclusive true if inclusive, false is exclusive. - */ - void loadCriterionType(cnode *root, bool isInclusive); - - /** - * Load the configuration file. - * - * @param[in] root node of the configuration file. - */ - void loadConfig(cnode *root); - - /** - * Parse and load the chidren node from a given root node. - * - * @param[in] root node of the configuration file - * @param[out] defaultValue of the parameter manager element to retrieve. - * @param[out] type of the parameter manager element to retrieve. - */ - void parseChildren(cnode *root, std::string &defaultValue, std::string &type); - - /** - * Retrieve an element from a map by its name. - * - * @tparam T type of element to search. - * @param[in] name name of the element to find. - * @param[in] elementsMap maps of elements to search into. - * - * @return valid pointer on element if found, NULL otherwise. - */ - template - T *getElement(const std::string &name, std::map &elementsMap); - - /** - * Retrieve an element from a map by its name. Const version. - * - * @tparam T type of element to search. - * @param[in] name name of the element to find. - * @param[in] elementsMap maps of elements to search into. - * - * @return valid pointer on element if found, NULL otherwise. - */ - template - const T *getElement(const std::string &name, - const std::map &elementsMap) const; - - /** - * set the value of a component state. - * - * @param[in] value new value to set to the component state. - * @param[in] stateName of the component state. - */ - void setValue(int value, const std::string &stateName); - - /** - * get the value of a component state. - * - * @param[in] name of the component state. - * - * @return value of the component state - */ - int getValue(const std::string &stateName) const; - - bool isValueValidForCriterion(ISelectionCriterionInterface *criterion, int valueToCheck); - - CriterionTypeCollection mPolicyCriterionTypes; /**< Policy Criterion Type map. */ - CriterionCollection mPolicyCriteria; /**< Policy Criterion Map. */ - - CParameterMgrPlatformConnector *mPfwConnector; /**< Policy Parameter Manager connector. */ - ParameterMgrPlatformConnectorLogger *mPfwConnectorLogger; /**< Policy PFW logger. */ - - - /** - * provide a compile time error if no specialization is provided for a given type. - * - * @tparam T: type of the parameter manager element. Supported one are: - * - Criterion - * - CriterionType. - */ - template - struct parameterManagerElementSupported; - - static const char *const mPolicyPfwDefaultConfFileName; /**< Default Policy PFW top file name.*/ -}; - -} // namespace audio_policy -} // namespace android -- cgit v1.1