diff options
author | Glenn Kasten <gkasten@google.com> | 2014-03-13 14:59:31 -0700 |
---|---|---|
committer | Glenn Kasten <gkasten@google.com> | 2014-05-22 16:19:08 -0700 |
commit | f91df1b368a140abd37c80b204bd48d78778cc43 (patch) | |
tree | 238d896ad29af48d8ee069e853ee9fa1035955cc /services/audioflinger/FastCaptureState.h | |
parent | 29b703eec27b305e7b5b2343bf257643e38f6b68 (diff) | |
download | frameworks_av-f91df1b368a140abd37c80b204bd48d78778cc43.zip frameworks_av-f91df1b368a140abd37c80b204bd48d78778cc43.tar.gz frameworks_av-f91df1b368a140abd37c80b204bd48d78778cc43.tar.bz2 |
Start adding FastCapture based on FastThread WIP
This version supports at most one fast capture client.
Change-Id: Idf609bfc80ae22433433d66a5232c043c65506df
Diffstat (limited to 'services/audioflinger/FastCaptureState.h')
-rw-r--r-- | services/audioflinger/FastCaptureState.h | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/services/audioflinger/FastCaptureState.h b/services/audioflinger/FastCaptureState.h new file mode 100644 index 0000000..29c865a --- /dev/null +++ b/services/audioflinger/FastCaptureState.h @@ -0,0 +1,51 @@ +/* + * Copyright (C) 2014 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef ANDROID_AUDIO_FAST_CAPTURE_STATE_H +#define ANDROID_AUDIO_FAST_CAPTURE_STATE_H + +#include <media/nbaio/NBAIO.h> +#include "FastThreadState.h" +#include <private/media/AudioTrackShared.h> + +namespace android { + +// Represent a single state of the fast capture +struct FastCaptureState : FastThreadState { + FastCaptureState(); + /*virtual*/ ~FastCaptureState(); + + // all pointer fields use raw pointers; objects are owned and ref-counted by RecordThread + NBAIO_Source *mInputSource; // HAL input device, must already be negotiated + // FIXME by renaming, could pull up these fields to FastThreadState + int mInputSourceGen; // increment when mInputSource is assigned + NBAIO_Sink *mPipeSink; // after reading from input source, write to this pipe sink + int mPipeSinkGen; // increment when mPipeSink is assigned + size_t mFrameCount; // number of frames per fast capture buffer + audio_track_cblk_t *mCblk; // control block for the single fast client, or NULL + + // Extends FastThreadState::Command + static const Command + // The following commands also process configuration changes, and can be "or"ed: + READ = 0x8, // read from input source + WRITE = 0x10, // write to pipe sink + READ_WRITE = 0x18; // read from input source and write to pipe sink + +}; // struct FastCaptureState + +} // namespace android + +#endif // ANDROID_AUDIO_FAST_CAPTURE_STATE_H |