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

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

?? wavemain.cpp

?? SMDK2440 s3c2440 WINCE 5.00 bsp 編譯通過
?? CPP
?? 第 1 頁 / 共 2 頁
字號(hào):
            dwRet = g_pHWContext->GetNumOutputDevices();
            break;
        }

    case WIDM_GETNUMDEVS:
        {
            dwRet = g_pHWContext->GetNumInputDevices();
            break;
        }

    case WODM_GETDEVCAPS:
        {
            DeviceContext *pDeviceContext;

            if (pStreamContext)
            {
                pDeviceContext=pStreamContext->GetDeviceContext();
            }
            else
            {
                pDeviceContext = g_pHWContext->GetOutputDeviceContext(uDeviceId);
            }

            dwRet = pDeviceContext->GetDevCaps((PVOID)dwParam1,dwParam2);
            break;
        }


    case WIDM_GETDEVCAPS:
        {
            DeviceContext *pDeviceContext;

            if (pStreamContext)
            {
                pDeviceContext=pStreamContext->GetDeviceContext();
            }
            else
            {
                pDeviceContext = g_pHWContext->GetInputDeviceContext(uDeviceId);
            }

            dwRet = pDeviceContext->GetDevCaps((PVOID)dwParam1,dwParam2);
            break;
        }

    case WODM_GETEXTDEVCAPS:
        {
            DeviceContext *pDeviceContext;
            UINT NumDevs = g_pHWContext->GetNumOutputDevices();

            if (pStreamContext)
            {
                pDeviceContext=pStreamContext->GetDeviceContext();
            }
            else
            {
                pDeviceContext = g_pHWContext->GetOutputDeviceContext(uDeviceId);
            }

            dwRet = pDeviceContext->GetExtDevCaps((PVOID)dwParam1,dwParam2);
            break;
        }

    case WODM_OPEN:
        {
            // DEBUGMSG(1, (TEXT("WODM_OPEN\r\n"));
            DeviceContext *pDeviceContext = g_pHWContext->GetOutputDeviceContext(uDeviceId);
            dwRet = pDeviceContext->OpenStream((LPWAVEOPENDESC)dwParam1, dwParam2, (StreamContext **)dwUser);
            break;
        }

    case WIDM_OPEN:
        {
            // DEBUGMSG(1, (TEXT("WIDM_OPEN\r\n"));
            DeviceContext *pDeviceContext = g_pHWContext->GetInputDeviceContext(uDeviceId);
            dwRet = pDeviceContext->OpenStream((LPWAVEOPENDESC)dwParam1, dwParam2, (StreamContext **)dwUser);
            break;
        }

    case WODM_CLOSE:
    case WIDM_CLOSE:
        {
            // DEBUGMSG(1, (TEXT("WIDM_CLOSE/WODM_CLOSE\r\n"));
            dwRet = pStreamContext->Close();

            // Release stream context here, rather than inside StreamContext::Close, so that if someone
            // (like CMidiStream) has subclassed Close there's no chance that the object will get released
            // out from under them.
            if (dwRet==MMSYSERR_NOERROR)
            {
                pStreamContext->Release();
            }
            break;
        }

    case WODM_RESTART:
    case WIDM_START:
        {
            dwRet = pStreamContext->Run();
            break;
        }

    case WODM_PAUSE:
    case WIDM_STOP:
        {
            dwRet = pStreamContext->Stop();
            break;
        }

    case WODM_GETPOS:
    case WIDM_GETPOS:
        {
            dwRet = pStreamContext->GetPos((PMMTIME)dwParam1);
            break;
        }

    case WODM_RESET:
    case WIDM_RESET:
        {
            dwRet = pStreamContext->Reset();
            break;
        }

    case WODM_WRITE:
    case WIDM_ADDBUFFER:
        {
            // DEBUGMSG(1, (TEXT("WODM_WRITE/WIDM_ADDBUFFER, Buffer=0x%x\r\n"),dwParam1);
            dwRet = pStreamContext->QueueBuffer((LPWAVEHDR)dwParam1);
            break;
        }

    case WODM_GETVOLUME:
        {
            PULONG pdwGain = (PULONG)dwParam1;

            if (pStreamContext)
            {
                *pdwGain = pStreamContext->GetGain();
            }
            else
            {
                // Handle device gain in hardware
                *pdwGain = g_pHWContext->GetOutputGain();
                // Handle device gain in software
                //DeviceContext *pDeviceContext = g_pHWContext->GetOutputDeviceContext(uDeviceId);
                //*pdwGain = pDeviceContext->GetGain();
            }
            dwRet = MMSYSERR_NOERROR;
            break;
        }

    case WODM_SETVOLUME:
        {
            LONG dwGain = dwParam1;
            if (pStreamContext)
            {
                dwRet = pStreamContext->SetGain(dwGain);
            }
            else
            {
                // Handle device gain in hardware
                dwRet = g_pHWContext->SetOutputGain(dwGain);
                // Handle device gain in software
                //DeviceContext *pDeviceContext = g_pHWContext->GetOutputDeviceContext(uDeviceId);
                //dwRet = pDeviceContext->SetGain(dwGain);
            }
            break;
        }

    case WODM_BREAKLOOP:
        {
            dwRet = pStreamContext->BreakLoop();
            break;
        }

    case WODM_SETPLAYBACKRATE:
        {
            WaveStreamContext *pWaveStream = (WaveStreamContext *)dwUser;
            dwRet = pWaveStream->SetRate(dwParam1);
            break;
        }

    case WODM_GETPLAYBACKRATE:
        {
            WaveStreamContext *pWaveStream = (WaveStreamContext *)dwUser;
            dwRet = pWaveStream->GetRate((DWORD *)dwParam1);
            break;
        }

    case MM_WOM_SETSECONDARYGAINCLASS:
        {
            dwRet = pStreamContext->SetSecondaryGainClass(dwParam1);
            break;
        }

    case MM_WOM_SETSECONDARYGAINLIMIT:
        {
            DeviceContext *pDeviceContext;
            if (pStreamContext)
            {
                pDeviceContext = pStreamContext->GetDeviceContext();
            }
            else
            {
                pDeviceContext = g_pHWContext->GetOutputDeviceContext(uDeviceId);
            }
            dwRet = pDeviceContext->SetSecondaryGainLimit(dwParam1,dwParam2);
            break;
        }

    case MM_MOM_MIDIMESSAGE:
        {
            CMidiStream *pMidiStream = (CMidiStream *)dwUser;
            dwRet = pMidiStream->MidiMessage(dwParam1);
            break;
        }
