tvout/tvoutwrapper/src/glxtvoutwrapper_p.cpp
changeset 42 5e1df1b52eb3
parent 40 112f0ac2d1f0
child 36 6481344a6d67
--- a/tvout/tvoutwrapper/src/glxtvoutwrapper_p.cpp	Mon May 03 16:56:16 2010 +0530
+++ b/tvout/tvoutwrapper/src/glxtvoutwrapper_p.cpp	Mon May 17 13:35:26 2010 +0530
@@ -22,12 +22,16 @@
 #include "glxmodelparm.h"
 #include "glxviewids.h"
 
+#include "glxtracer.h"
+#include "glxlog.h"
+
 // -----------------------------------------------------------------------------
 // Static method to create the private wrapper instance 
 // -----------------------------------------------------------------------------
 GlxTvOutWrapperPrivate* GlxTvOutWrapperPrivate::Instance(GlxTvOutWrapper* aTvOutWrapper,
         QAbstractItemModel* aModel)
     {
+    TRACER("GlxTvOutWrapperPrivate::Instance()");
     GlxTvOutWrapperPrivate* self = new GlxTvOutWrapperPrivate(aTvOutWrapper,aModel);
     if (self){
         TRAPD(err,self->ConstructL());
@@ -45,10 +49,11 @@
 // -----------------------------------------------------------------------------
 void GlxTvOutWrapperPrivate::ConstructL()
     {
+    TRACER("GlxTvOutWrapperPrivate::ConstructL()");
     iConnectionObserver = CGlxConnectionObserver::NewL(this);
     if (!iHdmiController) {
         iHdmiController = CGlxHdmiController::NewL();
-        iHdmiConnected = iHdmiController->IsHDMIConnected();
+        iHdmiConnected = iConnectionObserver->IsHdmiConnected();
         }
     }
     
@@ -61,8 +66,10 @@
                 iConnectionObserver(NULL),
                 iHdmiController(NULL),
                 iHdmiConnected(false),
-                isImageSetToHdmi(false)
+                isImageSetToHdmi(false),
+                iIsPhotosInForeground(false)
     {
+    TRACER("GlxTvOutWrapperPrivate::GlxTvOutWrapperPrivate()");
     // Do Nothing
     }
 
@@ -71,6 +78,7 @@
 // -----------------------------------------------------------------------------
 GlxTvOutWrapperPrivate::~GlxTvOutWrapperPrivate()
     {
+    TRACER("GlxTvOutWrapperPrivate::~GlxTvOutWrapperPrivate()");
     if (iConnectionObserver){
     delete iConnectionObserver;
     iConnectionObserver = NULL;
@@ -87,10 +95,13 @@
 // -----------------------------------------------------------------------------
 void GlxTvOutWrapperPrivate::HandleConnectionChange(bool aConnected)
     {
+    TRACER("GlxTvOutWrapperPrivate::HandleConnectionChange()");
     iHdmiConnected = aConnected;
     // if Connection state positive and uri/bmp are not passed to HDMI already
     // then it is a new image - Set it.
-    if (!isImageSetToHdmi && iHdmiConnected && getSubState() !=IMAGEVIEWER_S)
+    GLX_LOG_INFO2("GlxTvOutWrapperPrivate::HandleConnectionChange() - isImageSetToHdmi-%d, iHdmiConnected-%d",
+            isImageSetToHdmi,iHdmiConnected);
+    if (!isImageSetToHdmi && iHdmiConnected && getSubState() !=IMAGEVIEWER_S && iIsPhotosInForeground)
         {
         SetNewImage();
         }
@@ -102,6 +113,8 @@
 // -----------------------------------------------------------------------------
 void GlxTvOutWrapperPrivate::SetImagetoHDMI()
     {
+    TRACER("GlxTvOutWrapperPrivate::SetImagetoHDMI()");
+    iIsPhotosInForeground = true;
     if (iHdmiConnected)
         {
         // Set the Image
@@ -124,10 +137,12 @@
 // -----------------------------------------------------------------------------
 void GlxTvOutWrapperPrivate::SetNewImage()
     {
+    TRACER("GlxTvOutWrapperPrivate::SetNewImage()");
     QVariant focusVariant =(iModel->data(iModel->index(0,0),GlxFocusIndexRole)); 
     int focusIndex;
     if (focusVariant.isValid() && focusVariant.canConvert<int>()) {
         focusIndex = (focusVariant.value<int>());
+        GLX_LOG_INFO1("GlxTvOutWrapperPrivate::SetNewImage() focusindex = %d",focusIndex);
 	}
 	else{
 		return ;
@@ -144,6 +159,7 @@
     QVariant var = (iModel->data(iModel->index(focusIndex,0),GlxHdmiBitmap));
     CFbsBitmap* bmp = var.value<CFbsBitmap*>();
     iHdmiController->SetImageL(aPtr,bmp);
+    iIsPhotosInForeground = true;
     }
 
 // -----------------------------------------------------------------------------
@@ -151,7 +167,9 @@
 // -----------------------------------------------------------------------------
 void GlxTvOutWrapperPrivate::SetToCloningMode()
     {
-    if(iHdmiController){
+    TRACER("GlxTvOutWrapperPrivate::SetToCloningMode()");
+    iIsPhotosInForeground = false;
+    if(iHdmiController && iHdmiConnected){
     iHdmiController->ShiftToCloningMode();
     }
     }
@@ -161,7 +179,9 @@
 // -----------------------------------------------------------------------------
 void GlxTvOutWrapperPrivate::SetToNativeMode()
     {
-    if(iHdmiController){
+    TRACER("GlxTvOutWrapperPrivate::SetToNativeMode()");
+    iIsPhotosInForeground = true;
+    if(iHdmiController && iHdmiConnected){
     iHdmiController->ShiftToPostingMode();
     }
     }
@@ -171,7 +191,8 @@
 // -----------------------------------------------------------------------------
 void GlxTvOutWrapperPrivate::ItemNotSupported()
     {
-    if(iHdmiController){
+    TRACER("GlxTvOutWrapperPrivate::ItemNotSupported()");
+    if(iHdmiController && iHdmiConnected){
     iHdmiController->ItemNotSupported();
     }
     }
@@ -181,7 +202,7 @@
 // -----------------------------------------------------------------------------
 void GlxTvOutWrapperPrivate::ActivateZoom(bool autoZoomOut)
     {
-    if(iHdmiController){
+    if(iHdmiController && iHdmiConnected){
     iHdmiController->ActivateZoom(autoZoomOut);
     }
     }
@@ -191,7 +212,7 @@
 // -----------------------------------------------------------------------------
 void GlxTvOutWrapperPrivate::DeactivateZoom()
     {
-    if(iHdmiController){
+    if(iHdmiController && iHdmiConnected){
     iHdmiController->DeactivateZoom();
     }
     }