mirror of
https://github.com/owntone/owntone-server.git
synced 2025-12-06 07:42:33 -05:00
[settings] Add settings component
This adds a new settings component for user configurable options that can be changed through the JSON API. The settings are stored in the admin db table and not in the conf-file.
This commit is contained in:
65
src/settings.h
Normal file
65
src/settings.h
Normal file
@@ -0,0 +1,65 @@
|
||||
|
||||
#ifndef __SETTINGS_H__
|
||||
#define __SETTINGS_H__
|
||||
|
||||
#include <stdbool.h>
|
||||
|
||||
|
||||
enum settings_type {
|
||||
SETTINGS_TYPE_INT,
|
||||
SETTINGS_TYPE_BOOL,
|
||||
SETTINGS_TYPE_STR,
|
||||
SETTINGS_TYPE_CATEGORY,
|
||||
};
|
||||
|
||||
struct settings_option {
|
||||
const char *name;
|
||||
enum settings_type type;
|
||||
};
|
||||
|
||||
struct settings_category {
|
||||
const char *name;
|
||||
struct settings_option *options;
|
||||
int count_options;
|
||||
};
|
||||
|
||||
|
||||
int
|
||||
settings_categories_count();
|
||||
|
||||
struct settings_category *
|
||||
settings_category_get_byindex(int index);
|
||||
|
||||
struct settings_category *
|
||||
settings_category_get(const char *name);
|
||||
|
||||
int
|
||||
settings_option_count(struct settings_category *category);
|
||||
|
||||
struct settings_option *
|
||||
settings_option_get_byindex(struct settings_category *category, int index);
|
||||
|
||||
struct settings_option *
|
||||
settings_option_get(struct settings_category *category, const char *name);
|
||||
|
||||
int
|
||||
settings_option_getint(struct settings_option *option);
|
||||
|
||||
|
||||
bool
|
||||
settings_option_getbool(struct settings_option *option);
|
||||
|
||||
char *
|
||||
settings_option_getstr(struct settings_option *option);
|
||||
|
||||
int
|
||||
settings_option_setint(struct settings_option *option, int value);
|
||||
|
||||
int
|
||||
settings_option_setbool(struct settings_option *option, bool value);
|
||||
|
||||
int
|
||||
settings_option_setstr(struct settings_option *option, const char *value);
|
||||
|
||||
|
||||
#endif /* __SETTINGS_H__ */
|
||||
Reference in New Issue
Block a user