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

📄 merlin.h

📁 完整的基于Conxant平台的USB电视棒的WIN驱动程序。
💻 H
字号:
/*+++ *******************************************************************\
*
*  Copyright and Disclaimer:
*
*     ---------------------------------------------------------------
*     This software is provided "AS IS" without warranty of any kind,
*     either expressed or implied, including but not limited to the
*     implied warranties of noninfringement, merchantability and/or
*     fitness for a particular purpose.
*     ---------------------------------------------------------------
*
*     Copyright (c) 2008 Conexant Systems, Inc.
*     All rights reserved.
*
\******************************************************************* ---*/

#ifndef _MERLIN_H_
#define _MERLIN_H_

extern "C"
{
    #include <wdm.h>
}

#include <windef.h>
#include <unknown.h>
#include <ks.h>
#include <ksmedia.h>

#include "SyncRegIo.h"
#include "colibri.h"

class Device;
class DirectIF;

enum AUDIO_STANDARD
{
    AUDIO_STANDARD_NONE =0,
    AUDIO_STANDARD_BTSC,
    AUDIO_STANDARD_EIAJ,
    AUDIO_STANDARD_NICAM_BG,
    AUDIO_STANDARD_NICAM_DK,
    AUDIO_STANDARD_NICAM_L,
    AUDIO_STANDARD_NICAM_I,
    AUDIO_STANDARD_A2_M
};



class Merlin
{
public:
    USHORT GetFWVersion(){return _audio_fw_version;}
    Merlin(Device *p_device,DEVICE_OBJECT* p_do, SyncRegIo* p_registers, DirectIF *p_DIF);
    ~Merlin();

    enum AUDIO_INPUT
    {
        AUDIO_INPUT_MUTE,
        AUDIO_INPUT_LINE,
        AUDIO_INPUT_TUNER_TV,
        AUDIO_INPUT_SPDIF,
        AUDIO_INPUT_TUNER_FM
    };

    VOID setAudioInput(AUDIO_INPUT audio_input);
    AUDIO_INPUT getAudioInput();

    DWORD getAvailableModes();
    DWORD getCurrentMode();
    VOID setTVAudioMode(DWORD new_mode);
    DWORD getCapabilities();
    VOID powerUp();
	VOID powerDown();
    VOID setAudioStandard(AUDIO_STANDARD audio_standard);
    VOID initialize();
    VOID setFrequency(DWORD frequency);
    VOID GetVersion();

    VOID notifyPreChannelChange();
    VOID notifyPostChannelChange();

    NTSTATUS uploadFirmware();
    
    BOOLEAN isFMLocked();

protected:
    NTSTATUS openFirmwareFile(HANDLE* p_file);
    VOID setupFM();

private:
    SyncRegIo*      _p_registers;
    DWORD           _tv_audio_preferred_mode; 
    AUDIO_INPUT     _current_audio_input;
    AUDIO_STANDARD  _audio_standard;
    DWORD           _frequency;
    USHORT          _audio_fw_version;
    Device*         _p_device;
    DirectIF*       _p_DIF;

};


#endif

⌨️ 快捷键说明

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