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

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

?? audio.cpp

?? freesacle mx21下的聲卡alc5620的驅動程序
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
//
// Copyright (c) Microsoft Corporation.  All rights reserved.
//
//
// Use of this source code is subject to the terms of the Microsoft end-user
// license agreement (EULA) under which you licensed this SOFTWARE PRODUCT.
// If you did not accept the terms of the EULA, you are not authorized to use
// this source code. For a copy of the EULA, please see the LICENSE.RTF on your
// install media.
//
//------------------------------------------------------------------------------
//
//  Copyright (C) 2004, Freescale Semiconductor, Inc. All Rights Reserved
//  THIS SOURCE CODE IS CONFIDENTIAL AND PROPRIETARY AND MAY NOT
//  BE USED OR DISTRIBUTED WITHOUT THE WRITTEN PERMISSION OF
//  FREESCALE SEMICONDUCTOR, INC.
//
//------------------------------------------------------------------------------
//
// Copyright (C) 2005, MOTOROLA, INC. All Rights Reserved
// THIS SOURCE CODE IS CONFIDENTIAL AND PROPRIETARY AND MAY NOT
// BE USED OR DISTRIBUTED WITHOUT THE WRITTEN PERMISSION OF
// MOTOROLA, INC.
//
//------------------------------------------------------------------------------

//------------------------------------------------------------------------------
//
//  Module: audio.cpp
//
//  Common audio helper library.
//
//------------------------------------------------------------------------------

//------------------------------------------------------------------------------
// INCLUDE FILES  
//------------------------------------------------------------------------------
#include "bsp.h"
#include "audio.h"

//------------------------------------------------------------------------------
// GLOBAL DEFINITIONS  
//------------------------------------------------------------------------------
#define AUDIO_DEBUG_MSG     1
#define AUDIO_ERROR_MSG     1

//------------------------------------------------------------------------------
// GLOBAL OR STATIC VARIABLES  
//------------------------------------------------------------------------------
SsiClass *g_Ssi = NULL;
RT_CodecComm	*g_Codec = NULL;
static AudmuxClass *g_Audmux = NULL;

//------------------------------------------------------------------------------
// STATIC FUNCTION PROTOTYPES  
//------------------------------------------------------------------------------

