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;
}