From 0d7ce5264e8c87c522a93172c944541bb205b9d5 Mon Sep 17 00:00:00 2001 From: dec05eba Date: Mon, 25 Jan 2021 16:52:35 +0100 Subject: Limit ytdl video resolution to the largest monitors height --- src/QuickMedia.cpp | 27 ++++++++++++++++++++++++--- 1 file changed, 24 insertions(+), 3 deletions(-) (limited to 'src/QuickMedia.cpp') diff --git a/src/QuickMedia.cpp b/src/QuickMedia.cpp index 41c2c6e..719345d 100644 --- a/src/QuickMedia.cpp +++ b/src/QuickMedia.cpp @@ -80,6 +80,21 @@ static int get_monitor_max_hz(Display *display) { return 60; } +static int get_largest_monitor_height(Display *display) { + XRRScreenResources *screen_res = XRRGetScreenResources(display, DefaultRootWindow(display)); + if(screen_res) { + int max_height = 0; + for(int i = 0; i < screen_res->nmode; ++i) { + max_height = std::max(max_height, (int)screen_res->modes[i].height); + } + XRRFreeScreenResources(screen_res); + if(max_height == 0) + max_height = 1080; + return std::max(max_height, 480); + } + return 1080; +} + static void get_screen_resolution(Display *display, int *width, int *height) { *width = DefaultScreenOfDisplay(display)->width; *height = DefaultScreenOfDisplay(display)->height; @@ -1721,7 +1736,7 @@ namespace QuickMedia { video_url_converted = video_url; } - video_player = std::make_unique(use_tor, no_video, use_system_mpv_config, resume_video, is_matrix, video_event_callback, on_window_create, resources_root); + video_player = std::make_unique(use_tor, no_video, use_system_mpv_config, resume_video, is_matrix, video_event_callback, on_window_create, resources_root, get_largest_monitor_height(disp)); VideoPlayer::Error err = video_player->load_video(video_url_converted.c_str(), window.getSystemHandle(), plugin_name); if(err != VideoPlayer::Error::OK) { std::string err_msg = "Failed to play url: "; @@ -3254,7 +3269,7 @@ namespace QuickMedia { } else { Message *orig_message = static_cast(body_item->userdata); body_item->set_description(message_get_body_remove_formatting(message.get())); - if(message_contains_user_mention(message->body, my_display_name) || message_contains_user_mention(message->body, me->user_id) || (orig_message && orig_message->user == me)) + if(message_contains_user_mention(message->body, my_display_name) || message_contains_user_mention(message->body, me->user_id) || (orig_message && orig_message->user == me && message->user != me)) body_item->set_description_color(sf::Color(255, 100, 100)); else body_item->set_description_color(sf::Color::White); @@ -3289,7 +3304,7 @@ namespace QuickMedia { } else { Message *orig_message = static_cast(body_item->userdata); body_item->set_description(message_get_body_remove_formatting(message.get())); - if(message_contains_user_mention(message->body, my_display_name) || message_contains_user_mention(message->body, me->user_id) || (orig_message && orig_message->user == me)) + if(message_contains_user_mention(message->body, my_display_name) || message_contains_user_mention(message->body, me->user_id) || (orig_message && orig_message->user == me && message->user != me)) body_item->set_description_color(sf::Color(255, 100, 100)); else body_item->set_description_color(sf::Color::White); @@ -3694,6 +3709,8 @@ namespace QuickMedia { body_item->embedded_item->reactions.clear(); if(related_body_item->userdata && static_cast(related_body_item->userdata)->user == me) body_item->set_description_color(sf::Color(255, 100, 100)); + else + body_item->set_description_color(sf::Color::White); body_item->embedded_item_status = FetchStatus::FINISHED_LOADING; return; } @@ -3720,6 +3737,8 @@ namespace QuickMedia { body_item->reactions.clear(); if(message_contains_user_mention(related_body_item->get_description(), current_room->get_user_display_name(me)) || message_contains_user_mention(related_body_item->get_description(), me->user_id)) body_item->set_description_color(sf::Color(255, 100, 100)); + else + body_item->set_description_color(sf::Color::White); event_data->status = FetchStatus::FINISHED_LOADING; event_data->message = static_cast(related_body_item->userdata); body_item->userdata = event_data; @@ -3774,6 +3793,8 @@ namespace QuickMedia { body_item->embedded_item->reactions.clear(); if((related_body_item->userdata && static_cast(related_body_item->userdata)->user == me) || message_contains_user_mention(message->body, current_room->get_user_display_name(me)) || message_contains_user_mention(message->body, me->user_id)) body_item->set_description_color(sf::Color(255, 100, 100)); + else + body_item->set_description_color(sf::Color::White); body_item->embedded_item_status = FetchStatus::FINISHED_LOADING; return; } -- cgit v1.2.3