455 void CHsCcProviderClient::HandleViewListReqL( |
455 void CHsCcProviderClient::HandleViewListReqL( |
456 TUint32 aSender, |
456 TUint32 aSender, |
457 TUint32 aReceiver, |
457 TUint32 aReceiver, |
458 CCcSrvMsg& aMessage ) |
458 CCcSrvMsg& aMessage ) |
459 { |
459 { |
|
460 TInt err( KErrNone ); |
460 // Get view list |
461 // Get view list |
461 CHsContentInfoArray* views = CHsContentInfoArray::NewL(); |
462 CHsContentInfoArray* views = CHsContentInfoArray::NewL(); |
462 CleanupStack::PushL( views ); |
463 CleanupStack::PushL( views ); |
463 TInt err = iController.ViewListL( *views ); |
464 |
464 |
465 if ( aMessage.DataSize() ) |
|
466 { |
|
467 // Internalize message data |
|
468 RDesReadStream dataStream( aMessage.Data() ); |
|
469 CleanupClosePushL( dataStream ); |
|
470 CHsContentInfo* info = CHsContentInfo::NewL( dataStream ); |
|
471 CleanupStack::PopAndDestroy( &dataStream ); |
|
472 CleanupStack::PushL( info ); |
|
473 |
|
474 // Get list of views included in the defined |
|
475 // application configuration |
|
476 err = iController.ViewListL( *info, *views ); |
|
477 |
|
478 CleanupStack::PopAndDestroy( info ); |
|
479 } |
|
480 else |
|
481 { |
|
482 // Get list of available views |
|
483 err = iController.ViewListL( *views ); |
|
484 } |
|
485 |
|
486 |
465 // Create and send ViewListResp |
487 // Create and send ViewListResp |
466 CCcSrvMsg* message = CCcSrvMsg::NewL(); |
488 CCcSrvMsg* message = CCcSrvMsg::NewL(); |
467 CleanupStack::PushL( message ); |
489 CleanupStack::PushL( message ); |
468 message->SetMsgId( EHsCcViewListResp ); |
490 message->SetMsgId( EHsCcViewListResp ); |
469 message->SetTrId( aMessage.TrId() ); |
491 message->SetTrId( aMessage.TrId() ); |