422 CLiwGenericParamList& aOutParamList ) |
422 CLiwGenericParamList& aOutParamList ) |
423 { |
423 { |
424 TInt pos; |
424 TInt pos; |
425 TPtrC8 interface; |
425 TPtrC8 interface; |
426 TPtrC8 type; |
426 TPtrC8 type; |
|
427 TBool copyLogos = EFalse; |
427 const TLiwGenericParam* inParam; |
428 const TLiwGenericParam* inParam; |
428 TLiwVariant inParamVariant; |
429 TLiwVariant inParamVariant; |
429 |
430 |
430 // Get interface parameter (mandatory) |
431 // Get interface parameter (mandatory) |
431 pos = 0; |
432 pos = 0; |
432 inParam = aInParamList.FindFirst( |
433 inParam = aInParamList.FindFirst( |
433 pos, |
434 pos, |
434 KHspsLiwInterface ); |
435 KHspsLiwInterface ); |
435 |
436 |
436 if( inParam ) |
437 if( !inParam ) |
437 { |
|
438 inParamVariant = inParam->Value(); |
|
439 interface.Set( inParamVariant.AsData() ); |
|
440 |
|
441 // Get type parameter (optional) |
|
442 pos = 0; |
|
443 inParam = aInParamList.FindFirst( |
|
444 pos, |
|
445 KHspsLiwType ); |
|
446 if ( inParam ) |
|
447 { |
|
448 inParamVariant = inParam->Value(); |
|
449 type.Set( inParamVariant.AsData() ); |
|
450 } |
|
451 |
|
452 // Get headers list of defined interface |
|
453 TUint32 family; |
|
454 iHspsConfigurationService->GetFamilyL( family ); |
|
455 CArrayPtrFlat<ChspsODT>* list = |
|
456 new ( ELeave )CArrayPtrFlat<ChspsODT>( KHeaderListGranularity ); |
|
457 CleanupStack::PushL( TCleanupItem( DeleteArrayItems, list ) ); |
|
458 iHspsPersonalisationService->GetPluginListL( |
|
459 interface, |
|
460 type, |
|
461 family, |
|
462 *list ); |
|
463 |
|
464 // Create GetPlugins output parameters |
|
465 CHspsLiwUtilities::GetPluginsOutputL( *list, aOutParamList ); |
|
466 CleanupStack::PopAndDestroy( list ); |
|
467 } |
|
468 else |
|
469 { |
438 { |
470 // Invalid method call |
439 // Invalid method call |
471 User::Leave( KErrArgument ); |
440 User::Leave( KErrArgument ); |
472 } |
441 } |
|
442 |
|
443 inParamVariant = inParam->Value(); |
|
444 interface.Set( inParamVariant.AsData() ); |
|
445 |
|
446 // Get type parameter (optional) |
|
447 pos = 0; |
|
448 inParam = aInParamList.FindFirst( |
|
449 pos, |
|
450 KHspsLiwType ); |
|
451 if ( inParam ) |
|
452 { |
|
453 inParamVariant = inParam->Value(); |
|
454 type.Set( inParamVariant.AsData() ); |
|
455 } |
|
456 |
|
457 // Get copylogos parameter (optional) |
|
458 pos = 0; |
|
459 inParam = aInParamList.FindFirst( |
|
460 pos, |
|
461 KHspsLiwCopyLogos ); |
|
462 if ( inParam ) |
|
463 { |
|
464 inParamVariant = inParam->Value(); |
|
465 copyLogos = inParamVariant.AsTBool(); |
|
466 } |
|
467 |
|
468 // Get headers list of defined interface |
|
469 TUint32 family; |
|
470 iHspsConfigurationService->GetFamilyL( family ); |
|
471 |
|
472 CArrayPtrFlat<ChspsODT>* list = |
|
473 new ( ELeave )CArrayPtrFlat<ChspsODT>( KHeaderListGranularity ); |
|
474 CleanupStack::PushL( TCleanupItem( DeleteArrayItems, list ) ); |
|
475 |
|
476 // Get headers list of defined interface |
|
477 iHspsPersonalisationService->GetPluginListL( |
|
478 interface, |
|
479 type, |
|
480 family, |
|
481 copyLogos, |
|
482 *list ); |
|
483 |
|
484 // Create GetPlugins output parameters |
|
485 CHspsLiwUtilities::GetPluginsOutputL( *list, aOutParamList ); |
|
486 |
|
487 CleanupStack::PopAndDestroy( list ); |
|
488 |
473 } |
489 } |
474 |
490 |
475 // ----------------------------------------------------------------------------- |
491 // ----------------------------------------------------------------------------- |
476 // Gets list of plugins with defined interface |
492 // Gets list of plugins with defined interface |
477 // ----------------------------------------------------------------------------- |
493 // ----------------------------------------------------------------------------- |