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

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

?? audio_sun.c

?? mpeg 2 source code for video compression
?? C
字號:
/*	audio_sun.c: audio output for Sun systems	copyright ?-2006 by the mpg123 project - free software under the terms of the LGPL 2.1	see COPYING and AUTHORS files in distribution or http://mpg123.de	initially written by Michael Hipp*/#include <sys/types.h>#include <stdlib.h>#include <stdio.h>#include <unistd.h>#include <fcntl.h>#include "config.h"#include "mpg123.h"#ifdef HAVE_SYS_IOCTL_H#include <sys/ioctl.h>#endif#ifdef HAVE_SUN_AUDIOIO_H#include <sun/audioio.h>#endif#ifdef HAVE_SYS_AUDIOIO_H#include <sys/audioio.h>#endif#ifdef HAVE_SYS_AUDIO_H#include <sys/audio.h>#endif#ifdef HAVE_ASM_AUDIOIO_H#include <asm/audioio.h>#endifstatic void audio_set_format_helper(struct audio_info_struct *ai, audio_info_t *ainfo){  switch(ai->format) {    case -1:    case AUDIO_FORMAT_SIGNED_16:    default:      ainfo->play.encoding = AUDIO_ENCODING_LINEAR;      ainfo->play.precision = 16;      break;    case AUDIO_FORMAT_UNSIGNED_8:#if defined(SOLARIS) || defined(SPARCLINUX)      ainfo->play.encoding = AUDIO_ENCODING_LINEAR8;      ainfo->play.precision = 8;      break;#endif    case AUDIO_FORMAT_SIGNED_8:      fprintf(stderr,"Linear signed 8 bit not supported!\n");      return;    case AUDIO_FORMAT_ULAW_8:      ainfo->play.encoding = AUDIO_ENCODING_ULAW;      ainfo->play.precision = 8;      break;    case AUDIO_FORMAT_ALAW_8:      ainfo->play.encoding = AUDIO_ENCODING_ALAW;      ainfo->play.precision = 8;      break;  }  }static int audio_reset_parameters(struct audio_info_struct *ai){  audio_info_t ainfo;  AUDIO_INITINFO(&ainfo);  if(ai->rate != -1)    ainfo.play.sample_rate = ai->rate;  if(ai->channels >= 0)    ainfo.play.channels = ai->channels;  audio_set_format_helper(ai,&ainfo);  if(ioctl(ai->fn, AUDIO_SETINFO, &ainfo) == -1)    return -1;  return 0;}static int audio_rate_best_match(struct audio_info_struct *ai){  audio_info_t ainfo;  AUDIO_INITINFO(&ainfo);   ainfo.play.sample_rate = ai->rate;  if(ioctl(ai->fn, AUDIO_SETINFO, &ainfo) < 0) {    ai->rate = 0;    return 0;  }  if(ioctl(ai->fn, AUDIO_GETINFO, &ainfo) < 0) {    return -1;  }  ai->rate = ainfo.play.sample_rate;  return 0;}static int audio_set_rate(struct audio_info_struct *ai){  audio_info_t ainfo;  if(ai->rate != -1) {    AUDIO_INITINFO(&ainfo);    ainfo.play.sample_rate = ai->rate;    if(ioctl(ai->fn, AUDIO_SETINFO, &ainfo) == -1)      return -1;    return 0;  }  return -1;}static int audio_set_channels(struct audio_info_struct *ai){  audio_info_t ainfo;  AUDIO_INITINFO(&ainfo);  ainfo.play.channels = ai->channels;  if(ioctl(ai->fn, AUDIO_SETINFO, &ainfo) == -1)    return -1;  return 0;}static int audio_set_format(struct audio_info_struct *ai){  audio_info_t ainfo;  AUDIO_INITINFO(&ainfo);  audio_set_format_helper(ai,&ainfo);  if(ioctl(ai->fn, AUDIO_SETINFO, &ainfo) == -1)    return -1;  return 0;}int audio_open(struct audio_info_struct *ai){  audio_info_t ainfo;  if(!ai->device) {    if(getenv("AUDIODEV")) {      if(param.verbose > 1)          fprintf(stderr,"Using audio-device value from AUDIODEV environment variable!\n");      ai->device = getenv("AUDIODEV");    }    else       ai->device = "/dev/audio";  }  ai->fn = open(ai->device,O_WRONLY);  if(ai->fn < 0)     return ai->fn;#ifdef SUNOS  {    int type;    if(ioctl(ai->fn, AUDIO_GETDEV, &type) == -1)      return -1;    if(type == AUDIO_DEV_UNKNOWN || type == AUDIO_DEV_AMD)      return -1;  }#else#if defined(SOLARIS) || defined(SPARCLINUX)  {    struct audio_device ad;    if(ioctl(ai->fn, AUDIO_GETDEV, &ad) == -1)      return -1;    if(param.verbose > 1)      fprintf(stderr,"Audio device type: %s\n",ad.name);    if(!strstr(ad.name,"dbri") && !strstr(ad.name,"CS4231") && param.verbose)      fprintf(stderr,"Warning: Unknown sound system %s. But we try it.\n",ad.name);  }#endif#endif  if(audio_reset_parameters(ai) < 0) {    return -1;  }  AUDIO_INITINFO(&ainfo);  if(ai->output > 0)    ainfo.play.port = 0;  if(ai->output & AUDIO_OUT_INTERNAL_SPEAKER)    ainfo.play.port |= AUDIO_SPEAKER;  if(ai->output & AUDIO_OUT_HEADPHONES)    ainfo.play.port |= AUDIO_HEADPHONE;  if(ai->output & AUDIO_OUT_LINE_OUT)    ainfo.play.port |= AUDIO_LINE_OUT;  if(ai->gain != -1)    ainfo.play.gain = ai->gain;  if(ioctl(ai->fn, AUDIO_SETINFO, &ainfo) == -1)    return -1;  return ai->fn;}int audio_get_formats(struct audio_info_struct *ai){  static int tab[][3] = {    { AUDIO_ENCODING_ULAW , 8,  AUDIO_FORMAT_ULAW_8 } ,    { AUDIO_ENCODING_ALAW , 8,  AUDIO_FORMAT_ALAW_8 } ,    { AUDIO_ENCODING_LINEAR , 16,  AUDIO_FORMAT_SIGNED_16 } ,#if defined(SOLARIS) || defined(SPARCLINUX)    { AUDIO_ENCODING_LINEAR8 , 8,  AUDIO_FORMAT_UNSIGNED_8 } ,#endif  };  audio_info_t ainfo;  int i,fmts=0;  for(i=0;i<4;i++) {    AUDIO_INITINFO(&ainfo);    ainfo.play.encoding = tab[i][0];    ainfo.play.precision = tab[i][1];#if 1    ainfo.play.sample_rate = ai->rate;    ainfo.play.channels = ai->channels;#endif    if(ioctl(ai->fn, AUDIO_SETINFO, &ainfo) >= 0) {      fmts |= tab[i][2];    }  }  return fmts;}int audio_play_samples(struct audio_info_struct *ai,unsigned char *buf,int len){  return write(ai->fn,buf,len);}int audio_close(struct audio_info_struct *ai){  close (ai->fn);  return 0;}void audio_queueflush (struct audio_info_struct *ai){	/*ioctl (ai->fn, I_FLUSH, FLUSHRW);*/}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久亚洲免费视频| 视频一区中文字幕| 一区二区三区欧美视频| 奇米影视7777精品一区二区| 国产夫妻精品视频| 日本韩国欧美一区二区三区| 久久久久久亚洲综合| 午夜电影久久久| 99久久久久免费精品国产 | 欧美大片在线观看一区| 国产精品三级电影| 久久se精品一区精品二区| 一本久道久久综合中文字幕| 久久久久国产一区二区三区四区| 午夜电影久久久| 色综合久久综合网97色综合| 欧美激情一区二区三区四区| 毛片一区二区三区| 欧美日韩国产综合一区二区| 一区二区三区资源| caoporn国产精品| 国产色91在线| 国产精品一区免费视频| 日韩一区二区中文字幕| 91麻豆高清视频| 福利一区二区在线| 精品国产乱码久久久久久浪潮 | 91精品福利视频| 国产精品乱人伦一区二区| 国产精品影视在线观看| 久久久91精品国产一区二区精品| 蜜臀av亚洲一区中文字幕| 欧美日韩亚洲国产综合| 亚洲高清免费观看| 欧美欧美欧美欧美| 人人爽香蕉精品| 欧美一级片在线观看| 免费在线观看一区| 日韩一区二区三区在线观看| 欧美a级理论片| 欧美α欧美αv大片| 国模套图日韩精品一区二区| 久久只精品国产| 菠萝蜜视频在线观看一区| 国产精品乱子久久久久| 色噜噜狠狠成人网p站| 亚洲图片欧美视频| 日韩一区二区三区在线| 国产精品综合视频| 国产精品丝袜一区| 在线影视一区二区三区| 性久久久久久久| 欧美精品一区二区蜜臀亚洲| 国产精品18久久久久久久久久久久| 日本一区二区视频在线观看| 福利一区在线观看| 一区二区三区中文在线观看| 欧美一区三区四区| 国产精品99久久久久久似苏梦涵| 国产精品久久久久天堂| 欧美日韩精品系列| 国产精品自在欧美一区| 亚洲免费在线看| 欧美一区二区三区精品| 国产一区二区女| 亚洲精品国产一区二区精华液 | av成人免费在线观看| 亚洲午夜视频在线| 精品国产百合女同互慰| 91丝袜美腿高跟国产极品老师| 视频一区免费在线观看| 中文字幕欧美激情| 欧美剧在线免费观看网站 | 久久先锋影音av| 一本到不卡精品视频在线观看| 欧美bbbbb| 一区二区在线观看免费视频播放 | 日精品一区二区| 国产午夜精品久久久久久免费视 | 国产精品18久久久久久vr| 亚洲色图19p| 精品国产免费人成电影在线观看四季| 99精品视频一区二区三区| 美国一区二区三区在线播放| 日韩美女视频一区二区| 久久久天堂av| 91麻豆精品国产91久久久久久久久 | 亚洲午夜久久久久久久久久久| 欧美一级二级三级乱码| 99精品国产视频| 国产一区二区三区免费看 | 欧美日韩一区国产| 成人激情图片网| 国产一区二区美女| 日韩国产在线观看| 一区二区三区精密机械公司| 中文字幕免费不卡| 精品久久久影院| 日韩一区二区精品在线观看| 欧洲av一区二区嗯嗯嗯啊| 成人在线视频首页| 国产乱码精品一区二区三区五月婷| 午夜影院久久久| 一区二区欧美国产| 亚洲欧美日韩久久| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆| 精品福利视频一区二区三区| 欧美一区二区三区爱爱| 欧美日韩小视频| 精品视频在线看| 欧美日韩国产成人在线免费| 欧美视频自拍偷拍| 欧美性猛交xxxxxx富婆| 欧美亚洲一区二区三区四区| av午夜一区麻豆| av激情成人网| 欧美在线一区二区| 欧美人与禽zozo性伦| 3atv一区二区三区| 欧美一区二区日韩| 亚洲精品在线观看视频| 久久一日本道色综合| 国产蜜臀av在线一区二区三区| 国产精品欧美久久久久无广告| 国产精品丝袜一区| 亚洲色大成网站www久久九九| 一区二区三区四区在线| 午夜免费久久看| 99久久免费精品高清特色大片| 成人高清视频免费观看| 色一情一伦一子一伦一区| 欧美网站大全在线观看| 欧美精品xxxxbbbb| 精品对白一区国产伦| 国产精品久久久久永久免费观看| 日韩毛片视频在线看| 亚洲高清在线视频| 久久99深爱久久99精品| 高清国产午夜精品久久久久久| 91香蕉视频污在线| 欧美日本精品一区二区三区| 精品久久久久99| 中文字幕一区二区三区不卡在线| 亚洲精品第一国产综合野| 日韩精品国产欧美| 国产精品一级在线| 91亚洲精品久久久蜜桃网站| 欧美精品三级日韩久久| 国产欧美一区二区精品性色| 亚洲激情男女视频| 国产真实乱偷精品视频免| 91一区一区三区| 日韩欧美在线123| 中文字幕一区二区三区在线不卡| 亚洲成年人影院| 国产91在线看| 欧美一卡二卡三卡| 国产精品二三区| 美脚の诱脚舐め脚责91| 91麻豆国产福利在线观看| 精品福利在线导航| 一区二区三区日韩欧美| 国产一区二区三区香蕉| 欧美日韩三级一区| 日本一区二区三区四区| 日本三级亚洲精品| 91免费在线播放| 久久久久久久综合日本| 偷拍日韩校园综合在线| av一区二区三区在线| 欧美精品一区二区在线观看| 亚洲成人综合在线| 波多野结衣一区二区三区| 精品精品国产高清一毛片一天堂| 亚洲综合一区二区三区| 不卡的av在线播放| 久久综合精品国产一区二区三区| 亚洲一区在线视频观看| 99在线精品免费| 国产欧美一区二区三区在线老狼| 日韩 欧美一区二区三区| 日本高清不卡aⅴ免费网站| 亚洲国产精华液网站w| 欧美性大战久久| 国产精品久久久久久一区二区三区| 免费久久精品视频| 欧美电影一区二区| 亚洲国产日日夜夜| 日本道精品一区二区三区| ...av二区三区久久精品| 国产精品99久久久久久久女警 | 国产欧美日韩在线视频| 精彩视频一区二区| 精品国产123| 国内精品免费**视频| 精品国产网站在线观看| 麻豆高清免费国产一区| 欧美一二三区在线| 捆绑变态av一区二区三区| 91精品国产色综合久久不卡电影|