bb_rtc.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) 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.  *   bb_rtc.cpp
  40.  *
  41.  * Project:
  42.  * --------
  43.  *   Maui META APP
  44.  *
  45.  * Description:
  46.  * ------------
  47.  *  Baseband RTC 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. #pragma hdrstop
  66. #ifndef  _METAAPP_COMMON_H_
  67. #include "metaapp_common.h"
  68. #endif
  69. #ifndef  _BB_COMMON_H_
  70. #include "bb_common.h"
  71. #endif
  72. #ifndef  _BB_RTC_H_
  73. #include "bb_rtc.h"
  74. #endif
  75. #ifndef  _MAN_ACTIVE_H_
  76. #include "man_active.h"
  77. #endif
  78. //===========================================================================
  79. static CBBRTC*  g_bb_rtc_ptr;
  80. static bool g_bIsRunning;
  81. //===========================================================================
  82. static void REQ_QueryRTCTime(void)
  83. {
  84.     g_bb_rtc_ptr->REQ_QueryRTCTime();
  85. }
  86. //---------------------------------------------------------------------------
  87. static void  REQ_TimeOut( void )
  88. {  g_bb_rtc_ptr->REQ_TimeOut();
  89. }
  90. //---------------------------------------------------------------------------
  91. static void  REQ_Finish( void )
  92. {   g_bb_rtc_ptr->REQ_Finish();
  93. }
  94. //===========================================================================
  95. CBBRTC::CBBRTC( void )
  96. {
  97.     g_bIsRunning = false;
  98.     ConfirmCallback = 0;
  99. }
  100. //---------------------------------------------------------------------------
  101. CBBRTC::~CBBRTC( )
  102. {
  103.     g_bIsRunning = false;
  104.     ConfirmCallback = 0;
  105. }
  106. //---------------------------------------------------------------------------
  107. void  CBBRTC::REQ_Finish( void )
  108. {
  109.     if(!g_bIsRunning)  return;
  110.     Confirm(METAAPP_SUCCESS);
  111.     g_bIsRunning = false;
  112. }
  113. //---------------------------------------------------------------------------
  114. void  CBBRTC::REQ_Stop( void )
  115. {
  116.     if(!g_bIsRunning)  return;
  117.     META_CancelAllBlockingCall_r(m_META_HANDLE_Obj.Get_MainHandle());
  118.     Confirm(METAAPP_STOP);
  119.     g_bIsRunning = false;
  120. }
  121. //---------------------------------------------------------------------------
  122. void  CBBRTC::REQ_TimeOut( void )
  123. {
  124.     if(!g_bIsRunning)  return;
  125.     META_CancelAllBlockingCall_r(m_META_HANDLE_Obj.Get_MainHandle());
  126.     Confirm(METAAPP_TIMEOUT);
  127.     g_bIsRunning = false;
  128. }
  129. //---------------------------------------------------------------------------
  130. void  CBBRTC::Confirm(int confirm_state)
  131. {
  132.     if(!g_bIsRunning)  return;
  133.     if(ConfirmCallback==0)  return;
  134.     m_iConfirmState = confirm_state;
  135.     ActiveMan->SetActiveFunction(ConfirmCallback);
  136. }
  137. //===========================================================================
  138. void CBBRTC::REQ_QueryRTCTime_Start(void)
  139. {
  140.     g_bb_rtc_ptr = this;
  141.     g_bIsRunning = true;
  142.     ActiveMan->SetActiveFunction(::REQ_QueryRTCTime);
  143. }
  144. //-------------------------------------
  145. void  CBBRTC::REQ_QueryRTCTime(void)
  146. {
  147.     if(!g_bIsRunning)  return;
  148.     META_RESULT       MetaResult;
  149.     MetaResult = META_QueryLocalTime_r(m_META_HANDLE_Obj.Get_MainHandle(), 1000, &m_sRTC);
  150.     if (MetaResult != META_SUCCESS)
  151.     {
  152.         if (MetaResult != META_TIMEOUT)
  153.         {
  154.             Confirm(METAAPP_FAIL);
  155.             return;
  156.         }
  157.         else
  158.         {
  159.             Confirm(METAAPP_TIMEOUT);
  160.             return;
  161.         }
  162.     }
  163.     Confirm(METAAPP_SUCCESS);
  164. }
  165. //===========================================================================
  166. ////////////////////////////  Global information  ///////////////////////////
  167. //===========================================================================
  168. int CBBRTC::Get_ConfirmState( void )
  169. {
  170.     return  m_iConfirmState;
  171. }
  172. //---------------------------------------------------------------------------
  173. T_Rtc* CBBRTC::Get_RTCTime(void)
  174. {
  175.     return &m_sRTC;
  176. }