[ekiga] common-videooutput: add VO_MODE_REMOTE_EXT mode



commit 2a837bd4c6cad7e7f3283f3db3c2b9f6e1ecc6f3
Author: VÃctor Manuel JÃquez Leal <vjaquez igalia com>
Date:   Tue Sep 4 16:58:18 2012 -0500

    common-videooutput: add VO_MODE_REMOTE_EXT mode
    
    This patch adds the extended remote video stream enum in the video output
    mode.
    
    Also it adds the switch labels where the enum is handled in order to avoid
    compiler's complains, but no logic is added in those cases, in other words it
    is just the skeleton. In the following commits that logic will be added.

 .../videooutput-manager-common.cpp                 |   12 +++++++++---
 .../x-videooutput/videooutput-manager-x.cpp        |    5 +++++
 lib/engine/videooutput/videooutput-info.h          |    9 +++++----
 3 files changed, 19 insertions(+), 7 deletions(-)
---
diff --git a/lib/engine/components/common-videooutput/videooutput-manager-common.cpp b/lib/engine/components/common-videooutput/videooutput-manager-common.cpp
index c7d6b4b..bb1de65 100644
--- a/lib/engine/components/common-videooutput/videooutput-manager-common.cpp
+++ b/lib/engine/components/common-videooutput/videooutput-manager-common.cpp
@@ -222,10 +222,13 @@ void GMVideoOutputManager::set_frame_data (const char* data,
   }
 
   if ((local_display_info.mode == Ekiga::VO_MODE_LOCAL) && !local)
-      return;
+    return;
 
-  if ((local_display_info.mode == Ekiga::VO_MODE_REMOTE) && local)
-      return;
+  if (local_display_info.mode == Ekiga::VO_MODE_REMOTE && type != 1)
+    return;
+
+  if (local_display_info.mode == Ekiga::VO_MODE_REMOTE_EXT && type != 2)
+    return;
 
   run_thread.Signal();
 }
@@ -309,6 +312,7 @@ GMVideoOutputManager::frame_display_change_needed ()
                          last_frame.remote_height != current_frame.remote_height);
   bool window_changed = (local_display_info.x != last_frame.embedded_x ||
                         local_display_info.y != last_frame.embedded_y);
+
   switch (current_frame.mode) {
   case Ekiga::VO_MODE_LOCAL:
     return ( local_changed || window_changed );
@@ -327,6 +331,7 @@ GMVideoOutputManager::frame_display_change_needed ()
     return ( remote_changed || local_changed );
     break;
 
+  case Ekiga::VO_MODE_REMOTE_EXT: // no need to handle this
   case Ekiga::VO_MODE_UNSET:
   default:
     break;
@@ -366,6 +371,7 @@ GMVideoOutputManager::redraw ()
             display_pip_frames ((char*)lframeStore.GetPointer (), current_frame.local_width, current_frame.local_height,
                               (char*)rframeStore.GetPointer (), current_frame.remote_width, current_frame.remote_height);
        break;
+    case Ekiga::VO_MODE_REMOTE_EXT: // no need to handle this
     case Ekiga::VO_MODE_UNSET:
     default:
        break;
diff --git a/lib/engine/components/x-videooutput/videooutput-manager-x.cpp b/lib/engine/components/x-videooutput/videooutput-manager-x.cpp
index cd4decc..64f0835 100644
--- a/lib/engine/components/x-videooutput/videooutput-manager-x.cpp
+++ b/lib/engine/components/x-videooutput/videooutput-manager-x.cpp
@@ -94,6 +94,7 @@ GMVideoOutputManager_x::frame_display_change_needed ()
           if (!rxWindow || (pip_window_available && (!lxWindow)) )
               return true;
           break;
+     case Ekiga::VO_MODE_REMOTE_EXT: // no need to handle this
      case Ekiga::VO_MODE_UNSET:
      default:
           break;
@@ -209,6 +210,9 @@ GMVideoOutputManager_x::setup_frame_display ()
   case Ekiga::VO_MODE_PIP_WINDOW:
     Ekiga::Runtime::run_in_main (boost::bind (&GMVideoOutputManager_x::size_changed_in_main, this, 176, 144));
     break;
+  case Ekiga::VO_MODE_REMOTE_EXT: // no need to handle this
+    PTRACE (1, "GMVideoOutputManager_X\tNo remote extended widget yet");
+    return;
   case Ekiga::VO_MODE_UNSET:
   default:
     PTRACE (1, "GMVideoOutputManager_X\tDisplay variable not set");
@@ -362,6 +366,7 @@ GMVideoOutputManager_x::setup_frame_display ()
     break;
   }
 
+  case Ekiga::VO_MODE_REMOTE_EXT: // no need to handle this
   case Ekiga::VO_MODE_UNSET:
   default:
     return;
diff --git a/lib/engine/videooutput/videooutput-info.h b/lib/engine/videooutput/videooutput-info.h
index 88d36b0..1d2f94b 100644
--- a/lib/engine/videooutput/videooutput-info.h
+++ b/lib/engine/videooutput/videooutput-info.h
@@ -58,15 +58,16 @@ namespace Ekiga {
 
   /* Video modes */
   typedef enum {
-  
-    VO_MODE_LOCAL, 
-    VO_MODE_REMOTE, 
+
+    VO_MODE_LOCAL,
+    VO_MODE_REMOTE,
     VO_MODE_PIP,
     VO_MODE_PIP_WINDOW,
     VO_MODE_FULLSCREEN,
+    VO_MODE_REMOTE_EXT,
     VO_MODE_UNSET
   } VideoOutputMode;
-  
+
   /* Toggle operations for Fullscreen */
   typedef enum {
   



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]