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

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

?? audio.cpp

?? freesacle mx21下的聲卡alc5620的驅動程序
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
    audmuxConfig.rxFsClkFromRx = FALSE;
    audmuxConfig.rxDataSrcPort = AUDMUX_PORT_ID_HOST1;
    audmuxConfig.syncModeEn = FALSE;
    audmuxConfig.txRxSwitchEn = FALSE;
    audmuxConfig.intNetworkEn = FALSE;
    g_Audmux->EnablePort(AUDMUX_PORT_ID_PERI2, TRUE);
    g_Audmux->SetPortConfig(AUDMUX_PORT_ID_PERI2, &audmuxConfig);
    DEBUGMSG(AUDIO_DEBUG_MSG, (TEXT("AUDMUX Port5 configured!\r\n")));
    
    ////////////////////////////////////
    //  CODEC SETTING
    ///////////////////////////////////

	if(g_Codec)
	{
		g_Codec->Init(CODECSAMPLERATE);
	}
	else
	{
		 return FALSE;
	}
	

    // Reserve DMA resources
    if(DDKDmacRequestChan(AUDIO_PLAYBACK_DMA) == DMAC_CHANNEL_INVALID)
    {
        DEBUGMSG(AUDIO_ERROR_MSG, (TEXT("Reserve TXCH failed!\r\n")));
        return FALSE;
    }

    if(DDKDmacRequestChan(AUDIO_RECORD_DMA) == DMAC_CHANNEL_INVALID)
    {
        DEBUGMSG(AUDIO_ERROR_MSG, (TEXT("Reserve RXCH failed!\r\n")));
        return FALSE;
    }

    // Initialize the TX DMA channel
    dmaCfg.SrcAddr = txBuffer;
    dmaCfg.DstAddr = g_Ssi->GetFifoPhyAddr(SSI_TRANSFER_TX, SSI_CHANNEL0);
    dmaCfg.DataSize = txBufferSize;
    dmaCfg.DstMode = DMAC_TRANSFER_MODE_FIFO;
    dmaCfg.SrcMode = DMAC_TRANSFER_MODE_LINEAR_MEMORY;
    dmaCfg.MemDirIncrease = TRUE;
    dmaCfg.DstSize = DMAC_TRANSFER_SIZE_16BIT;
    dmaCfg.SrcSize = DMAC_TRANSFER_SIZE_32BIT;
    dmaCfg.RepeatType = DMAC_REPEAT_DISABLED;
    dmaCfg.ExtReqEnable = TRUE;
    dmaCfg.ReqSrc = DMAC_REQUEST_SSI1_TX0_FIFO;
    dmaCfg.BurstLength = AUDIO_TX_FIFO_WATERMARK * 2;
    dmaCfg.ReqTimeout = FALSE;
    dmaCfg.ReqTOCounter = 0;
    dmaCfg.BusClkCounter = 0;
    
    if(DDKDmacConfigureChan(AUDIO_PLAYBACK_DMA, &dmaCfg) == DMAC_CHANNEL_INVALID)
    {
        DEBUGMSG(AUDIO_ERROR_MSG, (TEXT("Bind TXCH failed!\r\n")));
        return FALSE;
    }

    // Initialize the RX DMA channel
    dmaCfg.SrcAddr = g_Ssi->GetFifoPhyAddr(SSI_TRANSFER_RX, SSI_CHANNEL0);
    dmaCfg.DstAddr = rxBuffer;
    dmaCfg.DataSize = rxBufferSize;
    dmaCfg.DstMode = DMAC_TRANSFER_MODE_LINEAR_MEMORY;
    dmaCfg.SrcMode = DMAC_TRANSFER_MODE_FIFO;
    dmaCfg.MemDirIncrease = TRUE;
    dmaCfg.DstSize = DMAC_TRANSFER_SIZE_32BIT;
    dmaCfg.SrcSize = DMAC_TRANSFER_SIZE_16BIT;
    dmaCfg.RepeatType = DMAC_REPEAT_DISABLED;
    dmaCfg.ExtReqEnable = TRUE;
    dmaCfg.ReqSrc = DMAC_REQUEST_SSI1_RX0_FIFO;
    dmaCfg.BurstLength = AUDIO_RX_FIFO_WATERMARK * 2;
    dmaCfg.ReqTimeout = FALSE;
    dmaCfg.ReqTOCounter = 0;
    dmaCfg.BusClkCounter = 0;

    if(DDKDmacConfigureChan(AUDIO_RECORD_DMA, &dmaCfg) == DMAC_CHANNEL_INVALID)
    {
        DEBUGMSG(AUDIO_ERROR_MSG, (TEXT("Bind RXCH failed!\r\n")));
        return FALSE;
    }

    // PreClear any interrupt status
    DDKDmacClearChannelIntr(AUDIO_PLAYBACK_DMA);
    DDKDmacClearChannelIntr(AUDIO_RECORD_DMA);

    // Return assigned channels
    *txDmaCh = AUDIO_PLAYBACK_DMA;
    *rxDmaCh = AUDIO_RECORD_DMA;

    DEBUGMSG(AUDIO_DEBUG_MSG, (TEXT("Audio DMA enabled. Init done!\r\n")));
    return TRUE;
}

