1 #include <string.h>
2 #include "log.h"
3 #include "sway/commands.h"
4 #include "sway/config.h"
5 #include "sway/output.h"
6 
output_cmd_scale_filter(int argc,char ** argv)7 struct cmd_results *output_cmd_scale_filter(int argc, char **argv) {
8 	if (!config->handler_context.output_config) {
9 		return cmd_results_new(CMD_FAILURE, "Missing output config");
10 	}
11 
12 	if (!argc) {
13 		return cmd_results_new(CMD_INVALID, "Missing scale_filter argument.");
14 	}
15 
16 
17 	enum scale_filter_mode scale_filter;
18 	if (strcmp(*argv, "linear") == 0) {
19 		scale_filter = SCALE_FILTER_LINEAR;
20 	} else if (strcmp(*argv, "nearest") == 0) {
21 		scale_filter = SCALE_FILTER_NEAREST;
22 	} else if (strcmp(*argv, "smart") == 0) {
23 		scale_filter = SCALE_FILTER_SMART;
24 	} else {
25 		return cmd_results_new(CMD_INVALID, "Invalid output scale_filter.");
26 	}
27 
28 	struct output_config *oc = config->handler_context.output_config;
29 	config->handler_context.leftovers.argc = argc - 1;
30 	config->handler_context.leftovers.argv = argv + 1;
31 
32 	oc->scale_filter = scale_filter;
33 	return NULL;
34 }
35