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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? strmctxt.cpp

?? realtek562x系列驅(qū)動源碼。wince
?? CPP
?? 第 1 頁 / 共 2 頁
字號:

    Release();

    return MMSYSERR_NOERROR;
}

// Gain table
// Calculated as: 0x10000 * exp(dBGain/20), for dBGain from 0 to -63
// Sample code to generate using VC++
//
//    #include "stdafx.h"
//    #include "math.h"
//
//    const int NumEntries = 64;
//    const double fdBMin = -100;
//
//    int main(int argc, char* argv[])
//    {
//      const double fNumEntries = ((double)(NumEntries-1));
//      for (int i=0;i<NumEntries;i++)
//      {
//          double fVol = fdBMin * ((double)(i)) / fNumEntries;
//          double fMulVal = exp(fVol/20);
//          unsigned long MulVal = (unsigned long)(fMulVal * (double)0x10000);
//          printf("0x%04x, // %d: %f dB\n",MulVal,i,fVol);
//      }
//      return 0;
//    }
//

const DWORD GainMap[] =
{
0x10000, // 0: 0.000000 dB
0xec77, // 1: -1.587302 dB
0xda6d, // 2: -3.174603 dB
0xc9c2, // 3: -4.761905 dB
0xba5d, // 4: -6.349206 dB
0xac25, // 5: -7.936508 dB
0x9f03, // 6: -9.523810 dB
0x92e1, // 7: -11.111111 dB
0x87ac, // 8: -12.698413 dB
0x7d52, // 9: -14.285714 dB
0x73c2, // 10: -15.873016 dB
0x6aed, // 11: -17.460317 dB
0x62c5, // 12: -19.047619 dB
0x5b3b, // 13: -20.634921 dB
0x5445, // 14: -22.222222 dB
0x4dd7, // 15: -23.809524 dB
0x47e7, // 16: -25.396825 dB
0x426b, // 17: -26.984127 dB
0x3d59, // 18: -28.571429 dB
0x38ab, // 19: -30.158730 dB
0x3458, // 20: -31.746032 dB
0x305a, // 21: -33.333333 dB
0x2ca9, // 22: -34.920635 dB
0x2941, // 23: -36.507937 dB
0x261b, // 24: -38.095238 dB
0x2333, // 25: -39.682540 dB
0x2083, // 26: -41.269841 dB
0x1e08, // 27: -42.857143 dB
0x1bbe, // 28: -44.444444 dB
0x19a0, // 29: -46.031746 dB
0x17ab, // 30: -47.619048 dB
0x15dd, // 31: -49.206349 dB
0x1432, // 32: -50.793651 dB
0x12a7, // 33: -52.380952 dB
0x113b, // 34: -53.968254 dB
0x0fea, // 35: -55.555556 dB
0x0eb3, // 36: -57.142857 dB
0x0d94, // 37: -58.730159 dB
0x0c8b, // 38: -60.317460 dB
0x0b96, // 39: -61.904762 dB
0x0ab4, // 40: -63.492063 dB
0x09e3, // 41: -65.079365 dB
0x0921, // 42: -66.666667 dB
0x086f, // 43: -68.253968 dB
0x07ca, // 44: -69.841270 dB
0x0732, // 45: -71.428571 dB
0x06a6, // 46: -73.015873 dB
0x0624, // 47: -74.603175 dB
0x05ac, // 48: -76.190476 dB
0x053d, // 49: -77.777778 dB
0x04d7, // 50: -79.365079 dB
0x0478, // 51: -80.952381 dB
0x0421, // 52: -82.539683 dB
0x03d0, // 53: -84.126984 dB
0x0386, // 54: -85.714286 dB
0x0341, // 55: -87.301587 dB
0x0301, // 56: -88.888889 dB
0x02c6, // 57: -90.476190 dB
0x0290, // 58: -92.063492 dB
0x025e, // 59: -93.650794 dB
0x0230, // 60: -95.238095 dB
0x0205, // 61: -96.825397 dB
0x01de, // 62: -98.412698 dB
0x01b9, // 63: -100.000000 dB
};