//------------------------------------------------------------------------------
//
//  FUNCTION:       audioHwDeinit
//
//  DESCRIPTION:    De initialises the audio hardware.
//                  
//  PARAMETERS:     
//                  codec - [OUT] address of pointer to Wm8731Class
//                  ssi - [OUT] address of pointer to SsiClass
//                  audmux - [OUT] address of pointer to AudmuxClass
//                  dmac - [OUT] address of pointer to DmacClass
//
//  RETURNS:        
//                  TRUE for success
//                  FALSE otherwise
//
//------------------------------------------------------------------------------
void audioHwDeinit(void) 
{
    if(g_Ssi)
    {
        // release the SSI resources
        g_Ssi->Transmit(FALSE);
        g_Ssi->Receive(FALSE);
        g_Ssi->PowerDown();
        g_Ssi->Unlock();
        g_Ssi = NULL;
    }
    
    // release AUDIO TX and RX channels
    DDKDmacStopChan(AUDIO_PLAYBACK_DMA);
    DDKDmacReleaseChan(AUDIO_PLAYBACK_DMA);
    DDKDmacClearChannelIntr(AUDIO_PLAYBACK_DMA);

    DDKDmacStopChan(AUDIO_RECORD_DMA);
    DDKDmacReleaseChan(AUDIO_RECORD_DMA);
    DDKDmacClearChannelIntr(AUDIO_RECORD_DMA);

    // Power down the codec
    if(g_Codec)
    {
			g_Codec->ChangeCodecPowerStatus(POWER_STATE_D4);
	
        g_Codec = NULL;
    }

    if(g_Audmux)
    {
        // Disable AUDMUX pins
        g_Audmux->EnablePort(AUDMUX_PORT_ID_HOST1, FALSE);
        g_Audmux->EnablePort(AUDMUX_PORT_ID_PERI1, FALSE);
        g_Audmux->EnablePort(AUDMUX_PORT_ID_PERI2, FALSE);
        g_Audmux = NULL;
    }
}

