亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
国产成人亚洲综合色影视| 中文字幕欧美区| 亚洲精品成人悠悠色影视| 国产美女视频一区| 日本一区二区三区四区| 国产99久久久久久免费看农村| 日韩欧美黄色影院| 日本欧美一区二区三区| 欧美精品一区二区久久久| 九九精品视频在线看| 久久久精品中文字幕麻豆发布| 久久精品国产久精国产| 国产欧美日韩久久| 91麻豆免费观看| 亚洲18色成人| 久久美女艺术照精彩视频福利播放| 岛国精品在线播放| 亚洲无线码一区二区三区| 538在线一区二区精品国产| 国产综合久久久久久久久久久久| 久久亚洲捆绑美女| 色域天天综合网| 蜜乳av一区二区| 亚洲欧洲国产日韩| 欧美精品v日韩精品v韩国精品v| 看电影不卡的网站| 亚洲日本在线视频观看| 欧美一卡2卡3卡4卡| 国产白丝网站精品污在线入口| 依依成人综合视频| 亚洲精品一区二区三区精华液| 99视频一区二区三区| 午夜精品久久久久久久蜜桃app| 欧美精品一区二| 欧美系列日韩一区| 高清国产午夜精品久久久久久| 一区二区三区日韩欧美| 欧美精品一区二区三区高清aⅴ| 成人avav影音| 麻豆精品在线播放| 亚洲一区二区三区中文字幕| 久久免费视频色| 欧美色爱综合网| 波多野结衣欧美| 久久99久国产精品黄毛片色诱| 亚洲三级免费观看| 久久亚洲欧美国产精品乐播| 欧美精品国产精品| 色8久久精品久久久久久蜜| 国产美女主播视频一区| 亚洲国产欧美一区二区三区丁香婷| 久久美女高清视频| 欧美tk—视频vk| 欧美日韩国产一二三| gogogo免费视频观看亚洲一| 久久精品理论片| 日本亚洲视频在线| 亚洲第一综合色| 伊人一区二区三区| 中文字幕一区av| 国产亚洲一区二区三区在线观看| 欧美伊人久久大香线蕉综合69| 成人黄页毛片网站| 高清久久久久久| 国产精品一区免费在线观看| 美脚の诱脚舐め脚责91| 爽好久久久欧美精品| 亚洲精品高清视频在线观看| 中文字幕免费在线观看视频一区| 日韩区在线观看| 欧美一区二区在线观看| 91精品国模一区二区三区| 欧美体内she精高潮| 欧美伊人精品成人久久综合97| 91在线观看下载| 99精品黄色片免费大全| 91香蕉视频在线| 91热门视频在线观看| 成人av先锋影音| 99re视频这里只有精品| 成人动漫中文字幕| 91在线观看成人| 欧美做爰猛烈大尺度电影无法无天| 92精品国产成人观看免费| 97精品久久久久中文字幕| 国产99久久久精品| 99re视频这里只有精品| 色婷婷久久综合| 在线观看91视频| 欧美色图片你懂的| 欧美日韩黄色一区二区| 欧美一区午夜精品| 日韩亚洲欧美一区二区三区| 欧美www视频| 精品剧情在线观看| 国产日韩欧美电影| 国产精品水嫩水嫩| 一区二区三区四区中文字幕| 亚洲国产视频a| 午夜视频在线观看一区| 久久99国产精品免费网站| 精品夜夜嗨av一区二区三区| 韩国三级在线一区| 成人网男人的天堂| 欧美制服丝袜第一页| 7777精品伊人久久久大香线蕉经典版下载| 欧美高清视频www夜色资源网| 日韩欧美国产一区在线观看| 久久久久国产精品厨房| 亚洲免费av网站| 蜜乳av一区二区| 波多野结衣欧美| 9191精品国产综合久久久久久| 精品国产91久久久久久久妲己| 国产精品理伦片| 首页综合国产亚洲丝袜| 国产乱人伦偷精品视频免下载| 99久久夜色精品国产网站| 欧美日韩黄视频| 国产精品你懂的| 午夜精品福利在线| 国产99久久久精品| 欧美色精品在线视频| 中文字幕免费不卡| 天堂久久一区二区三区| 成人国产精品免费观看视频| 欧美日韩国产综合草草| 国产精品国产三级国产普通话99 | 国产成人精品一区二区三区四区| www.日韩在线| 日韩一区二区三区免费观看| 国产精品久久久久久久久图文区| 日韩国产在线观看一区| 99久久99久久综合| 精品国产网站在线观看| 一区二区不卡在线视频 午夜欧美不卡在 | 欧美日韩一区成人| 国产精品拍天天在线| 日韩精品一二三区| 日本精品裸体写真集在线观看 | 欧美高清一级片在线观看| 无吗不卡中文字幕| 91老师片黄在线观看| 国产欧美日韩三区| 全国精品久久少妇| 在线观看一区二区精品视频| 国产欧美综合色| 久久国内精品自在自线400部| 色婷婷久久久综合中文字幕| 久久九九99视频| 久久国产剧场电影| 91成人看片片| 中文字幕一区二区三区精华液| 国产激情精品久久久第一区二区 | 日本一区二区三区久久久久久久久不| 亚洲成人免费影院| 欧美主播一区二区三区美女| 1区2区3区欧美| 成人av在线资源网| 中文字幕精品综合| 成人美女视频在线观看18| 久久亚洲私人国产精品va媚药| 美女视频一区在线观看| 欧美在线观看你懂的| 亚洲欧美影音先锋| 91亚洲永久精品| 国产精品久久久久久久午夜片 | aaa欧美色吧激情视频| 国产欧美视频一区二区| 国产成人精品三级麻豆| 欧美成人艳星乳罩| 国产主播一区二区| 国产校园另类小说区| 激情深爱一区二区| 日韩三级在线观看| 国模套图日韩精品一区二区 | 欧美日本在线视频| 午夜精品在线视频一区| 欧美日韩精品系列| 乱一区二区av| 久久久国产午夜精品| 高清成人在线观看| 一区二区三区蜜桃| 欧美日韩一区在线| 青青草国产成人99久久| 欧美一区二区国产| 国产精品中文字幕日韩精品| 久久午夜羞羞影院免费观看| 国产精品18久久久| 亚洲视频一二三区| 欧美日韩1234| 国产综合久久久久久久久久久久| 国产精品三级av在线播放| 91啪亚洲精品| 青青草精品视频| 国产亚洲制服色| 欧美精品一卡两卡| 久久草av在线| 亚洲同性gay激情无套| 91麻豆精品国产91久久久久 |