uiacceltk/hitchcock/ServerCore/Src/alfstreamerserver.cpp
branchRCL_3
changeset 6 10534483575f
parent 3 d8a3531bc6b8
child 7 88b23e2e82e1
equal deleted inserted replaced
5:433cbbb6a04b 6:10534483575f
    24 #include "alfstreamerserver.h"
    24 #include "alfstreamerserver.h"
    25 #include "alfstreamerconsts.h"
    25 #include "alfstreamerconsts.h"
    26 #include "alfstreamerbridge.h"
    26 #include "alfstreamerbridge.h"
    27 #include "alfwindowmanager.h"
    27 #include "alfwindowmanager.h"
    28 #include "alfhierarchymodel.h"
    28 #include "alfhierarchymodel.h"
       
    29 #include "alflogger.h"
    29 #include <ecom.h>
    30 #include <ecom.h>
    30 #include <alf/AlfTransEffectPlugin.h>
    31 #include <alf/AlfTransEffectPlugin.h>
    31 #include <alf/AlfTransEffectPlugin.hrh>
    32 #include <alf/AlfTransEffectPlugin.hrh>
    32 
    33 
    33 
    34 
   207     delete iWindowHierarcy;
   208     delete iWindowHierarcy;
   208     iCompositionSessions.Close();
   209     iCompositionSessions.Close();
   209     iCompositionHostSessions.Close();
   210     iCompositionHostSessions.Close();
   210     iCompositionTokens.Close();
   211     iCompositionTokens.Close();
   211     iWindowServerSessions.Close();
   212     iWindowServerSessions.Close();
       
   213     iAlfTargets.Close();
   212     }
   214     }
   213 
   215 
   214 void CAlfStreamerServer::AppendCompositionSessionL(CAlfStreamerServerSession* aSession, TBool aHost)
   216 void CAlfStreamerServer::AppendCompositionSessionL(CAlfStreamerServerSession* aSession, TBool aHost)
   215     {
   217     {
   216     if(!aHost)
   218     if(!aHost)
   280         };
   282         };
   281     }
   283     }
   282 
   284 
   283 void CAlfStreamerServer::HandleCompositionRequestL(CAlfStreamerServerSession* aSession, TInt aOp, const RMessage2& aMessage)
   285 void CAlfStreamerServer::HandleCompositionRequestL(CAlfStreamerServerSession* aSession, TInt aOp, const RMessage2& aMessage)
   284     {
   286     {
   285     CAlfStreamerServerSession* wservsession = WservSession( aSession->ScreenNumber() );
       
   286 
       
   287     TInt length = aMessage.GetDesLength(0);
   287     TInt length = aMessage.GetDesLength(0);
   288     User::LeaveIfError(length);
   288     User::LeaveIfError(length);
   289     HBufC8* message = HBufC8::NewLC(length+4);
   289     HBufC8* message = HBufC8::NewLC(length+4);
   290     TPtr8 clientBuf = message->Des();
   290     TPtr8 clientBuf = message->Des();
   291     aMessage.ReadL(0,clientBuf);
   291     aMessage.ReadL(0,clientBuf);
   292 
   292  
   293     if(aOp == KAlfCompOpSetExtent) 
   293     HandleCompositionRequestL(aSession,aOp, clientBuf);
   294         {
   294         
   295         TInt* ptr = (TInt*)clientBuf.Ptr();
   295     if( aOp == KAlfCompOpCreateSource )
   296         TInt screennumber = ptr[4];
   296         {
   297         if(screennumber!=aSession->ScreenNumber())
   297         AppendCompositionSessionL(aSession);
   298             {
   298         TAlfCompParams* param = (TAlfCompParams*)clientBuf.Ptr();
   299             aSession->ExtentSurfaceId().iInternal[0] = ptr[5];
   299         for (TInt i = iAlfTargets.Count()-1;i >= 0; i--)
   300             aSession->ExtentSurfaceId().iInternal[1] = ptr[6];
   300             {
   301             aSession->ExtentSurfaceId().iInternal[2] = ptr[7];
   301             if (iAlfTargets[i].iWindowHandle == param->iWindowHandle&& 
   302             aSession->ExtentSurfaceId().iInternal[3] = ptr[8];
   302                 iAlfTargets[i].iWindowGroup == param->iWindowGroup)
   303             wservsession = WservSession( screennumber );
   303                 {
   304             }
   304                 aSession->AlfToken() = iAlfTargets[i].iTarget;
   305         }
   305                 __ALFLOGSTRING("CAlfStreamerServer::HandleCompositionRequestL(): Found ALF token for composition session")
   306     else if(aOp == KAlfCompOpSessionClosed)
   306                 }     
   307         {
   307             }    
   308         FreeCompositionSessionExtents(aSession);
   308         aMessage.Complete(reinterpret_cast<TInt>(aSession));
   309         }
   309         }
   310     
   310     else if ( aOp != KAlfCompOpSetZOrder )
   311     TInt session = reinterpret_cast<TInt>(aSession);
   311         {
   312     clientBuf.Insert(0, TPtrC8((TUint8*)&session ,sizeof(TInt)));
   312         aMessage.Complete(KErrNone);
       
   313         }
       
   314 
       
   315     CleanupStack::PopAndDestroy(); // unefficient..
       
   316     }
       
   317 
       
   318 void CAlfStreamerServer::HandleCompositionRequestL(CAlfStreamerServerSession* aSession, TInt aOp, TPtr8& aClientBuf)
       
   319     {
       
   320     CAlfStreamerServerSession* wservsession = WservSession( aSession ? aSession->ScreenNumber() : 0 );
       
   321     if (!wservsession)
       
   322         {
       
   323         __ALFLOGSTRING("CAlfStreamerServer::HandleCompositionRequestL(): Window server not connected yet")
       
   324         User::Leave(KErrNotReady);
       
   325         }
       
   326         
       
   327     if( aSession )
       
   328         {
       
   329         if(aOp == KAlfCompOpSetExtent ) 
       
   330             {
       
   331             TInt* ptr = (TInt*)aClientBuf.Ptr();
       
   332             TInt screennumber = ptr[4];
       
   333             if(screennumber!=aSession->ScreenNumber())
       
   334                 {
       
   335                 aSession->ExtentSurfaceId().iInternal[0] = ptr[5];
       
   336                 aSession->ExtentSurfaceId().iInternal[1] = ptr[6];
       
   337                 aSession->ExtentSurfaceId().iInternal[2] = ptr[7];
       
   338                 aSession->ExtentSurfaceId().iInternal[3] = ptr[8];
       
   339                 wservsession = WservSession( screennumber);
       
   340                 }
       
   341             }
       
   342         else if(aOp == KAlfCompOpSessionClosed)
       
   343             {
       
   344             FreeCompositionSessionExtents(aSession);
       
   345             }
       
   346         TInt targetId = reinterpret_cast<TInt>(aSession);
       
   347         aClientBuf.Insert(0, TPtrC8((TUint8*)&targetId,sizeof(TInt)));
       
   348         } 
   313     
   349     
   314     if( wservsession ) // don't send to any wservsession if composition source does not have a window anywhere and this is not SetExtent operation
   350     if( wservsession ) // don't send to any wservsession if composition source does not have a window anywhere and this is not SetExtent operation
   315         {
   351         {
   316         QueueRequestForSessionL(wservsession, clientBuf, aOp);
   352         QueueRequestForSessionL(wservsession, aClientBuf, aOp);
   317         }
   353         }
   318     
   354     }
   319     CleanupStack::PopAndDestroy(); // unefficient..
   355 
   320  
   356 void CAlfStreamerServer::CreatePermissionTokenL(TInt aAlfToken, TInt aWindowHandle, TInt aWindowGroup)
   321     if (!wservsession)
   357     {
   322         {
   358     __ALFLOGSTRING3("CAlfStreamerServer::CreatePermissionTokenL %d, %d, %d >>",aAlfToken,aWindowHandle,aWindowGroup)
   323         aMessage.Complete(KErrNotReady);
   359     TAlfCompParams param = {aAlfToken, aAlfToken, aWindowHandle, aWindowGroup};
       
   360     if (iAlfTargets.Find(param) != KErrNotFound)
       
   361         {
       
   362         __ALFLOGSTRING("CAlfStreamerServer::CreatePermissionTokenL: Already added")
   324         return;
   363         return;
   325         }
   364         }    
   326     
   365     TPckg<TAlfCompParams> ptr(param);
   327     if( aOp == KAlfCompOpCreateSource )
   366     HandleCompositionRequestL(0, KAlfCompOpCreateSource, ptr);
   328         {
   367     User::LeaveIfError(iAlfTargets.Append(param));
   329         AppendCompositionSessionL(aSession);
   368     __ALFLOGSTRING("CAlfStreamerServer::CreatePermissionTokenL <<")
   330         aMessage.Complete(reinterpret_cast<TInt>(aSession));
   369     }
   331         }
   370 
   332     else if ( aOp != KAlfCompOpSetZOrder )
   371 void CAlfStreamerServer::ReleasePermissionTokenL(TInt aAlfToken)
   333         {
   372     {
   334         aMessage.Complete(KErrNone);
   373     __ALFLOGSTRING("CAlfStreamerServer::ReleasePermissionTokenL >>")
       
   374     RemoveTargetFromInactiveSurfaces(aAlfToken);
       
   375     for (TInt i = 0; i < iAlfTargets.Count(); i++)
       
   376         {
       
   377         if (iAlfTargets[i].iTarget == aAlfToken)
       
   378             {
       
   379             TPckg<TInt> ptr(aAlfToken);
       
   380             HandleCompositionRequestL(0, KAlfCompOpSessionClosed, ptr);        
       
   381             iAlfTargets.Remove(i);
       
   382             __ALFLOGSTRING("CAlfStreamerServer::ReleasePermissionTokenL: Found <<")
       
   383             return;
       
   384             }
       
   385         }
       
   386     __ALFLOGSTRING("CAlfStreamerServer::ReleasePermissionTokenL: Not Found <<")
       
   387     }
       
   388 
       
   389 void CAlfStreamerServer::QueueRequestSessionsL(TInt aAlfToken, const TPtrC8& aPtr, TInt aOp)
       
   390     {
       
   391     __ALFLOGSTRING("CAlfStreamerServer::QueueRequestSessionsL >>")
       
   392     for(TInt i = iCompositionSessions.Count()-1; i >= 0; i-- )
       
   393         {
       
   394         if (iCompositionSessions[i]->AlfToken() == aAlfToken)
       
   395             {
       
   396             if (iCompositionSessions[i]->IsBgAnimSession() && 
       
   397                 (aOp == KAlfCompositionTargetHidden || aOp == KAlfCompositionTargetVisible ))
       
   398                 { // omit
       
   399                 continue;    
       
   400                 }        
       
   401                     
       
   402             __ALFLOGSTRING("CAlfStreamerServer::QueueRequestSessionsL: Session found")
       
   403             iCompositionSessions[i]->QueueL(aPtr, aOp);
       
   404             }
       
   405         }
       
   406     __ALFLOGSTRING("CAlfStreamerServer::QueueRequestSessionsL <<")
       
   407     }
       
   408 
       
   409 
       
   410 void CAlfStreamerServer::QueueRequestBGAnimSessionsL(const TPtrC8& aPtr, TInt aOp)
       
   411     {
       
   412     for(TInt i = iCompositionSessions.Count()-1; i >= 0; i-- )
       
   413         {
       
   414         if (iCompositionSessions[i]->IsBgAnimSession())
       
   415             {
       
   416             iCompositionSessions[i]->QueueL(aPtr, aOp);
       
   417             }
   335         }
   418         }
   336     }
   419     }
   337 
   420 
   338 void CAlfStreamerServer::QueueRequestForSessionL(CAlfStreamerServerSession* aSession, const TPtrC8& aPtr, TInt aOp)
   421 void CAlfStreamerServer::QueueRequestForSessionL(CAlfStreamerServerSession* aSession, const TPtrC8& aPtr, TInt aOp)
   339     {
   422     {
   365     aMessage.ReadL(0,clientBuf);
   448     aMessage.ReadL(0,clientBuf);
   366 
   449 
   367     TInt* ptr = (TInt*) clientBuf.Ptr();
   450     TInt* ptr = (TInt*) clientBuf.Ptr();
   368     TInt newkey = Math::Random();
   451     TInt newkey = Math::Random();
   369     
   452     
   370     TRAPD( err, iCompositionTokens.AppendL( CCompositionToken( newkey, ptr[0] /* customer specified key */,
   453     TRAPD( err, iCompositionTokens.AppendL( TCompositionToken( newkey, ptr[0] /* customer specified key */,
   371                                                                 ptr[1] /*flags*/, aTarget,
   454                                                                 ptr[1] /*flags*/, aTarget,
   372                                                                 aSession->ScreenNumber() ) ) );
   455                                                                 aSession->ScreenNumber() ) ) );
   373     if (err)
   456     if (err)
   374         {
   457         {
   375         newkey = 0;
   458         newkey = 0;
   376         }
   459         }
   377     RDebug::Print(_L("CAlfStreamerServer::CreatePermissionToken - newkey %d target: %d, err: %d"), newkey, aTarget, err );
   460     __ALFLOGSTRING3("CAlfStreamerServer::CreatePermissionToken - newkey %d target: %d, err: %d", newkey, aTarget, err )
   378             
   461             
   379     CleanupStack::PopAndDestroy(message);
   462     CleanupStack::PopAndDestroy(message);
   380     return newkey; 
   463     return newkey; 
   381     }
   464     }
   382 
   465 
   486                 // create a combined target token
   569                 // create a combined target token
   487                 if(ptr[1] > 0 )
   570                 if(ptr[1] > 0 )
   488                     {
   571                     {
   489 
   572 
   490                     TRAPD( err, iCompositionTokens.AppendL( 
   573                     TRAPD( err, iCompositionTokens.AppendL( 
   491                             CCompositionToken(
   574                             TCompositionToken(
   492                             ptr[1], // new token
   575                             ptr[1], // new token
   493                             ptr[2], // secret key
   576                             ptr[2], // secret key
   494                             0,
   577                             0,
   495                             reinterpret_cast<TInt>(aSession),
   578                             reinterpret_cast<TInt>(aSession),
   496                             aSession->ScreenNumber(),
   579                             aSession->ScreenNumber(),
   536             }
   619             }
   537         aSession->ExtentSurfaceId().CreateNullId();
   620         aSession->ExtentSurfaceId().CreateNullId();
   538         }
   621         }
   539     }
   622     }
   540 
   623 
       
   624 void CAlfStreamerServer::RemoveTargetFromInactiveSurfaces(TInt aTarget)
       
   625     {
       
   626     for (TInt i = 0; i<iInactiveSurfaces.Count(); i++)
       
   627         {
       
   628         if (aTarget == iInactiveSurfaces[i].iTarget)
       
   629             {
       
   630             iInactiveSurfaces.Remove(i);
       
   631             break;
       
   632             }    
       
   633         }  
       
   634     }
       
   635     
       
   636 void CAlfStreamerServer::AddTargetFromInactiveSurfaces(TInt aTarget)
       
   637     {
       
   638     for (TInt i = 0; i<iInactiveSurfaces.Count(); i++)
       
   639         {
       
   640         if (aTarget == iInactiveSurfaces[i].iTarget)
       
   641             {
       
   642             return;
       
   643             }    
       
   644         }
       
   645 
       
   646     for (TInt i = 0; i<iAlfTargets.Count(); i++)
       
   647         {
       
   648         if (aTarget == iAlfTargets[i].iTarget)
       
   649             { // ret value ignored intentionally
       
   650             iInactiveSurfaces.Append(iAlfTargets[i]);
       
   651             break;
       
   652             }    
       
   653         }
       
   654     }
       
   655     
       
   656 void CAlfStreamerServer::GetListOfWGsHavingInactiveSurfacesL(const RMessage2& aMessage, TBool aActiveAlso)
       
   657     {
       
   658     RArray<TAlfCompParams>& arrayRef = aActiveAlso?iAlfTargets:iInactiveSurfaces;
       
   659         
       
   660     TInt count = arrayRef.Count();    
       
   661    __ALFLOGSTRING1("CAlfStreamerServer::GetListOfWGsHavingInactiveSurfacesL >> count %d", count)
       
   662     if ( count == 0)
       
   663         {
       
   664         aMessage.Complete(KErrNotFound);
       
   665         return;
       
   666         }
       
   667                 
       
   668     TInt maxLength = aMessage.GetDesMaxLength(0);
       
   669     TInt* array = new (ELeave) TInt [maxLength/4];
       
   670     
       
   671     count = Min(maxLength/4-1, count);
       
   672     for ( TInt i = 0; i<count; i++ ) 
       
   673         {
       
   674         __ALFLOGSTRING1("CAlfStreamerServer::GetListOfWGsHavingInactiveSurfacesL adding %d", arrayRef[i].iWindowGroup);
       
   675         array[i] = arrayRef[i].iWindowGroup;
       
   676         }
       
   677         
       
   678     array[count] = 0;
       
   679         
       
   680     TPtr8 ptr((TUint8*)array,maxLength,maxLength);
       
   681     aMessage.WriteL(0, ptr);
       
   682     delete[] array;
       
   683     aMessage.Complete(KErrNone);
       
   684    __ALFLOGSTRING("CAlfStreamerServer::GetListOfWGsHavingInactiveSurfacesL <<")
       
   685     }
       
   686 
   541 // ---------------------------------------------------------------------------
   687 // ---------------------------------------------------------------------------
   542 // constructor
   688 // constructor
   543 // ---------------------------------------------------------------------------
   689 // ---------------------------------------------------------------------------
   544 //   
   690 //   
   545 CAlfStreamerServerSession::CAlfStreamerServerSession() : iScreenNumber(KErrNotFound)
   691 CAlfStreamerServerSession::CAlfStreamerServerSession() : iScreenNumber(KErrNotFound)
   589 // ServiceL
   735 // ServiceL
   590 // ---------------------------------------------------------------------------
   736 // ---------------------------------------------------------------------------
   591 //   
   737 //   
   592 void CAlfStreamerServerSession::ServiceL(const RMessage2& aMessage)
   738 void CAlfStreamerServerSession::ServiceL(const RMessage2& aMessage)
   593     {
   739     {
   594 //    RDebug::Print(_L("CAlfStreamerServerSession::ServiceL %d"), aMessage.Function());
   740    __ALFLOGSTRING1("CAlfStreamerServerSession::ServiceL %d", aMessage.Function())
   595    CAlfStreamerServer* server = (CAlfStreamerServer*)( Server() );
   741    CAlfStreamerServer* server = (CAlfStreamerServer*)( Server() );
   596    
   742    
   597    TInt op = aMessage.Function();
   743    TInt op = aMessage.Function();
   598    
   744    
   599    // handle composition control ops in different function
   745    // handle composition control ops in different function
   695             TPckgC<TAlfNativeWindowData> data(server->Bridge()->iAlfWindowData);
   841             TPckgC<TAlfNativeWindowData> data(server->Bridge()->iAlfWindowData);
   696             aMessage.WriteL(0, data);
   842             aMessage.WriteL(0, data);
   697             break;    
   843             break;    
   698             }
   844             }
   699 
   845 
       
   846         case EAlfPostDataToCompositionClient:
       
   847             {
       
   848             TInt clientBufL = aMessage.GetDesLength(2);       
       
   849             TPtr8 ptr(0,0);
       
   850             HBufC8* buf = 0;
       
   851             if (clientBufL > 0)
       
   852                 { 
       
   853                 HBufC8::NewLC(aMessage.GetDesLength(2));
       
   854                 ptr.Set((TUint8*)buf->Ptr(),clientBufL,clientBufL);
       
   855                 }   
       
   856             TInt op = aMessage.Int0();
       
   857             TInt key = aMessage.Int1();
       
   858             
       
   859             aMessage.Complete(KErrNone);
       
   860             TRAP_IGNORE(server->QueueRequestSessionsL(key, ptr, op);)
       
   861             if (buf)
       
   862                 {
       
   863                 CleanupStack::PopAndDestroy();
       
   864                 }
       
   865             break;                
       
   866             }
       
   867               
       
   868         case EAlfPostDataToCompositionTarget:
       
   869             {
       
   870             TInt clientBufL = aMessage.GetDesLength(2);      
       
   871             TInt int2 = aMessage.Int1();
       
   872             TPtr8 ptr(0,0);
       
   873             HBufC8* buf = 0;
       
   874             if (clientBufL > 0)
       
   875                 { 
       
   876                 HBufC8::NewLC(clientBufL);
       
   877                 ptr.Set((TUint8*)buf->Ptr(),clientBufL,clientBufL);
       
   878                 }
       
   879             else
       
   880                 {
       
   881                 ptr.Set((TUint8*)&int2, sizeof(TInt),sizeof(TInt));
       
   882                 }    
       
   883             TInt op = aMessage.Int0();
       
   884             aMessage.Complete(KErrNone);
       
   885             TRAP_IGNORE(server->HandleCompositionRequestL(0, op, ptr);)
       
   886             if (buf)
       
   887                 {
       
   888                 CleanupStack::PopAndDestroy();
       
   889                 }
       
   890             if (op == KAlfCompositionTargetVisible)
       
   891                 {
       
   892                 server->RemoveTargetFromInactiveSurfaces(int2);
       
   893                 }
       
   894             else if (op == KAlfCompositionTargetHidden)
       
   895                 {
       
   896                 server->AddTargetFromInactiveSurfaces(int2);
       
   897                 }                      
       
   898             break;                
       
   899             }
       
   900         case EAlfGetListOfWGsHavingInactiveSurfaces:
       
   901             {
       
   902             server->GetListOfWGsHavingInactiveSurfacesL(aMessage, EFalse);
       
   903             break;    
       
   904             }
       
   905         
       
   906         case EAlfQueueRequestBGSessions:
       
   907             {
       
   908             TInt clientBufL = aMessage.GetDesLength(1);       
       
   909             TPtr8 ptr(0,0);
       
   910             HBufC8* buf = 0;
       
   911             if (clientBufL > 0)
       
   912                 { 
       
   913                 HBufC8::NewLC(clientBufL);
       
   914                 ptr.Set((TUint8*)buf->Ptr(),clientBufL,clientBufL);
       
   915                 }   
       
   916             TInt op = aMessage.Int0();    
       
   917             aMessage.Complete(KErrNone);
       
   918             TRAP_IGNORE(server->QueueRequestBGAnimSessionsL(ptr, op);)
       
   919             if (buf)
       
   920                 {
       
   921                 CleanupStack::PopAndDestroy();
       
   922                 }
       
   923             break;    
       
   924             }
       
   925             
       
   926             
   700         default:
   927         default:
   701             {
   928             {
   702             aMessage.Complete(KErrNotSupported);
   929             aMessage.Complete(KErrNotSupported);
   703             break;
   930             break;
   704             }        
   931             }        
   705         }
   932         }
   706     if (!aMessage.IsNull())
   933     if (!aMessage.IsNull())
   707         {
   934         {
   708         aMessage.Complete(KErrNone);
   935         aMessage.Complete(KErrNone);
   709         }
   936         }
   710 //    RDebug::Print(_L("CAlfStreamerServerSession::ServiceL exit"));
   937     __ALFLOGSTRING("CAlfStreamerServerSession::ServiceL exit")
   711     }
   938     }
   712 
   939 
   713 void CAlfStreamerServerSession::HandleCompositionOpL(TInt aOp, const RMessage2& aMessage, CAlfStreamerServer* aServer)
   940 void CAlfStreamerServerSession::HandleCompositionOpL(TInt aOp, const RMessage2& aMessage, CAlfStreamerServer* aServer)
   714     {
   941     {
   715     switch (aOp)
   942     switch (aOp)
   744         {
   971         {
   745         aServer->HandleCompositionEventL(this, aOp, aMessage);
   972         aServer->HandleCompositionEventL(this, aOp, aMessage);
   746         break;
   973         break;
   747         }
   974         }
   748 
   975 
   749     // temp, should go to window server to have more precise control on 
       
   750     // operations    
       
   751     case KAlfCompOpCreateToken:
   976     case KAlfCompOpCreateToken:
   752         {
   977         {
   753         TInt token = aServer->CreatePermissionToken( aMessage, reinterpret_cast<TInt>(this), this );
   978         TInt token = aServer->CreatePermissionToken( aMessage, reinterpret_cast<TInt>(this), this );
   754         aMessage.Complete(token);
   979         aMessage.Complete(token);
   755         break;
   980         break;
   765     case KAlfCompOpEnableAlpha:
   990     case KAlfCompOpEnableAlpha:
   766     case KAlfCompOpSetOpacity:
   991     case KAlfCompOpSetOpacity:
   767     case KAlfCompOpSetRotation: 
   992     case KAlfCompOpSetRotation: 
   768     case KAlfCompOpSetExtent:
   993     case KAlfCompOpSetExtent:
   769     case KAlfCompOpEnableKb:
   994     case KAlfCompOpEnableKb:
   770     case KAlfComOpSetBackgroundAnim:
       
   771     case KAlfCompOpSessionClosed:
   995     case KAlfCompOpSessionClosed:
   772         {
   996         {
   773         aServer->HandleCompositionRequestL(this, aOp, aMessage);
   997         aServer->HandleCompositionRequestL(this, aOp, aMessage);
   774         break;
   998         break;
   775         }
   999         }
       
  1000     case KAlfComOpSetBackgroundAnim:
       
  1001         {
       
  1002         TBool isBg(EFalse);
       
  1003         TPckg<TBool> ptr(isBg);
       
  1004         aMessage.Read(0,ptr);
       
  1005         iIsBgAnimSession = isBg;
       
  1006         aServer->HandleCompositionRequestL(this, aOp, aMessage);
       
  1007         break;
       
  1008         }
       
  1009 
   776     case KAlfCompositionWServScreenNumber:
  1010     case KAlfCompositionWServScreenNumber:
   777         {
  1011         {
   778         iScreenNumber  = aMessage.Int0();
  1012         iScreenNumber  = aMessage.Int0();
   779         aMessage.Complete(KErrNone);
  1013         aMessage.Complete(KErrNone);
   780         break;
  1014         break;
   794         aMessage.Complete(KErrNone);
  1028         aMessage.Complete(KErrNone);
   795         break;
  1029         break;
   796         }
  1030         }
   797     default:        
  1031     default:        
   798         // add debug guards or remove
  1032         // add debug guards or remove
   799         RDebug::Print(_L("Oops, unknown composition command: %d "), aOp);
  1033         __ALFLOGSTRING1("Oops, unknown composition command: %d ", aOp)
   800         User::Invariant();
  1034         User::Invariant();
   801         }
  1035         }
   802     }
  1036     }
   803     
  1037     
   804 TBool CAlfStreamerServerSession::CompletedFromQueue(const RMessage2& aMessage)
  1038 TBool CAlfStreamerServerSession::CompletedFromQueue(const RMessage2& aMessage)
   813             iQueue.Remove(0);
  1047             iQueue.Remove(0);
   814             iCmds.Remove(0);
  1048             iCmds.Remove(0);
   815             }
  1049             }
   816         else
  1050         else
   817             {
  1051             {
   818             RDebug::Print(_L("CAlfStreamerServerSession::CompletedFromQueue err: %d"),err);
  1052             __ALFLOGSTRING1("CAlfStreamerServerSession::CompletedFromQueue err: %d",err)
   819             }
  1053             }
   820         if( !iMessagePtr.IsNull())
  1054         if( !iMessagePtr.IsNull())
   821             {
  1055             {
   822             iMessagePtr.Complete(err?err:cmd);
  1056             iMessagePtr.Complete(err?err:cmd);
   823             }
  1057             }