photosgallery/viewframework/views/fullscreenview/src/glxfullscreenviewimp.cpp
branchRCL_3
changeset 35 420f6808bf21
parent 32 78ad99c24f08
child 47 f9e827349359
equal deleted inserted replaced
32:78ad99c24f08 35:420f6808bf21
     9 * Initial Contributors:
     9 * Initial Contributors:
    10 * Nokia Corporation - initial contribution.
    10 * Nokia Corporation - initial contribution.
    11 *
    11 *
    12 * Contributors:
    12 * Contributors:
    13 *
    13 *
    14 * Description:    Implementation of fULL-SCREEN view
    14 * Description:    Implementation of FULL-SCREEN view
    15 *
    15 *
    16 */
    16 */
    17 
    17 
    18 
    18 
    19 
    19 
   354 
   354 
   355     //Create hdmicontroller when it is only launched from fullscreen.  
   355     //Create hdmicontroller when it is only launched from fullscreen.  
   356     //From filemanager show only clone mode.
   356     //From filemanager show only clone mode.
   357     if( !iImgViewerMode )    
   357     if( !iImgViewerMode )    
   358         {
   358         {
   359         iHdmiController = CGlxHdmiController::NewL();    
   359         iHdmiController = CGlxHdmiController::NewL(*this);    
   360         SetItemToHDMIL();
   360         SetItemToHDMIL();
   361         }
   361         }
   362     iScreenFurniture->SetActiveView(iViewUid);
   362     iScreenFurniture->SetActiveView(iViewUid);
   363     
   363     
   364     //set the ui state to off,when the Fullscreen launches
   364     //set the ui state to off,when the Fullscreen launches
   755                 {
   755                 {
   756                 iZoomControl->ActivateL(GetInitialZoomLevel(),aStartMode, focus,
   756                 iZoomControl->ActivateL(GetInitialZoomLevel(),aStartMode, focus,
   757                                         item, apZoomFocus,iImgViewerMode);
   757                                         item, apZoomFocus,iImgViewerMode);
   758                 }
   758                 }
   759             // Now to remove all textures other than the one we are focussing on.  
   759             // Now to remove all textures other than the one we are focussing on.  
       
   760             TInt frameCount = KErrNone;
       
   761             item.GetFrameCount(frameCount);
       
   762             // If .gif file, then only call stopanimation
       
   763 			if (frameCount > 1)
       
   764                 {
       
   765                 iUiUtility->GlxTextureManager().AnimateMediaItem(
       
   766                         item.Id(), EFalse);
       
   767                 }
   760             TInt count = iMediaList->Count();
   768             TInt count = iMediaList->Count();
   761             while (count > 0)
   769             while (count > 0)
   762                 {
   770                 {
   763                 TGlxMedia mediaItem = iMediaList->Item(count-1);	
   771                 TGlxMedia mediaItem = iMediaList->Item(count-1);	
   764                 if (mediaItem.Id() != item.Id() )
   772                 if (mediaItem.Id() != item.Id() )
   792         }
   800         }
   793     if(iZoomControl->Activated())
   801     if(iZoomControl->Activated())
   794         {        
   802         {        
   795         iZoomControl->Deactivate();
   803         iZoomControl->Deactivate();
   796         }
   804         }
   797     
   805     if (iMediaList->FocusIndex() != KErrNotFound)
       
   806         {
       
   807         TGlxMedia item = iMediaList->Item(iMediaList->FocusIndex());
       
   808         TInt frameCount = KErrNone;
       
   809         item.GetFrameCount(frameCount);
       
   810 		// If .gif file, then only call start animation
       
   811         if (frameCount > 1)
       
   812             {
       
   813             iUiUtility->GlxTextureManager().AnimateMediaItem(
       
   814                     item.Id(), ETrue);
       
   815             }
       
   816         }
   798     //check if the slider is already visible in zoom view.
   817     //check if the slider is already visible in zoom view.
   799     //if yes then do not disable the slider.
   818     //if yes then do not disable the slider.
   800     TBool sliderInvisible = ETrue;
   819     TBool sliderInvisible = ETrue;
   801     if (EUiOn == iZoomControl->ZoomUiState())
   820     if (EUiOn == iZoomControl->ZoomUiState())
   802         {
   821         {
   911         {
   930         {
   912         if(iHdmiController)
   931         if(iHdmiController)
   913 			{   
   932 			{   
   914             iHdmiController->ShiftToCloningMode();
   933             iHdmiController->ShiftToCloningMode();
   915 			}
   934 			}
   916         iUiUtility->GlxTextureManager().FlushTextures();
   935 		iUiUtility->GlxTextureManager().FlushTextures();
   917         }
   936 		}
   918     else
   937 	else
   919         {
   938 		{
   920         if (iMediaList && iMediaList->Count() && iMediaListMulModelProvider)
   939 		if (iMediaList)
   921             {
   940 			{
   922             TInt focusIndex = iMediaList->FocusIndex();
   941 			/** if there is no image to show go back to the previous view */
   923             iMediaListMulModelProvider->UpdateItems(focusIndex, 1);
   942 			if (!iMediaList->Count())
   924             
   943 				{
   925             if(iHdmiController)
   944 				iUiUtility->SetViewNavigationDirection(EGlxNavigationBackwards);
   926 				{    
   945 				CGlxNavigationalState* navigationalState =
   927                 iHdmiController->ShiftToPostingMode();
   946 						CGlxNavigationalState::InstanceL();
       
   947 				CleanupClosePushL(*navigationalState);
       
   948 				navigationalState ->ActivatePreviousViewL();
       
   949 				CleanupStack::PopAndDestroy(navigationalState);
       
   950 				}
       
   951 			else if (iMediaListMulModelProvider)
       
   952 				{
       
   953 				TInt focusIndex = iMediaList->FocusIndex();
       
   954 				iMediaListMulModelProvider->UpdateItems(focusIndex, 1);
       
   955 
       
   956 				if (iHdmiController)
       
   957 					{
       
   958 					iHdmiController->ShiftToPostingMode();
       
   959 					}
   928 				}
   960 				}
   929             }
   961             }
   930         }
   962         }
   931     }
   963     }
   932 
   964 
  1110                     if (iSliderWidget)
  1142                     if (iSliderWidget)
  1111                         {
  1143                         {
  1112                         iSliderWidget->ShowWidget(CheckIfSliderToBeShownL());
  1144                         iSliderWidget->ShowWidget(CheckIfSliderToBeShownL());
  1113                         }
  1145                         }
  1114                     }
  1146                     }
       
  1147                 /** if this is the last image deleted when Photo is in foreground, go back to the previous view*/
       
  1148 				if (!iMediaList->Count() && IsForeground())
       
  1149 					{
       
  1150 					iUiUtility->SetViewNavigationDirection(
       
  1151 							EGlxNavigationBackwards);
       
  1152 					CGlxNavigationalState* navigationalState =
       
  1153 							CGlxNavigationalState::InstanceL();
       
  1154 					CleanupClosePushL(*navigationalState);
       
  1155 					navigationalState ->ActivatePreviousViewL();
       
  1156 					CleanupStack::PopAndDestroy(navigationalState);
       
  1157 					}
  1115                 return EEventConsumed;
  1158                 return EEventConsumed;
  1116                 }
  1159                 }
  1117             case ETypeHighlight:
  1160             case ETypeHighlight:
  1118                 {
  1161                 {
  1119                 iMediaList->SetFocusL( NGlxListDefs::EAbsolute,(aEvent.CustomEventData())); 
  1162                 iMediaList->SetFocusL( NGlxListDefs::EAbsolute,(aEvent.CustomEventData())); 
  1674             CleanupStack::PushL(fsBitmap);
  1717             CleanupStack::PushL(fsBitmap);
  1675             fsBitmap->Duplicate( fsValue->iBitmap->Handle());
  1718             fsBitmap->Duplicate( fsValue->iBitmap->Handle());
  1676             
  1719             
  1677             GLX_LOG_INFO2("CGlxFullScreenViewImp::SetImageToHDMIL - CGlxHdmi - FS Bitmap Size width=%d, height=%d", 
  1720             GLX_LOG_INFO2("CGlxFullScreenViewImp::SetImageToHDMIL - CGlxHdmi - FS Bitmap Size width=%d, height=%d", 
  1678                     fsBitmap->SizeInPixels().iWidth, fsBitmap->SizeInPixels().iHeight);
  1721                     fsBitmap->SizeInPixels().iWidth, fsBitmap->SizeInPixels().iHeight);
  1679             iHdmiController->SetImageL(item.Uri(),fsBitmap);
  1722             iHdmiController->SetImageL(item.Uri(), KNullDesC, fsBitmap);
  1680             CleanupStack::PopAndDestroy(fsBitmap);
  1723             CleanupStack::PopAndDestroy(fsBitmap);
  1681             }
  1724             }
  1682         else
  1725         else
  1683             {
  1726             {
  1684             GLX_LOG_INFO("CGlxFullScreenViewImp::SetImageToHDMIL - CGlxHdmi - Fetch Grid thumbnail");
  1727             GLX_LOG_INFO("CGlxFullScreenViewImp::SetImageToHDMIL - CGlxHdmi - Fetch Grid thumbnail");
  1695                 CleanupStack::PushL(gridBitmap);
  1738                 CleanupStack::PushL(gridBitmap);
  1696                 gridBitmap->Duplicate( gridvalue->iBitmap->Handle());
  1739                 gridBitmap->Duplicate( gridvalue->iBitmap->Handle());
  1697                 
  1740                 
  1698                 GLX_LOG_INFO2("CGlxFullScreenViewImp::SetImageToHDMIL - CGlxHdmi - gridBitmap Size width=%d, height=%d", 
  1741                 GLX_LOG_INFO2("CGlxFullScreenViewImp::SetImageToHDMIL - CGlxHdmi - gridBitmap Size width=%d, height=%d", 
  1699                         gridBitmap->SizeInPixels().iWidth, gridBitmap->SizeInPixels().iHeight);
  1742                         gridBitmap->SizeInPixels().iWidth, gridBitmap->SizeInPixels().iHeight);
  1700                 iHdmiController->SetImageL(item.Uri(),gridBitmap);
  1743                 iHdmiController->SetImageL(item.Uri(), KNullDesC, gridBitmap);
  1701                 CleanupStack::PopAndDestroy(gridBitmap);
  1744                 CleanupStack::PopAndDestroy(gridBitmap);
  1702                 }
  1745                 }
  1703             else
  1746             else
  1704                 {
  1747                 {
  1705                 GLX_LOG_INFO("CGlxFullScreenViewImp::SetImageToHDMIL - CGlxHdmi - Setting Default Bitmap");
  1748                 GLX_LOG_INFO("CGlxFullScreenViewImp::SetImageToHDMIL - CGlxHdmi - Setting Default Bitmap");
  1712                 // always need to setsize on the raw bitmap for it to be visible
  1755                 // always need to setsize on the raw bitmap for it to be visible
  1713                 AknIconUtils::SetSize(defaultBitmap, TSize(iHdmiWidth,iHdmiHeight),EAspectRatioPreserved);
  1756                 AknIconUtils::SetSize(defaultBitmap, TSize(iHdmiWidth,iHdmiHeight),EAspectRatioPreserved);
  1714 
  1757 
  1715                 GLX_LOG_INFO2("CGlxFullScreenViewImp::SetImageToHDMIL - CGlxHdmi - Default Size width=%d, height=%d", 
  1758                 GLX_LOG_INFO2("CGlxFullScreenViewImp::SetImageToHDMIL - CGlxHdmi - Default Size width=%d, height=%d", 
  1716                         defaultBitmap->SizeInPixels().iWidth, defaultBitmap->SizeInPixels().iHeight);
  1759                         defaultBitmap->SizeInPixels().iWidth, defaultBitmap->SizeInPixels().iHeight);
  1717                 iHdmiController->SetImageL(item.Uri(),defaultBitmap);
  1760                 iHdmiController->SetImageL(item.Uri(), KNullDesC, defaultBitmap);
  1718                 CleanupStack::PopAndDestroy(defaultBitmap); 
  1761                 CleanupStack::PopAndDestroy(defaultBitmap); 
  1719                 }
  1762                 }
  1720             }
  1763             }
  1721         }
  1764         }
  1722     else
  1765     else
  1805 //
  1848 //
  1806 void CGlxFullScreenViewImp::HandleEffectCallback(TInt aType, TInt aHandle, 
  1849 void CGlxFullScreenViewImp::HandleEffectCallback(TInt aType, TInt aHandle, 
  1807                                                  TInt /*aStatus*/)
  1850                                                  TInt /*aStatus*/)
  1808     {
  1851     {
  1809     TRACER("CGlxFullScreenViewImp::HandleEffectCallback()");
  1852     TRACER("CGlxFullScreenViewImp::HandleEffectCallback()");
  1810     if (aHandle == iEffectHandle && aType == EAlfEffectComplete)
  1853     if (aHandle == iEffectHandle && aType == EAlfEffectComplete
       
  1854             && iCoverFlowWidget)
  1811         {
  1855         {
  1812         TRAP_IGNORE(const_cast<CAlfLayout&>
  1856         TRAP_IGNORE(const_cast<CAlfLayout&>
  1813                 (iCoverFlowWidget->ContainerLayout()).SetEffectL(
  1857                 (iCoverFlowWidget->ContainerLayout()).SetEffectL(
  1814                                                      KTfxResourceNoEffect));
  1858                         KTfxResourceNoEffect));
  1815         }
  1859         }
  1816     }
  1860     }
  1817 
  1861 
  1818 // -----------------------------------------------------------------------------
  1862 // -----------------------------------------------------------------------------
  1819 // CreateImageViewerInstanceL
  1863 // CreateImageViewerInstanceL
  1893         {
  1937         {
  1894         return ETrue;
  1938         return ETrue;
  1895         }
  1939         }
  1896     return EFalse;
  1940     return EFalse;
  1897     }
  1941     }
       
  1942 
       
  1943 //---------------------------------------------------------------------------
       
  1944 // HandleHDMIDecodingEventL
       
  1945 //---------------------------------------------------------------------------   
       
  1946 void CGlxFullScreenViewImp::HandleHDMIDecodingEventL(
       
  1947         THdmiDecodingStatus /*aStatus*/)
       
  1948     {
       
  1949     TRACER("CGlxFullScreenViewImp::HandleHDMIDecodingEventL()");
       
  1950     }