Configure outputs with make, model, serial in rootston

Added fallbacks in DRM backend in case EDID extension data for model and serial is missing.

Updates #403
This commit is contained in:
emersion 2017-12-07 13:59:19 +01:00
parent aead5019a7
commit 91d72040e5
No known key found for this signature in database
GPG key ID: 0FDE7BE0E88F5E48
3 changed files with 17 additions and 6 deletions

View file

@ -120,7 +120,7 @@ void add_binding_config(struct wl_list *bindings, const char* combination,
xkb_keysym_t keysyms[ROOTS_KEYBOARD_PRESSED_KEYSYMS_CAP];
char *symnames = strdup(combination);
char* symname = strtok(symnames, "+");
char *symname = strtok(symnames, "+");
while (symname) {
uint32_t modifier = parse_modifier(symname);
if (modifier != 0) {
@ -466,10 +466,15 @@ void roots_config_destroy(struct roots_config *config) {
struct roots_output_config *roots_config_get_output(struct roots_config *config,
struct wlr_output *output) {
struct roots_output_config *o_config;
wl_list_for_each(o_config, &config->outputs, link) {
if (strcmp(o_config->name, output->name) == 0) {
return o_config;
char name[83];
snprintf(name, sizeof(name), "%s %s %s", output->make, output->model,
output->serial);
struct roots_output_config *oc;
wl_list_for_each(oc, &config->outputs, link) {
if (strcmp(oc->name, output->name) == 0 ||
strcmp(oc->name, name) == 0) {
return oc;
}
}