]> git.ipfire.org Git - thirdparty/plymouth.git/commitdiff
renderer: export device name from plugin
authorRay Strode <rstrode@redhat.com>
Wed, 18 Jan 2017 17:53:58 +0000 (12:53 -0500)
committerRay Strode <rstrode@redhat.com>
Wed, 18 Jan 2017 17:53:58 +0000 (12:53 -0500)
Right now the renderer keeps its own copy of the device name, which
may be NULL or out of date after the renderer is opened.

This commit makes sure the device name gets updated to be current.

src/libply-splash-core/ply-renderer-plugin.h
src/libply-splash-core/ply-renderer.c
src/plugins/renderers/frame-buffer/plugin.c

index 82ef913494f8d4e47754ba3f333ff74b3b3dc848..f1455d30adda4b471946999780f02513ef44bcbb 100644 (file)
@@ -66,6 +66,8 @@ typedef struct
 
         void (*close_input_source)(ply_renderer_backend_t      *backend,
                                    ply_renderer_input_source_t *input_source);
+
+        const char * (*get_device_name)(ply_renderer_backend_t *backend);
 } ply_renderer_plugin_interface_t;
 
 #endif /* PLY_RENDERER_PLUGIN_H */
index 16957d7fc16760eb2e54730b245f426fea304035..b9059ef3d4ef6a6eccc1574e432324b0ac881228 100644 (file)
@@ -155,6 +155,11 @@ ply_renderer_load_plugin (ply_renderer_t *renderer,
                 return false;
         }
 
+        if (renderer->plugin_interface->get_device_name != NULL) {
+                free (renderer->device_name);
+                renderer->device_name = strdup (renderer->plugin_interface->get_device_name (renderer->backend));
+        }
+
         return true;
 }
 
index 418855ab8b8460e7bf45f6c0860375e796e037b0..41ad6cdce122d53766907f9a339fd275a366e9ac 100644 (file)
@@ -365,6 +365,12 @@ open_device (ply_renderer_backend_t *backend)
         return true;
 }
 
+static const char *
+get_device_name (ply_renderer_backend_t *backend)
+{
+        return backend->device_name;
+}
+
 static void
 close_device (ply_renderer_backend_t *backend)
 {
@@ -732,7 +738,8 @@ ply_renderer_backend_get_interface (void)
                 .get_input_source             = get_input_source,
                 .open_input_source            = open_input_source,
                 .set_handler_for_input_source = set_handler_for_input_source,
-                .close_input_source           = close_input_source
+                .close_input_source           = close_input_source,
+                .get_device_name              = get_device_name
         };
 
         return &plugin_interface;