Mplayer--readpip.c

读取无名管道的函数

/*******************************************/
//函数功能:读取管道,获得管道输出内容,查找到有用信息并保存起来
//参数:void
//返回值:void
/********************************************/

#include"main.h"

char time_temp[255];
char *name_cmd;
char name_temp[255];
char position[255];

void the_next_song(){//检测是否到了歌曲的最后,到最后切歌
	
	if(atoi(position)==98){
		int fp_lrc=open("./fifo_cmd",O_WRONLY);
		N++;
		SONGNAME *namecmd;
		if(N>10)N=0;//检错			
		char p[255]="loadfile ";
		namecmd=readsongname();//读取歌曲名
		while(namecmd!=NULL){
			if(namecmd->num==N){
				strcat(p,namecmd->songname);
				disp_song_name(namecmd);//歌曲名字显示
				break;
			}
			namecmd=namecmd->next;
		}
		strcat(p,"\n");
		write(fp_lrc,p,strlen(p));
		TFT_File_Picture(windowLrc, 25, 106, "./picture/title.bmp", 1);
		TFT_File_Picture(windowLrc, 216, 189, "./picture/5.bmp", 1);
	}
}
/*===============读取管道函数==================*/
void *readpip(){
	char str[4096],ptr[4096],*p,*temp;
	
	while(1){
		while(1){
			bzero(str,sizeof(str));
			read(fifo_fd[0],str,sizeof(str));
			p=str;
			while(*p!='\0'){
				char *a = NULL;
				if((temp=strstr(p,"ANS_TIME_POSITION="))!=NULL){//时间
					p=temp+18;
					a = strstr(temp,"\n");
					*a = '\0';
					strcpy(time_temp,p);
					p=a;
				}
				else if((temp=strstr(p,"ANS_PERCENT_POSITION="))!=NULL){//进度
					p=temp+21;
					a = strstr(temp,"\n");
					*a = '\0';
					strcpy(position,p);
					//填充进度条,画矩形
					TFT_Rectangle(windowHZ,25,88,264,103,PAINT_HOLLOW);
					TFT_File_Picture(windowHZ, 25, 88, "./picture/jindu.bmp", 1);
					TFT_Rectangle(windowHZ,25,88,atoi(position)*2+25,103,PAINT_SOLID);
					TFT_Rectangle(windowHZ,atoi(position)*2+25,105,264,103,PAINT_SOLID);						
					p=a;
					the_next_song();
					
					
				}
				else if((temp=strstr(p,"ANS_FILENAME="))!=NULL){//歌名
					p=temp+13;
					a = strstr(temp,"\n");
					*a = '\0';
					strcpy(name_temp,p);
					p = a;
				}
				else if((temp=strstr(p,"Year:"))!=NULL){//年份
					p=temp+5;
					a = strstr(temp,"\n");
					*a = '\0';
					printHZ(windowHZ,p,35,136);
					p = a;
				}
				else if((temp=strstr(p,"Artist:"))!=NULL){//艺术家名
					p=temp+7;
					a = strstr(temp,"\n");
					*a = '\0';
				}
				else if((temp=strstr(p,"Title:"))!=NULL){//歌曲头
					p=temp+6;
					a = strstr(temp,"\n");
					*a = '\0';
					printHZ(windowHZ,p,18,120);
				}
				p++;
			}
		}
	}
}


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值