from .iremote import IRemote


class MacroButton(IRemote):
    """A placeholder class in case this interface is being used interchangeably with the Remote API"""

    def __str__(self):
        return f'{type(self).__name__}{self._remote.kind}{self.index}'

    @property
    def identifier(self):
        return f'command.button[{self.index}]'

    @property
    def state(self) -> bool:
        self.logger.warning('button.state commands are not supported over VBAN')

    @state.setter
    def state(self, _):
        self.logger.warning('button.state commands are not supported over VBAN')

    @property
    def stateonly(self) -> bool:
        self.logger.warning('button.stateonly commands are not supported over VBAN')

    @stateonly.setter
    def stateonly(self, v):
        self.logger.warning('button.stateonly commands are not supported over VBAN')

    @property
    def trigger(self) -> bool:
        self.logger.warning('button.trigger commands are not supported over VBAN')

    @trigger.setter
    def trigger(self, _):
        self.logger.warning('button.trigger commands are not supported over VBAN')
