From d4b014188ed36d2007d7bb7886ebf417ca60c5f3 Mon Sep 17 00:00:00 2001 From: brunoherbelin Date: Wed, 30 Sep 2020 22:32:29 +0200 Subject: [PATCH] Fixed DeviceSource pannel config --- ImGuiVisitor.cpp | 30 ++++++++++++++++++++++++++++-- ImGuiVisitor.h | 1 + 2 files changed, 29 insertions(+), 2 deletions(-) diff --git a/ImGuiVisitor.cpp b/ImGuiVisitor.cpp index 5083bd9..abbae14 100644 --- a/ImGuiVisitor.cpp +++ b/ImGuiVisitor.cpp @@ -17,6 +17,7 @@ #include "MediaSource.h" #include "SessionSource.h" #include "PatternSource.h" +#include "DeviceSource.h" #include "Settings.h" #include "Mixer.h" @@ -355,12 +356,12 @@ void ImGuiVisitor::visit (CloneSource& s) void ImGuiVisitor::visit (PatternSource& s) { - ImGuiToolkit::Icon(13,5); + ImGuiToolkit::Icon(12,5); ImGui::SameLine(0, 10); ImGui::Text("Pattern"); ImGui::SetNextItemWidth(IMGUI_RIGHT_ALIGN); - if (ImGui::BeginCombo("##Pattern", Pattern::pattern_types[s.pattern()->type()].c_str()) ) + if (ImGui::BeginCombo("##Patterns", Pattern::pattern_types[s.pattern()->type()].c_str()) ) { for (int p = 0; p < Pattern::pattern_types.size(); ++p){ if (ImGui::Selectable( Pattern::pattern_types[p].c_str() )) { @@ -371,3 +372,28 @@ void ImGuiVisitor::visit (PatternSource& s) } } +void ImGuiVisitor::visit (DeviceSource& s) +{ + ImGuiToolkit::Icon(2,14); + ImGui::SameLine(0, 10); + ImGui::Text("Device"); + + ImGui::SetNextItemWidth(IMGUI_RIGHT_ALIGN); + if (ImGui::BeginCombo("##Hardware", s.device().c_str())) + { + for (int d = 0; d < Device::manager().numDevices(); ++d){ + std::string namedev = Device::manager().name(d); + if (ImGui::Selectable( namedev.c_str() )) { + s.setDevice(namedev); + } + } + ImGui::EndCombo(); + } + DeviceConfigSet confs = Device::manager().config( Device::manager().index(s.device().c_str())); + if ( !confs.empty()) { + DeviceConfig best = *confs.rbegin(); + float fps = static_cast(best.fps_numerator) / static_cast(best.fps_denominator); + ImGui::Text("%s %s %dx%d@%.1ffps", best.stream.c_str(), best.format.c_str(), best.width, best.height, fps); + } +} + diff --git a/ImGuiVisitor.h b/ImGuiVisitor.h index 31174dd..0f2dac1 100644 --- a/ImGuiVisitor.h +++ b/ImGuiVisitor.h @@ -28,6 +28,7 @@ public: void visit (RenderSource& s) override; void visit (CloneSource& s) override; void visit (PatternSource& s) override; + void visit (DeviceSource& s) override; }; #endif // IMGUIVISITOR_H