summaryrefslogtreecommitdiffstats
path: root/services
diff options
context:
space:
mode:
authorEric Laurent <elaurent@google.com>2015-04-25 05:18:59 +0000
committerEric Laurent <elaurent@google.com>2015-04-25 05:18:59 +0000
commit6fc6a64fa3b0a9e4577eb763590f531c0a50a27b (patch)
tree2c51b5f8ffe7015ffdc3fdaf19bd36982546bf89 /services
parent65c3781db3443531deacecfbda5c7e7e82868a34 (diff)
downloadframeworks_av-6fc6a64fa3b0a9e4577eb763590f531c0a50a27b.zip
frameworks_av-6fc6a64fa3b0a9e4577eb763590f531c0a50a27b.tar.gz
frameworks_av-6fc6a64fa3b0a9e4577eb763590f531c0a50a27b.tar.bz2
Revert "Add a configurable version of the policy engine based on PFW"
This reverts commit 65c3781db3443531deacecfbda5c7e7e82868a34. Change-Id: Ib61cd70f97c4c4f4b503fb845643627d6896f4f9
Diffstat (limited to 'services')
-rw-r--r--services/audiopolicy/Android.mk15
-rwxr-xr-xservices/audiopolicy/engine/interface/AudioPolicyManagerInterface.h4
-rwxr-xr-xservices/audiopolicy/engineconfigurable/Android.mk59
-rwxr-xr-xservices/audiopolicy/engineconfigurable/include/AudioPolicyEngineInstance.h81
-rwxr-xr-xservices/audiopolicy/engineconfigurable/include/EngineDefinition.h22
-rwxr-xr-xservices/audiopolicy/engineconfigurable/interface/AudioPolicyPluginInterface.h147
-rw-r--r--services/audiopolicy/engineconfigurable/parameter-framework/Android.mk7
-rw-r--r--services/audiopolicy/engineconfigurable/parameter-framework/example/Android.mk104
-rwxr-xr-xservices/audiopolicy/engineconfigurable/parameter-framework/example/ParameterFrameworkConfigurationPolicy.xml15
-rw-r--r--services/audiopolicy/engineconfigurable/parameter-framework/example/README.md11
-rw-r--r--services/audiopolicy/engineconfigurable/parameter-framework/example/Settings/device_for_input_source.pfw515
-rw-r--r--services/audiopolicy/engineconfigurable/parameter-framework/example/Settings/device_for_strategy_accessibility.pfw302
-rw-r--r--services/audiopolicy/engineconfigurable/parameter-framework/example/Settings/device_for_strategy_dtmf.pfw637
-rw-r--r--services/audiopolicy/engineconfigurable/parameter-framework/example/Settings/device_for_strategy_enforced_audible.pfw358
-rw-r--r--services/audiopolicy/engineconfigurable/parameter-framework/example/Settings/device_for_strategy_media.pfw331
-rw-r--r--services/audiopolicy/engineconfigurable/parameter-framework/example/Settings/device_for_strategy_phone.pfw485
-rw-r--r--services/audiopolicy/engineconfigurable/parameter-framework/example/Settings/device_for_strategy_rerouting.pfw297
-rw-r--r--services/audiopolicy/engineconfigurable/parameter-framework/example/Settings/device_for_strategy_sonification.pfw485
-rw-r--r--services/audiopolicy/engineconfigurable/parameter-framework/example/Settings/device_for_strategy_sonification_respectful.pfw545
-rw-r--r--services/audiopolicy/engineconfigurable/parameter-framework/example/Settings/device_for_strategy_transmitted_through_speaker.pfw40
-rwxr-xr-xservices/audiopolicy/engineconfigurable/parameter-framework/example/Settings/strategy_for_stream.pfw20
-rw-r--r--services/audiopolicy/engineconfigurable/parameter-framework/example/Settings/strategy_for_usage.pfw39
-rw-r--r--services/audiopolicy/engineconfigurable/parameter-framework/example/Settings/volumes.pfw545
-rwxr-xr-xservices/audiopolicy/engineconfigurable/parameter-framework/example/Structure/PolicyClass.xml5
-rwxr-xr-xservices/audiopolicy/engineconfigurable/parameter-framework/example/Structure/PolicySubsystem-CommonTypes.xml170
-rwxr-xr-xservices/audiopolicy/engineconfigurable/parameter-framework/example/Structure/PolicySubsystem-Volume.xml26
-rwxr-xr-xservices/audiopolicy/engineconfigurable/parameter-framework/example/Structure/PolicySubsystem.xml137
-rwxr-xr-xservices/audiopolicy/engineconfigurable/parameter-framework/example/policy_criteria.txt14
-rwxr-xr-xservices/audiopolicy/engineconfigurable/parameter-framework/plugin/Android.mk40
-rwxr-xr-xservices/audiopolicy/engineconfigurable/parameter-framework/plugin/InputSource.cpp53
-rwxr-xr-xservices/audiopolicy/engineconfigurable/parameter-framework/plugin/InputSource.h49
-rwxr-xr-xservices/audiopolicy/engineconfigurable/parameter-framework/plugin/PolicyMappingKeys.h32
-rwxr-xr-xservices/audiopolicy/engineconfigurable/parameter-framework/plugin/PolicySubsystem.cpp105
-rwxr-xr-xservices/audiopolicy/engineconfigurable/parameter-framework/plugin/PolicySubsystem.h60
-rwxr-xr-xservices/audiopolicy/engineconfigurable/parameter-framework/plugin/PolicySubsystemBuilder.cpp29
-rwxr-xr-xservices/audiopolicy/engineconfigurable/parameter-framework/plugin/Strategy.cpp54
-rwxr-xr-xservices/audiopolicy/engineconfigurable/parameter-framework/plugin/Strategy.h49
-rwxr-xr-xservices/audiopolicy/engineconfigurable/parameter-framework/plugin/Stream.cpp56
-rwxr-xr-xservices/audiopolicy/engineconfigurable/parameter-framework/plugin/Stream.h49
-rwxr-xr-xservices/audiopolicy/engineconfigurable/parameter-framework/plugin/Usage.cpp56
-rwxr-xr-xservices/audiopolicy/engineconfigurable/parameter-framework/plugin/Usage.h49
-rwxr-xr-xservices/audiopolicy/engineconfigurable/parameter-framework/plugin/VolumeProfile.cpp75
-rwxr-xr-xservices/audiopolicy/engineconfigurable/parameter-framework/plugin/VolumeProfile.h64
-rwxr-xr-xservices/audiopolicy/engineconfigurable/src/Collection.h163
-rwxr-xr-xservices/audiopolicy/engineconfigurable/src/Element.h99
-rwxr-xr-xservices/audiopolicy/engineconfigurable/src/Engine.cpp281
-rwxr-xr-xservices/audiopolicy/engineconfigurable/src/Engine.h225
-rwxr-xr-xservices/audiopolicy/engineconfigurable/src/EngineInstance.cpp63
-rwxr-xr-xservices/audiopolicy/engineconfigurable/src/InputSource.cpp69
-rwxr-xr-xservices/audiopolicy/engineconfigurable/src/InputSource.h88
-rwxr-xr-xservices/audiopolicy/engineconfigurable/src/Strategy.cpp68
-rwxr-xr-xservices/audiopolicy/engineconfigurable/src/Strategy.h89
-rwxr-xr-xservices/audiopolicy/engineconfigurable/src/Stream.cpp158
-rwxr-xr-xservices/audiopolicy/engineconfigurable/src/Stream.h115
-rwxr-xr-xservices/audiopolicy/engineconfigurable/src/Usage.cpp57
-rwxr-xr-xservices/audiopolicy/engineconfigurable/src/Usage.h88
-rw-r--r--services/audiopolicy/engineconfigurable/wrapper/Android.mk42
-rwxr-xr-xservices/audiopolicy/engineconfigurable/wrapper/ParameterManagerWrapper.cpp434
-rwxr-xr-xservices/audiopolicy/engineconfigurable/wrapper/audio_policy_criteria_conf.h71
-rwxr-xr-xservices/audiopolicy/engineconfigurable/wrapper/config/audio_policy_criteria.conf192
-rwxr-xr-xservices/audiopolicy/engineconfigurable/wrapper/include/ParameterManagerWrapper.h286
-rw-r--r--services/audiopolicy/utilities/Android.mk7
-rwxr-xr-xservices/audiopolicy/utilities/convert/Android.mk30
-rw-r--r--services/audiopolicy/utilities/convert/convert.h383
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