Signed-off-by: Bryce Harrington <br...@osg.samsung.com>
---
 src/compositor-drm.c | 93 ++++++++++++++++++++++++++++++++++++++++++++--------
 src/compositor-drm.h | 41 -----------------------
 src/main.c           | 43 ------------------------
 3 files changed, 80 insertions(+), 97 deletions(-)

diff --git a/src/compositor-drm.c b/src/compositor-drm.c
index 6ef706a..d129adc 100644
--- a/src/compositor-drm.c
+++ b/src/compositor-drm.c
@@ -75,6 +75,41 @@
 #define GBM_BO_USE_CURSOR GBM_BO_USE_CURSOR_64X64
 #endif
 
+enum weston_drm_backend_output_mode {
+       /** The output is disabled */
+       WESTON_DRM_BACKEND_OUTPUT_OFF,
+
+       /** The output will use the current active mode */
+       WESTON_DRM_BACKEND_OUTPUT_CURRENT,
+
+       /** The output will use the preferred mode. A modeline can be provided
+        * by setting weston_backend_output_config::modeline in the form of
+        * "WIDTHxHEIGHT" or in the form of an explicit modeline calculated
+        * using e.g. the cvt tool. If a valid modeline is supplied it will be
+        * used, if invalid or NULL the preferred available mode will be used. 
*/
+       WESTON_DRM_BACKEND_OUTPUT_PREFERRED,
+};
+
+struct weston_drm_backend_output_config {
+       struct weston_backend_output_config base;
+
+       /** The pixel format to be used by the output. Valid values are:
+        * - NULL - The format set at backend creation time will be used
+        * - "xrgb8888"
+        * - "rgb565"
+        * - "xrgb2101010"
+        */
+       char *gbm_format;
+
+       /** The seat to be used by the output. Set to NULL to use the
+        * default seat. */
+       char *seat;
+
+       /** The modeline to be used by the output. Refer to the documentation
+        * of WESTON_DRM_BACKEND_OUTPUT_PREFERRED for details. */
+       char *modeline;
+};
+
 struct drm_backend {
        struct weston_backend base;
        struct weston_compositor *compositor;
@@ -121,16 +156,6 @@ struct drm_backend {
        int32_t cursor_width;
        int32_t cursor_height;
 
-        /** Callback used to configure the outputs.
-        *
-         * This function will be called by the backend when a new DRM
-         * output needs to be configured.
-         */
-        enum weston_drm_backend_output_mode
-       (*configure_output)(struct weston_compositor *compositor,
-                           bool use_current_mode,
-                           const char *name,
-                           struct weston_drm_backend_output_config 
*output_config);
        bool use_current_mode;
 };
 
@@ -2275,6 +2300,49 @@ connector_get_current_mode(drmModeConnector *connector, 
int drm_fd,
        return 0;
 }
 
+static enum weston_drm_backend_output_mode
+drm_configure_output(struct weston_compositor *c,
+                     bool use_current_mode,
+                     const char *name,
+                     struct weston_drm_backend_output_config *config)
+{
+       struct weston_config *wc = weston_compositor_get_user_data(c);
+       struct weston_config_section *section;
+       char *s;
+       int scale;
+       enum weston_drm_backend_output_mode mode =
+               WESTON_DRM_BACKEND_OUTPUT_PREFERRED;
+
+       section = weston_config_get_section(wc, "output", "name", name);
+       weston_config_section_get_string(section, "mode", &s, "preferred");
+       if (strcmp(s, "off") == 0) {
+               free(s);
+               return WESTON_DRM_BACKEND_OUTPUT_OFF;
+       }
+
+       if (use_current_mode || strcmp(s, "current") == 0) {
+               mode = WESTON_DRM_BACKEND_OUTPUT_CURRENT;
+       } else if (strcmp(s, "preferred") != 0) {
+               config->modeline = s;
+               s = NULL;
+       }
+       free(s);
+
+       weston_config_section_get_int(section, "scale", &scale, 1);
+       config->base.scale = scale >= 1 ? scale : 1;
+       weston_config_section_get_string(section, "transform", &s, "normal");
+       if (weston_parse_transform(s, &config->base.transform) < 0)
+               weston_log("Invalid transform \"%s\" for output %s\n",
+                          s, name);
+       free(s);
+
+       weston_config_section_get_string(section,
+                                        "gbm-format", &config->gbm_format, 
NULL);
+       weston_config_section_get_string(section, "seat", &config->seat, "");
+       return mode;
+}
+
+
 /**
  * Create and configure a Weston output structure
  *
@@ -2321,8 +2389,8 @@ create_output_for_connector(struct drm_backend *b,
        output->base.serial_number = "unknown";
        wl_list_init(&output->base.mode_list);
 
-       mode = b->configure_output(b->compositor, b->use_current_mode,
-                                  output->base.name, &config);
+       mode = drm_configure_output(b->compositor, b->use_current_mode,
+                                   output->base.name, &config);
        if (parse_gbm_format(config.gbm_format, b->gbm_format, 
&output->gbm_format) == -1)
                output->gbm_format = b->gbm_format;
 
@@ -3059,7 +3127,6 @@ drm_backend_create(struct weston_compositor *compositor,
        b->sprites_are_broken = 1;
        b->compositor = compositor;
        b->use_pixman = config->use_pixman;
-       b->configure_output = config->configure_output;
        b->use_current_mode = config->use_current_mode;
 
        if (parse_gbm_format(config->gbm_format, GBM_FORMAT_XRGB8888, 
&b->gbm_format) < 0)
diff --git a/src/compositor-drm.h b/src/compositor-drm.h
index 3b2dc17..e57b742 100644
--- a/src/compositor-drm.h
+++ b/src/compositor-drm.h
@@ -36,37 +36,6 @@ extern "C" {
 
 #define WESTON_DRM_BACKEND_CONFIG_VERSION 1
 
-enum weston_drm_backend_output_mode {
-       /** The output is disabled */
-       WESTON_DRM_BACKEND_OUTPUT_OFF,
-       /** The output will use the current active mode */
-       WESTON_DRM_BACKEND_OUTPUT_CURRENT,
-       /** The output will use the preferred mode. A modeline can be provided
-        * by setting weston_backend_output_config::modeline in the form of
-        * "WIDTHxHEIGHT" or in the form of an explicit modeline calculated
-        * using e.g. the cvt tool. If a valid modeline is supplied it will be
-        * used, if invalid or NULL the preferred available mode will be used. 
*/
-       WESTON_DRM_BACKEND_OUTPUT_PREFERRED,
-};
-
-struct weston_drm_backend_output_config {
-       struct weston_backend_output_config base;
-
-       /** The pixel format to be used by the output. Valid values are:
-        * - NULL - The format set at backend creation time will be used;
-        * - "xrgb8888";
-        * - "rgb565"
-        * - "xrgb2101010"
-        */
-       char *gbm_format;
-       /** The seat to be used by the output. Set to NULL to use the
-        * default seat. */
-       char *seat;
-       /** The modeline to be used by the output. Refer to the documentation
-        * of WESTON_DRM_BACKEND_OUTPUT_PREFERRED for details. */
-       char *modeline;
-};
-
 /** The backend configuration struct.
  *
  * weston_drm_backend_config contains the configuration used by a DRM
@@ -107,16 +76,6 @@ struct weston_drm_backend_config {
         */
        char *gbm_format;
 
