68 class CBTSapRequestHandler; |
70 class CBTSapRequestHandler; |
69 class CBTSapSimCardStatusNotifier; |
71 class CBTSapSimCardStatusNotifier; |
70 class RTelServer; |
72 class RTelServer; |
71 class RMobilePhone; |
73 class RMobilePhone; |
72 class MSapStatusObserver; |
74 class MSapStatusObserver; |
|
75 class MSapCallStatusObserver; |
73 |
76 |
74 /* |
77 /* |
75 * An abstarct interface that defines a callback method |
78 * An abstarct interface that defines a callback method |
76 * for the SAP connection state observer. SapStatusChangedL |
79 * for the SAP connection state observer. SapStatusChangedL |
77 * is called by CBTSapStatusObserver when the SAP connection |
80 * is called by CBTSapStatusObserver when the SAP connection |
126 private: |
129 private: |
127 MSapStatusObserver* iObserver; |
130 MSapStatusObserver* iObserver; |
128 RProperty iProperty; |
131 RProperty iProperty; |
129 }; |
132 }; |
130 |
133 |
|
134 /* |
|
135 * An abstarct interface that defines a callback method |
|
136 * for the Call state observer. CallStatusChangedL |
|
137 * is called by CBTCallStatusObserver when the call connection |
|
138 * state has changed. aStatus represents the new status value. |
|
139 */ |
|
140 class MSapCallStatusObserver |
|
141 { |
|
142 public: |
|
143 virtual void CallStatusChangedL(TInt aStatus) = 0; |
|
144 }; |
|
145 |
|
146 /* |
|
147 * An observer that monitors KPSUidCtsyCallInformation |
|
148 * P&S key . The clients can call SubscribeCallStatusL in order to |
|
149 * get a changed call status returned via |
|
150 * MSapCallStatusObserver::CallStatusChangedL. |
|
151 */ |
|
152 class CBTSapCallStatusObserver : public CActive |
|
153 { |
|
154 public: |
|
155 /** |
|
156 * Two-phased constructor. |
|
157 */ |
|
158 static CBTSapCallStatusObserver* NewL(); |
|
159 /** |
|
160 * Destructor. |
|
161 */ |
|
162 virtual ~CBTSapCallStatusObserver(); |
|
163 |
|
164 /** |
|
165 * Starts listening KCTsyCallState P&S key. |
|
166 * When the key value is changed, the new state is indicated |
|
167 * through the observer interface (MSapCallStatusObserver). |
|
168 */ |
|
169 void SubscribeCallStatusL(MSapCallStatusObserver* aObserver); |
|
170 |
|
171 private: |
|
172 /** |
|
173 * Two-Phase constructor |
|
174 */ |
|
175 void ConstructL(); |
|
176 |
|
177 /** |
|
178 * Default constructor |
|
179 */ |
|
180 CBTSapCallStatusObserver(); |
|
181 |
|
182 // From CActive |
|
183 virtual void DoCancel(); |
|
184 virtual void RunL(); |
|
185 |
|
186 private: |
|
187 MSapCallStatusObserver* iObserver; |
|
188 RProperty iProperty; |
|
189 }; |
131 |
190 |
132 /** |
191 /** |
133 * CBTSapServerState core class |
192 * CBTSapServerState core class |
134 * |
193 * |
135 */ |
194 */ |
136 class CBTSapServerState : public CActive, MSapStatusObserver |
195 class CBTSapServerState : public CActive, MSapStatusObserver, MSapCallStatusObserver |
137 { |
196 { |
138 private: |
197 private: |
139 class TState |
198 class TState |
140 { |
199 { |
141 public: |
200 public: |
147 virtual TInt DisconnectSapConnection(TBTSapDisconnectType aType); |
206 virtual TInt DisconnectSapConnection(TBTSapDisconnectType aType); |
148 virtual TInt AcceptSapConnection(); |
207 virtual TInt AcceptSapConnection(); |
149 virtual TInt RejectSapConnection(TBTSapRejectReason aReason); |
208 virtual TInt RejectSapConnection(TBTSapRejectReason aReason); |
150 virtual void SimCardStatusChanged(TCardStatus aCardStatus); |
209 virtual void SimCardStatusChanged(TCardStatus aCardStatus); |
151 virtual TInt ChangeState(TBTSapServerState& aNextState); |
210 virtual TInt ChangeState(TBTSapServerState& aNextState); |
|
211 virtual TInt CallInactive(); |
152 |
212 |
153 void NotifySapState(TSapConnectionState aState); |
213 void NotifySapState(TSapConnectionState aState); |
154 void StartBTNotifier(TInt type); |
214 void StartBTNotifier(TInt type); |
155 TBool IsSimPresent(); |
215 TBool IsSimPresent(); |
156 |
216 |
204 |
264 |
205 TInt AcceptSapConnection(); |
265 TInt AcceptSapConnection(); |
206 TInt RejectSapConnection(TBTSapRejectReason aReason); |
266 TInt RejectSapConnection(TBTSapRejectReason aReason); |
207 TInt ChangeState(TBTSapServerState& aNextState); |
267 TInt ChangeState(TBTSapServerState& aNextState); |
208 void SimCardStatusChanged(TCardStatus aCardStatus); |
268 void SimCardStatusChanged(TCardStatus aCardStatus); |
|
269 TInt CallInactive(); |
209 |
270 |
210 private: |
271 private: |
211 void CheckMaxMsgSize(TConnectionStatus& aMsgSizeStatus); |
272 void CheckMaxMsgSize(TConnectionStatus& aMsgSizeStatus); |
212 TBool IsCallOngoing(); |
273 TBool IsCallOngoing(); |
213 |
274 |
214 private: |
275 private: |
215 TBool iConnectRequestOK; |
276 TBool iConnectRequestOK; |
216 TCardStatus iCardStatus; |
277 TCardStatus iCardStatus; |
|
278 TBool iSendRespMessageDone; |
|
279 TBool iMessageSizeNegotiationDone; |
217 RProperty iProperty; |
280 RProperty iProperty; |
218 }; |
281 }; |
219 |
282 |
220 class TStateDisconnect : public TStateIdle |
283 class TStateDisconnect : public TStateIdle |
221 { |
284 { |
365 |
428 |
366 TBTSapMessage& BTSapRequestMessage(); |
429 TBTSapMessage& BTSapRequestMessage(); |
367 |
430 |
368 TBTSapMessage& BTSapResponseMessage(); |
431 TBTSapMessage& BTSapResponseMessage(); |
369 |
432 |
|
433 void SubscribeCallStatusL(); |
|
434 |
|
435 void CancelSubscribeCallStatusL(); |
|
436 |
370 // From MSapStatusObserver |
437 // From MSapStatusObserver |
371 void SapStatusChangedL(TInt aStatus); |
438 void SapStatusChangedL(TInt aStatus); |
372 |
439 |
|
440 // From MSapCallStatusObserver |
|
441 void CallStatusChangedL(TInt aStatus); |
373 private: |
442 private: |
374 |
443 |
375 void OpenSubscriptionModuleL(); |
444 void OpenSubscriptionModuleL(); |
376 |
445 |
377 private: // From CActive |
446 private: // From CActive |
418 RMmCustomAPI iSubscriptionModule; |
487 RMmCustomAPI iSubscriptionModule; |
419 |
488 |
420 TBTSapMessage iResponseMessage; |
489 TBTSapMessage iResponseMessage; |
421 TBTSapMessage iRequestMessage; |
490 TBTSapMessage iRequestMessage; |
422 CBTSapStatusObserver* iStatusObserver; |
491 CBTSapStatusObserver* iStatusObserver; |
|
492 CBTSapCallStatusObserver* iBTCallStatusObserver; |
423 TBool iStatesCreated; |
493 TBool iStatesCreated; |
424 }; |
494 }; |
425 |
495 |
426 #endif // BT_SAP_SERVER_STATE_H |
496 #endif // BT_SAP_SERVER_STATE_H |
427 |
497 |