summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNathanael Sensfelder <SpamShield0@MultiAgentSystems.org>2020-01-04 21:31:55 +0100
committerNathanael Sensfelder <SpamShield0@MultiAgentSystems.org>2020-01-04 21:31:55 +0100
commitee48214209e66aa8c6f353262b175895373f76df (patch)
treec2b61a4bd702602d856f613992c46a802e0a888c /include
parent0c68e544b113f0493b9b80511c26c1e4584bd1e7 (diff)
...
Diffstat (limited to 'include')
-rw-r--r--include/relabsd/client.h12
-rw-r--r--include/relabsd/config/parameters.h16
-rw-r--r--include/relabsd/config/parameters_types.h5
-rw-r--r--include/relabsd/device/axis.h6
-rw-r--r--include/relabsd/device/physical_device.h6
-rw-r--r--include/relabsd/device/virtual_device.h4
-rw-r--r--include/relabsd/server.h39
-rw-r--r--include/relabsd/server_types.h18
8 files changed, 102 insertions, 4 deletions
diff --git a/include/relabsd/client.h b/include/relabsd/client.h
index e69de29..21e3b74 100644
--- a/include/relabsd/client.h
+++ b/include/relabsd/client.h
@@ -0,0 +1,12 @@
+#pragma once
+
+#include <relabsd/client_types.h>
+
+#include <relabsd/config/parameters.h>
+
+int relabsd_client_main
+(
+ const int argc,
+ const char * const argv [const static argc],
+ struct relabsd_parameters parameters [const restrict static 1]
+);
diff --git a/include/relabsd/config/parameters.h b/include/relabsd/config/parameters.h
index 8a5df32..215f61c 100644
--- a/include/relabsd/config/parameters.h
+++ b/include/relabsd/config/parameters.h
@@ -75,5 +75,21 @@ enum relabsd_parameters_run_mode relabsd_parameters_get_execution_mode
struct relabsd_axis * relabsd_parameters_get_axis
(
const enum relabsd_axis_name i,
+ struct relabsd_parameters parameters [const restrict static 1]
+);
+
+void relabsd_parameters_set_timeout
+(
+ const int timeout_msec,
+ struct relabsd_parameters parameters [const restrict static 1]
+);
+
+struct timeval relabsd_parameters_get_timeout
+(
+ const struct relabsd_parameters parameters [const restrict static 1]
+);
+
+int relabsd_parameters_use_timeout
+(
const struct relabsd_parameters parameters [const restrict static 1]
);
diff --git a/include/relabsd/config/parameters_types.h b/include/relabsd/config/parameters_types.h
index e6c4009..f7b82b1 100644
--- a/include/relabsd/config/parameters_types.h
+++ b/include/relabsd/config/parameters_types.h
@@ -1,5 +1,7 @@
#pragma once
+#include <sys/time.h>
+
#include <relabsd/device/axis_types.h>
enum relabsd_parameters_run_mode
@@ -18,6 +20,7 @@ struct relabsd_parameters
const char * device_name;
const char * physical_device_file_name;
const char * configuration_file;
- int timeout; /* TODO: use time structure + enabled flag */
+ int use_timeout;
+ struct timeval timeout;
struct relabsd_axis axes[RELABSD_AXIS_VALID_AXES_COUNT];
};
diff --git a/include/relabsd/device/axis.h b/include/relabsd/device/axis.h
index 792a1cd..1638b80 100644
--- a/include/relabsd/device/axis.h
+++ b/include/relabsd/device/axis.h
@@ -82,3 +82,9 @@ void relabsd_axis_to_absinfo
struct relabsd_axis axis [const restrict static 1],
struct input_absinfo absinfo [const restrict static 1]
);
+
+int relabsd_axis_filter_new_value
+(
+ struct relabsd_axis axis [const restrict static 1],
+ int value [const restrict static 1]
+);
diff --git a/include/relabsd/device/physical_device.h b/include/relabsd/device/physical_device.h
index 910d46f..33ff18a 100644
--- a/include/relabsd/device/physical_device.h
+++ b/include/relabsd/device/physical_device.h
@@ -27,7 +27,6 @@ void relabsd_physical_device_close
*
* The 'input_*' parameters do not need to be initialized, as the function will
* do that for you (on success).
- * Requires 'input' to be open.
*/
int relabsd_physical_device_read
(
@@ -41,3 +40,8 @@ int relabsd_physical_device_is_late
(
const struct relabsd_physical_device device [const restrict static 1]
);
+
+int relabsd_physical_device_get_file_descriptor
+(
+ const struct relabsd_physical_device device [const restrict static 1]
+);
diff --git a/include/relabsd/device/virtual_device.h b/include/relabsd/device/virtual_device.h
index 5ffd1c9..fffb2a3 100644
--- a/include/relabsd/device/virtual_device.h
+++ b/include/relabsd/device/virtual_device.h
@@ -21,7 +21,7 @@
*/
int relabsd_virtual_device_create_from
(
- const struct relabsd_parameters parameters [const restrict static 1],
+ struct relabsd_parameters parameters [const restrict static 1],
struct relabsd_virtual_device device [const restrict static 1]
);
@@ -51,6 +51,6 @@ int relabsd_virtual_device_write_evdev_event
*/
void relabsd_virtual_device_set_axes_to_zero
(
- const struct relabsd_parameters parameters [const restrict static 1],
+ struct relabsd_parameters parameters [const restrict static 1],
const struct relabsd_virtual_device device [const restrict static 1]
);
diff --git a/include/relabsd/server.h b/include/relabsd/server.h
index e69de29..2bc0447 100644
--- a/include/relabsd/server.h
+++ b/include/relabsd/server.h
@@ -0,0 +1,39 @@
+#pragma once
+
+#include <relabsd/server_types.h>
+
+int relabsd_server_main
+(
+ const int argc,
+ const char * const argv [const static argc],
+ struct relabsd_parameters parameters [const static 1]
+);
+
+int relabsd_server_create_daemon (void);
+
+int relabsd_server_keep_running (void);
+void relabsd_server_interrupt (void);
+int relabsd_server_initialize_signal_handlers (void);
+void relabsd_server_finalize_signal_handlers (void);
+int relabsd_server_get_interruption_file_descriptor (void);
+
+int relabsd_server_create_communication_thread
+(
+ struct relabsd_server server [const static 1]
+);
+
+int relabsd_server_create_communication_node
+(
+ const char socket_name [const restrict static 1],
+ int socket [const restrict static 1]
+);
+
+int relabsd_server_conversion_loop
+(
+ struct relabsd_server server [const static 1]
+);
+
+int relabsd_server_join_communication_thread
+(
+ struct relabsd_server server [const static 1]
+);
diff --git a/include/relabsd/server_types.h b/include/relabsd/server_types.h
index e69de29..51a17de 100644
--- a/include/relabsd/server_types.h
+++ b/include/relabsd/server_types.h
@@ -0,0 +1,18 @@
+#pragma once
+
+/**** POSIX *******************************************************************/
+#include <pthread.h>
+
+/**** RELABSD *****************************************************************/
+#include <relabsd/config/parameters_types.h>
+
+#include <relabsd/device/physical_device_types.h>
+#include <relabsd/device/virtual_device_types.h>
+
+struct relabsd_server
+{
+ pthread_t communication_thread;
+ struct relabsd_parameters parameters;
+ struct relabsd_physical_device physical_device;
+ struct relabsd_virtual_device virtual_device;
+};