// unsupported messages
    case WODM_GETPITCH:
    case WODM_SETPITCH:
    case WODM_PREPARE:
    case WODM_UNPREPARE:
    case WIDM_PREPARE:
    case WIDM_UNPREPARE:
        default:
        dwRet  = MMSYSERR_NOTSUPPORTED;
    }
    g_pHWContext->Unlock();

    // Pass the return code back via pBufOut
    if (pdwResult)
    {
        *pdwResult = dwRet;
    }

    return(TRUE);
}

// -----------------------------------------------------------------------------
//
//  @doc    WDEV_EXT
//
//  @func   BOOL | WAV_IOControl | Device IO control routine
//
//  @parm   DWORD | dwOpenData | Value returned from WAV_Open call
//
//  @parm   DWORD | dwCode |
//          IO control code for the function to be performed. WAV_IOControl only
//          supports one IOCTL value (IOCTL_WAV_MESSAGE)
//
//  @parm   PBYTE | pBufIn |
//          Pointer to the input parameter structure (<t MMDRV_MESSAGE_PARAMS>).
//
//  @parm   DWORD | dwLenIn |
//          Size in bytes of input parameter structure (sizeof(<t MMDRV_MESSAGE_PARAMS>)).
//
//  @parm   PBYTE | pBufOut | Pointer to the return value (DWORD).
//
//  @parm   DWORD | dwLenOut | Size of the return value variable (sizeof(DWORD)).
//
//  @parm   PDWORD | pdwActualOut | Unused
//
//  @rdesc  Returns TRUE for success, FALSE for failure
//
//  @xref   <t Wave Input Driver Messages> (WIDM_XXX) <nl>
//          <t Wave Output Driver Messages> (WODM_XXX)
//
// -----------------------------------------------------------------------------
extern "C" BOOL WAV_IOControl(PDWORD  pdwOpenData,
                   DWORD  dwCode,
                   PBYTE  pBufIn,
                   DWORD  dwLenIn,
                   PBYTE  pBufOut,
                   DWORD  dwLenOut,
                   PDWORD pdwActualOut)
{

    // check caller trust. if context hasn't been initialized, load from CeGetCallerTrust.
    if (*pdwOpenData != OEM_CERTIFY_TRUST) {
        if (OEM_CERTIFY_TRUST != (*pdwOpenData = CeGetCallerTrust())) {
            PRINTMSG(ZONE_WARN, (TEXT("WAV_IoControl: untrusted process\r\n")));
            SetLastError(ERROR_ACCESS_DENIED);
            return FALSE;
        }
    }

    _try
    {
        switch (dwCode)
        {
        case IOCTL_MIX_MESSAGE:
                        return HandleMixerMessage((PMMDRV_MESSAGE_PARAMS)pBufIn, (DWORD *)pBufOut);

        case IOCTL_WAV_MESSAGE:
            return HandleWaveMessage((PMMDRV_MESSAGE_PARAMS)pBufIn, (DWORD *)pBufOut);
        }

    }
    _except (GetExceptionCode() == STATUS_ACCESS_VIOLATION ? EXCEPTION_EXECUTE_HANDLER : EXCEPTION_CONTINUE_SEARCH)
    {
        RETAILMSG(1, (TEXT("EXCEPTION IN WAV_IOControl!!!!\r\n")));
        SetLastError(E_FAIL);
    }

    return(FALSE);
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品久久777777| 波多野结衣一区二区三区 | jlzzjlzz亚洲日本少妇| 色婷婷精品大在线视频| 日本vs亚洲vs韩国一区三区二区| 亚洲综合免费观看高清完整版| 国产精品久线观看视频| 日韩一区欧美一区| **性色生活片久久毛片| 日韩毛片视频在线看| 一区二区国产视频| 欧美性生活久久| 欧美一区二区在线免费观看| 欧美二区三区91| 2020日本不卡一区二区视频| 久久久综合九色合综国产精品| 欧美国产日韩精品免费观看| 国产精品国产自产拍高清av| 亚洲精品成a人| 91啦中文在线观看| 欧美精品丝袜中出| 久久这里只有精品视频网| 久久九九国产精品| 国产精品国产三级国产a| 一区二区三区中文字幕在线观看| 亚洲小说春色综合另类电影| 亚洲一级片在线观看| 亚洲成av人片在线| 麻豆国产精品视频| 国产一区视频导航| 成人午夜电影小说| 欧美一区二区视频在线观看| 国产亚洲女人久久久久毛片| 一区二区三区影院| 国内精品久久久久影院色| 国产精品资源网| 色综合婷婷久久| 精品国产乱码久久久久久免费| 成人免费在线观看入口| 久色婷婷小香蕉久久| av成人免费在线| 精品国产91乱码一区二区三区 | 色综合久久99| 91精品国产91久久综合桃花| 国产人久久人人人人爽| 亚洲第一福利一区| 99亚偷拍自图区亚洲| 欧美xxxxxxxx| 亚洲欧美一区二区三区极速播放| 日本欧美加勒比视频| av电影一区二区| 国产视频一区在线播放| 欧美日免费三级在线| 777奇米成人网| 亚洲自拍欧美精品| 夜夜嗨av一区二区三区四季av| 欧洲av在线精品| 精品国产3级a| 1000部国产精品成人观看| 精品在线你懂的| 欧美日韩精品一区二区三区| 亚洲日本在线视频观看| 欧美r级电影在线观看| 亚洲大尺度视频在线观看| 91久久免费观看| 中文字幕一区二区三区在线播放| 久久国产夜色精品鲁鲁99| 欧美日韩国产系列| 国产亚洲精品bt天堂精选| 久久精品72免费观看| 欧美一区二区福利在线| 欧美一区二区三区色| 亚洲国产成人高清精品| 欧美三级日韩三级| 国产精品你懂的在线| 亚洲免费在线播放| 精品国产成人在线影院| 人禽交欧美网站| 日本三级亚洲精品| 成人国产视频在线观看| 日韩视频免费观看高清在线视频| 中文字幕日韩精品一区 | 日韩午夜av电影| 日本va欧美va欧美va精品| 欧美老肥妇做.爰bbww视频| 日日摸夜夜添夜夜添国产精品| 国产美女一区二区| 久久久一区二区三区捆绑**| 国产精品一区二区x88av| 国产片一区二区| 成人av免费在线播放| 国产精品美女www爽爽爽| 91久久一区二区| 中文在线一区二区 | 国产成人精品一区二区三区四区 | 精品影院一区二区久久久| 欧美日韩免费一区二区三区 | 国产麻豆欧美日韩一区| 日本一区二区三区在线观看| 97精品超碰一区二区三区| 亚洲成人精品一区二区| 欧美一区二区视频在线观看| 91精品婷婷国产综合久久竹菊| 久草这里只有精品视频| 中文字幕视频一区| 91精品国产91热久久久做人人| 理论电影国产精品| 韩国理伦片一区二区三区在线播放 | 国产片一区二区| 成人国产精品免费观看动漫 | voyeur盗摄精品| 午夜精品在线看| 国产日韩精品久久久| 91极品视觉盛宴| 国产真实乱子伦精品视频| 亚洲精品写真福利| 精品成人一区二区三区四区| 波多野结衣中文字幕一区二区三区 | 中文字幕一区二区三区不卡在线| 欧美三级在线视频| 成人免费看的视频| 精品国产91九色蝌蚪| 中文字幕的久久| 国内精品免费**视频| 亚洲欧洲av一区二区三区久久| 欧美日韩aaa| 99久久久久久| 日韩av午夜在线观看| 亚洲区小说区图片区qvod| 2023国产精品自拍| 欧美一区日本一区韩国一区| 91麻豆国产香蕉久久精品| 精品一二线国产| 舔着乳尖日韩一区| 亚洲综合色丁香婷婷六月图片| 欧美国产日韩a欧美在线观看| 日韩视频一区二区在线观看| 91女神在线视频| caoporn国产一区二区| 国产精品影音先锋| 老司机午夜精品| 亚洲福利视频三区| 亚洲国产日日夜夜| 中文字幕精品—区二区四季| 欧美日韩第一区日日骚| 日韩精品欧美精品| 91精品国产91久久综合桃花| 亚洲精品网站在线观看| 国产精品视频观看| 国产精品视频第一区| 精品久久人人做人人爰| 日韩免费电影网站| 日韩三级免费观看| 亚洲精品一区二区在线观看| 欧美tk丨vk视频| 国产亚洲欧美日韩在线一区| 久久精品视频一区二区三区| 久久网站热最新地址| 久久久99免费| 国产欧美一区二区精品忘忧草 | 中文字幕一区二| 亚洲欧美中日韩| 中文字幕一区av| 亚洲午夜电影网| 天天操天天干天天综合网| 日韩在线卡一卡二| 日韩欧美一级片| 国产午夜亚洲精品理论片色戒| 久久精品欧美日韩| 国产女人aaa级久久久级| 综合自拍亚洲综合图不卡区| 国产精品色眯眯| 国产乱人伦偷精品视频不卡| 国产曰批免费观看久久久| 国产 欧美在线| 91年精品国产| 欧美一区二区在线不卡| 精品久久久久久最新网址| 精品国产一区二区三区不卡| 中文一区在线播放| 亚洲国产精品欧美一二99| 丝袜诱惑制服诱惑色一区在线观看| 精品一区二区综合| 国产成人啪免费观看软件| 在线观看日韩一区| 精品少妇一区二区三区视频免付费| 国产精品久久久久久久午夜片 | 午夜欧美2019年伦理| 国产一区二区三区精品欧美日韩一区二区三区 | 久久综合一区二区| 一区二区三区日韩欧美精品| 性久久久久久久久久久久| 欧美电影在哪看比较好| 555www色欧美视频| 日韩伦理av电影| 国内精品嫩模私拍在线| 欧美日韩一区二区在线观看| 欧美日韩夫妻久久| 日韩中文字幕1| 亚洲午夜私人影院|