亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? wav in linux.txt

?? c code for linux (wav reader)
?? TXT
字號:
#include <stdio.h>
#include <sys/soundcard.h>
#include <fcntl.h>
#include <errno.h>
#include <pthread.h>
#include <ncurses.h>

typedef struct BASIC_HEADFILE_WAV{

char ChunkID[3];
long ChunkSize;
char Format[4];
char Subchunk1ID[3];
long Subchunk1Size;
short AudioFormat;
short NumChannels;
long SampleRate;
long ByteRate;
short BlockAlign;
short BitsPerSample;
char Subchunk2ID[3];
long Subchunk2Size;
}BASIC_HEADFILE_WAV;


int setup_dsp(int handle,int rate, int channels);
int  Thread_play_file_wav(FILE *musica);
int open_dsp();
int sync_dsp();
void Info_wav(BASIC_HEADFILE_WAV *basic_wav);


int dev_fd;
char pcmout[4608];
int player_control;


// MAIN

int main(int argc, char *argv[]){

int *file_sound;
pthread_t Thread;
int return_thread;
int input_control=0;
int loop=0;
int pause=0;



file_sound=(int*)fopen(argv[1],"r");
if(file_sound==0){
   perror("fopen");
   return -1;
   }
   

initscr();   
raw();
curs_set(0);
noecho();
     
return_thread=pthread_create(&Thread,NULL,(void*)Thread_play_file_wav,file_sound);


 while(loop == 0){   
        input_control=getch();
   
   switch(input_control){
          case 'q' : player_control=1;
                     loop=1;
           pthread_join(Thread,NULL);
           break;
          
          case 'f' : if(pause==0)
                     player_control=2;
           break;
          
          case 'b' : if(pause==0)
                     player_control=3;
           break;
          
          case 'p' : if(pause==0){
                     player_control=4;
           pause=1;
           }else{
           player_control=0;
           pause=0;
           }
           break;
          
      default : break;
      }
   
    }

endwin();
close(file_sound);
return 0;
}



// THREAD PLAY FILE WAV

int  Thread_play_file_wav(FILE *musica){


BASIC_HEADFILE_WAV basic_wav;
long ret;
long pos_file;
char teste_wav[4];
int i=0;
int play;

 
fread(&basic_wav,sizeof(BASIC_HEADFILE_WAV),1,musica);
memcpy(teste_wav,basic_wav.ChunkID,4);
teste_wav[4]='\0';
 
 if(strcmp(teste_wav,"RIFF")!=0){
    endwin();
    printf("the file is not wav.\n");
    fclose(musica);
    exit(-1);
    }
 
  if(basic_wav.BitsPerSample == 32){
     endwin();
     printf("the player not suport  32 bit per sample\n");
     fclose(musica);
     exit(-1);
     }
     
Info_wav(&basic_wav);

if(open_dsp()==-1){
     endwin();
     fclose(musica);
     exit(-1);
     }
     
     
if(setup_dsp(dev_fd,basic_wav.SampleRate,basic_wav.NumChannels-1))
   {
      
      perror("dsp");
      close(musica);
      close(dev_fd);
      exit(-1);
   }

   if(sync_dsp()==1){
      close(musica);
      close(dev_fd);
      exit(-1);
      }


play=1;   
   
while(i==0){

if(player_control!=0){
   switch(player_control){
           
          case 1: i=1;
               break;
         
          case 2: fseek(musica,16384,1);
                  usleep(1000);
                  player_control=0;
                  break;
             
          case 3: fseek(musica,pos_file-16384,0);
                  usleep(1000);
                  player_control=0;
             break;
             
          case 4: mvprintw(3,19,"%s","Pause");
                  refresh();
             play=1;
                         while(player_control==4){
                        usleep(100);}
              
              break;
          default :break;
          }
   }else{
   
      if(play==1){
      mvprintw(3,19,"%s","Play ");
      refresh();
      play=0;
      }
      
      pos_file=ftell(musica);
      mvprintw(2,19,"%s","            ");
      refresh();
           mvprintw(2,19,"%d",pos_file);
           refresh();
      ret=fread(pcmout,sizeof(pcmout),1,musica);
           if(ret<=0){
           break;
   
          }      
          write(dev_fd,pcmout,sizeof(pcmout));
      
    }
   
   

}

endwin();
close(dev_fd);
fclose(musica);
exit(0);
}


