chromium/out/Default/gen/media/mojo/mojom/speech_recognition.mojom-shared.h

// media/mojo/mojom/speech_recognition.mojom-shared.h is auto generated by mojom_bindings_generator.py, do not edit

// Copyright 2016 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef MEDIA_MOJO_MOJOM_SPEECH_RECOGNITION_MOJOM_SHARED_H_
#define MEDIA_MOJO_MOJOM_SPEECH_RECOGNITION_MOJOM_SHARED_H_

#include <stdint.h>

#include <functional>
#include <iosfwd>
#include <type_traits>
#include <utility>
#include "mojo/public/cpp/bindings/array_data_view.h"
#include "mojo/public/cpp/bindings/enum_traits.h"
#include "mojo/public/cpp/bindings/interface_data_view.h"
#include "mojo/public/cpp/bindings/lib/bindings_internal.h"
#include "mojo/public/cpp/bindings/lib/serialization.h"
#include "mojo/public/cpp/bindings/map_data_view.h"
#include "mojo/public/cpp/bindings/string_data_view.h"

#include "third_party/perfetto/include/perfetto/tracing/traced_value_forward.h"

#include "media/mojo/mojom/speech_recognition.mojom-shared-internal.h"
#include "media/mojo/mojom/audio_data.mojom-shared.h"
#include "media/mojo/mojom/speech_recognition_audio_forwarder.mojom-shared.h"
#include "media/mojo/mojom/speech_recognizer.mojom-shared.h"
#include "mojo/public/mojom/base/time.mojom-shared.h"
#include "mojo/public/mojom/base/unguessable_token.mojom-shared.h"
#include "ui/gfx/geometry/mojom/geometry.mojom-shared.h"
#include "mojo/public/cpp/bindings/lib/interface_serialization.h"
#include "mojo/public/cpp/system/data_pipe.h"






namespace media::mojom {
class HypothesisPartsDataView;

class TimingInformationDataView;

class SpeechRecognitionResultDataView;

class LanguageIdentificationEventDataView;

class SpeechRecognitionSurfaceMetadataDataView;

class SpeechRecognitionOptionsDataView;



}  // media::mojom

namespace mojo {
namespace internal {

template <>
struct MojomTypeTraits<::media::mojom::HypothesisPartsDataView> {};

template <>
struct MojomTypeTraits<::media::mojom::TimingInformationDataView> {};

template <>
struct MojomTypeTraits<::media::mojom::SpeechRecognitionResultDataView> {};

template <>
struct MojomTypeTraits<::media::mojom::LanguageIdentificationEventDataView> {};

template <>
struct MojomTypeTraits<::media::mojom::SpeechRecognitionSurfaceMetadataDataView> {};

template <>
struct MojomTypeTraits<::media::mojom::SpeechRecognitionOptionsDataView> {};

}  // namespace internal
}  // namespace mojo


namespace media::mojom {


enum class ConfidenceLevel : int32_t {};

 std::ostream& operator<<(std::ostream& os, ConfidenceLevel value);
inline bool IsKnownEnumValue(ConfidenceLevel value) {}
inline ConfidenceLevel ToKnownEnumValue(ConfidenceLevel value) {}


enum class AsrSwitchResult : int32_t {};

 std::ostream& operator<<(std::ostream& os, AsrSwitchResult value);
inline bool IsKnownEnumValue(AsrSwitchResult value) {}
inline AsrSwitchResult ToKnownEnumValue(AsrSwitchResult value) {}


enum class SpeechRecognitionMode : int32_t {};

 std::ostream& operator<<(std::ostream& os, SpeechRecognitionMode value);
inline bool IsKnownEnumValue(SpeechRecognitionMode value) {}
inline SpeechRecognitionMode ToKnownEnumValue(SpeechRecognitionMode value) {}


enum class RecognizerClientType : int32_t {};

