| summaryrefslogtreecommitdiff |
diff options
| author | Nathanael Sensfelder <SpamShield0@MultiAgentSystems.org> | 2020-01-04 21:31:55 +0100 |
|---|---|---|
| committer | Nathanael Sensfelder <SpamShield0@MultiAgentSystems.org> | 2020-01-04 21:31:55 +0100 |
| commit | ee48214209e66aa8c6f353262b175895373f76df (patch) | |
| tree | c2b61a4bd702602d856f613992c46a802e0a888c /include | |
| parent | 0c68e544b113f0493b9b80511c26c1e4584bd1e7 (diff) | |
...
Diffstat (limited to 'include')
| -rw-r--r-- | include/relabsd/client.h | 12 | ||||
| -rw-r--r-- | include/relabsd/config/parameters.h | 16 | ||||
| -rw-r--r-- | include/relabsd/config/parameters_types.h | 5 | ||||
| -rw-r--r-- | include/relabsd/device/axis.h | 6 | ||||
| -rw-r--r-- | include/relabsd/device/physical_device.h | 6 | ||||
| -rw-r--r-- | include/relabsd/device/virtual_device.h | 4 | ||||
| -rw-r--r-- | include/relabsd/server.h | 39 | ||||
| -rw-r--r-- | include/relabsd/server_types.h | 18 |
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; +}; |


