diff --git a/InfoVisitor.cpp b/InfoVisitor.cpp index f1702c7..edcd02b 100644 --- a/InfoVisitor.cpp +++ b/InfoVisitor.cpp @@ -196,9 +196,9 @@ void InfoVisitor::visit (CloneSource& s) std::ostringstream oss; if (!brief_) { - oss << "Clone of '" << s.origin()->name() << "' ("; + oss << "Clone of '" << s.origin()->name() << "'" << std::endl; oss << CloneSource::cloning_provenance_label[s.cloningProvenance()]; - oss << ") " << std::endl; + oss << ", " << (int)(s.delay()*100.0) << "ms delay " << std::endl; } if (s.frame()){ @@ -235,7 +235,7 @@ void InfoVisitor::visit (DeviceSource& s) std::ostringstream oss; - DeviceConfigSet confs = Device::manager().config( Device::manager().index(s.device().c_str())); + DeviceConfigSet confs = Device::manager().config( Device::manager().index(s.device())); if ( !confs.empty()) { DeviceConfig best = *confs.rbegin(); float fps = static_cast(best.fps_numerator) / static_cast(best.fps_denominator); @@ -247,6 +247,7 @@ void InfoVisitor::visit (DeviceSource& s) } else { oss << s.device() << std::endl; + oss << Device::manager().description( Device::manager().index(s.device())) << std::endl; oss << best.width << " x " << best.height << ", "; oss << best.stream << " " << best.format << ", "; oss << std::fixed << std::setprecision(1) << fps << " fps"; @@ -271,9 +272,10 @@ void InfoVisitor::visit (NetworkSource& s) oss << "IP " << ns->serverAddress(); } else { - oss << s.connection() << " (IP " << ns->serverAddress() << ")" << std::endl; - oss << ns->resolution().x << " x " << ns->resolution().y << ", "; + oss << s.connection() << std::endl; oss << NetworkToolkit::protocol_name[ns->protocol()]; + oss << ", IP " << ns->serverAddress() << std::endl; + oss << ns->resolution().x << " x " << ns->resolution().y << " "; } information_ = oss.str(); diff --git a/UserInterfaceManager.cpp b/UserInterfaceManager.cpp index 4d24959..7c81239 100644 --- a/UserInterfaceManager.cpp +++ b/UserInterfaceManager.cpp @@ -3771,13 +3771,6 @@ void OutputPreview::Render() ImGui::SetNextItemWidth(IMGUI_RIGHT_ALIGN); ImGui::MenuItem( "Lower bandwidth (H264)", NULL, &Settings::application.stream_low_bandwidth); - static char dummy_str[512]; - sprintf(dummy_str, "%s", Connection::manager().info().name.c_str()); - ImGui::SetNextItemWidth(IMGUI_RIGHT_ALIGN); - ImGui::PushStyleColor(ImGuiCol_FrameBg, ImVec4(0.14f, 0.14f, 0.14f, 0.9f)); - ImGui::InputText("My ID", dummy_str, IM_ARRAYSIZE(dummy_str), ImGuiInputTextFlags_ReadOnly); - ImGui::PopStyleColor(1); - std::vector ls = Streaming::manager().listStreams(); if (ls.size()>0) { ImGui::Separator(); @@ -3799,18 +3792,27 @@ void OutputPreview::Render() ImVec2 draw_pos = ImGui::GetCursorScreenPos(); // preview image ImGui::Image((void*)(intptr_t)output->texture(), imagesize); - // tooltip overlay + // raise window on double clic + if (ImGui::IsMouseDoubleClicked(0) ) + Rendering::manager().outputWindow().show(); + + /// + /// Info overlays + /// + ImGui::SetCursorScreenPos(draw_pos + ImVec2(imagesize.x - ImGui::GetTextLineHeightWithSpacing(), 6)); + ImGui::Text(ICON_FA_INFO_CIRCLE); if (ImGui::IsItemHovered()) { ImDrawList* draw_list = ImGui::GetWindowDrawList(); - draw_list->AddRectFilled(draw_pos, ImVec2(draw_pos.x + width, draw_pos.y + ImGui::GetTextLineHeightWithSpacing()), IMGUI_COLOR_OVERLAY); + const float h = (Settings::application.accept_connections ? 2.f : 1.f) * ImGui::GetTextLineHeightWithSpacing(); + draw_list->AddRectFilled(draw_pos, ImVec2(draw_pos.x + width, draw_pos.y + h), IMGUI_COLOR_OVERLAY); ImGui::SetCursorScreenPos(draw_pos); ImGui::Text(" %d x %d px, %.d fps", output->width(), output->height(), int(Mixer::manager().fps()) ); - - // raise window on double clic - if (ImGui::IsMouseDoubleClicked(0) ) - Rendering::manager().outputWindow().show(); + if (Settings::application.accept_connections){ + ImGui::Text( " " ICON_FA_SHARE_ALT " %s", Connection::manager().info().name.c_str() ); + } } + const float r = ImGui::GetTextLineHeightWithSpacing(); // recording indicator overlay if (video_recorder_) diff --git a/VideoBroadcast.cpp b/VideoBroadcast.cpp index e69de29..a0b9e13 100644 --- a/VideoBroadcast.cpp +++ b/VideoBroadcast.cpp @@ -0,0 +1,6 @@ +#include "VideoBroadcast.h" + +VideoBroadcast::VideoBroadcast() +{ + +} diff --git a/VideoBroadcast.h b/VideoBroadcast.h index e69de29..1cfde1c 100644 --- a/VideoBroadcast.h +++ b/VideoBroadcast.h @@ -0,0 +1,28 @@ +#ifndef VIDEOBROADCAST_H +#define VIDEOBROADCAST_H + +#include "NetworkToolkit.h" +#include "FrameGrabber.h" + +#define BROADCAST_FPS 30 + +class VideoBroadcast : public FrameGrabber +{ + friend class Streaming; + + std::string init(GstCaps *caps) override; + void terminate() override; + void stop() override; + + // connection information + int port_; + std::atomic stopped_; + +public: + + VideoBroadcast(); + virtual ~VideoBroadcast() {} + std::string info() const override; +}; + +#endif // VIDEOBROADCAST_H