diff --git a/audio/6.0/config/api/current.txt b/audio/6.0/config/api/current.txt index fa1e613746..adab3d2657 100644 --- a/audio/6.0/config/api/current.txt +++ b/audio/6.0/config/api/current.txt @@ -214,6 +214,12 @@ package audio.policy.configuration.V6_0 { method public void set_default(boolean); } + public enum EngineSuffix { + method public String getRawName(); + enum_constant public static final audio.policy.configuration.V6_0.EngineSuffix _default; + enum_constant public static final audio.policy.configuration.V6_0.EngineSuffix configurable; + } + public enum GainMode { method public String getRawName(); enum_constant public static final audio.policy.configuration.V6_0.GainMode AUDIO_GAIN_MODE_CHANNELS; @@ -252,7 +258,9 @@ package audio.policy.configuration.V6_0 { public class GlobalConfiguration { ctor public GlobalConfiguration(); + method public audio.policy.configuration.V6_0.EngineSuffix getEngine_library(); method public boolean getSpeaker_drc_enabled(); + method public void setEngine_library(audio.policy.configuration.V6_0.EngineSuffix); method public void setSpeaker_drc_enabled(boolean); } diff --git a/audio/6.0/config/audio_policy_configuration.xsd b/audio/6.0/config/audio_policy_configuration.xsd index b5d978c6a7..3fc60e2118 100644 --- a/audio/6.0/config/audio_policy_configuration.xsd +++ b/audio/6.0/config/audio_policy_configuration.xsd @@ -66,6 +66,7 @@ + @@ -623,4 +624,10 @@ + + + + + + diff --git a/audio/policy/1.0/vts/OWNERS b/audio/policy/1.0/vts/OWNERS new file mode 100644 index 0000000000..24071af220 --- /dev/null +++ b/audio/policy/1.0/vts/OWNERS @@ -0,0 +1,2 @@ +elaurent@google.com +mnaganov@google.com diff --git a/audio/policy/1.0/vts/functional/Android.bp b/audio/policy/1.0/vts/functional/Android.bp new file mode 100644 index 0000000000..b50e501d15 --- /dev/null +++ b/audio/policy/1.0/vts/functional/Android.bp @@ -0,0 +1,59 @@ +cc_test { + name: "VtsHalAudioPolicyV1_0TargetTest", + defaults: ["vts_target_tests_defaults"], + srcs: [ + "ValidateEngineConfiguration.cpp", + ], + static_libs: [ + "libxml2", + "liblog", + "libmedia_helper", + "libaudiopolicyengine_config", + "libaudiopolicycomponents", + "libaudiopolicyengineconfigurable_pfwwrapper", + "android.hardware.audio.common.test.utility", + "libparameter", + "libpfw_utility", + "libremote-processor", + "libutils", + "libcutils", + "libhidlbase", + "liblog", + "libbase", + ], + shared_libs: [ + "libaudiofoundation", + ], + // Use test_config for vts-core suite. + // TODO(b/146104851): Add auto-gen rules and remove it. + test_config: "VtsHalAudioPolicyV1_0TargetTest.xml", + cflags: [ + "-DXSD_DIR=\"/data/local/tmp\"", + "-DXSD_PFW_DIR=\"/data/local/tmp/Schemas\"", + "-Wall", + "-Werror", + "-Wno-unused-function", + "-O0", + "-g", + ], + data: [ + ":audio_policy_engine_conf_V1_0", + ":audio_policy_engine_configurable_configuration_V1_0", + ":audio_policy_engine_configurable_configuration_ComponentLibrary_V1_0", + ":audio_policy_engine_configurable_configuration_ComponentTypeSet_V1_0", + ":audio_policy_engine_configurable_configuration_ConfigurableDomain_V1_0", + ":audio_policy_engine_configurable_configuration_ConfigurableDomains_V1_0", + ":audio_policy_engine_configurable_configuration_FileIncluder_V1_0", + ":audio_policy_engine_configurable_configuration_Parameter_V1_0", + ":audio_policy_engine_configurable_configuration_ParameterFrameworkConfiguration_V1_0", + ":audio_policy_engine_configurable_configuration_ParameterSettings_V1_0", + ":audio_policy_engine_configurable_configuration_Subsystem_V1_0", + ":audio_policy_engine_configurable_configuration_SystemClass_V1_0", + ":audio_policy_engine_configurable_configuration_W3cXmlAttributes_V1_0", + ], + gtest: true, + test_suites: [ + "general-tests", + "vts-core", + ], +} diff --git a/audio/policy/1.0/vts/functional/ValidateEngineConfiguration.cpp b/audio/policy/1.0/vts/functional/ValidateEngineConfiguration.cpp new file mode 100644 index 0000000000..a0aaa6e89f --- /dev/null +++ b/audio/policy/1.0/vts/functional/ValidateEngineConfiguration.cpp @@ -0,0 +1,113 @@ +/* + * Copyright (C) 2019 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include +#include + +#include + +#include +#include +#include "utility/ValidateXml.h" + +static const std::vector locations = {"/odm/etc", "/vendor/etc", "/system/etc"}; +static const std::string config = "audio_policy_engine_configuration.xml"; +static const std::string schema = + std::string(XSD_DIR) + "/audio_policy_engine_configuration_V1_0.xsd"; + +static const std::string configurableSchemas = + std::string(XSD_DIR) + "/audio_policy_engine_configurable_configuration_V1_0.xsd"; +static const std::string configurableConfig = + "parameter-framework/ParameterFrameworkConfigurationPolicy.xml"; + +/** + * @brief TEST to ensure the audio policy engine configuration file is validating schemas. + * Note: this configuration file is not mandatory, an hardcoded fallback is provided, so + * it does not fail if not found. + */ +TEST(ValidateConfiguration, audioPolicyEngineConfiguration) { + RecordProperty("description", + "Verify that the audio policy engine configuration file " + "is valid according to the schemas"); + EXPECT_VALID_XML_MULTIPLE_LOCATIONS(config.c_str(), locations, schema.c_str()); +} + +/** + * @brief deviceUsesConfigurableEngine checks if the configuration file for + * the engine presents on the device AND + * for the configurable engine (aka Parameter-Framework top configuration file) presents. + */ +static bool deviceUsesConfigurableEngine() { + return android::hardware::audio::common::test::utility::validateXmlMultipleLocations( + "", "", "", config.c_str(), locations, schema.c_str()) && + android::hardware::audio::common::test::utility::validateXmlMultipleLocations( + "", "", "", configurableConfig.c_str(), locations, configurableSchemas.c_str()); +} + +TEST(ValidateConfiguration, audioPolicyEngineConfigurable) { + if (!deviceUsesConfigurableEngine()) { + GTEST_SKIP() << "Device using legacy engine without parameter-framework, n-op."; + } + RecordProperty("description", + "Verify that the audio policy engine PFW configuration files " + "are valid according to the schemas"); + + auto testAudioPolicyEnginePfw = [&](bool validateSchema, const std::string& schemasUri) { + auto result = android::engineConfig::parse(); + + ASSERT_NE(nullptr, result.parsedConfig) + << "failed to parse audio policy engine configuration"; + + ASSERT_EQ(result.nbSkippedElement, 0) << "skipped %zu elements " << result.nbSkippedElement; + + std::unique_ptr policyParameterMgr( + new android::audio_policy::ParameterManagerWrapper(validateSchema, schemasUri)); + ASSERT_NE(nullptr, policyParameterMgr) << "failed to create Audio Policy Engine PFW"; + + // Load the criterion types and criteria + for (auto& criterion : result.parsedConfig->criteria) { + android::engineConfig::CriterionType criterionType; + for (auto& configCriterionType : result.parsedConfig->criterionTypes) { + if (configCriterionType.name == criterion.typeName) { + criterionType = configCriterionType; + break; + } + } + ASSERT_FALSE(criterionType.name.empty()) + << "Invalid criterion type for " << criterion.name.c_str(); + policyParameterMgr->addCriterion(criterion.name, criterionType.isInclusive, + criterionType.valuePairs, + criterion.defaultLiteralValue); + } + ASSERT_EQ(0, result.nbSkippedElement) << "failed to parse Audio Policy Engine PFW criteria"; + + // If the PFW cannot validate, it will not start + std::string error; + auto status = policyParameterMgr->start(error); + ASSERT_EQ(status, android::NO_ERROR) + << "failed to " << (validateSchema ? "validate" : "start") + << " Audio Policy Engine PFW: " << error; + + ASSERT_TRUE(policyParameterMgr->isStarted()); + }; + + // First round for sanity to ensure we can launch the Audio Policy Engine PFW without + // schema validation successfully, otherwise it is not forth going on running validation... + testAudioPolicyEnginePfw(false, {}); + + // If second round fails, it means parameter-framework cannot validate schema + testAudioPolicyEnginePfw(true, {XSD_PFW_DIR}); +} diff --git a/audio/policy/1.0/vts/functional/VtsHalAudioPolicyV1_0TargetTest.xml b/audio/policy/1.0/vts/functional/VtsHalAudioPolicyV1_0TargetTest.xml new file mode 100644 index 0000000000..68b390f22a --- /dev/null +++ b/audio/policy/1.0/vts/functional/VtsHalAudioPolicyV1_0TargetTest.xml @@ -0,0 +1,48 @@ + + + + diff --git a/audio/policy/1.0/xml/Android.bp b/audio/policy/1.0/xml/Android.bp new file mode 100644 index 0000000000..6da7b5a3e5 --- /dev/null +++ b/audio/policy/1.0/xml/Android.bp @@ -0,0 +1,5 @@ +xsd_config { + name: "audio_policy_engine_conf_V1_0", + srcs: ["audio_policy_engine_configuration.xsd"], + package_name: "audio.policy.V1_0", +} diff --git a/audio/policy/1.0/xml/api/current.txt b/audio/policy/1.0/xml/api/current.txt new file mode 100644 index 0000000000..ccbc828c37 --- /dev/null +++ b/audio/policy/1.0/xml/api/current.txt @@ -0,0 +1,294 @@ +// Signature format: 2.0 +package audio.policy.V1_0 { + + public class AttributesGroup { + ctor public AttributesGroup(); + method public java.util.List getAttributes_optional(); + method public audio.policy.V1_0.BundleType getBundle_optional(); + method public audio.policy.V1_0.ContentTypeType getContentType_optional(); + method public audio.policy.V1_0.FlagsType getFlags_optional(); + method public audio.policy.V1_0.SourceType getSource_optional(); + method public audio.policy.V1_0.Stream getStreamType(); + method public audio.policy.V1_0.UsageType getUsage_optional(); + method public String getVolumeGroup(); + method public void setBundle_optional(audio.policy.V1_0.BundleType); + method public void setContentType_optional(audio.policy.V1_0.ContentTypeType); + method public void setFlags_optional(audio.policy.V1_0.FlagsType); + method public void setSource_optional(audio.policy.V1_0.SourceType); + method public void setStreamType(audio.policy.V1_0.Stream); + method public void setUsage_optional(audio.policy.V1_0.UsageType); + method public void setVolumeGroup(String); + } + + public class AttributesRef { + ctor public AttributesRef(); + method public java.util.List getReference(); + } + + public class AttributesRefType { + ctor public AttributesRefType(); + method public audio.policy.V1_0.AttributesType getAttributes(); + method public String getName(); + method public void setAttributes(audio.policy.V1_0.AttributesType); + method public void setName(String); + } + + public class AttributesType { + ctor public AttributesType(); + method public String getAttributesRef(); + method public audio.policy.V1_0.BundleType getBundle(); + method public audio.policy.V1_0.ContentTypeType getContentType(); + method public audio.policy.V1_0.FlagsType getFlags(); + method public audio.policy.V1_0.SourceType getSource(); + method public audio.policy.V1_0.UsageType getUsage(); + method public void setAttributesRef(String); + method public void setBundle(audio.policy.V1_0.BundleType); + method public void setContentType(audio.policy.V1_0.ContentTypeType); + method public void setFlags(audio.policy.V1_0.FlagsType); + method public void setSource(audio.policy.V1_0.SourceType); + method public void setUsage(audio.policy.V1_0.UsageType); + } + + public class BundleType { + ctor public BundleType(); + method public String getKey(); + method public String getValue(); + method public void setKey(String); + method public void setValue(String); + } + + public class Configuration { + ctor public Configuration(); + method public java.util.List getAttributesRef(); + method public java.util.List getCriteria(); + method public java.util.List getCriterion_types(); + method public java.util.List getProductStrategies(); + method public audio.policy.V1_0.Version getVersion(); + method public java.util.List getVolumeGroups(); + method public java.util.List getVolumes(); + method public void setVersion(audio.policy.V1_0.Version); + } + + public enum ContentType { + method public String getRawName(); + enum_constant public static final audio.policy.V1_0.ContentType AUDIO_CONTENT_TYPE_MOVIE; + enum_constant public static final audio.policy.V1_0.ContentType AUDIO_CONTENT_TYPE_MUSIC; + enum_constant public static final audio.policy.V1_0.ContentType AUDIO_CONTENT_TYPE_SONIFICATION; + enum_constant public static final audio.policy.V1_0.ContentType AUDIO_CONTENT_TYPE_SPEECH; + enum_constant public static final audio.policy.V1_0.ContentType AUDIO_CONTENT_TYPE_UNKNOWN; + } + + public class ContentTypeType { + ctor public ContentTypeType(); + method public audio.policy.V1_0.ContentType getValue(); + method public void setValue(audio.policy.V1_0.ContentType); + } + + public class CriteriaType { + ctor public CriteriaType(); + method public java.util.List getCriterion(); + } + + public class CriterionType { + ctor public CriterionType(); + method public String getName(); + method public String getType(); + method public String get_default(); + method public void setName(String); + method public void setType(String); + method public void set_default(String); + } + + public class CriterionTypeType { + ctor public CriterionTypeType(); + method public String getName(); + method public audio.policy.V1_0.PfwCriterionTypeEnum getType(); + method public audio.policy.V1_0.ValuesType getValues(); + method public void setName(String); + method public void setType(audio.policy.V1_0.PfwCriterionTypeEnum); + method public void setValues(audio.policy.V1_0.ValuesType); + } + + public class CriterionTypesType { + ctor public CriterionTypesType(); + method public java.util.List getCriterion_type(); + } + + public enum DeviceCategory { + method public String getRawName(); + enum_constant public static final audio.policy.V1_0.DeviceCategory DEVICE_CATEGORY_EARPIECE; + enum_constant public static final audio.policy.V1_0.DeviceCategory DEVICE_CATEGORY_EXT_MEDIA; + enum_constant public static final audio.policy.V1_0.DeviceCategory DEVICE_CATEGORY_HEADSET; + enum_constant public static final audio.policy.V1_0.DeviceCategory DEVICE_CATEGORY_HEARING_AID; + enum_constant public static final audio.policy.V1_0.DeviceCategory DEVICE_CATEGORY_SPEAKER; + } + + public enum FlagType { + method public String getRawName(); + enum_constant public static final audio.policy.V1_0.FlagType AUDIO_FLAG_AUDIBILITY_ENFORCED; + enum_constant public static final audio.policy.V1_0.FlagType AUDIO_FLAG_BEACON; + enum_constant public static final audio.policy.V1_0.FlagType AUDIO_FLAG_BYPASS_INTERRUPTION_POLICY; + enum_constant public static final audio.policy.V1_0.FlagType AUDIO_FLAG_BYPASS_MUTE; + enum_constant public static final audio.policy.V1_0.FlagType AUDIO_FLAG_DEEP_BUFFER; + enum_constant public static final audio.policy.V1_0.FlagType AUDIO_FLAG_HW_AV_SYNC; + enum_constant public static final audio.policy.V1_0.FlagType AUDIO_FLAG_HW_HOTWORD; + enum_constant public static final audio.policy.V1_0.FlagType AUDIO_FLAG_LOW_LATENCY; + enum_constant public static final audio.policy.V1_0.FlagType AUDIO_FLAG_MUTE_HAPTIC; + enum_constant public static final audio.policy.V1_0.FlagType AUDIO_FLAG_NONE; + enum_constant public static final audio.policy.V1_0.FlagType AUDIO_FLAG_NO_MEDIA_PROJECTION; + enum_constant public static final audio.policy.V1_0.FlagType AUDIO_FLAG_NO_SYSTEM_CAPTURE; + enum_constant public static final audio.policy.V1_0.FlagType AUDIO_FLAG_SCO; + enum_constant public static final audio.policy.V1_0.FlagType AUDIO_FLAG_SECURE; + } + + public class FlagsType { + ctor public FlagsType(); + method public java.util.List getValue(); + method public void setValue(java.util.List); + } + + public enum PfwCriterionTypeEnum { + method public String getRawName(); + enum_constant public static final audio.policy.V1_0.PfwCriterionTypeEnum exclusive; + enum_constant public static final audio.policy.V1_0.PfwCriterionTypeEnum inclusive; + } + + public class ProductStrategies { + ctor public ProductStrategies(); + method public java.util.List getProductStrategy(); + } + + public static class ProductStrategies.ProductStrategy { + ctor public ProductStrategies.ProductStrategy(); + method public java.util.List getAttributesGroup(); + method public String getName(); + method public void setName(String); + } + + public enum SourceEnumType { + method public String getRawName(); + enum_constant public static final audio.policy.V1_0.SourceEnumType AUDIO_SOURCE_CAMCORDER; + enum_constant public static final audio.policy.V1_0.SourceEnumType AUDIO_SOURCE_DEFAULT; + enum_constant public static final audio.policy.V1_0.SourceEnumType AUDIO_SOURCE_ECHO_REFERENCE; + enum_constant public static final audio.policy.V1_0.SourceEnumType AUDIO_SOURCE_FM_TUNER; + enum_constant public static final audio.policy.V1_0.SourceEnumType AUDIO_SOURCE_MIC; + enum_constant public static final audio.policy.V1_0.SourceEnumType AUDIO_SOURCE_REMOTE_SUBMIX; + enum_constant public static final audio.policy.V1_0.SourceEnumType AUDIO_SOURCE_UNPROCESSED; + enum_constant public static final audio.policy.V1_0.SourceEnumType AUDIO_SOURCE_VOICE_CALL; + enum_constant public static final audio.policy.V1_0.SourceEnumType AUDIO_SOURCE_VOICE_COMMUNICATION; + enum_constant public static final audio.policy.V1_0.SourceEnumType AUDIO_SOURCE_VOICE_DOWNLINK; + enum_constant public static final audio.policy.V1_0.SourceEnumType AUDIO_SOURCE_VOICE_PERFORMANCE; + enum_constant public static final audio.policy.V1_0.SourceEnumType AUDIO_SOURCE_VOICE_RECOGNITION; + enum_constant public static final audio.policy.V1_0.SourceEnumType AUDIO_SOURCE_VOICE_UPLINK; + } + + public class SourceType { + ctor public SourceType(); + method public audio.policy.V1_0.SourceEnumType getValue(); + method public void setValue(audio.policy.V1_0.SourceEnumType); + } + + public enum Stream { + method public String getRawName(); + enum_constant public static final audio.policy.V1_0.Stream AUDIO_STREAM_ACCESSIBILITY; + enum_constant public static final audio.policy.V1_0.Stream AUDIO_STREAM_ALARM; + enum_constant public static final audio.policy.V1_0.Stream AUDIO_STREAM_ASSISTANT; + enum_constant public static final audio.policy.V1_0.Stream AUDIO_STREAM_BLUETOOTH_SCO; + enum_constant public static final audio.policy.V1_0.Stream AUDIO_STREAM_DEFAULT; + enum_constant public static final audio.policy.V1_0.Stream AUDIO_STREAM_DTMF; + enum_constant public static final audio.policy.V1_0.Stream AUDIO_STREAM_ENFORCED_AUDIBLE; + enum_constant public static final audio.policy.V1_0.Stream AUDIO_STREAM_MUSIC; + enum_constant public static final audio.policy.V1_0.Stream AUDIO_STREAM_NOTIFICATION; + enum_constant public static final audio.policy.V1_0.Stream AUDIO_STREAM_RING; + enum_constant public static final audio.policy.V1_0.Stream AUDIO_STREAM_SYSTEM; + enum_constant public static final audio.policy.V1_0.Stream AUDIO_STREAM_TTS; + enum_constant public static final audio.policy.V1_0.Stream AUDIO_STREAM_VOICE_CALL; + } + + public enum UsageEnumType { + method public String getRawName(); + enum_constant public static final audio.policy.V1_0.UsageEnumType AUDIO_USAGE_ALARM; + enum_constant public static final audio.policy.V1_0.UsageEnumType AUDIO_USAGE_ASSISTANCE_ACCESSIBILITY; + enum_constant public static final audio.policy.V1_0.UsageEnumType AUDIO_USAGE_ASSISTANCE_NAVIGATION_GUIDANCE; + enum_constant public static final audio.policy.V1_0.UsageEnumType AUDIO_USAGE_ASSISTANCE_SONIFICATION; + enum_constant public static final audio.policy.V1_0.UsageEnumType AUDIO_USAGE_ASSISTANT; + enum_constant public static final audio.policy.V1_0.UsageEnumType AUDIO_USAGE_GAME; + enum_constant public static final audio.policy.V1_0.UsageEnumType AUDIO_USAGE_MEDIA; + enum_constant public static final audio.policy.V1_0.UsageEnumType AUDIO_USAGE_NOTIFICATION; + enum_constant public static final audio.policy.V1_0.UsageEnumType AUDIO_USAGE_NOTIFICATION_TELEPHONY_RINGTONE; + enum_constant public static final audio.policy.V1_0.UsageEnumType AUDIO_USAGE_UNKNOWN; + enum_constant public static final audio.policy.V1_0.UsageEnumType AUDIO_USAGE_VIRTUAL_SOURCE; + enum_constant public static final audio.policy.V1_0.UsageEnumType AUDIO_USAGE_VOICE_COMMUNICATION; + enum_constant public static final audio.policy.V1_0.UsageEnumType AUDIO_USAGE_VOICE_COMMUNICATION_SIGNALLING; + } + + public class UsageType { + ctor public UsageType(); + method public audio.policy.V1_0.UsageEnumType getValue(); + method public void setValue(audio.policy.V1_0.UsageEnumType); + } + + public class ValueType { + ctor public ValueType(); + method public String getLiteral(); + method public int getNumerical(); + method public void setLiteral(String); + method public void setNumerical(int); + } + + public class ValuesType { + ctor public ValuesType(); + method public java.util.List getValue(); + } + + public enum Version { + method public String getRawName(); + enum_constant public static final audio.policy.V1_0.Version _1_0; + } + + public class Volume { + ctor public Volume(); + method public audio.policy.V1_0.DeviceCategory getDeviceCategory(); + method public java.util.List getPoint(); + method public String getRef(); + method public void setDeviceCategory(audio.policy.V1_0.DeviceCategory); + method public void setRef(String); + } + + public class VolumeGroupsType { + ctor public VolumeGroupsType(); + method public java.util.List getVolumeGroup(); + } + + public static class VolumeGroupsType.VolumeGroup { + ctor public VolumeGroupsType.VolumeGroup(); + method public int getIndexMax(); + method public int getIndexMin(); + method public String getName(); + method public java.util.List getVolume(); + method public void setIndexMax(int); + method public void setIndexMin(int); + method public void setName(String); + } + + public class VolumeRef { + ctor public VolumeRef(); + method public String getName(); + method public java.util.List getPoint(); + method public void setName(String); + } + + public class VolumesType { + ctor public VolumesType(); + method public java.util.List getReference(); + } + + public class XmlParser { + ctor public XmlParser(); + method public static audio.policy.V1_0.Configuration read(java.io.InputStream) throws javax.xml.datatype.DatatypeConfigurationException, java.io.IOException, org.xmlpull.v1.XmlPullParserException; + method public static String readText(org.xmlpull.v1.XmlPullParser) throws java.io.IOException, org.xmlpull.v1.XmlPullParserException; + method public static void skip(org.xmlpull.v1.XmlPullParser) throws java.io.IOException, org.xmlpull.v1.XmlPullParserException; + } + +} + diff --git a/audio/policy/1.0/xml/api/last_current.txt b/audio/policy/1.0/xml/api/last_current.txt new file mode 100644 index 0000000000..e69de29bb2 diff --git a/audio/policy/1.0/xml/api/last_removed.txt b/audio/policy/1.0/xml/api/last_removed.txt new file mode 100644 index 0000000000..e69de29bb2 diff --git a/audio/policy/1.0/xml/api/removed.txt b/audio/policy/1.0/xml/api/removed.txt new file mode 100644 index 0000000000..d802177e24 --- /dev/null +++ b/audio/policy/1.0/xml/api/removed.txt @@ -0,0 +1 @@ +// Signature format: 2.0 diff --git a/audio/policy/1.0/xml/audio_policy_engine_configuration.xsd b/audio/policy/1.0/xml/audio_policy_engine_configuration.xsd new file mode 100644 index 0000000000..a23d9a8049 --- /dev/null +++ b/audio/policy/1.0/xml/audio_policy_engine_configuration.xsd @@ -0,0 +1,400 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Volume section defines a volume curve for a given use case and device category. + It contains a list of points of this curve expressing the attenuation in Millibels + for a given volume index from 0 to 100. + + 0,-9600 + 100,0 + + + It may also reference a reference/@name to avoid duplicating curves. + + + 0,-9600 + 100,0 + + + + + + + + + + + + + + + + + + + + + Comma separated pair of number. + The fist one is the framework level (between 0 and 100). + The second one is the volume to send to the HAL. + The framework will interpolate volumes not specified. + Their MUST be at least 2 points specified. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/audio/policy/1.0/xml/pfw_schemas/AllSchemas.xsd b/audio/policy/1.0/xml/pfw_schemas/AllSchemas.xsd new file mode 100644 index 0000000000..1e04a38f48 --- /dev/null +++ b/audio/policy/1.0/xml/pfw_schemas/AllSchemas.xsd @@ -0,0 +1,754 @@ + + + + + + + See http://www.w3.org/XML/1998/namespace.html and + http://www.w3.org/TR/REC-xml for information about this namespace. + + This schema document describes the XML namespace, in a form + suitable for import by other schema documents. + + Note that local names in this namespace are intended to be defined + only by the World Wide Web Consortium or its subgroups. The + following names are currently defined in this namespace and should + not be used with conflicting semantics by any Working Group, + specification, or document instance: + + base (as an attribute name): denotes an attribute whose value + provides a URI to be used as the base for interpreting any + relative URIs in the scope of the element on which it + appears; its value is inherited. This name is reserved + by virtue of its definition in the XML Base specification. + + id (as an attribute name): denotes an attribute whose value + should be interpreted as if declared to be of type ID. + The xml:id specification is not yet a W3C Recommendation, + but this attribute is included here to facilitate experimentation + with the mechanisms it proposes. Note that it is _not_ included + in the specialAttrs attribute group. + + lang (as an attribute name): denotes an attribute whose value + is a language code for the natural language of the content of + any element; its value is inherited. This name is reserved + by virtue of its definition in the XML specification. + + space (as an attribute name): denotes an attribute whose + value is a keyword indicating what whitespace processing + discipline is intended for the content of the element; its + value is inherited. This name is reserved by virtue of its + definition in the XML specification. + + Father (in any context at all): denotes Jon Bosak, the chair of + the original XML Working Group. This name is reserved by + the following decision of the W3C XML Plenary and + XML Coordination groups: + + In appreciation for his vision, leadership and dedication + the W3C XML Plenary on this 10th day of February, 2000 + reserves for Jon Bosak in perpetuity the XML name + xml:Father + + + + + This schema defines attributes and an attribute group + suitable for use by + schemas wishing to allow xml:base, xml:lang, xml:space or xml:id + attributes on elements they define. + + To enable this, such a schema must import this schema + for the XML namespace, e.g. as follows: + <schema . . .> + . . . + <import namespace="http://www.w3.org/XML/1998/namespace" + schemaLocation="http://www.w3.org/2005/08/xml.xsd"/> + + Subsequently, qualified reference to any of the attributes + or the group defined below will have the desired effect, e.g. + + <type . . .> + . . . + <attributeGroup ref="xml:specialAttrs"/> + + will define a type which will schema-validate an instance + element with any of those attributes + + + + In keeping with the XML Schema WG's standard versioning + policy, this schema document will persist at + http://www.w3.org/2005/08/xml.xsd. + At the date of issue it can also be found at + http://www.w3.org/2001/xml.xsd. + The schema document at that URI may however change in the future, + in order to remain compatible with the latest version of XML Schema + itself, or with the XML namespace itself. In other words, if the XML + Schema or XML namespaces change, the version of this document at + http://www.w3.org/2001/xml.xsd will change + accordingly; the version at + http://www.w3.org/2005/08/xml.xsd will not change. + + + + + + Attempting to install the relevant ISO 2- and 3-letter + codes as the enumerated possible values is probably never + going to be a realistic possibility. See + RFC 3066 at http://www.ietf.org/rfc/rfc3066.txt and the IANA registry + at http://www.iana.org/assignments/lang-tag-apps.htm for + further information. + + The union allows for the 'un-declaration' of xml:lang with + the empty string. + + + + + + + + + + + + + + + + + + + + + + + + See http://www.w3.org/TR/xmlbase/ for + information about this attribute. + + + + + + See http://www.w3.org/TR/xml-id/ for + information about this attribute. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Element type used to import a root element from a file. + + + + Path to the file to import. +This path may be absolute or relative to the path of the includer file. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/audio/policy/1.0/xml/pfw_schemas/Android.bp b/audio/policy/1.0/xml/pfw_schemas/Android.bp new file mode 100644 index 0000000000..8054dc57ef --- /dev/null +++ b/audio/policy/1.0/xml/pfw_schemas/Android.bp @@ -0,0 +1,107 @@ +xsd_config { + name: "audio_policy_engine_configurable_configuration_V1_0", + srcs: ["AllSchemas.xsd"], + package_name: "audio.policy.configurable.V1_0", +} + +// Unfortunately, all rules only have a single output, thus +// it is needed to create a rule per XSD file. + +genrule { + name: "audio_policy_engine_configurable_configuration_ComponentLibrary_V1_0", + srcs: ["ComponentLibrary.xsd"], + out: [ + "audio_policy_engine_configurable_configuration_ComponentLibrary_V1_0.xsd", + ], + cmd: "cp -f $(in) $(genDir)/audio_policy_engine_configurable_configuration_ComponentLibrary_V1_0.xsd", +} + +genrule { + name: "audio_policy_engine_configurable_configuration_ComponentTypeSet_V1_0", + srcs: ["ComponentTypeSet.xsd"], + out: [ + "audio_policy_engine_configurable_configuration_ComponentTypeSet_V1_0.xsd", + ], + cmd: "cp -f $(in) $(genDir)/audio_policy_engine_configurable_configuration_ComponentTypeSet_V1_0.xsd", +} + +genrule { + name: "audio_policy_engine_configurable_configuration_ConfigurableDomain_V1_0", + srcs: ["ConfigurableDomain.xsd"], + out: [ + "audio_policy_engine_configurable_configuration_ConfigurableDomain_V1_0.xsd", + ], + cmd: "cp -f $(in) $(genDir)/audio_policy_engine_configurable_configuration_ConfigurableDomain_V1_0.xsd", +} + +genrule { + name: "audio_policy_engine_configurable_configuration_ConfigurableDomains_V1_0", + srcs: ["ConfigurableDomains.xsd"], + out: [ + "audio_policy_engine_configurable_configuration_ConfigurableDomains_V1_0.xsd", + ], + cmd: "cp -f $(in) $(genDir)/audio_policy_engine_configurable_configuration_ConfigurableDomains_V1_0.xsd", +} + +genrule { + name: "audio_policy_engine_configurable_configuration_FileIncluder_V1_0", + srcs: ["FileIncluder.xsd"], + out: [ + "audio_policy_engine_configurable_configuration_FileIncluder_V1_0.xsd", + ], + cmd: "cp -f $(in) $(genDir)/audio_policy_engine_configurable_configuration_FileIncluder_V1_0.xsd", +} + +genrule { + name: "audio_policy_engine_configurable_configuration_Parameter_V1_0", + srcs: ["Parameter.xsd"], + out: [ + "audio_policy_engine_configurable_configuration_Parameter_V1_0.xsd", + ], + cmd: "cp -f $(in) $(genDir)/audio_policy_engine_configurable_configuration_Parameter_V1_0.xsd", +} + +genrule { + name: "audio_policy_engine_configurable_configuration_ParameterFrameworkConfiguration_V1_0", + srcs: ["ParameterFrameworkConfiguration.xsd"], + out: [ + "audio_policy_engine_configurable_configuration_ParameterFrameworkConfiguration_V1_0.xsd", + ], + cmd: "cp -f $(in) $(genDir)/audio_policy_engine_configurable_configuration_ParameterFrameworkConfiguration_V1_0.xsd", +} + +genrule { + name: "audio_policy_engine_configurable_configuration_ParameterSettings_V1_0", + srcs: ["ParameterSettings.xsd"], + out: [ + "audio_policy_engine_configurable_configuration_ParameterSettings_V1_0.xsd", + ], + cmd: "cp -f $(in) $(genDir)/audio_policy_engine_configurable_configuration_ParameterSettings_V1_0.xsd", +} + +genrule { + name: "audio_policy_engine_configurable_configuration_Subsystem_V1_0", + srcs: ["Subsystem.xsd"], + out: [ + "audio_policy_engine_configurable_configuration_Subsystem_V1_0.xsd", + ], + cmd: "cp -f $(in) $(genDir)/audio_policy_engine_configurable_configuration_Subsystem_V1_0.xsd", +} + +genrule { + name: "audio_policy_engine_configurable_configuration_SystemClass_V1_0", + srcs: ["SystemClass.xsd"], + out: [ + "audio_policy_engine_configurable_configuration_SystemClass_V1_0.xsd", + ], + cmd: "cp -f $(in) $(genDir)/audio_policy_engine_configurable_configuration_SystemClass_V1_0.xsd", +} + +genrule { + name: "audio_policy_engine_configurable_configuration_W3cXmlAttributes_V1_0", + srcs: ["W3cXmlAttributes.xsd"], + out: [ + "audio_policy_engine_configurable_configuration_W3cXmlAttributes_V1_0.xsd", + ], + cmd: "cp -f $(in) $(genDir)/audio_policy_engine_configurable_configuration_W3cXmlAttributes_V1_0.xsd", +} diff --git a/audio/policy/1.0/xml/pfw_schemas/ComponentLibrary.xsd b/audio/policy/1.0/xml/pfw_schemas/ComponentLibrary.xsd new file mode 100644 index 0000000000..fbd70af2c5 --- /dev/null +++ b/audio/policy/1.0/xml/pfw_schemas/ComponentLibrary.xsd @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/audio/policy/1.0/xml/pfw_schemas/ComponentTypeSet.xsd b/audio/policy/1.0/xml/pfw_schemas/ComponentTypeSet.xsd new file mode 100644 index 0000000000..d3938b6e6c --- /dev/null +++ b/audio/policy/1.0/xml/pfw_schemas/ComponentTypeSet.xsd @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/audio/policy/1.0/xml/pfw_schemas/ConfigurableDomain.xsd b/audio/policy/1.0/xml/pfw_schemas/ConfigurableDomain.xsd new file mode 100644 index 0000000000..583acdc09a --- /dev/null +++ b/audio/policy/1.0/xml/pfw_schemas/ConfigurableDomain.xsd @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/audio/policy/1.0/xml/pfw_schemas/ConfigurableDomains.xsd b/audio/policy/1.0/xml/pfw_schemas/ConfigurableDomains.xsd new file mode 100644 index 0000000000..4fbe07a5aa --- /dev/null +++ b/audio/policy/1.0/xml/pfw_schemas/ConfigurableDomains.xsd @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/audio/policy/1.0/xml/pfw_schemas/FileIncluder.xsd b/audio/policy/1.0/xml/pfw_schemas/FileIncluder.xsd new file mode 100644 index 0000000000..049c90303a --- /dev/null +++ b/audio/policy/1.0/xml/pfw_schemas/FileIncluder.xsd @@ -0,0 +1,15 @@ + + + + + + Element type used to import a root element from a file. + + + + Path to the file to import. +This path may be absolute or relative to the path of the includer file. + + + + diff --git a/audio/policy/1.0/xml/pfw_schemas/Parameter.xsd b/audio/policy/1.0/xml/pfw_schemas/Parameter.xsd new file mode 100644 index 0000000000..b385e6eeb5 --- /dev/null +++ b/audio/policy/1.0/xml/pfw_schemas/Parameter.xsd @@ -0,0 +1,213 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/audio/policy/1.0/xml/pfw_schemas/ParameterFrameworkConfiguration.xsd b/audio/policy/1.0/xml/pfw_schemas/ParameterFrameworkConfiguration.xsd new file mode 100644 index 0000000000..d796ab3aae --- /dev/null +++ b/audio/policy/1.0/xml/pfw_schemas/ParameterFrameworkConfiguration.xsd @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/audio/policy/1.0/xml/pfw_schemas/ParameterSettings.xsd b/audio/policy/1.0/xml/pfw_schemas/ParameterSettings.xsd new file mode 100644 index 0000000000..8951b38925 --- /dev/null +++ b/audio/policy/1.0/xml/pfw_schemas/ParameterSettings.xsd @@ -0,0 +1,93 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/audio/policy/1.0/xml/pfw_schemas/README.md b/audio/policy/1.0/xml/pfw_schemas/README.md new file mode 100644 index 0000000000..243b5c054f --- /dev/null +++ b/audio/policy/1.0/xml/pfw_schemas/README.md @@ -0,0 +1,87 @@ +# parameter-framework configuration file XML Schemas + +These are W3C Schemas for the various configuration files. + +`xmllint` may be used to check for correctness, e.g: + + xmllint --xinclude --noout --schema ParameterFrameworkConfiguration.xsd /path/to/your/ParameterFrameworkConfiguration.xml + +See `tools/xmlValidator` for a custom alternative tool. + +Only `ParameterFrameworkConfiguration.xsd`, `SystemClass.xsd`, `Subsystem.xsd` and +`ConfigurableDomains.xsd` are relevant for use with xmllint: the others are +included by these 4 XSDs. + +**You may refer to samples at +.** + +## ParameterFrameworkConfiguration.xsd + +Schema for the **top-level configuration**. It contains: + +- A reference to the `SystemClass` (aka StructureDescription) XML file (see + below); +- The list of plugins (libraries) to be used. They may be split according to +the folder they reside in. The `Folder` attribute can either be: + + - an absolute path, + - a relative path (relative to the execution directory), + - empty. + + In the first two cases, the runtime loader will be asked to explicitely load + the libraries found in the specified folder; in the last case (empty string) + the runtime loader will search for the library on its own (e.g. on Linux + distribution this is usually `/lib`, `/usr/lib` - see `man ld.so`) +- Optionally, a reference to the `Settings`. + +Attributes of `ParameterFrameworkConfiguration` are: + +- The `SystemClass` name (for consistency check) +- `TuningAllowed` (whether the parameter-framework listens for commands) +- The `ServerPort` bind Address (PATH or TCP port) on which the parameter-framework listens if + `TuningAllowed=true`. + +## SystemClass.xsd + +Schema for the **SystemClass associated with the top-level configuration**. It +points to all the "Subsystem" files (see below). + +The `Name` attribute of the SystemClass must match the `SystemClass` attribute +of the top-level configuration file. This name will be the first component of +all parameters in it, i.e. if its name is "FooBar", its path is `/FooBar`. We +will use this name in examples below. + +## Subsystem.xsd + +Schema for all **Subsystem files** (aka Structure files). These files describe the +content and structure of the system to be managed by the parameter-framework +and also indicate which plugin is to be used. + +A Subsystem has the following attribute: + +- `Name` (self-explanatory); again it is the base component of all parameters + inside it; i.e. if its name is "Spam", its path is `/FooBar/Spam`; +- `Type`, which indicates which SubsystemBuilder is to be used (each plugin can + declare one or more SubsystemBuilders); it may be defined as `Virtual`, in + which case, no plugin will be used and the parameters won't be synchronized. + This is useful for debugging but may also be used for the parameter-framework + to act as a configurable settings database; +- `Mapping` (optional), defines a Mapping to be inherited by all Components in + the Subsystem. + +A Subsystem *must* contain: + +- A `ComponentLibrary`, which may include (using ``) + other files containing a `` or a `` tag. +- An `InstanceDefinition` which instantiates the parameters and may use + ComponentTypes defined in the ComponentLibrary. + +## ConfigurableDomains.xsd + +Schema for the ConfigurableDomains (aka Settings files). These files contain +the rules for applying values to parameters. + +Writing this file by hand is painful but it is not intended to be dealt +with directly: instead, you may use the command-line interface (see +`remote-process/README.md`) to set the settings and export the resulting +Settings with the `getDomainsWithSettingsXML` command. diff --git a/audio/policy/1.0/xml/pfw_schemas/Subsystem.xsd b/audio/policy/1.0/xml/pfw_schemas/Subsystem.xsd new file mode 100644 index 0000000000..b1bfcbc478 --- /dev/null +++ b/audio/policy/1.0/xml/pfw_schemas/Subsystem.xsd @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/audio/policy/1.0/xml/pfw_schemas/SystemClass.xsd b/audio/policy/1.0/xml/pfw_schemas/SystemClass.xsd new file mode 100644 index 0000000000..d07793e285 --- /dev/null +++ b/audio/policy/1.0/xml/pfw_schemas/SystemClass.xsd @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/audio/policy/1.0/xml/pfw_schemas/W3cXmlAttributes.xsd b/audio/policy/1.0/xml/pfw_schemas/W3cXmlAttributes.xsd new file mode 100644 index 0000000000..7f9de1b17f --- /dev/null +++ b/audio/policy/1.0/xml/pfw_schemas/W3cXmlAttributes.xsd @@ -0,0 +1,146 @@ + + + + + + See http://www.w3.org/XML/1998/namespace.html and + http://www.w3.org/TR/REC-xml for information about this namespace. + + This schema document describes the XML namespace, in a form + suitable for import by other schema documents. + + Note that local names in this namespace are intended to be defined + only by the World Wide Web Consortium or its subgroups. The + following names are currently defined in this namespace and should + not be used with conflicting semantics by any Working Group, + specification, or document instance: + + base (as an attribute name): denotes an attribute whose value + provides a URI to be used as the base for interpreting any + relative URIs in the scope of the element on which it + appears; its value is inherited. This name is reserved + by virtue of its definition in the XML Base specification. + + id (as an attribute name): denotes an attribute whose value + should be interpreted as if declared to be of type ID. + The xml:id specification is not yet a W3C Recommendation, + but this attribute is included here to facilitate experimentation + with the mechanisms it proposes. Note that it is _not_ included + in the specialAttrs attribute group. + + lang (as an attribute name): denotes an attribute whose value + is a language code for the natural language of the content of + any element; its value is inherited. This name is reserved + by virtue of its definition in the XML specification. + + space (as an attribute name): denotes an attribute whose + value is a keyword indicating what whitespace processing + discipline is intended for the content of the element; its + value is inherited. This name is reserved by virtue of its + definition in the XML specification. + + Father (in any context at all): denotes Jon Bosak, the chair of + the original XML Working Group. This name is reserved by + the following decision of the W3C XML Plenary and + XML Coordination groups: + + In appreciation for his vision, leadership and dedication + the W3C XML Plenary on this 10th day of February, 2000 + reserves for Jon Bosak in perpetuity the XML name + xml:Father + + + + + This schema defines attributes and an attribute group + suitable for use by + schemas wishing to allow xml:base, xml:lang, xml:space or xml:id + attributes on elements they define. + + To enable this, such a schema must import this schema + for the XML namespace, e.g. as follows: + <schema . . .> + . . . + <import namespace="http://www.w3.org/XML/1998/namespace" + schemaLocation="http://www.w3.org/2005/08/xml.xsd"/> + + Subsequently, qualified reference to any of the attributes + or the group defined below will have the desired effect, e.g. + + <type . . .> + . . . + <attributeGroup ref="xml:specialAttrs"/> + + will define a type which will schema-validate an instance + element with any of those attributes + + + + In keeping with the XML Schema WG's standard versioning + policy, this schema document will persist at + http://www.w3.org/2005/08/xml.xsd. + At the date of issue it can also be found at + http://www.w3.org/2001/xml.xsd. + The schema document at that URI may however change in the future, + in order to remain compatible with the latest version of XML Schema + itself, or with the XML namespace itself. In other words, if the XML + Schema or XML namespaces change, the version of this document at + http://www.w3.org/2001/xml.xsd will change + accordingly; the version at + http://www.w3.org/2005/08/xml.xsd will not change. + + + + + + Attempting to install the relevant ISO 2- and 3-letter + codes as the enumerated possible values is probably never + going to be a realistic possibility. See + RFC 3066 at http://www.ietf.org/rfc/rfc3066.txt and the IANA registry + at http://www.iana.org/assignments/lang-tag-apps.htm for + further information. + + The union allows for the 'un-declaration' of xml:lang with + the empty string. + + + + + + + + + + + + + + + + + + + + + + + + See http://www.w3.org/TR/xmlbase/ for + information about this attribute. + + + + + + See http://www.w3.org/TR/xml-id/ for + information about this attribute. + + + + + + + + + + diff --git a/audio/policy/1.0/xml/pfw_schemas/api/current.txt b/audio/policy/1.0/xml/pfw_schemas/api/current.txt new file mode 100644 index 0000000000..c2fb6fc437 --- /dev/null +++ b/audio/policy/1.0/xml/pfw_schemas/api/current.txt @@ -0,0 +1,495 @@ +// Signature format: 2.0 +package audio.policy.configurable.V1_0 { + + public class Adaptation { + ctor public Adaptation(); + method public java.math.BigInteger getOffset(); + method public void setOffset(java.math.BigInteger); + } + + public class BitParameterBlock { + ctor public BitParameterBlock(); + method public java.util.List getBitParameter(); + method public String getDescription(); + method public String getMapping(); + method public String getName(); + method public java.math.BigInteger getSize(); + method public void setDescription(String); + method public void setMapping(String); + method public void setName(String); + method public void setSize(java.math.BigInteger); + } + + public class BitParameterBlockType { + ctor public BitParameterBlockType(); + method public java.util.List getBitParameter(); + method public String getName(); + method public void setName(String); + } + + public class BitParameterType { + ctor public BitParameterType(); + method public String getDescription(); + method public java.math.BigInteger getMax(); + method public String getName(); + method public java.math.BigInteger getPos(); + method public java.math.BigInteger getSize(); + method public void setDescription(String); + method public void setMax(java.math.BigInteger); + method public void setName(String); + method public void setPos(java.math.BigInteger); + method public void setSize(java.math.BigInteger); + } + + public class BooleanParameter extends audio.policy.configurable.V1_0.Parameter { + ctor public BooleanParameter(); + method public java.math.BigInteger getSize(); + method public void setSize(java.math.BigInteger); + } + + public class BooleanParameterType extends audio.policy.configurable.V1_0.ParameterType { + ctor public BooleanParameterType(); + } + + public class ComponentInstance { + ctor public ComponentInstance(); + method public java.math.BigInteger getArrayLength(); + method public String getDescription(); + method public String getMapping(); + method public String getName(); + method public String getType(); + method public void setArrayLength(java.math.BigInteger); + method public void setDescription(String); + method public void setMapping(String); + method public void setName(String); + method public void setType(String); + } + + public class ComponentType { + ctor public ComponentType(); + method public audio.policy.configurable.V1_0.BitParameterBlock getBitParameterBlock(); + method public audio.policy.configurable.V1_0.BooleanParameter getBooleanParameter(); + method public audio.policy.configurable.V1_0.ComponentInstance getComponent_optional(); + method public String getDescription(); + method public audio.policy.configurable.V1_0.EnumParameterType getEnumParameter(); + method public audio.policy.configurable.V1_0.FixedPointParameterType getFixedPointParameter(); + method public audio.policy.configurable.V1_0.FloatingPointParameterType getFloatingPointParameter(); + method public audio.policy.configurable.V1_0.IntegerParameterType getIntegerParameter(); + method public String getMapping(); + method public String getName(); + method public audio.policy.configurable.V1_0.ParameterBlockType getParameterBlock_optional(); + method public audio.policy.configurable.V1_0.StringParameter getStringParameter(); + method public String get_extends(); + method public void setBitParameterBlock(audio.policy.configurable.V1_0.BitParameterBlock); + method public void setBooleanParameter(audio.policy.configurable.V1_0.BooleanParameter); + method public void setComponent_optional(audio.policy.configurable.V1_0.ComponentInstance); + method public void setDescription(String); + method public void setEnumParameter(audio.policy.configurable.V1_0.EnumParameterType); + method public void setFixedPointParameter(audio.policy.configurable.V1_0.FixedPointParameterType); + method public void setFloatingPointParameter(audio.policy.configurable.V1_0.FloatingPointParameterType); + method public void setIntegerParameter(audio.policy.configurable.V1_0.IntegerParameterType); + method public void setMapping(String); + method public void setName(String); + method public void setParameterBlock_optional(audio.policy.configurable.V1_0.ParameterBlockType); + method public void setStringParameter(audio.policy.configurable.V1_0.StringParameter); + method public void set_extends(String); + } + + public class ComponentTypeSetType { + ctor public ComponentTypeSetType(); + method public String getBase(); + method public audio.policy.configurable.V1_0.ComponentTypeSetType getComponentLibrary_optional(); + method public audio.policy.configurable.V1_0.ComponentTypeSetType getComponentTypeSet_optional(); + method public audio.policy.configurable.V1_0.ComponentType getComponentType_optional(); + method public void setBase(String); + method public void setComponentLibrary_optional(audio.policy.configurable.V1_0.ComponentTypeSetType); + method public void setComponentTypeSet_optional(audio.policy.configurable.V1_0.ComponentTypeSetType); + method public void setComponentType_optional(audio.policy.configurable.V1_0.ComponentType); + } + + public class CompoundRuleType { + ctor public CompoundRuleType(); + method public audio.policy.configurable.V1_0.CompoundRuleType getCompoundRule_optional(); + method public audio.policy.configurable.V1_0.SelectionCriterionRuleType getSelectionCriterionRule_optional(); + method public audio.policy.configurable.V1_0.TypeEnum getType(); + method public void setCompoundRule_optional(audio.policy.configurable.V1_0.CompoundRuleType); + method public void setSelectionCriterionRule_optional(audio.policy.configurable.V1_0.SelectionCriterionRuleType); + method public void setType(audio.policy.configurable.V1_0.TypeEnum); + } + + public class ConfigurableDomainType { + ctor public ConfigurableDomainType(); + method public audio.policy.configurable.V1_0.ConfigurableElementsType getConfigurableElements(); + method public audio.policy.configurable.V1_0.ConfigurationsType getConfigurations(); + method public String getName(); + method public boolean getSequenceAware(); + method public audio.policy.configurable.V1_0.SettingsType getSettings(); + method public void setConfigurableElements(audio.policy.configurable.V1_0.ConfigurableElementsType); + method public void setConfigurations(audio.policy.configurable.V1_0.ConfigurationsType); + method public void setName(String); + method public void setSequenceAware(boolean); + method public void setSettings(audio.policy.configurable.V1_0.SettingsType); + } + + public class ConfigurableDomains { + ctor public ConfigurableDomains(); + method public java.util.List getConfigurableDomain(); + method public String getSystemClassName(); + method public void setSystemClassName(String); + } + + public class ConfigurableElementSettingsType { + ctor public ConfigurableElementSettingsType(); + method public audio.policy.configurable.V1_0.IntegerParameterType getBitParameter_optional(); + method public String getPath(); + method public void setBitParameter_optional(audio.policy.configurable.V1_0.IntegerParameterType); + method public void setPath(String); + } + + public class ConfigurableElementsType { + ctor public ConfigurableElementsType(); + method public java.util.List getConfigurableElement(); + } + + public static class ConfigurableElementsType.ConfigurableElement { + ctor public ConfigurableElementsType.ConfigurableElement(); + method public String getPath(); + method public void setPath(String); + } + + public class ConfigurationFilePath { + ctor public ConfigurationFilePath(); + method public String getPath(); + method public void setPath(String); + } + + public class ConfigurationsType { + ctor public ConfigurationsType(); + method public java.util.List getConfiguration(); + } + + public static class ConfigurationsType.Configuration { + ctor public ConfigurationsType.Configuration(); + method public audio.policy.configurable.V1_0.CompoundRuleType getCompoundRule(); + method public String getName(); + method public void setCompoundRule(audio.policy.configurable.V1_0.CompoundRuleType); + method public void setName(String); + } + + public class EnumParameterType extends audio.policy.configurable.V1_0.Parameter { + ctor public EnumParameterType(); + method public java.math.BigInteger getSize(); + method public java.util.List getValuePair(); + method public void setSize(java.math.BigInteger); + } + + public static class EnumParameterType.ValuePair { + ctor public EnumParameterType.ValuePair(); + method public String getLiteral(); + method public String getNumerical(); + method public void setLiteral(String); + method public void setNumerical(String); + } + + public class FileIncluderType { + ctor public FileIncluderType(); + method public String getPath(); + method public void setPath(String); + } + + public class FixedPointParameterType extends audio.policy.configurable.V1_0.PointParameterType { + ctor public FixedPointParameterType(); + method public java.math.BigInteger getFractional(); + method public java.math.BigInteger getIntegral(); + method public java.math.BigInteger getSize(); + method public void setFractional(java.math.BigInteger); + method public void setIntegral(java.math.BigInteger); + method public void setSize(java.math.BigInteger); + } + + public class FloatingPointParameterType extends audio.policy.configurable.V1_0.PointParameterType { + ctor public FloatingPointParameterType(); + method public String getMax(); + method public String getMin(); + method public java.math.BigInteger getSize(); + method public void setMax(String); + method public void setMin(String); + method public void setSize(java.math.BigInteger); + } + + public class IntegerParameterType extends audio.policy.configurable.V1_0.Parameter { + ctor public IntegerParameterType(); + method public audio.policy.configurable.V1_0.LinearAdaptationType getLinearAdaptation(); + method public audio.policy.configurable.V1_0.LogarithmicAdaptation getLogarithmicAdaptation(); + method public java.math.BigInteger getMax(); + method public java.math.BigInteger getMin(); + method public boolean getSigned(); + method public java.math.BigInteger getSize(); + method public String getUnit(); + method public void setLinearAdaptation(audio.policy.configurable.V1_0.LinearAdaptationType); + method public void setLogarithmicAdaptation(audio.policy.configurable.V1_0.LogarithmicAdaptation); + method public void setMax(java.math.BigInteger); + method public void setMin(java.math.BigInteger); + method public void setSigned(boolean); + method public void setSize(java.math.BigInteger); + method public void setUnit(String); + } + + public enum LangEnum { + method public String getRawName(); + enum_constant public static final audio.policy.configurable.V1_0.LangEnum EMPTY; + } + + public class LinearAdaptationType extends audio.policy.configurable.V1_0.Adaptation { + ctor public LinearAdaptationType(); + method public double getSlopeDenominator(); + method public double getSlopeNumerator(); + method public void setSlopeDenominator(double); + method public void setSlopeNumerator(double); + } + + public class LogarithmicAdaptation extends audio.policy.configurable.V1_0.LinearAdaptationType { + ctor public LogarithmicAdaptation(); + method public double getFloorValue(); + method public double getLogarithmBase(); + method public void setFloorValue(double); + method public void setLogarithmBase(double); + } + + public enum MatchesWhenEnum { + method public String getRawName(); + enum_constant public static final audio.policy.configurable.V1_0.MatchesWhenEnum Excludes; + enum_constant public static final audio.policy.configurable.V1_0.MatchesWhenEnum Includes; + enum_constant public static final audio.policy.configurable.V1_0.MatchesWhenEnum Is; + enum_constant public static final audio.policy.configurable.V1_0.MatchesWhenEnum IsNot; + } + + public class Parameter { + ctor public Parameter(); + method public java.math.BigInteger getArrayLength(); + method public String getDescription(); + method public String getMapping(); + method public String getName(); + method public void setArrayLength(java.math.BigInteger); + method public void setDescription(String); + method public void setMapping(String); + method public void setName(String); + } + + public class ParameterBlockType { + ctor public ParameterBlockType(); + method public java.math.BigInteger getArrayLength(); + method public audio.policy.configurable.V1_0.BitParameterBlock getBitParameterBlock(); + method public audio.policy.configurable.V1_0.BooleanParameter getBooleanParameter(); + method public audio.policy.configurable.V1_0.ComponentInstance getComponent_optional(); + method public String getDescription(); + method public audio.policy.configurable.V1_0.EnumParameterType getEnumParameter(); + method public audio.policy.configurable.V1_0.FixedPointParameterType getFixedPointParameter(); + method public audio.policy.configurable.V1_0.FloatingPointParameterType getFloatingPointParameter(); + method public audio.policy.configurable.V1_0.IntegerParameterType getIntegerParameter(); + method public String getMapping(); + method public String getName(); + method public audio.policy.configurable.V1_0.ParameterBlockType getParameterBlock_optional(); + method public audio.policy.configurable.V1_0.StringParameter getStringParameter(); + method public void setArrayLength(java.math.BigInteger); + method public void setBitParameterBlock(audio.policy.configurable.V1_0.BitParameterBlock); + method public void setBooleanParameter(audio.policy.configurable.V1_0.BooleanParameter); + method public void setComponent_optional(audio.policy.configurable.V1_0.ComponentInstance); + method public void setDescription(String); + method public void setEnumParameter(audio.policy.configurable.V1_0.EnumParameterType); + method public void setFixedPointParameter(audio.policy.configurable.V1_0.FixedPointParameterType); + method public void setFloatingPointParameter(audio.policy.configurable.V1_0.FloatingPointParameterType); + method public void setIntegerParameter(audio.policy.configurable.V1_0.IntegerParameterType); + method public void setMapping(String); + method public void setName(String); + method public void setParameterBlock_optional(audio.policy.configurable.V1_0.ParameterBlockType); + method public void setStringParameter(audio.policy.configurable.V1_0.StringParameter); + } + + public class ParameterFrameworkConfiguration { + ctor public ParameterFrameworkConfiguration(); + method public String getServerPort(); + method public audio.policy.configurable.V1_0.SettingsConfigurationType getSettingsConfiguration(); + method public audio.policy.configurable.V1_0.ConfigurationFilePath getStructureDescriptionFileLocation(); + method public audio.policy.configurable.V1_0.SubsystemPlugins getSubsystemPlugins(); + method public String getSystemClassName(); + method public boolean getTuningAllowed(); + method public void setServerPort(String); + method public void setSettingsConfiguration(audio.policy.configurable.V1_0.SettingsConfigurationType); + method public void setStructureDescriptionFileLocation(audio.policy.configurable.V1_0.ConfigurationFilePath); + method public void setSubsystemPlugins(audio.policy.configurable.V1_0.SubsystemPlugins); + method public void setSystemClassName(String); + method public void setTuningAllowed(boolean); + } + + public class ParameterType { + ctor public ParameterType(); + method public String getName(); + method public String getValue(); + method public audio.policy.configurable.V1_0.ValueSpaceEnum getValueSpace(); + method public void setName(String); + method public void setValue(String); + method public void setValueSpace(audio.policy.configurable.V1_0.ValueSpaceEnum); + } + + public class PluginFile { + ctor public PluginFile(); + method public String getName(); + method public void setName(String); + } + + public class PluginLocation { + ctor public PluginLocation(); + method public String getFolder(); + method public java.util.List getPlugin(); + method public void setFolder(String); + } + + public class PointParameterType extends audio.policy.configurable.V1_0.Parameter { + ctor public PointParameterType(); + method public String getUnit(); + method public void setUnit(String); + } + + public class SelectionCriterionRuleType { + ctor public SelectionCriterionRuleType(); + method public audio.policy.configurable.V1_0.MatchesWhenEnum getMatchesWhen(); + method public String getSelectionCriterion(); + method public String getValue(); + method public void setMatchesWhen(audio.policy.configurable.V1_0.MatchesWhenEnum); + method public void setSelectionCriterion(String); + method public void setValue(String); + } + + public class SettingsConfigurationType { + ctor public SettingsConfigurationType(); + method public audio.policy.configurable.V1_0.ConfigurationFilePath getConfigurableDomainsFileLocation(); + method public void setConfigurableDomainsFileLocation(audio.policy.configurable.V1_0.ConfigurationFilePath); + } + + public class SettingsType { + ctor public SettingsType(); + method public java.util.List getConfiguration(); + } + + public static class SettingsType.Configuration { + ctor public SettingsType.Configuration(); + method public java.util.List getConfigurableElement(); + method public String getName(); + method public void setName(String); + } + + public enum SpaceEnum { + method public String getRawName(); + enum_constant public static final audio.policy.configurable.V1_0.SpaceEnum _default; + enum_constant public static final audio.policy.configurable.V1_0.SpaceEnum preserve; + } + + public class StringParameter { + ctor public StringParameter(); + method public String getDescription(); + method public String getMapping(); + method public java.math.BigInteger getMaxLength(); + method public String getName(); + method public void setDescription(String); + method public void setMapping(String); + method public void setMaxLength(java.math.BigInteger); + method public void setName(String); + } + + public class StringParameterType { + ctor public StringParameterType(); + method public String getName(); + method public String getValue(); + method public void setName(String); + method public void setValue(String); + } + + public class SubsystemPlugins { + ctor public SubsystemPlugins(); + method public java.util.List getLocation(); + } + + public class SubsystemType { + ctor public SubsystemType(); + method public audio.policy.configurable.V1_0.ComponentTypeSetType getComponentLibrary(); + method public String getDescription(); + method public audio.policy.configurable.V1_0.SubsystemType.InstanceDefinition getInstanceDefinition(); + method public String getMapping(); + method public String getName(); + method public String getType(); + method public void setComponentLibrary(audio.policy.configurable.V1_0.ComponentTypeSetType); + method public void setDescription(String); + method public void setInstanceDefinition(audio.policy.configurable.V1_0.SubsystemType.InstanceDefinition); + method public void setMapping(String); + method public void setName(String); + method public void setType(String); + } + + public static class SubsystemType.InstanceDefinition { + ctor public SubsystemType.InstanceDefinition(); + method public audio.policy.configurable.V1_0.BitParameterBlock getBitParameterBlock(); + method public audio.policy.configurable.V1_0.BooleanParameter getBooleanParameter(); + method public audio.policy.configurable.V1_0.ComponentInstance getComponent_optional(); + method public audio.policy.configurable.V1_0.EnumParameterType getEnumParameter(); + method public audio.policy.configurable.V1_0.FixedPointParameterType getFixedPointParameter(); + method public audio.policy.configurable.V1_0.FloatingPointParameterType getFloatingPointParameter(); + method public audio.policy.configurable.V1_0.IntegerParameterType getIntegerParameter(); + method public audio.policy.configurable.V1_0.ParameterBlockType getParameterBlock_optional(); + method public audio.policy.configurable.V1_0.StringParameter getStringParameter(); + method public void setBitParameterBlock(audio.policy.configurable.V1_0.BitParameterBlock); + method public void setBooleanParameter(audio.policy.configurable.V1_0.BooleanParameter); + method public void setComponent_optional(audio.policy.configurable.V1_0.ComponentInstance); + method public void setEnumParameter(audio.policy.configurable.V1_0.EnumParameterType); + method public void setFixedPointParameter(audio.policy.configurable.V1_0.FixedPointParameterType); + method public void setFloatingPointParameter(audio.policy.configurable.V1_0.FloatingPointParameterType); + method public void setIntegerParameter(audio.policy.configurable.V1_0.IntegerParameterType); + method public void setParameterBlock_optional(audio.policy.configurable.V1_0.ParameterBlockType); + method public void setStringParameter(audio.policy.configurable.V1_0.StringParameter); + } + + public class SystemClass { + ctor public SystemClass(); + method public String getName(); + method public java.util.List getSubsystem(); + method public java.util.List getSubsystemInclude_optional(); + method public void setName(String); + } + + public enum TypeEnum { + method public String getRawName(); + enum_constant public static final audio.policy.configurable.V1_0.TypeEnum All; + enum_constant public static final audio.policy.configurable.V1_0.TypeEnum Any; + } + + public enum ValueSpaceEnum { + method public String getRawName(); + enum_constant public static final audio.policy.configurable.V1_0.ValueSpaceEnum Raw; + enum_constant public static final audio.policy.configurable.V1_0.ValueSpaceEnum Real; + } + + public class XmlParser { + ctor public XmlParser(); + method public static audio.policy.configurable.V1_0.BitParameterBlock readBitParameterBlock(java.io.InputStream) throws javax.xml.datatype.DatatypeConfigurationException, java.io.IOException, org.xmlpull.v1.XmlPullParserException; + method public static audio.policy.configurable.V1_0.BooleanParameter readBooleanParameter(java.io.InputStream) throws javax.xml.datatype.DatatypeConfigurationException, java.io.IOException, org.xmlpull.v1.XmlPullParserException; + method public static audio.policy.configurable.V1_0.ComponentTypeSetType readComponentTypeSetType(java.io.InputStream) throws javax.xml.datatype.DatatypeConfigurationException, java.io.IOException, org.xmlpull.v1.XmlPullParserException; + method public static audio.policy.configurable.V1_0.ComponentTypeSetType readComponentTypeSetType(java.io.InputStream) throws javax.xml.datatype.DatatypeConfigurationException, java.io.IOException, org.xmlpull.v1.XmlPullParserException; + method public static audio.policy.configurable.V1_0.ConfigurableDomainType readConfigurableDomainType(java.io.InputStream) throws javax.xml.datatype.DatatypeConfigurationException, java.io.IOException, org.xmlpull.v1.XmlPullParserException; + method public static audio.policy.configurable.V1_0.ConfigurableDomains readConfigurableDomains(java.io.InputStream) throws javax.xml.datatype.DatatypeConfigurationException, java.io.IOException, org.xmlpull.v1.XmlPullParserException; + method public static audio.policy.configurable.V1_0.EnumParameterType readEnumParameterType(java.io.InputStream) throws javax.xml.datatype.DatatypeConfigurationException, java.io.IOException, org.xmlpull.v1.XmlPullParserException; + method public static audio.policy.configurable.V1_0.FixedPointParameterType readFixedPointParameterType(java.io.InputStream) throws javax.xml.datatype.DatatypeConfigurationException, java.io.IOException, org.xmlpull.v1.XmlPullParserException; + method public static audio.policy.configurable.V1_0.FloatingPointParameterType readFloatingPointParameterType(java.io.InputStream) throws javax.xml.datatype.DatatypeConfigurationException, java.io.IOException, org.xmlpull.v1.XmlPullParserException; + method public static audio.policy.configurable.V1_0.IntegerParameterType readIntegerParameterType(java.io.InputStream) throws javax.xml.datatype.DatatypeConfigurationException, java.io.IOException, org.xmlpull.v1.XmlPullParserException; + method public static audio.policy.configurable.V1_0.LinearAdaptationType readLinearAdaptationType(java.io.InputStream) throws javax.xml.datatype.DatatypeConfigurationException, java.io.IOException, org.xmlpull.v1.XmlPullParserException; + method public static audio.policy.configurable.V1_0.LogarithmicAdaptation readLogarithmicAdaptation(java.io.InputStream) throws javax.xml.datatype.DatatypeConfigurationException, java.io.IOException, org.xmlpull.v1.XmlPullParserException; + method public static audio.policy.configurable.V1_0.ParameterFrameworkConfiguration readParameterFrameworkConfiguration(java.io.InputStream) throws javax.xml.datatype.DatatypeConfigurationException, java.io.IOException, org.xmlpull.v1.XmlPullParserException; + method public static audio.policy.configurable.V1_0.StringParameter readStringParameter(java.io.InputStream) throws javax.xml.datatype.DatatypeConfigurationException, java.io.IOException, org.xmlpull.v1.XmlPullParserException; + method public static audio.policy.configurable.V1_0.SubsystemPlugins readSubsystemPlugins(java.io.InputStream) throws javax.xml.datatype.DatatypeConfigurationException, java.io.IOException, org.xmlpull.v1.XmlPullParserException; + method public static audio.policy.configurable.V1_0.SubsystemType readSubsystemType(java.io.InputStream) throws javax.xml.datatype.DatatypeConfigurationException, java.io.IOException, org.xmlpull.v1.XmlPullParserException; + method public static audio.policy.configurable.V1_0.SystemClass readSystemClass(java.io.InputStream) throws javax.xml.datatype.DatatypeConfigurationException, java.io.IOException, org.xmlpull.v1.XmlPullParserException; + method public static String readText(org.xmlpull.v1.XmlPullParser) throws java.io.IOException, org.xmlpull.v1.XmlPullParserException; + method public static void skip(org.xmlpull.v1.XmlPullParser) throws java.io.IOException, org.xmlpull.v1.XmlPullParserException; + } + +} + diff --git a/audio/policy/1.0/xml/pfw_schemas/api/last_current.txt b/audio/policy/1.0/xml/pfw_schemas/api/last_current.txt new file mode 100644 index 0000000000..e69de29bb2 diff --git a/audio/policy/1.0/xml/pfw_schemas/api/last_removed.txt b/audio/policy/1.0/xml/pfw_schemas/api/last_removed.txt new file mode 100644 index 0000000000..e69de29bb2 diff --git a/audio/policy/1.0/xml/pfw_schemas/api/removed.txt b/audio/policy/1.0/xml/pfw_schemas/api/removed.txt new file mode 100644 index 0000000000..d802177e24 --- /dev/null +++ b/audio/policy/1.0/xml/pfw_schemas/api/removed.txt @@ -0,0 +1 @@ +// Signature format: 2.0