184 // ---------------------------------------------------------------------------- |
184 // ---------------------------------------------------------------------------- |
185 // Start personality. |
185 // Start personality. |
186 // ---------------------------------------------------------------------------- |
186 // ---------------------------------------------------------------------------- |
187 // |
187 // |
188 void CUsbActivePersonalityHandler::StartPersonality( TInt& aPersonalityId, |
188 void CUsbActivePersonalityHandler::StartPersonality( TInt& aPersonalityId, |
189 TRequestStatus& aStatus ) |
189 TInt aAskOnConnectionSetting, TRequestStatus& aStatus ) |
190 { |
190 { |
191 LOG_FUNC |
191 LOG_FUNC |
192 |
192 |
193 LOG1( "PersonalityId = %d ", aPersonalityId); |
193 LOG2( "PersonalityId = %d, AskOnConnectionSetting = %d", aPersonalityId, |
|
194 aAskOnConnectionSetting ); |
194 |
195 |
195 // Remove all notes. |
196 // Remove all notes. |
196 iPersonalityNotifier->CancelAll(); |
197 iPersonalityNotifier->CancelAll(); |
197 |
198 |
198 |
199 |
199 iPersonalityId = &aPersonalityId; |
200 iPersonalityId = &aPersonalityId; |
|
201 iAskOnConnectionSetting = aAskOnConnectionSetting; |
200 aStatus = KRequestPending; |
202 aStatus = KRequestPending; |
201 iRequestStatus = &aStatus; |
203 iRequestStatus = &aStatus; |
202 |
204 |
203 // prepare current personality for start and return |
205 // prepare current personality for start and return |
204 if( iCurrentPersonalityHandler ) |
206 if( iCurrentPersonalityHandler ) |
268 iDeviceState = aStateNew; |
270 iDeviceState = aStateNew; |
269 switch ( aStateNew ) |
271 switch ( aStateNew ) |
270 { |
272 { |
271 case EUsbDeviceStateAddress: |
273 case EUsbDeviceStateAddress: |
272 { |
274 { |
273 if ((aStateOld != EUsbDeviceStateSuspended) && (aStateOld |
275 if( iAskOnConnectionSetting && |
274 != EUsbDeviceStateConfigured) && (ESwStateCharging |
276 ( aStateOld != EUsbDeviceStateSuspended ) && |
275 != CUsbGlobalSystemStateObserver::GlobalSystemState())) |
277 ( aStateOld != EUsbDeviceStateConfigured ) |
|
278 ) |
276 { |
279 { |
277 iPersonalityParams->PersonalityNotifier().ShowQuery( |
280 iPersonalityParams->PersonalityNotifier().ShowQuery( |
278 KCableConnectedNotifierUid, iDummy, |
281 KCableConnectedNotifierUid, iDummy, |
279 iPersonalityPckgBuf); |
282 iPersonalityPckgBuf); |
280 } |
283 } |
315 iQueryParams().iQuery = EUSBNotEnoughRam; |
318 iQueryParams().iQuery = EUSBNotEnoughRam; |
316 iPersonalityParams->PersonalityNotifier().ShowQuery(KQueriesNotifier, |
319 iPersonalityParams->PersonalityNotifier().ShowQuery(KQueriesNotifier, |
317 iQueryParams, iDummyBuf); |
320 iQueryParams, iDummyBuf); |
318 break; |
321 break; |
319 case KErrDiskFull: |
322 case KErrDiskFull: |
320 if (ESwStateCharging |
323 iQueryParams().iQuery = EUSBDiskFull; |
321 != CUsbGlobalSystemStateObserver::GlobalSystemState()) |
324 iPersonalityParams->PersonalityNotifier().ShowQuery(KQueriesNotifier, |
322 { |
325 iQueryParams, iDummyBuf); |
323 iQueryParams().iQuery = EUSBDiskFull; |
|
324 iPersonalityParams->PersonalityNotifier().ShowQuery( |
|
325 KQueriesNotifier, iQueryParams, iDummyBuf); |
|
326 } |
|
327 break; |
326 break; |
328 default: |
327 default: |
329 LOG( "Ignored" ); |
328 LOG( "Ignored" ); |
330 } |
329 } |
331 |
330 |
437 LOG( "EUsbPersonalityFinishStop" ); |
436 LOG( "EUsbPersonalityFinishStop" ); |
438 |
437 |
439 delete iCurrentPersonalityHandler; |
438 delete iCurrentPersonalityHandler; |
440 iCurrentPersonalityHandler = NULL; |
439 iCurrentPersonalityHandler = NULL; |
441 |
440 |
|
441 //iAskOnConnectionSetting may be have been set to off |
442 if ( iDeviceState == EUsbDeviceStateUndefined ) |
442 if ( iDeviceState == EUsbDeviceStateUndefined ) |
443 { |
443 { |
444 iPersonalityParams->PersonalityNotifier().CancelQuery( |
444 iPersonalityParams->PersonalityNotifier().CancelQuery( |
445 KCableConnectedNotifierUid ); |
445 KCableConnectedNotifierUid ); |
446 } |
446 } |