#ifndef SETTINGS_H #define SETTINGS_H typedef enum SettingsList { SETTINGS_GLOBAL_MUTE, SETTINGS_GLOBAL_BPM, SETTINGS_AUTO_SAVE, SETTINGS_SYNC, SETTINGS_THEME, SETTINGS_HELP, SETTINGS_NUM, } SettingsList; typedef enum SyncSetting { SYNC_NONE = 0, SYNC_OUT_LINK_96BPQ, SYNC_OUT_LINK_48BPQ, SYNC_OUT_LINK_24BPQ, SYNC_OUT_LINK_12BPQ, SYNC_OUT_LINK_6BPQ, SYNC_OUT_LINK_4BPQ, SYNC_OUT_AUDIO_12BPQ, SYNC_OUT_AUDIO_6BPQ, SYNC_OUT_AUDIO_4BPQ, SYNC_OUT_LINK_AUDIO_12BPQ, SYNC_OUT_LINK_AUDIO_6BPQ, SYNC_OUT_LINK_AUDIO_4BPQ, SYNC_IN_LINK_96BPQ, SYNC_IN_LINK_48BPQ, SYNC_IN_LINK_24BPQ, SYNC_IN_LINK_12BPQ, SYNC_IN_LINK_6BPQ, SYNC_IN_LINK_4BPQ, SYNC_NUM, } SyncSetting; char * sync_setting_str[] = { "NONE", "LINK OUT (96BPQ)", "LINK OUT (48BPQ)", "LINK OUT (24BPQ)", "LINK OUT (12BPQ)", "LINK OUT (6BPQ)", "LINK OUT (4BPQ)", "AUDIO OUT (12BPQ)", "AUDIO OUT (6BPQ)", "AUDIO OUT (4BPQ)", "LINK+AUDIO OUT (12BPQ)", "LINK+AUDIO OUT (6BPQ)", "LINK+AUDIO OUT (4BPQ)", "LINK IN (96BPQ)", "LINK IN (48BPQ)", "LINK IN (24BPQ)", "LINK IN (12BPQ)", "LINK IN (6BPQ)", "LINK IN (4BPQ)", }; typedef enum ThemeSetting { THEME_DEFAULT = 0, THEME_INVERTED, THEME_CLASSIC_BLUE, THEME_HUMAN_RIGHTS, THEME_AMBER, THEME_MERVEILLES, THEME_NUM, } ThemeSetting; char * theme_setting_str[] = { "DEFAULT", "INVERTED", "CLASSIC BLUE", "HUMAN RIGHTS", "AMBER", "MERVEILLES", }; typedef enum ToggleSettings { TOGGLE_OFF = 0, TOGGLE_ON, TOGGLE_NUM, } ToggleSettings; char * toggle_settings_str[] = { "OFF", "ON", }; typedef struct Settings { ToggleSettings global_mute; bool mutes[4]; ToggleSettings global_bpm; int bpm; ToggleSettings auto_save; SyncSetting sync; ThemeSetting theme; ToggleSettings help; u8 reserved[52]; } Settings; // TODO: Save globals on a separate struct, within the metadata struct? #endif // SETTINGS_H