From 6dd08c89bc19aa5cb3aa40e264276b8939ed9412 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lars=20Kr=C3=A4mer?= <24323470+larskraemer@users.noreply.github.com> Date: Thu, 2 Jul 2020 20:09:17 +0200 Subject: [PATCH] Use fallback only if no player was requested; Request no player by default --- src/dbus.cpp | 41 +++++++++++++++++++++++++---------------- src/overlay_params.cpp | 2 +- 2 files changed, 26 insertions(+), 17 deletions(-) diff --git a/src/dbus.cpp b/src/dbus.cpp index 00139a3c..26d1ecaf 100644 --- a/src/dbus.cpp +++ b/src/dbus.cpp @@ -157,7 +157,9 @@ bool dbus_manager::get_media_player_metadata(metadata& meta, std::string name) { bool dbus_manager::init(const std::string& requested_player) { if (m_inited) return true; - m_requested_player = "org.mpris.MediaPlayer2." + requested_player; + if(not requested_player.empty()){ + m_requested_player = "org.mpris.MediaPlayer2." + requested_player; + } if (!m_dbus_ldr.IsLoaded() && !m_dbus_ldr.Load("libdbus-1.so.3")) { std::cerr << "MANGOHUD: Could not load libdbus-1.so.3\n"; @@ -191,22 +193,29 @@ bool dbus_manager::select_active_player() { auto old_active_player = m_active_player; m_active_player = ""; metadata meta{}; - // If the requested player is available, use it - if (m_name_owners.count(m_requested_player) > 0) { - m_active_player = m_requested_player; - std::cerr << "Selecting requested player: " << m_requested_player - << "\n"; - get_media_player_metadata(meta, m_active_player); + if(not m_requested_player.empty()){ + std::cerr << "Requested player: " << m_requested_player << "\n"; + // If the requested player is available, use it + if (m_name_owners.count(m_requested_player) > 0) { + m_active_player = m_requested_player; + std::cerr << "Selecting requested player: " << m_requested_player + << "\n"; + get_media_player_metadata(meta, m_active_player); + } } - - // Else, use any player that is currently playing.. - if (m_active_player.empty()) { - for (const auto& entry : m_name_owners) { - const auto& name = std::get<0>(entry); - get_media_player_metadata(meta, name); - if (meta.playing) { - m_active_player = name; - std::cerr << "Selecting fallback player: " << name << "\n"; + else { + // If no player is requested, use any player that is currently playing + if (m_active_player.empty()) { + for (const auto& entry : m_name_owners) { + const auto& name = std::get<0>(entry); + get_media_player_metadata(meta, name); + if (meta.playing) { + m_active_player = name; + std::cerr << "Selecting fallback player: " << name << "\n"; + } + else { + meta = {}; + } } } } diff --git a/src/overlay_params.cpp b/src/overlay_params.cpp index 57396163..5e6e83b7 100644 --- a/src/overlay_params.cpp +++ b/src/overlay_params.cpp @@ -423,7 +423,7 @@ parse_overlay_config(struct overlay_params *params, params->background_color = 0x020202; params->text_color = 0xffffff; params->media_player_color = 0xffffff; - params->media_player_name = "spotify"; + params->media_player_name = ""; params->font_scale = 1.0f; params->font_scale_media_player = 0.55f; params->log_interval = 100;