From: Ray Strode Date: Wed, 18 Jan 2017 17:53:58 +0000 (-0500) Subject: renderer: export device name from plugin X-Git-Tag: 0.9.3~10 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e4f86e3cbe58eef9a1c7ddff6b41dc85c342f849;p=thirdparty%2Fplymouth.git renderer: export device name from plugin 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. --- diff --git a/src/libply-splash-core/ply-renderer-plugin.h b/src/libply-splash-core/ply-renderer-plugin.h index 82ef9134..f1455d30 100644 --- a/src/libply-splash-core/ply-renderer-plugin.h +++ b/src/libply-splash-core/ply-renderer-plugin.h @@ -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 */ diff --git a/src/libply-splash-core/ply-renderer.c b/src/libply-splash-core/ply-renderer.c index 16957d7f..b9059ef3 100644 --- a/src/libply-splash-core/ply-renderer.c +++ b/src/libply-splash-core/ply-renderer.c @@ -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; } diff --git a/src/plugins/renderers/frame-buffer/plugin.c b/src/plugins/renderers/frame-buffer/plugin.c index 418855ab..41ad6cdc 100644 --- a/src/plugins/renderers/frame-buffer/plugin.c +++ b/src/plugins/renderers/frame-buffer/plugin.c @@ -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;