diff --git a/media/libaudioclient/AudioRecord.cpp b/media/libaudioclient/AudioRecord.cpp index 741d084baa..0d4b4623a7 100644 --- a/media/libaudioclient/AudioRecord.cpp +++ b/media/libaudioclient/AudioRecord.cpp @@ -530,6 +530,27 @@ audio_port_handle_t AudioRecord::getRoutedDeviceId() { return mRoutedDeviceId; } +status_t AudioRecord::dump(int fd, const Vector& args __unused) const +{ + String8 result; + + result.append(" AudioRecord::dump\n"); + result.appendFormat(" status(%d), active(%d), session Id(%d)\n", + mStatus, mActive, mSessionId); + result.appendFormat(" flags(%#x), req. flags(%#x), audio source(%d)\n", + mFlags, mOrigFlags, mAttributes.source); + result.appendFormat(" format(%#x), channel mask(%#x), channel count(%u), sample rate(%u)\n", + mFormat, mChannelMask, mChannelCount, mSampleRate); + result.appendFormat(" frame count(%zu), req. frame count(%zu)\n", + mFrameCount, mReqFrameCount); + result.appendFormat(" notif. frame count(%u), req. notif. frame count(%u)\n", + mNotificationFramesAct, mNotificationFramesReq); + result.appendFormat(" input(%d), latency(%u), selected device Id(%d), routed device Id(%d)\n", + mInput, mLatency, mSelectedDeviceId, mRoutedDeviceId); + ::write(fd, result.string(), result.size()); + return NO_ERROR; +} + // ------------------------------------------------------------------------- // TODO Move this macro to a common header file for enum to string conversion in audio framework. #define MEDIA_CASE_ENUM(name) case name: return #name diff --git a/media/libaudioclient/include/media/AudioRecord.h b/media/libaudioclient/include/media/AudioRecord.h index 00c2a88d9c..074e5470dd 100644 --- a/media/libaudioclient/include/media/AudioRecord.h +++ b/media/libaudioclient/include/media/AudioRecord.h @@ -521,6 +521,11 @@ public: /* Get the flags */ audio_input_flags_t getFlags() const { AutoMutex _l(mLock); return mFlags; } + /* + * Dumps the state of an audio record. + */ + status_t dump(int fd, const Vector& args) const; + private: /* copying audio record objects is not allowed */ AudioRecord(const AudioRecord& other);