freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于arm9的流媒體播放器的設(shè)計(jì)課程設(shè)計(jì)-資料下載頁

2025-06-28 01:31本頁面
  

【正文】 mem_id, IPC_RMID, NULL) == 1) perror(Failed to remove memory segment)。 exit(EXIT_FAILURE)。 } /* 將ID和文件名信息存入共享內(nèi)存 */ share_para = (struct share *)shmadd。 strcpy(share_paraname_tmp, node_tmps_name)。 share_paraid_tmp = getpid()。 if(execlp(/media/mplayer,mplayer,node_tmps_name,NULL)0) perror(execlp )。 } else wait(NULL)。 }}//開始播放void start_play(int mem_id,pnode head){ printf(\nk1 down start\n)。 play_flags=1。 id_test = fork()。 //創(chuàng)建子進(jìn)程用于播放文件 //該子進(jìn)程控制循環(huán)播放,當(dāng)文件播放完成后,創(chuàng)建一個(gè)新的孫子進(jìn)程來播放 if(id_test == 0){ play(mem_id,head)。 } else if(id_test 0){ }}//暫停播放void pause_play(pid_t pid_tmp){ play_flags=0。 printf(\nkey1 down, pause\n)。 kill(pid_tmp, SIGSTOP)。}//繼續(xù)播放void continue_play(pid_t pid_tmp){ play_flags=1。 printf(\nk1 down, continue\n)。 kill(pid_tmp,SIGCONT)。}//播放下一文件void next_play(struct share *share_tmp,int mem_id,pnode head){ pnode node_tmp。 play_flags=1。 printf(\nk4 down next\n)。/* kill 原來的子進(jìn)程和孫子進(jìn)程 */ kill(share_tmpid_tmp,SIGKILL)。 kill(id_test,SIGKILL)。 // strcpy(next_name, share_tmpname_tmp)。/* 獲取原孫子進(jìn)程文件名在鏈表中的位置 */ node_tmp = search_list(head,share_tmpname_tmp)。 if(node_tmp == NULL){ printf(only one file \n)。 } else{/* 節(jié)點(diǎn)后移一位 */ node_tmp = node_tmpnext。 } id_test = fork()。 if(id_test == 0){ play(mem_id,node_tmp)。 } else if(id_test 0){ }}//播放上一文件void pre_play(struct share *share_tmp,int mem_id,pnode head){ pnode node_tmp。 play_flags=1。 printf(\nkey3 down prev\n)。 kill(share_tmpid_tmp,SIGKILL)。 kill(id_test,SIGKILL)。 node_tmp = search_list(head,share_tmpname_tmp)。 if(node_tmp == NULL){ printf(only one song \n)。 } else{ /* 節(jié)點(diǎn)前移一位 */ node_tmp = node_tmpprev。 } id_test=fork()。 if(id_test == 0){ play( mem_id,node_tmp)。 } else if(id_test 0){ }}//退出播放程序void stop_play(struct share *share_tmp){ first_press=1。 play_flags=0。 kill(share_tmpid_tmp,SIGKILL)。 kill(id_test,SIGKILL)。}//主函數(shù)int main(int argc, char *argv[]){ int buttons_fd。 char cwd_buf[80]。 //保存目錄名字 DIR *dir。 //DIR目錄流 struct dirent *ptr。 char *p=NULL。 int i=0。 int j=0。 char name[MAX][WORD]。 pnode head。 fd_set rds。 int ret。 int key_value[6]。 int key_tmp。 char next_name[WORD]。 char prev_name[WORD]。 struct share *share_tmp。 int memory_id。 pnode node_tmp。 void *shmadd=(void *)0。 buttons_fd = open(/dev/button, 0)。 if (buttons_fd 0) { perror(open device button)。 exit(EXIT_FAILURE)。 } /* 獲取當(dāng)前目錄的名字 */ getcwd(cwd_buf,sizeof(cwd_buf))。 if((dir = opendir(cwd_buf)) == NULL){ perror(opendir)。 exit(EXIT_FAILURE)。 } /* 遍歷整個(gè)目錄 */ while((ptr = readdir(dir)) != NULL){ /*查找媒體文件 */ for(j=0。jFORMAT_NUM。j++){ if((ptrd_type == 8) amp。amp。 (p=strstr(ptrd_name,format[j])) != NULL) { strcpy(name[i++],ptrd_name)。 break。 } } } head = create_list(name,i)。 // 創(chuàng)建雙向循環(huán)鏈表,將媒體文件添加入鏈表中 print_list(head)。 /* 父進(jìn)程中使用共享內(nèi)存,獲取孫子進(jìn)程中記錄的進(jìn)程ID和當(dāng)前文件名 */ if ((memory_id = shmget(IPC_PRIVATE, sizeof(struct share), IPC_CREAT|0666)) == 1){ perror(Failed to create shared memory segment)。 exit(EXIT_FAILURE)。 } if ((shmadd = shmat(memory_id, (void *)0, 0)) == NULL){ perror(shmat)。 if (shmctl(memory_id, IPC_RMID, NULL) == 1) perror(Failed to remove memory segment)。 exit(EXIT_FAILURE)。 } share_tmp = (struct share *)shmadd。 printf(\nOperations Description \n)。 printf(K1 start/pause play\n)。 printf(K2 next one\n)。 printf(K3 previous on one\n)。 printf(K4 stop play one\n)。 while(1){ FD_ZERO(amp。rds)。 FD_SET(buttons_fd, amp。rds)。 /* 監(jiān)測按鍵的變化 */ ret = select(buttons_fd + 1, amp。rds, NULL, NULL, NULL)。 if (ret 0) { perror(select)。 exit(EXIT_FAILURE)。 } if (ret == 0) { printf(Timeout.\n)。 } else if (FD_ISSET(buttons_fd, amp。rds)) { /* 讀取按鍵的值到數(shù)組中 */ ret = read(buttons_fd, amp。key_value, sizeof(key_value))。 if(ret != sizeof(key_value)){ if(errno != EAGAIN){ printf(read button device failed!\n)。 } continue。 } else{ for(i=0。 i6。 i++){ if(key_value[i] == 0){ key_tmp = i+1。 /* 記錄按鍵值 */ } } } } if(first_press==1){ if(key_tmp==1){ first_press=0。 start_play(memory_id,head)。 } } else{ switch(key_tmp){ case 1: if(play_flags) pause_play(share_tmpid_tmp)。 else continue_play(share_tmpid_tmp)。 break。 case 2: next_play(share_tmp,memory_id,head)。 break。 case 3: pre_play(share_tmp,memory_id,head)。 break。 case 4: stop_play(share_tmp)。 break。 default : 。 } } } close(buttons_fd)。 closedir(dir)。 return 0。}33
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1