blob: c3b856330e9d48e8a1dd66f0b9ee90b3f87bf42e [file] [log] [blame]
// Copyright 2018 The Chromium OS Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef MEDIA_PERCEPTION_PROTO_MOJOM_CONVERSION_H_
#define MEDIA_PERCEPTION_PROTO_MOJOM_CONVERSION_H_
#include <vector>
#include "media_perception/common.pb.h"
#include "media_perception/device_management.pb.h"
#include "media_perception/frame_perception.pb.h"
#include "media_perception/media_perception_mojom.pb.h"
#include "media_perception/pipeline.pb.h"
#include "mojom/common.mojom.h"
#include "mojom/device_management.mojom.h"
#include "mojom/frame_perception.mojom.h"
#include "mojom/media_perception.mojom.h"
#include "mojom/pipeline.mojom.h"
namespace chromeos {
namespace media_perception {
namespace mojom {
SuccessStatusPtr ToMojom(const mri::SuccessStatus& status);
PixelFormat ToMojom(mri::PixelFormat format);
VideoStreamParamsPtr ToMojom(const mri::VideoStreamParams& params);
VideoDevicePtr ToMojom(const mri::VideoDevice& device);
VirtualVideoDevicePtr ToMojom(const mri::VirtualVideoDevice& device);
AudioStreamParamsPtr ToMojom(const mri::AudioStreamParams& params);
AudioDevicePtr ToMojom(const mri::AudioDevice& device);
DeviceType ToMojom(mri::DeviceType type);
DeviceTemplatePtr ToMojom(const mri::DeviceTemplate& device_template);
// Common conversions.
DistanceUnits ToMojom(mri::DistanceUnits units);
NormalizedBoundingBoxPtr ToMojom(const mri::NormalizedBoundingBox& bbox);
DistancePtr ToMojom(const mri::Distance& distance);
// Frame perception conversions.
EntityType ToMojom(mri::EntityType type);
FramePerceptionType ToMojom(mri::FramePerceptionType type);
EntityPtr ToMojom(const mri::Entity& entity);
FramePerceptionPtr ToMojom(const mri::FramePerception& perception);
// Pipeline conversions.
PipelineStatus ToMojom(mri::PipelineStatus status);
PipelineErrorType ToMojom(mri::PipelineErrorType error_type);
PipelineErrorPtr ToMojom(const mri::PipelineError& error);
PipelineStatePtr ToMojom(const mri::PipelineState& state);
} // namespace mojom
} // namespace media_perception
} // namespace chromeos
namespace mri {
std::vector<uint8_t> SerializeVideoStreamParamsProto(
const VideoStreamParams& params);
std::vector<uint8_t> SerializeVideoDeviceProto(const VideoDevice& device);
std::vector<uint8_t> SerializeSuccessStatusProto(const SuccessStatus& status);
SuccessStatus ToProto(
const chromeos::media_perception::mojom::SuccessStatusPtr& status_ptr);
PixelFormat ToProto(
chromeos::media_perception::mojom::PixelFormat format);
VideoStreamParams ToProto(
const chromeos::media_perception::mojom::VideoStreamParamsPtr& params_ptr);
VideoDevice ToProto(
const chromeos::media_perception::mojom::VideoDevicePtr& device_ptr);
VirtualVideoDevice ToProto(
const chromeos::media_perception::mojom::VirtualVideoDevicePtr& device_ptr);
AudioStreamParams ToProto(
const chromeos::media_perception::mojom::AudioStreamParamsPtr& params_ptr);
AudioDevice ToProto(
const chromeos::media_perception::mojom::AudioDevicePtr& device_ptr);
DeviceType ToProto(
chromeos::media_perception::mojom::DeviceType type);
DeviceTemplate ToProto(
const chromeos::media_perception::mojom::DeviceTemplatePtr& template_ptr);
// Common conversions.
DistanceUnits ToProto(chromeos::media_perception::mojom::DistanceUnits units);
NormalizedBoundingBox ToProto(
const chromeos::media_perception::mojom::NormalizedBoundingBoxPtr&
bbox_ptr);
Distance ToProto(
const chromeos::media_perception::mojom::DistancePtr& distance_ptr);
// Frame perception conversions.
EntityType ToProto(chromeos::media_perception::mojom::EntityType type);
FramePerceptionType ToProto(
chromeos::media_perception::mojom::FramePerceptionType type);
Entity ToProto(const chromeos::media_perception::mojom::EntityPtr& entity_ptr);
FramePerception ToProto(
const chromeos::media_perception::mojom::FramePerceptionPtr&
perception_ptr);
// Pipeline conversions.
PipelineStatus ToProto(
chromeos::media_perception::mojom::PipelineStatus status);
PipelineErrorType ToProto(
chromeos::media_perception::mojom::PipelineErrorType error_type);
PipelineError ToProto(
const chromeos::media_perception::mojom::PipelineErrorPtr& error_ptr);
PipelineState ToProto(
const chromeos::media_perception::mojom::PipelineStatePtr& state_ptr);
} // namespace mri
#endif // MEDIA_PERCEPTION_PROTO_MOJOM_CONVERSION_H_