mirror of
https://github.com/swaywm/sway.git
synced 2024-11-23 00:11:28 +00:00
Remove internal references to DPMS
While at it, use an int for the config field, just like we do for all other fields.
This commit is contained in:
parent
798e3c8858
commit
b69d637f7a
|
@ -247,12 +247,6 @@ struct seat_config {
|
||||||
} xcursor_theme;
|
} xcursor_theme;
|
||||||
};
|
};
|
||||||
|
|
||||||
enum config_dpms {
|
|
||||||
DPMS_IGNORE,
|
|
||||||
DPMS_ON,
|
|
||||||
DPMS_OFF,
|
|
||||||
};
|
|
||||||
|
|
||||||
enum scale_filter_mode {
|
enum scale_filter_mode {
|
||||||
SCALE_FILTER_DEFAULT, // the default is currently smart
|
SCALE_FILTER_DEFAULT, // the default is currently smart
|
||||||
SCALE_FILTER_LINEAR,
|
SCALE_FILTER_LINEAR,
|
||||||
|
@ -274,6 +268,7 @@ enum render_bit_depth {
|
||||||
struct output_config {
|
struct output_config {
|
||||||
char *name;
|
char *name;
|
||||||
int enabled;
|
int enabled;
|
||||||
|
int power;
|
||||||
int width, height;
|
int width, height;
|
||||||
float refresh_rate;
|
float refresh_rate;
|
||||||
int custom_mode;
|
int custom_mode;
|
||||||
|
@ -290,7 +285,6 @@ struct output_config {
|
||||||
char *background;
|
char *background;
|
||||||
char *background_option;
|
char *background_option;
|
||||||
char *background_fallback;
|
char *background_fallback;
|
||||||
enum config_dpms dpms_state;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -32,7 +32,7 @@ struct sway_output {
|
||||||
int width, height; // transformed buffer size
|
int width, height; // transformed buffer size
|
||||||
enum wl_output_subpixel detected_subpixel;
|
enum wl_output_subpixel detected_subpixel;
|
||||||
enum scale_filter_mode scale_filter;
|
enum scale_filter_mode scale_filter;
|
||||||
// last applied mode when the output is DPMS'ed
|
// last applied mode when the output is powered off
|
||||||
struct wlr_output_mode *current_mode;
|
struct wlr_output_mode *current_mode;
|
||||||
|
|
||||||
bool enabling, enabled;
|
bool enabling, enabled;
|
||||||
|
|
|
@ -12,7 +12,7 @@ struct cmd_results *output_cmd_power(int argc, char **argv) {
|
||||||
return cmd_results_new(CMD_INVALID, "Missing power argument");
|
return cmd_results_new(CMD_INVALID, "Missing power argument");
|
||||||
}
|
}
|
||||||
|
|
||||||
enum config_dpms current_dpms = DPMS_ON;
|
bool current = true;
|
||||||
if (strcasecmp(argv[0], "toggle") == 0) {
|
if (strcasecmp(argv[0], "toggle") == 0) {
|
||||||
const char *oc_name = config->handler_context.output_config->name;
|
const char *oc_name = config->handler_context.output_config->name;
|
||||||
if (strcmp(oc_name, "*") == 0) {
|
if (strcmp(oc_name, "*") == 0) {
|
||||||
|
@ -27,14 +27,14 @@ struct cmd_results *output_cmd_power(int argc, char **argv) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (sway_output->enabled && !sway_output->wlr_output->enabled) {
|
if (sway_output->enabled && !sway_output->wlr_output->enabled) {
|
||||||
current_dpms = DPMS_OFF;
|
current = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (parse_boolean(argv[0], current_dpms == DPMS_ON)) {
|
if (parse_boolean(argv[0], current)) {
|
||||||
config->handler_context.output_config->dpms_state = DPMS_ON;
|
config->handler_context.output_config->power = 1;
|
||||||
} else {
|
} else {
|
||||||
config->handler_context.output_config->dpms_state = DPMS_OFF;
|
config->handler_context.output_config->power = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
config->handler_context.leftovers.argc = argc - 1;
|
config->handler_context.leftovers.argc = argc - 1;
|
||||||
|
|
|
@ -71,6 +71,7 @@ struct output_config *new_output_config(const char *name) {
|
||||||
oc->max_render_time = -1;
|
oc->max_render_time = -1;
|
||||||
oc->adaptive_sync = -1;
|
oc->adaptive_sync = -1;
|
||||||
oc->render_bit_depth = RENDER_BIT_DEPTH_DEFAULT;
|
oc->render_bit_depth = RENDER_BIT_DEPTH_DEFAULT;
|
||||||
|
oc->power = -1;
|
||||||
return oc;
|
return oc;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -132,8 +133,8 @@ void merge_output_config(struct output_config *dst, struct output_config *src) {
|
||||||
free(dst->background_fallback);
|
free(dst->background_fallback);
|
||||||
dst->background_fallback = strdup(src->background_fallback);
|
dst->background_fallback = strdup(src->background_fallback);
|
||||||
}
|
}
|
||||||
if (src->dpms_state != 0) {
|
if (src->power != -1) {
|
||||||
dst->dpms_state = src->dpms_state;
|
dst->power = src->power;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -192,11 +193,11 @@ static void merge_id_on_name(struct output_config *oc) {
|
||||||
list_add(config->output_configs, ion_oc);
|
list_add(config->output_configs, ion_oc);
|
||||||
sway_log(SWAY_DEBUG, "Generated id on name output config \"%s\""
|
sway_log(SWAY_DEBUG, "Generated id on name output config \"%s\""
|
||||||
" (enabled: %d) (%dx%d@%fHz position %d,%d scale %f "
|
" (enabled: %d) (%dx%d@%fHz position %d,%d scale %f "
|
||||||
"transform %d) (bg %s %s) (dpms %d) (max render time: %d)",
|
"transform %d) (bg %s %s) (power %d) (max render time: %d)",
|
||||||
ion_oc->name, ion_oc->enabled, ion_oc->width, ion_oc->height,
|
ion_oc->name, ion_oc->enabled, ion_oc->width, ion_oc->height,
|
||||||
ion_oc->refresh_rate, ion_oc->x, ion_oc->y, ion_oc->scale,
|
ion_oc->refresh_rate, ion_oc->x, ion_oc->y, ion_oc->scale,
|
||||||
ion_oc->transform, ion_oc->background,
|
ion_oc->transform, ion_oc->background,
|
||||||
ion_oc->background_option, ion_oc->dpms_state,
|
ion_oc->background_option, ion_oc->power,
|
||||||
ion_oc->max_render_time);
|
ion_oc->max_render_time);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -237,11 +238,11 @@ struct output_config *store_output_config(struct output_config *oc) {
|
||||||
}
|
}
|
||||||
|
|
||||||
sway_log(SWAY_DEBUG, "Config stored for output %s (enabled: %d) (%dx%d@%fHz "
|
sway_log(SWAY_DEBUG, "Config stored for output %s (enabled: %d) (%dx%d@%fHz "
|
||||||
"position %d,%d scale %f subpixel %s transform %d) (bg %s %s) (dpms %d) "
|
"position %d,%d scale %f subpixel %s transform %d) (bg %s %s) (power %d) "
|
||||||
"(max render time: %d)",
|
"(max render time: %d)",
|
||||||
oc->name, oc->enabled, oc->width, oc->height, oc->refresh_rate,
|
oc->name, oc->enabled, oc->width, oc->height, oc->refresh_rate,
|
||||||
oc->x, oc->y, oc->scale, sway_wl_output_subpixel_to_string(oc->subpixel),
|
oc->x, oc->y, oc->scale, sway_wl_output_subpixel_to_string(oc->subpixel),
|
||||||
oc->transform, oc->background, oc->background_option, oc->dpms_state,
|
oc->transform, oc->background, oc->background_option, oc->power,
|
||||||
oc->max_render_time);
|
oc->max_render_time);
|
||||||
|
|
||||||
return oc;
|
return oc;
|
||||||
|
@ -385,7 +386,7 @@ static void queue_output_config(struct output_config *oc,
|
||||||
|
|
||||||
struct wlr_output *wlr_output = output->wlr_output;
|
struct wlr_output *wlr_output = output->wlr_output;
|
||||||
|
|
||||||
if (oc && (!oc->enabled || oc->dpms_state == DPMS_OFF)) {
|
if (oc && (!oc->enabled || oc->power == 0)) {
|
||||||
sway_log(SWAY_DEBUG, "Turning off output %s", wlr_output->name);
|
sway_log(SWAY_DEBUG, "Turning off output %s", wlr_output->name);
|
||||||
wlr_output_state_set_enabled(pending, false);
|
wlr_output_state_set_enabled(pending, false);
|
||||||
return;
|
return;
|
||||||
|
@ -494,7 +495,7 @@ bool apply_output_config(struct output_config *oc, struct sway_output *output) {
|
||||||
struct wlr_output_state pending = {0};
|
struct wlr_output_state pending = {0};
|
||||||
queue_output_config(oc, output, &pending);
|
queue_output_config(oc, output, &pending);
|
||||||
|
|
||||||
if (!oc || oc->dpms_state != DPMS_OFF) {
|
if (!oc || oc->power != 0) {
|
||||||
output->current_mode = pending.mode;
|
output->current_mode = pending.mode;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -590,6 +591,7 @@ bool test_output_config(struct output_config *oc, struct sway_output *output) {
|
||||||
static void default_output_config(struct output_config *oc,
|
static void default_output_config(struct output_config *oc,
|
||||||
struct wlr_output *wlr_output) {
|
struct wlr_output *wlr_output) {
|
||||||
oc->enabled = 1;
|
oc->enabled = 1;
|
||||||
|
oc->power = 1;
|
||||||
struct wlr_output_mode *mode = wlr_output_preferred_mode(wlr_output);
|
struct wlr_output_mode *mode = wlr_output_preferred_mode(wlr_output);
|
||||||
if (mode != NULL) {
|
if (mode != NULL) {
|
||||||
oc->width = mode->width;
|
oc->width = mode->width;
|
||||||
|
@ -602,7 +604,6 @@ static void default_output_config(struct output_config *oc,
|
||||||
struct sway_output *output = wlr_output->data;
|
struct sway_output *output = wlr_output->data;
|
||||||
oc->subpixel = output->detected_subpixel;
|
oc->subpixel = output->detected_subpixel;
|
||||||
oc->transform = WL_OUTPUT_TRANSFORM_NORMAL;
|
oc->transform = WL_OUTPUT_TRANSFORM_NORMAL;
|
||||||
oc->dpms_state = DPMS_ON;
|
|
||||||
oc->max_render_time = 0;
|
oc->max_render_time = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -657,10 +658,10 @@ static struct output_config *get_output_config(char *identifier,
|
||||||
|
|
||||||
sway_log(SWAY_DEBUG, "Generated output config \"%s\" (enabled: %d)"
|
sway_log(SWAY_DEBUG, "Generated output config \"%s\" (enabled: %d)"
|
||||||
" (%dx%d@%fHz position %d,%d scale %f transform %d) (bg %s %s)"
|
" (%dx%d@%fHz position %d,%d scale %f transform %d) (bg %s %s)"
|
||||||
" (dpms %d) (max render time: %d)", result->name, result->enabled,
|
" (power %d) (max render time: %d)", result->name, result->enabled,
|
||||||
result->width, result->height, result->refresh_rate,
|
result->width, result->height, result->refresh_rate,
|
||||||
result->x, result->y, result->scale, result->transform,
|
result->x, result->y, result->scale, result->transform,
|
||||||
result->background, result->background_option, result->dpms_state,
|
result->background, result->background_option, result->power,
|
||||||
result->max_render_time);
|
result->max_render_time);
|
||||||
} else if (oc_name) {
|
} else if (oc_name) {
|
||||||
// No identifier config, just return a copy of the name config
|
// No identifier config, just return a copy of the name config
|
||||||
|
|
|
@ -763,7 +763,7 @@ static void update_output_manager_config(struct sway_server *server) {
|
||||||
struct wlr_box output_box;
|
struct wlr_box output_box;
|
||||||
wlr_output_layout_get_box(root->output_layout,
|
wlr_output_layout_get_box(root->output_layout,
|
||||||
output->wlr_output, &output_box);
|
output->wlr_output, &output_box);
|
||||||
// We mark the output enabled even if it is switched off by DPMS
|
// We mark the output enabled when it's switched off but not disabled
|
||||||
config_head->state.enabled = output->current_mode != NULL && output->enabled;
|
config_head->state.enabled = output->current_mode != NULL && output->enabled;
|
||||||
config_head->state.mode = output->current_mode;
|
config_head->state.mode = output->current_mode;
|
||||||
if (!wlr_box_empty(&output_box)) {
|
if (!wlr_box_empty(&output_box)) {
|
||||||
|
@ -1028,10 +1028,10 @@ void handle_output_power_manager_set_mode(struct wl_listener *listener,
|
||||||
struct output_config *oc = new_output_config(output->wlr_output->name);
|
struct output_config *oc = new_output_config(output->wlr_output->name);
|
||||||
switch (event->mode) {
|
switch (event->mode) {
|
||||||
case ZWLR_OUTPUT_POWER_V1_MODE_OFF:
|
case ZWLR_OUTPUT_POWER_V1_MODE_OFF:
|
||||||
oc->dpms_state = DPMS_OFF;
|
oc->power = 0;
|
||||||
break;
|
break;
|
||||||
case ZWLR_OUTPUT_POWER_V1_MODE_ON:
|
case ZWLR_OUTPUT_POWER_V1_MODE_ON:
|
||||||
oc->dpms_state = DPMS_ON;
|
oc->power = 1;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
oc = store_output_config(oc);
|
oc = store_output_config(oc);
|
||||||
|
|
Loading…
Reference in a new issue