//------------------------------------------------------------------------------
//
//  FUNCTION:       audioHwTxPower
//
//  DESCRIPTION:    Powers up or down the audio TX hardware.
//                  Note:   If the TX and RX SSI is one and the same,
//                          SSI is not powered on/off for input power
//                          control mode.
//                  
//  PARAMETERS:     
//                  codec - [OUT] address of pointer to RT_CodecComm
//                  ssi - [OUT] address of pointer to SsiClass
//                  audmux - [OUT] address of pointer to AudmuxClass
//                  dmac - [OUT] address of pointer to DmacClass
//
//  RETURNS:        
//                  None
//
//------------------------------------------------------------------------------
void audioSetPowerOnOff(BOOL bSetPlayback, BOOL bSetRecord, BOOL bOff)
{
    if(bSetPlayback == TRUE && bSetRecord == TRUE)
	{

		if(bOff)
		{
			g_Codec->ChangeCodecPowerStatus(POWER_STATE_D2);
		}
		else
		{
			g_Codec->ChangeCodecPowerStatus(POWER_STATE_D1);
		}

	}
    else if(bSetPlayback == TRUE)
	{

		if(bOff)
		{
			g_Codec->ChangeCodecPowerStatus(POWER_STATE_D2_PLAYBACK);
		}
		else
		{
			g_Codec->ChangeCodecPowerStatus(POWER_STATE_D1_PLAYBACK);
		}

	}
    else if(bSetRecord == TRUE)
	{

		if(bOff)
		{
			g_Codec->ChangeCodecPowerStatus(POWER_STATE_D2_RECORD);
		}
		else
		{
			g_Codec->ChangeCodecPowerStatus(POWER_STATE_D1_RECORD);
		}

	}




}
//------------------------------------------------------------------------------
// PRIVATE FUNCTIONS
//------------------------------------------------------------------------------

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲三级电影网站| 久久精品国内一区二区三区| 国产在线精品视频| 久久午夜老司机| 精品一区二区在线免费观看| 日韩一级大片在线| 国产乱码精品一区二区三区五月婷| 欧美酷刑日本凌虐凌虐| 美女在线一区二区| 国产日本欧美一区二区| 91玉足脚交白嫩脚丫在线播放| 中文字幕av一区 二区| eeuss鲁片一区二区三区在线观看 eeuss鲁片一区二区三区在线看 | 亚洲chinese男男1069| 91精品国产综合久久香蕉麻豆| 狂野欧美性猛交blacked| 久久久久久久久久久黄色| 99视频国产精品| 五月天婷婷综合| 国产日韩欧美综合一区| 色综合视频在线观看| 视频一区视频二区中文字幕| 久久综合九色综合欧美就去吻 | 精品国产一区二区三区久久久蜜月| 精品一区二区三区蜜桃| ●精品国产综合乱码久久久久| 欧美午夜视频网站| 国产精品自拍一区| 亚洲一区二区在线播放相泽| 欧美精品一区二区蜜臀亚洲| 99久久精品情趣| 日本不卡123| 亚洲三级电影全部在线观看高清| 欧美电影一区二区| 99麻豆久久久国产精品免费| 日本一区中文字幕| 国产精品成人一区二区艾草 | 五月激情丁香一区二区三区| 国产视频一区不卡| 欧美精品v日韩精品v韩国精品v| 国产激情一区二区三区| 亚洲网友自拍偷拍| 久久99久久久久久久久久久| 亚洲国产精品激情在线观看| 91精品国产麻豆国产自产在线| 成人免费电影视频| 精品一区二区三区免费播放| 亚洲成av人片在线| 亚洲免费观看高清在线观看| 久久久久99精品国产片| 日韩一卡二卡三卡四卡| 在线免费观看一区| 99久久99久久精品免费观看| 精品亚洲国内自在自线福利| 亚洲午夜日本在线观看| 成人欧美一区二区三区1314 | 欧美人伦禁忌dvd放荡欲情| 99久久精品国产毛片| 国产一区二区三区av电影| 秋霞av亚洲一区二区三| 亚洲成人动漫av| 亚洲天堂2014| 椎名由奈av一区二区三区| 欧美国产激情一区二区三区蜜月| 日韩精品专区在线影院重磅| 欧美久久久久免费| 7777精品伊人久久久大香线蕉的 | 国产精品日产欧美久久久久| 久久综合九色综合97婷婷| 日韩欧美专区在线| 欧美电影影音先锋| 7799精品视频| 欧美一卡二卡在线观看| 91麻豆精品国产综合久久久久久 | 久久久久久久久岛国免费| 日韩欧美区一区二| 精品福利av导航| 精品久久久久久无| 亚洲精品在线观| 久久久久久久久久电影| 国产欧美视频一区二区| 国产精品久久久久久久久果冻传媒| 亚洲国产精品高清| 国产精品久久久久久久午夜片| 亚洲欧洲成人av每日更新| 日韩美女视频一区| 亚洲桃色在线一区| 亚洲一区成人在线| 日本va欧美va欧美va精品| 日本强好片久久久久久aaa| 激情小说欧美图片| 不卡的电影网站| 91亚洲精品乱码久久久久久蜜桃 | 精品欧美一区二区在线观看| 欧美电影免费观看高清完整版在| 精品播放一区二区| 久久久亚洲高清| 亚洲欧洲一区二区在线播放| 国产精品无码永久免费888| 国产精品久久久久久久第一福利| 国产精品不卡在线观看| 中文字幕不卡在线播放| 国产精品麻豆网站| 中文字幕综合网| 中文字幕一区二区三区在线不卡 | 欧美日韩在线免费视频| 欧美午夜影院一区| 日韩欧美你懂的| 国产精品天天看| 一区二区三区在线观看视频| 日本欧美一区二区在线观看| 国产激情偷乱视频一区二区三区| 91精品福利在线| 精品国产乱码久久久久久老虎| 国产精品毛片a∨一区二区三区| 亚洲成a人v欧美综合天堂| 国产精品一区二区三区网站| 欧美综合一区二区三区| 精品久久免费看| 亚洲国产精品一区二区尤物区| 日韩精品一区二区三区三区免费| 国产精品乱人伦中文| 婷婷国产在线综合| 不卡电影免费在线播放一区| 欧美日韩一本到| 国产清纯在线一区二区www| 日韩久久一区二区| 日韩av午夜在线观看| 丁香天五香天堂综合| 欧美日韩一本到| 中文字幕人成不卡一区| 毛片av一区二区| 91亚洲精品久久久蜜桃网站| 日韩一级二级三级精品视频| 综合激情成人伊人| 蜜臀久久久久久久| 成人精品免费视频| 日韩欧美国产一区在线观看| 亚洲三级理论片| 国产麻豆精品久久一二三| 91精品91久久久中77777| 国产日产精品一区| 国产麻豆成人传媒免费观看| 欧美另类变人与禽xxxxx| 亚洲欧美日韩在线播放| 丰满白嫩尤物一区二区| 日韩精品一区在线| 日韩福利电影在线| 欧美色涩在线第一页| 国产精品拍天天在线| 国产精品中文字幕欧美| 精品欧美乱码久久久久久| 亚洲午夜激情网页| av高清不卡在线| 欧美国产禁国产网站cc| 国产精品资源站在线| 欧美日韩另类一区| 国产精品久久久久影院| 国产成人日日夜夜| 久久色在线观看| 韩国视频一区二区| 国产欧美在线观看一区| 国产不卡免费视频| 久久久欧美精品sm网站| 国产麻豆视频一区二区| 国产亚洲一区二区在线观看| 国产一区二区福利| 久久久久88色偷偷免费| 国产99一区视频免费| 欧美激情综合网| 成人高清av在线| 国产精品第一页第二页第三页| 国产91精品入口| 国产精品视频在线看| av电影在线观看不卡| 亚洲精品视频免费看| 91国产免费观看| 亚洲成人动漫在线观看| 日韩一区二区三区电影| 国内精品免费在线观看| 亚洲国产精品传媒在线观看| 97精品视频在线观看自产线路二| 亚洲理论在线观看| 欧美色网站导航| 美女看a上一区| 久久精品日产第一区二区三区高清版| 国产精品99久久久久| 自拍偷拍亚洲综合| 欧美视频日韩视频在线观看| 久久精品国产一区二区三区免费看| 精品福利一二区| 色婷婷久久一区二区三区麻豆| 亚洲国产精品影院| 久久久久国产精品麻豆ai换脸 | 精品中文字幕一区二区| 日本一区二区电影| 欧美亚洲愉拍一区二区| 热久久一区二区| 国产午夜精品福利| 成人午夜私人影院|