def do_daemon(argv = None): iro = ir.IRReceiver(ir.REMOTE_MODEL, REMOTE_CONF_FILE ) ledui = led.create_ledui_object(True) main_task = MainTask('main', iro, ledui) main_task.register(0) main_task.start() i = 1 for cls, name in task_class_list: o = cls(name) o.register(i) if i == 1: o.set_current() i += 1 if RUNNING_MODE == constants.RUNNING_MODE_DEBUG: iro = FakeIRReceiver() while True: try: key = iro.read_code(None, 0.010) if key: log.cblog("do_daemon: read key: %s" % key[0]) main_task.put_key(key) task = main_task.get_current_task() if task: if task.is_running(): output = task.get_output() ledui.led_output(*output) else: ledui.led_output(task.name) task.call_callback() except KeyboardInterrupt, e: ledui.stop() break
def get_real_url(self, url): ret = None m = self.proto_fmt.search(url) if m: proto = m.group(1).strip().lower() if proto == 'file': value = m.group(2).strip() exists = False i = 0 while i < 2: if not os.path.exists(value): value = os.path.join(prog_home, value) i += 1 continue else: exists = True break if exists : ret = [] try: for line in sh.sh(value): ## exec the script line = self.remove_newline(line) if line: ret.append( line ) except Exception, e: cblog("get_real_url: exception" + repr(e)) print e else: ret = url
def load_media_driver(): ret = E_NO_ERR if not os.path.exists('/dev/mixer'): exit_code = exec_shell_cmd('modprobe', CUBIEBOARD_MIXER_DRV) if exit_code != 0: msg = "Fail to load mixer driver: ", CUBIEBOARD_MIXER_DRV cblog(msg, 1) ret = E_FAIL_LOAD_MIXER_DRIVER return ret
def handle_key(self, key): if not key: return key_code, key_status = key if key_code in self.key_dict: key_name = self.key_dict[key_code].lower().strip() key = key_name log.cblog("<- key %s pressed. ->" % key_name) if key_name in ir.digital_key: key_name = 'digital' key_handler_name = "handle_" + key_name + "_key" ## find handler in current task, if not found, search it in main task for task in [self.get_current_task(), self]: self._exec_task_handler(task, key_handler_name, key) handler = self._find_key_handler(self, "key_event") if handler: handler(key)
def mount_media_server(srv, media_path, dest_path): ## ping nfs server ret = E_NO_ERR exit_code = exec_shell_cmd('ping', "-c", "2", srv) if exit_code != 0: msg = "Fail to connect media server: ", srv cblog(msg, 1) ret = E_FAIL_CONN_MEDIA_SRV return ret nfs_path = "%s:%s" % (srv, media_path) ## check whether mounted try: if not os.path.exists(dest_path): exit_code = exec_shell_cmd('mkdir', "-p", dest_path) if exit_code != 0: print "Fail to create dest_path ", dest_path ret = E_FAIL_CREATE_DIR return ret except Exception, e: pass
def log(self, msg): print msg cblog(msg)
ret = E_NO_MEDIA_EXPORT pass if exit_code == 0: ## the dest_path has mounted return E_NO_ERR ret = E_NO_ERR count = 0 while count < 2: exit_code = exec_shell_cmd('mount', "-t", "nfs", nfs_path, dest_path) if exit_code == 32: ## rpcbind did not start exit_code = start_rpc_bind() if exit_code != 0: break count += 1 continue if exit_code != 0 and exit_code != 3: ##TODO 3 means nfs server standby msg = "Fail to mount media path: ", srv cblog(msg, 1) ret = E_FAIL_MOUNT_MEDIA_SRV break return ret def load_media_driver(): ret = E_NO_ERR if not os.path.exists('/dev/mixer'): exit_code = exec_shell_cmd('modprobe', CUBIEBOARD_MIXER_DRV) if exit_code != 0: msg = "Fail to load mixer driver: ", CUBIEBOARD_MIXER_DRV cblog(msg, 1) ret = E_FAIL_LOAD_MIXER_DRIVER return ret