diff options
author | Eric Laurent <elaurent@google.com> | 2015-04-25 05:21:56 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2015-04-25 05:21:57 +0000 |
commit | 5e95559255d1abd62c78b308731ebe3991186e94 (patch) | |
tree | f6dca8da5a00a0c3fd3f5a7fe235edae53e3e28a | |
parent | 684a353f50b86c80d6fac21cac7494c2df1a2f46 (diff) | |
parent | 6fc6a64fa3b0a9e4577eb763590f531c0a50a27b (diff) | |
download | frameworks_av-5e95559255d1abd62c78b308731ebe3991186e94.zip frameworks_av-5e95559255d1abd62c78b308731ebe3991186e94.tar.gz frameworks_av-5e95559255d1abd62c78b308731ebe3991186e94.tar.bz2 |
Merge "Revert "Add a configurable version of the policy engine based on PFW""
64 files changed, 2 insertions, 9242 deletions
diff --git a/services/audiopolicy/Android.mk b/services/audiopolicy/Android.mk index 5b38e1c..d4ce86a 100644 --- a/services/audiopolicy/Android.mk +++ b/services/audiopolicy/Android.mk @@ -64,23 +64,8 @@ LOCAL_SHARED_LIBRARIES := \ liblog \ libsoundtrigger -ifeq ($(USE_CONFIGURABLE_AUDIO_POLICY), 1) - -LOCAL_REQUIRED_MODULES := \ - parameter-framework.policy \ - audio_policy_criteria.conf \ - -LOCAL_C_INCLUDES += \ - $(TOPDIR)frameworks/av/services/audiopolicy/engineconfigurable/include \ - -LOCAL_SHARED_LIBRARIES += libaudiopolicyengineconfigurable - -else - LOCAL_SHARED_LIBRARIES += libaudiopolicyenginedefault -endif - LOCAL_C_INCLUDES += \ $(TOPDIR)frameworks/av/services/audiopolicy/common/include \ $(TOPDIR)frameworks/av/services/audiopolicy/engine/interface \ diff --git a/services/audiopolicy/engine/interface/AudioPolicyManagerInterface.h b/services/audiopolicy/engine/interface/AudioPolicyManagerInterface.h index e73e543..db0573f 100755 --- a/services/audiopolicy/engine/interface/AudioPolicyManagerInterface.h +++ b/services/audiopolicy/engine/interface/AudioPolicyManagerInterface.h @@ -107,8 +107,8 @@ public: * @param[in] usage for which a configuration shall be forced. * @param[in] config wished to be forced for the given usage. * - * @return NO_ERROR if the Force Use config was set correctly, error code otherwise (e.g. config - * not allowed a given usage...) + * @return NO_ERROR if the Force Use config was set correctly, error code otherwise (e.g. config not + * allowed a given usage...) */ virtual status_t setForceUse(audio_policy_force_use_t usage, audio_policy_forced_cfg_t config) = 0; 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 <class RequestedInterface> - 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 <Volume.h> -#include <vector> - -typedef std::vector<VolumeCurvePoint> 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 <RoutingStrategy.h> -#include <EngineDefinition.h> -#include <Volume.h> -#include <system/audio.h> -#include <utils/Errors.h> -#include <string> -#include <vector> - -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 @@ -<?xml version="1.0" encoding="UTF-8"?> -<ParameterFrameworkConfiguration xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:noNamespaceSchemaLocation="Schemas/ParameterFrameworkConfiguration.xsd" - SystemClassName="Policy" ServerPort="5019" TuningAllowed="true"> - - <SubsystemPlugins> - <Location Folder=""> - <Plugin Name="libpolicy-subsystem.so"/> - </Location> - </SubsystemPlugins> - <StructureDescriptionFileLocation Path="Structure/Policy/PolicyClass.xml"/> - <SettingsConfiguration> - <ConfigurableDomainsFileLocation Path="Settings/Policy/PolicyConfigurableDomains.xml"/> - </SettingsConfiguration> -</ParameterFrameworkConfiguration> 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 @@ -<?xml version="1.0" encoding="UTF-8"?> -<SystemClass xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:noNamespaceSchemaLocation="../../Schemas/SystemClass.xsd" Name="Policy"> - <SubsystemInclude Path="PolicySubsystem.xml"/> -</SystemClass> 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 @@ -<?xml version="1.0" encoding="UTF-8"?> -<ComponentTypeSet xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xmlns:xi="http://www.w3.org/2001/XInclude" - xsi:noNamespaceSchemaLocation="Schemas/ComponentTypeSet.xsd"> - <!-- Output devices definition as a bitfield for the supported devices per output - profile. It must match with the output device enum parameter. - --> - <!--#################### GLOBAL COMPONENTS BEGIN ####################--> - <!-- Common Types defintion --> - <xi:include href="PolicySubsystem-Volume.xml"/> - - <!--#################### GLOBAL COMPONENTS END ####################--> - - <ComponentType Name="OutputDevicesMask" Description="32th bit is not allowed as dedicated - for input devices detection"> - <BitParameterBlock Name="mask" Size="32"> - <BitParameter Name="earpiece" Size="1" Pos="0"/> - <BitParameter Name="speaker" Size="1" Pos="1"/> - <BitParameter Name="wired_headset" Size="1" Pos="2"/> - <BitParameter Name="wired_headphone" Size="1" Pos="3"/> - <BitParameter Name="bluetooth_sco" Size="1" Pos="4"/> - <BitParameter Name="bluetooth_sco_headset" Size="1" Pos="5"/> - <BitParameter Name="bluetooth_sco_carkit" Size="1" Pos="6"/> - <BitParameter Name="bluetooth_a2dp" Size="1" Pos="7"/> - <BitParameter Name="bluetooth_a2dp_headphones" Size="1" Pos="8"/> - <BitParameter Name="bluetooth_a2dp_speaker" Size="1" Pos="9"/> - <BitParameter Name="hdmi" Size="1" Pos="10"/> - <BitParameter Name="angl_dock_headset" Size="1" Pos="11"/> - <BitParameter Name="dgtl_dock_headset" Size="1" Pos="12"/> - <BitParameter Name="usb_accessory" Size="1" Pos="13"/> - <BitParameter Name="usb_device" Size="1" Pos="14"/> - <BitParameter Name="remote_submix" Size="1" Pos="15"/> - <BitParameter Name="telephony_tx" Size="1" Pos="26"/> - <BitParameter Name="line" Size="1" Pos="17"/> - <BitParameter Name="hdmi_arc" Size="1" Pos="18"/> - <BitParameter Name="spdif" Size="1" Pos="19"/> - <BitParameter Name="fm" Size="1" Pos="20"/> - <BitParameter Name="aux_line" Size="1" Pos="21"/> - <BitParameter Name="speaker_safe" Size="1" Pos="22"/> - </BitParameterBlock> - </ComponentType> - - <!-- Input devices definition as a bitfield for the supported devices per Input - profile. It must match with the Input device enum parameter. - --> - <ComponentType Name="InputDevicesMask"> - <BitParameterBlock Name="mask" Size="32"> - <BitParameter Name="communication" Size="1" Pos="0"/> - <BitParameter Name="ambient" Size="1" Pos="1"/> - <BitParameter Name="builtin_mic" Size="1" Pos="2"/> - <BitParameter Name="bluetooth_sco_headset" Size="1" Pos="3"/> - <BitParameter Name="wired_headset" Size="1" Pos="4"/> - <BitParameter Name="hdmi" Size="1" Pos="5"/> - <BitParameter Name="telephony_rx" Size="1" Pos="6"/> - <BitParameter Name="back_mic" Size="1" Pos="7"/> - <BitParameter Name="remote_submix" Size="1" Pos="8"/> - <BitParameter Name="anlg_dock_headset" Size="1" Pos="9"/> - <BitParameter Name="dgtl_dock_headset" Size="1" Pos="10"/> - <BitParameter Name="usb_accessory" Size="1" Pos="11"/> - <BitParameter Name="usb_device" Size="1" Pos="12"/> - <BitParameter Name="fm_tuner" Size="1" Pos="13"/> - <BitParameter Name="tv_tuner" Size="1" Pos="14"/> - <BitParameter Name="line" Size="1" Pos="15"/> - <BitParameter Name="spdif" Size="1" Pos="16"/> - <BitParameter Name="bluetooth_a2dp" Size="1" Pos="17"/> - <BitParameter Name="loopback" Size="1" Pos="18"/> - <BitParameter Name="in" Size="1" Pos="31"/> - </BitParameterBlock> - </ComponentType> - - <ComponentType Name="OutputFlags" - Description="the audio output flags serve two purposes: - - when an AudioTrack is created they indicate a wish to be connected to an - output stream with attributes corresponding to the specified flags. - - when present in an output profile descriptor listed for a particular audio - hardware module, they indicate that an output stream can be opened that - supports the attributes indicated by the flags. - The audio policy manager will try to match the flags in the request - (when getOuput() is called) to an available output stream."> - <BitParameterBlock Name="mask" Size="32"> - <BitParameter Name="direct" Size="1" Pos="0"/> - <BitParameter Name="primary" Size="1" Pos="1"/> - <BitParameter Name="fast" Size="1" Pos="2"/> - <BitParameter Name="deep_buffer" Size="1" Pos="3"/> - <BitParameter Name="compress_offload" Size="1" Pos="4"/> - <BitParameter Name="non_blocking" Size="1" Pos="5"/> - <BitParameter Name="hw_av_sync" Size="1" Pos="6"/> - </BitParameterBlock> - </ComponentType> - - <ComponentType Name="InputFlags" - Description="The audio input flags are analogous to audio output flags. - Currently they are used only when an AudioRecord is created, - to indicate a preference to be connected to an input stream with - attributes corresponding to the specified flags."> - <BitParameterBlock Name="mask" Size="32"> - <BitParameter Name="fast" Size="1" Pos="0"/> - <BitParameter Name="hw_hotword" Size="1" Pos="2"/> - </BitParameterBlock> - </ComponentType> - - <ComponentType Name="InputSourcesMask" Description="The audio input source is also known - as the use case."> - <BitParameterBlock Name="mask" Size="32"> - <BitParameter Name="default" Size="1" Pos="0"/> - <BitParameter Name="mic" Size="1" Pos="1"/> - <BitParameter Name="voice_uplink" Size="1" Pos="2"/> - <BitParameter Name="voice_downlink" Size="1" Pos="3"/> - <BitParameter Name="voice_call" Size="1" Pos="4"/> - <BitParameter Name="camcorder" Size="1" Pos="5"/> - <BitParameter Name="voice_recognition" Size="1" Pos="6"/> - <BitParameter Name="voice_communication" Size="1" Pos="7"/> - <BitParameter Name="remote_submix" Size="1" Pos="8"/> - <BitParameter Name="fm_tuner" Size="1" Pos="9"/> - <BitParameter Name="hotword" Size="1" Pos="10"/> - </BitParameterBlock> - </ComponentType> - - <!-- Routing Strategy definition as an enumeration. Numerical value must match the value - of the routing strategy in policy header file. --> - <ComponentType Name="Strategy"> - <EnumParameter Name="strategy" Size="32"> - <ValuePair Literal="media" Numerical="0"/> - <ValuePair Literal="phone" Numerical="1"/> - <ValuePair Literal="sonification" Numerical="2"/> - <ValuePair Literal="sonification_respectful" Numerical="3"/> - <ValuePair Literal="dtmf" Numerical="4"/> - <ValuePair Literal="enforced_audible" Numerical="5"/> - <ValuePair Literal="transmitted_through_speaker" Numerical="6"/> - <ValuePair Literal="accessibility" Numerical="7"/> - <ValuePair Literal="rerouting" Numerical="8"/> - </EnumParameter> - </ComponentType> - - <!--#################### STRATEGY COMMON TYPES BEGIN ####################--> - - <ComponentType Name="StrategyConfig" Mapping="Strategy:'%1'"> - <Component Name="selected_output_devices" Type="OutputDevicesMask"/> - </ComponentType> - - <!--#################### STRATEGY COMMON TYPES END ####################--> - - <!--#################### STREAM COMMON TYPES BEGIN ####################--> - - <ComponentType Name="Stream"> - <Component Name="applicable_strategy" Type="Strategy" Mapping="Stream:'%1'"/> - <Component Name="volume_profiles" Type="VolumeCurvesCategories" - Description="A volume profile is refered by the stream type."/> - </ComponentType> - - <!--#################### STREAM COMMON TYPES END ####################--> - - <!--#################### USAGE COMMON TYPES BEGIN ####################--> - - <ComponentType Name="Usage"> - <Component Name="applicable_strategy" Type="Strategy" Mapping="Usage:'%1'"/> - </ComponentType> - - <!--#################### USAGE COMMON TYPES END ####################--> - - <!--#################### INPUT SOURCE COMMON TYPES BEGIN ####################--> - - <ComponentType Name="InputSource"> - <Component Name="applicable_input_device" Type="InputDevicesMask" - Mapping="InputSource:'%1'" Description="Selected Input device"/> - </ComponentType> - - <!--#################### INPUT SOURCE COMMON TYPES END ####################--> - -</ComponentTypeSet> 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 @@ -<?xml version="1.0" encoding="UTF-8"?> -<ComponentTypeSet xmlns:xi="http://www.w3.org/2001/XInclude" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:noNamespaceSchemaLocation="Schemas/ComponentTypeSet.xsd"> - <ComponentType Name="VolumeCurvePoints"> - <ParameterBlock Name="curve_points" ArrayLength="4" Mapping="VolumeProfile:'%1'" - Description="4 points to define the volume attenuation curve, each - characterized by the volume index (from 0 to 100) at which - they apply, and the attenuation in dB at that index. - We use 100 steps to avoid rounding errors when computing - the volume"> - <IntegerParameter Name="index" Size="32"/> - <FixedPointParameter Name="db_attenuation" Size="16" Integral="7" Fractional="8"/> - </ParameterBlock> - </ComponentType> - - <ComponentType Name="VolumeCurvesCategories"> - <Component Name="headset_device_category" Type="VolumeCurvePoints" Mapping="Category:0"/> - <Component Name="speaker_device_category" Type="VolumeCurvePoints" Mapping="Category:1"/> - <Component Name="earpiece_device_category" Type="VolumeCurvePoints" Mapping="Category:2"/> - <Component Name="extmedia_device_category" Type="VolumeCurvePoints" Mapping="Category:3"/> - </ComponentType> - -</ComponentTypeSet> - - 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 @@ -<?xml version="1.0" encoding="UTF-8"?> -<Subsystem xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xmlns:xi="http://www.w3.org/2001/XInclude" - xsi:noNamespaceSchemaLocation="Schemas/Subsystem.xsd" - Name="policy" Type="Policy" Endianness="Little"> - - <ComponentLibrary> - <!--#################### GLOBAL COMPONENTS BEGIN ####################--> - <!-- Common Types defintion --> - <xi:include href="PolicySubsystem-CommonTypes.xml"/> - - <!--#################### GLOBAL COMPONENTS END ####################--> - - <!--#################### STRATEGY BEGIN ####################--> - - <ComponentType Name="Strategies" Description="Identifier must match the enum value to make - the link between the PolicyManager and PFW"> - <Component Name="media" Type="StrategyConfig" Mapping="Amend1:Media,Identifier:0"/> - <Component Name="phone" Type="StrategyConfig" Mapping="Amend1:Phone,Identifier:1"/> - <Component Name="sonification" Type="StrategyConfig" - Mapping="Amend1:Sonification,Identifier:2"/> - <Component Name="sonification_respectful" Type="StrategyConfig" - Mapping="Amend1:SonificationRespectful,Identifier:3"/> - <Component Name="dtmf" Type="StrategyConfig" Mapping="Amend1:Dtmf,Identifier:4"/> - <Component Name="enforced_audible" Type="StrategyConfig" - Mapping="Amend1:EnforcedAudible,Identifier:5"/> - <Component Name="transmitted_through_speaker" Type="StrategyConfig" - Mapping="Amend1:TransmittedThroughSpeaker,Identifier:6"/> - <Component Name="accessibility" Type="StrategyConfig" - Mapping="Amend1:Accessibility,Identifier:7"/> - <Component Name="rerouting" Type="StrategyConfig" - Mapping="Amend1:Rerouting,Identifier:8"/> - </ComponentType> - - <!--#################### STRATEGY END ####################--> - - <!--#################### STREAM BEGIN ####################--> - - <ComponentType Name="Streams" Description="associated to audio_stream_type_t definition, - identifier mapping must match the value of the enum"> - <Component Name="voice_call" Type="Stream" Mapping="Amend1:VoiceCall,Identifier:0"/> - <Component Name="system" Type="Stream" Mapping="Amend1:System,Identifier:1"/> - <Component Name="ring" Type="Stream" Mapping="Amend1:Ring,Identifier:2"/> - <Component Name="music" Type="Stream" Mapping="Amend1:Music,Identifier:3"/> - <Component Name="alarm" Type="Stream" Mapping="Amend1:Alarm,Identifier:4"/> - <Component Name="notification" Type="Stream" - Mapping="Amend1:Notification,Identifier:5"/> - <Component Name="bluetooth_sco" Type="Stream" - Mapping="Amend1:BluetoothSco,Identifier:6"/> - <Component Name="enforced_audible" Type="Stream" - Mapping="Amend1:EnforceAudible,Identifier:7" - Description="Sounds that cannot be muted by user and must - be routed to speaker"/> - <Component Name="dtmf" Type="Stream" Mapping="Amend1:Dtmf,Identifier:8"/> - <Component Name="tts" Type="Stream" Mapping="Amend1:Tts,Identifier:9" - Description="Transmitted Through Speaker. - Plays over speaker only, silent on other devices"/> - <Component Name="accessibility" Type="Stream" - Mapping="Amend1:Accessibility,Identifier:10" - Description="For accessibility talk back prompts"/> - <Component Name="rerouting" Type="Stream" Mapping="Amend1:Rerouting,Identifier:11" - Description="For dynamic policy output mixes"/> - <Component Name="patch" Type="Stream" Mapping="Amend1:Patch,Identifier:12" - Description="For internal audio flinger tracks. Fixed volume"/> - </ComponentType> - - <!--#################### STREAM END ####################--> - - <!--#################### USAGE BEGIN ####################--> - - <ComponentType Name="Usages" Description="associated to audio_stream_type_t definition, - identifier mapping must match the value of the enum"> - <Component Name="unknown" Type="Usage" Mapping="Amend1:Unknown,Identifier:0"/> - <Component Name="media" Type="Usage" Mapping="Amend1:Media,Identifier:1"/> - <Component Name="voice_communication" Type="Usage" - Mapping="Amend1:VoiceCommunication,Identifier:2"/> - <Component Name="voice_communication_signalling" Type="Usage" - Mapping="Amend1:VoiceCommunicationSignalling,Identifier:3"/> - <Component Name="alarm" Type="Usage" Mapping="Amend1:Alarm,Identifier:4"/> - <Component Name="notification" Type="Usage" Mapping="Amend1:Notification,Identifier:5"/> - <Component Name="notification_telephony_ringtone" Type="Usage" - Mapping="Amend1:NotificationTelephonyRingtone,Identifier:6"/> - <Component Name="notification_communication_request" Type="Usage" - Mapping="Amend1:NotificationCommunicationRequest,Identifier:7"/> - <Component Name="notification_communication_instant" Type="Usage" - Mapping="Amend1:NotificationCommunicationInstant,Identifier:8"/> - <Component Name="notification_communication_delayed" Type="Usage" - Mapping="Amend1:NotificationCommunicationDelated,Identifier:9"/> - <Component Name="notification_event" Type="Usage" - Mapping="Amend1:NotificationEvent,Identifier:10"/> - <Component Name="assistance_accessibility" Type="Usage" - Mapping="Amend1:AssistanceAccessibility,Identifier:11"/> - <Component Name="assistance_navigation_guidance" Type="Usage" - Mapping="Amend1:AssistanceNavigationGuidance,Identifier:12"/> - <Component Name="assistance_sonification" Type="Usage" - Mapping="Amend1:AssistanceSonification,Identifier:13"/> - <Component Name="game" Type="Usage" Mapping="Amend1:BluetoothSco,Identifier:14"/> - <Component Name="virtual_source" Type="Usage" - Mapping="Amend1:VirtualSource,Identifier:15"/> - </ComponentType> - - <!--#################### USAGE END ####################--> - - <!--#################### INPUT SOURCE BEGIN ####################--> - - <ComponentType Name="InputSources" Description="associated to audio_source_t definition, - identifier mapping must match the value of the enum"> - <Component Name="default" Type="InputSource" Mapping="Amend1:Default,Identifier:0"/> - <Component Name="mic" Type="InputSource" Mapping="Amend1:Mic,Identifier:1"/> - <Component Name="voice_uplink" Type="InputSource" - Mapping="Amend1:VoiceUplink,Identifier:2"/> - <Component Name="voice_downlink" Type="InputSource" - Mapping="Amend1:VoiceDownlink,Identifier:3"/> - <Component Name="voice_call" Type="InputSource" - Mapping="Amend1:VoiceCall,Identifier:4"/> - <Component Name="camcorder" Type="InputSource" Mapping="Amend1:Camcorder,Identifier:5"/> - <Component Name="voice_recognition" Type="InputSource" - Mapping="Amend1:VoiceRecognition,Identifier:6"/> - <Component Name="voice_communication" Type="InputSource" - Mapping="Amend1:VoiceCommunication,Identifier:7"/> - <Component Name="remote_submix" Type="InputSource" - Mapping="Amend1:RemoteSubmix,Identifier:8"/> - <Component Name="fm_tuner" Type="InputSource" Mapping="Amend1:FmTuner,Identifier:1998"/> - <Component Name="hotword" Type="InputSource" Mapping="Amend1:Hotword,Identifier:1999"/> - </ComponentType> - - <!--#################### INPUT SOURCE END ####################--> - - </ComponentLibrary> - - <InstanceDefinition> - <Component Name="streams" Type="Streams"/> - <Component Name="strategies" Type="Strategies"/> - <Component Name="input_sources" Type="InputSources"/> - <Component Name="usages" Type="Usages"/> - </InstanceDefinition> -</Subsystem> 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<const PolicySubsystem *>( - instanceConfigurableElement->getBelongingSubsystem())), - mPolicyPluginInterface(mPolicySubsystem->getPolicyPluginInterface()), - mApplicableInputDevice(mDefaultApplicableInputDevice) -{ - mId = static_cast<audio_source_t>(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 <AudioPolicyPluginInterface.h> -#include <string> - -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 <AudioPolicyPluginInterface.h> -#include <AudioPolicyEngineInstance.h> -#include <utils/Log.h> - -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<android::AudioPolicyPluginInterface>(); - 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<Stream>( - mStreamComponentName, - (1 << MappingKeyAmend1) | (1 << MappingKeyIdentifier)) - ); - addSubsystemObjectFactory( - new TSubsystemObjectFactory<Strategy>( - mStrategyComponentName, - (1 << MappingKeyAmend1) | (1 << MappingKeyIdentifier)) - ); - addSubsystemObjectFactory( - new TSubsystemObjectFactory<Usage>( - mUsageComponentName, - (1 << MappingKeyAmend1) | (1 << MappingKeyIdentifier)) - ); - addSubsystemObjectFactory( - new TSubsystemObjectFactory<InputSource>( - mInputSourceComponentName, - (1 << MappingKeyAmend1) | (1 << MappingKeyIdentifier)) - ); - addSubsystemObjectFactory( - new TSubsystemObjectFactory<VolumeProfile>( - 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 <string> - -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<PolicySubsystem>()); -} -} 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<const PolicySubsystem *>( - instanceConfigurableElement->getBelongingSubsystem())), - mPolicyPluginInterface(mPolicySubsystem->getPolicyPluginInterface()), - mApplicableOutputDevice(mDefaultApplicableOutputDevice) -{ - mId = static_cast<routing_strategy>(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 <AudioPolicyPluginInterface.h> -#include <string> - -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<const PolicySubsystem *>( - instanceConfigurableElement->getBelongingSubsystem())), - mPolicyPluginInterface(mPolicySubsystem->getPolicyPluginInterface()), - mApplicableStrategy(mDefaultApplicableStrategy) -{ - mId = static_cast<audio_stream_type_t>(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<routing_strategy>(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 <AudioPolicyPluginInterface.h> -#include <string> - -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<const PolicySubsystem *>( - instanceConfigurableElement->getBelongingSubsystem())), - mPolicyPluginInterface(mPolicySubsystem->getPolicyPluginInterface()), - mApplicableStrategy(mDefaultApplicableStrategy) -{ - mId = static_cast<audio_usage_t>(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<routing_strategy>(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 <AudioPolicyPluginInterface.h> -#include <string> - -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 <Volume.h> -#include <math.h> - -using std::string; - -VolumeProfile::VolumeProfile(const string &mappingValue, - CInstanceConfigurableElement *instanceConfigurableElement, - const CMappingContext &context) - : CFormattedSubsystemObject(instanceConfigurableElement, - mappingValue, - MappingKeyAmend1, - (MappingKeyAmendEnd - MappingKeyAmend1 + 1), - context), - mPolicySubsystem(static_cast<const PolicySubsystem *>( - 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<Volume::device_category>(categoryKey); - } - mId = static_cast<audio_stream_type_t>(context.getItemAsInteger(MappingKeyIdentifier)); - - // (no exception support, defer the error) - if (instanceConfigurableElement->getType() != CInstanceConfigurableElement::EParameterBlock) { - return; - } - // Get actual element type - const CParameterBlockType *parameterType = static_cast<const CParameterBlockType *>( - 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<float>(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 <Volume.h> -#include <AudioPolicyPluginInterface.h> -#include <string> - -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 <utils/Errors.h> -#include <system/audio.h> -#include <utils/Log.h> -#include <map> -#include <stdint.h> -#include <string> - -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 <typename Key> -class Collection : public std::map<Key, Element<Key> *> -{ -private: - typedef Element<Key> T; - typedef typename std::map<Key, T *>::iterator CollectionIterator; - typedef typename std::map<Key, T *>::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<audio_stream_type_t>::collectionSupported {}; -template <> -struct Collection<std::string>::collectionSupported {}; -template <> -struct Collection<audio_usage_t>::collectionSupported {}; -template <> -struct Collection<audio_source_t>::collectionSupported {}; -template <> -struct Collection<routing_strategy>::collectionSupported {}; - -typedef Collection<routing_strategy> StrategyCollection; -typedef Collection<audio_stream_type_t> StreamCollection; -typedef Collection<audio_usage_t> UsageCollection; -typedef Collection<audio_source_t> 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 <stdint.h> -#include <string> -#include <utils/Errors.h> -#include <system/audio.h> -#include <utils/Log.h> - -namespace android -{ -namespace audio_policy -{ - -template <typename Key> -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 <typename Property> - 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 <typename Property> - 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 <policy.h> -#include <ParameterManagerWrapper.h> - -using std::string; -using std::map; - -namespace android -{ -namespace audio_policy -{ -template <> -StrategyCollection &Engine::getCollection<routing_strategy>() -{ - return mStrategyCollection; -} -template <> -StreamCollection &Engine::getCollection<audio_stream_type_t>() -{ - return mStreamCollection; -} -template <> -UsageCollection &Engine::getCollection<audio_usage_t>() -{ - return mUsageCollection; -} -template <> -InputSourceCollection &Engine::getCollection<audio_source_t>() -{ - return mInputSourceCollection; -} - -template <> -const StrategyCollection &Engine::getCollection<routing_strategy>() const -{ - return mStrategyCollection; -} -template <> -const StreamCollection &Engine::getCollection<audio_stream_type_t>() const -{ - return mStreamCollection; -} -template <> -const UsageCollection &Engine::getCollection<audio_usage_t>() const -{ - return mUsageCollection; -} -template <> -const InputSourceCollection &Engine::getCollection<audio_source_t>() 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<audio_stream_type_t>(streamType); - if (stream == NULL) { - ALOGE("%s: stream %d not found", __FUNCTION__, streamType); - return false; - } - return stream->setVolumeProfile(deviceCategory, points) == NO_ERROR; -} - -template <typename Key> -Element<Key> *Engine::getFromCollection(const Key &key) const -{ - const Collection<Key> collection = getCollection<Key>(); - return collection.get(key); -} - -template <typename Key> -status_t Engine::add(const std::string &name, const Key &key) -{ - Collection<Key> &collection = getCollection<Key>(); - return collection.add(name, key); -} - -template <> -routing_strategy Engine::getPropertyForKey<routing_strategy, audio_usage_t>(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<routing_strategy, audio_usage_t>(usage); -} - -template <typename Property, typename Key> -Property Engine::getPropertyForKey(Key key) const -{ - Element<Key> *element = getFromCollection<Key>(key); - if (element == NULL) { - ALOGE("%s: Element not found within collection", __FUNCTION__); - return static_cast<Property>(0); - } - return element->template get<Property>(); -} - -template <> -audio_devices_t Engine::getPropertyForKey<audio_devices_t, routing_strategy>(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<audio_devices_t, routing_strategy>(STRATEGY_MEDIA); - } - return getPropertyForKey<audio_devices_t, routing_strategy>(strategy); -} - -routing_strategy Engine::ManagerInterfaceImpl::getStrategyForUsage(audio_usage_t usage) -{ - return mPolicyEngine->getPropertyForKey<routing_strategy, audio_usage_t>(usage); -} - -audio_devices_t Engine::ManagerInterfaceImpl::getDeviceForStrategy(routing_strategy stategy) const -{ - return mPolicyEngine->getPropertyForKey<audio_devices_t, routing_strategy>(stategy); -} - -template <typename Property, typename Key> -bool Engine::setPropertyForKey(const Property &property, const Key &key) -{ - Element<Key> *element = getFromCollection<Key>(key); - if (element == NULL) { - ALOGE("%s: Element not found within collection", __FUNCTION__); - return BAD_VALUE; - } - return element->template set<Property>(property) == NO_ERROR; -} - -float Engine::volIndexToAmpl(Volume::device_category category, - audio_stream_type_t streamType, - int indexInUi) -{ - Stream *stream = getFromCollection<audio_stream_type_t>(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<audio_stream_type_t>(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 <AudioPolicyManagerInterface.h> -#include <AudioPolicyPluginInterface.h> -#include "Collection.h" - -namespace android -{ -class AudioPolicyManagerObserver; - -namespace audio_policy -{ - -class ParameterManagerWrapper; -class VolumeProfile; - -class Engine -{ -public: - Engine(); - virtual ~Engine(); - - template <class RequestedInterface> - 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<audio_devices_t, audio_source_t>(inputSource); - } - virtual audio_devices_t getDeviceForStrategy(routing_strategy stategy) const; - virtual routing_strategy getStrategyForStream(audio_stream_type_t stream) - { - return mPolicyEngine->getPropertyForKey<routing_strategy, audio_stream_type_t>(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<DeviceDescriptor> 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<routing_strategy>(name, strategy); - } - virtual status_t addStream(const std::string &name, audio_stream_type_t stream) - { - return mPolicyEngine->add<audio_stream_type_t>(name, stream); - } - virtual status_t addUsage(const std::string &name, audio_usage_t usage) - { - return mPolicyEngine->add<audio_usage_t>(name, usage); - } - virtual status_t addInputSource(const std::string &name, audio_source_t source) - { - return mPolicyEngine->add<audio_source_t>(name, source); - } - virtual bool setDeviceForStrategy(const routing_strategy &strategy, audio_devices_t devices) - { - return mPolicyEngine->setPropertyForKey<audio_devices_t, routing_strategy>(devices, - strategy); - } - virtual bool setStrategyForStream(const audio_stream_type_t &stream, - routing_strategy strategy) - { - return mPolicyEngine->setPropertyForKey<routing_strategy, audio_stream_type_t>(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<routing_strategy, audio_usage_t>(strategy, - usage); - } - virtual bool setDeviceForInputSource(const audio_source_t &inputSource, - audio_devices_t device) - { - return mPolicyEngine->setPropertyForKey<audio_devices_t, audio_source_t>(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 <typename Key> - status_t add(const std::string &name, const Key &key); - - template <typename Key> - Element<Key> *getFromCollection(const Key &key) const; - - template <typename Key> - const Collection<Key> &getCollection() const; - - template <typename Key> - Collection<Key> &getCollection(); - - template <typename Property, typename Key> - Property getPropertyForKey(Key key) const; - - template <typename Property, typename Key> - 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 <AudioPolicyManagerInterface.h> -#include <AudioPolicyPluginInterface.h> -#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<AudioPolicyManagerInterface>(); -} - -template <> -AudioPolicyPluginInterface *EngineInstance::queryInterface() const -{ - return getEngine()->queryInterface<AudioPolicyPluginInterface>(); -} - -} // 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<audio_source_t>::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<audio_source_t>::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<audio_source_t>::get<audio_devices_t>() 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<audio_source_t> -{ -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 <typename Property> - Property get() const; - - template <typename Property> - 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<audio_source_t> 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<routing_strategy>::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<routing_strategy>::set<audio_devices_t>(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<routing_strategy>::get<audio_devices_t>() 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 <RoutingStrategy.h> - -namespace android -{ -namespace audio_policy -{ - -/** - * @tparam audio_devices_t: Applicable output device(s) for this strategy. - */ -template <> -class Element<routing_strategy> -{ -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 <typename Property> - Property get() const; - - template <typename Property> - 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<routing_strategy> 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 <system/audio.h> - -using std::string; - -namespace android -{ -namespace audio_policy -{ - -status_t Element<audio_stream_type_t>::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<audio_stream_type_t>::set<routing_strategy>(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<audio_stream_type_t>::get<routing_strategy>() const -{ - ALOGV("%s: 0x%X for Stream %s", __FUNCTION__, mApplicableStrategy, getName().c_str()); - return mApplicableStrategy; -} - -status_t Element<audio_stream_type_t>::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<audio_stream_type_t>::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<audio_stream_type_t>::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 <Volume.h> -#include <RoutingStrategy.h> -#include <map> - -namespace android -{ -namespace audio_policy -{ -/** - * @tparam routing_strategy: Applicable strategy for this stream. - */ -template <> -class Element<audio_stream_type_t> -{ -private: - typedef std::map<Volume::device_category, VolumeCurvePoints> 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 <typename Property> - Property get() const; - - template <typename Property> - 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<audio_stream_type_t> 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<audio_usage_t>::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<audio_usage_t>::set<routing_strategy>(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<audio_usage_t>::get<routing_strategy>() 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 <RoutingStrategy.h> - -namespace android -{ -namespace audio_policy -{ - -/** - * @tparam routing_strategy: Applicable strategy for this usage. - */ -template <> -class Element<audio_usage_t> -{ -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 <typename Property> - Property get() const; - - template <typename Property> - 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<audio_usage_t> 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 <ParameterMgrPlatformConnector.h> -#include <SelectionCriterionTypeInterface.h> -#include <SelectionCriterionInterface.h> -#include <convert.h> -#include <algorithm> -#include <cutils/config_utils.h> -#include <cutils/misc.h> -#include <fstream> -#include <limits> -#include <sstream> -#include <string> -#include <vector> -#include <stdint.h> -#include <cmath> -#include <utils/Log.h> - -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<ISelectionCriterionInterface> {}; -template <> -struct ParameterManagerWrapper::parameterManagerElementSupported<ISelectionCriterionTypeInterface> {}; - -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<string, uint32_t>(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 <typename T> -T *ParameterManagerWrapper::getElement(const string &name, std::map<string, T *> &elementsMap) -{ - parameterManagerElementSupported<T>(); - typename std::map<string, T *>::iterator it = elementsMap.find(name); - ALOG_ASSERT(it != elementsMap.end(), "Element " << name << " not found"); - return it->second; -} - -template <typename T> -const T *ParameterManagerWrapper::getElement(const string &name, const std::map<string, T *> &elementsMap) const -{ - parameterManagerElementSupported<T>(); - typename std::map<string, T *>::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<ISelectionCriterionTypeInterface>(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<int>(mode))) { - return BAD_VALUE; - } - criterion->setCriterionState((int)(mode)); - applyPlatformConfiguration(); - return NO_ERROR; -} - -audio_mode_t ParameterManagerWrapper::getPhoneState() const -{ - const ISelectionCriterionInterface *criterion = - getElement<ISelectionCriterionInterface>(gPhoneStateCriterionTag, mPolicyCriteria); - return static_cast<audio_mode_t>(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<int>(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<ISelectionCriterionInterface>(gForceUseCriterionTag[usage], mPolicyCriteria); - return static_cast<audio_policy_forced_cfg_t>(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 <string> -#include <system/audio_policy.h> - -////////////////////////////////////////////////////////////////////////////////////////////////// -// 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 { -# <Criterion Name> [numerical value 1:]<literal value 1>,[numerical value 2:]<literal value 2>,<literal value 3>,... -# } -# } - -######################################################### -# Criterion: -######################################################### -# Route|Audio { -# Criterion { -# <Criterion Name> { -# Type <Criterion type name> -# Default <default value of the criterion> -# } -# } -# } - -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 <system/audio.h> 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 <system/audio.h> 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 <system/audio.h> -#include <system/audio_policy.h> -#include <utils/Errors.h> -#include <utils/RWLock.h> -#include <list> -#include <map> -#include <string> -#include <vector> - -class CParameterMgrPlatformConnector; -class ISelectionCriterionInterface; -class ISelectionCriterionTypeInterface; -class cnode; - -class ParameterMgrPlatformConnectorLogger; - -namespace android -{ -namespace audio_policy -{ - -class ParameterManagerWrapper -{ -private: - typedef std::pair<int, const char *> CriterionTypeValuePair; - - typedef std::map<std::string, ISelectionCriterionInterface *> CriterionCollection; - typedef std::map<std::string, ISelectionCriterionTypeInterface *> 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 <typename T> - T *getElement(const std::string &name, std::map<std::string, T *> &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 <typename T> - const T *getElement(const std::string &name, - const std::map<std::string, T *> &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 <typename T> - struct parameterManagerElementSupported; - - static const char *const mPolicyPfwDefaultConfFileName; /**< Default Policy PFW top file name.*/ -}; - -} // namespace audio_policy -} // namespace android diff --git a/services/audiopolicy/utilities/Android.mk b/services/audiopolicy/utilities/Android.mk deleted file mode 100644 index ccf33f2..0000000 --- a/services/audiopolicy/utilities/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/utilities/convert/Android.mk b/services/audiopolicy/utilities/convert/Android.mk deleted file mode 100755 index 947dec5..0000000 --- a/services/audiopolicy/utilities/convert/Android.mk +++ /dev/null @@ -1,30 +0,0 @@ -LOCAL_PATH := $(call my-dir) - -########################### -# convert static lib target - -include $(CLEAR_VARS) - -LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)/ - -LOCAL_MODULE := libutilities_convert - -include $(BUILD_STATIC_LIBRARY) - -######################### -# convert static lib host - -include $(CLEAR_VARS) - -LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)/ - -LOCAL_MODULE := libutilities_convert_host - -LOCAL_CFLAGS = -O0 --coverage - -LOCAL_LDFLAGS = --coverage - -LOCAL_MODULE_TAGS := tests - -include $(BUILD_HOST_STATIC_LIBRARY) - diff --git a/services/audiopolicy/utilities/convert/convert.h b/services/audiopolicy/utilities/convert/convert.h deleted file mode 100644 index 980b5d5..0000000 --- a/services/audiopolicy/utilities/convert/convert.h +++ /dev/null @@ -1,383 +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 <limits> -#include <sstream> -#include <string> -#include <vector> -#include <stdint.h> -#include <cmath> - -namespace android -{ - -namespace utilities -{ - -/** - * Convert a given source type to a given destination type. - * - * String conversion to T reads the value of the type T in the given string. - * The function does not allow to have white spaces around the value to parse - * and tries to parse the whole string, which means that if some bytes were not - * read in the string, the function fails. - * Hexadecimal representation (ie. numbers starting with 0x) is supported only - * for integral types conversions. - * - * Numeric conversion to string formats the source value to decimal space. - * - * Vector to vector conversion calls convertTo on each element. - * - * @tparam srcType source type, default value is string type - * @tparam dstType destination type - * @param[in] input The source to convert from. - * @param[out] result Converted value if success, undefined on failure. - * - * @return true if conversion was successful, false otherwise. - */ -template <typename srcType, typename dstType> -static inline bool convertTo(const srcType &input, dstType &result); - -/* details namespace is here to hide implementation details to header end user. It - * is NOT intended to be used outside. */ -namespace details -{ - -/** Helper class to limit instantiation of templates */ -template <typename T> -struct ConversionFromStringAllowed; -template <typename T> -struct ConversionToStringAllowed; - -/* List of allowed types for conversion */ -template <> -struct ConversionFromStringAllowed<bool> {}; -template <> -struct ConversionFromStringAllowed<uint64_t> {}; -template <> -struct ConversionFromStringAllowed<int64_t> {}; -template <> -struct ConversionFromStringAllowed<uint32_t> {}; -template <> -struct ConversionFromStringAllowed<int32_t> {}; -template <> -struct ConversionFromStringAllowed<uint16_t> {}; -template <> -struct ConversionFromStringAllowed<int16_t> {}; -template <> -struct ConversionFromStringAllowed<float> {}; -template <> -struct ConversionFromStringAllowed<double> {}; - -template <> -struct ConversionToStringAllowed<int64_t> {}; -template <> -struct ConversionToStringAllowed<uint64_t> {}; -template <> -struct ConversionToStringAllowed<uint32_t> {}; -template <> -struct ConversionToStringAllowed<int32_t> {}; -template <> -struct ConversionToStringAllowed<double> {}; -template <> -struct ConversionToStringAllowed<float> {}; - -/** - * Set the decimal precision to 10 digits. - * Note that this setting is aligned with Android Audio Parameter - * policy concerning float storage into string. - */ -static const uint32_t gFloatPrecision = 10; - -template <typename T> -static inline bool fromString(const std::string &str, T &result) -{ - /* Check that conversion to that type is allowed. - * If this fails, this means that this template was not intended to be used - * with this type, thus that the result is undefined. */ - ConversionFromStringAllowed<T>(); - - if (str.find_first_of(std::string("\r\n\t\v ")) != std::string::npos) { - return false; - } - - /* Check for a '-' in string. If type is unsigned and a - is found, the - * parsing fails. This is made necessary because "-1" is read as 65535 for - * uint16_t, for example */ - if (str.find("-") != std::string::npos - && !std::numeric_limits<T>::is_signed) { - return false; - } - - std::stringstream ss(str); - - /* Sadly, the stream conversion does not handle hexadecimal format, thus - * check is done manually */ - if (str.substr(0, 2) == "0x") { - if (std::numeric_limits<T>::is_integer) { - ss >> std::hex >> result; - } else { - /* Conversion undefined for non integers */ - return false; - } - } else { - ss >> result; - } - - return ss.eof() && !ss.fail() && !ss.bad(); -} - -template <typename T> -static inline bool toString(const T &value, std::string &str) -{ - /* Check that conversion from that type is allowed. - * If this fails, this means that this template was not intended to be used - * with this type, thus that the result is undefined. */ - ConversionToStringAllowed<T>(); - - std::stringstream oss; - oss.precision(gFloatPrecision); - oss << value; - str = oss.str(); - return !oss.fail() && !oss.bad(); -} - -template <typename srcType, typename dstType> -class Converter; - -template <typename dstType> -class Converter<std::string, dstType> -{ -public: - static inline bool run(const std::string &str, dstType &result) - { - return fromString<dstType>(str, result); - } -}; - -template <typename srcType> -class Converter<srcType, std::string> -{ -public: - static inline bool run(const srcType &str, std::string &result) - { - return toString<srcType>(str, result); - } -}; - -/** Convert a vector by applying convertTo on each element. - * - * @tparam SrcElem Type of the src elements. - * @tparam DstElem Type of the destination elements. - */ -template <typename SrcElem, typename DstElem> -class Converter<std::vector<SrcElem>, std::vector<DstElem> > -{ -public: - typedef const std::vector<SrcElem> Src; - typedef std::vector<DstElem> Dst; - - static inline bool run(Src &src, Dst &dst) - { - typedef typename Src::const_iterator SrcIt; - dst.clear(); - dst.reserve(src.size()); - for (SrcIt it = src.begin(); it != src.end(); ++it) { - DstElem dstElem; - if (not convertTo(*it, dstElem)) { - return false; - } - dst.push_back(dstElem); - } - return true; - } -}; - -} // namespace details - -template <typename srcType, typename dstType> -static inline bool convertTo(const srcType &input, dstType &result) -{ - return details::Converter<srcType, dstType>::run(input, result); -} - -/** - * Specialization for int16_t of convertTo template function. - * - * This function follows the same paradigm than it's generic version. - * - * The specific implementation is made necessary because the stlport version of - * string streams is bugged and does not fail when giving overflowed values. - * This specialisation can be safely removed when stlport behaviour is fixed. - * - * @param[in] str the string to parse. - * @param[out] result reference to object where to store the result. - * - * @return true if conversion was successful, false otherwise. - */ -template <> -inline bool convertTo<std::string, int16_t>(const std::string &str, int16_t &result) -{ - int64_t res; - - if (!convertTo<std::string, int64_t>(str, res)) { - return false; - } - - if (res > std::numeric_limits<int16_t>::max() || res < std::numeric_limits<int16_t>::min()) { - return false; - } - - result = static_cast<int16_t>(res); - return true; -} - -/** - * Specialization for float of convertTo template function. - * - * This function follows the same paradigm than it's generic version and is - * based on it but makes furthers checks on the returned value. - * - * The specific implementation is made necessary because the stlport conversion - * from string to float behaves differently than GNU STL: overflow produce - * +/-Infinity rather than an error. - * - * @param[in] str the string to parse. - * @param[out] result reference to object where to store the result. - * - * @return true if conversion was successful, false otherwise. - */ -template <> -inline bool convertTo<std::string, float>(const std::string &str, float &result) -{ - if (!details::Converter<std::string, float>::run(str, result)) { - return false; - } - - if (std::abs(result) == std::numeric_limits<float>::infinity() || - result == std::numeric_limits<float>::quiet_NaN()) { - return false; - } - - return true; -} - -/** - * Specialization for double of convertTo template function. - * - * This function follows the same paradigm than it's generic version and is - * based on it but makes furthers checks on the returned value. - * - * The specific implementation is made necessary because the stlport conversion - * from string to double behaves differently than GNU STL: overflow produce - * +/-Infinity rather than an error. - * - * @param[in] str the string to parse. - * @param[out] result reference to object where to store the result. - * - * @return true if conversion was successful, false otherwise. - */ -template <> -inline bool convertTo<std::string, double>(const std::string &str, double &result) -{ - if (!details::Converter<std::string, double>::run(str, result)) { - return false; - } - - if (std::abs(result) == std::numeric_limits<double>::infinity() || - result == std::numeric_limits<double>::quiet_NaN()) { - return false; - } - - return true; -} - -/** - * Specialization for boolean of convertTo template function. - * - * This function follows the same paradigm than it's generic version. - * This function accepts to parse boolean as "0/1" or "false/true" or - * "FALSE/TRUE". - * The specific implementation is made necessary because the behaviour of - * string streams when parsing boolean values is not sufficient to fit our - * requirements. Indeed, parsing "true" will correctly parse the value, but the - * end of stream is not reached which makes the ss.eof() fails in the generic - * implementation. - * - * @param[in] str the string to parse. - * @param[out] result reference to object where to store the result. - * - * @return true if conversion was successful, false otherwise. - */ -template <> -inline bool convertTo<std::string, bool>(const std::string &str, bool &result) -{ - if (str == "0" || str == "FALSE" || str == "false") { - result = false; - return true; - } - - if (str == "1" || str == "TRUE" || str == "true") { - result = true; - return true; - } - - return false; -} - -/** - * Specialization for boolean to string of convertTo template function. - * - * This function follows the same paradigm than it's generic version. - * This function arbitrarily decides to return "false/true". - * It is compatible with the specialization from string to boolean. - * - * @param[in] isSet boolean to convert to a string. - * @param[out] result reference to object where to store the result. - * - * @return true if conversion was successful, false otherwise. - */ -template <> -inline bool convertTo<bool, std::string>(const bool &isSet, std::string &result) -{ - result = isSet ? "true" : "false"; - return true; -} - -/** - * Specialization for string to string of convertTo template function. - * - * This function is a dummy conversion from string to string. - * In case of clients using template as well, this implementation avoids adding extra - * specialization to bypass the conversion from string to string. - * - * @param[in] str the string to parse. - * @param[out] result reference to object where to store the result. - * - * @return true if conversion was successful, false otherwise. - */ -template <> -inline bool convertTo<std::string, std::string>(const std::string &str, std::string &result) -{ - result = str; - return true; -} - -} // namespace utilities - -} // namespace android |