 std::ostream& operator<<(std::ostream& os, RecognizerClientType value);
inline bool IsKnownEnumValue(RecognizerClientType value) {}
inline RecognizerClientType ToKnownEnumValue(RecognizerClientType value) {}
// Interface base classes. They are used for type safety check.
class SpeechRecognitionContextInterfaceBase {};

SpeechRecognitionContextPtrDataView;
SpeechRecognitionContextRequestDataView;
SpeechRecognitionContextAssociatedPtrInfoDataView;
SpeechRecognitionContextAssociatedRequestDataView;
class SpeechRecognitionRecognizerInterfaceBase {};

SpeechRecognitionRecognizerPtrDataView;
SpeechRecognitionRecognizerRequestDataView;
SpeechRecognitionRecognizerAssociatedPtrInfoDataView;
SpeechRecognitionRecognizerAssociatedRequestDataView;
class SpeechRecognitionRecognizerClientInterfaceBase {};

SpeechRecognitionRecognizerClientPtrDataView;
SpeechRecognitionRecognizerClientRequestDataView;
SpeechRecognitionRecognizerClientAssociatedPtrInfoDataView;
SpeechRecognitionRecognizerClientAssociatedRequestDataView;
class SpeechRecognitionBrowserObserverInterfaceBase {};

SpeechRecognitionBrowserObserverPtrDataView;
SpeechRecognitionBrowserObserverRequestDataView;
SpeechRecognitionBrowserObserverAssociatedPtrInfoDataView;
SpeechRecognitionBrowserObserverAssociatedRequestDataView;
class SpeechRecognitionSurfaceInterfaceBase {};

SpeechRecognitionSurfacePtrDataView;
SpeechRecognitionSurfaceRequestDataView;
SpeechRecognitionSurfaceAssociatedPtrInfoDataView;
SpeechRecognitionSurfaceAssociatedRequestDataView;
class SpeechRecognitionSurfaceClientInterfaceBase {};

SpeechRecognitionSurfaceClientPtrDataView;
SpeechRecognitionSurfaceClientRequestDataView;
SpeechRecognitionSurfaceClientAssociatedPtrInfoDataView;
SpeechRecognitionSurfaceClientAssociatedRequestDataView;
class SpeechRecognitionClientBrowserInterfaceInterfaceBase {};

SpeechRecognitionClientBrowserInterfacePtrDataView;
SpeechRecognitionClientBrowserInterfaceRequestDataView;
SpeechRecognitionClientBrowserInterfaceAssociatedPtrInfoDataView;
SpeechRecognitionClientBrowserInterfaceAssociatedRequestDataView;


class HypothesisPartsDataView {};


class TimingInformationDataView {};


class SpeechRecognitionResultDataView {};


class LanguageIdentificationEventDataView {};


class SpeechRecognitionSurfaceMetadataDataView {};


class SpeechRecognitionOptionsDataView {};


}  // media::mojom

namespace std {

template <>
struct hash<::media::mojom::ConfidenceLevel>
    : public mojo::internal::EnumHashImpl<::media::mojom::ConfidenceLevel> {};

template <>
struct hash<::media::mojom::AsrSwitchResult>
    : public mojo::internal::EnumHashImpl<::media::mojom::AsrSwitchResult> {};

template <>
struct hash<::media::mojom::SpeechRecognitionMode>
    : public mojo::internal::EnumHashImpl<::media::mojom::SpeechRecognitionMode> {};

template <>
struct hash<::media::mojom::RecognizerClientType>
    : public mojo::internal::EnumHashImpl<::media::mojom::RecognizerClientType> {};

}  // namespace std

namespace mojo {


namespace internal {

Serializer< ::media::mojom::ConfidenceLevel, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::media::mojom::AsrSwitchResult, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::media::mojom::SpeechRecognitionMode, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::media::mojom::RecognizerClientType, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::media::mojom::HypothesisPartsDataView, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::media::mojom::TimingInformationDataView, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::media::mojom::SpeechRecognitionResultDataView, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::media::mojom::LanguageIdentificationEventDataView, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::media::mojom::SpeechRecognitionSurfaceMetadataDataView, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::media::mojom::SpeechRecognitionOptionsDataView, MaybeConstUserType>;

}  // namespace internal

}  // namespace mojo


namespace media::mojom {

inline void HypothesisPartsDataView::GetTextDataView(
    mojo::ArrayDataView<mojo::StringDataView>* output) {}
inline void HypothesisPartsDataView::GetHypothesisPartOffsetDataView(
    ::mojo_base::mojom::TimeDeltaDataView* output) {}


inline void TimingInformationDataView::GetAudioStartTimeDataView(
    ::mojo_base::mojom::TimeDeltaDataView* output) {}
inline void TimingInformationDataView::GetAudioEndTimeDataView(
    ::mojo_base::mojom::TimeDeltaDataView* output) {}
inline void TimingInformationDataView::GetHypothesisPartsDataView(
    mojo::ArrayDataView<HypothesisPartsDataView>* output) {}


inline void SpeechRecognitionResultDataView::GetTranscriptionDataView(
    mojo::StringDataView* output) {}
inline void SpeechRecognitionResultDataView::GetTimingInformationDataView(
    TimingInformationDataView* output) {}


inline void LanguageIdentificationEventDataView::GetLanguageDataView(
    mojo::StringDataView* output) {}


inline void SpeechRecognitionSurfaceMetadataDataView::GetSessionIdDataView(
    ::mojo_base::mojom::UnguessableTokenDataView* output) {}


inline void SpeechRecognitionOptionsDataView::GetLanguageDataView(
    mojo::StringDataView* output) {}
inline void SpeechRecognitionOptionsDataView::GetExperimentRecognizerRoutingKeyDataView(
    mojo::StringDataView* output) {}



}  // media::mojom

// Declare TraceFormatTraits for enums, which should be defined in ::perfetto
// namespace.

namespace perfetto {

template <>
struct  TraceFormatTraits<::media::mojom::ConfidenceLevel> {};

} // namespace perfetto

namespace perfetto {

template <>
struct  TraceFormatTraits<::media::mojom::AsrSwitchResult> {};

} // namespace perfetto

namespace perfetto {

template <>
struct  TraceFormatTraits<::media::mojom::SpeechRecognitionMode> {};

} // namespace perfetto

namespace perfetto {

template <>
struct  TraceFormatTraits<::media::mojom::RecognizerClientType> {};

} // namespace perfetto

#endif  // MEDIA_MOJO_MOJOM_SPEECH_RECOGNITION_MOJOM_SHARED_H_