def __turn_off(self): logging.info("ReceiverController __turn_off.") if self.state == ReceiverController.RECEIVER_GRACE_OFF: cec.transmit(cec.CECDEVICE_AUDIOSYSTEM, cec.CEC_OPCODE_USER_CONTROL_PRESSED, b'\x40') self.devices[5].is_on()
def __turn_on(self): logging.info("ReceiverController __turn_on.") cec.transmit(cec.CECDEVICE_AUDIOSYSTEM, cec.CEC_OPCODE_USER_CONTROL_PRESSED, b'\x40') if not self.check_timer.is_alive(): self.check_timer = threading.Timer(45, self.__check_state) self.check_timer.start()
def go_to_home(self): logging.info(f"ReceiverController go_to_home. state: {self.state}") if self.state != ReceiverController.RECEIVER_ON: return cec.transmit(cec.CEC_DEVICE_TYPE_AUDIO_SYSTEM, cec.CEC_OPCODE_USER_CONTROL_PRESSED, b'\x44') time.sleep(4)
def __check_state(self): logging.info(f"ReceiverController __check_state. state: {self.state}") if self.state != ReceiverController.RECEIVER_STARTING: return cec.transmit(cec.CECDEVICE_AUDIOSYSTEM, cec.CEC_OPCODE_USER_CONTROL_PRESSED, b'\x40') self.check_timer = threading.Timer(45, self.__check_state) self.check_timer.start()
def go_to_hdmi_1(self): logging.info(f"ReceiverController go_to_home. state: {self.state}") if self.state != ReceiverController.RECEIVER_ON: return for i in range(0, 4): logging.info(f'Change input button hit [{i}] times') cec.transmit(cec.CEC_DEVICE_TYPE_AUDIO_SYSTEM, cec.CEC_OPCODE_USER_CONTROL_PRESSED, b'\x34') time.sleep(2.8)
def select_source(self, hdmi_source): destination = cec.CECDEVICE_BROADCAST opcode = cec.CEC_OPCODE_ACTIVE_SOURCE cec.transmit(destination, opcode, hdmi_source)
def airplay_off(): cec.transmit(broadcast, 0x82, b'\x20\x00')
def airplay_on(): cec.transmit(broadcast, 0x82, b'\x10\x00')
def stereo_off(): cec.transmit(stereo, 0x44, b'\x6C')
def stereo_on(): cec.transmit(stereo, 0x44, b'\x6D') cec.transmit(stereo, 0x70, b'\x00\x00')
def get_current_power_state(self): self.devices[5].is_on() cec.transmit(cec.CECDEVICE_TV, cec.CEC_OPCODE_GIVE_DEVICE_POWER_STATUS, '')