static PRESULT jumpstep_con_callback(POBJECT_HEAD pObj, VEVENT event, UINT32 param1, UINT32 param2) { PRESULT ret = PROC_PASS; UINT8 unact; UINT32 i; BOOL subt_flag; CONTAINER* cont = (CONTAINER*)pObj; UINT8 id = OSD_GetObjID(pObj); static UINT8 preval; switch(event) { case EVN_PRE_OPEN: preval = sys_data_get_jumpstep(); wincom_open_title((POBJECT_HEAD)&g_win_jumpstep,RS_DVR_JUMP, 0); win_jumpstep_set_string(preval); break; case EVN_POST_OPEN: break; case EVN_PRE_CLOSE: *((UINT32 *)param2) &= ~C_CLOSE_CLRBACK_FLG; if(preval != sys_data_get_jumpstep()) { sys_data_save(1); } break; case EVN_POST_CLOSE: break; case EVN_MSG_GOT: #ifdef DISK_MANAGER_SUPPORT if (param1 == CTRL_MSG_SUBTYPE_CMD_STO && param2 == USB_STATUS_OVER) { // if disk used by PVR detached, exit this menu extern pvr_play_rec_t pvr_info; if (!pvr_info.hdd_valid) { ret = PROC_LEAVE; } } #endif break; default: break; } return ret; }
static PRESULT jumpstep_item_con_callback(POBJECT_HEAD pObj, VEVENT event, UINT32 param1, UINT32 param2) { PRESULT ret = PROC_PASS; UINT8 unact, input; UINT8 id = OSD_GetObjID(pObj); switch(event) { case EVN_FOCUS_PRE_GET: break; case EVN_FOCUS_PRE_LOSE: break; case EVN_UNKNOWN_ACTION: unact = (VACTION)(param1>>16) ; input = sys_data_get_jumpstep(); if(unact == VACT_INCREASE) { input = (input+1)%5; } else if(unact == VACT_DECREASE) { if(!input) input = 5; input = (input-1)%5; } sys_data_set_jumpstep(input); win_jumpstep_set_string(input); OSD_TrackObject(pObj,C_UPDATE_ALL); ret = PROC_LOOP; break; } return ret; }
void win_pvr_setting_right_key(POBJECT_HEAD pObj,UINT8 id) { SYSTEM_DATA* p_sys_data=sys_data_get(); UINT8 input; struct dvr_HDD_info hdd_info; switch(id) { case MENU_PVR_SETTING_TIMESHIFT: sys_data_set_tms(!sys_data_get_tms()); win_pvr_setting_timeshift_set_string(sys_data_get_tms()); OSD_TrackObject(pObj,C_UPDATE_ALL); if (sys_data_get_tms()) { api_pvr_adjust_tms_space(); if (pvr_get_HDD_info(&hdd_info) && (hdd_info.tms_size == 0)) { pvr_set_tms_size(hdd_info.free_size); // set free space to tms pvr_get_HDD_info(&hdd_info); } } else { pvr_set_tms_size(0); pvr_get_HDD_info(&hdd_info); } api_pvr_check_level(&hdd_info); break; case MENU_PVR_SETTING_JUMP: input = sys_data_get_jumpstep(); input = (input+1)%5; sys_data_set_jumpstep(input); win_pvr_setting_jumpstep_set_string(input); OSD_TrackObject(pObj,C_UPDATE_ALL); break; case MENU_PVR_SETTING_SCRAMBLE_MODE: input = sys_data_get_scramble_record_mode(); input = !input; sys_data_set_scramble_record_mode(input); pvr_r_set_scramble_ext(!input); win_pvr_setting_scramble_record_mode_set_string(input); OSD_TrackObject(pObj,C_UPDATE_ALL); break; case MENU_PVR_SETTING_TS_FILE_SIZE: input = sys_data_get_record_ts_file_size(); input = (input+1)%4; sys_data_set_record_ts_file_size(input); win_pvr_setting_ts_file_size_set_string(input); OSD_TrackObject(pObj,C_UPDATE_ALL); break; case MENU_PVR_SETTING_TMS_2_REC: sys_data_set_tms2rec(!sys_data_get_tms2rec()); win_pvr_setting_tms2rec_set_string(sys_data_get_tms2rec()); OSD_TrackObject(pObj,C_UPDATE_ALL); break; case MENU_PVR_SETTING_TTX_SUBT: input = sys_data_get_record_ttx_subt(); input = !input; sys_data_set_record_ttx_subt(input); win_pvr_setting_ttx_subt_set_string(input); OSD_TrackObject(pObj,C_UPDATE_ALL); break; case MENU_PVR_SETTING_REC_NUM: sys_data_set_rec_num(3 - sys_data_get_rec_num()); win_pvr_setting_rec_num_set_string(sys_data_get_rec_num()); OSD_TrackObject(pObj,C_UPDATE_ALL); break; case MENU_PVR_SETTING_REC_PS: sys_data_set_rec_ps(!sys_data_get_rec_ps()); win_pvr_setting_record_ps_set_string(sys_data_get_rec_ps()); OSD_TrackObject(pObj,C_UPDATE_ALL); break; default: break; } }