blob: 8f71c144d9b2b2a87dffb88945e312cc59de9901 [file] [log] [blame] [edit]
/*
* Copyright 2019 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
#ifndef CAMERA_COMMON_CAMERA_METRICS_IMPL_H_
#define CAMERA_COMMON_CAMERA_METRICS_IMPL_H_
#include <memory>
#include <base/time/time.h>
#include <base/process/process_metrics.h>
#include <cros-camera/camera_metrics.h>
#include <metrics/metrics_library.h>
namespace cros {
// Implementation of Camera Metrics.
class CameraMetricsImpl : public CameraMetrics {
public:
CameraMetricsImpl();
~CameraMetricsImpl() override;
void SetMetricsLibraryForTesting(
std::unique_ptr<MetricsLibraryInterface> metrics_lib);
void SendJpegProcessLatency(JpegProcessType process_type,
JpegProcessMethod process_layer,
base::TimeDelta latency) override;
void SendJpegResolution(JpegProcessType process_type,
JpegProcessMethod process_layer,
int width,
int height) override;
void SendConfigureStreamResolution(int width,
int height,
int format) override;
void SendConfigureStreamsLatency(base::TimeDelta latency) override;
void SendOpenDeviceClientType(int client_type) override;
void SendOpenDeviceLatency(base::TimeDelta latency) override;
void SendError(int error_code) override;
void SendCameraFacing(int facing) override;
void SendSessionDuration(base::TimeDelta duration) override;
void SendFaceAeFunction(FaceAeFunction function) override;
void SendFaceAeMaxDetectedFaces(int number) override;
void SendHdrnetStreamConfiguration(HdrnetStreamConfiguration config) override;
void SendHdrnetMaxStreamSize(HdrnetStreamType stream_type, int size) override;
void SendHdrnetNumConcurrentStreams(int num_streams) override;
void SendHdrnetMaxOutputBuffersRendered(int num_buffers) override;
void SendHdrnetError(HdrnetError error) override;
void SendHdrnetNumStillShotsTaken(int num_shots) override;
void SendHdrnetAvgLatency(HdrnetProcessingType processing_type,
int latency_us) override;
void SendGcamAeAvgConvergenceLatency(int latency_us) override;
void SendGcamAeAvgHdrRatio(int hdr_ratio) override;
void SendGcamAeAvgTet(int tet) override;
void SendAutoFramingEnabledTimePercentage(int percentage) override;
void SendAutoFramingEnabledCount(int count) override;
void SendAutoFramingDetectionHitPercentage(int percentage) override;
void SendAutoFramingAvgDetectionLatency(base::TimeDelta latency) override;
void SendAutoFramingMedianZoomRatio(int zoom_ratio_tenths) override;
void SendAutoFramingError(AutoFramingError error) override;
void SendEffectsSelectedEffect(CameraEffect effect) override;
void SendEffectsAvgProcessingLatency(CameraEffect effect,
CameraEffectStreamType stream_type,
base::TimeDelta latency) override;
void SendEffectsAvgProcessedFrameInterval(CameraEffect effect,
CameraEffectStreamType stream_type,
base::TimeDelta interval) override;
void SendEffectsRequestedFrameRate(int fps) override;
void SendEffectsMinStreamSize(CameraEffectStreamType stream_type,
int size) override;
void SendEffectsMaxStreamSize(CameraEffectStreamType stream_type,
int size) override;
void SendEffectsNumConcurrentStreams(int num_streams) override;
void SendEffectsNumConcurrentProcessedStreams(int num_streams) override;
void SendEffectsError(CameraEffectError error) override;
void SendEffectsNumStillShotsTaken(int num_shots) override;
void SendPortraitModeNumStillShotsTaken(int num_shots) override;
void SendPortraitModeProcessAvgLatency(base::TimeDelta latency) override;
void SendPortraitModeError(PortraitModeError error) override;
void SendSuperResNumStillShotsTaken(int num_shots) override;
void SendSuperResProcessAvgLatency(base::TimeDelta latency) override;
void SendSuperResError(SuperResError error) override;
private:
std::unique_ptr<MetricsLibraryInterface> metrics_lib_;
};
} // namespace cros
#endif // CAMERA_COMMON_CAMERA_METRICS_IMPL_H_