view include/core/config.h @ 137:69db40272acd

dep/animia: [WIP] huge refactor this WILL NOT compile, because lots of code has been changed and every API in the original codebase has been removed. note that this api setup is not exactly permanent...
author Paper <mrpapersonic@gmail.com>
date Fri, 10 Nov 2023 13:52:47 -0500
parents 275da698697d
children 6fdf0632c003
line wrap: on
line source

#ifndef __core__config_h
#define __core__config_h

#include "core/anime.h"
#include "gui/theme.h"
#include "gui/locale.h"
#include <string>
#include <vector>

class Config {
	public:
		int Load();
		int Save() const;

		Anime::Services service;
		Theme::Theme theme;
		Locale::Locale locale;

		struct {
			public:
				Anime::TitleLanguage language;
				bool display_aired_episodes;
				bool display_available_episodes;
				bool highlight_anime_if_available;
				bool highlighted_anime_above_others;
		} anime_list;

		/* these should preferably be in an
		   "auth" struct... */
		struct {
			public:
				struct {
					public:
						std::string auth_token;
						std::string username;
						int user_id;
				} anilist;
		} auth;

		struct {
			public:
				bool detect_media_players;
				//bool detect_streaming_media;
		} recognition;

		struct {
			public:
				std::string feed_link;
		} torrents;
};

#define WIDEIFY_EX(x) L##x
#define WIDEIFY(x)    WIDEIFY_EX(x)

/* only on these platforms keep this uppercase.
   this will not remove compatibility with older
   versions, since these platforms are case insensitive
   (on macOS, only by default) */
#if (defined(WIN32) || defined(MACOSX))
#define CONFIG_DIR    "Minori"
#else
#define CONFIG_DIR    "minori"
#endif

#define CONFIG_WDIR   WIDEIFY(CONFIG_DIR)
#define CONFIG_NAME   "config.ini"
#define CONFIG_WNAME  WIDEIFY(CONFIG_NAME)

#define MAX_LINE_LENGTH 256

#endif // __core__config_h