📄 main.c
字号:
if(input_state==INPUT_PLAY_START && bool_state==BOOL_STATE_NONE ) { sprintf(promt_text,"%s","stop play"); promt_sel_index=0; promt_show(1); bool_state=BOOL_STATE_SELECT; return; } if(bool_state==BOOL_STATE_SELECT) { bool_state=BOOL_STATE_NONE; promt_show(0); fill_rect(200,400,320,120,15,0); return; } if(input_state==INPUT_MENU) { input_state=INPUT_NORMAL; fill_rect(0,0,720,576,15,0); return; } if(input_state==INPUT_PLAY || input_state==INPUT_CONFIG) { input_state=INPUT_MENU; record_state=RECORD_STOP; fill_rect(0,0,720,576,'a'-'a',0); title_display(); button_show('e'-'a','l'-'a',focus_index); return; } if(input_state == INPUT_CAPTURE && capture_state == 3) { //input_state = INPUT_MENU; capture_state = CAPTURE_CANCLE; fill_rect(0,0,720,576,'a'-'a',0); title_display(); button_show('e'-'a','l'-'a',focus_index); return; }#if 0 if(input_state==INPUT_RECORD) { input_state=INPUT_MENU; record_state=RECORD_STOP; video_encoder_stop(VIDEO_ONLY); fclose(fp); fill_rect(0,0,720,576,'a'-'a',0); title_display(); button_show('e'-'a','l'-'a',focus_index); return; }#endif}void key_record_solve(void){ if(quick_record_state==FALSE) { printf("start record \n\r"); if(input_state == INPUT_PLAY_START) { usleep(500000); video_decoder_stop(VIDEO_ONLY); fclose(fp); replay_state = 5; } if(input_state !=INPUT_NORMAL) { input_state=INPUT_NORMAL; fill_rect(0,0,720,576,15,0); } record_state=RECORD_STOP; quick_record_state=TURE; } else { printf("stop record\n\r"); quick_record_state=FALSE; video_encoder_stop(VIDEO_ONLY); if(!create_state) fclose(fp); fill_rect(0,0,720,576,15,0); }}unsigned char quick_capture_state=FALSE;void key_capture_sovle(void){ if(quick_capture_state==FALSE) { if(input_state == INPUT_PLAY_START) { usleep(500000); video_decoder_stop(VIDEO_ONLY); fclose(fp); replay_state = 5; } if(input_state !=INPUT_NORMAL) { input_state=INPUT_NORMAL; fill_rect(0,0,720,576,15,0); } quick_capture_state=TURE; create_file(); if(!create_state) capture(); quick_capture_state=FALSE; usleep(100000); fill_rect(0,0,720,576,15,0); } /*else { quick_capture_state=FALSE; //video_encoder_stop(VIDEO_ONLY); //video_decoder_stop(VIDEO_ONLY); fill_rect(0,0,720,576,15,0); } */ return;}void key_input_solve(uns8 key_input){ if(input_state==INPUT_RECORD && bool_state ==BOOL_STATE_NONE) { bool_state=BOOL_STATE_SELECT; promt_sel_index=0; promt_show(1); return; } printf("key_input %d\n",key_input); switch(key_input) { case KEY_LEFT_STATE: if(quick_record_state !=TURE) { key_left(); } break; case KEY_RIGHT_STATE: if(quick_record_state !=TURE) { key_right(); } break; case KEY_UP_STATE: if(quick_record_state !=TURE) { key_up(); } break; case KEY_DOWN_STATE: if(quick_record_state !=TURE) { key_down(); } break; case KEY_YES_STATE: if(quick_capture_state==TURE) { quick_capture_state=FALSE; video_encoder_stop(VIDEO_ONLY); } if(quick_record_state !=TURE) { key_yes(); } break; case KEY_NO_STATE: if(quick_record_state !=TURE) { key_no(); } break; case KEY_RECORD_STATE: if(quick_capture_state !=TURE); key_record_solve(); break; case KEY_CAPTURE_STATE: if(quick_record_state !=TURE) { //key_capture_solve(); display_image(520+32,14+16,22,0); //显示抓拍 display_image(520+64,14+16,23,0); key_capture_sovle(); } break; }}/********************************************************************************/// 功能 录像时按时间保存文件//// 2007.12.20// 2008.1.4 修改 无存储介质警报// author:齐晓龙/*******************************************************************************/void create_file(void){ char recorder_tip[]="No Storage medium"; time(&t); tm_t = localtime(&t); printf("the time is %02d :%02d:%02d \n",tm_t->tm_hour,tm_t->tm_min,tm_t->tm_sec); filename[9] = tm_t->tm_hour/10 + 0x30; filename[10] = tm_t->tm_hour%10 + 0x30; filename[11] = tm_t->tm_min/10 + 0x30; filename[12] = tm_t->tm_min%10 + 0x30; filename[13] = tm_t->tm_sec/10 + 0x30; filename[14] = tm_t->tm_sec%10 + 0x30; filename[15] = '.'; if(quick_capture_state == TURE) { filename[16] = 'p'; } else { filename[16] = 'v'; } filename[17] = '\0'; printf("the input state %d\n",input_state); printf("the file bath is %s\n",filename); if((fp = fopen(filename,"w")) == NULL) { printf("Creat file is fail !!! \n"); fill_rect(100,300,500,48,6,0); display_string(200,316,recorder_tip,0); create_state = 1; return 0; }#if 0 if((filename[11] + 3) > 5) { if(filename[9] == 2 && filename[10] == 3) { filename[9] = 0; filename[10] = 0; } else { if(filename[10] == 9) { filename[9] += 1; filename[10] = 0; } else { filename[10] += 1; } } if((fp1 = fopen(filename,"w")) == NULL) { fill_rect(100,300,500,48,6,0); display_string(200,316,recorder_tip,0); create_state = 1; return 0; } }#endif printf("Creat file success !!!\n"); create_state = 0; /*rx_id = RxID(0x04, 0, 0x01, W_FLAG);write_rx_fifo (rx_id); usleep(5); rx_id = 3;write_rx_fifo(rx_id); usleep(5);*/ rx_id = RxID(0x04, 0, 0x15, W_FLAG);write_rx_fifo (rx_id); usleep(5); rx_id = 0;write_rx_fifo (rx_id); usleep(5); /*rx_id = RxID(0x05, 0, 0x25, W_FLAG);write_rx_fifo (rx_id); usleep(50); rx_id = 0;write_rx_fifo (rx_id); usleep(50); rx_id = RxID(0x05, 0, 0x26, W_FLAG);write_rx_fifo (rx_id); usleep(50); rx_id = 0;write_rx_fifo (rx_id); rx_id = 63;write_rx_fifo (rx_id); rx_id = 127;write_rx_fifo (rx_id); rx_id = 255;write_rx_fifo (rx_id); rx_id = 255;write_rx_fifo (rx_id); rx_id = RxID(0x05, 0, 0x27, W_FLAG);write_rx_fifo (rx_id); usleep(50); rx_id = 0;write_rx_fifo (rx_id); usleep(50);*/ //rx_id = RxID(0x05, 0, 0x03, W_FLAG);write_rx_fifo (rx_id); //rx_id = 4;write_rx_fifo (rx_id); //if(input_state == INPUT_CAPTURE) if(quick_capture_state == TURE) { rx_id = RxID(0x05, 0, 0x03, W_FLAG);write_rx_fifo (rx_id); rx_id = 1;write_rx_fifo (rx_id); //JPEG //id_conf = RxID(0x05, 0, 0x04, W_FLAG);write_rx_fifo (id_conf); //id_conf = 0;write_rx_fifo (id_conf); /*FIXEDQ JPEG*/ //id_conf = RxID(0x05, 0, 0x05, W_FLAG);write_rx_fifo (id_conf); //id_conf = 50;write_rx_fifo (id_conf); } else { rx_id = RxID(0x05, 0, 0x03, W_FLAG);write_rx_fifo (rx_id); rx_id = 1;write_rx_fifo (rx_id); //MPEG-4 id_conf = RxID(0x05, 0, 0x04, W_FLAG);write_rx_fifo (id_conf); id_conf = 2;write_rx_fifo (id_conf); /*FIXEDQ JPEG*/ id_conf = RxID(0x05, 0, 0x05, W_FLAG);write_rx_fifo (id_conf); id_conf = 5;write_rx_fifo (id_conf); } usleep(20); video_encoder_start(VIDEO_ONLY); return ; }//unsigned char play_state=0;//#define PLAY_STOP 0X0//#define PLAY_START 0X01//#define PLAY_PAUSE 0X02//char file_to_play[200];//unsigned char record_state=0;//#define RECORD_STOP 0X0//#define RECORD_START 0X1void event_solve(void){ if(quick_record_state==TURE)//if(input_state==INPUT_RECORD ||input_state==INPUT_RECORD_QUICK) { switch(record_state) { case RECORD_STOP: display_image(520+32,14+16,29,0); //显示录像 display_image(520+64,14+16,21,0); record_state=RECORD_START; create_file(); break; case RECORD_START: if(!create_state) kinescope(); //printf("start modify time\n"); break; } return; } if(input_state==INPUT_PLAY_START) { switch(play_state) { case PLAY_STOP: get_file_length(); printf("file:%s\n",file_to_play); play_state=PLAY_START; break; case PLAY_START: replay(); break; case PLAY_PAUSE: break; } return; } if(input_state==INPUT_CAPTURE) { switch(capture_state) { case CAPTURE_NOW : printf("disk format!!!\n"); //getchar(); disk_format(); capture_state = 3; break; case CAPTURE_CANCLE : /*video_encoder_stop(VIDEO_ONLY);*/ input_state = INPUT_MENU; break; } return; }}void u_file_show(void){ FILE *u_file; FILE *l_file; unsigned int line_i; char file_temp[100]; system("ls /mnt/nfs > /tmp/u.txt"); system("cat /tmp/u.txt |wc -l >/tmp/line.txt"); if((u_file = fopen("/tmp/u.txt","r")) == NULL) { printf("open file %s is fail\n","/tmp/u.txt"); return ; } if((l_file = fopen("/tmp/line.txt","r")) == NULL) { printf("open file %s is fail\n","/tmp/u.txt"); return ; } fscanf(l_file,"%d",&line_count); printf("%d\n",line_count); if(line_current >0) { for(line_i=0; line_i<line_current; line_i++) { fscanf(u_file,"%s",file_temp); } } if(line_count-line_current>10) { for(line_i=0; line_i<10; line_i++) { fscanf(u_file,"%s",file_name[line_i]); } printf("%s\n",file_name[line_i]); }else { for(line_i=line_current;line_i<line_count; line_i++) { fscanf(u_file,"%s",file_name[line_i-line_current]); } printf("%s\n",file_name[line_i]); }}#define FILE_BOX_BACK_COLOR 'd'-'a'#define FILE_BOX_SEL_COLOR 'l'-'a'#define FILE_BOX_LEFT 100#define FILE_BOX_TOP 100#define FILE_BOX_WIDTH 500#define FILE_TEXT_HEIGHT 24#define FILE_BOX_HEIGHT 24*10#define FILE_NUM_LEFT FILE_BOX_LEFT+10#define FILE_TEXT_LEFT FILE_NUM_LEFT+80void file_osd_display(void){ unsigned char f_i; unsigned char num_temp[100]; unsigned char show_count; if(line_count-line_current>10) { show_count=10; } else { show_count=line_count-line_current; } fill_rect(FILE_BOX_LEFT,FILE_BOX_TOP,FILE_BOX_WIDTH,FILE_BOX_HEIGHT,0,0); fill_rect(FILE_BOX_LEFT,FILE_BOX_TOP,FILE_BOX_WIDTH,FILE_BOX_HEIGHT,FILE_BOX_BACK_COLOR,0); for(f_i=0;f_i<show_count;f_i++) { if(f_i==line_sel) { fill_rect(FILE_BOX_LEFT, FILE_BOX_TOP+FILE_TEXT_HEIGHT*(line_sel), FILE_BOX_WIDTH, FILE_TEXT_HEIGHT, FILE_BOX_SEL_COLOR,0); } sprintf(num_temp,"%d",line_current+f_i+1); display_string(FILE_NUM_LEFT, FILE_BOX_TOP+FILE_TEXT_HEIGHT*f_i+4, num_temp,0); //printf("display\n"); //printf("%s ",num_temp); sprintf(num_temp,"%s",file_name[f_i]); display_string(FILE_TEXT_LEFT, FILE_BOX_TOP+FILE_TEXT_HEIGHT*f_i+4, num_temp,0); }}/***************************************************************************/// 功能 显示RTC 时间//// 2008.1.7// author: 齐晓龙/**************************************************************************/void time_display(int x,int y){ unsigned long temp; //char *time_str; FILE *ft; //time_str = (char *)malloc(50); system("date -R > /tmp/time.txt"); if((ft = fopen("/tmp/time.txt","r")) == NULL) { printf("open file fail !!!\n"); return ; } fseek(ft,0L,SEEK_END); temp = ftell(ft); fseek(ft,0L,SEEK_SET); fread(time_str,sizeof(char),(temp-7),ft); //printf("%s\n",time_str); display_string (x,y,time_str, 0); fclose(ft); //free(time_str);}/************************************************************************************/// 功能 修改RTC//// 2008.1.10// author:齐晓龙/************************************************************************************/#define MONTH 0x01#define DATE 0x02#define HOUR 0x03#define MINIT 0x04#define YEAR 0x05#if 1void date_set(void){ char date_str[50]="date -s "; char set_year[]="2008"; char set_month[]="01"; char set_date[]="01"; char set_hour[]="08"; char set_miniter[]="00"; char set_state = 0x1; char set_finish = 0; int temp = 0; int trans_flag = 0; fill_rect(0,0,720,576,0,0); fill_rect(245,295,74,26,6,0); display_string(250,300,set_year,0); display_string(330,300,set_month,0); display_string(485,300,set_miniter,0); display_string(380,300,set_date,0); display_string(430,300,set_hour,0); while(!set_finish) { temp = mykey(); switch(set_state) { case 0x01 : if(trans_flag != set_state) { fill_rect(0,0,720,576,0,0); usleep(1000); fill_rect(245,295,74,26,6,0); usleep(50); display_string(250,300,set_year,0); display_string(330,300,set_month,0); display_string(485,300,set_miniter,0); display_string(380,300,set_date,0);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -