"""
PySide stub files generated by **IceSpringPySideStubs**

Home: https://baijifeilong.github.io/2022/01/06/ice-spring-pyside-stubs/index.html

Github: https://github.com/baijifeilong/IceSpringPySideStubs

PyPI(PySide2): https://pypi.org/project/IceSpringPySideStubs-PySide2

PyPI(PySide6): https://pypi.org/project/IceSpringPySideStubs-PySide6

PyPI(PyQt5): https://pypi.org/project/IceSpringPySideStubs-PyQt5

Generated by BaiJiFeiLong@gmail.com

Licence: GPLv3
"""
"""
This file contains the exact signatures for all functions in module
PySide6.QtMultimedia, except for defaults which are replaced by "...".
"""
from enum import Enum
from typing import List, overload
import PySide6.QtCore
import PySide6.QtGui
import PySide6.QtMultimedia

bytes = str


class QCameraDevice(object):
    """
    https://doc.qt.io/qt-6/qcameradevice.html

    **Detailed Description**

    QCameraDevice represents a physical camera device and its properties.

    You can discover what cameras are available on a system using the
    availableCameras() and defaultCamera() functions. These are contained within
    QtMultimedia::MediaDevices.

    This example prints the name of all available cameras:

    const **QList** <**QCameraDevice** > cameras = **QMediaDevices**
    ::videoInputs();
        for (const **QCameraDevice**  &cameraDevice : cameras)
    **qDebug** () << cameraDevice.description();

    A QCameraDevice can be used to construct a **QCamera** . The following
    example instantiates a **QCamera**  whose camera device is named `mycamera`:

    const **QList** <**QCameraDevice** > cameras = **QMediaDevices**
    ::videoInputs();
        for (const **QCameraDevice**  &cameraDevice : cameras)
    {
            if (cameraDevice.description() == "mycamera")
                camera =
    new **QCamera** (cameraDevice);
        }

    You can also use QCameraDevice to get general information about a camera
    device such as description, physical position on the system, or camera
    sensor orientation.

    **QCamera**  myCamera;
        **QCameraDevice**  cameraDevice =
    camera->cameraDevice();

        if (cameraDevice.position() ==
    **QCameraDevice** ::FrontFace)
            **qDebug** () << "The camera is on
    the front face of the hardware system.";
        else if
    (cameraDevice.position() == **QCameraDevice** ::BackFace)
            **qDebug**
    () << "The camera is on the back face of the hardware system.";
    **qDebug** () << "The camera sensor orientation is " <<
    cameraDevice.orientation() << " degrees.";

    **See also** **QCamera** .
    """

    UnspecifiedPosition: QCameraDevice.Position = ...
    BackFace: QCameraDevice.Position = ...
    FrontFace: QCameraDevice.Position = ...

    class Position(Enum):
        UnspecifiedPosition: QCameraDevice.Position = ...
        BackFace: QCameraDevice.Position = ...
        FrontFace: QCameraDevice.Position = ...

    @overload
    def __init__(self) -> None:
        """
        https://doc.qt.io/qt-6/qcameradevice.html#QCameraDevice

        **QCameraDevice::QCameraDevice()**

        Constructs a null camera device
        """
        ...

    @overload
    def __init__(self, other: PySide6.QtMultimedia.QCameraDevice) -> None:
        """
        https://doc.qt.io/qt-6/qcameradevice.html#QCameraDevice-1

        **QCameraDevice::QCameraDevice(const QCameraDevice & other )**

        Constructs a copy of **other**.
        """
        ...

    @staticmethod
    def __copy__() -> None:
        ...

    def description(self) -> str:
        """
        https://doc.qt.io/qt-6/qcameradevice.html#description

        **QString QCameraDevice::description() const**

        Returns the human-readable description of the camera.

        Use this string to present the device to the user.

        **Note:** Getter function for property description.
        """
        ...

    def id(self) -> PySide6.QtCore.QByteArray:
        """
        https://doc.qt.io/qt-6/qcameradevice.html#id

        **QByteArray QCameraDevice::id() const**

        Returns the device id of the camera

        This is a unique ID to identify the camera and may not be human-
        readable.

        **Note:** Getter function for property id.
        """
        ...

    def isDefault(self) -> bool:
        """
        https://doc.qt.io/qt-6/qcameradevice.html#isDefault

        **bool QCameraDevice::isDefault() const**

        Returns true if this is the default camera device.

        **Note:** Getter function for property isDefault.
        """
        ...

    def isNull(self) -> bool:
        """
        https://doc.qt.io/qt-6/qcameradevice.html#isNull

        **bool QCameraDevice::isNull() const**

        Returns true if this **QCameraDevice**  is null or invalid.
        """
        ...

    def photoResolutions(self) -> List[PySide6.QtCore.QSize]:
        """
        https://doc.qt.io/qt-6/qcameradevice.html#photoResolutions

        **QList<QSize> QCameraDevice::photoResolutions() const**

        Returns a list of resolutions that the camera can use to capture still
        images.

        **See also** **QImageCapture** .
        """
        ...

    def position(self) -> PySide6.QtMultimedia.QCameraDevice.Position:
        """
        https://doc.qt.io/qt-6/qcameradevice.html#position

        **QCameraDevice::Position QCameraDevice::position() const**

        Returns the physical position of the camera on the hardware system.

        **Note:** Getter function for property position.
        """
        ...

    def videoFormats(self) -> List[PySide6.QtMultimedia.QCameraFormat]:
        """
        https://doc.qt.io/qt-6/qcameradevice.html#videoFormats

        **QList<QCameraFormat> QCameraDevice::videoFormats() const**

        Returns the video formats supported by the camera.

        **Note:** Getter function for property videoFormats.
        """
        ...
