int update_player_states(play_para_t *para, int force) { callback_t *cb = ¶->update_state; update_state_fun_t fn; para->state.last_sta = para->state.status; para->state.status = get_player_state(para); if (check_time_interrupt(&cb->callback_old_time, cb->update_interval) || force) { player_info_t state; MEMCPY(&state, ¶->state, sizeof(state)); //if(force == 1) log_print("**[update_state]pid:%d status=%s(last:%s) err=0x%x curtime=%d (ms:%d) fulltime=%d lsttime=%d\n", para->player_id, player_status2str(state.status), player_status2str(state.last_sta), (-state.error_no), state.current_time, state.current_ms, state.full_time, state.last_time); fn = cb->update_statue_callback; if (fn) { fn(para->player_id, &state); } send_event(para, PLAYER_EVENTS_PLAYER_INFO, &state, 0); para->state.error_no = 0; } return 0; }
/* --------------------------------------------------------------------------*/ char *player_value2str(char *key, int value) { if(strcasecmp(key, "status") == 0) return player_status2str((player_status)value); else if(strcasecmp(key, "vformat") == 0) return player_vformat2str((vformat_t)value); else if(strcasecmp(key, "aformat") == 0) return player_aformat2str((aformat_t)value); else return ("INVALID KEYWORDS"); }
int update_player_states(play_para_t *para, int force) { callback_t *cb = ¶->update_state; update_state_fun_t fn; para->state.last_sta = para->state.status; para->state.status = get_player_state(para); if (check_time_interrupt(&cb->callback_old_time, cb->update_interval) || force) { player_info_t state; MEMCPY(&state, ¶->state, sizeof(state)); //if(force == 1) log_print("**[update_state]pid:%d status=%s(tttlast:%s) err=0x%x curtime=%d (ms:%d) fulltime=%d lsttime=%d\n", para->player_id, player_status2str(state.status), player_status2str(state.last_sta), (-state.error_no), state.current_time, state.current_ms, state.full_time, state.last_time); log_print("**[update_state]abuflevel=%.08f vbublevel=%.08f abufrp=%x vbufrp=%x read_end=%d\n", state.audio_bufferlevel, state.video_bufferlevel, para->abuffer.buffer_rp, para->vbuffer.buffer_rp, para->playctrl_info.read_end_flag); fn = cb->update_statue_callback; if (fn) { fn(para->player_id, &state); } send_event(para, PLAYER_EVENTS_PLAYER_INFO, &state, 0); para->state.error_no = 0; player_hwbuflevel_update(para); } return 0; }