man_fdm.h
上传用户:gelin96
上传日期:2017-01-08
资源大小:20993k
文件大小:7k
源码类别:

MTK

开发平台:

C++ Builder

  1. /*****************************************************************************
  2. *  Copyright Statement:
  3. *  --------------------
  4. *  This software is protected by Copyright and the information contained
  5. *  herein is confidential. The software may not be copied and the information
  6. *  contained herein may not be used or disclosed except with the written
  7. *  permission of MediaTek Inc. (C) 2005
  8. *
  9. *  BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
  10. *  THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
  11. *  RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
  12. *  AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
  13. *  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
  14. *  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
  15. *  NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
  16. *  SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
  17. *  SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
  18. *  THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
  19. *  NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
  20. *  SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
  21. *
  22. *  BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
  23. *  LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
  24. *  AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
  25. *  OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
  26. *  MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
  27. *
  28. *  THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
  29. *  WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
  30. *  LAWS PRINCIPLES.  ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
  31. *  RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
  32. *  THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
  33. *
  34. *****************************************************************************/
  35. /*****************************************************************************
  36.  *
  37.  * Filename:
  38.  * ---------
  39.  *   man_fdm.h
  40.  *
  41.  * Project:
  42.  * --------
  43.  *   Maui META APP
  44.  *
  45.  * Description:
  46.  * ------------
  47.  *   NVRAM access handling header
  48.  *
  49.  * Author:
  50.  * -------
  51.  *  Andy Ueng (mtk00490)
  52.  *
  53.  *============================================================================
  54.  *             HISTORY
  55.  * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
  56.  *------------------------------------------------------------------------------
  57.  * $Revision$
  58.  * $Modtime$
  59.  * $Log$
  60.  * 
  61.  *------------------------------------------------------------------------------
  62.  * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
  63.  *============================================================================
  64.  ****************************************************************************/
  65. #ifndef  _MAN_FDM_H_
  66. #define  _MAN_FDM_H_
  67. #include <vcl.h>
  68. // audio
  69. #ifndef _AUDIO_COMMON_H_
  70. #include "audio_common.h"
  71. #endif
  72. // common
  73. #ifndef  _METAAPP_COMMON_H_
  74. #include "metaapp_common.h"
  75. #endif
  76. #ifndef META_DLL_H
  77. #include "meta.h"
  78. #endif
  79. #ifndef  _MAN_HANDLE_H_
  80. #include "man_handle.h"
  81. #endif
  82. // NVRAM
  83. #ifndef _NVRAMEDITOR_H_
  84. #include "NVRAMEditor.h"
  85. #endif
  86. // RF
  87. #ifndef  _RF_COMMON_H_
  88. #include "rf_common.h"
  89. #endif
  90. /*---------------------------------------------------------------------------*/
  91. #define NVRAM_STATUS_SUCCESS 0
  92. #define NVRAM_STATUS_FAIL    1
  93. /*---------------------------------------------------------------------------*/
  94. class CNVRAMMan
  95. {
  96. private:
  97.    bool m_bIsInit;
  98.    S_FORM_HANDLE_T m_sHandle;
  99.    Variant m_vNVRAM_db_variant;
  100.    unsigned long m_ulNvramIdb;
  101.    E_METAAPP_RESULT_T m_eConfirmState;
  102.    AnsiString m_asNVRAM_DB_File;
  103.    CMETAHANDLE m_META_HANDLE_Obj;
  104.    short              m_sNVRAM_OPID;
  105.    FT_NVRAM_READ_REQ *m_psNVRAM_ReadReq;
  106.    FT_NVRAM_READ_CNF m_sNVRAM_ReadCnf;
  107.    FT_NVRAM_WRITE_REQ    *m_psNVRAM_WriteReq;
  108.    const FT_NVRAM_WRITE_CNF    *m_psNVRAM_WriteCnf;
  109.    FT_NVRAM_RESET_REQ    *m_psNVRAM_ResetReq;
  110.    const FT_NVRAM_RESET_CNF    *m_psNVRAM_ResetCnf;
  111.    FT_NVRAM_RESET_REQ    *m_psNVRAM_ResetDataReq;
  112.    int                 m_iBufSize;
  113.    char               *m_cBuf;
  114.    const char *m_cLID; // The name of logical data item ID
  115.    unsigned short   m_usRID; // Record ID
  116.    unsigned char     m_ucIsResetOk;
  117.    int *m_iResetCountPtr;
  118.    int m_iResetStatus;
  119.    HANDLE  m_WriteToNVRAMEvent;
  120.    HANDLE  m_ReadFromNVRAMEvent;
  121.    // APC
  122.    bool m_bVbiasSupport;
  123.    // TX IQ
  124.    E_NVRAM_BBTXCFG_VER_T m_eNvBbTxCfgVer;
  125.    // audio
  126.    E_AUDIO_FIR_VER_T m_eFirVer;
  127.    bool     m_bCustVolExSupport;
  128.    
  129. protected:
  130.    void Get_BbTxCfgVer_FromNVDB(void);
  131.    void Confirm(E_METAAPP_RESULT_T confirm_state);
  132. public:
  133.    // NVRAM
  134.    void  REQ_ReadNVRAM(void);
  135.    void  REQ_WriteNVRAM(void);
  136.    void  GetSupportInfoFromNVRAMDB(void);
  137.    // call back
  138.    void  __stdcall CNF_ReadNVRAM(const FT_NVRAM_READ_CNF *cnf, const short token, void *usrData);
  139.    void  __stdcall CNF_WriteNVRAM(const FT_NVRAM_WRITE_CNF *cnf, const short token, void *usrData);
  140.    void  __stdcall CNF_ResetNVRAMData(const FT_NVRAM_RESET_CNF *cnf, const short token, void *usrData);
  141.    void  __stdcall CNF_ResetNVRAM(const FT_NVRAM_RESET_CNF *cnf, const short token, void *usrData);
  142.    CNVRAMMan(void);
  143.    ~CNVRAMMan();
  144.    void  REQ_Finish(void);
  145.    void  REQ_TimeOut(void);
  146. /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
  147.   // Public member
  148.    void  (*ConfirmCallback)(void);
  149.    void  Init(char* fdm_database_file);
  150.    void  Init_NVRAM_DB(char* fdm_database_file);
  151.    void  REQ_Init(AnsiString as_file);
  152.    void  REQ_Init_NVRAM_DB(void);
  153.    void  REQ_Stop(void);
  154.    void  REQ_ReadNVRAM_Start(const char *LID_para, unsigned short RID, int size, char *buf);
  155.    void  REQ_WriteNVRAM_Start(const char *LID_para, unsigned short RID, int size, char *buf);
  156.    void  REQ_ResetNVRAMData_Start(const char *LID_para);
  157.    void  REQ_ResetNVRAMData(void);
  158.    int   REQ_ResetLayer1(int *ResetCountPtrPara);
  159.    // Global information
  160.    E_METAAPP_RESULT_T Get_ConfirmState(void);
  161.    bool Get_IsInit(void);
  162.    void Set_IsInit(bool is_init);
  163.    AnsiString Get_NVRAM_DB_File(void);
  164.    Variant Get_NvramDbVariant(void);
  165.    void Set_NvramDbVariant(Variant variant);
  166.    bool Get_VbiasSupport(void);
  167.    E_NVRAM_BBTXCFG_VER_T Get_NvBbTxCfgVer(void);
  168.    E_AUDIO_FIR_VER_T Get_FirVersion(void);
  169.    bool Get_CustVolExSupport(void);
  170.    void Set_FormHandle(S_FORM_HANDLE_T handle);
  171. };
  172.  extern  CNVRAMMan  *NVRAMMan;
  173. /*---------------------------------------------------------------------------*/
  174. #endif