from cmvr.api import common_pb2 as _common_pb2
from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper
from google.protobuf import descriptor as _descriptor
from google.protobuf import message as _message
from collections.abc import Mapping as _Mapping
from typing import ClassVar as _ClassVar, Optional as _Optional, Union as _Union

DESCRIPTOR: _descriptor.FileDescriptor

class AudioData(_message.Message):
    __slots__ = ("data", "sample_rate", "channels", "format", "codec")
    class AudioFormat(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
        __slots__ = ()
        PCM: _ClassVar[AudioData.AudioFormat]
        MP3: _ClassVar[AudioData.AudioFormat]
        AAC: _ClassVar[AudioData.AudioFormat]
        WAV: _ClassVar[AudioData.AudioFormat]
    PCM: AudioData.AudioFormat
    MP3: AudioData.AudioFormat
    AAC: AudioData.AudioFormat
    WAV: AudioData.AudioFormat
    DATA_FIELD_NUMBER: _ClassVar[int]
    SAMPLE_RATE_FIELD_NUMBER: _ClassVar[int]
    CHANNELS_FIELD_NUMBER: _ClassVar[int]
    FORMAT_FIELD_NUMBER: _ClassVar[int]
    CODEC_FIELD_NUMBER: _ClassVar[int]
    data: bytes
    sample_rate: int
    channels: int
    format: AudioData.AudioFormat
    codec: str
    def __init__(self, data: _Optional[bytes] = ..., sample_rate: _Optional[int] = ..., channels: _Optional[int] = ..., format: _Optional[_Union[AudioData.AudioFormat, str]] = ..., codec: _Optional[str] = ...) -> None: ...

class SpeakerState(_message.Message):
    __slots__ = ("is_initialized", "is_running", "is_decoding", "is_paused", "volume", "error_message")
    IS_INITIALIZED_FIELD_NUMBER: _ClassVar[int]
    IS_RUNNING_FIELD_NUMBER: _ClassVar[int]
    IS_DECODING_FIELD_NUMBER: _ClassVar[int]
    IS_PAUSED_FIELD_NUMBER: _ClassVar[int]
    VOLUME_FIELD_NUMBER: _ClassVar[int]
    ERROR_MESSAGE_FIELD_NUMBER: _ClassVar[int]
    is_initialized: bool
    is_running: bool
    is_decoding: bool
    is_paused: bool
    volume: int
    error_message: str
    def __init__(self, is_initialized: _Optional[bool] = ..., is_running: _Optional[bool] = ..., is_decoding: _Optional[bool] = ..., is_paused: _Optional[bool] = ..., volume: _Optional[int] = ..., error_message: _Optional[str] = ...) -> None: ...

class GetSpeakerStateCommand(_message.Message):
    __slots__ = ()
    class Request(_message.Message):
        __slots__ = ("header",)
        HEADER_FIELD_NUMBER: _ClassVar[int]
        header: _common_pb2.CommandHeader.Request
        def __init__(self, header: _Optional[_Union[_common_pb2.CommandHeader.Request, _Mapping]] = ...) -> None: ...
    class Feedback(_message.Message):
        __slots__ = ("header", "state")
        HEADER_FIELD_NUMBER: _ClassVar[int]
        STATE_FIELD_NUMBER: _ClassVar[int]
        header: _common_pb2.CommandHeader.Feedback
        state: SpeakerState
        def __init__(self, header: _Optional[_Union[_common_pb2.CommandHeader.Feedback, _Mapping]] = ..., state: _Optional[_Union[SpeakerState, _Mapping]] = ...) -> None: ...
    def __init__(self) -> None: ...

class PlayAudioCommand(_message.Message):
    __slots__ = ()
    class Request(_message.Message):
        __slots__ = ("header", "audio_path")
        HEADER_FIELD_NUMBER: _ClassVar[int]
        AUDIO_PATH_FIELD_NUMBER: _ClassVar[int]
        header: _common_pb2.CommandHeader.Request
        audio_path: str
        def __init__(self, header: _Optional[_Union[_common_pb2.CommandHeader.Request, _Mapping]] = ..., audio_path: _Optional[str] = ...) -> None: ...
    class Feedback(_message.Message):
        __slots__ = ("header",)
        HEADER_FIELD_NUMBER: _ClassVar[int]
        header: _common_pb2.CommandHeader.Feedback
        def __init__(self, header: _Optional[_Union[_common_pb2.CommandHeader.Feedback, _Mapping]] = ...) -> None: ...
    def __init__(self) -> None: ...

class StopSpeakerCommand(_message.Message):
    __slots__ = ()
    class Request(_message.Message):
        __slots__ = ("header",)
        HEADER_FIELD_NUMBER: _ClassVar[int]
        header: _common_pb2.CommandHeader.Request
        def __init__(self, header: _Optional[_Union[_common_pb2.CommandHeader.Request, _Mapping]] = ...) -> None: ...
    class Feedback(_message.Message):
        __slots__ = ("header",)
        HEADER_FIELD_NUMBER: _ClassVar[int]
        header: _common_pb2.CommandHeader.Feedback
        def __init__(self, header: _Optional[_Union[_common_pb2.CommandHeader.Feedback, _Mapping]] = ...) -> None: ...
    def __init__(self) -> None: ...

class PauseSpeakerCommand(_message.Message):
    __slots__ = ()
    class Request(_message.Message):
        __slots__ = ("header",)
        HEADER_FIELD_NUMBER: _ClassVar[int]
        header: _common_pb2.CommandHeader.Request
        def __init__(self, header: _Optional[_Union[_common_pb2.CommandHeader.Request, _Mapping]] = ...) -> None: ...
    class Feedback(_message.Message):
        __slots__ = ("header",)
        HEADER_FIELD_NUMBER: _ClassVar[int]
        header: _common_pb2.CommandHeader.Feedback
        def __init__(self, header: _Optional[_Union[_common_pb2.CommandHeader.Feedback, _Mapping]] = ...) -> None: ...
    def __init__(self) -> None: ...

class ResumeSpeakerCommand(_message.Message):
    __slots__ = ()
    class Request(_message.Message):
        __slots__ = ("header",)
        HEADER_FIELD_NUMBER: _ClassVar[int]
        header: _common_pb2.CommandHeader.Request
        def __init__(self, header: _Optional[_Union[_common_pb2.CommandHeader.Request, _Mapping]] = ...) -> None: ...
    class Feedback(_message.Message):
        __slots__ = ("header",)
        HEADER_FIELD_NUMBER: _ClassVar[int]
        header: _common_pb2.CommandHeader.Feedback
        def __init__(self, header: _Optional[_Union[_common_pb2.CommandHeader.Feedback, _Mapping]] = ...) -> None: ...
    def __init__(self) -> None: ...

class SetSpeakerVolumeCommand(_message.Message):
    __slots__ = ()
    class Request(_message.Message):
        __slots__ = ("header", "volume")
        HEADER_FIELD_NUMBER: _ClassVar[int]
        VOLUME_FIELD_NUMBER: _ClassVar[int]
        header: _common_pb2.CommandHeader.Request
        volume: int
        def __init__(self, header: _Optional[_Union[_common_pb2.CommandHeader.Request, _Mapping]] = ..., volume: _Optional[int] = ...) -> None: ...
    class Feedback(_message.Message):
        __slots__ = ("header",)
        HEADER_FIELD_NUMBER: _ClassVar[int]
        header: _common_pb2.CommandHeader.Feedback
        def __init__(self, header: _Optional[_Union[_common_pb2.CommandHeader.Feedback, _Mapping]] = ...) -> None: ...
    def __init__(self) -> None: ...

class GetSpeakerVolumeCommand(_message.Message):
    __slots__ = ()
    class Request(_message.Message):
        __slots__ = ("header",)
        HEADER_FIELD_NUMBER: _ClassVar[int]
        header: _common_pb2.CommandHeader.Request
        def __init__(self, header: _Optional[_Union[_common_pb2.CommandHeader.Request, _Mapping]] = ...) -> None: ...
    class Feedback(_message.Message):
        __slots__ = ("header", "volume")
        HEADER_FIELD_NUMBER: _ClassVar[int]
        VOLUME_FIELD_NUMBER: _ClassVar[int]
        header: _common_pb2.CommandHeader.Feedback
        volume: int
        def __init__(self, header: _Optional[_Union[_common_pb2.CommandHeader.Feedback, _Mapping]] = ..., volume: _Optional[int] = ...) -> None: ...
    def __init__(self) -> None: ...
