diff options
Diffstat (limited to 'src/test/user.c')
-rw-r--r-- | src/test/user.c | 143 |
1 files changed, 0 insertions, 143 deletions
diff --git a/src/test/user.c b/src/test/user.c deleted file mode 100644 index 7a1fd78..0000000 --- a/src/test/user.c +++ /dev/null @@ -1,143 +0,0 @@ -/* See LICENSE file for copyright and license details. */ -#include "user.h" - - -#ifdef __GCC__ -# include <string.h> -#else -/* Hack to circumvent that the funcions are defined multiples */ -# define strlen strlen_ -# define memcpy memcpy_ -# define strchr strchr_ -static size_t -strlen_(const char *str) { - size_t n = 0; - while (str[n]) - n++; - return n; -} -static void * -memcpy_(void *restrict dest, const void *restrict src, size_t n) -{ - char *restrict d = dest; - const char *restrict s = src; - size_t i; - for (i = 0; i < n; i++) - d[i] = s[i]; - return dest; -} -static char *strchr_(const char *s, int c) -{ - char find = (char)c; - for (; *s; s++) - if (*s == find) - return s; - return NULL; -} -#endif - - -/** - * Let the user select adjustment method, site, partition and CRTC - * - * @param site_state Output slot for the site - * @param part_state Output slot for the partition - * @param crtc_state Output slot for the CRTC - * @return Zero on and only on success - */ -int -select_monitor(libgamma_site_state_t *restrict site_state, - libgamma_partition_state_t *restrict part_state, - libgamma_crtc_state_t *restrict crtc_state) -{ - int method; - char *site; - char *tmp; - char buf[256]; - int r; - - - /* -- Adjustment method -- */ - - /* Let the user select adjustment method */ - printf("Select adjustment method:\n"); - for (method = 0; method < LIBGAMMA_METHOD_COUNT; method++) - printf(" %i: %s\n", method, method_name(method)); - printf("> "); - fflush(stdout); - fgets(buf, sizeof(buf) / sizeof(char), stdin); - method = atoi(buf); - - - /* -- Site -- */ - - /* Let the user select site */ - printf("Select site: "); - fflush(stdout); - fgets(buf, sizeof(buf) / sizeof(char), stdin); - tmp = strchr(buf, '\n'); - if (tmp) - *tmp = '\0'; - if (!buf[0]) { - site = NULL; - } else { - site = malloc((strlen(buf) + 1) * sizeof(char)); - memcpy(site, buf, strlen(buf) + 1); - } - - /* Initialise site state */ - if ((r = libgamma_site_initialise(site_state, method, site))) { - free(site); - libgamma_perror("error", r); - return 1; - } - - - /* -- Partition -- */ - - /* Check that the site has at least one partition */ - if (!site_state->partitions_available) { - libgamma_site_free(site_state); - printf("No partitions found\n"); - return 1; - } - - /* Let the user select partition */ - printf("Select partition [0, %lu]: ", site_state->partitions_available - 1); - fflush(stdout); - fgets(buf, sizeof(buf) / sizeof(char), stdin); - - /* Initialise partition state */ - if ((r = libgamma_partition_initialise(part_state, site_state, (size_t)atoll(buf)))) { - libgamma_site_free(site_state); - libgamma_perror("error", r); - return 1; - } - - - /* -- CRTC -- */ - - /* Check that the partition has at least one CRTC */ - if (!part_state->crtcs_available) { - libgamma_partition_free(part_state); - libgamma_site_free(site_state); - printf("No CRTC:s found\n"); - return 1; - } - - /* Let the user select CRTC */ - printf("Select CRTC [0, %lu]: ", part_state->crtcs_available - 1); - fflush(stdout); - fgets(buf, sizeof(buf) / sizeof(char), stdin); - - /* Initialise CRTC state. */ - if ((r = libgamma_crtc_initialise(crtc_state, part_state, (size_t)atoll(buf)))) { - libgamma_partition_free(part_state); - libgamma_site_free(site_state); - libgamma_perror("error", r); - return 1; - } - - printf("\n"); - return 0; -} |