[mutter] monitor-store: Add support for monitor underscanning



commit e357b4a46a5d33df1135a37fae58956a02223184
Author: Jonas Ådahl <jadahl gmail com>
Date:   Tue Jan 17 11:31:29 2017 +0800

    monitor-store: Add support for monitor underscanning
    
    Add a <monitor> subelement <underscanning> for configuring
    output underscanning.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=777732

 src/backends/meta-monitor-config-store.c |   29 +++++++++++++++++++++++++++++
 1 files changed, 29 insertions(+), 0 deletions(-)
---
diff --git a/src/backends/meta-monitor-config-store.c b/src/backends/meta-monitor-config-store.c
index eaf70f2..18828c0 100644
--- a/src/backends/meta-monitor-config-store.c
+++ b/src/backends/meta-monitor-config-store.c
@@ -68,6 +68,7 @@
  *           <height>1080</height>
  *           <rate>60.049972534179688</rate>
  *         </mode>
+ *         <underscanning>yes</underscanning>
  *       </monitor>
  *       <presentation>yes</presentation>
  *     </logicalmonitor>
@@ -103,6 +104,7 @@ typedef enum
   STATE_MONITOR_MODE_WIDTH,
   STATE_MONITOR_MODE_HEIGHT,
   STATE_MONITOR_MODE_RATE,
+  STATE_MONITOR_UNDERSCANNING
 } ParserState;
 
 typedef struct
@@ -252,6 +254,10 @@ handle_start_element (GMarkupParseContext  *context,
 
             parser->state = STATE_MONITOR_MODE;
           }
+        else if (g_str_equal (element_name, "underscanning"))
+          {
+            parser->state = STATE_MONITOR_UNDERSCANNING;
+          }
         else
           {
             g_set_error (error, G_MARKUP_ERROR, G_MARKUP_ERROR_UNKNOWN_ELEMENT,
@@ -332,6 +338,13 @@ handle_start_element (GMarkupParseContext  *context,
                      "Invalid mode sub element '%s'", element_name);
         return;
       }
+
+    case STATE_MONITOR_UNDERSCANNING:
+      {
+        g_set_error (error, G_MARKUP_ERROR, G_MARKUP_ERROR_UNKNOWN_ELEMENT,
+                     "Invalid element '%s' under underscanning", element_name);
+        return;
+      }
     }
 }
 
@@ -566,6 +579,14 @@ handle_end_element (GMarkupParseContext  *context,
         return;
       }
 
+    case STATE_MONITOR_UNDERSCANNING:
+      {
+        g_assert (g_str_equal (element_name, "underscanning"));
+
+        parser->state = STATE_MONITOR;
+        return;
+      }
+
     case STATE_MONITOR:
       {
         MetaLogicalMonitorConfig *logical_monitor_config;
@@ -842,6 +863,14 @@ handle_text (GMarkupParseContext *context,
                     error);
         return;
       }
+
+    case STATE_MONITOR_UNDERSCANNING:
+      {
+        read_bool (text, text_len,
+                   &parser->current_monitor_config->is_underscanning,
+                   error);
+        return;
+      }
     }
 }
 


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