📄 ws_share_func.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"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 + -