skins/AknSkins/srvsrc/AknsSrvSession.cpp
changeset 0 05e9090e2422
child 54 08459e712984
equal deleted inserted replaced
-1:000000000000 0:05e9090e2422
       
     1 /*
       
     2 * Copyright (c) 2002-2008 Nokia Corporation and/or its subsidiary(-ies).
       
     3 * All rights reserved.
       
     4 * This component and the accompanying materials are made available
       
     5 * under the terms of "Eclipse Public License v1.0"
       
     6 * which accompanies this distribution, and is available
       
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8 *
       
     9 * Initial Contributors:
       
    10 * Nokia Corporation - initial contribution.
       
    11 *
       
    12 * Contributors:
       
    13 *
       
    14 * Description:  Session object for skin server.
       
    15 *
       
    16 */
       
    17 
       
    18 
       
    19 // INCLUDE FILES
       
    20 
       
    21 #include "AknsSrvSession.h"
       
    22 #include "AknsSrv.h"
       
    23 #include <AknsConstants.h>
       
    24 
       
    25 #include "AknsDebug.h"
       
    26 
       
    27 // ============================ MEMBER FUNCTIONS ===============================
       
    28 
       
    29 // -----------------------------------------------------------------------------
       
    30 // CAknsSrvSession::CAknsSrvSession
       
    31 // C++ constructor can NOT contain any code, that might leave.
       
    32 // -----------------------------------------------------------------------------
       
    33 //
       
    34 CAknsSrvSession::CAknsSrvSession() : CSession2()
       
    35     {
       
    36     }
       
    37 
       
    38 // -----------------------------------------------------------------------------
       
    39 // Destructor.
       
    40 // -----------------------------------------------------------------------------
       
    41 //
       
    42 CAknsSrvSession::~CAknsSrvSession()
       
    43     {
       
    44     EnableNotify();
       
    45     iHandler = NULL; // Not owned
       
    46 
       
    47     // Ensure that server does not continue waiting ack after exit
       
    48 
       
    49     for (TInt count = 0; count < iPendingAcks; count++)
       
    50         {
       
    51         Server()->AcknowledgeNotification( EAknsSCHNContentChanged );
       
    52         }
       
    53 
       
    54     iPendingAcks = 0;
       
    55     iCountNotifications = EFalse;
       
    56     iNotifyList.Reset();
       
    57     }
       
    58 
       
    59 // -----------------------------------------------------------------------------
       
    60 // CAknSkinSrvSession::DispatchMessageL()
       
    61 // -----------------------------------------------------------------------------
       
    62 //
       
    63 TInt CAknsSrvSession::DispatchMessageL( const RMessage2& aMessage )
       
    64     {
       
    65     TInt err( KErrNone );
       
    66 
       
    67     switch ( aMessage.Function() )
       
    68         {
       
    69         case EAknSkinSrvEnableNotifySkinChange:
       
    70             aMessage.HasCapabilityL(ECapabilitySwEvent);
       
    71             EnableNotify();
       
    72             break;
       
    73         case EAknSkinSrvDisableNotifySkinChange:
       
    74             aMessage.HasCapabilityL(ECapabilitySwEvent);
       
    75             DisableNotify();
       
    76             break;
       
    77         case EAknSkinSrvSetAllItemDefSets:
       
    78             aMessage.HasCapabilityL(ECapabilityWriteDeviceData);
       
    79             err = SetAllItemDefSets( aMessage );
       
    80             break;
       
    81         case EAknSkinSrvSetItemDefSet:
       
    82             // this is deprecated as of 3.0
       
    83             break;
       
    84         case EAknSkinSrvClientError:
       
    85             ClientError( aMessage );
       
    86             break;
       
    87         case EAknSkinSrvSetNotifyHandler:
       
    88             SetNotifyHandler( aMessage );
       
    89             break;
       
    90         case EAknSkinSrvNextEvent:
       
    91             NextEvent(aMessage);
       
    92             break;
       
    93         case EAknSkinSrvCancel:
       
    94             Cancel();
       
    95             break;
       
    96         case EAknSkinSrvSetIdleWallPaper:
       
    97             aMessage.HasCapabilityL(ECapabilityWriteDeviceData);
       
    98             SetIdleWallPaperL( aMessage );
       
    99             break;
       
   100         /*case EAknSkinSrvSetPinboardWallPaper:
       
   101             break;*/
       
   102         case EAknSkinSrvStoreScalableGfx:
       
   103             StoreScalableGraphicsL( aMessage );
       
   104             break;
       
   105         case EAknSkinSrvClearScalableGfx:
       
   106             ClearScalableGraphics( aMessage );
       
   107             break;
       
   108         case EAknSkinSrvAckNotification:
       
   109             AcknowledgeNotification( aMessage );
       
   110             break;
       
   111         case EAknSkinSrvOpenBitmapFile:
       
   112             OpenBitmapFileL( aMessage );
       
   113             break;
       
   114         /*case EAknSkinSrvDeleteSkin:
       
   115             break;
       
   116         case EAknSkinSrvCopySkin:
       
   117             break;*/
       
   118         case EAknSkinSrvOpenIniFile:
       
   119             aMessage.HasCapabilityL(ECapabilityWriteDeviceData);
       
   120             OpenIniFileL( aMessage );
       
   121             break;
       
   122         case EAknSkinSrvCopySoundFile:
       
   123             aMessage.HasCapabilityL(ECapabilityWriteDeviceData);
       
   124             CopySoundFileL( aMessage );
       
   125             break;
       
   126         case EAknSkinSrvEnumeratePackages:
       
   127             EnumeratePackages( aMessage );
       
   128             break;
       
   129         case EAknSkinSrvReceivePackages:
       
   130             ReceivePackages( aMessage );
       
   131             break;
       
   132         case  EAknSkinSrvStoreMorphingScalableGfx:
       
   133             StoreScalableGraphicsL( aMessage, ETrue );
       
   134             break;
       
   135         case EAknSkinSrvDecodeWallpaperImage:
       
   136             DecodeWallpaperImageL( aMessage );
       
   137             break;
       
   138         case EAknSkinSrvFreeDecodedWallpaper:
       
   139             FreeDecodedWallpaper( aMessage );
       
   140             break;
       
   141         case EAknSkinSrvCacheWallpaperImage:
       
   142             CacheWallpaperImageL( aMessage );
       
   143             break;
       
   144         case EAknSkinSrvOpenImageInifile:
       
   145             aMessage.HasCapabilityL(ECapabilityWriteDeviceData);
       
   146             OpenImageInifileL( aMessage );
       
   147             break;
       
   148         case EAknSkinSrvSetSlideSetWP:
       
   149             aMessage.HasCapabilityL(ECapabilityWriteDeviceData);
       
   150             Server()->SetSlidesetWallpaperL();
       
   151             break;
       
   152         case EAknSkinSrvStopSSIniFileObserver:
       
   153             Server()->StopSlidesetIniFileObserver();
       
   154             break;
       
   155         case EAknSkinSrvFreeLayoutBitmaps:
       
   156             Server()->FreeLayoutBitmaps( aMessage );
       
   157             break;
       
   158         case EAknSkinSrvCheckIconConfiguration:
       
   159             err = CheckIconConfiguration( aMessage );
       
   160             break;
       
   161         default:
       
   162             AKNS_TRACE_ERROR("CAknsSrvSession::DispatchMessageL BAD REQUEST!");
       
   163             err = KErrGeneral;
       
   164             PanicClient( aMessage, EAknsSrvBadRequest );
       
   165             break;
       
   166         }
       
   167 
       
   168     return err;
       
   169     }
       
   170 
       
   171 // -----------------------------------------------------------------------------
       
   172 // CAknSkinSrvSession::ServiceL()
       
   173 // -----------------------------------------------------------------------------
       
   174 //
       
   175 void CAknsSrvSession::ServiceL(const RMessage2& aMessage)
       
   176     {
       
   177     TInt ret( KErrNone );
       
   178 
       
   179     AKNS_TRACE_INFO1("CAknsSrvSession::ServiceL dispatch %i", aMessage.Function() );
       
   180     TRAPD( err, {ret = DispatchMessageL( aMessage );} );
       
   181     AKNS_TRACE_INFO1("CAknsSrvSession::ServiceL result %i", err );
       
   182 
       
   183     // don't complete the functions which open a filehandle as if they succeeded
       
   184     // the message should already be completed and double completion would result in a PANIC
       
   185     // If an error(Leave) occurred, complete even these two few lines below
       
   186     if (!err && ( (aMessage.Function() == EAknSkinSrvOpenBitmapFile) ||
       
   187                   (aMessage.Function() == EAknSkinSrvOpenIniFile) ||
       
   188                   (aMessage.Function() == EAknSkinSrvOpenImageInifile)))
       
   189         {
       
   190         return;
       
   191         }
       
   192     if ( ret != KErrNone )
       
   193         {
       
   194         // Server calls that return value are handled differently.
       
   195         if ( aMessage.Function() == EAknSkinSrvSetAllItemDefSets || 
       
   196              aMessage.Function() == EAknSkinSrvCheckIconConfiguration )
       
   197             {
       
   198             aMessage.Complete( err != KErrNone ? err : ret );
       
   199             }
       
   200         // Client has already been panicked and thus message completed.
       
   201         return;
       
   202         }
       
   203 
       
   204     // If the service routine leaved, return the leave reason.
       
   205     // Otherwise, return its return code.
       
   206     if (aMessage.Function() != EAknSkinSrvNextEvent)
       
   207         {
       
   208         __ASSERT_ALWAYS( !aMessage.IsNull(),
       
   209             User::Panic( KAknSkinSrvPanicCategory, EAknsSrvInvalidMessageHandle ) );
       
   210         aMessage.Complete( err != KErrNone ? err : ret );
       
   211         }
       
   212     }
       
   213 
       
   214 // -----------------------------------------------------------------------------
       
   215 // CAknsSrvSession::PanicClient()
       
   216 // -----------------------------------------------------------------------------
       
   217 //
       
   218 void CAknsSrvSession::PanicClient( const RMessage2& aMessage, TAknSkinSrvPanic aPanic ) const
       
   219     {
       
   220     AKNS_TRACE_ERROR("CAknsSrvSession::PanicClient PANIC!");
       
   221     aMessage.Panic( KAknSkinSrvPanicCategory, aPanic );
       
   222     }
       
   223 
       
   224 // -----------------------------------------------------------------------------
       
   225 // CAknsSrvSession::EnableNotify()
       
   226 // -----------------------------------------------------------------------------
       
   227 //
       
   228 void CAknsSrvSession::EnableNotify()
       
   229     {
       
   230     Server()->EnableSkinChangeNotify();
       
   231     }
       
   232 
       
   233 // -----------------------------------------------------------------------------
       
   234 // CAknsSrvSession::DisableNotify()
       
   235 // -----------------------------------------------------------------------------
       
   236 //
       
   237 void CAknsSrvSession::DisableNotify()
       
   238     {
       
   239     Server()->DisableSkinChangeNotify();
       
   240     }
       
   241 
       
   242 // -----------------------------------------------------------------------------
       
   243 // CAknsSrvSession::SetNotifyHandler()
       
   244 // -----------------------------------------------------------------------------
       
   245 //
       
   246 void CAknsSrvSession::SetNotifyHandler( const RMessage2& aMessage )
       
   247     {
       
   248     iHandler = (CAknsSkinChangeHandler*)( aMessage.Ptr0() ); //lint !e1924 Cast
       
   249     }
       
   250 
       
   251 // -----------------------------------------------------------------------------
       
   252 // CAknsSrvSession::Server()
       
   253 // -----------------------------------------------------------------------------
       
   254 //
       
   255 CAknsSrv* CAknsSrvSession::Server()
       
   256     {
       
   257     return (CAknsSrv*)(CSession2::Server()); //lint !e1924 Cast
       
   258     }
       
   259 
       
   260 // -----------------------------------------------------------------------------
       
   261 // CAknsSrvSession::Cancel()
       
   262 // -----------------------------------------------------------------------------
       
   263 //
       
   264 void CAknsSrvSession::Cancel()
       
   265     {
       
   266     if (iHandler && (iPendingNotifications == 0))
       
   267         {
       
   268         __ASSERT_DEBUG( !iNotifyRequest.IsNull(),
       
   269             User::Panic( KAknSkinSrvPanicCategory, EAknsSrvInvalidMessageHandle ) );
       
   270         if (!iNotifyRequest.IsNull())
       
   271             {
       
   272             iNotifyRequest.Complete(KErrCancel);
       
   273             }
       
   274         }
       
   275     }
       
   276 
       
   277 // -----------------------------------------------------------------------------
       
   278 // CAknsSrvSession::SetAllItemDefSets()
       
   279 // -----------------------------------------------------------------------------
       
   280 //
       
   281 TInt CAknsSrvSession::SetAllItemDefSets( const RMessage2& aMessage )
       
   282     {
       
   283     TInt error = KErrNone;
       
   284     TInt number = static_cast<TInt> (aMessage.Int0());
       
   285     TInt timestamp = static_cast<TInt> (aMessage.Int1());
       
   286     TAknsPkgID pid;
       
   287     pid.Set( timestamp, number );
       
   288 
       
   289     Server()->SetActiveSkinContent(pid);
       
   290     error = Server()->MergeAndBroadcast();
       
   291     return error;
       
   292     }
       
   293 
       
   294 // -----------------------------------------------------------------------------
       
   295 // CAknsSrvSession::SetIdleWallPaperL
       
   296 // -----------------------------------------------------------------------------
       
   297 //
       
   298 void CAknsSrvSession::SetIdleWallPaperL( const RMessage2& aMessage )
       
   299     {
       
   300     // Message parameters
       
   301     // 0. filename
       
   302     // 1. filename length;
       
   303     HBufC* buffer = HBufC::NewLC( aMessage.Int1() );
       
   304     TPtr filename = buffer->Des();
       
   305     aMessage.ReadL( 0, filename );
       
   306     Server()->SetWallpaperL(*buffer, KAknsIIDWallpaper );
       
   307     Server()->BroadcastUpdate();
       
   308     CleanupStack::PopAndDestroy( buffer );
       
   309     }
       
   310 
       
   311 // -----------------------------------------------------------------------------
       
   312 // CAknsSrvSession::StoreScalableGraphicsL
       
   313 // -----------------------------------------------------------------------------
       
   314 //
       
   315 void CAknsSrvSession::StoreScalableGraphicsL(
       
   316     const RMessage2& aMessage, TBool aMorphing )
       
   317     {
       
   318     // Message parameters
       
   319     // 0. ItemID
       
   320     // 1. LayoutType & size
       
   321     // 2. bitmap handle
       
   322     // 3. mask handle
       
   323     TAknsItemID iid = { 0, 0 };
       
   324     TPckg<TAknsItemID> iidPack( iid );
       
   325     TAknsSrvLayoutInfo layoutInfo;
       
   326     TPckg<TAknsSrvLayoutInfo> layoutInfoPack( layoutInfo );
       
   327     // Leaves only if non-valid descriptor in client side.
       
   328     aMessage.ReadL( 0, iidPack );
       
   329     aMessage.ReadL( 1, layoutInfoPack );
       
   330     TInt bmphandle = aMessage.Int2();
       
   331     TInt mskhandle = aMessage.Int3();
       
   332 
       
   333     Server()->StoreScalableGraphicsL(
       
   334         iid,
       
   335         layoutInfo.iLayoutType,
       
   336         layoutInfo.iLayoutSize,
       
   337         bmphandle,
       
   338         mskhandle,
       
   339         aMorphing );
       
   340     }
       
   341 
       
   342 // -----------------------------------------------------------------------------
       
   343 // CAknsSrvSession::ClearScalableGraphics
       
   344 // -----------------------------------------------------------------------------
       
   345 //
       
   346 void CAknsSrvSession::ClearScalableGraphics( const RMessage2& /*aMessage*/ )
       
   347     {
       
   348     // Message parameters
       
   349     // (none)
       
   350     Server()->ClearScalableGraphics();
       
   351     }
       
   352 
       
   353 // -----------------------------------------------------------------------------
       
   354 // CAknsSrvSession::AcknowledgeNotification
       
   355 // -----------------------------------------------------------------------------
       
   356 //
       
   357 void CAknsSrvSession::AcknowledgeNotification( const RMessage2& aMessage )
       
   358     {
       
   359     // Message parameters
       
   360     // 0. Reserved (zero)
       
   361     Server()->AcknowledgeNotification( aMessage.Int0() );
       
   362     if (iPendingAcks && aMessage.Int0() == EAknsSCHNContentChanged)
       
   363         {
       
   364         iPendingAcks--;
       
   365         }
       
   366     if (!iPendingAcks)
       
   367         {
       
   368         iCountNotifications = EFalse;
       
   369         }
       
   370     }
       
   371 
       
   372 // -----------------------------------------------------------------------------
       
   373 // CAknsSrvSession::ClientError()
       
   374 // -----------------------------------------------------------------------------
       
   375 //
       
   376 void CAknsSrvSession::ClientError( const RMessage2& aMessage )
       
   377     {
       
   378     TInt err = (TInt) (aMessage.Int0());
       
   379     Server()->HandleClientError(err);
       
   380     }
       
   381 
       
   382 // -----------------------------------------------------------------------------
       
   383 // CAknsSrvSession::EnqueueNotification
       
   384 // -----------------------------------------------------------------------------
       
   385 //
       
   386 TBool CAknsSrvSession::EnqueueNotification(
       
   387     const TAknsSkinChangeHandlerNotification aType, TBool aCountNotifications )
       
   388     {
       
   389     if( !iHandler )
       
   390         {
       
   391         return EFalse;
       
   392         }
       
   393 
       
   394     if( iPendingNotifications == 0 )
       
   395         {
       
   396         __ASSERT_DEBUG( !iNotifyRequest.IsNull(),
       
   397             User::Panic( KAknSkinSrvPanicCategory, EAknsSrvInvalidMessageHandle ) );
       
   398         if (!iNotifyRequest.IsNull())
       
   399             {
       
   400             iNotifyRequest.Complete(aType);
       
   401             }
       
   402         }
       
   403     else
       
   404         {
       
   405         if (aType == EAknsSCHNContentChanged && aCountNotifications)
       
   406             {
       
   407             TBool found = EFalse;
       
   408             for (TInt count = 0; count < iNotifyList.Count(); count++)
       
   409             {
       
   410             TAknsSkinChangeHandlerNotification type = iNotifyList[count];
       
   411             if (type == EAknsSCHNContentChanged)
       
   412                 {
       
   413                 found = ETrue;
       
   414                 }
       
   415             }
       
   416             if (!found)
       
   417                 {
       
   418                 // Append to queue
       
   419                 iNotifyList.Append( aType );
       
   420                 iPendingAcks++;
       
   421                 }
       
   422             else
       
   423                 {
       
   424                 return EFalse;
       
   425                 }
       
   426             }
       
   427         else
       
   428             {
       
   429             iNotifyList.Append( aType );
       
   430             }
       
   431         }
       
   432 
       
   433     iPendingNotifications++;
       
   434     iCountNotifications = aCountNotifications;
       
   435     return ETrue;
       
   436     }
       
   437 
       
   438 // -----------------------------------------------------------------------------
       
   439 // CAknsSrvSession::NextEvent()
       
   440 // -----------------------------------------------------------------------------
       
   441 //
       
   442 void CAknsSrvSession::NextEvent(const RMessage2 aMessage)
       
   443     {
       
   444     if( iCanceled )
       
   445         {
       
   446         iNotifyList.Reset();
       
   447 
       
   448         if (!iNotifyRequest.IsNull())
       
   449             {
       
   450             iNotifyRequest.Complete( KErrCancel );
       
   451             }
       
   452         __ASSERT_DEBUG( !aMessage.IsNull(),
       
   453             User::Panic( KAknSkinSrvPanicCategory, EAknsSrvInvalidMessageHandle ) );
       
   454         if (!aMessage.IsNull())
       
   455             {
       
   456             aMessage.Complete (KErrCancel);
       
   457             }
       
   458         return;
       
   459         }
       
   460 
       
   461     if( iPendingNotifications>0 )
       
   462         {
       
   463         iPendingNotifications--;
       
   464         }
       
   465 
       
   466     __ASSERT_DEBUG( iPendingNotifications>=iNotifyList.Count(),
       
   467         User::Panic( KAknSkinSrvPanicCategory, EAknsSrvNotifyListImbalance ) );
       
   468 
       
   469     if( iNotifyList.Count() > 0 )
       
   470         {
       
   471         // Take the first entry (FIFO)
       
   472         TAknsSkinChangeHandlerNotification type = iNotifyList[0];
       
   473         iNotifyList.Remove(0);
       
   474         __ASSERT_DEBUG( !aMessage.IsNull(),
       
   475             User::Panic( KAknSkinSrvPanicCategory, EAknsSrvInvalidMessageHandle ) );
       
   476         if (!aMessage.IsNull())
       
   477             {
       
   478             aMessage.Complete( type );
       
   479             }
       
   480         }
       
   481     else
       
   482         {
       
   483         // No notifications pending, store the message we want
       
   484         // to complete in the future...
       
   485         iNotifyRequest = aMessage;
       
   486         }
       
   487     }
       
   488 
       
   489 // -----------------------------------------------------------------------------
       
   490 // CAknsSrvSession::OpenBitmapFileL
       
   491 // -----------------------------------------------------------------------------
       
   492 //
       
   493 void CAknsSrvSession::OpenBitmapFileL( const RMessage2 aMessage )
       
   494     {
       
   495     // message parameters
       
   496     // 0. filename
       
   497     // 1. filehandle
       
   498     Server()->OpenBitmapFileL(aMessage);
       
   499     }
       
   500 
       
   501 // -----------------------------------------------------------------------------
       
   502 // CAknsSrvSession::OpenIniFileL
       
   503 // -----------------------------------------------------------------------------
       
   504 //
       
   505 void CAknsSrvSession::OpenIniFileL( const RMessage2 aMessage )
       
   506     {
       
   507     // Message parameters
       
   508     // 0. package id
       
   509     // 1. location
       
   510     // 2. filehandle
       
   511     Server()->OpenIniFileL(aMessage);
       
   512     }
       
   513 
       
   514 // -----------------------------------------------------------------------------
       
   515 // CAknsSrvSession::CopySoundFileL
       
   516 // -----------------------------------------------------------------------------
       
   517 //
       
   518 void CAknsSrvSession::CopySoundFileL( const RMessage2 aMessage)
       
   519     {
       
   520     Server()->CopySoundFileL( aMessage );
       
   521     }
       
   522 
       
   523 // -----------------------------------------------------------------------------
       
   524 // CAknsSrvSession::EnumeratePackages
       
   525 // -----------------------------------------------------------------------------
       
   526 //
       
   527 void CAknsSrvSession::EnumeratePackages( const RMessage2 aMessage )
       
   528     {
       
   529     // Message parameters
       
   530     // 0. package count (return value)
       
   531     // 1. location
       
   532     Server()->EnumeratePackages(aMessage);
       
   533     }
       
   534 
       
   535 // -----------------------------------------------------------------------------
       
   536 // CAknsSrvSession::ReceivePackages
       
   537 // -----------------------------------------------------------------------------
       
   538 //
       
   539 void CAknsSrvSession::ReceivePackages(const RMessage2 aMessage)
       
   540     {
       
   541     // Message parameters
       
   542     // 0. package count
       
   543     // 1. pointer to store enumerated packages
       
   544     Server()->ReceivePackages(aMessage);
       
   545     }
       
   546 
       
   547 // -----------------------------------------------------------------------------
       
   548 // CAknsSrvSession::DecodeWallpaperImageL
       
   549 // -----------------------------------------------------------------------------
       
   550 //
       
   551 void CAknsSrvSession::DecodeWallpaperImageL(const RMessage2 aMessage)
       
   552     {
       
   553     Server()->DecodeWallpaperImageL( aMessage );
       
   554     }
       
   555 
       
   556 // -----------------------------------------------------------------------------
       
   557 // CAknsSrvSession::CacheWallpaperImageL
       
   558 // -----------------------------------------------------------------------------
       
   559 //
       
   560 void CAknsSrvSession::CacheWallpaperImageL(const RMessage2 aMessage)
       
   561     {
       
   562     Server()->CacheWallpaperImageL(aMessage);
       
   563     }
       
   564 
       
   565 // -----------------------------------------------------------------------------
       
   566 // CAknsSrvSession::FreeDecodedWallpaper
       
   567 // -----------------------------------------------------------------------------
       
   568 //
       
   569 void CAknsSrvSession::FreeDecodedWallpaper( const RMessage2 aMessage)
       
   570     {
       
   571     Server()->FreeDecodedWallpaper( aMessage );
       
   572     }
       
   573 
       
   574 // -----------------------------------------------------------------------------
       
   575 // CAknsSrvSession::OpenImageInifileL
       
   576 // -----------------------------------------------------------------------------
       
   577 //
       
   578 void CAknsSrvSession::OpenImageInifileL( const RMessage2 aMessage)
       
   579     {
       
   580     Server()->OpenImageInifileL(aMessage);
       
   581     }
       
   582 
       
   583 // -----------------------------------------------------------------------------
       
   584 // CAknsSrvSession::CheckIconConfiguration
       
   585 // -----------------------------------------------------------------------------
       
   586 //
       
   587 TInt CAknsSrvSession::CheckIconConfiguration( const RMessage2 aMessage )
       
   588     {
       
   589     TInt iconConfigured = KErrNotFound;
       
   590     iconConfigured = Server()->CheckIconConfiguration( aMessage );
       
   591     return iconConfigured;
       
   592     }
       
   593 
       
   594 // End of File