view include/core/config.h @ 118:39521c47c7a3

*: another huge megacommit, SORRY The torrents page works a lot better now Added the edit option to the anime list right click menu Vectorized currently playing files Available player and extensions are now loaded at runtime from files in (dotpath)/players.json and (dotpath)/extensions.json These paths are not permanent and will likely be moved to (dotpath)/recognition ... ... ...
author Paper <mrpapersonic@gmail.com>
date Tue, 07 Nov 2023 23:40:54 -0500
parents 254b1d2b7096
children 275da698697d
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:
				std::string auth_token;
				std::string username;
				int user_id;
		} anilist;

		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