コード例 #1
0
ファイル: cbplayer.py プロジェクト: netdingo/cbplayer
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
コード例 #2
0
ファイル: netradio.py プロジェクト: netdingo/cbplayer
 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
コード例 #3
0
ファイル: mplayer.py プロジェクト: netdingo/cbplayer
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 
コード例 #4
0
ファイル: cbplayer.py プロジェクト: netdingo/cbplayer
 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)
コード例 #5
0
ファイル: mplayer.py プロジェクト: netdingo/cbplayer
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
コード例 #6
0
ファイル: cbtask.py プロジェクト: netdingo/cbplayer
 def log(self, msg):
     print msg
     cblog(msg)
コード例 #7
0
ファイル: mplayer.py プロジェクト: netdingo/cbplayer
        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