📄 pthread_setup.c
字号:
}RETURN setup_password(SETUP_OBJECT *pso){ UNS16 ii, jj; S8 temp[8]; PTHREAD_BUF signal; MENU_FONT_t *mft; /* numeric table list for key input */ UNS16 key_table_list[] = { NUMBER0,NUMBER1,NUMBER2,NUMBER3,NUMBER4,NUMBER5,NUMBER6,NUMBER7,NUMBER8,NUMBER9}; S32 num_end; static S32 num_start; static UNS16 in_passwd; BOOL pass = FALSE; mft = setup_menu_font[pso->cur_id]; /* maximum password digit */ num_end = 4; switch (pso->sig_value) { case NUMBER0: case NUMBER1: case NUMBER2: case NUMBER3: case NUMBER4: case NUMBER5: case NUMBER6: case NUMBER7: case NUMBER8: case NUMBER9: for(ii=0; ii < 10; ii++) if(key_table_list[ii] == pso->sig_value) break; /* store password */ in_passwd |= (ii << (12 - 4 * num_start)); mft[pso->cur_loc].str[0] = '*'; num_start++; if(num_start >= num_end) { num_start = 0; if (pso->cur_loc == 5) { /* system password compare */ pso->cur_loc = setup_menu_active[pso->cur_id].start; if(pso->param->sys.password[0].value == in_passwd) { /* valid password ( only user 1 password ) */ pso->cur_id = SETUP_MAIN; pso->next_id = SETUP_GLOBAL_PARAM; pso->create_menu = 1; pass = TRUE; } for(jj=0; jj < num_end; jj++) { mft[pso->cur_loc + jj].str[0] = '-'; pso->osd_loc = pso->cur_loc+ jj; mft[pso->osd_loc].color = WHITE; mft[pso->osd_loc].attribute = NORMAL; setup_update_osd(pso); } in_passwd = 0; if(pass) return SUCCESS; } } pso->osd_loc = pso->cur_loc; mft[pso->osd_loc].color = YELLOW; mft[pso->osd_loc].attribute = BLINK; setup_update_osd(pso); if(num_start) pso->cur_loc++; break; case SUB_MINUS : in_passwd = 0; num_start = 0; /* restore menu table value */ for(ii=0; ii < num_end; ii++) { mft[2 + ii].str[0] = '-'; mft[2 + ii].color = WHITE; mft[2 + ii].attribute = NORMAL; } /* display on live monitoring */ signal.start_id = PTHREAD_SETUP; signal.m_value = SIGNAL_0; if (pthread_send_signal(&signal, PTHREAD_LIVE) == FALSE) { m_ERROR("pthread_setup.c:error: In function 'pthread_send_signal'\n"); } return ENDING; default : break; } return SUCCESS;}RETURN setup_main(SETUP_OBJECT *pso){ UNS16 ii; PTHREAD_BUF signal; MENU_FONT_t *mft; MENU_ACTIVE_ITEM_t *location_cur; switch (pso->sig_value) { case UP : if (pso->cur_loc >= 2) { setup_select_menu(pso, -1); } break; case DOWN : if (pso->cur_loc <= 2) { setup_select_menu(pso, 1); } break; case SEL : if (pso->cur_loc == 1) { pso->next_id = SETUP_GLOBAL_PARAM; } else if (pso->cur_loc == 2) { pso->next_id = SETUP_ENCODER_PARAM; } else if (pso->cur_loc == 3) { pso->next_id = SETUP_SYSTEM_PARAM; } location_cur = &setup_menu_active[pso->cur_id]; location_cur->start = pso->cur_loc; pso->cur_id = pso->next_id; pso->prev_id = pso->cur_id; pso->create_menu = 1; break; case SUB_MINUS : /* return to start position */ location_cur = &setup_menu_active[pso->cur_id]; location_cur->start = 1; /* display on live monitoring */ signal.start_id = PTHREAD_SETUP; signal.m_value = SIGNAL_0; if (pthread_send_signal(&signal, PTHREAD_LIVE) == FALSE) { m_ERROR("pthread_setup.c:error: In function 'pthread_send_signal'\n"); } return ENDING; default : break; } return SUCCESS;}RETURN setup_global_param(SETUP_OBJECT *pso){ UNS16 ii; UNS16 start, end; S8 temp[8]; MENU_FONT_t *mft; MENU_ACTIVE_ITEM_t *location_cur; switch (pso->sig_value) { case UP : if (pso->cur_loc >= 4) { setup_select_menu(pso, -1); } break; case DOWN : if (pso->cur_loc <= 2) { setup_select_menu(pso, 1); } break; case SEL : /* * video format value * 0 : NTSC * 1 : PAL * resolution * 0 : 720 x 480(576) * 1 : 360 x 240(288) */ mft = setup_menu_font[pso->cur_id]; if (pso->cur_loc == 2) { bitmap_block_realign(pso, pso->param->gp.resolution, D1); pso->param->gp.resolution = D1; start = 3; end = 5; } else if (pso->cur_loc == 4) { bitmap_block_realign(pso, pso->param->gp.resolution, CIF); pso->param->gp.resolution = CIF; start = 3; end = 5; } for (ii = start; ii <= end; ii = ii + 2) { pso->osd_loc = ii; strcpy(mft[ii].str, "$"); mft[ii].color = WHITE; mft[ii].attribute = NORMAL; setup_update_osd(pso); } pso->osd_loc = pso->cur_loc + 1; strcpy(mft[pso->osd_loc].str, "#"); mft[pso->osd_loc].color = WHITE; mft[pso->osd_loc].attribute = NORMAL; setup_update_osd(pso); break; case SUB_MINUS : /* return to start position */ save_global_param(pso->param); save_enc_param(pso->param); location_cur = &setup_menu_active[pso->cur_id]; location_cur->start = 2; pso->cur_id = SETUP_MAIN; pso->next_id = SETUP_GLOBAL_PARAM; pso->create_menu = 1; break; default : break; } return SUCCESS;}RETURN setup_encoder_param(SETUP_OBJECT *pso){ UNS16 ii, kk; UNS16 start, end; S32 total_frame; S32 max_frame; S8 temp[8]; MENU_FONT_t *mft; PTHREAD_BUF signal; MENU_ACTIVE_ITEM_t *location_cur; mft = setup_menu_font[pso->cur_id]; switch (pso->sig_value) { case UP : if (pso->cur_loc >= VALUE_FR_CH1 && pso->cur_loc <= VALUE_FR_CH4) { setup_select_menu(pso, -5); } else if (pso->cur_loc >= VALUE_BRQ_CH1 && pso->cur_loc <= VALUE_BRQ_CH4) { setup_select_menu(pso, -5); // pentamicro 2006.01.11 } else if (pso->cur_loc == VALUE_WM_SET) { setup_select_menu(pso, -5); } else if (pso->cur_loc == VALUE_MD_SET) { setup_select_menu(pso, -2); } else if (pso->cur_loc == VALUE_SIOS_SET) { setup_select_menu(pso, -2); } else if (pso->cur_loc >= VALUE_SF_CH1 && pso->cur_loc <= VALUE_SF_CH4) { setup_select_menu(pso, -3+(-(pso->cur_loc-VALUE_SF_CH1))); } else if (pso->cur_loc >= VALUE_SS_CH1 && pso->cur_loc <= VALUE_SS_CH4) { setup_select_menu(pso, -5); } break; case DOWN : if (pso->cur_loc >= VALUE_CRF_CH1 && pso->cur_loc <= VALUE_CRF_CH4) { setup_select_menu(pso, 5); } else if (pso->cur_loc >= VALUE_FR_CH1 && pso->cur_loc <= VALUE_FR_CH4) { setup_select_menu(pso, 5); } else if (pso->cur_loc >= VALUE_BRQ_CH1 && pso->cur_loc <= VALUE_BRQ_CH4) {// pentamicro 2006.01.11 setup_select_menu(pso, 5 - (pso->cur_loc-VALUE_BRQ_CH1)); } else if (pso->cur_loc == VALUE_WM_SET) { setup_select_menu(pso, 2); } else if (pso->cur_loc == VALUE_MD_SET) { setup_select_menu(pso, 2); } else if (pso->cur_loc == VALUE_SIOS_SET) { setup_select_menu(pso, 3); } else if (pso->cur_loc >= VALUE_SF_CH1 && pso->cur_loc <= VALUE_SF_CH4) { setup_select_menu(pso, 5); } break; case LEFT : if (pso->cur_loc >= VALUE_CRF_CH1+1 && pso->cur_loc <= VALUE_CRF_CH4) { setup_select_menu(pso, -1); } else if (pso->cur_loc >= VALUE_FR_CH1+1 && pso->cur_loc <= VALUE_FR_CH4) { setup_select_menu(pso, -1); } else if (pso->cur_loc >= VALUE_BRQ_CH1+1 && pso->cur_loc <= VALUE_BRQ_CH4) { setup_select_menu(pso, -1); } else if (pso->cur_loc >= VALUE_SF_CH1+1 && pso->cur_loc <= VALUE_SF_CH4) { setup_select_menu(pso, -1); } else if (pso->cur_loc >= VALUE_SS_CH1+1 && pso->cur_loc <= VALUE_SS_CH4) { setup_select_menu(pso, -1); } break; case RIGHT : if (pso->cur_loc >= VALUE_CRF_CH1 && pso->cur_loc <= VALUE_CRF_CH4-1) { setup_select_menu(pso, 1); } else if (pso->cur_loc >= VALUE_FR_CH1 && pso->cur_loc <= VALUE_FR_CH4-1) { setup_select_menu(pso, 1); } else if (pso->cur_loc >= VALUE_BRQ_CH1 && pso->cur_loc <= VALUE_BRQ_CH4-1) { setup_select_menu(pso, 1); } else if (pso->cur_loc >= VALUE_SF_CH1 && pso->cur_loc <= VALUE_SF_CH4-1) { setup_select_menu(pso, 1); } else if (pso->cur_loc >= VALUE_SS_CH1 && pso->cur_loc <= VALUE_SS_CH4-1) { setup_select_menu(pso, 1); } break; case NUM_PLUS : if (pso->cur_loc >= VALUE_FR_CH1 && pso->cur_loc <= VALUE_FR_CH4) { pso->cur_ch = pso->cur_loc - VALUE_FR_CH1; total_frame = 0; for (ii = 0; ii < MAX_CH_NUM; ii++) { if(pso->param->enc_ch[ii].flag_conti_rec) total_frame += fps_list[pso->param->enc_ch[ii].frame_rate]; } if (pso->param->gp.resolution == D1) { if(pso->param->gp.video_form == NTSC) max_frame = 30; else max_frame = 25; } else { if(pso->param->gp.video_form == NTSC) max_frame = 120; else max_frame = 100; } if (total_frame < max_frame) { if(pso->param->gp.video_form == NTSC) { if (fps_list[pso->param->enc_ch[pso->cur_ch].frame_rate] < 30) { pso->param->enc_ch[pso->cur_ch].frame_rate++; } } else { if (fps_list[pso->param->enc_ch[pso->cur_ch].frame_rate] < 25) { pso->param->enc_ch[pso->cur_ch].frame_rate++; } } sprintf(temp, "%2d", fps_list[pso->param->enc_ch[pso->cur_ch].frame_rate]); strcpy(mft[pso->cur_loc].str, temp); pso->osd_loc = pso->cur_loc; mft[pso->osd_loc].color = YELLOW; mft[pso->osd_loc].attribute = BLINK; setup_update_osd(pso); } } break; case NUM_MINUS : if (pso->cur_loc >= VALUE_FR_CH1 && pso->cur_loc <= VALUE_FR_CH4) { pso->cur_ch = pso->cur_loc - VALUE_FR_CH1; if (fps_list[pso->param->enc_ch[pso->cur_ch].frame_rate] > 0) { pso->param->enc_ch[pso->cur_ch].frame_rate--; } sprintf(temp, "%2d", fps_list[pso->param->enc_ch[pso->cur_ch].frame_rate]); strcpy(mft[pso->cur_loc].str, temp); pso->osd_loc = pso->cur_loc; mft[pso->osd_loc].color = YELLOW; mft[pso->osd_loc].attribute = BLINK; setup_update_osd(pso); } break; case SEL : /* * frame rate * 0 ~ 30 * bit rate value * 0 : CBR * 1 : VBR * Quality * CBR : 0 ~ 1000 KByte/Frame * VBR : 1 ~ 32 * GOP Structure * N/M : 1 ~ * M : 1 ~ */ if (pso->cur_loc >= VALUE_CRF_CH1 && pso->cur_loc <= VALUE_CRF_CH4) { pso->cur_ch = pso->cur_loc - VALUE_CRF_CH1; if (pso->param->enc_ch[pso->cur_ch].flag_conti_rec) { pso->param->enc_ch[pso->cur_ch].flag_conti_rec = 0; strcpy(mft[pso->cur_loc].str, "Off"); } else { pso->param->enc_ch[pso->cur_ch].flag_conti_rec = 1; strcpy(mft[pso->cur_loc].str, " On"); } pso->osd_loc = pso->cur_loc; mft[pso->osd_loc].color = YELLOW; mft[pso->osd_loc].attribute = BLINK; setup_update_osd(pso); } else if (pso->cur_loc >= VALUE_BRQ_CH1 && pso->cur_loc <= VALUE_BRQ_CH4) { pso->cur_ch = pso->cur_loc - VALUE_BRQ_CH1; if (pso->param->enc_ch[pso->cur_ch].cbr_q >= 4) { pso->param->enc_ch[pso->cur_ch].cbr_q = 0; } else { pso->param->enc_ch[pso->cur_ch].cbr_q++; } sprintf(temp, "%s", bitrate_quality[pso->param->enc_ch[pso->cur_ch].cbr_q]); strcpy(mft[pso->cur_loc].str, temp); pso->osd_loc = pso->cur_loc; mft[pso->osd_loc].color = YELLOW; mft[pso->osd_loc].attribute = BLINK; setup_update_osd(pso); // pentamicro 2006.01.11 } else if (pso->cur_loc == VALUE_WM_SET) { mft = setup_menu_font[SETUP_WATERMARK_SETUP]; sprintf(temp, "%s", (pso->param->enc_attr.wm.flag_wm&0x01)? " On": "Off");
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -