Mplayer--main.c

5190 ワード

  Mplayer     ,   。
       ,           。   .c     。
   touch.c,play.c,lrc.c,readname.c,readpip.c,key.c。
 
 
/*============================================
//*******    :  Mplayer      ****
//
//************    :2012.11.22************
=============================================*/
#include"main.h"

WIN_HANDLE window[10];
char *title[4];
int fifo_fd[2],lrc_i=0,fd,fifo_cmd;


//      、    、        ==//
WIN_HANDLE windowHZ;
WIN_HANDLE windowLrc;
WIN_HANDLE windowPosition;

/****************************/
//    
//           
//                  
/********************************************************/
//  :     ansi 
//
/********************************************************/
void printHZ(WIN_HANDLE windows,char *p,int x,int y){
	
	TFT_SetColor(windows, COLOR_GREEN);	//        (   )
	set_tft_print_ansi();				//      
	TFT_SetTextPos(windows, x, y);		//              	
	TFT_Print(windows, "%s", p);		//    
	set_tft_print_utf8();
}
/******************************************************/
//  :       utf8 
//
/******************************************************/
void printNAME(WIN_HANDLE windows,char *p,int x,int y){

	TFT_SetColor(windows, COLOR_GREEN);
	set_tft_print_utf8();
	TFT_SetTextPos(windows, x, y);
	TFT_Print(windows, "%s", p);	
	set_tft_print_ansi();
}
/*********************************************************/
//  :           
/*********************************************************/
void printHZ_color(WIN_HANDLE windows,char *p,int x,int y){

	TFT_SetColor(windows, COLOR_WHITE);
	set_tft_print_utf8();
	TFT_SetTextPos(windows, x, y);
	TFT_Print(windows, "%s", p);
	set_tft_print_ansi();	
}

/*=====================================*/
//    :          
//   :init_pic()
/*=====================================*/
void init_pic(){
	int X=20;
	voice_flag=0;
	TFT_Init("/dev/fb0");//     
	//============      ,     ==========//
	windowHZ=TFT_CreateWindowEx(0,0,800,480,COLOR_BLACK);
	TFT_ClearWindow(windowHZ);	
	windowLrc=TFT_CreateWindowEx(400,0,400,480,COLOR_BLACK);
	TFT_ClearWindow(windowLrc);
	windowPosition=TFT_CreateWindowEx(25,88,240,17,COLOR_RED);
	TFT_ClearWindow(windowPosition);
	//=========          ================//
	TFT_File_Picture(windowHZ, 0, 0, "./picture/back.bmp", 1);
	TFT_File_Picture(windowHZ, X, 189, "./picture/1.bmp", 1);
	TFT_File_Picture(windowHZ, X+=49, 189, "./picture/2.bmp", 1);
	TFT_File_Picture(windowHZ, X+=49, 189, "./picture/3.bmp", 1);
	TFT_File_Picture(windowHZ, X+=49, 189, "./picture/4.bmp", 1);
	TFT_File_Picture(windowHZ, X+=49, 189, "./picture/5.bmp", 1);
	TFT_File_Picture(windowHZ, X+=49, 189, "./picture/voice.bmp", 1);
	TFT_File_Picture(windowHZ, X+=49, 189, "./picture/voice3.bmp", 1);
}
int main(void)
{
	pid_t pid;
	int i=0;
	struct dirent *ptr;
	char s[10];
	unlink("fifo_cmd");
	init_pic();		//   
	fifo_cmd=mkfifo("./fifo_cmd",0666);//        
	if(fifo_cmd!=0){
		perror("mkfifo");
	}
	int erro=pipe(fifo_fd);	//      
	if(erro!=0){
		perror("pipe");
		exit(0);
	}
	pid=fork();		//    
	if(pid<0){
		perror("fork");
		exit(0);
	}
	
/*******************   *******************************/
	else if(pid>0){
	
		pthread_t disp_song_lrc,pthread_touch,pthread_read_pip,pthread_read_key;
		//           
		int error_lrc=pthread_create(&disp_song_lrc,NULL,disp_lrc,NULL);
		if(error_lrc!=0){
			perror("pthread_creat_lrc");
			exit(0);
		}
		//         
		int error_pip=pthread_create(&pthread_read_pip,NULL,readpip,NULL);
		if(error_pip!=0){
			perror("pthread_read_pip");
			exit(0);
		}
		//          ;
		int error_touch=pthread_create(&pthread_touch,NULL,touch_screen,NULL);
		if(error_touch!=0){
			perror("pthread_creat_touch");
			exit(0);
		}
		//           
		int error_key=pthread_create(&pthread_read_key,NULL,key,NULL);
		if(error_key!=0){
			perror("pthread_read_key");
			exit(0);
		}
		//       
		pthread_join(disp_song_lrc,NULL);
		pthread_join(pthread_touch,NULL);
		pthread_join(pthread_read_pip,NULL);
		pthread_join(pthread_read_key,NULL);

	}
/**********************   **************************/	
	else {
		play();	//    
	}
	return 0;
}