code: def set_input_func(self, input_func):
          
          # For selection of sources other names then at receiving sources
          # have to be used
          # AVR-X receiver needs source mapping to set input_func
          if self._receiver_type in [AVR_X.type, AVR_X_2016.type]:
              direct_mapping = False
              try:
                  linp = CHANGE_INPUT_MAPPING[self._input_func_list[input_func]]
              except KeyError:
                  direct_mapping = True
          else:
              direct_mapping = True
          # AVR-nonX receiver and if no mapping was found get parameter for
          # setting input_func directly
          if direct_mapping is True:
              try:
                  linp = self._input_func_list[input_func]
              except KeyError:
                  _LOGGER.error("No mapping for input source %s", input_func)
                  return False
          # Create command URL and send command via HTTP GET
          try:
              if linp in self._favorite_func_list:
                  command_url = self._urls.command_fav_src + linp
              else:
                  command_url = self._urls.command_sel_src + linp
  
              if self.send_get_command(command_url):
                  self._input_func = input_func
                  return True
              else:
                  return False
          except requests.exceptions.RequestException:
              _LOGGER.error("Connection error: input function %s not set.",
                            input_func)
              return False
docs: Set input_func of device.
  
          Valid values depend on the device and should be taken from
          "input_func_list".
          Return "True" on success and "False" on fail.