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

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.  *   gnrl_mscap.cpp
  40.  *
  41.  * Project:
  42.  * --------
  43.  *   Maui META APP
  44.  *
  45.  * Description:
  46.  * ------------
  47.  *   General MS capability source
  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. #include <IniFiles.hpp>
  66. #pragma hdrstop
  67. #ifndef  _GNRL_MSCAP_H_
  68. #include "gnrl_mscap.h"
  69. #endif
  70. #ifndef  _MAN_ACTIVE_H_
  71. #include "man_active.h"
  72. #endif
  73. #ifndef  _RF_TXIQ_RUN_H_
  74. #include "rf_txiq_run.h"
  75. #endif
  76. //===========================================================================
  77. static CGNRLMSCAP*  gnrl_mscap_ptr;
  78. static bool g_bIsRunning;
  79. //===========================================================================
  80. static void  Query_RfMsCapability( void )
  81. {
  82.     gnrl_mscap_ptr->Query_RfMsCapability();
  83. }
  84. //===========================================================================
  85. CGNRLMSCAP::CGNRLMSCAP( void )
  86. {
  87.    g_bIsRunning = false;
  88.    ConfirmCallback = 0;
  89. }
  90. //---------------------------------------------------------------------------
  91. CGNRLMSCAP::~CGNRLMSCAP( )
  92. {
  93.    g_bIsRunning = false;
  94.    ConfirmCallback = 0;
  95. }
  96. //---------------------------------------------------------------------------
  97. E_METAAPP_RESULT_T CGNRLMSCAP::Get_ConfirmState(void)
  98. {
  99.     return  m_eConfirmState;
  100. }
  101. //---------------------------------------------------------------------------
  102. void  CGNRLMSCAP::Confirm(E_METAAPP_RESULT_T confirm_state )
  103. {
  104.     if (!g_bIsRunning)
  105.     {
  106.         return;
  107.     }
  108.     g_bIsRunning = false;
  109.     if (NULL == ConfirmCallback)
  110.     {
  111.         return;
  112.     }
  113.     m_eConfirmState = confirm_state;
  114.     ActiveMan->SetActiveFunction( ConfirmCallback );
  115. }
  116. //===========================================================================
  117. bool CGNRLMSCAP::Query_RfMsCapability_Start(void)
  118. {
  119.     gnrl_mscap_ptr = this;
  120.     g_bIsRunning = true;
  121.     if (!Query_RfMsCapability())
  122.     {
  123.         return  false;
  124.     }
  125.     
  126.     return true;
  127. }
  128. //-------------------------------------------------------------------------
  129. bool CGNRLMSCAP::Query_RfMsCapability( void )
  130. {
  131.     META_RESULT MetaResult = META_Rf_QueryMSCapabilityEx_r(m_META_HANDLE_Obj.Get_MainHandle(), 300, &m_sRfMsCapabilityEx);
  132.     if(MetaResult!=META_SUCCESS)
  133.     {
  134.         RfMsCapability_S capability;
  135.         MetaResult = META_Rf_QueryMSCapability_r(m_META_HANDLE_Obj.Get_MainHandle(),300, &capability);
  136.         if(MetaResult!=META_SUCCESS)
  137.         {
  138.             return false;
  139.         }
  140.         if( MS_EGPRS_FULL_FUNCTION == capability.capability )
  141.         {
  142.             m_sRfMsCapabilityEx.capability.GSM = 1;
  143.             m_sRfMsCapabilityEx.capability.GPRS = 1;
  144.     m_sRfMsCapabilityEx.capability.EDGE_RX = 1;
  145.     m_sRfMsCapabilityEx.capability.EDGE_8PSK_TX = 1;
  146.     m_sRfMsCapabilityEx.capability.Calibration_8PM = 0;
  147.         }
  148.         else if( MS_EGPRS_RX_ONLY == capability.capability )
  149.         {
  150.             m_sRfMsCapabilityEx.capability.GSM = 1;
  151.             m_sRfMsCapabilityEx.capability.GPRS = 1;
  152.     m_sRfMsCapabilityEx.capability.EDGE_RX = 1;
  153.     m_sRfMsCapabilityEx.capability.EDGE_8PSK_TX = 0;
  154.     m_sRfMsCapabilityEx.capability.Calibration_8PM = 0;
  155.         }
  156.         else if( MS_GPRS == capability.capability )
  157.         {
  158.             m_sRfMsCapabilityEx.capability.GSM = 1;
  159.             m_sRfMsCapabilityEx.capability.GPRS = 1;
  160.     m_sRfMsCapabilityEx.capability.EDGE_RX = 0;
  161.     m_sRfMsCapabilityEx.capability.EDGE_8PSK_TX = 0;
  162.     m_sRfMsCapabilityEx.capability.Calibration_8PM = 0;
  163.         }
  164.         else if( MS_GSM == capability.capability )
  165.         {
  166.             m_sRfMsCapabilityEx.capability.GSM = 1;
  167.             m_sRfMsCapabilityEx.capability.GPRS = 0;
  168.     m_sRfMsCapabilityEx.capability.EDGE_RX = 0;
  169.     m_sRfMsCapabilityEx.capability.EDGE_8PSK_TX = 0;
  170.     m_sRfMsCapabilityEx.capability.Calibration_8PM = 0;
  171.         }
  172.         else
  173.         {
  174.             m_sRfMsCapabilityEx.capability.GSM = 0;
  175.             m_sRfMsCapabilityEx.capability.GPRS = 0;
  176.     m_sRfMsCapabilityEx.capability.EDGE_RX = 0;
  177.     m_sRfMsCapabilityEx.capability.EDGE_8PSK_TX = 0;
  178.     m_sRfMsCapabilityEx.capability.Calibration_8PM = 0;
  179.         }
  180.         if( capability.band_support.GSM400 )
  181.             m_sRfMsCapabilityEx.band_support.GSM400 = 1;
  182.         else
  183.             m_sRfMsCapabilityEx.band_support.GSM400 = 0;
  184.         if( capability.band_support.GSM850 )
  185.             m_sRfMsCapabilityEx.band_support.GSM850 = 1;
  186.         else
  187.             m_sRfMsCapabilityEx.band_support.GSM850 = 0;
  188.         if( capability.band_support.GSM900 )
  189.             m_sRfMsCapabilityEx.band_support.GSM900 = 1;
  190.         else
  191.             m_sRfMsCapabilityEx.band_support.GSM900 = 0;
  192.         if( capability.band_support.DCS1800 )
  193.             m_sRfMsCapabilityEx.band_support.DCS1800 = 1;
  194.         else
  195.             m_sRfMsCapabilityEx.band_support.DCS1800 = 0;
  196.         if( capability.band_support.PCS1900 )
  197.             m_sRfMsCapabilityEx.band_support.PCS1900 = 1;
  198.         else
  199.             m_sRfMsCapabilityEx.band_support.PCS1900 = 0;
  200.     }
  201.     return  true;
  202. }
  203. //-----------------------------------------------------------------------------
  204. E_BBTXCFG_VER_T CGNRLMSCAP::Query_BBTxCfgVer_Start(BBCHIP_TYPE bbchip)
  205. {
  206.     CRFTXIQRUN txiqrun_obj;
  207.     m_eBbTxCfgVer = txiqrun_obj.Query_BBTxCfgVer_Start(bbchip);
  208.     return m_eBbTxCfgVer;
  209. }
  210. //=============================================================================
  211. /////////////////////      Global information     /////////////////////////////
  212. //=============================================================================
  213. RfMsCapabilityEx_S CGNRLMSCAP::Get_RfMsCapabilityEx( void )
  214. {   return m_sRfMsCapabilityEx;
  215. }
  216. //----------------------------------------------------------------------------
  217. E_BBTXCFG_VER_T CGNRLMSCAP::Get_BbTxCfgVer(void)
  218. {
  219.     return m_eBbTxCfgVer;
  220. }