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.
This commit is contained in:
Ray Strode 2017-01-18 12:53:58 -05:00
parent fdda9af2c3
commit e4f86e3cbe
3 changed files with 15 additions and 1 deletions

View 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 */

View 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;
}

View 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;