summaryrefslogtreecommitdiffstats
path: root/services/audiopolicy
diff options
context:
space:
mode:
authorJean-Michel Trivi <jmtrivi@google.com>2014-08-13 16:04:00 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2014-08-13 01:30:28 +0000
commit47bf8d8f0242bbe9cfa777c96e41e5fcd5294ee4 (patch)
tree0f792b2461a42d2e166de7b68e3df0a1e36fe54c /services/audiopolicy
parente6e18e8de729316b3fac7733f9ebc7f1b3feba95 (diff)
parent4d41695d45e2c7211899afa94b20e32120b2b7e0 (diff)
downloadframeworks_av-47bf8d8f0242bbe9cfa777c96e41e5fcd5294ee4.zip
frameworks_av-47bf8d8f0242bbe9cfa777c96e41e5fcd5294ee4.tar.gz
frameworks_av-47bf8d8f0242bbe9cfa777c96e41e5fcd5294ee4.tar.bz2
Merge "audiopolicy: add dump for audio patches" into lmp-dev
Diffstat (limited to 'services/audiopolicy')
-rw-r--r--services/audiopolicy/AudioPolicyManager.cpp56
-rw-r--r--services/audiopolicy/AudioPolicyManager.h2
2 files changed, 58 insertions, 0 deletions
diff --git a/services/audiopolicy/AudioPolicyManager.cpp b/services/audiopolicy/AudioPolicyManager.cpp
index 9e59488..14fdec5 100644
--- a/services/audiopolicy/AudioPolicyManager.cpp
+++ b/services/audiopolicy/AudioPolicyManager.cpp
@@ -1845,6 +1845,11 @@ status_t AudioPolicyManager::dump(int fd)
mEffects.valueAt(i)->dump(fd);
}
+ snprintf(buffer, SIZE, "\nAudio Patches:\n");
+ write(fd, buffer, strlen(buffer));
+ for (size_t i = 0; i < mAudioPatches.size(); i++) {
+ mAudioPatches[i]->dump(fd, 2, i);
+ }
return NO_ERROR;
}
@@ -5214,6 +5219,8 @@ status_t AudioPolicyManager::AudioOutputDescriptor::dump(int fd)
char buffer[SIZE];
String8 result;
+ snprintf(buffer, SIZE, " ID: %d\n", mId);
+ result.append(buffer);
snprintf(buffer, SIZE, " Sampling rate: %d\n", mSamplingRate);
result.append(buffer);
snprintf(buffer, SIZE, " Format: %08x\n", mFormat);
@@ -5297,6 +5304,8 @@ status_t AudioPolicyManager::AudioInputDescriptor::dump(int fd)
char buffer[SIZE];
String8 result;
+ snprintf(buffer, SIZE, " ID: %d\n", mId);
+ result.append(buffer);
snprintf(buffer, SIZE, " Sampling rate: %d\n", mSamplingRate);
result.append(buffer);
snprintf(buffer, SIZE, " Format: %d\n", mFormat);
@@ -6719,6 +6728,53 @@ status_t AudioPolicyManager::DeviceDescriptor::dump(int fd, int spaces, int inde
return NO_ERROR;
}
+status_t AudioPolicyManager::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, 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, 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;
+}
// --- audio_policy.conf file parsing
diff --git a/services/audiopolicy/AudioPolicyManager.h b/services/audiopolicy/AudioPolicyManager.h
index f071675..e3e3172 100644
--- a/services/audiopolicy/AudioPolicyManager.h
+++ b/services/audiopolicy/AudioPolicyManager.h
@@ -312,6 +312,8 @@ protected:
const struct audio_patch *patch, uid_t uid) :
mHandle(handle), mPatch(*patch), mUid(uid), mAfPatchHandle(0) {}
+ status_t dump(int fd, int spaces, int index) const;
+
audio_patch_handle_t mHandle;
struct audio_patch mPatch;
uid_t mUid;