blob: e568d8c1e1cc7389316acf232b9081290cd3f16c [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/hotword_detection.pb.h"
#include "media_perception/media_perception_mojom.pb.h"
#include "media_perception/occupancy_trigger.pb.h"
#include "media_perception/pipeline.pb.h"
#include "media_perception/presence_perception.pb.h"
#include "mojom/common.mojom.h"
#include "mojom/device_management.mojom.h"
#include "mojom/frame_perception.mojom.h"
#include "mojom/hotword_detection.mojom.h"
#include "mojom/media_perception.mojom.h"
#include "mojom/occupancy_trigger.mojom.h"
#include "mojom/pipeline.mojom.h"
#include "mojom/presence_perception.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);
SampleFormat ToMojom(mri::SampleFormat format);
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);
// Hotword detection conversions.
HotwordType ToMojom(mri::HotwordType type);
HotwordPtr ToMojom(const mri::Hotword& hotword);
HotwordDetectionPtr ToMojom(const mri::HotwordDetection& hotword_detection);
// 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);
GlobalPipelineStatePtr ToMojom(const mri::GlobalPipelineState& state);
// Presence perception conversions.
PresencePerceptionPtr ToMojom(const mri::PresencePerception& perception);
// Occupancy trigger conversions.
OccupancyTriggerPtr ToMojom(const mri::OccupancyTrigger& occupancy_trigger);
} // namespace mojom
} // namespace media_perception
} // namespace chromeos
namespace mri {
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);
SampleFormat ToProto(chromeos::media_perception::mojom::SampleFormat format);
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);
// Hotword detection conversions.
HotwordType ToProto(chromeos::media_perception::mojom::HotwordType type);
Hotword ToProto(
const chromeos::media_perception::mojom::HotwordPtr& hotword_ptr);
HotwordDetection ToProto(
const chromeos::media_perception::mojom::HotwordDetectionPtr&
hotword_deteciton_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);
// Presence perception conversions.
PresencePerception ToProto(
const chromeos::media_perception::mojom::PresencePerceptionPtr&
perception_ptr);
// Occupancy trigger conversions.
OccupancyTrigger ToProto(
const chromeos::media_perception::mojom::OccupancyTriggerPtr&
occupancy_ptr);
} // namespace mri
#endif // MEDIA_PERCEPTION_PROTO_MOJOM_CONVERSION_H_