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), |
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 // --------------------------------------------------------- |