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

📄 ws_share_func.h

📁 it is about embeded system
💻 H
字号:
/***************************************************  Copyright(C), 2008 , JUST  File name: ws_share_func.h  Author: StevenZ      Version: 0.9        Date: 080906  Description: 点划式网页浏览器公用函数,刷新和退出功能  History:  	08/07/26 完成公用函数	08/08/06 网页后退,刷新等功能  ***************************************************/#ifndef _WS_SHARE_FUNC_H#define _WS_SHARE_FUNC_H#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <fcntl.h> #include <time.h>#include <errno.h>#include <pthread.h>#include <sys/time.h>#include <sys/types.h>#include <dirent.h>#include <signal.h>/*****************全局变量******************/extern struct TS_DATE ts_dat;/*触摸屏数据*/extern int ts_fd;/*触摸屏文件描述符*/extern int OVER_OP;extern int OVER_SHOW;extern int OVER_FAVOR;extern TS_RET p1,p2,p3,p4;extern volatile int web_func; /*用于保存双击之前单击选中的功能*/extern int NEED_DOWNLOAD_WEB;extern int SELECTED_FAVOR;extern volatile int dc;extern char MP3_NAME[100];/******************************************//*定义语音*///#undef TTS#define TTS #define TEXT_SEP_CHAR '|' //正文相关分隔符#define TS_DEVICE_NAME "/dev/touchscreen/0raw"#define UP	1#define DOWN	2#define STAY	0#define FORWARD	1#define BACKWARD	2#define FAVOR		3#define WEB_SAVE	4#define WEB_ADDR	5#define EXIT_BACK	6#define FLUSH 		7 	#define CONFIRM 	1#define CANCEL		2//#define DEBUG#ifdef DEBUG#define DPRINTF(x...) printf("debug:"##x)#else#define DPRINTF(x...)#endif/*区域判断所需宏*/#define MAXX	3400 #define MAXY	3600#define MINX	240#define MINY	450#define LFA	(MINX+(MAXX-MINX)/6)#define RFA	(MINX+(MAXX-MINX)*5/6)#define MYA     (MINY+(MAXY-MINY)/2)#define TYA	(MINY+(MAXY-MINY)*9/10)#define BYA	(MINY+(MAXY-MINY)/10)#define MXA    	(MINX+(MAXX-MINX)/2)/*双击间隔时间0.5s*/ #define WAIT_TIME_NSEC 500000 /*收藏夹存储有网址的文件名*/#define MY_FAVOR_TXT "./wdt/my_favor.txt"/*网页下载,分析后的文件名*/#define WEB_DATA_FILE_NAME_A "./wdt/web.tmp"#define WEB_SAVE_R  "./web.tmp"/*网页原文件保存名*/#define DOWNLOAD_FILE_NAME "./wdt/getHtml.htm"#define BGBMPFAV  "./res/EE_bg_favor.bmp"#define BGBMPMAIN  "./res/EE_bg.bmp"#define BGBMPFS    "./res/EE_bg_favsel.bmp"#define BGBMPDL   "./res/EE_download.bmp"#define BGBMPSAVE "./res/EE_save.bmp"#define BGBMPCE   "./res/EE_connect_error.bmp"#define BGBMPSB   "./res/EE_submit.bmp"#define BGBMPEND "./res/EE_end.bmp" #define BGBMPIME  "./res/EE_ime.bmp"#define BGBMPWAIT "./res/EE_wait.bmp"#define BGBMPADDW "./res/EE_add_web.bmp"#define BGBMPMP3 "./res/EE_mp3.bmp"#define BGBMPCOVER "./res/EE_cover.bmp"#define BGBMPGIRL "./res/girl.bmp"void ts_open();void ts_close();void copy_ts_ret(TS_RET *t1,TS_RET *t2);int upd_or_downd(TS_RET *t1,TS_RET *t2);int IsSmallTime(struct timeval *t1,struct timeval *t2);int IsSmallPosition(TS_RET *p1,TS_RET *p2);void copy_time(struct timeval *t1,struct timeval *t2);void do_flush(struct websitedata *wsd);void do_exit_back();int left_or_right();void i_to_a(char *a,int i);#define select_favor left_or_right/*打开触摸屏设备*/void ts_open(){	ts_fd=open(TS_DEVICE_NAME,O_RDONLY);	if(ts_fd<0)	{		printf("open device error!!");		exit(1);	}	DPRINTF("ts_fd=%d\n",ts_fd);	ts_date_init(&ts_dat);}/*关闭触摸屏设备*/void ts_close(){	close(ts_fd);}/*触摸屏数据拷贝*/void copy_ts_ret(TS_RET *des,TS_RET *src){	des->pressure=src->pressure;	des->x=src->x;	des->y=src->y;	des->pad=src->pad;}/*判断上划,下划,原位置,分别返回UP,DOWN,STAY*/int upd_or_downd(TS_RET *t1,TS_RET *t2){	if((t1->y-t2->y)<100&&(t1->y-t2->y)>-100)		return STAY;	if(t1->y>t2->y)		return DOWN;	return UP;}/*测试两次单点间隔是否在双点时间内,是返回1,否则返回0*/int IsSmallTime(struct timeval *t1,struct timeval *t2){	if(t2->tv_sec-t1->tv_sec>=2)		return 0;	if(t2->tv_sec-t1->tv_sec==1)	{		if(1000000+t2->tv_usec-t1->tv_usec>WAIT_TIME_NSEC)			return 0;		return 1;	}	if(t2->tv_usec-t1->tv_usec>WAIT_TIME_NSEC)		return 0;	return 1;}/*测试两次单点间隔是否在双点距离内,是返回1,否则返回0*/int IsSmallPosition(TS_RET *p1,TS_RET *p2){	if(p1->x>p2->x)		if(p1->x-p2->x>120) return 0;	if(p1->x<p2->x)		if(p2->x-p1->x>120) return 0;	if(p1->y>p2->y)		if(p1->y-p2->y>100) return 0;	if(p1->y<p2->y)		if(p2->y-p1->y>100) return 0;	return 1;}/*时间的拷贝*/void copy_time(struct timeval *t1,struct timeval *t2){	t1->tv_sec=t2->tv_sec;	t1->tv_usec=t2->tv_usec;} /*[语音识别]或触摸控制判断是否选择左或右,选左返回1,否则返回0*/int left_or_right(){	struct TS_DATE *b=&ts_dat;	ts_date_init(b);	do{		read(ts_fd,&b->ts_ret,1);	}while(b->ts_ret.pressure);	if(b->ts_ret.x<MXA)	{		DPRINTF("use FAVOR...\n");		return 1;	}	return 0;}/*退出浏览器*/void do_exit_back(){	OVER_OP=0;	OVER_SHOW=0;}/*刷新网页*/void do_flush(struct websitedata *wsd){	NEED_DOWNLOAD_WEB=1;}/*整型数(无符号)转字符串,有待改进哈*/void i_to_a(char *a,int i){	int j=0;	char c;	while(i)	{		a[j++]='0'+i%10;		i=i/10;	}	a[j]='\0';	for(i=0;i<j/2;i++)	{		c=a[i];		a[i]=a[j-i-1];		a[j-i-1]=c;	}}#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -