123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145 |
- #pragma once
- #include <string>
- #include <vector>
- namespace QuickMedia {
- struct SearchConfig {
- int font_size = 16;
- };
- struct TabConfig {
- int font_size = 16;
- };
- struct BodyConfig {
- int title_font_size = 16;
- int author_font_size = 14;
- int description_font_size = 14;
- int timestamp_font_size = 10;
- int reaction_font_size = 14;
- int progress_font_size = 14;
- int replies_font_size = 14;
- int embedded_load_font_size = 14;
- int loading_text_font_size = 30;
- };
- struct InputConfig {
- int font_size = 16;
- };
- struct AnimationConfig {
- float move_speed = 30.0f;
- float loading_icon_speed = 400.0;
- };
- struct VideoConfig {
- int max_height = 0;
- };
- struct LocalMangaConfig {
- std::string directory;
- bool sort_by_name = false;
- bool sort_chapters_by_name = false;
- };
- struct LocalAnimeConfig {
- std::string directory;
- bool sort_by_name = false; // Series
- bool sort_episodes_by_name = true;
- bool auto_group_episodes = true;
- bool recursive = true;
- };
- struct YoutubeSponsorblock {
- bool enable = false;
- std::string api_endpoint = "https://sponsor.ajay.app";
- int min_votes = 0;
- };
- struct YoutubeConfig {
- bool load_progress = true;
- std::string invidious_instance;
- YoutubeSponsorblock sponsorblock;
- };
- struct MatrixConfig {
- std::vector<std::string> known_homeservers;
- std::string gpg_user_id;
- int room_name_font_size = 18;
- int room_description_font_size = 12;
- bool send_read_receipts = true;
- bool send_typing_notifications = true;
- bool appear_online = true;
- bool clear_message_on_escape = true;
- };
- struct PeertubeConfig {
- std::vector<std::string> known_instances;
- };
- struct DownloadConfig {
- std::string video_directory;
- std::string image_directory;
- std::string music_directory;
- std::string file_directory;
- };
- struct FontScaleConfig {
- float latin = 1.0f;
- float latin_bold = 1.0f;
- float latin_monospace = 1.0f;
- float cjk = 1.0f;
- float symbols = 1.0f;
- };
- struct FontConfig {
- std::string latin;
- std::string latin_bold;
- std::string latin_monospace;
- std::string cjk;
- std::string symbols;
- FontScaleConfig scale;
- };
- struct MangadexConfig {
- bool allow_hentai = false;
- };
- struct FileManagerConfig {
- bool grid_view = true;
- };
- struct Config {
- Config() = default;
- Config(const Config&) = delete;
- Config&operator=(const Config&) = delete;
- SearchConfig search;
- TabConfig tab;
- BodyConfig body;
- InputConfig input;
- AnimationConfig animation;
- VideoConfig video;
- LocalMangaConfig local_manga;
- LocalAnimeConfig local_anime;
- YoutubeConfig youtube;
- MatrixConfig matrix;
- PeertubeConfig peertube;
- DownloadConfig download;
- FontConfig font;
- MangadexConfig mangadex;
- FileManagerConfig file_manager;
- bool use_system_fonts = false;
- bool use_system_mpv_config = false;
- std::string system_mpv_profile;
- bool enable_shaders = true;
- std::string theme = "default";
- float scale = 1.0f;
- float font_scale = 1.0f;
- float spacing_scale = 1.0f;
- bool low_latency_mode = false;
- };
- Config& get_config();
- }
|