summaryrefslogtreecommitdiffstats
path: root/services/audioflinger/FastCaptureState.h
diff options
context:
space:
mode:
authorGlenn Kasten <gkasten@google.com>2014-03-13 14:59:31 -0700
committerGlenn Kasten <gkasten@google.com>2014-05-22 16:19:08 -0700
commitf91df1b368a140abd37c80b204bd48d78778cc43 (patch)
tree238d896ad29af48d8ee069e853ee9fa1035955cc /services/audioflinger/FastCaptureState.h
parent29b703eec27b305e7b5b2343bf257643e38f6b68 (diff)
downloadframeworks_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.h51
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