"""
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

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

Generated by BaiJiFeiLong@gmail.com

License: MIT
"""
import typing
import PyQt6.sip
from PyQt6 import QtCore
from PyQt6.QtMultimedia import *


class QAudioInput(QtCore.QObject):
    """
    https://doc.qt.io/qt-6/qaudioinput.html

    **Detailed Description**

    This class represents an input channel that can be used together with
    **QMediaCaptureSession** . It enables the selection of the physical input
    device to be used, muting the channel, and changing the channel's volume.
    """

    @typing.overload
    def __init__(
        self, deviceInfo: QAudioDevice, parent: typing.Optional[QtCore.QObject] = ...
    ) -> None:
        ...

    @typing.overload
    def __init__(self, parent: typing.Optional[QtCore.QObject] = ...) -> None:
        ...

    def setVolume(self, volume: float) -> None:
        ...

    def setMuted(self, muted: bool) -> None:
        """
        https://doc.qt.io/qt-6/qaudioinput.html#muted-prop

        **muted : bool**

        This property holds the muted state of the current media.

        The value will be `true` if the input is muted; otherwise `false`.

        **Access functions:**

        bool **isMuted** () const
        void **setMuted** (bool **muted** )

        **Notifier signal:**

        void **mutedChanged** (bool **muted** )
        """
        ...

    def setDevice(self, device: QAudioDevice) -> None:
        """
        https://doc.qt.io/qt-6/qaudioinput.html#device-prop

        **device : QAudioDevice**

        This property holds the audio device connected to this input.

        The device property represents the audio device connected to this input.
        This property can be used to select an input device from the
        **QMediaDevices::audioInputs** () list.

        You can select the system default audio input by setting this property
        to a default constructed **QAudioDevice**  object.

        **Access functions:**

        QAudioDevice **device** () const
        void **setDevice** (const
        QAudioDevice & **device** )

        **Notifier signal:**

        void **deviceChanged** ()
        """
        ...

    def isMuted(self) -> bool:
        ...

    def volume(self) -> float:
        ...

    def device(self) -> QAudioDevice:
        """
        https://doc.qt.io/qt-6/qaudioinput.html#device-prop

        **device : QAudioDevice**

        This property holds the audio device connected to this input.

        The device property represents the audio device connected to this input.
        This property can be used to select an input device from the
        **QMediaDevices::audioInputs** () list.

        You can select the system default audio input by setting this property
        to a default constructed **QAudioDevice**  object.

        **Access functions:**

        QAudioDevice **device** () const
        void **setDevice** (const
        QAudioDevice & **device** )

        **Notifier signal:**

        void **deviceChanged** ()
        """
        ...

    @property
    def deviceChanged(self) -> PyQt6.QtCore.pyqtBoundSignal:
        ...

    @property
    def mutedChanged(self) -> PyQt6.QtCore.pyqtBoundSignal:
        ...

    @property
    def volumeChanged(self) -> PyQt6.QtCore.pyqtBoundSignal:
        ...
