Add `media_player` to HudElements

pull/379/head
jackun 4 years ago committed by FlightlessMango
parent ee7f7058c2
commit dbfbd05ecf

@ -344,6 +344,22 @@ void HudElements::frame_timing(){
}
}
void HudElements::media_player(){
#ifdef HAVE_DBUS
ImGui::TableNextRow();
uint32_t f_idx = (HUDElements.sw_stats->n_frames - 1) % ARRAY_SIZE(HUDElements.sw_stats->frames_stats);
uint64_t frame_timing = HUDElements.sw_stats->frames_stats[f_idx].stats[OVERLAY_PLOTS_frame_timing];
ImFont scaled_font = *HUDElements.sw_stats->font_text;
scaled_font.Scale = HUDElements.params->font_scale_media_player;
ImGui::PushFont(&scaled_font);
{
std::lock_guard<std::mutex> lck(main_metadata.mtx);
render_mpris_metadata(*HUDElements.params, main_metadata, frame_timing, true);
}
ImGui::PopFont();
#endif
}
void HudElements::sort_elements(std::string string){
if (string == "version")
ordered_functions.push_back(&version);
@ -375,6 +391,8 @@ void HudElements::sort_elements(std::string string){
ordered_functions.push_back(wine);
if (string == "frame_timing")
ordered_functions.push_back(frame_timing);
if (string == "media_player")
ordered_functions.push_back(media_player);
}
HudElements HUDElements;
HudElements HUDElements;

@ -28,6 +28,7 @@ class HudElements{
static void arch();
static void wine();
static void frame_timing();
static void media_player();
};
extern HudElements HUDElements;
extern HudElements HUDElements;

@ -118,4 +118,9 @@ void convert_colors(bool do_conv, struct swapchain_stats& sw_stats, struct overl
void right_aligned_text(ImVec4& col, float off_x, const char *fmt, ...);
ImVec4 change_on_load_temp (struct LOAD_DATA& data, int current);
float get_time_stat(void *_data, int _idx);
#ifdef HAVE_DBUS
void render_mpris_metadata(struct overlay_params& params, mutexed_metadata& meta, uint64_t frame_timing, bool is_main);
#endif
#endif //MANGOHUD_OVERLAY_H

@ -939,8 +939,6 @@ void render_imgui(swapchain_stats& data, struct overlay_params& params, ImVec2&
HUDElements.is_vulkan = is_vulkan;
ImGui::GetIO().FontGlobalScale = params.font_scale;
if(not logger) logger = std::make_unique<Logger>(&params);
uint32_t f_idx = (data.n_frames - 1) % ARRAY_SIZE(data.frames_stats);
uint64_t frame_timing = data.frames_stats[f_idx].stats[OVERLAY_PLOTS_frame_timing];
static float ralign_width = 0, old_scale = 0;
window_size = ImVec2(params.width, params.height);
unsigned height = ImGui::GetIO().DisplaySize.y;
@ -958,18 +956,6 @@ void render_imgui(swapchain_stats& data, struct overlay_params& params, ImVec2&
func();
ImGui::EndTable();
#ifdef HAVE_DBUS
ImFont scaled_font = *data.font_text;
scaled_font.Scale = params.font_scale_media_player;
ImGui::PushFont(&scaled_font);
{
std::lock_guard<std::mutex> lck(main_metadata.mtx);
render_mpris_metadata(params, main_metadata, frame_timing, true);
}
//render_mpris_metadata(params, generic_mpris, frame_timing, false);
ImGui::PopFont();
#endif
if(logger->is_active())
ImGui::GetWindowDrawList()->AddCircleFilled(ImVec2(data.main_window_pos.x + window_size.x - 15, data.main_window_pos.y + 15), 10, params.engine_color, 20);
window_size = ImVec2(window_size.x, ImGui::GetCursorPosY() + 10.0f);

Loading…
Cancel
Save