diff options
author | 2012-03-26 07:16:37 -0700 | |
---|---|---|
committer | 2012-03-26 07:16:37 -0700 | |
commit | 39581f92482e000af2fe0575843d0752d164f9ae (patch) | |
tree | a5e25c538fc7e781e8d9e400b94914c7c80b851f | |
parent | 9ea03b9f29f6ec28ba4ced36c84328f48828f86d (diff) | |
parent | 84569cc4e106ff4d6c6855b46e546572c5dda6b2 (diff) |
Merge "IAudioFlinger::createTrack and openRecord flags"
-rw-r--r-- | include/media/AudioRecord.h | 1 | ||||
-rw-r--r-- | include/media/IAudioFlinger.h | 12 | ||||
-rw-r--r-- | media/libmedia/AudioRecord.cpp | 7 | ||||
-rw-r--r-- | media/libmedia/AudioTrack.cpp | 7 | ||||
-rw-r--r-- | media/libmedia/IAudioFlinger.cpp | 15 | ||||
-rw-r--r-- | services/audioflinger/AudioFlinger.cpp | 8 | ||||
-rw-r--r-- | services/audioflinger/AudioFlinger.h | 5 |
7 files changed, 28 insertions, 27 deletions
diff --git a/include/media/AudioRecord.h b/include/media/AudioRecord.h index 7df66686f21f..5bfb65b926aa 100644 --- a/include/media/AudioRecord.h +++ b/include/media/AudioRecord.h @@ -354,7 +354,6 @@ private: audio_format_t format, uint32_t channelMask, int frameCount, - uint32_t flags, audio_io_handle_t input); audio_io_handle_t getInput_l(); status_t restoreRecord_l(audio_track_cblk_t*& cblk); diff --git a/include/media/IAudioFlinger.h b/include/media/IAudioFlinger.h index 0f39cf36519e..2bae08e0a399 100644 --- a/include/media/IAudioFlinger.h +++ b/include/media/IAudioFlinger.h @@ -43,6 +43,13 @@ class IAudioFlinger : public IInterface public: DECLARE_META_INTERFACE(AudioFlinger); + // or-able bits shared by createTrack and openRecord, but not all combinations make sense + enum { + TRACK_DEFAULT = 0, + TRACK_TIMED = 1, + }; + typedef uint32_t track_flags_t; + /* create an audio track and registers it with AudioFlinger. * return null if the track cannot be created. */ @@ -53,10 +60,9 @@ public: audio_format_t format, uint32_t channelMask, int frameCount, - uint32_t flags, + track_flags_t flags, const sp<IMemory>& sharedBuffer, audio_io_handle_t output, - bool isTimed, int *sessionId, status_t *status) = 0; @@ -67,7 +73,7 @@ public: audio_format_t format, uint32_t channelMask, int frameCount, - uint32_t flags, + track_flags_t flags, int *sessionId, status_t *status) = 0; diff --git a/media/libmedia/AudioRecord.cpp b/media/libmedia/AudioRecord.cpp index 05ade7593771..70ec593fe3d0 100644 --- a/media/libmedia/AudioRecord.cpp +++ b/media/libmedia/AudioRecord.cpp @@ -201,7 +201,7 @@ status_t AudioRecord::set( // create the IAudioRecord status = openRecord_l(sampleRate, format, channelMask, - frameCount, flags, input); + frameCount, input); if (status != NO_ERROR) { return status; } @@ -458,7 +458,6 @@ status_t AudioRecord::openRecord_l( audio_format_t format, uint32_t channelMask, int frameCount, - uint32_t flags, audio_io_handle_t input) { status_t status; @@ -471,7 +470,7 @@ status_t AudioRecord::openRecord_l( sampleRate, format, channelMask, frameCount, - ((uint16_t)flags) << 16, + IAudioFlinger::TRACK_DEFAULT, &mSessionId, &status); @@ -778,7 +777,7 @@ status_t AudioRecord::restoreRecord_l(audio_track_cblk_t*& cblk) // following member variables: mAudioRecord, mCblkMemory and mCblk. // It will also delete the strong references on previous IAudioRecord and IMemory result = openRecord_l(cblk->sampleRate, mFormat, mChannelMask, - mFrameCount, mFlags, getInput_l()); + mFrameCount, getInput_l()); if (result == NO_ERROR) { result = mAudioRecord->start(0); // callback thread hasn't changed } diff --git a/media/libmedia/AudioTrack.cpp b/media/libmedia/AudioTrack.cpp index 50fbf3617eb9..bafde3ab14b0 100644 --- a/media/libmedia/AudioTrack.cpp +++ b/media/libmedia/AudioTrack.cpp @@ -803,16 +803,19 @@ status_t AudioTrack::createTrack_l( } } + IAudioFlinger::track_flags_t trackFlags = IAudioFlinger::TRACK_DEFAULT; + if (mIsTimed) { + trackFlags |= IAudioFlinger::TRACK_TIMED; + } sp<IAudioTrack> track = audioFlinger->createTrack(getpid(), streamType, sampleRate, format, channelMask, frameCount, - ((uint16_t)flags) << 16, + trackFlags, sharedBuffer, output, - mIsTimed, &mSessionId, &status); diff --git a/media/libmedia/IAudioFlinger.cpp b/media/libmedia/IAudioFlinger.cpp index 07b12e430f8c..ce10c8ecf3fd 100644 --- a/media/libmedia/IAudioFlinger.cpp +++ b/media/libmedia/IAudioFlinger.cpp @@ -87,10 +87,9 @@ public: audio_format_t format, uint32_t channelMask, int frameCount, - uint32_t flags, + track_flags_t flags, const sp<IMemory>& sharedBuffer, audio_io_handle_t output, - bool isTimed, int *sessionId, status_t *status) { @@ -103,10 +102,9 @@ public: data.writeInt32(format); data.writeInt32(channelMask); data.writeInt32(frameCount); - data.writeInt32(flags); + data.writeInt32((int32_t) flags); data.writeStrongBinder(sharedBuffer->asBinder()); data.writeInt32((int32_t) output); - data.writeInt32(isTimed); int lSessionId = 0; if (sessionId != NULL) { lSessionId = *sessionId; @@ -136,7 +134,7 @@ public: audio_format_t format, uint32_t channelMask, int frameCount, - uint32_t flags, + track_flags_t flags, int *sessionId, status_t *status) { @@ -688,15 +686,14 @@ status_t BnAudioFlinger::onTransact( audio_format_t format = (audio_format_t) data.readInt32(); int channelCount = data.readInt32(); size_t bufferCount = data.readInt32(); - uint32_t flags = data.readInt32(); + track_flags_t flags = (track_flags_t) data.readInt32(); sp<IMemory> buffer = interface_cast<IMemory>(data.readStrongBinder()); audio_io_handle_t output = (audio_io_handle_t) data.readInt32(); - bool isTimed = data.readInt32(); int sessionId = data.readInt32(); status_t status; sp<IAudioTrack> track = createTrack(pid, (audio_stream_type_t) streamType, sampleRate, format, - channelCount, bufferCount, flags, buffer, output, isTimed, &sessionId, &status); + channelCount, bufferCount, flags, buffer, output, &sessionId, &status); reply->writeInt32(sessionId); reply->writeInt32(status); reply->writeStrongBinder(track->asBinder()); @@ -710,7 +707,7 @@ status_t BnAudioFlinger::onTransact( audio_format_t format = (audio_format_t) data.readInt32(); int channelCount = data.readInt32(); size_t bufferCount = data.readInt32(); - uint32_t flags = data.readInt32(); + track_flags_t flags = (track_flags_t) data.readInt32(); int sessionId = data.readInt32(); status_t status; sp<IAudioRecord> record = openRecord(pid, input, diff --git a/services/audioflinger/AudioFlinger.cpp b/services/audioflinger/AudioFlinger.cpp index e92e69cd2e68..c5ad0f5d974d 100644 --- a/services/audioflinger/AudioFlinger.cpp +++ b/services/audioflinger/AudioFlinger.cpp @@ -442,11 +442,9 @@ sp<IAudioTrack> AudioFlinger::createTrack( audio_format_t format, uint32_t channelMask, int frameCount, - // FIXME dead, remove from IAudioFlinger - uint32_t flags, + IAudioFlinger::track_flags_t flags, const sp<IMemory>& sharedBuffer, audio_io_handle_t output, - bool isTimed, int *sessionId, status_t *status) { @@ -504,6 +502,7 @@ sp<IAudioTrack> AudioFlinger::createTrack( } ALOGV("createTrack() lSessionId: %d", lSessionId); + bool isTimed = (flags & IAudioFlinger::TRACK_TIMED) != 0; track = thread->createTrack_l(client, streamType, sampleRate, format, channelMask, frameCount, sharedBuffer, lSessionId, isTimed, &lStatus); @@ -4676,8 +4675,7 @@ sp<IAudioRecord> AudioFlinger::openRecord( audio_format_t format, uint32_t channelMask, int frameCount, - // FIXME dead, remove from IAudioFlinger - uint32_t flags, + IAudioFlinger::track_flags_t flags, int *sessionId, status_t *status) { diff --git a/services/audioflinger/AudioFlinger.h b/services/audioflinger/AudioFlinger.h index d1950a3c1e84..795807df4a16 100644 --- a/services/audioflinger/AudioFlinger.h +++ b/services/audioflinger/AudioFlinger.h @@ -87,10 +87,9 @@ public: audio_format_t format, uint32_t channelMask, int frameCount, - uint32_t flags, + IAudioFlinger::track_flags_t flags, const sp<IMemory>& sharedBuffer, audio_io_handle_t output, - bool isTimed, int *sessionId, status_t *status); @@ -101,7 +100,7 @@ public: audio_format_t format, uint32_t channelMask, int frameCount, - uint32_t flags, + IAudioFlinger::track_flags_t flags, int *sessionId, status_t *status); |