DWORD StreamContext::MapGain(DWORD Gain)
{
    DWORD TotalGain = Gain & 0xFFFF;
    DWORD SecondaryGain = m_pDeviceContext->GetSecondaryGainLimit(m_SecondaryGainClass) & 0xFFFF;

    if (m_SecondaryGainClass < SECONDARYDEVICEGAINCLASSMAX)
    {
        // Apply device gain
        DWORD DeviceGain = m_pDeviceContext->GetGain() & 0xFFFF;
        TotalGain *= DeviceGain;
        TotalGain += 0xFFFF;  // Round up
        TotalGain >>= 16;     // Shift to lowest 16 bits
    }

    // Apply secondary gain
    TotalGain *= SecondaryGain;
    TotalGain += 0xFFFF;  // Round up
    TotalGain >>= 16;     // Shift to lowest 16 bits

    // Special case 0 as totally muted
    if (TotalGain==0)
    {
        return 0;
    }

    // Convert to index into table
    DWORD Index = 63 - (TotalGain>>10);
    return GainMap[Index];
}

DWORD StreamContext::GetPos(PMMTIME pmmt)
{
    switch (pmmt->wType)
    {

    case TIME_SAMPLES:
        pmmt->u.sample = (m_dwByteCount * 8) /
                         (m_WaveFormat.nChannels * m_WaveFormat.wBitsPerSample);
        break;

    case TIME_MS:
        if (m_WaveFormat.nAvgBytesPerSec != 0)
        {
            pmmt->u.ms = (m_dwByteCount * 1000) / m_WaveFormat.nAvgBytesPerSec;
            break;
        }
        // If we don't know avg bytes per sec, fall through to TIME_BYTES

    default:
        // Anything else, return TIME_BYTES instead.
        pmmt->wType = TIME_BYTES;

        // Fall through to TIME_BYTES
    case TIME_BYTES:
        pmmt->u.cb = m_dwByteCount;
    }

    return MMSYSERR_NOERROR;
}

HRESULT WaveStreamContext::Open(DeviceContext *pDeviceContext, LPWAVEOPENDESC lpWOD, DWORD dwFlags)
{
    HRESULT Result;
    Result = StreamContext::Open(pDeviceContext,lpWOD,dwFlags);
    if (FAILED(Result))
    {
        return Result;
    }

    if (m_WaveFormat.wBitsPerSample == 8)
    {
        if (m_WaveFormat.nChannels == 1)
        {
            m_SampleType = PCM_TYPE_M8;
            m_SampleSize = 1;
        }
        else
        {
            m_SampleType = PCM_TYPE_S8;
            m_SampleSize = 2;
        }
    }
    else
    {
        if (m_WaveFormat.nChannels == 1)
        {
            m_SampleType = PCM_TYPE_M16;
            m_SampleSize = 2;
        }
        else
        {
            m_SampleType = PCM_TYPE_S16;
            m_SampleSize = 4;
        }
    }

    SetRate(0x10000);

    int i;
    for (i=0;i<OUTCHANNELS;i++)
    {
        m_PrevSamp[i] = 0;
        m_CurrSamp[i] = 0;
    }
    m_CurrT    = 0x200;   // Initializing to this ensures we get the 1st sample.

    return S_OK;
}

DWORD WaveStreamContext::GetRate(DWORD *pdwMultiplier)
{
    *pdwMultiplier = m_dwMultiplier;
    return MMSYSERR_NOERROR;
}

DWORD StreamContext::Run()
{
    m_bRunning=TRUE;
    if (m_lpCurrData)
    {
        m_pDeviceContext->StreamReadyToRender(this);
    }

    return MMSYSERR_NOERROR;
}

DWORD StreamContext::Stop()
{
    m_bRunning=FALSE;
    return MMSYSERR_NOERROR;
}

