#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_LINK_2BPQ, SYNC_OUT_AUDIO_12BPQ, SYNC_OUT_AUDIO_6BPQ, SYNC_OUT_AUDIO_4BPQ, SYNC_OUT_AUDIO_2BPQ, SYNC_OUT_LINK_AUDIO_12BPQ, SYNC_OUT_LINK_AUDIO_6BPQ, SYNC_OUT_LINK_AUDIO_4BPQ, SYNC_OUT_LINK_AUDIO_2BPQ, 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)", "LINK OUT (2BPQ)", "AUDIO OUT (12BPQ)", "AUDIO OUT (6BPQ)", "AUDIO OUT (4BPQ)", "AUDIO OUT (2BPQ)", "LINK+AUDIO OUT (12BPQ)", "LINK+AUDIO OUT (6BPQ)", "LINK+AUDIO OUT (4BPQ)", "LINK+AUDIO OUT (2BPQ)", "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