Include the returned IAudio{Track,Record} in response parcelable
In preparation to AIDLizing IAudioFlinger, having two return values is
inconvenient. It is also not consistent with most other methods, which
mostly return status_t. This change puts the returned
IAudio{Track,Record} in the response parcelable instead of having them
as separate return values.
Test: Audio-related CTS tests from CtsMediaTestCases
Change-Id: I97cbec21ca936b4e00e5caa06760ce00922739e8
diff --git a/media/libaudioclient/AudioRecord.cpp b/media/libaudioclient/AudioRecord.cpp
index 5969f94..f01b1d0 100644
--- a/media/libaudioclient/AudioRecord.cpp
+++ b/media/libaudioclient/AudioRecord.cpp
@@ -748,7 +748,6 @@
IAudioFlinger::CreateRecordInput input;
IAudioFlinger::CreateRecordOutput output;
audio_session_t originalSessionId;
- sp<media::IAudioRecord> record;
void *iMemPointer;
audio_track_cblk_t* cblk;
status_t status;
@@ -817,7 +816,7 @@
do {
media::CreateRecordResponse response;
- record = audioFlinger->createRecord(VALUE_OR_FATAL(input.toAidl()), response, &status);
+ status = audioFlinger->createRecord(VALUE_OR_FATAL(input.toAidl()), response);
output = VALUE_OR_FATAL(IAudioFlinger::CreateRecordOutput::fromAidl(response));
if (status == NO_ERROR) {
break;
@@ -893,7 +892,7 @@
IInterface::asBinder(mAudioRecord)->unlinkToDeath(mDeathNotifier, this);
mDeathNotifier.clear();
}
- mAudioRecord = record;
+ mAudioRecord = output.audioRecord;
mCblkMemory = output.cblk;
mBufferMemory = output.buffers;
IPCThreadState::self()->flushCommands();