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

📄 ws_text_op.h~

📁 it is about embeded system
💻 H~
📖 第 1 页 / 共 2 页
字号:
{	switch(web_func)	{	case FLUSH:		do_flush(wsd);		DPRINTF("DO FLUSH!!!\n");		break;	case FORWARD:		do_forward(wsd);		DPRINTF("DO FORWARD!!!\n");		break;	case BACKWARD:		do_backward(wsd);		break;	case FAVOR:		/*如果不是添加网页,进入收藏夹*/		if(!add_favor_web(&wsd->web_data[wsd->website_head]))		{			do_favor(wsd);			DPRINTF("DO FAVORITE!!!\n");			NEED_DOWNLOAD_WEB=1;		}		else		{			//图片 添加成功			ShowBitmap(0,0,BGBMPMAIN);		}				break;	case WEB_SAVE:		do_web_save(wsd);		DPRINTF("DO SAVE!!!\n");		break;	case WEB_ADDR:		do_web_addr(wsd);		DPRINTF("DO WEB_ADDR!!!\n");		break;	case EXIT_BACK:		do_exit_back();		DPRINTF("DO EXIT!!!\n");		break;	default:		/*根据正文类型,进入不同方式*/		switch(can_link_or_enter(wsd))		{		case 1:			DPRINTF("do web link!!\n");					//添加停止语音合成代码#ifdef TTS			T2S_stop();#endif			do_web_link(wsd);			break;		case 2:			DPRINTF("do text enter!!\n");			//添加停止语音合成代码#ifdef TTS			T2S_stop();#endif			do_text_enter(&wsd->web_data[wsd->website_head]);			break;		case 3:			DPRINTF("do blank fill!!\n");			//添加停止语音合成代码#ifdef TTS			T2S_stop();#endif			do_blank_fill(wsd);			break;		//语音提示不可进入		default:#ifdef TTS			T2S_t2s("不可进入");#endif			DPRINTF("no way to link or enter!!\n");		}		break;			}}/*正文向上*/void do_text_up(struct websitedata *wsd){	char temp[1024];	struct Web_Data *wd=&wsd->web_data[wsd->website_head];	/*判断是否有上一个正文,或做成循环,并语音处理*/	if(wd->current->prev!=NULL&&wd->current->prev->tflag<=0)	{		wd->current=wd->current->prev;		//语音输出"wd->current->text"#ifdef TTS		switch(wd->current->tflag)		{		case TEXT_D:			strcpy(temp,wd->current->text);			if(wd->current->child!=NULL)			{				strcat(temp,".可进入");			}			T2S_t2s(temp);			break;		case IP_PORT_D:			get_L_text(temp,wd->current->text);			strcat(temp,".可链接");			T2S_t2s(temp);			break;		case BLANK_D:			T2S_t2s("表单,请双击填写");			break;		}#endif		DPRINTF("%s\n",wd->current->text);	}	else	{		//语音输出"已到达顶部"#ifdef TTS			T2S_t2s("已到达顶部");#endif		DPRINTF("arrived top!!\n");	}}/*正文向下*/void do_text_down(struct websitedata *wsd){	char temp[1024];	struct Web_Data *wd=&wsd->web_data[wsd->website_head];	/*判断是否有下一个正文,或,做成循环,并语音处理*/	if(wd->current->next!=NULL)	{		wd->current=wd->current->next;		//语音输出"wd->current->text"#ifdef TTS	switch(wd->current->tflag)	{	case TEXT_D:		strcpy(temp,wd->current->text);		if(wd->current->child!=NULL)		{			strcat(temp,".可进入");		}		T2S_t2s(temp);		break;	case IP_PORT_D:		get_L_text(temp,wd->current->text);		strcat(temp,".可链接");		T2S_t2s(temp);		break;	case BLANK_D:		T2S_t2s("表单,请双击填写");		break;	}#endif		DPRINTF("%s\n",wd->current->text);	}	else	{		//语音输出"已到达底部"	#ifdef TTS		T2S_t2s("已到达底部");#endif		DPRINTF("arrived button!!\n");	}}/*单击正文*/void do_text_stay(struct websitedata *wsd){	char temp[1024];	struct Web_Data *wd=&wsd->web_data[wsd->website_head];	//printf("website_total=%d\n",wsd->website_total);	web_func=0;	//语音输出当前正文内容#ifdef TTS	DPRINTF("wd->current->tflag=%d",wd->current->tflag);	switch(wd->current->tflag)	{	case TEXT_D:		strcpy(temp,wd->current->text);		if(wd->current->child!=NULL)		{			strcat(temp,".可进入");		}		T2S_t2s(temp);		break;	case IP_PORT_D:		get_L_text(temp,wd->current->text);		strcat(temp,".可链接");		T2S_t2s(temp);		break;	case BLANK_D:		T2S_t2s("表单,请双击填写");		break;	}#endif	DPRINTF("%s\n",wd->current->text);}/*单击处理*/void * web_show_click(void *data){/*web_show的单击处理线程*/	dc=1;	switch(WebShow_InWhichArea(&p1))	{/*添加功能处理代码*/	case FLUSH:		web_func=FLUSH;		//语音输出"刷新"#ifdef TTS		T2S_t2s("刷新");#endif		DPRINTF("FLUSH!!!\n");		break;	case FORWARD:		web_func=FORWARD;		//语音输出"前进"#ifdef TTS		T2S_t2s("前进");#endif		DPRINTF("FORWARD!!!\n");		break;	case BACKWARD:		web_func=BACKWARD;		//语音输出"后退"#ifdef TTS		T2S_t2s("后退");#endif		DPRINTF("BACKWARD!!!\n");		break;	case FAVOR:		web_func=FAVOR;		//语音输出"收藏夹"#ifdef TTS		T2S_t2s("收藏夹");#endif		DPRINTF("FAVORITE!!!\n");		break;	case WEB_SAVE:		web_func=WEB_SAVE;		//语音输出"保存"#ifdef TTS		T2S_t2s("保存");#endif		DPRINTF("SAVE!!!\n");		break;	case WEB_ADDR:		web_func=WEB_ADDR;		//语音输出"输入网址"#ifdef TTS		T2S_t2s("输入网址");#endif		DPRINTF("WEB_ADDR!!!\n");		break;	case EXIT_BACK:		web_func=EXIT_BACK;		//语音输出"退出"#ifdef TTS		T2S_t2s("退出");#endif		DPRINTF("EXIT!!!\n");		//exit(0);		break;	default:		switch(upd_or_downd(&p1,&p2))		{/*添加语音处理网页内容的代码*/		case UP:			do_text_up((struct websitedata *)data);			dc=0;			DPRINTF("do drag up!!!\n");			break;		case DOWN:			do_text_down((struct websitedata *)data);			dc=0;			DPRINTF("do drag down!!!\n");			break;		case STAY:			do_text_stay((struct websitedata *)data);			DPRINTF("clicked once in text area!!\n");			break;		}	}}/*正文操作主函数*/void web_show(struct websitedata *wsd){	pthread_t th_click=-1;	struct timeval t1,t2;  	void * retval;	struct TS_DATE *b=&ts_dat;	int fc=1,pcret,NEED_A_L_WEB=1;	ts_date_init(b);	DPRINTF("%d\n",wsd->web_data[wsd->website_head].text_list_head->next);	//show_wsd(wsd);	//wsd->website_total=10;	//DPRINTF("website_total=%d\n",wsd->website_total);while(OVER_SHOW){	/*load主界面*/	ShowBitmap(0,0,BGBMPMAIN);	/*调用web下载函数*/	DPRINTF("WEB downloading...\n");#ifdef TTS		T2S_option(FEMALE,5,5);#endif		ShowBitmap(240,200,BGBMPDL);	pcret=getHtmlFile(wsd->web_data[wsd->website_head].ip_port);	DPRINTF("pcret=%d\n",pcret);	//sleep(1);	if(pcret==0)	{		printf("connect error!!!\n");		ShowBitmap(160,120,BGBMPCE);#ifdef TTS		T2S_t2s("未链接到服务器,点击左半屏重试,右半屏退出操作");#endif			if(select_favor())//左半屏是,右半屏否		{			continue;		}		else		{			ShowBitmap(0,0,BGBMPMAIN);			/*网页指针指向上一次打开的网页,返回至上一个网页的进入处*/			if(wsd->website_head-1<0)				wsd->website_head=WEBDATASIZE-1;			else wsd->website_head--;			NEED_A_L_WEB=0;		}	}	else if(pcret==-1)	{		ShowBitmap(160,120,BGBMPCE);#ifdef TTS		T2S_t2s("歌曲下载失败,点击左半屏重试,右半屏取消下载");#endif			if(select_favor())//左半屏是,右半屏否		{			continue;		}		else		{			ShowBitmap(0,0,BGBMPMAIN);			/*网页指针指向上一次打开的网页,返回至上一个网页的进入处*/			if(wsd->website_head-1<0)				wsd->website_head=WEBDATASIZE-1;			else wsd->website_head--;			NEED_A_L_WEB=0;		}	}	else if(pcret==2)//mp3	{		//下载mp3等待图片		//开线程放歌		ShowBitmap(0,0,BGBMPMP3);		play_mp3();		ShowBitmap(0,0,BGBMPMAIN);		/*网页指针指向上一次打开的网页,返回至上一个网页的进入处*/		if(wsd->website_head-1<0)			wsd->website_head=WEBDATASIZE-1;		else wsd->website_head--;		NEED_A_L_WEB=0;	}   if(NEED_A_L_WEB)   {	/*下载数据分析*/	DPRINTF("WEB analizing...\n");        htmlparser(wsd->web_data[wsd->website_head].ip_port,		DOWNLOAD_FILE_NAME,		WEB_DATA_FILE_NAME_A);	/*下载的数据装填*/	DPRINTF("WEB LOADING...\n");	web_data_struct_load(&wsd->web_data[wsd->website_head]);				NEED_DOWNLOAD_WEB=0;	ClearBitmap(240,200,BGBMPDL,BGBMPMAIN);   }   NEED_A_L_WEB=1;/*单击,双击,划动的判定*/	   while(OVER_OP){	//show_wsd(wsd);	read(ts_fd,&b->ts_ret,1);	copy_ts_ret(&p1,&b->ts_ret);        if(b->ts_ret.pressure!=0){/*pressure连续出现0,0*/		do{			read(ts_fd,&b->ts_ret,1);		}while(b->ts_ret.pressure);	}	gettimeofday(&t2,NULL);	copy_ts_ret(&p2,&b->ts_ret);		if(fc) {fc=0;goto click1;}		DPRINTF("p2.x=%d,p2.y=%d\n",p2.x,p2.y);	DPRINTF("p4.x=%d,p4.y=%d\n",p4.x,p4.y);	if(dc==1&&IsSmallTime(&t1,&t2)&&IsSmallPosition(&p2,&p4)) 	{		if(th_click>0)		{			pcret=pthread_cancel(th_click);			th_click=-1;//			DPRINTF("pcret=%d\n",pcret);		}		DPRINTF("double click!!\n");		//添加双击代码		do_web_show_double_click(wsd);		dc=0;		if(NEED_DOWNLOAD_WEB)		{			break;		}		continue;	}	DPRINTF("th_click=%d\n",th_click);	if(th_click>0){		pcret=pthread_cancel(th_click);		th_click=-1;//		DPRINTF("pcret=%d\n",pcret);		//添加停止语音合成代码#ifdef TTS		T2S_stop();#endif	}click1:	if(th_click>0)	{			pcret=pthread_cancel(th_click);			th_click=-1;//			DPRINTF("pcret=%d\n",pcret);	}	pthread_create(&th_click, NULL, web_show_click ,(void *)wsd);	copy_time(&t1,&t2);	copy_ts_ret(&p3,&p1);	copy_ts_ret(&p4,&p2);   }}#ifdef TTST2S_t2s("欢迎再次使用");#endif	}/*wsd打印函数,用于DEBUG*/void show_wsd(struct websitedata *wsd){	int i;	DPRINTF("NULL=%d,",NULL);	DPRINTF("wsd->website_head=%d,",wsd->website_head);	DPRINTF("wsd->website_tail=%d,",wsd->website_tail);	DPRINTF("wsd->website_total=%d.\n",wsd->website_total);	for(i=0;i<WEBDATASIZE;i++) 	{		DPRINTF("wsd->web_data[%d].current->child=%d,",i,wsd->web_data[i].current->child);		DPRINTF("wsd->web_data[%d].current->next=%d\n",i,wsd->web_data[i].current->next);	}}void play_mp3(){	int s;	int m;	char c;	char k[5];	int speech_back;   	pid_t result;	      	result=fork();	if(result==-1)	{	  	printf("Wrong for fork!!!\n");	   	exit(1);	}	else if(result==0)	{		//语音#ifdef TTS		T2S_t2s("歌曲下载完毕,开始播放,点屏结束");		stop_t2s("歌曲下载完毕,开始播放,点屏结束");#endif		if(execlp("./madplay","madplay",MP3_NAME,NULL)<0);        		printf("wrong");	  	exit(0);	}	else 	{		left_or_right();		printf("mp3 over\n");         	kill(result,SIGKILL); 	}		printf("return \n");}#endif

⌨️ 快捷键说明

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