// OPEN DSP

int open_dsp(){
 if ( (dev_fd = open("/dev/dsp",O_WRONLY)) == -1 )
   {
      perror("open dsp");
      
    return -1;;
   }
}


// SETUP DSP

int setup_dsp(int handle,int rate, int channels)
{
   int format;

   if ( ioctl(handle, SNDCTL_DSP_STEREO,&channels) == -1 )
   {
      perror("ioctl stereo");
      return errno;
   }
   
   if(channels==0){
   format=AFMT_U8; // 8 bit sound
   }
   if(channels==1){
   format=AFMT_S16_LE; // 16 bit sound
   }
   

   

   if ( ioctl(handle, SNDCTL_DSP_SETFMT,&format) == -1 )
   {
      perror("ioctl format");
      return errno;
   }
   
   if ( ioctl(handle, SNDCTL_DSP_SPEED,&rate) == -1 )
   {
      perror("ioctl sample rate");
      return errno;
   }
   
   return 0;
}

// SYNC DSP

int sync_dsp(){

     int ret=0;
    if (ioctl(dev_fd, SNDCTL_DSP_SYNC) == -1) {
          perror("ioctl sync\n");
      ret=1;
   }
   
   return ret;
}


// INFO WAV

void Info_wav(BASIC_HEADFILE_WAV *basic_wav){


        printw("===============================================\n");
       
   printw("  Bitstream is %d channel, %ldHz  \n",basic_wav->NumChannels,basic_wav->SampleRate);
   printw("  Decoded lengtph: \n");
   
   printw("\n===============================================\n");
        refresh();
}
  

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一区在线中文字幕| 日韩精品一区二区三区视频播放 | 久久99蜜桃精品| 在线成人小视频| 蜜桃久久av一区| 日韩精品一区二区三区老鸭窝| 久久99精品国产麻豆婷婷| 精品日韩一区二区三区| 国产91丝袜在线播放九色| 国产精品夫妻自拍| 欧美做爰猛烈大尺度电影无法无天| 夜色激情一区二区| 91精品国产乱码| 狠狠狠色丁香婷婷综合激情| 国产调教视频一区| 99久久综合色| 亚洲成人av一区二区| 欧美成人伊人久久综合网| 国产·精品毛片| 亚洲男人电影天堂| 欧美另类变人与禽xxxxx| 91精品福利视频| 亚洲一区二区精品3399| 欧美一级艳片视频免费观看| 国产精品中文有码| 亚洲另类一区二区| 日韩精品中文字幕在线不卡尤物 | 亚洲自拍都市欧美小说| 欧美一区在线视频| 不卡在线观看av| 五月婷婷综合激情| 久久精品这里都是精品| 欧美影院午夜播放| 国产在线观看一区二区| 一区二区高清免费观看影视大全 | 久久精品国产免费| 亚洲乱码国产乱码精品精可以看 | 欧美xxxx在线观看| www.成人在线| 久久精品国产一区二区三| 亚洲欧美一区二区久久| 欧美电影免费观看高清完整版在| 97久久精品人人澡人人爽| 蜜臀av亚洲一区中文字幕| 中文字幕一区二区三区乱码在线| 欧美一区二区成人| 91福利视频久久久久| 国产激情视频一区二区三区欧美 | 成人欧美一区二区三区视频网页| 欧美一区国产二区| 91蜜桃网址入口| 国产一区二区三区免费观看| 亚洲第一狼人社区| 国产精品视频第一区| 日韩精品中文字幕一区二区三区 | 91丨porny丨蝌蚪视频| 国产一区在线观看视频| 婷婷中文字幕综合| 亚洲免费观看在线观看| 另类欧美日韩国产在线| 亚洲精品自拍动漫在线| 国产精品网站在线观看| 精品国产欧美一区二区| 91精品国产品国语在线不卡| 91福利国产成人精品照片| 成人精品gif动图一区| 国产精品性做久久久久久| 麻豆精品一二三| 奇米在线7777在线精品| 日韩精品电影一区亚洲| 亚洲精品一区二区三区蜜桃下载| 欧美片网站yy| 欧美日韩久久久| 欧美在线不卡一区| 欧美性生活大片视频| 色av一区二区| 欧美午夜精品一区二区三区| 色婷婷综合五月| 日本国产一区二区| 欧洲一区二区三区在线| 色伊人久久综合中文字幕| 一本一本久久a久久精品综合麻豆 一本一道波多野结衣一区二区 | 中文字幕一区二区三中文字幕| 国产日韩精品一区二区三区| 中文字幕不卡一区| 中文av字幕一区| 亚洲欧美日韩一区二区| 亚洲综合丝袜美腿| 天天色综合成人网| 国产综合成人久久大片91| 国产盗摄一区二区三区| 国产ts人妖一区二区| 波多野结衣亚洲一区| 一本大道久久a久久精品综合| 一本一道久久a久久精品综合蜜臀| 色噜噜狠狠色综合中国| 欧美日韩亚洲综合在线| 日韩精品中午字幕| 欧美国产欧美综合| 一区二区三区四区五区视频在线观看 | 国内精品视频666| 国产91综合一区在线观看| 99久久婷婷国产综合精品电影 | 91国在线观看| 91麻豆精品国产91久久久 | 国产清纯白嫩初高生在线观看91 | k8久久久一区二区三区 | 欧美日韩精品一区二区三区四区| 在线不卡一区二区| 精品国产1区2区3区| 国产精品久久久久久久久果冻传媒| 最新热久久免费视频| 亚洲午夜电影在线观看| 麻豆成人久久精品二区三区小说| 国产传媒一区在线| 欧美色偷偷大香| 国产欧美日韩卡一| 亚洲高清久久久| 国产精品一区二区久久精品爱涩| 91丝袜呻吟高潮美腿白嫩在线观看| 欧美精品一二三四| 日本一区二区三区四区在线视频| 亚洲一区二区三区激情| 国内精品国产三级国产a久久| 91麻豆高清视频| 欧美精品一区二区三区久久久| 亚洲人妖av一区二区| 久久精品国产色蜜蜜麻豆| 一本到不卡精品视频在线观看| 日韩一本二本av| 亚洲免费成人av| 国产成人三级在线观看| 欧美精品xxxxbbbb| 中文字幕一区二区不卡| 毛片av一区二区| 欧美日韩一区在线| 国产精品网站在线| 国模一区二区三区白浆| 欧美蜜桃一区二区三区| 亚洲欧洲日韩av| 国产乱一区二区| 日韩一区二区视频| 亚洲电影中文字幕在线观看| 成人av影院在线| 久久久久久亚洲综合影院红桃| 午夜a成v人精品| 欧美亚洲丝袜传媒另类| 国产精品美日韩| 国产精品一级在线| 日韩一区二区三区三四区视频在线观看| 亚洲欧洲av在线| 国产v日产∨综合v精品视频| 欧美精品一区二区三区在线| 日韩av在线发布| 在线成人高清不卡| 午夜精品aaa| 欧美色欧美亚洲另类二区| 亚洲激情自拍视频| 99久久国产综合精品麻豆| 欧美经典一区二区三区| 国产乱子轮精品视频| www国产成人免费观看视频 深夜成人网| 天天综合色天天综合| 欧美日韩电影一区| 午夜精品一区二区三区电影天堂 | 欧美日韩一卡二卡三卡| 一区二区三区蜜桃网| 色香色香欲天天天影视综合网| 国产精品麻豆欧美日韩ww| 国产一区二区三区香蕉| 久久久久久久久久久久久久久99| 国产一区二区成人久久免费影院| 精品国产第一区二区三区观看体验| 麻豆国产欧美日韩综合精品二区| 91精品国产欧美一区二区| 青青草91视频| 亚洲精品在线观看视频| 国模无码大尺度一区二区三区| 国产欧美中文在线| 不卡的av网站| 亚洲综合成人在线| 欧美顶级少妇做爰| 激情另类小说区图片区视频区| 久久综合久色欧美综合狠狠| 国产成人综合在线播放| 中文字幕中文字幕一区二区| 91黄色免费网站| 日韩**一区毛片| 久久久精品黄色| 99精品热视频| 午夜av一区二区| 精品国产91久久久久久久妲己 | 日本中文一区二区三区| 精品国产91洋老外米糕| 成人av综合在线| 亚洲高清三级视频| 午夜国产精品一区| 精品久久久久久最新网址| 成人黄动漫网站免费app| 一区二区欧美在线观看|