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

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

?? soundsrv.c

?? The source code of Doom legacy for windows
?? C
?? 第 1 頁 / 共 2 頁
字號:
// Emacs style mode select   -*- C++ -*- //-----------------------------------------------------------------------------//// $Id: soundsrv.c,v 1.7 2000/09/01 19:34:37 bpereira Exp $//// Copyright (C) 1993-1996 by id Software, Inc.// Portions Copyright (C) 1998-2000 by DooM Legacy Team.//// This program is free software; you can redistribute it and/or// modify it under the terms of the GNU General Public License// as published by the Free Software Foundation; either version 2// of the License, or (at your option) any later version.//// This program is distributed in the hope that it will be useful,// but WITHOUT ANY WARRANTY; without even the implied warranty of// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the// GNU General Public License for more details.////// $Log: soundsrv.c,v $// Revision 1.7  2000/09/01 19:34:37  bpereira// no message//// Revision 1.6  2000/04/30 19:50:37  metzgermeister// no message//// Revision 1.5  2000/04/28 19:26:10  metzgermeister// musserver fixed, sndserver amplified accordingly//// Revision 1.4  2000/04/22 20:30:00  metzgermeister// fix amplification by 4//// Revision 1.3  2000/03/28 16:18:42  linuxcub// Added a command to the Linux sound-server which sets a master volume.//// Revision 1.2  2000/02/27 00:42:12  hurdler// fix CR+LF problem//// Revision 1.1.1.1  2000/02/22 20:32:33  hurdler// Initial import into CVS (v1.29 pr3)////// DESCRIPTION://      UNIX soundserver, run as a separate process,//       started by DOOM program.//      Originally conceived fopr SGI Irix,//       mostly used with Linux voxware.////-----------------------------------------------------------------------------#include <math.h>#include <sys/types.h>#include <stdio.h>#include <fcntl.h>#include <sys/ioctl.h>#include <unistd.h>#include <stdlib.h>#include <malloc.h>#include <sys/stat.h>#include <sys/time.h>#include "sounds.h"#include "soundsrv.h"extern int audio_8bit_flag;//// Department of Redundancy Department.//typedef struct wadinfo_struct{    // should be IWAD    char        identification[4];          int         numlumps;    int         infotableofs;    } wadinfo_t;typedef struct filelump_struct{    int         filepos;    int         size;    char        name[8];    } filelump_t;// an internal time keeperstatic int      mytime = 0;// number of sound effectsint             numsounds;// longest sound effectint             longsound;// lengths of all sound effectsint             lengths[NUMSFX];// mixing buffersigned short    mixbuffer[MIXBUFFERSIZE];// file descriptor of sfx deviceint             sfxdevice;                      // file descriptor of music deviceint             musdevice;                      // the channel data pointersunsigned char*  channels[8];// the channel step amountunsigned int    channelstep[8];// 0.16 bit remainder of last stepunsigned int    channelstepremainder[8];// the channel data end pointersunsigned char*  channelsend[8];// time that the channel started playingint             channelstart[8];// the channel handlesint             channelhandles[8];// the channel left volume lookup// int*            channelleftvol_lookup[8];// the channel right volume lookup// int*            channelrightvol_lookup[8];// sfx id of the playing sound effectint             channelids[8];                  int             snd_verbose=1;int             steptable[256];// int             vol_lookup[128*256];int             volume_lookup[128][256];int             master_volume=31; /* 0..31 */int             left_volume[8],right_volume[8];static void derror(char* msg){    fprintf(stderr, "error: %s\n", msg);    exit(-1);}int mix(void){    register unsigned int       sample;    register int                dl;    register int                dr;    unsigned short              sdl;    unsigned short              sdr;        signed short*               leftout;    signed short*               rightout;    signed short*               leftend;    unsigned char*              bothout;        int                         step;    int                         i;    int                         leftv[8],rightv[8];        for( i=0; i<8; ++i ) {        leftv[i] = left_volume[i]*master_volume/31;        rightv[i] = right_volume[i]*master_volume/31;    }    leftout = mixbuffer;    rightout = mixbuffer+1;    bothout = (unsigned char *)mixbuffer;    step = 2;    leftend = mixbuffer + SAMPLECOUNT*step;    // mix into the mixing buffer    while (leftout != leftend)    {        dl = 0;        dr = 0;        if (channels[0])        {            sample = *channels[0];            // dl += channelleftvol_lookup[0][sample];            dl += volume_lookup[leftv[0]][sample];            // dr += channelrightvol_lookup[0][sample];            dr += volume_lookup[rightv[0]][sample];            channelstepremainder[0] += channelstep[0];            channels[0] += channelstepremainder[0] >> 16;            channelstepremainder[0] &= 65536-1;            if (channels[0] >= channelsend[0])                channels[0] = 0;        }        if (channels[1])        {            sample = *channels[1];            // dl += channelleftvol_lookup[1][sample];            dl += volume_lookup[leftv[1]][sample];            // dr += channelrightvol_lookup[1][sample];            dr += volume_lookup[rightv[1]][sample];            channelstepremainder[1] += channelstep[1];            channels[1] += channelstepremainder[1] >> 16;            channelstepremainder[1] &= 65536-1;            if (channels[1] >= channelsend[1])                channels[1] = 0;        }        if (channels[2])        {            sample = *channels[2];            // dl += channelleftvol_lookup[2][sample];            dl += volume_lookup[leftv[2]][sample];            // dr += channelrightvol_lookup[2][sample];            dr += volume_lookup[rightv[2]][sample];            channelstepremainder[2] += channelstep[2];            channels[2] += channelstepremainder[2] >> 16;            channelstepremainder[2] &= 65536-1;            if (channels[2] >= channelsend[2])                channels[2] = 0;        }                if (channels[3])        {            sample = *channels[3];            // dl += channelleftvol_lookup[3][sample];            dl += volume_lookup[leftv[3]][sample];            // dr += channelrightvol_lookup[3][sample];            dr += volume_lookup[rightv[3]][sample];            channelstepremainder[3] += channelstep[3];            channels[3] += channelstepremainder[3] >> 16;            channelstepremainder[3] &= 65536-1;            if (channels[3] >= channelsend[3])                channels[3] = 0;        }                if (channels[4])        {            sample = *channels[4];            // dl += channelleftvol_lookup[4][sample];            dl += volume_lookup[leftv[4]][sample];            // dr += channelrightvol_lookup[4][sample];            dr += volume_lookup[rightv[4]][sample];            channelstepremainder[4] += channelstep[4];            channels[4] += channelstepremainder[4] >> 16;            channelstepremainder[4] &= 65536-1;            if (channels[4] >= channelsend[4])                channels[4] = 0;        }                if (channels[5])        {            sample = *channels[5];            // dl += channelleftvol_lookup[5][sample];            dl += volume_lookup[leftv[5]][sample];            // dr += channelrightvol_lookup[5][sample];            dr += volume_lookup[rightv[5]][sample];            channelstepremainder[5] += channelstep[5];            channels[5] += channelstepremainder[5] >> 16;            channelstepremainder[5] &= 65536-1;            if (channels[5] >= channelsend[5])                channels[5] = 0;        }                if (channels[6])        {            sample = *channels[6];            // dl += channelleftvol_lookup[6][sample];            dl += volume_lookup[leftv[6]][sample];            // dr += channelrightvol_lookup[6][sample];            dr += volume_lookup[rightv[6]][sample];            channelstepremainder[6] += channelstep[6];            channels[6] += channelstepremainder[6] >> 16;            channelstepremainder[6] &= 65536-1;            if (channels[6] >= channelsend[6])                channels[6] = 0;        }        if (channels[7])        {            sample = *channels[7];            // dl += channelleftvol_lookup[7][sample];            dl += volume_lookup[leftv[7]][sample];            // dr += channelrightvol_lookup[7][sample];            dr += volume_lookup[rightv[7]][sample];            channelstepremainder[7] += channelstep[7];            channels[7] += channelstepremainder[7] >> 16;            channelstepremainder[7] &= 65536-1;            if (channels[7] >= channelsend[7])                channels[7] = 0;        }        // Has been char instead of short.        // if (dl > 127) *leftout = 127;        // else if (dl < -128) *leftout = -128;        // else *leftout = dl;        // if (dr > 127) *rightout = 127;        // else if (dr < -128) *rightout = -128;        // else *rightout = dr;                dl <<= 3;        dr <<= 3;        if (!audio_8bit_flag)        {            if (dl > 0x7fff)                *leftout = 0x7fff;            else if (dl < -0x8000)                *leftout = -0x8000;            else                *leftout = dl;            if (dr > 0x7fff)                *rightout = 0x7fff;            else if (dr < -0x8000)                *rightout = -0x8000;            else                *rightout = dr;        }        else        {            if (dl > 0x7fff)                dl = 0x7fff;            else if (dl < -0x8000)                dl = -0x8000;            sdl = dl ^ 0xfff8000;            if (dr > 0x7fff)                dr = 0x7fff;            else if (dr < -0x8000)                dr = -0x8000;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品成人在线观看| 久草这里只有精品视频| 免费欧美在线视频| 成人在线视频一区| 欧美日韩精品一区二区三区 | 午夜欧美在线一二页| 美女视频黄免费的久久| 日本高清无吗v一区| 精品国产三级电影在线观看| 一区二区三区在线观看欧美 | 欧美婷婷六月丁香综合色| 精品国产精品网麻豆系列| 亚洲国产中文字幕在线视频综合| 国产一区视频导航| 制服丝袜亚洲色图| 亚洲激情在线播放| 成人在线视频一区二区| 精品国产自在久精品国产| 亚洲国产成人va在线观看天堂| 成人在线一区二区三区| 久久蜜桃一区二区| 久久精品国产一区二区三区免费看| 91网站视频在线观看| 中文字幕成人在线观看| 另类的小说在线视频另类成人小视频在线| av一二三不卡影片| 亚洲国产精品ⅴa在线观看| 九色|91porny| 欧美电影免费观看高清完整版在| 三级亚洲高清视频| 欧美日本在线观看| 亚洲成人精品影院| 欧美日韩精品一区二区三区四区| 伊人色综合久久天天人手人婷| 欧洲一区二区三区在线| 国产精品久久久久婷婷二区次| 国产曰批免费观看久久久| 精品国产乱码久久久久久图片 | 国产精品系列在线播放| 日韩精品一区二区三区视频| 免费观看久久久4p| 日韩精品一区二区三区四区视频| 日本网站在线观看一区二区三区 | av激情亚洲男人天堂| 国产精品免费视频网站| av激情成人网| 一区二区在线观看视频在线观看| 色婷婷久久综合| 亚洲在线免费播放| 在线电影院国产精品| 偷偷要91色婷婷| 欧美xingq一区二区| 国产米奇在线777精品观看| 久久久久久久久岛国免费| 成人午夜视频福利| 亚洲女同一区二区| 欧美军同video69gay| 裸体一区二区三区| 国产日韩成人精品| 色综合久久久久综合| 亚洲国产cao| 精品播放一区二区| 91在线视频18| 日本最新不卡在线| 国产精品午夜在线| 欧美视频一区在线| 国产一区在线观看麻豆| 亚洲视频网在线直播| 欧美一区二区视频在线观看2020| 久久精品国产久精国产爱| 国产精品久久毛片| 欧美高清你懂得| 国产不卡一区视频| 亚洲国产成人精品视频| 久久久国产精品麻豆| 欧美在线高清视频| 国产精品亚洲人在线观看| 亚洲精品高清在线| 久久麻豆一区二区| 在线一区二区三区| 国产揄拍国内精品对白| 一区二区三区在线视频免费| 精品国产乱码久久久久久影片| 91丨porny丨在线| 国内外成人在线| 亚洲美女精品一区| 欧美精品一区二区在线播放| 欧洲av一区二区嗯嗯嗯啊| 国产乱码字幕精品高清av| 亚洲与欧洲av电影| 国产女同互慰高潮91漫画| 欧美一区二区久久久| 91香蕉国产在线观看软件| 久久er99热精品一区二区| 一区二区三区在线播| 国产日韩欧美综合在线| 日韩三级视频在线看| 欧美日韩亚洲综合一区| 成人精品鲁一区一区二区| 精品综合久久久久久8888| 亚洲国产毛片aaaaa无费看| 中文字幕一区日韩精品欧美| 久久蜜桃一区二区| 精品国产一区二区国模嫣然| 欧美三级中文字幕| 在线一区二区三区| 99国产精品久久| 高清日韩电视剧大全免费| 国内久久婷婷综合| 精品在线播放午夜| 免费国产亚洲视频| 日韩av一区二区在线影视| 午夜私人影院久久久久| 亚洲大片精品永久免费| 亚洲韩国精品一区| 亚洲一卡二卡三卡四卡五卡| 亚洲色图在线视频| 亚洲日本va午夜在线影院| 国产精品成人在线观看| 亚洲欧洲日韩综合一区二区| 国产精品系列在线| 中文字幕综合网| 亚洲久草在线视频| 一区二区在线看| 偷拍日韩校园综合在线| 午夜久久久久久电影| 日本不卡高清视频| 另类欧美日韩国产在线| 国产乱码精品一区二区三区av | 99久久精品国产导航| 播五月开心婷婷综合| 91影院在线免费观看| 99精品欧美一区| 欧洲精品一区二区三区在线观看| 欧美在线免费观看视频| 欧美男男青年gay1069videost| 3d成人h动漫网站入口| 精品国精品自拍自在线| 久久久五月婷婷| 一色屋精品亚洲香蕉网站| 一卡二卡三卡日韩欧美| 亚洲va中文字幕| 韩国午夜理伦三级不卡影院| 成人三级伦理片| 在线观看网站黄不卡| 6080午夜不卡| 国产午夜精品在线观看| 中文字幕一区二区三区视频| 亚洲一区二区三区四区五区中文| 午夜激情久久久| 国产乱人伦精品一区二区在线观看| 不卡的av网站| 在线电影国产精品| 国产欧美一区二区三区在线老狼| 亚洲柠檬福利资源导航| 奇米在线7777在线精品 | 日韩三级.com| 国产精品国产自产拍高清av王其 | 亚洲国产精品精华液ab| 亚洲国产aⅴ成人精品无吗| 狠狠色丁香久久婷婷综合丁香| 99久久免费视频.com| 538在线一区二区精品国产| 欧美—级在线免费片| 午夜激情一区二区三区| 成人精品一区二区三区中文字幕| 欧美色男人天堂| 中文字幕一区二区三区在线观看| 日本美女一区二区三区视频| 国产精品自拍一区| 欧美日本一区二区在线观看| 国产精品视频一区二区三区不卡| 日韩精品亚洲一区二区三区免费| 成人高清免费观看| 精品理论电影在线| 亚洲观看高清完整版在线观看| 国产激情精品久久久第一区二区| 欧美日韩不卡在线| 亚洲乱码国产乱码精品精98午夜 | 精品一区二区成人精品| 91传媒视频在线播放| 国产欧美va欧美不卡在线| 蜜臀av性久久久久蜜臀aⅴ流畅 | 亚洲欧美区自拍先锋| 国产成人亚洲综合a∨婷婷| 91精品国产综合久久香蕉的特点 | 欧美亚洲动漫精品| 国产精品视频看| 国产美女精品一区二区三区| 欧美日本在线看| 一区二区三区在线播| 成人免费视频一区二区| 久久日一线二线三线suv| 石原莉奈在线亚洲二区| 欧洲精品在线观看| 亚洲在线视频网站| 在线观看一区二区视频| 亚洲激情图片小说视频| 色屁屁一区二区| 亚洲日本免费电影|