summaryrefslogtreecommitdiffstats
path: root/media/libmedia/IAudioFlingerClient.cpp
diff options
context:
space:
mode:
authorEric Laurent <elaurent@google.com>2009-07-28 08:44:33 -0700
committerEric Laurent <elaurent@google.com>2009-08-07 00:27:19 -0700
commitfa2877b9ea48baed934b866d2ab3658b69c4c869 (patch)
treedf0324b64c7dba6cdd6b1f0baa8c14c4f4db09a9 /media/libmedia/IAudioFlingerClient.cpp
parent285ead29c9eee092d367effd89f1c9f4f0bb9d6c (diff)
downloadframeworks_av-fa2877b9ea48baed934b866d2ab3658b69c4c869.zip
frameworks_av-fa2877b9ea48baed934b866d2ab3658b69c4c869.tar.gz
frameworks_av-fa2877b9ea48baed934b866d2ab3658b69c4c869.tar.bz2
Fix issue 2001214: AudioFlinger and AudioPolicyService interfaces should not use pointers as handles to inputs and outputs.
Use integers instead of void* as input/output handles at IAudioFlinger and IAudioPolicyService interfaces. AudioFlinger maintains an always increasing count of opened inputs or outputs as unique ID.
Diffstat (limited to 'media/libmedia/IAudioFlingerClient.cpp')
-rw-r--r--media/libmedia/IAudioFlingerClient.cpp9
1 files changed, 4 insertions, 5 deletions
diff --git a/media/libmedia/IAudioFlingerClient.cpp b/media/libmedia/IAudioFlingerClient.cpp
index eaae977..3900de4 100644
--- a/media/libmedia/IAudioFlingerClient.cpp
+++ b/media/libmedia/IAudioFlingerClient.cpp
@@ -39,12 +39,12 @@ public:
{
}
- void ioConfigChanged(int event, void *param1, void *param2)
+ void ioConfigChanged(int event, int ioHandle, void *param2)
{
Parcel data, reply;
data.writeInterfaceToken(IAudioFlingerClient::getInterfaceDescriptor());
data.writeInt32(event);
- data.write(&param1, sizeof(void *));
+ data.writeInt32(ioHandle);
if (event == AudioSystem::STREAM_CONFIG_CHANGED) {
uint32_t stream = *(uint32_t *)param2;
LOGV("ioConfigChanged stream %d", stream);
@@ -72,11 +72,10 @@ status_t BnAudioFlingerClient::onTransact(
case IO_CONFIG_CHANGED: {
CHECK_INTERFACE(IAudioFlingerClient, data, reply);
int event = data.readInt32();
- void *param1;
+ int ioHandle = data.readInt32();
void *param2 = 0;
AudioSystem::OutputDescriptor desc;
uint32_t stream;
- data.read(&param1, sizeof(void *));
if (event == AudioSystem::STREAM_CONFIG_CHANGED) {
stream = data.readInt32();
param2 = &stream;
@@ -89,7 +88,7 @@ status_t BnAudioFlingerClient::onTransact(
desc.latency = data.readInt32();
param2 = &desc;
}
- ioConfigChanged(event, param1, param2);
+ ioConfigChanged(event, ioHandle, param2);
return NO_ERROR;
} break;
default: