// WARNING: Please don't edit this file. It was generated by Python/WinRT v1.0.0-beta.9

#pragma once

#include "pybase.h"

#if __has_include("py.Windows.Devices.Enumeration.h")
#include "py.Windows.Devices.Enumeration.h"
#endif

#if __has_include("py.Windows.Foundation.h")
#include "py.Windows.Foundation.h"
#endif

#if __has_include("py.Windows.Foundation.Collections.h")
#include "py.Windows.Foundation.Collections.h"
#endif

#if __has_include("py.Windows.Graphics.DirectX.Direct3D11.h")
#include "py.Windows.Graphics.DirectX.Direct3D11.h"
#endif

#if __has_include("py.Windows.Graphics.Imaging.h")
#include "py.Windows.Graphics.Imaging.h"
#endif

#if __has_include("py.Windows.Media.h")
#include "py.Windows.Media.h"
#endif

#if __has_include("py.Windows.Media.Capture.h")
#include "py.Windows.Media.Capture.h"
#endif

#if __has_include("py.Windows.Media.Devices.h")
#include "py.Windows.Media.Devices.h"
#endif

#if __has_include("py.Windows.Media.Devices.Core.h")
#include "py.Windows.Media.Devices.Core.h"
#endif

#if __has_include("py.Windows.Media.MediaProperties.h")
#include "py.Windows.Media.MediaProperties.h"
#endif

#if __has_include("py.Windows.Perception.Spatial.h")
#include "py.Windows.Perception.Spatial.h"
#endif

#if __has_include("py.Windows.Storage.Streams.h")
#include "py.Windows.Storage.Streams.h"
#endif

#if __has_include("py.Windows.UI.WindowManagement.h")
#include "py.Windows.UI.WindowManagement.h"
#endif

#include <winrt/Windows.Devices.Enumeration.h>
#include <winrt/Windows.Foundation.h>
#include <winrt/Windows.Foundation.Collections.h>
#include <winrt/Windows.Graphics.DirectX.Direct3D11.h>
#include <winrt/Windows.Graphics.Imaging.h>
#include <winrt/Windows.Media.h>
#include <winrt/Windows.Media.Capture.h>
#include <winrt/Windows.Media.Devices.h>
#include <winrt/Windows.Media.Devices.Core.h>
#include <winrt/Windows.Media.MediaProperties.h>
#include <winrt/Windows.Perception.Spatial.h>
#include <winrt/Windows.Storage.Streams.h>
#include <winrt/Windows.UI.WindowManagement.h>

#include <winrt/Windows.Media.Capture.Frames.h>

namespace py::proj::Windows::Media::Capture::Frames
{}

namespace py::impl::Windows::Media::Capture::Frames
{}

namespace py::wrapper::Windows::Media::Capture::Frames
{
    using AudioMediaFrame = py::winrt_wrapper<winrt::Windows::Media::Capture::Frames::AudioMediaFrame>;
    using BufferMediaFrame = py::winrt_wrapper<winrt::Windows::Media::Capture::Frames::BufferMediaFrame>;
    using DepthMediaFrame = py::winrt_wrapper<winrt::Windows::Media::Capture::Frames::DepthMediaFrame>;
    using DepthMediaFrameFormat = py::winrt_wrapper<winrt::Windows::Media::Capture::Frames::DepthMediaFrameFormat>;
    using InfraredMediaFrame = py::winrt_wrapper<winrt::Windows::Media::Capture::Frames::InfraredMediaFrame>;
    using MediaFrameArrivedEventArgs = py::winrt_wrapper<winrt::Windows::Media::Capture::Frames::MediaFrameArrivedEventArgs>;
    using MediaFrameFormat = py::winrt_wrapper<winrt::Windows::Media::Capture::Frames::MediaFrameFormat>;
    using MediaFrameReader = py::winrt_wrapper<winrt::Windows::Media::Capture::Frames::MediaFrameReader>;
    using MediaFrameReference = py::winrt_wrapper<winrt::Windows::Media::Capture::Frames::MediaFrameReference>;
    using MediaFrameSource = py::winrt_wrapper<winrt::Windows::Media::Capture::Frames::MediaFrameSource>;
    using MediaFrameSourceController = py::winrt_wrapper<winrt::Windows::Media::Capture::Frames::MediaFrameSourceController>;
    using MediaFrameSourceGetPropertyResult = py::winrt_wrapper<winrt::Windows::Media::Capture::Frames::MediaFrameSourceGetPropertyResult>;
    using MediaFrameSourceGroup = py::winrt_wrapper<winrt::Windows::Media::Capture::Frames::MediaFrameSourceGroup>;
    using MediaFrameSourceInfo = py::winrt_wrapper<winrt::Windows::Media::Capture::Frames::MediaFrameSourceInfo>;
    using MultiSourceMediaFrameArrivedEventArgs = py::winrt_wrapper<winrt::Windows::Media::Capture::Frames::MultiSourceMediaFrameArrivedEventArgs>;
    using MultiSourceMediaFrameReader = py::winrt_wrapper<winrt::Windows::Media::Capture::Frames::MultiSourceMediaFrameReader>;
    using MultiSourceMediaFrameReference = py::winrt_wrapper<winrt::Windows::Media::Capture::Frames::MultiSourceMediaFrameReference>;
    using VideoMediaFrame = py::winrt_wrapper<winrt::Windows::Media::Capture::Frames::VideoMediaFrame>;
    using VideoMediaFrameFormat = py::winrt_wrapper<winrt::Windows::Media::Capture::Frames::VideoMediaFrameFormat>;
}

namespace py
{
    template<>
    inline constexpr const char* buffer_format<winrt::Windows::Media::Capture::Frames::MediaFrameReaderAcquisitionMode> = "i";

    template<>
    inline constexpr const char* buffer_format<winrt::Windows::Media::Capture::Frames::MediaFrameReaderStartStatus> = "i";

    template<>
    inline constexpr const char* buffer_format<winrt::Windows::Media::Capture::Frames::MediaFrameSourceGetPropertyStatus> = "i";

    template<>
    inline constexpr const char* buffer_format<winrt::Windows::Media::Capture::Frames::MediaFrameSourceKind> = "i";

    template<>
    inline constexpr const char* buffer_format<winrt::Windows::Media::Capture::Frames::MediaFrameSourceSetPropertyStatus> = "i";

    template<>
    inline constexpr const char* buffer_format<winrt::Windows::Media::Capture::Frames::MultiSourceMediaFrameReaderStartStatus> = "i";


    template<>
    struct py_type<winrt::Windows::Media::Capture::Frames::MediaFrameReaderAcquisitionMode>
    {
        static PyObject* get_python_type() noexcept;
    };

    template<>
    struct py_type<winrt::Windows::Media::Capture::Frames::MediaFrameReaderStartStatus>
    {
        static PyObject* get_python_type() noexcept;
    };

    template<>
    struct py_type<winrt::Windows::Media::Capture::Frames::MediaFrameSourceGetPropertyStatus>
    {
        static PyObject* get_python_type() noexcept;
    };

    template<>
    struct py_type<winrt::Windows::Media::Capture::Frames::MediaFrameSourceKind>
    {
        static PyObject* get_python_type() noexcept;
    };

    template<>
    struct py_type<winrt::Windows::Media::Capture::Frames::MediaFrameSourceSetPropertyStatus>
    {
        static PyObject* get_python_type() noexcept;
    };

    template<>
    struct py_type<winrt::Windows::Media::Capture::Frames::MultiSourceMediaFrameReaderStartStatus>
    {
        static PyObject* get_python_type() noexcept;
    };

    template<>
    struct winrt_type<winrt::Windows::Media::Capture::Frames::AudioMediaFrame>
    {
        static PyTypeObject* get_python_type() noexcept;
    };

    template<>
    struct winrt_type<winrt::Windows::Media::Capture::Frames::BufferMediaFrame>
    {
        static PyTypeObject* get_python_type() noexcept;
    };

    template<>
    struct winrt_type<winrt::Windows::Media::Capture::Frames::DepthMediaFrame>
    {
        static PyTypeObject* get_python_type() noexcept;
    };

    template<>
    struct winrt_type<winrt::Windows::Media::Capture::Frames::DepthMediaFrameFormat>
    {
        static PyTypeObject* get_python_type() noexcept;
    };

    template<>
    struct winrt_type<winrt::Windows::Media::Capture::Frames::InfraredMediaFrame>
    {
        static PyTypeObject* get_python_type() noexcept;
    };

    template<>
    struct winrt_type<winrt::Windows::Media::Capture::Frames::MediaFrameArrivedEventArgs>
    {
        static PyTypeObject* get_python_type() noexcept;
    };

    template<>
    struct winrt_type<winrt::Windows::Media::Capture::Frames::MediaFrameFormat>
    {
        static PyTypeObject* get_python_type() noexcept;
    };

    template<>
    struct winrt_type<winrt::Windows::Media::Capture::Frames::MediaFrameReader>
    {
        static PyTypeObject* get_python_type() noexcept;
    };

    template<>
    struct winrt_type<winrt::Windows::Media::Capture::Frames::MediaFrameReference>
    {
        static PyTypeObject* get_python_type() noexcept;
    };

    template<>
    struct winrt_type<winrt::Windows::Media::Capture::Frames::MediaFrameSource>
    {
        static PyTypeObject* get_python_type() noexcept;
    };

    template<>
    struct winrt_type<winrt::Windows::Media::Capture::Frames::MediaFrameSourceController>
    {
        static PyTypeObject* get_python_type() noexcept;
    };

    template<>
    struct winrt_type<winrt::Windows::Media::Capture::Frames::MediaFrameSourceGetPropertyResult>
    {
        static PyTypeObject* get_python_type() noexcept;
    };

    template<>
    struct winrt_type<winrt::Windows::Media::Capture::Frames::MediaFrameSourceGroup>
    {
        static PyTypeObject* get_python_type() noexcept;
    };

    template<>
    struct winrt_type<winrt::Windows::Media::Capture::Frames::MediaFrameSourceInfo>
    {
        static PyTypeObject* get_python_type() noexcept;
    };

    template<>
    struct winrt_type<winrt::Windows::Media::Capture::Frames::MultiSourceMediaFrameArrivedEventArgs>
    {
        static PyTypeObject* get_python_type() noexcept;
    };

    template<>
    struct winrt_type<winrt::Windows::Media::Capture::Frames::MultiSourceMediaFrameReader>
    {
        static PyTypeObject* get_python_type() noexcept;
    };

    template<>
    struct winrt_type<winrt::Windows::Media::Capture::Frames::MultiSourceMediaFrameReference>
    {
        static PyTypeObject* get_python_type() noexcept;
    };

    template<>
    struct winrt_type<winrt::Windows::Media::Capture::Frames::VideoMediaFrame>
    {
        static PyTypeObject* get_python_type() noexcept;
    };

    template<>
    struct winrt_type<winrt::Windows::Media::Capture::Frames::VideoMediaFrameFormat>
    {
        static PyTypeObject* get_python_type() noexcept;
    };
}
