syntax = "proto3"; option java_package = "com.github.damontecres.wholphin.preferences"; option java_multiple_files = true; enum ShowNextUpWhen{ END_OF_PLAYBACK = 0; DURING_CREDITS = 1; NEXT_UP_NEVER = 2; } enum SkipSegmentBehavior{ IGNORE = 0; AUTO_SKIP = 1; ASK_TO_SKIP = 2; } enum PrefContentScale{ FIT = 0; NONE = 1; CROP = 2; FILL = 3; Fill_WIDTH = 4; FILL_HEIGHT = 5; } enum MediaExtensionStatus{ MES_FALLBACK = 0; MES_PREFERRED = 1; MES_DISABLED = 2; } enum PlayerBackend{ EXO_PLAYER = 0; MPV = 1; PREFER_MPV = 2; EXTERNAL_PLAYER = 3; } message MpvOptions{ bool enable_hardware_decoding = 1; bool use_gpu_next = 2; } enum AssPlaybackMode{ ASS_LIBASS = 0; ASS_EXO_PLAYER = 1; ASS_TRANSCODE = 2; } message PlaybackOverrides{ bool ac3_supported = 1; bool downmix_stereo = 2; bool direct_play_ass = 3 [deprecated = true]; bool direct_play_pgs = 4; MediaExtensionStatus media_extensions_enabled = 5; bool direct_play_dolby_vision_e_l = 6; bool decode_av1 = 7; AssPlaybackMode ass_playback_mode = 8; } message PlaybackPreferences { int64 skip_forward_ms = 1; int64 skip_back_ms = 2; int64 controller_timeout_ms = 3; int32 seek_bar_steps = 4; bool show_debug_info = 5; bool auto_play_next = 6; int64 auto_play_next_delay_seconds = 7; int64 skip_back_on_resume_seconds = 8; int64 max_bitrate = 9; SkipSegmentBehavior skip_intros = 10; SkipSegmentBehavior skip_outros = 11; SkipSegmentBehavior skip_commercials = 12; SkipSegmentBehavior skip_recaps = 13; SkipSegmentBehavior skip_previews = 14; PlaybackOverrides overrides = 15; int64 pass_out_protection_ms = 16; PrefContentScale global_content_scale = 17; ShowNextUpWhen show_next_up_when = 18; bool one_click_pause = 19; PlayerBackend player_backend = 20; MpvOptions mpv_options = 21; bool refresh_rate_switching = 22; bool resolution_switching = 23; string external_player = 24; bool cinema_mode = 25; } message HomePagePreferences{ int32 max_items_per_row = 1; bool enable_rewatching_next_up = 2; bool combine_continue_next = 3 [deprecated = true]; int32 max_days_next_up = 4; bool click_to_play = 5; } enum ThemeSongVolume { DISABLED = 0; LOWEST = 1; LOW = 2; MEDIUM = 3; HIGH = 4; HIGHEST = 5; } enum AppThemeColors { PURPLE = 0; BLUE = 1; GREEN = 2; ORANGE = 3; BOLD_BLUE = 4; OLED_BLACK = 5; } enum EdgeStyle{ EDGE_NONE = 0; EDGE_SOLID = 1; EDGE_SHADOW = 2; } enum BackgroundStyle{ BG_NONE = 0; BG_WRAP = 1; BG_BOXED = 2; } message SubtitlePreferences{ int32 font_size = 1; int32 font_color = 2; int32 font_opacity = 3; int32 edge_color = 4; EdgeStyle edge_style = 5; int32 background_color = 6; int32 background_opacity = 7; BackgroundStyle background_style = 8; bool font_bold = 9; bool font_italic = 10; int32 margin = 11; int32 edge_thickness = 12; int32 image_subtitle_opacity = 13; } message LiveTvPreferences { bool show_header = 1; bool favorite_channels_at_beginning = 2; bool sort_by_recently_watched = 3; bool color_code_programs = 4; } enum BackdropStyle{ BACKDROP_DYNAMIC_COLOR = 0; BACKDROP_IMAGE_ONLY = 1; BACKDROP_NONE = 2; } message ScreensaverPreferences{ int64 start_delay = 1; int64 duration = 2; bool animate = 3; int32 max_age_filter = 4; bool enabled = 5; repeated string item_types = 6; bool show_clock = 7; } message SearchPreferences { bool combined_search_results = 1; bool show_voice_search_button = 2; } enum DisplayToggle{ OFFICIAL_RATING = 0; CRITIC_RATING = 1; COMMUNITY_RATING = 2; } enum DisplaySizeLevel{ DEFAULT = 0; EXTRA_SMALL = 1; SMALL = 2; LARGE = 3; } message InterfacePreferences { ThemeSongVolume play_theme_songs = 1; bool remember_selected_tab = 2; map remembered_tabs = 3; AppThemeColors app_theme_colors = 4; bool nav_drawer_switch_on_focus = 5; bool show_clock = 6; SubtitlePreferences subtitles_preferences = 7; LiveTvPreferences live_tv_preferences = 8; BackdropStyle backdrop_style = 9; SubtitlePreferences hdr_subtitles_preferences = 10; ScreensaverPreferences screensaver_preference = 11; bool enable_media_management = 12; bool show_logos = 13; SearchPreferences search_preferences = 14; repeated DisplayToggle display_toggles = 15; DisplaySizeLevel text_size_level = 19; DisplaySizeLevel card_size_level = 20; DisplaySizeLevel spacing_level = 21; } message AdvancedPreferences { int64 image_disk_cache_size_bytes = 1; } message PhotoPreferences{ int64 slideshow_duration = 1; bool slideshow_play_videos = 2; } message MusicPreferences { bool show_lyrics = 1; bool show_visualizer = 2; bool show_album_Art = 3; bool show_backdrop = 4; } message AppPreferences { // The currently signed in server and user IDs, mostly for restoring a session string current_server_id = 1; string current_user_id = 2; PlaybackPreferences playback_preferences = 3; HomePagePreferences home_page_preferences = 4; InterfacePreferences interface_preferences = 5; bool auto_check_for_updates = 6; string update_url = 7; bool send_crash_reports = 8; bool debug_logging = 9; AdvancedPreferences advanced_preferences = 10; bool sign_in_automatically = 11; PhotoPreferences photo_preferences = 12; MusicPreferences music_preferences = 13; }