summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFrançois Gaffie <francois.gaffie@intel.com>2015-03-18 17:52:40 +0100
committerJean-Michel Trivi <jmtrivi@google.com>2015-04-01 10:19:16 -0700
commit98cc191247388132b6fd8a4ecd07abd6e4c5a0ed (patch)
treeb447149a320aabc6fb28f2522e6a55db835ce537
parentad3183e2d4cecd02f6261270a7ea1c68be0efa0f (diff)
downloadframeworks_av-98cc191247388132b6fd8a4ecd07abd6e4c5a0ed.zip
frameworks_av-98cc191247388132b6fd8a4ecd07abd6e4c5a0ed.tar.gz
frameworks_av-98cc191247388132b6fd8a4ecd07abd6e4c5a0ed.tar.bz2
Split ManagerDefault into Manager and ManagerDefinitions
This patch splits the managerdefault into a manager and a manager defintion library that contains all pillar elements of a policy manager. It renames the file with the name of the main class they contains. It splits the AudioPort into AudioPort and AudioPatch. Change-Id: I992cf0b8aed895805cc003ba0980d2c9e92c985b Signed-off-by: François Gaffie <francois.gaffie@intel.com>
-rw-r--r--media/mediaserver/Android.mk3
-rw-r--r--services/audiopolicy/Android.mk23
-rw-r--r--services/audiopolicy/common/Android.mk9
-rw-r--r--services/audiopolicy/common/managerdefinitions/Android.mk29
-rw-r--r--services/audiopolicy/common/managerdefinitions/include/ApmImplDefinitions.h (renamed from services/audiopolicy/managerdefault/ApmImplDefinitions.h)0
-rw-r--r--services/audiopolicy/common/managerdefinitions/include/AudioGain.h (renamed from services/audiopolicy/managerdefault/Gains.h)0
-rw-r--r--services/audiopolicy/common/managerdefinitions/include/AudioInputDescriptor.h (renamed from services/audiopolicy/managerdefault/AudioInputDescriptor.h)3
-rw-r--r--services/audiopolicy/common/managerdefinitions/include/AudioOutputDescriptor.h (renamed from services/audiopolicy/managerdefault/AudioOutputDescriptor.h)3
-rw-r--r--services/audiopolicy/common/managerdefinitions/include/AudioPatch.h41
-rw-r--r--services/audiopolicy/common/managerdefinitions/include/AudioPort.h (renamed from services/audiopolicy/managerdefault/Ports.h)16
-rw-r--r--services/audiopolicy/common/managerdefinitions/include/ConfigParsingUtils.h (renamed from services/audiopolicy/managerdefault/ConfigParsingUtils.h)0
-rw-r--r--services/audiopolicy/common/managerdefinitions/include/DeviceDescriptor.h (renamed from services/audiopolicy/managerdefault/Devices.h)2
-rw-r--r--services/audiopolicy/common/managerdefinitions/include/HwModule.h (renamed from services/audiopolicy/managerdefault/HwModule.h)2
-rw-r--r--services/audiopolicy/common/managerdefinitions/include/IOProfile.h (renamed from services/audiopolicy/managerdefault/IOProfile.h)4
-rw-r--r--services/audiopolicy/common/managerdefinitions/include/audio_policy_conf.h (renamed from services/audiopolicy/managerdefault/audio_policy_conf.h)0
-rw-r--r--services/audiopolicy/common/managerdefinitions/src/AudioGain.cpp (renamed from services/audiopolicy/managerdefault/Gains.cpp)4
-rw-r--r--services/audiopolicy/common/managerdefinitions/src/AudioInputDescriptor.cpp (renamed from services/audiopolicy/managerdefault/AudioInputDescriptor.cpp)8
-rw-r--r--services/audiopolicy/common/managerdefinitions/src/AudioOutputDescriptor.cpp (renamed from services/audiopolicy/managerdefault/AudioOutputDescriptor.cpp)8
-rw-r--r--services/audiopolicy/common/managerdefinitions/src/AudioPatch.cpp84
-rw-r--r--services/audiopolicy/common/managerdefinitions/src/AudioPort.cpp (renamed from services/audiopolicy/managerdefault/Ports.cpp)72
-rw-r--r--services/audiopolicy/common/managerdefinitions/src/ConfigParsingUtils.cpp (renamed from services/audiopolicy/managerdefault/ConfigParsingUtils.cpp)0
-rw-r--r--services/audiopolicy/common/managerdefinitions/src/DeviceDescriptor.cpp (renamed from services/audiopolicy/managerdefault/Devices.cpp)4
-rw-r--r--services/audiopolicy/common/managerdefinitions/src/HwModule.cpp (renamed from services/audiopolicy/managerdefault/HwModule.cpp)2
-rw-r--r--services/audiopolicy/common/managerdefinitions/src/IOProfile.cpp (renamed from services/audiopolicy/managerdefault/IOProfile.cpp)2
-rw-r--r--services/audiopolicy/managerdefault/AudioPolicyManager.cpp29
-rw-r--r--services/audiopolicy/managerdefault/AudioPolicyManager.h20
26 files changed, 235 insertions, 133 deletions
diff --git a/media/mediaserver/Android.mk b/media/mediaserver/Android.mk
index baf65f6..0f36a90 100644
--- a/media/mediaserver/Android.mk
+++ b/media/mediaserver/Android.mk
@@ -31,13 +31,14 @@ LOCAL_SHARED_LIBRARIES := \
libradioservice
LOCAL_STATIC_LIBRARIES := \
- libregistermsext
+ libregistermsext
LOCAL_C_INCLUDES := \
frameworks/av/media/libmediaplayerservice \
frameworks/av/services/medialog \
frameworks/av/services/audioflinger \
frameworks/av/services/audiopolicy \
+ frameworks/av/services/audiopolicy/common/managerdefinitions/include \
frameworks/av/services/camera/libcameraservice \
frameworks/av/services/mediaresourcemanager \
$(call include-path-for, audio-utils) \
diff --git a/services/audiopolicy/Android.mk b/services/audiopolicy/Android.mk
index 351ed79..fb56fd8 100644
--- a/services/audiopolicy/Android.mk
+++ b/services/audiopolicy/Android.mk
@@ -16,6 +16,7 @@ else
LOCAL_SRC_FILES += \
service/AudioPolicyInterfaceImpl.cpp \
service/AudioPolicyClientImpl.cpp
+
endif
LOCAL_C_INCLUDES := \
@@ -39,7 +40,8 @@ LOCAL_SHARED_LIBRARIES += \
endif
LOCAL_STATIC_LIBRARIES := \
- libmedia_helper
+ libmedia_helper \
+ libaudiopolicycomponents
LOCAL_MODULE:= libaudiopolicyservice
@@ -54,14 +56,6 @@ include $(CLEAR_VARS)
LOCAL_SRC_FILES:= \
managerdefault/AudioPolicyManager.cpp \
- managerdefault/ConfigParsingUtils.cpp \
- managerdefault/Devices.cpp \
- managerdefault/Gains.cpp \
- managerdefault/HwModule.cpp \
- managerdefault/IOProfile.cpp \
- managerdefault/Ports.cpp \
- managerdefault/AudioInputDescriptor.cpp \
- managerdefault/AudioOutputDescriptor.cpp
LOCAL_SHARED_LIBRARIES := \
libcutils \
@@ -70,7 +64,8 @@ LOCAL_SHARED_LIBRARIES := \
libsoundtrigger
LOCAL_STATIC_LIBRARIES := \
- libmedia_helper
+ libmedia_helper \
+ libaudiopolicycomponents
LOCAL_MODULE:= libaudiopolicymanagerdefault
@@ -86,9 +81,17 @@ LOCAL_SRC_FILES:= \
LOCAL_SHARED_LIBRARIES := \
libaudiopolicymanagerdefault
+LOCAL_STATIC_LIBRARIES := \
+ libaudiopolicycomponents
+
LOCAL_MODULE:= libaudiopolicymanager
include $(BUILD_SHARED_LIBRARY)
endif
endif
+
+#######################################################################
+# Recursive call sub-folder Android.mk
+#
+include $(call all-makefiles-under,$(LOCAL_PATH))
diff --git a/services/audiopolicy/common/Android.mk b/services/audiopolicy/common/Android.mk
new file mode 100644
index 0000000..dcce8e3
--- /dev/null
+++ b/services/audiopolicy/common/Android.mk
@@ -0,0 +1,9 @@
+
+LOCAL_PATH := $(call my-dir)
+include $(CLEAR_VARS)
+
+#######################################################################
+# Recursive call sub-folder Android.mk
+#
+include $(call all-makefiles-under,$(LOCAL_PATH))
+
diff --git a/services/audiopolicy/common/managerdefinitions/Android.mk b/services/audiopolicy/common/managerdefinitions/Android.mk
new file mode 100644
index 0000000..d9d1477
--- /dev/null
+++ b/services/audiopolicy/common/managerdefinitions/Android.mk
@@ -0,0 +1,29 @@
+LOCAL_PATH:= $(call my-dir)
+
+include $(CLEAR_VARS)
+
+LOCAL_SRC_FILES:= \
+ src/DeviceDescriptor.cpp \
+ src/AudioGain.cpp \
+ src/HwModule.cpp \
+ src/IOProfile.cpp \
+ src/AudioPort.cpp \
+ src/AudioPatch.cpp \
+ src/AudioInputDescriptor.cpp \
+ src/AudioOutputDescriptor.cpp \
+ src/ConfigParsingUtils.cpp \
+
+LOCAL_SHARED_LIBRARIES := \
+ libcutils \
+ libutils \
+ liblog \
+
+LOCAL_C_INCLUDES += \
+ $(LOCAL_PATH)/include \
+
+LOCAL_EXPORT_C_INCLUDE_DIRS := \
+ $(LOCAL_PATH)/include
+
+LOCAL_MODULE := libaudiopolicycomponents
+
+include $(BUILD_STATIC_LIBRARY)
diff --git a/services/audiopolicy/managerdefault/ApmImplDefinitions.h b/services/audiopolicy/common/managerdefinitions/include/ApmImplDefinitions.h
index 62927da..62927da 100644
--- a/services/audiopolicy/managerdefault/ApmImplDefinitions.h
+++ b/services/audiopolicy/common/managerdefinitions/include/ApmImplDefinitions.h
diff --git a/services/audiopolicy/managerdefault/Gains.h b/services/audiopolicy/common/managerdefinitions/include/AudioGain.h
index f638c8e..f638c8e 100644
--- a/services/audiopolicy/managerdefault/Gains.h
+++ b/services/audiopolicy/common/managerdefinitions/include/AudioGain.h
diff --git a/services/audiopolicy/managerdefault/AudioInputDescriptor.h b/services/audiopolicy/common/managerdefinitions/include/AudioInputDescriptor.h
index ce96228..599c295 100644
--- a/services/audiopolicy/managerdefault/AudioInputDescriptor.h
+++ b/services/audiopolicy/common/managerdefinitions/include/AudioInputDescriptor.h
@@ -16,7 +16,7 @@
#pragma once
-#include "Ports.h"
+#include "AudioPort.h"
#include <utils/Errors.h>
#include <system/audio.h>
#include <utils/SortedVector.h>
@@ -32,6 +32,7 @@ class AudioInputDescriptor: public AudioPortConfig
{
public:
AudioInputDescriptor(const sp<IOProfile>& profile);
+ void setIoHandle(audio_io_handle_t ioHandle);
status_t dump(int fd);
diff --git a/services/audiopolicy/managerdefault/AudioOutputDescriptor.h b/services/audiopolicy/common/managerdefinitions/include/AudioOutputDescriptor.h
index f7a06ee..8469b81 100644
--- a/services/audiopolicy/managerdefault/AudioOutputDescriptor.h
+++ b/services/audiopolicy/common/managerdefinitions/include/AudioOutputDescriptor.h
@@ -16,7 +16,7 @@
#pragma once
-#include "Ports.h"
+#include "AudioPort.h"
#include "ApmImplDefinitions.h"
#include <utils/Errors.h>
#include <utils/Timers.h>
@@ -39,6 +39,7 @@ public:
audio_devices_t device() const;
void changeRefCount(audio_stream_type_t stream, int delta);
+ void setIoHandle(audio_io_handle_t ioHandle);
bool isDuplicated() const { return (mOutput1 != NULL && mOutput2 != NULL); }
audio_devices_t supportedDevices();
uint32_t latency();
diff --git a/services/audiopolicy/common/managerdefinitions/include/AudioPatch.h b/services/audiopolicy/common/managerdefinitions/include/AudioPatch.h
new file mode 100644
index 0000000..6e8fb32
--- /dev/null
+++ b/services/audiopolicy/common/managerdefinitions/include/AudioPatch.h
@@ -0,0 +1,41 @@
+/*
+ * 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 <utils/RefBase.h>
+#include <utils/Errors.h>
+
+namespace android {
+
+class AudioPatch : public RefBase
+{
+public:
+ AudioPatch(const struct audio_patch *patch, uid_t uid);
+
+ status_t dump(int fd, int spaces, int index) const;
+
+ audio_patch_handle_t mHandle;
+ struct audio_patch mPatch;
+ uid_t mUid;
+ audio_patch_handle_t mAfPatchHandle;
+
+private:
+ static volatile int32_t mNextUniqueId;
+};
+
+}; // namespace android
diff --git a/services/audiopolicy/managerdefault/Ports.h b/services/audiopolicy/common/managerdefinitions/include/AudioPort.h
index 6e0e2fe..52e845c 100644
--- a/services/audiopolicy/managerdefault/Ports.h
+++ b/services/audiopolicy/common/managerdefinitions/include/AudioPort.h
@@ -43,6 +43,8 @@ public:
void attach(const sp<HwModule>& module);
bool isAttached() { return mId != 0; }
+ static audio_port_handle_t getNextUniqueId();
+
virtual void toAudioPort(struct audio_port *port) const;
void importAudioPort(const sp<AudioPort> port);
@@ -121,18 +123,4 @@ public:
struct audio_gain_config mGain;
};
-
-class AudioPatch: public RefBase
-{
-public:
- AudioPatch(audio_patch_handle_t handle, const struct audio_patch *patch, uid_t uid);
-
- status_t dump(int fd, int spaces, int index) const;
-
- audio_patch_handle_t mHandle;
- struct audio_patch mPatch;
- uid_t mUid;
- audio_patch_handle_t mAfPatchHandle;
-};
-
}; // namespace android
diff --git a/services/audiopolicy/managerdefault/ConfigParsingUtils.h b/services/audiopolicy/common/managerdefinitions/include/ConfigParsingUtils.h
index 45e96d9..45e96d9 100644
--- a/services/audiopolicy/managerdefault/ConfigParsingUtils.h
+++ b/services/audiopolicy/common/managerdefinitions/include/ConfigParsingUtils.h
diff --git a/services/audiopolicy/managerdefault/Devices.h b/services/audiopolicy/common/managerdefinitions/include/DeviceDescriptor.h
index 7ccf559..e63ea2b 100644
--- a/services/audiopolicy/managerdefault/Devices.h
+++ b/services/audiopolicy/common/managerdefinitions/include/DeviceDescriptor.h
@@ -16,7 +16,7 @@
#pragma once
-#include "Ports.h"
+#include "AudioPort.h"
#include <utils/Errors.h>
#include <utils/String8.h>
#include <utils/SortedVector.h>
diff --git a/services/audiopolicy/managerdefault/HwModule.h b/services/audiopolicy/common/managerdefinitions/include/HwModule.h
index d9e6cdf..3d4e2ad 100644
--- a/services/audiopolicy/managerdefault/HwModule.h
+++ b/services/audiopolicy/common/managerdefinitions/include/HwModule.h
@@ -16,7 +16,7 @@
#pragma once
-#include "Devices.h"
+#include "DeviceDescriptor.h"
#include <utils/RefBase.h>
#include <utils/String8.h>
#include <utils/Errors.h>
diff --git a/services/audiopolicy/managerdefault/IOProfile.h b/services/audiopolicy/common/managerdefinitions/include/IOProfile.h
index a9d93d1..095e759 100644
--- a/services/audiopolicy/managerdefault/IOProfile.h
+++ b/services/audiopolicy/common/managerdefinitions/include/IOProfile.h
@@ -16,8 +16,8 @@
#pragma once
-#include "Ports.h"
-#include "Devices.h"
+#include "AudioPort.h"
+#include "DeviceDescriptor.h"
#include <utils/String8.h>
#include <system/audio.h>
diff --git a/services/audiopolicy/managerdefault/audio_policy_conf.h b/services/audiopolicy/common/managerdefinitions/include/audio_policy_conf.h
index 441bf7b..441bf7b 100644
--- a/services/audiopolicy/managerdefault/audio_policy_conf.h
+++ b/services/audiopolicy/common/managerdefinitions/include/audio_policy_conf.h
diff --git a/services/audiopolicy/managerdefault/Gains.cpp b/services/audiopolicy/common/managerdefinitions/src/AudioGain.cpp
index 98a8d1c..ebd3548 100644
--- a/services/audiopolicy/managerdefault/Gains.cpp
+++ b/services/audiopolicy/common/managerdefinitions/src/AudioGain.cpp
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-#define LOG_TAG "APM::Gains"
+#define LOG_TAG "APM::AudioGain"
//#define LOG_NDEBUG 0
//#define VERY_VERBOSE_LOGGING
@@ -24,7 +24,7 @@
#define ALOGVV(a...) do { } while(0)
#endif
-#include "Gains.h"
+#include "AudioGain.h"
#include <utils/Log.h>
#include <utils/String8.h>
diff --git a/services/audiopolicy/managerdefault/AudioInputDescriptor.cpp b/services/audiopolicy/common/managerdefinitions/src/AudioInputDescriptor.cpp
index ce6b1e7..fa7761a 100644
--- a/services/audiopolicy/managerdefault/AudioInputDescriptor.cpp
+++ b/services/audiopolicy/common/managerdefinitions/src/AudioInputDescriptor.cpp
@@ -19,7 +19,7 @@
#include "AudioInputDescriptor.h"
#include "IOProfile.h"
-#include "Gains.h"
+#include "AudioGain.h"
#include "HwModule.h"
#include <media/AudioPolicy.h>
@@ -40,6 +40,12 @@ AudioInputDescriptor::AudioInputDescriptor(const sp<IOProfile>& profile)
}
}
+void AudioInputDescriptor::setIoHandle(audio_io_handle_t ioHandle)
+{
+ mId = AudioPort::getNextUniqueId();
+ mIoHandle = ioHandle;
+}
+
void AudioInputDescriptor::toAudioPortConfig(
struct audio_port_config *dstConfig,
const struct audio_port_config *srcConfig) const
diff --git a/services/audiopolicy/managerdefault/AudioOutputDescriptor.cpp b/services/audiopolicy/common/managerdefinitions/src/AudioOutputDescriptor.cpp
index 4dd9316..4c5509d 100644
--- a/services/audiopolicy/managerdefault/AudioOutputDescriptor.cpp
+++ b/services/audiopolicy/common/managerdefinitions/src/AudioOutputDescriptor.cpp
@@ -19,7 +19,7 @@
#include "AudioOutputDescriptor.h"
#include "IOProfile.h"
-#include "Gains.h"
+#include "AudioGain.h"
#include "HwModule.h"
#include <media/AudioPolicy.h>
@@ -62,6 +62,12 @@ audio_devices_t AudioOutputDescriptor::device() const
}
}
+void AudioOutputDescriptor::setIoHandle(audio_io_handle_t ioHandle)
+{
+ mId = AudioPort::getNextUniqueId();
+ mIoHandle = ioHandle;
+}
+
uint32_t AudioOutputDescriptor::latency()
{
if (isDuplicated()) {
diff --git a/services/audiopolicy/common/managerdefinitions/src/AudioPatch.cpp b/services/audiopolicy/common/managerdefinitions/src/AudioPatch.cpp
new file mode 100644
index 0000000..89e7f81
--- /dev/null
+++ b/services/audiopolicy/common/managerdefinitions/src/AudioPatch.cpp
@@ -0,0 +1,84 @@
+/*
+ * 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::AudioPatch"
+//#define LOG_NDEBUG 0
+
+#include "AudioPatch.h"
+#include "ConfigParsingUtils.h"
+#include <cutils/log.h>
+#include <utils/String8.h>
+
+namespace android {
+
+int32_t volatile AudioPatch::mNextUniqueId = 1;
+
+AudioPatch::AudioPatch(const struct audio_patch *patch, uid_t uid) :
+ mHandle(static_cast<audio_patch_handle_t>(android_atomic_inc(&mNextUniqueId))),
+ mPatch(*patch),
+ mUid(uid),
+ mAfPatchHandle(0)
+{
+}
+
+status_t AudioPatch::dump(int fd, int spaces, int index) const
+{
+ const size_t SIZE = 256;
+ char buffer[SIZE];
+ String8 result;
+
+ snprintf(buffer, SIZE, "%*sAudio patch %d:\n", spaces, "", index+1);
+ result.append(buffer);
+ snprintf(buffer, SIZE, "%*s- handle: %2d\n", spaces, "", mHandle);
+ result.append(buffer);
+ snprintf(buffer, SIZE, "%*s- audio flinger handle: %2d\n", spaces, "", mAfPatchHandle);
+ result.append(buffer);
+ snprintf(buffer, SIZE, "%*s- owner uid: %2d\n", spaces, "", mUid);
+ result.append(buffer);
+ snprintf(buffer, SIZE, "%*s- %d sources:\n", spaces, "", mPatch.num_sources);
+ result.append(buffer);
+ for (size_t i = 0; i < mPatch.num_sources; i++) {
+ if (mPatch.sources[i].type == AUDIO_PORT_TYPE_DEVICE) {
+ snprintf(buffer, SIZE, "%*s- Device ID %d %s\n", spaces + 2, "",
+ mPatch.sources[i].id, ConfigParsingUtils::enumToString(sDeviceNameToEnumTable,
+ ARRAY_SIZE(sDeviceNameToEnumTable),
+ mPatch.sources[i].ext.device.type));
+ } else {
+ snprintf(buffer, SIZE, "%*s- Mix ID %d I/O handle %d\n", spaces + 2, "",
+ mPatch.sources[i].id, mPatch.sources[i].ext.mix.handle);
+ }
+ result.append(buffer);
+ }
+ snprintf(buffer, SIZE, "%*s- %d sinks:\n", spaces, "", mPatch.num_sinks);
+ result.append(buffer);
+ for (size_t i = 0; i < mPatch.num_sinks; i++) {
+ if (mPatch.sinks[i].type == AUDIO_PORT_TYPE_DEVICE) {
+ snprintf(buffer, SIZE, "%*s- Device ID %d %s\n", spaces + 2, "",
+ mPatch.sinks[i].id, ConfigParsingUtils::enumToString(sDeviceNameToEnumTable,
+ ARRAY_SIZE(sDeviceNameToEnumTable),
+ mPatch.sinks[i].ext.device.type));
+ } else {
+ snprintf(buffer, SIZE, "%*s- Mix ID %d I/O handle %d\n", spaces + 2, "",
+ mPatch.sinks[i].id, mPatch.sinks[i].ext.mix.handle);
+ }
+ result.append(buffer);
+ }
+
+ write(fd, result.string(), result.size());
+ return NO_ERROR;
+}
+
+}; // namespace android
diff --git a/services/audiopolicy/managerdefault/Ports.cpp b/services/audiopolicy/common/managerdefinitions/src/AudioPort.cpp
index 326f9c5..d34aac1 100644
--- a/services/audiopolicy/managerdefault/Ports.cpp
+++ b/services/audiopolicy/common/managerdefinitions/src/AudioPort.cpp
@@ -14,12 +14,12 @@
* limitations under the License.
*/
-#define LOG_TAG "APM::Ports"
+#define LOG_TAG "APM::AudioPort"
//#define LOG_NDEBUG 0
-#include "Ports.h"
+#include "AudioPort.h"
#include "HwModule.h"
-#include "Gains.h"
+#include "AudioGain.h"
#include "ConfigParsingUtils.h"
#include "audio_policy_conf.h"
@@ -37,11 +37,17 @@ AudioPort::AudioPort(const String8& name, audio_port_type_t type,
((type == AUDIO_PORT_TYPE_MIX) && (role == AUDIO_PORT_ROLE_SINK));
}
-void AudioPort::attach(const sp<HwModule>& module) {
- mId = android_atomic_inc(&mNextUniqueId);
+void AudioPort::attach(const sp<HwModule>& module)
+{
+ mId = getNextUniqueId();
mModule = module;
}
+audio_port_handle_t AudioPort::getNextUniqueId()
+{
+ return static_cast<audio_port_handle_t>(android_atomic_inc(&mNextUniqueId));
+}
+
void AudioPort::toAudioPort(struct audio_port *port) const
{
port->role = mRole;
@@ -789,60 +795,4 @@ void AudioPortConfig::toAudioPortConfig(struct audio_port_config *dstConfig,
}
}
-
-// --- AudioPatch class implementation
-
-AudioPatch::AudioPatch(audio_patch_handle_t handle,
- const struct audio_patch *patch, uid_t uid) :
- mHandle(handle), mPatch(*patch), mUid(uid), mAfPatchHandle(0)
-{}
-
-status_t AudioPatch::dump(int fd, int spaces, int index) const
-{
- const size_t SIZE = 256;
- char buffer[SIZE];
- String8 result;
-
- snprintf(buffer, SIZE, "%*sAudio patch %d:\n", spaces, "", index+1);
- result.append(buffer);
- snprintf(buffer, SIZE, "%*s- handle: %2d\n", spaces, "", mHandle);
- result.append(buffer);
- snprintf(buffer, SIZE, "%*s- audio flinger handle: %2d\n", spaces, "", mAfPatchHandle);
- result.append(buffer);
- snprintf(buffer, SIZE, "%*s- owner uid: %2d\n", spaces, "", mUid);
- result.append(buffer);
- snprintf(buffer, SIZE, "%*s- %d sources:\n", spaces, "", mPatch.num_sources);
- result.append(buffer);
- for (size_t i = 0; i < mPatch.num_sources; i++) {
- if (mPatch.sources[i].type == AUDIO_PORT_TYPE_DEVICE) {
- snprintf(buffer, SIZE, "%*s- Device ID %d %s\n", spaces + 2, "",
- mPatch.sources[i].id, ConfigParsingUtils::enumToString(sDeviceNameToEnumTable,
- ARRAY_SIZE(sDeviceNameToEnumTable),
- mPatch.sources[i].ext.device.type));
- } else {
- snprintf(buffer, SIZE, "%*s- Mix ID %d I/O handle %d\n", spaces + 2, "",
- mPatch.sources[i].id, mPatch.sources[i].ext.mix.handle);
- }
- result.append(buffer);
- }
- snprintf(buffer, SIZE, "%*s- %d sinks:\n", spaces, "", mPatch.num_sinks);
- result.append(buffer);
- for (size_t i = 0; i < mPatch.num_sinks; i++) {
- if (mPatch.sinks[i].type == AUDIO_PORT_TYPE_DEVICE) {
- snprintf(buffer, SIZE, "%*s- Device ID %d %s\n", spaces + 2, "",
- mPatch.sinks[i].id, ConfigParsingUtils::enumToString(sDeviceNameToEnumTable,
- ARRAY_SIZE(sDeviceNameToEnumTable),
- mPatch.sinks[i].ext.device.type));
- } else {
- snprintf(buffer, SIZE, "%*s- Mix ID %d I/O handle %d\n", spaces + 2, "",
- mPatch.sinks[i].id, mPatch.sinks[i].ext.mix.handle);
- }
- result.append(buffer);
- }
-
- write(fd, result.string(), result.size());
- return NO_ERROR;
-}
-
-
}; // namespace android
diff --git a/services/audiopolicy/managerdefault/ConfigParsingUtils.cpp b/services/audiopolicy/common/managerdefinitions/src/ConfigParsingUtils.cpp
index 300f35a..300f35a 100644
--- a/services/audiopolicy/managerdefault/ConfigParsingUtils.cpp
+++ b/services/audiopolicy/common/managerdefinitions/src/ConfigParsingUtils.cpp
diff --git a/services/audiopolicy/managerdefault/Devices.cpp b/services/audiopolicy/common/managerdefinitions/src/DeviceDescriptor.cpp
index 574cff5..7f098ab 100644
--- a/services/audiopolicy/managerdefault/Devices.cpp
+++ b/services/audiopolicy/common/managerdefinitions/src/DeviceDescriptor.cpp
@@ -17,8 +17,8 @@
#define LOG_TAG "APM::Devices"
//#define LOG_NDEBUG 0
-#include "Devices.h"
-#include "Gains.h"
+#include "DeviceDescriptor.h"
+#include "AudioGain.h"
#include "HwModule.h"
#include "ConfigParsingUtils.h"
diff --git a/services/audiopolicy/managerdefault/HwModule.cpp b/services/audiopolicy/common/managerdefinitions/src/HwModule.cpp
index 39dc889..a0ea185 100644
--- a/services/audiopolicy/managerdefault/HwModule.cpp
+++ b/services/audiopolicy/common/managerdefinitions/src/HwModule.cpp
@@ -19,7 +19,7 @@
#include "HwModule.h"
#include "IOProfile.h"
-#include "Gains.h"
+#include "AudioGain.h"
#include "ConfigParsingUtils.h"
#include "audio_policy_conf.h"
#include <hardware/audio.h>
diff --git a/services/audiopolicy/managerdefault/IOProfile.cpp b/services/audiopolicy/common/managerdefinitions/src/IOProfile.cpp
index f82ff92..0214a2b 100644
--- a/services/audiopolicy/managerdefault/IOProfile.cpp
+++ b/services/audiopolicy/common/managerdefinitions/src/IOProfile.cpp
@@ -19,7 +19,7 @@
#include "IOProfile.h"
#include "HwModule.h"
-#include "Gains.h"
+#include "AudioGain.h"
namespace android {
diff --git a/services/audiopolicy/managerdefault/AudioPolicyManager.cpp b/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
index 730d32f..a110ada 100644
--- a/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
+++ b/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
@@ -393,8 +393,7 @@ void AudioPolicyManager::updateCallRouting(audio_devices_t rxDevice, int delayMs
ALOGW_IF(status != NO_ERROR, "updateCallRouting() error %d creating RX audio patch",
status);
if (status == NO_ERROR) {
- mCallRxPatch = new AudioPatch((audio_patch_handle_t)nextUniqueId(),
- &patch, mUidCached);
+ mCallRxPatch = new AudioPatch(&patch, mUidCached);
mCallRxPatch->mAfPatchHandle = afPatchHandle;
mCallRxPatch->mUid = mUidCached;
}
@@ -436,8 +435,7 @@ void AudioPolicyManager::updateCallRouting(audio_devices_t rxDevice, int delayMs
ALOGW_IF(status != NO_ERROR, "setPhoneState() error %d creating TX audio patch",
status);
if (status == NO_ERROR) {
- mCallTxPatch = new AudioPatch((audio_patch_handle_t)nextUniqueId(),
- &patch, mUidCached);
+ mCallTxPatch = new AudioPatch(&patch, mUidCached);
mCallTxPatch->mAfPatchHandle = afPatchHandle;
mCallTxPatch->mUid = mUidCached;
}
@@ -2634,8 +2632,7 @@ status_t AudioPolicyManager::createAudioPatch(const struct audio_patch *patch,
status, afPatchHandle);
if (status == NO_ERROR) {
if (index < 0) {
- patchDesc = new AudioPatch((audio_patch_handle_t)nextUniqueId(),
- &newPatch, uid);
+ patchDesc = new AudioPatch(&newPatch, uid);
addAudioPatch(patchDesc->mHandle, patchDesc);
} else {
patchDesc->mPatch = newPatch;
@@ -2880,19 +2877,11 @@ status_t AudioPolicyManager::removeAudioPatch(audio_patch_handle_t handle)
// ----------------------------------------------------------------------------
// AudioPolicyManager
// ----------------------------------------------------------------------------
-
-uint32_t AudioPolicyManager::nextUniqueId()
-{
- return android_atomic_inc(&mNextUniqueId);
-}
-
uint32_t AudioPolicyManager::nextAudioPortGeneration()
{
return android_atomic_inc(&mAudioPortGeneration);
}
-int32_t volatile AudioPolicyManager::mNextUniqueId = 1;
-
AudioPolicyManager::AudioPolicyManager(AudioPolicyClientInterface *clientInterface)
:
#ifdef AUDIO_POLICY_TEST
@@ -3314,16 +3303,14 @@ int AudioPolicyManager::testOutputIndex(audio_io_handle_t output)
void AudioPolicyManager::addOutput(audio_io_handle_t output, sp<AudioOutputDescriptor> outputDesc)
{
- outputDesc->mIoHandle = output;
- outputDesc->mId = nextUniqueId();
+ outputDesc->setIoHandle(output);
mOutputs.add(output, outputDesc);
nextAudioPortGeneration();
}
void AudioPolicyManager::addInput(audio_io_handle_t input, sp<AudioInputDescriptor> inputDesc)
{
- inputDesc->mIoHandle = input;
- inputDesc->mId = nextUniqueId();
+ inputDesc->setIoHandle(input);
mInputs.add(input, inputDesc);
nextAudioPortGeneration();
}
@@ -4827,8 +4814,7 @@ uint32_t AudioPolicyManager::setOutputDevice(audio_io_handle_t output,
status, afPatchHandle, patch.num_sources, patch.num_sinks);
if (status == NO_ERROR) {
if (index < 0) {
- patchDesc = new AudioPatch((audio_patch_handle_t)nextUniqueId(),
- &patch, mUidCached);
+ patchDesc = new AudioPatch(&patch, mUidCached);
addAudioPatch(patchDesc->mHandle, patchDesc);
} else {
patchDesc->mPatch = patch;
@@ -4934,8 +4920,7 @@ status_t AudioPolicyManager::setInputDevice(audio_io_handle_t input,
status, afPatchHandle);
if (status == NO_ERROR) {
if (index < 0) {
- patchDesc = new AudioPatch((audio_patch_handle_t)nextUniqueId(),
- &patch, mUidCached);
+ patchDesc = new AudioPatch(&patch, mUidCached);
addAudioPatch(patchDesc->mHandle, patchDesc);
} else {
patchDesc->mPatch = patch;
diff --git a/services/audiopolicy/managerdefault/AudioPolicyManager.h b/services/audiopolicy/managerdefault/AudioPolicyManager.h
index 8308d54..279dc93 100644
--- a/services/audiopolicy/managerdefault/AudioPolicyManager.h
+++ b/services/audiopolicy/managerdefault/AudioPolicyManager.h
@@ -27,14 +27,15 @@
#include <media/AudioPolicy.h>
#include "AudioPolicyInterface.h"
-#include "Gains.h"
-#include "Ports.h"
-#include "ConfigParsingUtils.h"
-#include "Devices.h"
-#include "IOProfile.h"
-#include "HwModule.h"
-#include "AudioInputDescriptor.h"
-#include "AudioOutputDescriptor.h"
+#include <AudioGain.h>
+#include <AudioPort.h>
+#include <AudioPatch.h>
+#include <ConfigParsingUtils.h>
+#include <DeviceDescriptor.h>
+#include <IOProfile.h>
+#include <HwModule.h>
+#include <AudioInputDescriptor.h>
+#include <AudioOutputDescriptor.h>
namespace android {
@@ -208,8 +209,6 @@ public:
// return the strategy corresponding to a given stream type
static routing_strategy getStrategy(audio_stream_type_t stream);
-
- static uint32_t nextUniqueId();
protected:
class EffectDescriptor : public RefBase
@@ -453,7 +452,6 @@ protected:
// to boost soft sounds, used to adjust volume curves accordingly
Vector < sp<HwModule> > mHwModules;
- static volatile int32_t mNextUniqueId;
volatile int32_t mAudioPortGeneration;
DefaultKeyedVector<audio_patch_handle_t, sp<AudioPatch> > mAudioPatches;