summaryrefslogtreecommitdiffstats
path: root/services/audioflinger/RecordTracks.h
Commit message (Collapse)AuthorAgeFilesLines
* Improve ResamplerBufferProviderAndy Hung2015-04-081-8/+0
| | | | Change-Id: I3cc3af221ad5797ff219d75227350733afa180db
* Add RecordBufferConverter for RecordThread data processingAndy Hung2015-04-081-8/+5
| | | | Change-Id: Ia3aab8590cd41e8a7cba0a7345d70d2866d92045
* audio flinger: add patch connection between hw modulesEric Laurent2014-07-241-1/+34
| | | | | | | | | | | | | | | | | | Add support for audio device connections between different audio hw modules. The patch is performed by creating a bridge between the playback thread connected to the sink device and the record thread connected to the source device using a pair of specialized PlaybackTrack and RecordTrack. - Added PatchTrack and PatchRecord classes. - Added TrackBase type to indicate more clearly the track behavior. - A TrackBase can allocate the buffer or reuse an existing one. - Factored some code in openOutput() and openInput() for internal use by PatchPanel. Bug: 14815883. Change-Id: Ib9515fcda864610458a4bc81fa8f59096ff4d7db
* Pull up mFlags and isFastTrack from Track to TrackBaseGlenn Kasten2014-05-131-1/+1
| | | | Change-Id: I6bd48292310be4e05758a11f617f50585904422d
* IAudioFlinger::openRecord returns IMemory(s)Glenn Kasten2014-05-091-1/+2
| | | | | | | | 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
* Change references of Q19.12 to Q4.27 for clarityAndy Hung2014-04-021-1/+1
| | | | | Change-Id: I5beb7daf6ff9bc123ff3582f7c294edcaf8652f6 Signed-off-by: Andy Hung <hunga@google.com>
* Move handleSyncStartEvent and clearSyncStartEvent to RecordTrackGlenn Kasten2014-02-181-0/+3
| | | | Change-Id: I611a63e63acf3eb17e2072c1a77b91fe9e62e36a
* Add _l suffix to readInputParameters/OutputParametersGlenn Kasten2014-02-181-1/+1
| | | | | | | They are always called while thread mutex is locked, or in the thread constructor. Change-Id: I56df71563a52a5cd6cea6fc0914df993519e1b74
* Multi-client recordingGlenn Kasten2014-02-181-0/+29
| | | | | | Supports multiple clients both at native sample rate and with resampling. Change-Id: Icea55b4fd30751761b7debaa3ce016c79e712d8d
* Pretty up audioflinger dumpsysMarco Nelissen2014-02-101-1/+1
| | | | Change-Id: I57e44b4c36b99f7149542bbcf9645521c6152dfa
* Assign blame for playback wakelocks.Marco Nelissen2013-10-251-1/+2
| | | | | | | Set a work source for the playback wakelock, so that playback is counted against the requesting app instead of the media server. Change-Id: I7329f88a288a95a582a78005a1c3d16a5a611e31
* am 4823964d: am efc4d489: Merge "audioflinger: add HOTWORD audio source." ↵Eric Laurent2013-09-111-0/+1
|\ | | | | | | | | | | | | into klp-dev * commit '4823964d198228289ff21530bf8b01bb2ef196bb': audioflinger: add HOTWORD audio source.
| * audioflinger: add HOTWORD audio source.Eric Laurent2013-09-101-0/+1
| | | | | | | | | | | | | | | | | | | | HOTWORD is a special capture audio source that uses the same audio tuning as VOICE_RECOGNITION but allows an active capture to be preempted. Bug: 10640877. Change-Id: Iea09a11cbcdbacc8d434e5230e7559dcd1b44ac0
* | Remove obsolete field RecordTrack::mAudioRecordServerProxyGlenn Kasten2013-08-061-1/+0
|/ | | | Change-Id: I054ba929e209797542940a0e734fc15f19f321c9
* New control block for AudioTrack and AudioRecordGlenn Kasten2013-06-121-0/+1
| | | | | | | | Main differences between old and new control block: - removes the mutex, which was a potential source of priority inversion - circular indices into shared buffer, which is now always a power-of-2 size Change-Id: I4e9b7fa99858b488ac98a441fa70e31dbba1b865
* Start isolating control block accesses in a proxyGlenn Kasten2012-12-121-2/+0
| | | | | | | | | | | | | | | | | | | | | The proxy object will eventually be the only code that understands the details of the control block. This should make it easier to change the control block in the future. Initial set of control block fields that are isolated: - sample rate - send level - volume Prepare for streaming/static separation by adding a union to the control block for the new fields. Fix bug in handling of max sample rate on a track. It was only checking at re-configuration, not at each mix. Simplify OutputTrack::obtainBuffer. Change-Id: I2249f9d04f73a911a922ad1d7f6197292c74cd92
* AudioFlinger files reorganizationEric Laurent2012-11-191-0/+62
Audioflinger.cpp and Audioflinger.h files must be split to improve readability and maintainability. This CL splits the files as follows: AudioFlinger.cpp split into: - AudioFlinger.cpp: implementation of IAudioflinger interface and global methods - AFThreads.cpp: implementation of ThreadBase, PlaybackThread, MixerThread, DuplicatingThread, DirectOutputThread and RecordThread. - AFTracks.cpp: implementation of TrackBase, Track, TimedTrack, OutputTrack, RecordTrack, TrackHandle and RecordHandle. - AFEffects.cpp: implementation of EffectModule, EffectChain and EffectHandle. AudioFlinger.h is modified by inline inclusion of header files containing the declaration of complex inner classes: - AFThreads.h: ThreadBase, PlaybackThread, MixerThread, DuplicatingThread, DirectOutputThread and RecordThread - AFEffects.h: EffectModule, EffectChain and EffectHandle AFThreads.h includes the follownig headers inline: - AFTrackBase.h: TrackBase - AFPlaybackTracks: Track, TimedTrack, OutputTrack - AFRecordTracks: RecordTrack Change-Id: I512ebc3a51813ab7a4afccc9a538b18125165c4c