104333cdc8d6a3c8e4a11835371e8ad13adf3f7f0Glenn Kasten/* 204333cdc8d6a3c8e4a11835371e8ad13adf3f7f0Glenn Kasten * Copyright (C) 2014 The Android Open Source Project 304333cdc8d6a3c8e4a11835371e8ad13adf3f7f0Glenn Kasten * 404333cdc8d6a3c8e4a11835371e8ad13adf3f7f0Glenn Kasten * Licensed under the Apache License, Version 2.0 (the "License"); 504333cdc8d6a3c8e4a11835371e8ad13adf3f7f0Glenn Kasten * you may not use this file except in compliance with the License. 604333cdc8d6a3c8e4a11835371e8ad13adf3f7f0Glenn Kasten * You may obtain a copy of the License at 704333cdc8d6a3c8e4a11835371e8ad13adf3f7f0Glenn Kasten * 804333cdc8d6a3c8e4a11835371e8ad13adf3f7f0Glenn Kasten * http://www.apache.org/licenses/LICENSE-2.0 904333cdc8d6a3c8e4a11835371e8ad13adf3f7f0Glenn Kasten * 1004333cdc8d6a3c8e4a11835371e8ad13adf3f7f0Glenn Kasten * Unless required by applicable law or agreed to in writing, software 1104333cdc8d6a3c8e4a11835371e8ad13adf3f7f0Glenn Kasten * distributed under the License is distributed on an "AS IS" BASIS, 1204333cdc8d6a3c8e4a11835371e8ad13adf3f7f0Glenn Kasten * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1304333cdc8d6a3c8e4a11835371e8ad13adf3f7f0Glenn Kasten * See the License for the specific language governing permissions and 1404333cdc8d6a3c8e4a11835371e8ad13adf3f7f0Glenn Kasten * limitations under the License. 1504333cdc8d6a3c8e4a11835371e8ad13adf3f7f0Glenn Kasten */ 1604333cdc8d6a3c8e4a11835371e8ad13adf3f7f0Glenn Kasten 1717c9c998afed5ed9df7495eeed5822f3ed53ebecGlenn Kasten#define LOG_TAG "FastCaptureDumpState" 1817c9c998afed5ed9df7495eeed5822f3ed53ebecGlenn Kasten//define LOG_NDEBUG 0 1917c9c998afed5ed9df7495eeed5822f3ed53ebecGlenn Kasten 2017c9c998afed5ed9df7495eeed5822f3ed53ebecGlenn Kasten#include "Configuration.h" 2117c9c998afed5ed9df7495eeed5822f3ed53ebecGlenn Kasten#include <utils/Log.h> 2204333cdc8d6a3c8e4a11835371e8ad13adf3f7f0Glenn Kasten#include "FastCaptureDumpState.h" 2317c9c998afed5ed9df7495eeed5822f3ed53ebecGlenn Kasten#include "FastCaptureState.h" 2404333cdc8d6a3c8e4a11835371e8ad13adf3f7f0Glenn Kasten 2504333cdc8d6a3c8e4a11835371e8ad13adf3f7f0Glenn Kastennamespace android { 2604333cdc8d6a3c8e4a11835371e8ad13adf3f7f0Glenn Kasten 2704333cdc8d6a3c8e4a11835371e8ad13adf3f7f0Glenn KastenFastCaptureDumpState::FastCaptureDumpState() : FastThreadDumpState(), 2804333cdc8d6a3c8e4a11835371e8ad13adf3f7f0Glenn Kasten mReadSequence(0), mFramesRead(0), mReadErrors(0), mSampleRate(0), mFrameCount(0) 2904333cdc8d6a3c8e4a11835371e8ad13adf3f7f0Glenn Kasten{ 3004333cdc8d6a3c8e4a11835371e8ad13adf3f7f0Glenn Kasten} 3104333cdc8d6a3c8e4a11835371e8ad13adf3f7f0Glenn Kasten 3204333cdc8d6a3c8e4a11835371e8ad13adf3f7f0Glenn KastenFastCaptureDumpState::~FastCaptureDumpState() 3304333cdc8d6a3c8e4a11835371e8ad13adf3f7f0Glenn Kasten{ 3404333cdc8d6a3c8e4a11835371e8ad13adf3f7f0Glenn Kasten} 3504333cdc8d6a3c8e4a11835371e8ad13adf3f7f0Glenn Kasten 3617c9c998afed5ed9df7495eeed5822f3ed53ebecGlenn Kastenvoid FastCaptureDumpState::dump(int fd) const 3717c9c998afed5ed9df7495eeed5822f3ed53ebecGlenn Kasten{ 3817c9c998afed5ed9df7495eeed5822f3ed53ebecGlenn Kasten if (mCommand == FastCaptureState::INITIAL) { 3917c9c998afed5ed9df7495eeed5822f3ed53ebecGlenn Kasten dprintf(fd, " FastCapture not initialized\n"); 4017c9c998afed5ed9df7495eeed5822f3ed53ebecGlenn Kasten return; 4117c9c998afed5ed9df7495eeed5822f3ed53ebecGlenn Kasten } 4217c9c998afed5ed9df7495eeed5822f3ed53ebecGlenn Kasten double measuredWarmupMs = (mMeasuredWarmupTs.tv_sec * 1000.0) + 4317c9c998afed5ed9df7495eeed5822f3ed53ebecGlenn Kasten (mMeasuredWarmupTs.tv_nsec / 1000000.0); 4417c9c998afed5ed9df7495eeed5822f3ed53ebecGlenn Kasten double periodSec = (double) mFrameCount / mSampleRate; 4517c9c998afed5ed9df7495eeed5822f3ed53ebecGlenn Kasten dprintf(fd, " FastCapture command=%s readSequence=%u framesRead=%u\n" 4617c9c998afed5ed9df7495eeed5822f3ed53ebecGlenn Kasten " readErrors=%u sampleRate=%u frameCount=%zu\n" 4717c9c998afed5ed9df7495eeed5822f3ed53ebecGlenn Kasten " measuredWarmup=%.3g ms, warmupCycles=%u period=%.2f ms\n", 4817c9c998afed5ed9df7495eeed5822f3ed53ebecGlenn Kasten FastCaptureState::commandToString(mCommand), mReadSequence, mFramesRead, 4917c9c998afed5ed9df7495eeed5822f3ed53ebecGlenn Kasten mReadErrors, mSampleRate, mFrameCount, measuredWarmupMs, mWarmupCycles, 5017c9c998afed5ed9df7495eeed5822f3ed53ebecGlenn Kasten periodSec * 1e3); 5117c9c998afed5ed9df7495eeed5822f3ed53ebecGlenn Kasten} 5217c9c998afed5ed9df7495eeed5822f3ed53ebecGlenn Kasten 5304333cdc8d6a3c8e4a11835371e8ad13adf3f7f0Glenn Kasten} // android 54