uiacceltk/hitchcock/ServerCore/Src/alfsrvdisplaysubsession.cpp
branchRCL_3
changeset 8 10534483575f
parent 7 433cbbb6a04b
child 11 46927d61fef3
equal deleted inserted replaced
7:433cbbb6a04b 8:10534483575f
    31 #include <uiacceltk/HuiControl.h>
    31 #include <uiacceltk/HuiControl.h>
    32 #include <uiacceltk/huidisplaybackgrounditem.h>
    32 #include <uiacceltk/huidisplaybackgrounditem.h>
    33 #include <uiacceltk/HuiEvent.h>
    33 #include <uiacceltk/HuiEvent.h>
    34 #include <mtransitionserver.h>
    34 #include <mtransitionserver.h>
    35 
    35 
       
    36 // ETrue if client defined display quality is supported, EFalse if not.
       
    37 // As there is other content than this ALF application content in the scene, 
       
    38 // it's better ignore client quality hints.
       
    39 // Note: If this is supported and client gains focus, client quality setting is
       
    40 //       taken into use and applied to the whole scene. However, when client loses
       
    41 //       focus, quality setting is not restored.
       
    42 const TBool KAlfSrvClientQualitySupport = EFalse;
    36 
    43 
    37 // ======== MEMBER FUNCTIONS ========
    44 // ======== MEMBER FUNCTIONS ========
    38 
    45 
    39 // ---------------------------------------------------------------------------
    46 // ---------------------------------------------------------------------------
    40 // Constructor
    47 // Constructor
   255         {
   262         {
   256         // Clear the background items, those are not used in this case
   263         // Clear the background items, those are not used in this case
   257         iBackgroundItems.Reset();
   264         iBackgroundItems.Reset();
   258 
   265 
   259         // Set background
   266         // Set background
   260         Display().SetClearBackgroundL( CHuiDisplay::TClearMode( clearBackground ));
   267         TRAPD(err, Display().SetClearBackgroundL( CHuiDisplay::TClearMode( clearBackground )) );
       
   268         // Don't let client see timeout errors from our internal services implementation
       
   269         if( err != KErrNone && err != KErrTimedOut ) 
       
   270             {
       
   271             User::Leave(err);
       
   272             }
   261         }
   273         }
   262     
   274     
   263     // Complete
   275     // Complete
   264     aMessage.Complete( KErrNone );
   276     aMessage.Complete( KErrNone );
   265     
   277     
   366     // 1: quality (in)
   378     // 1: quality (in)
   367     THuiQuality value = EHuiQualityAccurate;
   379     THuiQuality value = EHuiQualityAccurate;
   368     TPckg<THuiQuality> valuePckg(value); 
   380     TPckg<THuiQuality> valuePckg(value); 
   369     aMessage.Read(1,valuePckg);
   381     aMessage.Read(1,valuePckg);
   370 
   382 
   371     if ( session.IsFocused() )
   383     if ( KAlfSrvClientQualitySupport && session.IsFocused() )
   372         {
   384         {
   373         // Set quality
   385         // Set quality
   374         Display().SetQuality(value);    
   386         Display().SetQuality(value);    
   375         }
   387         }
   376     
   388     
   393 
   405 
   394     // 2: quality (out)
   406     // 2: quality (out)
   395     THuiQuality value = EHuiQualityAccurate;
   407     THuiQuality value = EHuiQualityAccurate;
   396     TPckg<THuiQuality> valuePckg(value); 
   408     TPckg<THuiQuality> valuePckg(value); 
   397 
   409 
   398     if ( session.IsFocused() )
   410     if ( KAlfSrvClientQualitySupport && session.IsFocused() )
   399         {
   411         {
   400         // Get quality
   412         // Get quality
   401         value = Display().Quality();    
   413         value = Display().Quality();    
   402         }
   414         }
   403     else
   415     else
   694             else
   706             else
   695                 {
   707                 {
   696                 TRAP_IGNORE(iDisplay->SetClearBackgroundL(
   708                 TRAP_IGNORE(iDisplay->SetClearBackgroundL(
   697                         CHuiDisplay::TClearMode(iDisplayClearBackground)))                                        
   709                         CHuiDisplay::TClearMode(iDisplayClearBackground)))                                        
   698                 }    
   710                 }    
   699                         
   711 
   700             iDisplay->SetQuality(THuiQuality(iDisplayRenderingQuality));
   712             if ( KAlfSrvClientQualitySupport )
       
   713                 {
       
   714                 iDisplay->SetQuality(THuiQuality(iDisplayRenderingQuality));
       
   715                 }
   701             iDisplay->SetUseDepth(iDisplayUseDepthTest);
   716             iDisplay->SetUseDepth(iDisplayUseDepthTest);
   702             
   717             
   703             UpdateAutomaticFading(); // update non-fading to app ui container
   718             UpdateAutomaticFading(); // update non-fading to app ui container
   704             }
   719             }
   705         else
   720         else