⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ac97mixer.h

📁 EP931X系列的WinCE声卡驱动源代码
💻 H
字号:
//**********************************************************************
//                                                                      
// Filename: ac97mixer.h
//                                                                      
// Description: Mixer for the AC97 codec.
//
// 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.
//
// Use of this source code is subject to the terms of the Cirrus 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) Cirrus Logic Corporation 2003, All Rights Reserved                       
//                                                                      
//**********************************************************************

#ifndef _H_AC97MIXER
#define _H_AC97MIXER


// Mixer API structures
typedef struct tagMXCONTROLSTATE
{
    union 
    {
        USHORT  us;
        DWORD   dw;
        BOOL    b;
    } uSetting;
    BOOL        fVirtualized;       // this control is virtualized by a mux
} * PMXCONTROLSTATE, MXCONTROLSTATE;

typedef struct tagMXLINESTATE 
{
    DWORD dwState;
} * PMXLINESTATE, MXLINESTATE;


class AC97Mixer: public MixerInterface
{
    public:
        AC97Mixer(void): m_pHead(0),
                        m_pMxLineState(0),
                        m_pMxControlState(0)
                        {};
        MMRESULT            Initialize(AC97Codec *pAC97Codec);
        virtual BOOL        MixerEnabled(void) {return TRUE;};
        virtual DWORD       GetNumDevs(void) {return 1;};
        virtual MMRESULT    GetMixerCaps(PMIXERCAPS pMixerCaps);
        virtual MMRESULT    OpenMixerHandle
        (
            PDWORD          phMixer, 
            PMIXEROPENDESC  pMOD, 
            DWORD 
            dwFlags
        );
        virtual MMRESULT    CloseMixerHandle( MIXHANDLE mxh);
        virtual MMRESULT    GetMixerLineControls ( PMIXERLINECONTROLS pQuery, DWORD dwFlags);
        virtual MMRESULT    GetMixerLineInfo( PMIXERLINE pQuery, DWORD dwFlags);
        virtual MMRESULT    GetMixerControlDetails( PMIXERCONTROLDETAILS pQuery, DWORD dwFlags);
        virtual MMRESULT    SetMixerControlDetails( PMIXERCONTROLDETAILS pDetail, DWORD dwFlags);


    private:
        void                PerformMixerCallbacks(DWORD dwMessage, DWORD dwId);
        void                RMWCodecRegister(UCHAR Reg, USHORT Mask, USHORT Value);
        AC97Codec *         m_pAC97Codec;

        PMIXER_CALLBACK     m_pHead;
        PMXLINESTATE        m_pMxLineState;
        PMXCONTROLSTATE     m_pMxControlState;

};


#endif // _H_AC97MIXER

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -