summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNathanael Sensfelder <SpamShield0@MultiAgentSystems.org>2019-12-26 18:32:26 +0100
committerNathanael Sensfelder <SpamShield0@MultiAgentSystems.org>2019-12-26 18:32:26 +0100
commit4a9df9b604cec6ee4b4a6f01ef940443583f7573 (patch)
tree0f455bf9c07bb598f2701be0a61f1c3b3b512db2 /src/server/main_loop.c
parent390576c3839ee7abb845e27b7267de45495e6b2f (diff)
Still working on the daemonization (and rewrite).
I am not sure that what I am doing is going to provide what was requested in https://github.com/nsensfel/relabsd/issues/3 but it will at the very least turn relabsd into a proper daemon, and the additions will help create some kind of relabsd device manager if someone needs such a thing.
Diffstat (limited to 'src/server/main_loop.c')
-rw-r--r--src/server/main_loop.c165
1 files changed, 0 insertions, 165 deletions
diff --git a/src/server/main_loop.c b/src/server/main_loop.c
deleted file mode 100644
index 7db1423..0000000
--- a/src/server/main_loop.c
+++ /dev/null
@@ -1,165 +0,0 @@
-#include <fcntl.h>
-#include <errno.h>
-#include <string.h>
-#include <unistd.h>
-#include <signal.h>
-
-#include "pervasive.h"
-#include "error.h"
-#include "config.h"
-#include "input.h"
-#include "relabsd_device.h"
-
-static int RELABSD_RUN = 1;
-
-static void interrupt (int unused_mandatory_parameter)
-{
- RELABSD_RUN = 0;
-
- RELABSD_S_WARNING("Interrupted, will exit at the next input device event.");
-}
-
-static void handle_relative_axis_event
-(
- struct relabsd_config * const conf,
- const struct relabsd_device * const dev,
- unsigned int const input_type,
- unsigned int const input_code,
- int value
-)
-{
- unsigned int abs_code;
- enum relabsd_axis rad_code;
-
- rad_code = relabsd_axis_convert_evdev_rel(input_code, &abs_code);
-
- switch (relabsd_config_filter(conf, rad_code, &value))
- {
- case -1:
- /* 'conf' doesn't want the event to be transmitted. */
- break;
-
- case 0:
- /* 'conf' wants the event to be transmitted as is. */
- relabsd_device_write_evdev_event(dev, input_type, input_code, value);
- break;
-
- case 1:
- /* 'conf' allows the value to be emitted */
- relabsd_device_write_evdev_event(dev, EV_ABS, abs_code, value);
- break;
- }
-}
-
-static void convert_input
-(
- struct relabsd_config * const conf,
- struct relabsd_input * const input,
- const struct relabsd_device * const dev
-)
-{
- unsigned int input_type, input_code;
- int value;
-
- RELABSD_S_DEBUG(RELABSD_DEBUG_PROGRAM_FLOW, "Handling input events...");
-
- input->timed_out = 1;
-
- while (RELABSD_RUN == 1)
- {
- if (conf->enable_timeout)
- {
- switch (relabsd_input_wait_for_next_event(input, conf))
- {
- case 1:
- input->timed_out = 0;
- break;
-
- case 0:
- relabsd_device_set_axes_to_zero(dev, conf);
- input->timed_out = 1;
- break;
-
- case -1:
- continue;
- }
- }
-
- if (relabsd_input_read(input, &input_type, &input_code, &value) < 0)
- {
- /*
- * The next event should not be retransmitted, or some kind of error
- * happened.
- */
- /* TODO: error handling. */
- continue;
- }
-
- if (input_type == EV_REL)
- {
- /* We might have to convert the event. */
- handle_relative_axis_event(conf, dev, input_type, input_code, value);
- }
- else
- {
- /* Any other event is retransmitted as is. */
- relabsd_device_write_evdev_event(dev, input_type, input_code, value);
- }
- }
-}
-
-static int set_signal_handlers ()
-{
- RELABSD_S_DEBUG(RELABSD_DEBUG_PROGRAM_FLOW, "Setting signal handlers.");
-
- if (signal(SIGINT, interrupt) == SIG_ERR)
- {
- RELABSD_S_FATAL("Unable to set the SIGINT signal handler.");
-
- return -1;
- }
-
- return 0;
-}
-
-/*
-int main (int argc, char ** argv)
-{
- struct relabsd_config conf;
- struct relabsd_input input;
- struct relabsd_device dev;
-
- RELABSD_S_DEBUG(RELABSD_DEBUG_PROGRAM_FLOW, "relabsd started.");
-
- if (set_signal_handlers() < 0)
- {
- return -1;
- }
-
- if (relabsd_config_parse(&conf, argc, argv) < 0)
- {
- return -2;
- }
-
- if (relabsd_input_open(&input, &conf) < 0)
- {
- return -3;
- }
-
- if (relabsd_device_create(&dev, &conf) < 0)
- {
- return -4;
- }
-
- convert_input(&conf, &input, &dev);
-
- RELABSD_S_DEBUG(RELABSD_DEBUG_PROGRAM_FLOW, "Terminating...");
-
- relabsd_device_destroy(&dev);
- relabsd_input_close(&input);
-
- RELABSD_S_DEBUG(RELABSD_DEBUG_PROGRAM_FLOW, "Done.");
-
- return 0;
-}
-*/