⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.c

📁 这个是Linux下的应用程序
💻 C
📖 第 1 页 / 共 4 页
字号:
	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 + -