bluetoothengine/btsap/src/BTSapServerState.cpp
changeset 66 b3d605f76ff8
parent 0 f63038272f30
equal deleted inserted replaced
63:bcf742120177 66:b3d605f76ff8
    18 
    18 
    19 
    19 
    20 
    20 
    21 // INCLUDE FILES
    21 // INCLUDE FILES
    22 #include <e32property.h>
    22 #include <e32property.h>
       
    23 #include <ctsydomainpskeys.h>
       
    24 #include <PSVariables.h>
    23 #include "BTSapDomainPSKeys.h"
    25 #include "BTSapDomainPSKeys.h"
    24 
    26 
    25 #include "BTSapServerState.h"
    27 #include "BTSapServerState.h"
    26 #include "BTSapSocketHandler.h"
    28 #include "BTSapSocketHandler.h"
    27 #include "BTSapRequestHandler.h"
    29 #include "BTSapRequestHandler.h"
    76     Cancel();
    78     Cancel();
    77     iProperty.Close();
    79     iProperty.Close();
    78     }
    80     }
    79     
    81     
    80 // ---------------------------------------------------------
    82 // ---------------------------------------------------------
    81 // CBTSapStatusObserver::StartObservingL()
    83 // CBTSapStatusObserver::SubscribeSapStatusL()
    82 //----------------------------------------------------------
    84 //----------------------------------------------------------
    83 //
    85 //
    84 void CBTSapStatusObserver::SubscribeSapStatusL(MSapStatusObserver* aObserver)
    86 void CBTSapStatusObserver::SubscribeSapStatusL(MSapStatusObserver* aObserver)
    85     {
    87     {
    86     BTSAP_TRACE_OPT(KBTSAP_TRACE_FUNCTIONS, BTSapPrintTrace(_L("[BTSap]  CBTSapStatusObserver::SubscribeSapStatusL")));
    88     BTSAP_TRACE_OPT(KBTSAP_TRACE_FUNCTIONS, BTSapPrintTrace(_L("[BTSap]  CBTSapStatusObserver::SubscribeSapStatusL")));
   128             }
   130             }
   129         }
   131         }
   130     }
   132     }
   131 
   133 
   132 // ---------------------------------------------------------
   134 // ---------------------------------------------------------
       
   135 // CBTSapCallStatusObserver::CBTSapCallStatusObserver()
       
   136 //----------------------------------------------------------
       
   137 //
       
   138 CBTSapCallStatusObserver::CBTSapCallStatusObserver(): CActive(CActive::EPriorityStandard)
       
   139     {                                
       
   140     CActiveScheduler::Add( this );
       
   141     }
       
   142 
       
   143 // ---------------------------------------------------------
       
   144 // CBTSapCallStatusObserver::NewL()
       
   145 //----------------------------------------------------------
       
   146 // 
       
   147 CBTSapCallStatusObserver* CBTSapCallStatusObserver::NewL() 
       
   148     {
       
   149     CBTSapCallStatusObserver* self = new(ELeave) CBTSapCallStatusObserver();
       
   150     CleanupStack::PushL( self );
       
   151     self->ConstructL();
       
   152     CleanupStack::Pop();
       
   153     return self;
       
   154     }
       
   155  
       
   156 // ---------------------------------------------------------
       
   157 // CBTSapCallStatusObserver::ConstructL()
       
   158 //----------------------------------------------------------
       
   159 //   
       
   160 void CBTSapCallStatusObserver::ConstructL()
       
   161     {
       
   162     BTSAP_TRACE_OPT(KBTSAP_TRACE_FUNCTIONS, BTSapPrintTrace(_L("[BTSap]  CBTSapCallStatusObserver::ConstructL")));
       
   163     User::LeaveIfError(iProperty.Attach( KPSUidCtsyCallInformation, 
       
   164             KCTsyCallState));
       
   165     }
       
   166 
       
   167 // ---------------------------------------------------------
       
   168 // CBTSapCallStatusObserver::~CBTSapCallStatusObserver
       
   169 //----------------------------------------------------------
       
   170 //
       
   171 CBTSapCallStatusObserver::~CBTSapCallStatusObserver()
       
   172     {
       
   173     Cancel();
       
   174     iProperty.Close();
       
   175     }
       
   176     
       
   177 // ---------------------------------------------------------
       
   178 // CBTSapCallStatusObserver::SubscribeCallStatusL()
       
   179 //----------------------------------------------------------
       
   180 //
       
   181 void CBTSapCallStatusObserver::SubscribeCallStatusL(MSapCallStatusObserver* aObserver)
       
   182     {
       
   183     BTSAP_TRACE_OPT(KBTSAP_TRACE_FUNCTIONS, BTSapPrintTrace(_L("[BTSap]  CBTSapCallStatusObserver::SubscribeCallStatusL")));
       
   184     
       
   185     ASSERT(aObserver);
       
   186     
       
   187     iObserver = aObserver;
       
   188     
       
   189     iProperty.Subscribe(iStatus);
       
   190     SetActive();
       
   191     BTSAP_TRACE_OPT(KBTSAP_TRACE_FUNCTIONS, BTSapPrintTrace(_L("[BTSap]  CBTSapCallStatusObserver::SubscribeCallStatusL() Exit")));
       
   192     }
       
   193     
       
   194 
       
   195 // ---------------------------------------------------------
       
   196 // CBTSapCallStatusObserver::DoCancel()
       
   197 // ---------------------------------------------------------
       
   198 //
       
   199 void CBTSapCallStatusObserver::DoCancel()
       
   200     {
       
   201     BTSAP_TRACE_OPT(KBTSAP_TRACE_FUNCTIONS, BTSapPrintTrace(_L("[BTSap]  CBTSapCallStatusObserver::DoCancel")));
       
   202     
       
   203     iProperty.Cancel();
       
   204     }
       
   205 
       
   206 // ---------------------------------------------------------
       
   207 // CBTSapCallStatusObserver::RunL()
       
   208 // ---------------------------------------------------------
       
   209 //
       
   210 void CBTSapCallStatusObserver::RunL()
       
   211     {
       
   212     BTSAP_TRACE_OPT(KBTSAP_TRACE_FUNCTIONS, BTSapPrintTrace(_L("[BTSap]  CBTSapCallStatusObserver::RunL")));
       
   213     
       
   214     TInt btSapState;
       
   215     TInt err = iStatus.Int();
       
   216     
       
   217     iProperty.Subscribe(iStatus);
       
   218     SetActive();
       
   219     
       
   220     if (!err)
       
   221         {
       
   222         err = iProperty.Get(btSapState);
       
   223         if (!err)
       
   224             {
       
   225             iObserver->CallStatusChangedL(btSapState);
       
   226             }
       
   227         }
       
   228     }
       
   229 
       
   230 // ---------------------------------------------------------
   133 // CBTSapServerState::CBTSapServerState()
   231 // CBTSapServerState::CBTSapServerState()
   134 // ---------------------------------------------------------
   232 // ---------------------------------------------------------
   135 //
   233 //
   136 CBTSapServerState::CBTSapServerState(CBTSapPlugin& aBTSapPlugin)
   234 CBTSapServerState::CBTSapServerState(CBTSapPlugin& aBTSapPlugin)
   137     : CActive(CActive::EPriorityStandard), 
   235     : CActive(CActive::EPriorityStandard), 
   167 
   265 
   168     delete iSocketHandler;
   266     delete iSocketHandler;
   169     delete iSimCardStatusNotifier;
   267     delete iSimCardStatusNotifier;
   170     delete iRequestHandler;
   268     delete iRequestHandler;
   171     delete iStatusObserver;
   269     delete iStatusObserver;
       
   270     delete iBTCallStatusObserver;
   172 
   271 
   173     iSubscriptionModule.Close();
   272     iSubscriptionModule.Close();
   174     iPhone.Close();
   273     iPhone.Close();
   175     iTelServer.UnloadPhoneModule(KPhoneTsy);
   274     iTelServer.UnloadPhoneModule(KPhoneTsy);
   176     iTelServer.Close();
   275     iTelServer.Close();
   204     OpenSubscriptionModuleL();
   303     OpenSubscriptionModuleL();
   205     iRequestHandler = CBTSapRequestHandler::NewL(*this);
   304     iRequestHandler = CBTSapRequestHandler::NewL(*this);
   206     iSocketHandler = CBTSapSocketHandler::NewL(*this, *iRequestHandler);
   305     iSocketHandler = CBTSapSocketHandler::NewL(*this, *iRequestHandler);
   207     iSimCardStatusNotifier = CBTSapSimCardStatusNotifier::NewL(*this);
   306     iSimCardStatusNotifier = CBTSapSimCardStatusNotifier::NewL(*this);
   208     iStatusObserver = CBTSapStatusObserver::NewL();
   307     iStatusObserver = CBTSapStatusObserver::NewL();
       
   308     iBTCallStatusObserver = CBTSapCallStatusObserver::NewL();
   209     
   309     
   210 	TState* state = new (ELeave) TStateInit(*this);
   310 	TState* state = new (ELeave) TStateInit(*this);
   211 	CleanupStack::PushL(state);
   311 	CleanupStack::PushL(state);
   212     User::LeaveIfError(iStateArray.Append(state));
   312     User::LeaveIfError(iStateArray.Append(state));
   213 	CleanupStack::Pop(state);
   313 	CleanupStack::Pop(state);
   214     
   314     
   215 	ChangeState(EStateInit);
   315 	ChangeState(EStateInit);
       
   316     }
       
   317 
       
   318 // ---------------------------------------------------------
       
   319 // CBTSapServerState::SubscribeCallStatusL()
       
   320 // ---------------------------------------------------------
       
   321 //
       
   322 void CBTSapServerState::SubscribeCallStatusL()
       
   323     {
       
   324     BTSAP_TRACE_OPT(KBTSAP_TRACE_FUNCTIONS, BTSapPrintTrace(_L("[BTSap]  CBTSapServerState::SubscribeCallStatusL")));
       
   325     if (!iBTCallStatusObserver->IsActive())
       
   326         {
       
   327         iBTCallStatusObserver->SubscribeCallStatusL(this);
       
   328         }
       
   329     }
       
   330 
       
   331 // ---------------------------------------------------------
       
   332 // CBTSapServerState::CancelSubscribeCallStatusL()
       
   333 // ---------------------------------------------------------
       
   334 //
       
   335 void CBTSapServerState::CancelSubscribeCallStatusL()
       
   336     {
       
   337     BTSAP_TRACE_OPT(KBTSAP_TRACE_FUNCTIONS, BTSapPrintTrace(_L("[BTSap]  CBTSapServerState::CancelSubscribeCallStatusL")));
       
   338     iBTCallStatusObserver->Cancel();
       
   339     }
       
   340 
       
   341 // ---------------------------------------------------------
       
   342 // CBTSapServerState::CallStatusChangedL()
       
   343 // ---------------------------------------------------------
       
   344 //
       
   345 void CBTSapServerState::CallStatusChangedL(TInt aStatus)
       
   346     {
       
   347     BTSAP_TRACE_OPT(KBTSAP_TRACE_INFO, BTSapPrintTrace(_L("[BTSap]  TStateConnect: callState: %d"), aStatus));
       
   348 
       
   349     // If callState is EPSTelephonyCallStateNone or EPSTelephonyCallStateUninitialized, there's no ongoing call
       
   350     TBool retVal = (aStatus != EPSCTsyCallStateNone) && (aStatus != EPSCTsyCallStateUninitialized);
       
   351     if (retVal)
       
   352         {
       
   353         BTSAP_TRACE_OPT(KBTSAP_TRACE_FUNCTIONS, BTSapPrintTrace(_L("[BTSap]  CBTSapServerState::CallStatusChangedL() call ended")));
       
   354         iStateArray[iCurrentState]->CallInactive();
       
   355         }
   216     }
   356     }
   217 
   357 
   218 // ---------------------------------------------------------
   358 // ---------------------------------------------------------
   219 // CBTSapServerState::StartL()
   359 // CBTSapServerState::StartL()
   220 // ---------------------------------------------------------
   360 // ---------------------------------------------------------