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

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

?? input.cpp

?? windows ce 50 drive program
?? CPP
字號:
// -----------------------------------------------------------------------------
//
//      THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
//      ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
//      THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
//      PARTICULAR PURPOSE.
//      Copyright (c) 1995-2000 Microsoft Corporation.  All rights reserved.
//
// -----------------------------------------------------------------------------
#include "wavemain.h"

// Init input m_DeltaT with (HWSampleRate/SampleRate) calculated in 24.8 fixed point form
// Note that we need to hold the result in a 64-bit value until we're done shifting,
// since the result of the multiply will overflow 32 bits for sample rates greater than
// or equal to the hardware's sample rate.
DWORD InputStreamContext::SetRate(DWORD dwMultiplier)
{
    m_dwMultiplier = dwMultiplier;

    UINT64 Delta = (m_WaveFormat.nSamplesPerSec * m_dwMultiplier) >> 16;
    Delta = ((UINT32)(((1i64<<32)/Delta)+1));
    Delta = (Delta * SAMPLERATE) >> 24;
    m_DeltaT = (DWORD)Delta;
    return MMSYSERR_NOERROR;
}

DWORD InputStreamContext::Stop()
{
    // Stop the stream
    WaveStreamContext::Stop();

    // Return any partially filled buffers to the client
    if ((m_lpWaveHdrCurrent) && (m_lpWaveHdrCurrent->dwBytesRecorded>0))
    {
        GetNextBuffer();
    }

    return MMSYSERR_NOERROR;
}

