# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
"""Client and server classes corresponding to protobuf-defined services."""
import grpc
import warnings

from google.protobuf import empty_pb2 as google_dot_protobuf_dot_empty__pb2
from tast.cros.services.cros.audio import cras_control_service_pb2 as tast_dot_cros_dot_services_dot_cros_dot_audio_dot_cras__control__service__pb2

GRPC_GENERATED_VERSION = '1.71.0'
GRPC_VERSION = grpc.__version__
_version_not_supported = False

try:
    from grpc._utilities import first_version_is_lower
    _version_not_supported = first_version_is_lower(GRPC_VERSION, GRPC_GENERATED_VERSION)
except ImportError:
    _version_not_supported = True

if _version_not_supported:
    raise RuntimeError(
        f'The grpc package installed is at version {GRPC_VERSION},'
        + f' but the generated code in tast/cros/services/cros/audio/cras_control_service_pb2_grpc.py depends on'
        + f' grpcio>={GRPC_GENERATED_VERSION}.'
        + f' Please upgrade your grpc module to grpcio>={GRPC_GENERATED_VERSION}'
        + f' or downgrade your generated code using grpcio-tools<={GRPC_VERSION}.'
    )


class CrasControlServiceStub(object):
    """CrasControlService provides methods for interacting with the cras control
    dbus interface.

    Methods are added on an as-needed basis.
    """

    def __init__(self, channel):
        """Constructor.

        Args:
            channel: A grpc.Channel.
        """
        self.RestartCras = channel.unary_unary(
                '/tast.cros.audio.CrasControlService/RestartCras',
                request_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
                response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                _registered_method=True)
        self.SetForceHfpSwbEnabled = channel.unary_unary(
                '/tast.cros.audio.CrasControlService/SetForceHfpSwbEnabled',
                request_serializer=tast_dot_cros_dot_services_dot_cros_dot_audio_dot_cras__control__service__pb2.SetForceHfpSwbEnabledRequest.SerializeToString,
                response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                _registered_method=True)
        self.GetForceHfpSwbEnabled = channel.unary_unary(
                '/tast.cros.audio.CrasControlService/GetForceHfpSwbEnabled',
                request_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
                response_deserializer=tast_dot_cros_dot_services_dot_cros_dot_audio_dot_cras__control__service__pb2.GetForceHfpSwbEnabledResponse.FromString,
                _registered_method=True)
        self.GetNodes = channel.unary_unary(
                '/tast.cros.audio.CrasControlService/GetNodes',
                request_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
                response_deserializer=tast_dot_cros_dot_services_dot_cros_dot_audio_dot_cras__control__service__pb2.GetNodesResponse.FromString,
                _registered_method=True)
        self.SelectedInputNode = channel.unary_unary(
                '/tast.cros.audio.CrasControlService/SelectedInputNode',
                request_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
                response_deserializer=tast_dot_cros_dot_services_dot_cros_dot_audio_dot_cras__control__service__pb2.SelectedInputNodeResponse.FromString,
                _registered_method=True)
        self.SelectedOutputNode = channel.unary_unary(
                '/tast.cros.audio.CrasControlService/SelectedOutputNode',
                request_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
                response_deserializer=tast_dot_cros_dot_services_dot_cros_dot_audio_dot_cras__control__service__pb2.SelectedOutputNodeResponse.FromString,
                _registered_method=True)
        self.SetActiveInputNode = channel.unary_unary(
                '/tast.cros.audio.CrasControlService/SetActiveInputNode',
                request_serializer=tast_dot_cros_dot_services_dot_cros_dot_audio_dot_cras__control__service__pb2.SetActiveInputNodeRequest.SerializeToString,
                response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                _registered_method=True)
        self.SetActiveOutputNode = channel.unary_unary(
                '/tast.cros.audio.CrasControlService/SetActiveOutputNode',
                request_serializer=tast_dot_cros_dot_services_dot_cros_dot_audio_dot_cras__control__service__pb2.SetActiveOutputNodeRequest.SerializeToString,
                response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                _registered_method=True)


class CrasControlServiceServicer(object):
    """CrasControlService provides methods for interacting with the cras control
    dbus interface.

    Methods are added on an as-needed basis.
    """

    def RestartCras(self, request, context):
        """RestartCras restarts the cras job and waits for it to be back up before
        returning.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def SetForceHfpSwbEnabled(self, request, context):
        """SetForceHfpSwbEnabled sets the state to enable or disable bluetooth HFP
        SWB.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetForceHfpSwbEnabled(self, request, context):
        """GetForceHfpSwbEnabled gets the force_hfp_swb_enabled state.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetNodes(self, request, context):
        """GetNodes returns node information from Cras as returned by GetNodes.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def SelectedInputNode(self, request, context):
        """SelectedInputNode calls GetNodes and returns the active input node.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def SelectedOutputNode(self, request, context):
        """SelectedOutputNode calls GetNodes and returns the active output node.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def SetActiveInputNode(self, request, context):
        """SetActiveInputNode calls SetActiveInputNode with the given node ID.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def SetActiveOutputNode(self, request, context):
        """SetActiveOutputNode calls SetActiveOutputNode with the given node ID.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')


