allow to name the backend

This commit is contained in:
Tony Crisci 2018-03-01 07:02:49 -05:00
parent 0925aa1f0b
commit 543e0a46aa
2 changed files with 17 additions and 5 deletions

View file

@ -21,6 +21,11 @@ static struct cmd_results *backend_cmd_add(int argc, char **argv) {
return error; return error;
} }
const char *name = NULL;
if (argc > 1) {
name = argv[1];
}
const char *type_name = argv[0]; const char *type_name = argv[0];
enum sway_backend_type type; enum sway_backend_type type;
if (strcasecmp(type_name, "wayland") == 0) { if (strcasecmp(type_name, "wayland") == 0) {
@ -39,7 +44,7 @@ static struct cmd_results *backend_cmd_add(int argc, char **argv) {
} }
struct sway_backend *backend = struct sway_backend *backend =
sway_backend_create(type, NULL); sway_backend_create(type, name);
sway_server_add_backend(&server, backend); sway_server_add_backend(&server, backend);
return cmd_results_new(CMD_SUCCESS, NULL, NULL); return cmd_results_new(CMD_SUCCESS, NULL, NULL);
@ -47,7 +52,6 @@ static struct cmd_results *backend_cmd_add(int argc, char **argv) {
static struct cmd_results *backend_cmd_add_output(int argc, char **argv, static struct cmd_results *backend_cmd_add_output(int argc, char **argv,
struct sway_backend *backend) { struct sway_backend *backend) {
// TODO allow to name the output
char *name = NULL; char *name = NULL;
if (argc > 0) { if (argc > 0) {
name = argv[0]; name = argv[0];
@ -90,8 +94,8 @@ struct cmd_results *cmd_backend(int argc, char **argv) {
return error; return error;
} }
int argc_new = argc-2; int argc_new = argc-1;
char **argv_new = argv+2; char **argv_new = argv+1;
if (strcasecmp("add", argv[0]) == 0) { if (strcasecmp("add", argv[0]) == 0) {
return backend_cmd_add(argc_new, argv_new); return backend_cmd_add(argc_new, argv_new);
@ -107,6 +111,9 @@ struct cmd_results *cmd_backend(int argc, char **argv) {
"Cannot find backend: %s", argv[0]); "Cannot find backend: %s", argv[0]);
} }
--argc_new;
++argv_new;
if (strcasecmp("add-output", argv[1]) == 0) { if (strcasecmp("add-output", argv[1]) == 0) {
return backend_cmd_add_output(argc_new, argv_new, backend); return backend_cmd_add_output(argc_new, argv_new, backend);
} else if (strcasecmp("del-output", argv[1]) == 0) { } else if (strcasecmp("del-output", argv[1]) == 0) {

View file

@ -146,6 +146,8 @@ struct sway_backend *sway_server_get_backend(struct sway_server *server,
return NULL; return NULL;
} }
static int backend_count = 0;
struct sway_backend *sway_backend_create(enum sway_backend_type type, struct sway_backend *sway_backend_create(enum sway_backend_type type,
const char *name) { const char *name) {
struct sway_backend *backend = struct sway_backend *backend =
@ -159,6 +161,9 @@ struct sway_backend *sway_backend_create(enum sway_backend_type type,
// TODO: figure out what to call the backend based on what the backend // TODO: figure out what to call the backend based on what the backend
// type is and how many other backends are configured of that type // type is and how many other backends are configured of that type
// (<type>-<num>). // (<type>-<num>).
char new_name[256];
snprintf(new_name, sizeof(new_name), "backend-%d", ++backend_count);
backend->name = strdup(new_name);
} else { } else {
backend->name = strdup(name); backend->name = strdup(name);
} }
@ -232,7 +237,7 @@ void sway_server_add_backend(struct sway_server *server,
break; break;
} }
if (backend == NULL) { if (wlr_backend == NULL) {
wlr_log(L_ERROR, "could not create backend '%s'", backend->name); wlr_log(L_ERROR, "could not create backend '%s'", backend->name);
sway_backend_destroy(backend); sway_backend_destroy(backend);
return; return;