#if (OUTCHANNELS==2)
PBYTE InputStreamContext::Render2(PBYTE pBuffer, PBYTE pBufferEnd, PBYTE pBufferLast)
{
    PBYTE pCurrData = m_lpCurrData;
    PBYTE pCurrDataEnd = m_lpCurrDataEnd;

    LONG CurrT = m_CurrT;
    LONG DeltaT = m_DeltaT;
    PCM_TYPE SampleType = m_SampleType;

    LONG CurrSamp0 = m_CurrSamp[0];
    LONG PrevSamp0 = m_PrevSamp[0];
    LONG CurrSamp1 = m_CurrSamp[1];
    LONG PrevSamp1 = m_PrevSamp[1];
    LONG InSamp0;
    LONG InSamp1;

    for (;;)
    {
        // Make sure we have a place to put the data
        if (pCurrData>=pCurrDataEnd)
        {
            goto Exit;
        }

        // Get the next sample
        while (CurrT >= 0x100)
        {
            if (pBuffer>=pBufferEnd)
            {
                goto Exit;
            }

            PrevSamp0 = CurrSamp0;
            PrevSamp1 = CurrSamp1;

            CurrSamp0 = ((HWSAMPLE *)pBuffer)[0];
            CurrSamp1 = ((HWSAMPLE *)pBuffer)[1];
            pBuffer += 2*sizeof(HWSAMPLE);

            // Apply input gain?
            // CurrSamp0 = (CurrSamp0 * fxpGain) >> 16;
            // CurrSamp1 = (CurrSamp1 * fxpGain) >> 16;

            CurrT -= 0x100;
        }

        InSamp0 = (PrevSamp0 + ((CurrT * (CurrSamp0 - PrevSamp0)) >> 8));
        InSamp1 = (PrevSamp1 + ((CurrT * (CurrSamp1 - PrevSamp1)) >> 8));
        CurrT += DeltaT;

        PPCM_SAMPLE pSampleDest = (PPCM_SAMPLE)pCurrData;
        switch (m_SampleType)
        {
        case PCM_TYPE_M8:
        default:
            pSampleDest->m8.sample = (UINT8)( ((InSamp0+InSamp1) >> 9) + 128);
            pCurrData  += 1;
            break;

        case PCM_TYPE_S8:
            pSampleDest->s8.sample_left  = (UINT8)((InSamp0 >> 8) + 128);
            pSampleDest->s8.sample_right = (UINT8)((InSamp1 >> 8) + 128);
            pCurrData  += 2;
            break;

        case PCM_TYPE_M16:
            pSampleDest->m16.sample = (INT16)((InSamp0+InSamp1)>>1);
            pCurrData  += 2;
            break;

        case PCM_TYPE_S16:
            pSampleDest->s16.sample_left  = (INT16)InSamp0;
            pSampleDest->s16.sample_right = (INT16)InSamp1;
            pCurrData  += 4;
            break;
        }
    }

Exit:
    m_lpWaveHdrCurrent->dwBytesRecorded += (pCurrData-m_lpCurrData);
    m_dwByteCount += (pCurrData-m_lpCurrData);
    m_lpCurrData = pCurrData;
    m_CurrT = CurrT;
    m_PrevSamp[0] = PrevSamp0;
    m_CurrSamp[0] = CurrSamp0;
    m_PrevSamp[1] = PrevSamp1;
    m_CurrSamp[1] = CurrSamp1;
    return pBuffer;
}
#else
PBYTE InputStreamContext::Render2(PBYTE pBuffer, PBYTE pBufferEnd, PBYTE pBufferLast)
{
    PBYTE pCurrData = m_lpCurrData;
    PBYTE pCurrDataEnd = m_lpCurrDataEnd;

    LONG CurrT = m_CurrT;
    LONG DeltaT = m_DeltaT;

    LONG CurrSamp0 = m_CurrSamp[0];
    LONG PrevSamp0 = m_PrevSamp[0];
    LONG InSamp0;

    PCM_TYPE SampleType = m_SampleType;

    for (;;)
    {
        // Make sure we have a place to put the data
        if (pCurrData>=pCurrDataEnd)
        {
            goto Exit;
        }

        // Get the next sample
        while (CurrT >= 0x100)
        {
            if (pBuffer>=pBufferEnd)
            {
                goto Exit;
            }

            PrevSamp0 = CurrSamp0;
            CurrSamp0 = *(HWSAMPLE *)pBuffer;
            pBuffer += sizeof(HWSAMPLE);

            // Apply input gain?
            // CurrSamp0 = (CurrSamp0 * fxpGain) >> 16;

            CurrT -= 0x100;
        }

        InSamp0 = (PrevSamp0 + ((CurrT * (CurrSamp0 - PrevSamp0)) >> 8));
        CurrT += DeltaT;

        PPCM_SAMPLE pSampleDest = (PPCM_SAMPLE)pCurrData;
        switch (m_SampleType)
        {
        case PCM_TYPE_M8:
        default:
            pSampleDest->m8.sample = (UINT8)((InSamp0 >> 8) + 128);
            pCurrData  += 1;
            break;

        case PCM_TYPE_S8:
            pSampleDest->s8.sample_left  = (UINT8)((InSamp0 >> 8) + 128);
            pSampleDest->s8.sample_right = (UINT8)((InSamp0 >> 8) + 128);
            pCurrData  += 2;
            break;

        case PCM_TYPE_M16:
            pSampleDest->m16.sample = (INT16)InSamp0;
            pCurrData  += 2;
            break;

        case PCM_TYPE_S16:
            pSampleDest->s16.sample_left  = (INT16)InSamp0;
            pSampleDest->s16.sample_right = (INT16)InSamp0;
            pCurrData  += 4;
            break;
        }
    }

Exit:
    m_lpWaveHdrCurrent->dwBytesRecorded += (pCurrData-m_lpCurrData);
    m_dwByteCount += (pCurrData-m_lpCurrData);
    m_lpCurrData = pCurrData;
    m_CurrT = CurrT;
    m_PrevSamp[0] = PrevSamp0;
    m_CurrSamp[0] = CurrSamp0;
    return pBuffer;
}
#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲最新视频在线播放| 麻豆视频一区二区| 最近日韩中文字幕| 久久久www免费人成精品| 日韩免费电影一区| 日韩网站在线看片你懂的| 欧美精品久久一区| 欧美高清视频不卡网| 欧美日韩一区二区三区四区五区 | 成人性生交大片免费看视频在线| 久久激情五月婷婷| 美国十次综合导航| 另类小说综合欧美亚洲| 精品一区二区三区久久久| 激情五月激情综合网| 国产曰批免费观看久久久| 国产麻豆精品在线| 东方aⅴ免费观看久久av| 成人精品视频一区| 一本到不卡精品视频在线观看| 色婷婷av久久久久久久| 欧洲精品中文字幕| 51久久夜色精品国产麻豆| 日韩欧美电影一区| 国产欧美一区二区三区在线看蜜臀 | 色婷婷香蕉在线一区二区| 在线看国产日韩| 欧美肥妇bbw| 精品国产百合女同互慰| 国产欧美日韩久久| 亚洲伦理在线精品| 日韩精品视频网| 国产一区二三区好的| 成人av影院在线| 欧美性xxxxxx少妇| 精品免费99久久| 国产精品看片你懂得| 亚洲日本一区二区| 日韩一区精品字幕| 国产成人在线免费观看| 色琪琪一区二区三区亚洲区| 51精品秘密在线观看| 久久精品亚洲国产奇米99| 亚洲色大成网站www久久九九| 性做久久久久久免费观看| 韩国女主播一区| 91丨porny丨蝌蚪视频| 91精品国产91久久久久久最新毛片 | 色噜噜狠狠一区二区三区果冻| 欧美精品日韩一本| 国产区在线观看成人精品| 亚洲线精品一区二区三区八戒| 日本久久电影网| 日韩一区二区在线观看视频| 国产精品乱码一区二区三区软件| 亚洲超碰精品一区二区| 成人午夜视频免费看| 欧美日韩国产一级二级| 中文字幕免费一区| 日韩av二区在线播放| av不卡免费电影| 精品久久久久久久久久久久久久久久久 | 国内精品嫩模私拍在线| 色一区在线观看| 久久久久久亚洲综合| 亚洲成a人v欧美综合天堂| 国产.精品.日韩.另类.中文.在线.播放| 在线观看免费一区| 欧美国产日韩精品免费观看| 免费观看在线综合色| 在线一区二区三区四区五区| 国产午夜精品福利| 秋霞国产午夜精品免费视频| 91视视频在线观看入口直接观看www | 久久精品国产99国产精品| 91麻豆免费观看| 国产欧美精品一区二区色综合朱莉| 天天综合网天天综合色 | 中文字幕日本乱码精品影院| 蜜臀av一区二区| 欧美色爱综合网| **欧美大码日韩| 国产·精品毛片| 亚洲精品一区二区精华| 三级久久三级久久久| 日本久久电影网| 亚洲日本免费电影| 丁香激情综合国产| 久久久久久一二三区| 久久66热偷产精品| 日韩一级免费观看| 视频一区二区中文字幕| 欧日韩精品视频| 一区二区三区.www| 色悠悠久久综合| 中文字幕一区在线观看视频| 国产一本一道久久香蕉| 精品国产免费一区二区三区香蕉| 日日噜噜夜夜狠狠视频欧美人| 欧美午夜电影网| 亚洲综合网站在线观看| 欧美综合久久久| 亚洲综合区在线| 欧美少妇一区二区| 亚洲国产日韩综合久久精品| 欧美丝袜丝交足nylons| 亚洲一二三四久久| 欧美在线观看视频一区二区三区| 一区二区三区在线免费视频| 91国内精品野花午夜精品| 伊人婷婷欧美激情| 欧美三级三级三级| 亚洲成av人片| 91精品国产丝袜白色高跟鞋| 蜜桃视频一区二区| 久久综合色8888| 成人综合激情网| 国产精品网曝门| 972aa.com艺术欧美| 一区二区三区成人| 欧美色图在线观看| 日韩不卡在线观看日韩不卡视频| 91精品国产一区二区人妖| 精品无人区卡一卡二卡三乱码免费卡| 日韩精品综合一本久道在线视频| 激情深爱一区二区| 国产欧美一区二区精品性色| 成人精品在线视频观看| 亚洲综合图片区| 日韩免费看的电影| 国产不卡在线一区| 亚洲日本成人在线观看| 欧美日本一区二区在线观看| 另类的小说在线视频另类成人小视频在线| 精品欧美一区二区久久| 国产精品一二三四五| 亚洲天堂久久久久久久| 在线看一区二区| 捆绑调教美女网站视频一区| 中文字幕av资源一区| 欧美午夜一区二区三区免费大片| 美女一区二区久久| 中文字幕中文字幕中文字幕亚洲无线| av午夜一区麻豆| 午夜影院久久久| 久久久久久久综合色一本| 91麻豆国产精品久久| 日韩精品五月天| 中文字幕一区二区三区蜜月| 欧美高清你懂得| 成人av在线影院| 麻豆91在线播放免费| 日韩理论片在线| 日韩精品一区二区三区在线观看 | caoporn国产一区二区| 亚洲丶国产丶欧美一区二区三区| 精品1区2区在线观看| 91色综合久久久久婷婷| 老司机精品视频在线| 亚洲欧洲一区二区在线播放| 欧美一级淫片007| 91免费在线看| 九色综合狠狠综合久久| 亚洲日本va午夜在线影院| 日韩精品一区在线观看| 色综合视频一区二区三区高清| 老司机免费视频一区二区| 亚洲毛片av在线| 久久这里都是精品| 欧美视频一区在线观看| 粉嫩aⅴ一区二区三区四区 | 欧美精品自拍偷拍| 成人丝袜高跟foot| 免费成人在线观看| 亚洲一区二区三区美女| 国产日韩一级二级三级| 欧美一级日韩不卡播放免费| 91啪在线观看| 粉嫩久久99精品久久久久久夜| 欧美96一区二区免费视频| 一区二区免费视频| 国产精品美女一区二区三区| 精品国产欧美一区二区| 欧美一区二区三区日韩视频| 色哟哟一区二区在线观看| 成人免费毛片a| 国产一区二区不卡| 麻豆精品一区二区三区| 亚洲国产精品久久人人爱| 中文字幕中文在线不卡住| 久久久www免费人成精品| 日韩欧美一区在线| 6080国产精品一区二区| 欧美揉bbbbb揉bbbbb| 91视频xxxx| 91丨porny丨在线| 91最新地址在线播放| 成人av影院在线| 成人a区在线观看| 国产91色综合久久免费分享|