def add_CrasControlServiceServicer_to_server(servicer, server):
    rpc_method_handlers = {
            'RestartCras': grpc.unary_unary_rpc_method_handler(
                    servicer.RestartCras,
                    request_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                    response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
            ),
            'SetForceHfpSwbEnabled': grpc.unary_unary_rpc_method_handler(
                    servicer.SetForceHfpSwbEnabled,
                    request_deserializer=tast_dot_cros_dot_services_dot_cros_dot_audio_dot_cras__control__service__pb2.SetForceHfpSwbEnabledRequest.FromString,
                    response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
            ),
            'GetForceHfpSwbEnabled': grpc.unary_unary_rpc_method_handler(
                    servicer.GetForceHfpSwbEnabled,
                    request_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                    response_serializer=tast_dot_cros_dot_services_dot_cros_dot_audio_dot_cras__control__service__pb2.GetForceHfpSwbEnabledResponse.SerializeToString,
            ),
            'GetNodes': grpc.unary_unary_rpc_method_handler(
                    servicer.GetNodes,
                    request_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                    response_serializer=tast_dot_cros_dot_services_dot_cros_dot_audio_dot_cras__control__service__pb2.GetNodesResponse.SerializeToString,
            ),
            'SelectedInputNode': grpc.unary_unary_rpc_method_handler(
                    servicer.SelectedInputNode,
                    request_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                    response_serializer=tast_dot_cros_dot_services_dot_cros_dot_audio_dot_cras__control__service__pb2.SelectedInputNodeResponse.SerializeToString,
            ),
            'SelectedOutputNode': grpc.unary_unary_rpc_method_handler(
                    servicer.SelectedOutputNode,
                    request_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                    response_serializer=tast_dot_cros_dot_services_dot_cros_dot_audio_dot_cras__control__service__pb2.SelectedOutputNodeResponse.SerializeToString,
            ),
            'SetActiveInputNode': grpc.unary_unary_rpc_method_handler(
                    servicer.SetActiveInputNode,
                    request_deserializer=tast_dot_cros_dot_services_dot_cros_dot_audio_dot_cras__control__service__pb2.SetActiveInputNodeRequest.FromString,
                    response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
            ),
            'SetActiveOutputNode': grpc.unary_unary_rpc_method_handler(
                    servicer.SetActiveOutputNode,
                    request_deserializer=tast_dot_cros_dot_services_dot_cros_dot_audio_dot_cras__control__service__pb2.SetActiveOutputNodeRequest.FromString,
                    response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
            ),
    }
    generic_handler = grpc.method_handlers_generic_handler(
            'tast.cros.audio.CrasControlService', rpc_method_handlers)
    server.add_generic_rpc_handlers((generic_handler,))
    server.add_registered_method_handlers('tast.cros.audio.CrasControlService', rpc_method_handlers)


 # This class is part of an EXPERIMENTAL API.
class CrasControlService(object):
    """CrasControlService provides methods for interacting with the cras control
    dbus interface.

    Methods are added on an as-needed basis.
    """

    @staticmethod
    def RestartCras(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/tast.cros.audio.CrasControlService/RestartCras',
            google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
            google_dot_protobuf_dot_empty__pb2.Empty.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def SetForceHfpSwbEnabled(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/tast.cros.audio.CrasControlService/SetForceHfpSwbEnabled',
            tast_dot_cros_dot_services_dot_cros_dot_audio_dot_cras__control__service__pb2.SetForceHfpSwbEnabledRequest.SerializeToString,
            google_dot_protobuf_dot_empty__pb2.Empty.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def GetForceHfpSwbEnabled(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/tast.cros.audio.CrasControlService/GetForceHfpSwbEnabled',
            google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
            tast_dot_cros_dot_services_dot_cros_dot_audio_dot_cras__control__service__pb2.GetForceHfpSwbEnabledResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def GetNodes(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/tast.cros.audio.CrasControlService/GetNodes',
            google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
            tast_dot_cros_dot_services_dot_cros_dot_audio_dot_cras__control__service__pb2.GetNodesResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def SelectedInputNode(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/tast.cros.audio.CrasControlService/SelectedInputNode',
            google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
            tast_dot_cros_dot_services_dot_cros_dot_audio_dot_cras__control__service__pb2.SelectedInputNodeResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def SelectedOutputNode(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/tast.cros.audio.CrasControlService/SelectedOutputNode',
            google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
            tast_dot_cros_dot_services_dot_cros_dot_audio_dot_cras__control__service__pb2.SelectedOutputNodeResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def SetActiveInputNode(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/tast.cros.audio.CrasControlService/SetActiveInputNode',
            tast_dot_cros_dot_services_dot_cros_dot_audio_dot_cras__control__service__pb2.SetActiveInputNodeRequest.SerializeToString,
            google_dot_protobuf_dot_empty__pb2.Empty.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def SetActiveOutputNode(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/tast.cros.audio.CrasControlService/SetActiveOutputNode',
            tast_dot_cros_dot_services_dot_cros_dot_audio_dot_cras__control__service__pb2.SetActiveOutputNodeRequest.SerializeToString,
            google_dot_protobuf_dot_empty__pb2.Empty.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)