-       /** Callback used to configure the outputs.
-        *
-        * This function will be called by the backend when a new DRM
-        * output needs to be configured.
-        */
-       enum weston_drm_backend_output_mode
-               (*configure_output)(struct weston_compositor *compositor,
-                                   bool use_current_mode,
-                                   const char *name,
-                                   struct weston_drm_backend_output_config 
*output_config);
        bool use_current_mode;
 };
 
diff --git a/src/main.c b/src/main.c
index 21b7f5c..dcd5ee6 100644
--- a/src/main.c
+++ b/src/main.c
@@ -674,48 +674,6 @@ load_backend_new(struct weston_compositor *compositor, 
const char *backend,
        return backend_init(compositor, NULL, NULL, NULL, config_base);
 }
 
-static enum weston_drm_backend_output_mode
-drm_configure_output(struct weston_compositor *c,
-                    bool use_current_mode,
-                    const char *name,
-                    struct weston_drm_backend_output_config *config)
-{
-       struct weston_config *wc = weston_compositor_get_user_data(c);
-       struct weston_config_section *section;
-       char *s;
-       int scale;
-       enum weston_drm_backend_output_mode mode =
-               WESTON_DRM_BACKEND_OUTPUT_PREFERRED;
-
-       section = weston_config_get_section(wc, "output", "name", name);
-       weston_config_section_get_string(section, "mode", &s, "preferred");
-       if (strcmp(s, "off") == 0) {
-               free(s);
-               return WESTON_DRM_BACKEND_OUTPUT_OFF;
-       }
-
-       if (use_current_mode || strcmp(s, "current") == 0) {
-               mode = WESTON_DRM_BACKEND_OUTPUT_CURRENT;
-       } else if (strcmp(s, "preferred") != 0) {
-               config->modeline = s;
-               s = NULL;
-       }
-       free(s);
-
-       weston_config_section_get_int(section, "scale", &scale, 1);
-       config->base.scale = scale >= 1 ? scale : 1;
-       weston_config_section_get_string(section, "transform", &s, "normal");
-       if (weston_parse_transform(s, &config->base.transform) < 0)
-               weston_log("Invalid transform \"%s\" for output %s\n",
-                          s, name);
-       free(s);
-
-       weston_config_section_get_string(section,
-                                        "gbm-format", &config->gbm_format, 
NULL);
-       weston_config_section_get_string(section, "seat", &config->seat, "");
-       return mode;
-}
-
 static int
 load_drm_backend(struct weston_compositor *c, const char *backend,
                 int *argc, char **argv, struct weston_config *wc)
@@ -745,7 +703,6 @@ load_drm_backend(struct weston_compositor *c, const char 
*backend,
 
        config->base.struct_version = WESTON_DRM_BACKEND_CONFIG_VERSION;
        config->base.struct_size = sizeof(struct weston_drm_backend_config);
-       config->configure_output = drm_configure_output;
 
        ret = load_backend_new(c, backend,
                               (struct weston_backend_config *)config);
-- 
1.9.1

_______________________________________________
wayland-devel mailing list
wayland-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/wayland-devel

Reply via email to