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;