mirror of
https://github.com/FunKey-Project/FunKey-GPIO-Mapping.git
synced 2025-12-12 09:48:51 +01:00
75 lines
1.9 KiB
C
Executable File
75 lines
1.9 KiB
C
Executable File
#ifndef _READ_CONF_FILE_H_
|
|
#define _READ_CONF_FILE_H_
|
|
|
|
|
|
/****************************************************************
|
|
* Includes
|
|
****************************************************************/
|
|
#include <stdbool.h>
|
|
|
|
/****************************************************************
|
|
* Defines
|
|
****************************************************************/
|
|
#define MAX_NUM_GPIO 32
|
|
|
|
#define MAX_SIMULTANEOUS_GPIO 12
|
|
|
|
#define MAX_LENGTH_STR_PINS 48
|
|
#define MAX_LENGTH_STR_TYPE 16
|
|
#define MAX_LENGTH_STR_VALUE 256
|
|
#define MAX_LENGTH_STR_HELP_PIN_NAME 48
|
|
#define MAX_LENGTH_STR_HELP_PIN_FCT 256
|
|
#define MAX_LN_LENGTH (MAX_LENGTH_STR_PINS+\
|
|
MAX_LENGTH_STR_TYPE+\
|
|
MAX_LENGTH_STR_VALUE+\
|
|
MAX_LENGTH_STR_HELP_PIN_NAME+\
|
|
MAX_LENGTH_STR_HELP_PIN_FCT)
|
|
|
|
typedef enum{
|
|
TYPE_MAPPING_KEYBOARD,
|
|
TYPE_MAPPING_SHELL_COMMAND,
|
|
NB_TYPE_MAPPING,
|
|
} ENUM_TYPE_MAPPING;
|
|
|
|
|
|
typedef enum{
|
|
MAPPING_ARG_PINS = 0,
|
|
MAPPING_ARG_TYPE,
|
|
MAPPING_ARG_VALUE,
|
|
MAPPING_ARG_STR_HELP_PIN_NAME,
|
|
MAPPING_ARG_STR_HELP_PIN_FCT,
|
|
NB_MAPPING_ARG_NAMES,
|
|
} ENUM_MAPPING_ARGS_NAMES;
|
|
|
|
|
|
typedef struct{
|
|
char name[32];
|
|
int code;
|
|
}key_names_s;
|
|
|
|
|
|
typedef struct gpio_mapping_s{
|
|
int pins_idx[MAX_SIMULTANEOUS_GPIO];
|
|
int nb_simultaneous_pins;
|
|
ENUM_TYPE_MAPPING type_mapping;
|
|
int key_value;
|
|
char *shell_command;
|
|
char *pin_help_str;
|
|
char *fct_help_str;
|
|
struct gpio_mapping_s * next_mapped_gpio;
|
|
bool activated;
|
|
}STRUCT_MAPPED_GPIO;
|
|
|
|
|
|
|
|
/****************************************************************
|
|
* Public functions
|
|
****************************************************************/
|
|
void get_mapping_from_conf_file(STRUCT_MAPPED_GPIO ** chained_list_mapping,
|
|
int* nb_valid_gpios, int ** valid_gpio_pins, bool ** gpio_pins_active_high);
|
|
void print_all_chained_list(STRUCT_MAPPED_GPIO * head);
|
|
void print_chained_list_node(STRUCT_MAPPED_GPIO * node);
|
|
void print_gpios(int * valid_gpio_pins, int nb_valid_gpios);
|
|
|
|
#endif //_READ_CONF_FILE_H_
|