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