ref: 997a030e208314e5538689d7362cccad61718164
dir: /src/config.h/
// Copyright 2021 Jonne Kokkonen
// Released under the MIT licence, https://opensource.org/licenses/MIT
#ifndef CONFIG_H_
#define CONFIG_H_
#include "ini.h"
typedef struct config_params_s {
char *filename;
unsigned int init_fullscreen;
unsigned int integer_scaling;
unsigned int wait_packets;
unsigned int audio_enabled;
unsigned int audio_buffer_size;
char *audio_device_name;
unsigned int key_up;
unsigned int key_left;
unsigned int key_down;
unsigned int key_right;
unsigned int key_select;
unsigned int key_select_alt;
unsigned int key_start;
unsigned int key_start_alt;
unsigned int key_opt;
unsigned int key_opt_alt;
unsigned int key_edit;
unsigned int key_edit_alt;
unsigned int key_delete;
unsigned int key_reset;
unsigned int key_jazz_inc_octave;
unsigned int key_jazz_dec_octave;
unsigned int key_jazz_inc_velocity;
unsigned int key_jazz_dec_velocity;
unsigned int key_toggle_audio;
unsigned int key_toggle_log;
int gamepad_up;
int gamepad_left;
int gamepad_down;
int gamepad_right;
int gamepad_select;
int gamepad_start;
int gamepad_opt;
int gamepad_edit;
int gamepad_quit;
int gamepad_reset;
int gamepad_analog_threshold;
int gamepad_analog_invert;
int gamepad_analog_axis_updown;
int gamepad_analog_axis_leftright;
int gamepad_analog_axis_start;
int gamepad_analog_axis_select;
int gamepad_analog_axis_opt;
int gamepad_analog_axis_edit;
} config_params_s;
config_params_s config_initialize(char *filename);
void config_read(config_params_s *conf);
void read_audio_config(const ini_t *ini, config_params_s *conf);
void read_graphics_config(const ini_t *ini, config_params_s *conf);
void read_key_config(const ini_t *ini, config_params_s *conf);
void read_gamepad_config(const ini_t *ini, config_params_s *conf);
// Expose write so settings UI can persist changes
void write_config(const config_params_s *conf);
#endif