diff options
author | Thomas Voss <mail@thomasvoss.com> | 2022-10-13 00:03:37 +0200 |
---|---|---|
committer | Thomas Voss <mail@thomasvoss.com> | 2022-10-13 00:03:37 +0200 |
commit | 7118692e506f9698a77c7cceea3b1dd47bb4b99a (patch) | |
tree | d37a10abde76a7fb063e57135d4408973e99cc0d /src/luxmax.c | |
parent | cd3b1a5ba87b804fb7f8b620460d49a5d305a730 (diff) |
Move functions to their own files
Also we move the source code to a src/ directory. We also move from
using `struct luxdisp` to `lux_t` to signify that we don’t want the user
to be messing with the struct members.
Diffstat (limited to 'src/luxmax.c')
-rw-r--r-- | src/luxmax.c | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/src/luxmax.c b/src/luxmax.c new file mode 100644 index 0000000..b30f02b --- /dev/null +++ b/src/luxmax.c @@ -0,0 +1,45 @@ +/* + * BSD Zero Clause License + * + * Copyright (c) 2022 Thomas Voss + * + * Permission to use, copy, modify, and/or distribute this software for any + * purpose with or without fee is hereby granted. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH + * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY + * AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, + * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM + * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR + * OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR + * PERFORMANCE OF THIS SOFTWARE. + */ + +#include <fcntl.h> +#include <stdio.h> +#include <unistd.h> + +#include "lux.h" + +int +luxmax(lux_t *disp) +{ + /* The maximum brightness shouldn't change, so we can cache it in the + * struct. + */ + if (disp->__max != -1) + return disp->__max; + + int fd = openat(disp->__dirfd, "max_brightness", O_RDONLY); + if (fd == -1) + return -1; + FILE *stream = fdopen(fd, "r"); + if (stream == NULL) { + close(fd); + return -1; + } + + fscanf(stream, "%d", &disp->__max); + fclose(stream); + return disp->__max; +} |