diff options
author | Glenn Kasten <gkasten@google.com> | 2014-05-07 09:16:09 -0700 |
---|---|---|
committer | Glenn Kasten <gkasten@google.com> | 2014-05-09 11:32:43 -0700 |
commit | d776ac63ce9c013c9626226e43f7db606e035838 (patch) | |
tree | f75ca450359caa5a69b4124399d19d0522046826 /services/audioflinger/AudioFlinger.cpp | |
parent | 0c5b910e6eb2b9b2a622ccc0dd66e8fcae3eb28b (diff) | |
download | frameworks_av-d776ac63ce9c013c9626226e43f7db606e035838.zip frameworks_av-d776ac63ce9c013c9626226e43f7db606e035838.tar.gz frameworks_av-d776ac63ce9c013c9626226e43f7db606e035838.tar.bz2 |
IAudioFlinger::openRecord returns IMemory(s)
openRecord() now explicitly returns the control block and data buffer
as separate IMemory references. If the IMemory for data buffer
is 0, this means it immediately follows the control block.
Change-Id: Ic098f88f0e037f8fbe30006689e18cacacf09d06
Diffstat (limited to 'services/audioflinger/AudioFlinger.cpp')
-rw-r--r-- | services/audioflinger/AudioFlinger.cpp | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/services/audioflinger/AudioFlinger.cpp b/services/audioflinger/AudioFlinger.cpp index eb00c82..c1c95f8 100644 --- a/services/audioflinger/AudioFlinger.cpp +++ b/services/audioflinger/AudioFlinger.cpp @@ -1313,6 +1313,8 @@ sp<IAudioRecord> AudioFlinger::openRecord( IAudioFlinger::track_flags_t *flags, pid_t tid, int *sessionId, + sp<IMemory>& cblk, + sp<IMemory>& buffers, status_t *status) { sp<RecordThread::RecordTrack> recordTrack; @@ -1321,6 +1323,9 @@ sp<IAudioRecord> AudioFlinger::openRecord( status_t lStatus; int lSessionId; + cblk.clear(); + buffers.clear(); + // check calling permissions if (!recordingAllowed()) { ALOGE("openRecord() permission denied: recording not allowed"); @@ -1396,6 +1401,9 @@ sp<IAudioRecord> AudioFlinger::openRecord( goto Exit; } + cblk = recordTrack->getCblk(); + buffers = recordTrack->getBuffers(); + // return handle to client recordHandle = new RecordHandle(recordTrack); |