DWORD StreamContext::Reset()
{
    AddRef();

    // Stop stream for now.
    Stop();

    m_lpWaveHdrCurrent  = NULL;
    m_lpCurrData       = NULL;
    m_lpCurrDataEnd    = NULL;
    m_dwByteCount      = 0;
    m_dwLoopCount      = 0;

    LPWAVEHDR lpHdr;
    while (m_lpWaveHdrHead)
    {
        lpHdr = m_lpWaveHdrHead;
        m_lpWaveHdrHead = lpHdr->lpNext;
        if (m_lpWaveHdrHead==NULL)
        {
            m_lpWaveHdrTail=NULL;
        }
        ReturnBuffer(lpHdr);
    }

    Release();

    return MMSYSERR_NOERROR;
}

DWORD StreamContext::ForceSpeaker (BOOL bForceSpeaker)
{
    // Normalize to 0 or 1
    bForceSpeaker = (bForceSpeaker!=0);
    if (bForceSpeaker==m_bForceSpeaker)
    {
        return MMSYSERR_NOERROR;
    }
    m_bForceSpeaker = bForceSpeaker;
    return g_pHWContext->ForceSpeaker(bForceSpeaker);
}


?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
在线成人小视频| 精品国产成人系列| 国内成人免费视频| 最新日韩在线视频| 日韩欧美在线不卡| 在线视频国内自拍亚洲视频| 成人一区二区视频| 日本不卡免费在线视频| 亚洲欧美一区二区三区久本道91| 精品精品欲导航| 欧美午夜精品理论片a级按摩| 国产电影一区在线| 久久精品国产亚洲aⅴ| 一区二区成人在线视频| 国产精品美女久久久久久久久| 日韩精品一区二区三区视频在线观看 | 国产伦精品一区二区三区免费| 亚洲欧美视频一区| 中文字幕中文字幕一区| 久久综合色8888| 精品久久久久久久久久久久久久久| 欧美午夜视频网站| 在线亚洲人成电影网站色www| 高清在线成人网| 国内精品视频666| 经典一区二区三区| 六月丁香综合在线视频| 日产精品久久久久久久性色| 亚洲国产日韩在线一区模特| 一区二区三区欧美视频| 亚洲欧美偷拍卡通变态| 亚洲人成网站影音先锋播放| 亚洲图片你懂的| 1区2区3区国产精品| 亚洲视频电影在线| 亚洲影院理伦片| 亚洲曰韩产成在线| 亚洲在线视频免费观看| 亚洲综合一区二区三区| 亚洲一区av在线| 亚洲高清免费观看| 日韩电影免费在线| 久久精品国产一区二区三 | 制服丝袜av成人在线看| 欧美日韩一区不卡| 欧美老肥妇做.爰bbww视频| 欧美精选午夜久久久乱码6080| 欧美三级中文字| 欧美一区二区精品在线| 欧美不卡一区二区三区四区| 精品人在线二区三区| 久久蜜臀中文字幕| 中文字幕中文字幕一区二区| 亚洲免费看黄网站| 丝袜美腿亚洲综合| 精品一区中文字幕| 粉嫩绯色av一区二区在线观看 | 秋霞午夜av一区二区三区| 免费高清不卡av| 国产寡妇亲子伦一区二区| 国产成人综合在线观看| 99久久99久久精品国产片果冻| 色综合天天综合网天天看片| 精品视频1区2区| 欧美成人精品1314www| 久久久久久99久久久精品网站| 中文字幕不卡在线播放| 夜夜夜精品看看| 久久精品国产99国产精品| 丁香天五香天堂综合| 色综合视频一区二区三区高清| 欧美精品在线观看一区二区| 精品少妇一区二区| 国产精品丝袜91| 日韩在线卡一卡二| 国产乱理伦片在线观看夜一区| 99久久久久久| 欧美美女黄视频| 欧美国产精品劲爆| 亚洲第一成人在线| 国产激情一区二区三区四区 | 国产一区二区不卡| 欧美怡红院视频| 久久久夜色精品亚洲| 一区二区三区成人| 精品一区二区三区久久久| 99久久99久久精品国产片果冻| 91精品综合久久久久久| 中文在线资源观看网站视频免费不卡| 曰韩精品一区二区| 国内精品免费**视频| 欧美调教femdomvk| 国产精品日韩成人| 琪琪久久久久日韩精品| 91美女蜜桃在线| 精品91自产拍在线观看一区| 亚洲精品免费在线播放| 韩国一区二区在线观看| 欧美日韩综合色| 中文字幕av一区二区三区高| 美女网站在线免费欧美精品| 色哟哟国产精品| 久久久夜色精品亚洲| 日韩成人午夜电影| 色菇凉天天综合网| 国产女主播一区| 国产一区二区日韩精品| 欧美精品亚洲一区二区在线播放| 国产精品欧美一级免费| 久久99久久精品欧美| 欧美视频一区在线| 日韩毛片在线免费观看| 豆国产96在线|亚洲| 久久综合视频网| 免费成人深夜小野草| 欧美三级乱人伦电影| 亚洲女与黑人做爰| 成人激情校园春色| 久久精品亚洲精品国产欧美kt∨| 日本午夜精品一区二区三区电影| 在线亚洲高清视频| 一区二区成人在线| 色国产综合视频| 亚洲乱码中文字幕综合| 成人99免费视频| 欧美国产一区二区| 国产成人精品亚洲日本在线桃色| 日韩一级片在线观看| 日韩国产精品91| 欧美日韩午夜在线| 亚洲成人资源在线| 在线观看av一区| 一区二区在线看| 91日韩一区二区三区| 亚洲人吸女人奶水| 色哟哟一区二区在线观看| 亚洲欧美一区二区三区久本道91| 99国产精品一区| 综合欧美一区二区三区| 91在线观看一区二区| 亚洲天堂2014| 在线观看视频一区| 亚洲国产va精品久久久不卡综合 | 久久精品人人爽人人爽| 国产成人综合自拍| 国产精品美女久久久久av爽李琼| 风间由美中文字幕在线看视频国产欧美| 国产性做久久久久久| 播五月开心婷婷综合| 亚洲激情av在线| 欧美浪妇xxxx高跟鞋交| 久久国产乱子精品免费女| 精品久久久久久久久久久院品网| 韩国av一区二区三区四区 | 日韩在线一区二区三区| 欧美成人免费网站| 成人丝袜18视频在线观看| 国产精品久久久久一区二区三区| 91在线精品一区二区三区| 亚洲国产美女搞黄色| 日韩亚洲电影在线| 国产v日产∨综合v精品视频| 亚洲精品久久久久久国产精华液| 欧美体内she精视频| 美腿丝袜亚洲色图| 日本一区二区成人在线| 色狠狠桃花综合| 久久疯狂做爰流白浆xx| 中文一区二区在线观看| 在线观看免费视频综合| 蜜桃视频一区二区三区| 亚洲国产精品精华液ab| 欧美写真视频网站| 激情综合亚洲精品| 亚洲人成亚洲人成在线观看图片 | 欧美性生交片4| 久久成人久久鬼色| 最新不卡av在线| 精品久久人人做人人爰| 91在线观看污| 久久99国产精品尤物| 亚洲欧美一区二区三区孕妇| 日韩欧美国产高清| 一本一本大道香蕉久在线精品| 日韩黄色小视频| 亚洲欧美在线高清| 日韩欧美不卡在线观看视频| 色综合久久久久综合99| 激情久久五月天| 亚洲午夜成aⅴ人片| 久久精品夜色噜噜亚洲a∨| 欧美日韩dvd在线观看| 成人av综合在线| 免费人成网站在线观看欧美高清| 国产精品电影一区二区三区| 91精品国产色综合久久ai换脸| 成人av电影在线观看| 久久99国产精品久久99| 亚洲高清免费观看高清完整版在线观看| 久久久国产精品午夜一区ai换脸|