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

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) 2001
  8. *
  9. *****************************************************************************/
  10. /*****************************************************************************
  11.  *
  12.  * Filename:
  13.  * ---------
  14.  *   wifi_gnrl.cpp
  15.  *
  16.  * Project:
  17.  * --------
  18.  *   Maui META APP
  19.  *
  20.  * Description:
  21.  * ------------
  22.  *   WiFi general function source
  23.  *
  24.  * Author:
  25.  * -------
  26.  *  Andy Ueng (mtk00490)
  27.  *
  28.  *============================================================================
  29.  *             HISTORY
  30.  * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
  31.  *------------------------------------------------------------------------------
  32.  * $Revision$
  33.  * $Modtime$
  34.  * $Log$
  35.  *
  36.  *------------------------------------------------------------------------------
  37.  * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
  38.  *============================================================================
  39.  ****************************************************************************/
  40. #include <IniFiles.hpp>
  41. #pragma hdrstop
  42. #ifndef  _MAN_ACTIVE_H_
  43. #include "man_active.h"
  44. #endif
  45. #ifndef  _WIFI_GNRL_H_
  46. #include "wifi_gnrl.h"
  47. #endif
  48. #ifndef  _WIFI_COMMON_H_
  49. #include "wifi_common.h"
  50. #endif
  51. //===========================================================================
  52. static CWIFIGNRL*  wifi_gnrl_ptr;
  53. static bool g_bIsRunning;
  54. //===========================================================================
  55. static void  REQ_Query_ChannelList( void )
  56. {   wifi_gnrl_ptr->REQ_Query_ChannelList();
  57. }
  58. //---------------------------------------------------------------------------
  59. static void  REQ_TimeOut( void )
  60. {   wifi_gnrl_ptr->REQ_TimeOut();
  61. }
  62. //---------------------------------------------------------------------------
  63. static void  REQ_Finish( void )
  64. {   wifi_gnrl_ptr->REQ_Finish();
  65. }
  66. //===========================================================================
  67. CWIFIGNRL::CWIFIGNRL( void )
  68. {
  69.     g_bIsRunning = false;
  70.     ConfirmCallback = 0;
  71.    // RFReq_ID = NULL;
  72. }
  73. //---------------------------------------------------------------------------
  74. CWIFIGNRL::~CWIFIGNRL()
  75. {
  76.     g_bIsRunning = false;
  77.     ConfirmCallback = 0;
  78. }
  79. //---------------------------------------------------------------------------
  80. void  CWIFIGNRL::REQ_Finish( void )
  81. {
  82.     if(!g_bIsRunning)  return;
  83.     Confirm( STATE_WIFIGNRL_OK );
  84.     
  85. }
  86. //---------------------------------------------------------------------------
  87. void  CWIFIGNRL::REQ_Stop( void )
  88. {
  89.     if(!g_bIsRunning)  return;
  90.     Confirm( STATE_WIFIGNRL_STOP );
  91. }
  92. //---------------------------------------------------------------------------
  93. void  CWIFIGNRL::REQ_TimeOut( void )
  94. {
  95.     if(!g_bIsRunning)  return;
  96.     Confirm( STATE_WIFIGNRL_TIMEOUT );
  97. }
  98. //---------------------------------------------------------------------------
  99. void  CWIFIGNRL::Confirm( int confirm_state )
  100. {
  101.     if(!g_bIsRunning)  return;
  102.     if(ConfirmCallback==0)  return;
  103.     m_iConfirmState = confirm_state;
  104.     g_bIsRunning = false;
  105.     ActiveMan->SetActiveFunction( ConfirmCallback );
  106. }
  107. //===========================================================================
  108. void  CWIFIGNRL::Query_WiFi_Support_Start( bool  &wifi_support )
  109. {
  110.     wifi_gnrl_ptr = this;
  111.     g_bIsRunning = true;
  112.     m_pbWiFiSupport = &wifi_support;
  113.    // ActiveMan->SetActiveFunction( ::Query_WiFi_Capability );
  114.     Query_WiFi_Support();
  115. }
  116. //---------------------------------------------------------------------------
  117. void  CWIFIGNRL::Query_WiFi_Support( void )
  118. {
  119.     if(!g_bIsRunning)
  120.     {   return;  }
  121.     META_RESULT   MetaResult = META_QueryIfFunctionSupportedByTarget_r( m_META_HANDLE_Obj.Get_MainHandle(), 300, "META_WiFi_QueryChipCapability");
  122.     if( META_SUCCESS != MetaResult )
  123.     {   *m_pbWiFiSupport = false;
  124.     }
  125.     else
  126.     {   *m_pbWiFiSupport = true;
  127.     }
  128.    // ActiveMan->SetActiveFunction( ::REQ_Finish );
  129. }
  130. //===========================================================================
  131. bool CWIFIGNRL::Query_WiFi_Capability_Start(WiFi_ChipCapability_S &wifi_cap)
  132. {
  133.     wifi_gnrl_ptr = this;
  134.     g_bIsRunning = true;
  135.     m_pWiFiChipCap = &wifi_cap;
  136.     if (!Query_WiFi_Capability())
  137.     {
  138.         return false;
  139.     }
  140.     return true;
  141. }
  142. //---------------------------------------------------------------------------
  143. bool CWIFIGNRL::Query_WiFi_Capability(void)
  144. {
  145.     if (!g_bIsRunning)
  146.     {
  147.         return false;
  148.     }
  149.     META_RESULT  MetaResult = META_WiFi_QueryChipCapability_r(m_META_HANDLE_Obj.Get_MainHandle(), 300, m_pWiFiChipCap);
  150.     if (MetaResult != META_SUCCESS)
  151.     {
  152.         return false;
  153.     }
  154.     return true;
  155. }
  156. //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  157. void CWIFIGNRL::REQ_Query_ChannelList_Start( WiFi_ChannelList_S *p_channel_list )
  158. {
  159.     wifi_gnrl_ptr = this;
  160.     g_bIsRunning = true;
  161.     m_psChannelList = p_channel_list;
  162.     ActiveMan->SetActiveFunction( ::REQ_Query_ChannelList );
  163. }
  164. //----------------------------------------------------------------------
  165. void CWIFIGNRL::REQ_Query_ChannelList( void )
  166. {
  167.     META_RESULT MetaResult = META_WiFi_QueryChannelList_r (m_META_HANDLE_Obj.Get_MainHandle(), 3000, m_psChannelList);
  168.     if(MetaResult!=META_SUCCESS)
  169.     {
  170.         if( MetaResult!=META_TIMEOUT )
  171.         {   Confirm( STATE_WIFIGNRL_FAIL );  return;  }
  172.         else
  173.         {   Confirm( STATE_WIFIGNRL_TIMEOUT );  return;  }
  174.     }
  175.     ActiveMan->SetActiveFunction( ::REQ_Finish );
  176. }
  177. //===========================================================================
  178. int  CWIFIGNRL::Get_ConfirmState( void )
  179. {
  180.     return m_iConfirmState;
  181. }