//------------------------------------------------------------------------------
// EXPORTED FUNCTIONS
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
//
//  FUNCTION:       audioInit
//
//  DESCRIPTION:    Initialises the audio hardware.
//                  
//  PARAMETERS:     
//                  codec - [OUT] pointer to Wm8731Class object
//                  ssi - [OUT] pointer to SsiClass object
//                  audmux - [OUT] pointer to AudmuxClass object
//                  dmac - [OUT] pointer to DmacClass object
//                  txBufferSize - [IN] size of 1 TX DMA buffer.
//                  txbuffer - [IN] PHYSICAL address of TX DMA buffer
//                  rxBufferSize - [IN] size of 1 TX DMA buffer.
//                  rxbuffer - [IN] PHYSICAL address of RX DMA buffer
//                  ssiDmaEn - [IN] Enable SSI DMA if TRUE
//                  ssiIntrEn - [IN] Enable SSI interrupts if TRUE
//                  txDmaCh - [OUT] allocated TX DMA channel
//                  rxDmaCh - [OUT] allocated RX DMA channel
//
//  RETURNS:        
//                  TRUE for success initialisation.
//                  FALSE otherwise
//
//------------------------------------------------------------------------------
BOOL audioHwInit(   BOOL        ssiDmaEn,
                    BOOL        ssiIntrEn,
                    UINT32      txBuffer,
                    UINT32      txBufferSize,
                    UINT32      rxBuffer,
                    UINT32      rxBufferSize,
                    UINT8       *txDmaCh,
                    UINT8       *rxDmaCh)
{
    SSI_MODULE_CONFIG   ssiConfig;
    AUDMUX_PORT_CONFIG  audmuxConfig;
    DMAC_CHANNEL_CFG dmaCfg;

    g_Ssi = new SsiClass(AUDIO_SSI_ID);

	g_Codec = new RT_CodecComm;

    g_Audmux = new AudmuxClass;    
    
    if(!g_Ssi || !g_Codec || !g_Audmux)
    {
        ERRORMSG(1, (TEXT("Audio NULL pointer!\r\n")));
        return FALSE;
    }
        
    // Lock SSI resource
    g_Ssi->Lock();

    ///////////////////////////////////////////////////////
    //  TO2 CONFIGURATION : 
    //  - SSI NORMAL network mode
    //  - CODEC SET AS MASTER, MSB-LEFT JUSTIFIED 
    /////////////////////////////////////////////////////////
    ssiConfig.mode = SSI_MODE_NORMAL;
    ssiConfig.modeConfig.normalConfig.netEnable = TRUE ; 
    ssiConfig.modeConfig.normalConfig.txSlotMask = 0xFFFFFFFA;
    ssiConfig.modeConfig.normalConfig.rxSlotMask = 0xFFFFFFFA;
    ssiConfig.modeConfig.normalConfig.twoChannelMode = FALSE; 
    ssiConfig.modeConfig.normalConfig.clkIdleHigh = FALSE;
    ssiConfig.modeConfig.normalConfig.sysClkOut = FALSE;
    ssiConfig.modeConfig.normalConfig.sync = TRUE; //FALSE; 
    //ssiConfig.modeConfig.normalConfig.sync = FALSE; 
    ssiConfig.modeConfig.normalConfig.tx.clkSrcIp = FALSE; 
    ssiConfig.modeConfig.normalConfig.tx.shiftWrtBit0 = TRUE; 
    ssiConfig.modeConfig.normalConfig.tx.fsInternal = FALSE; 
    ssiConfig.modeConfig.normalConfig.tx.clkInternal = FALSE; 
    ssiConfig.modeConfig.normalConfig.tx.lsbFirst = FALSE; 
    ssiConfig.modeConfig.normalConfig.tx.fallingEdgeLatch = TRUE; 
    ssiConfig.modeConfig.normalConfig.tx.fsActiveLow = FALSE; 
    ssiConfig.modeConfig.normalConfig.tx.singleClockFs = FALSE; 
    ssiConfig.modeConfig.normalConfig.tx.earlyFs = FALSE; 
    ssiConfig.modeConfig.normalConfig.rx.clkSrcIp = FALSE; 
    ssiConfig.modeConfig.normalConfig.rx.shiftWrtBit0 = TRUE; 
    ssiConfig.modeConfig.normalConfig.rx.fsInternal = FALSE; 
    ssiConfig.modeConfig.normalConfig.rx.clkInternal = FALSE; 
    ssiConfig.modeConfig.normalConfig.rx.lsbFirst = FALSE; 
    ssiConfig.modeConfig.normalConfig.rx.fallingEdgeLatch = TRUE; 
    ssiConfig.modeConfig.normalConfig.rx.fsActiveLow = FALSE; 
    ssiConfig.modeConfig.normalConfig.rx.singleClockFs = FALSE; 
    ssiConfig.modeConfig.normalConfig.rx.earlyFs = FALSE;                
    // ssiConfig.modeConfig.normalConfig.txClkConfig.frameRate = SSI_FRAMERATE_44100;
    // ssiConfig.modeConfig.normalConfig.txClkConfig.overSampleValue = 256;
    ssiConfig.modeConfig.normalConfig.txClkConfig.wordLen = AUDIO_TX_WORD_LEN;
    ssiConfig.modeConfig.normalConfig.txClkConfig.dc = 4;
    ssiConfig.txEnable = TRUE;
    // ssiConfig.modeConfig.normalConfig.rxClkConfig.frameRate = SSI_FRAMERATE_44100;
    // ssiConfig.modeConfig.normalConfig.rxClkConfig.overSampleValue = 256;
    ssiConfig.modeConfig.normalConfig.rxClkConfig.wordLen = AUDIO_RX_WORD_LEN;
    ssiConfig.modeConfig.normalConfig.rxClkConfig.dc = 4;
    ssiConfig.rxEnable = TRUE;
    ssiConfig.testEnable = FALSE;   
    ssiConfig.dmaEnable = ssiDmaEn;
    ssiConfig.intrEnable = ssiIntrEn;
    ssiConfig.txFifoWatermark = AUDIO_TX_FIFO_WATERMARK;
    ssiConfig.rxFifoWatermark = AUDIO_RX_FIFO_WATERMARK;
    if(g_Ssi->Configure(&ssiConfig) == FALSE)
    {
        ERRORMSG(1, (TEXT("SSI%d Configure failed! err=%d\r\n"), 
                    g_Ssi, g_Ssi->GetErrorCode()));
        return FALSE;
    }

    ////////////////////////////////////
    //  AUDMUX SETTING
    ///////////////////////////////////
    // Configure AUDMUX host port1:
    // 1. tx source to peripheral port 5
    // 2. rx sink from peripheral port4
    // 3. TX CLK & FS slave from peripheral port 4
    // 4. RX CLK & FS slave from peripheral port 5
    audmuxConfig.txFsInput = FALSE;
    audmuxConfig.txClkInput = FALSE;
    audmuxConfig.txFsClkSrcPort = AUDMUX_PORT_ID_PERI2;
    audmuxConfig.txFsClkFromRx = FALSE;
    audmuxConfig.rxFsInput = FALSE;
    audmuxConfig.rxClkInput = FALSE;
    audmuxConfig.rxFsClkSrcPort = AUDMUX_PORT_ID_PERI1;
    audmuxConfig.rxFsClkFromRx = FALSE;
    audmuxConfig.rxDataSrcPort = AUDMUX_PORT_ID_PERI1;
    audmuxConfig.syncModeEn = FALSE;
    audmuxConfig.txRxSwitchEn = FALSE;
    audmuxConfig.intNetworkEn = FALSE;
    g_Audmux->EnablePort(AUDMUX_PORT_ID_HOST1, TRUE);
    g_Audmux->SetPortConfig(AUDMUX_PORT_ID_HOST1, &audmuxConfig);
    DEBUGMSG(AUDIO_DEBUG_MSG, (TEXT("AUDMUX Port1 configured!\r\n")));

    // Configure peripheral port4:
    // 1. Rx data source to host port 1
    // 2. Rx CLK & FS master
    audmuxConfig.txFsInput = TRUE;      // Not used. Set as input
    audmuxConfig.txClkInput = TRUE;     // Not used. Set as input
    audmuxConfig.txFsClkSrcPort = AUDMUX_PORT_ID_HOST1; // Ignored
    audmuxConfig.txFsClkFromRx = FALSE;
    audmuxConfig.rxFsInput = TRUE;      // Codec is FS/CLK master
    audmuxConfig.rxClkInput = TRUE;     // Codec is FS/CLK master
    audmuxConfig.rxFsClkSrcPort = AUDMUX_PORT_ID_HOST1; // Ignored
    audmuxConfig.rxFsClkFromRx = FALSE;
    audmuxConfig.rxDataSrcPort = AUDMUX_PORT_ID_HOST1;
    audmuxConfig.syncModeEn = FALSE;
    audmuxConfig.txRxSwitchEn = FALSE;
    audmuxConfig.intNetworkEn = FALSE;
    g_Audmux->EnablePort(AUDMUX_PORT_ID_PERI1, TRUE);
    g_Audmux->SetPortConfig(AUDMUX_PORT_ID_PERI1, &audmuxConfig);
    DEBUGMSG(AUDIO_DEBUG_MSG, (TEXT("AUDMUX Port4 configured!\r\n")));

    // Configure peripheral port 2 for:
    // 1. TX data sink from host port 1,
    // 2. TX FS/CLK master to host port1
    audmuxConfig.txFsInput = TRUE;      // Codec is FS/CLK master
    audmuxConfig.txClkInput = TRUE;     // Codec is FS/CLK master
    audmuxConfig.txFsClkSrcPort = AUDMUX_PORT_ID_HOST1;
    audmuxConfig.txFsClkFromRx = FALSE;
    audmuxConfig.rxFsInput = TRUE;     // Not used. Set as input
    audmuxConfig.rxClkInput = TRUE;    // Not used. Set as input
    audmuxConfig.rxFsClkSrcPort = AUDMUX_PORT_ID_HOST1; // Ignored

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美大片免费久久精品三p| 激情综合色综合久久| 2022国产精品视频| 欧美丰满少妇xxxbbb| 欧美四级电影在线观看| 色噜噜狠狠成人中文综合| 成人午夜又粗又硬又大| 成人免费毛片aaaaa**| 黑人精品欧美一区二区蜜桃 | 成人高清视频在线观看| 韩国精品一区二区| 国产麻豆精品95视频| 国产精品香蕉一区二区三区| 国产福利一区二区三区在线视频| 国产成+人+日韩+欧美+亚洲| 成人中文字幕电影| 波多野结衣91| 91久久人澡人人添人人爽欧美| 91豆麻精品91久久久久久| 91小视频免费看| 欧美日韩大陆一区二区| 日韩一区二区三区免费看| 久久久精品影视| 成人欧美一区二区三区白人 | 毛片一区二区三区| 国产一区91精品张津瑜| 91年精品国产| 91麻豆精品国产91久久久| 久久影音资源网| 国产精品久久久久久久久搜平片| 亚洲精品国产精品乱码不99| 日日骚欧美日韩| 国产成人av电影在线| 色噜噜狠狠成人网p站| 精品国产一区二区国模嫣然| 欧美激情一区二区三区在线| 亚洲成人av电影在线| 国产一区二区三区免费播放 | 韩国三级中文字幕hd久久精品| 丁香五精品蜜臀久久久久99网站 | 亚洲欧洲国产日本综合| 亚洲成a天堂v人片| 国产精品一级在线| 欧美精品一级二级三级| 中文在线资源观看网站视频免费不卡 | 56国语精品自产拍在线观看| 国产午夜精品久久| 偷窥国产亚洲免费视频| 成人免费毛片高清视频| 日韩美女一区二区三区四区| 亚洲精品乱码久久久久久| 国产综合一区二区| 欧美日韩亚洲综合一区二区三区| 国产欧美一区二区精品婷婷| 视频在线观看国产精品| 色综合久久精品| 国产欧美一区二区精品性| 久久se精品一区精品二区| 91国模大尺度私拍在线视频| 国产午夜亚洲精品理论片色戒 | 久久久蜜桃精品| 亚洲超碰精品一区二区| 色哟哟一区二区在线观看| 国产午夜亚洲精品午夜鲁丝片 | 国产日韩影视精品| 蜜桃精品视频在线| 欧美猛男男办公室激情| 亚洲激情图片小说视频| 91在线码无精品| 中文字幕一区二区三区在线播放| 国产一区二区三区不卡在线观看| 91麻豆精品国产91久久久使用方法| 亚洲激情第一区| 97成人超碰视| 亚洲精选一二三| 91麻豆.com| 亚洲美女免费在线| 色综合色狠狠天天综合色| 亚洲视频中文字幕| 99久久精品免费观看| 中文字幕制服丝袜成人av| 成人综合婷婷国产精品久久 | 欧美精品乱人伦久久久久久| 亚洲最新在线观看| 欧洲视频一区二区| 亚洲成年人网站在线观看| 欧美三级资源在线| 午夜伊人狠狠久久| 91精品国产乱| 国产又黄又大久久| 国产丝袜欧美中文另类| aaa欧美日韩| 一区二区三区色| 欧美在线制服丝袜| 视频一区在线视频| 精品国产乱码久久| 成人黄色777网| 亚洲一区二区三区不卡国产欧美| 欧美日韩1234| 国产一区二区三区免费| 综合自拍亚洲综合图不卡区| 欧美亚洲国产一区在线观看网站| 丝袜美腿亚洲一区二区图片| 欧美成人精品3d动漫h| 成人激情免费电影网址| 亚洲美腿欧美偷拍| 日韩欧美中文字幕精品| 成人av资源在线观看| 亚洲资源在线观看| 精品久久国产老人久久综合| 99精品黄色片免费大全| 日韩精品免费专区| 中文一区二区完整视频在线观看| 日本韩国精品一区二区在线观看| 日本亚洲天堂网| 国产精品国产三级国产| 91精品国产综合久久小美女| 国产99精品国产| 三级影片在线观看欧美日韩一区二区 | 免费欧美高清视频| 国产精品久久夜| 欧美zozozo| 欧美日韩综合一区| 国产福利91精品| 同产精品九九九| 成人免费视频在线观看| 欧美videos中文字幕| 一本到一区二区三区| 黄色日韩三级电影| 亚洲一区二区av在线| 国产日韩视频一区二区三区| 欧美日韩一级片在线观看| 福利电影一区二区| 青椒成人免费视频| 亚洲一区二区三区四区不卡| 国产欧美一区视频| 日韩欧美专区在线| 欧美精品自拍偷拍动漫精品| 91在线你懂得| 99久久精品国产导航| 国产一区二区三区四区五区美女| 日韩电影在线免费观看| 亚洲一区二区三区美女| 成人免费在线视频观看| 国产精品色呦呦| 久久嫩草精品久久久精品一| 91麻豆精品国产91久久久久久久久 | 国产欧美一二三区| 精品免费一区二区三区| 欧美一级理论片| 欧美一区二视频| 91麻豆精品国产自产在线 | 国产精品综合在线视频| 奇米影视在线99精品| 午夜精品久久久久久久99水蜜桃 | 91精品国产日韩91久久久久久| 日本精品一区二区三区四区的功能| 国产99久久久精品| 大白屁股一区二区视频| 国产不卡在线视频| 成人精品在线视频观看| 成人av网站免费| 91视频在线观看| 在线一区二区三区四区五区 | 国产一区二区三区观看| 国产乱码精品一区二区三区五月婷| 精品亚洲免费视频| 国产一区二区三区四| 国产高清精品网站| www.日韩在线| 色婷婷av一区二区三区大白胸| 日本道在线观看一区二区| 欧美日韩卡一卡二| 日韩免费视频一区| 久久伊人蜜桃av一区二区| 欧美激情一区二区三区全黄| 亚洲欧美国产三级| 亚洲v中文字幕| 开心九九激情九九欧美日韩精美视频电影| 蜜臀av一区二区在线免费观看| 国产综合一区二区| 91丨porny丨国产入口| 欧美一区二区成人| 欧美激情中文字幕一区二区| 一个色在线综合| 久久成人久久鬼色| 成人a区在线观看| 欧美在线不卡视频| 久久综合999| 亚洲一区二区三区精品在线| 国产原创一区二区三区| 色88888久久久久久影院野外| 欧美一区二区三区不卡| 中文字幕免费不卡| 丝袜美腿高跟呻吟高潮一区| 国产成人免费在线观看| 欧美视频在线一区二区三区 | 久久机这里只有精品| 成人av在线播放网址| 日韩一区二区视频在线观看|