From e4f86e3cbe58eef9a1c7ddff6b41dc85c342f849 Mon Sep 17 00:00:00 2001 From: Ray Strode Date: Wed, 18 Jan 2017 12:53:58 -0500 Subject: [PATCH] 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. --- src/libply-splash-core/ply-renderer-plugin.h | 2 ++ src/libply-splash-core/ply-renderer.c | 5 +++++ src/plugins/renderers/frame-buffer/plugin.c | 9 ++++++++- 3 files changed, 15 insertions(+), 1 deletion(-) 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; -- 2.47.3