diff --git a/ImGuiVisitor.cpp b/ImGuiVisitor.cpp index ed5493a..4858afe 100644 --- a/ImGuiVisitor.cpp +++ b/ImGuiVisitor.cpp @@ -399,8 +399,11 @@ void ImGuiVisitor::visit (Source& s) // toggle enable/disable image processing bool on = s.imageProcessingEnabled(); ImGui::SetCursorPos( ImVec2(preview_width + 15, pos.y -ImGui::GetFrameHeight() ) ); - if ( ImGuiToolkit::ButtonToggle(ICON_FA_MAGIC, &on) ) - Action::manager().store( on ? "Enable Filter" : "Disable Filter", s.id()); + if ( ImGuiToolkit::ButtonToggle(ICON_FA_MAGIC, &on) ){ + std::ostringstream oss; + oss << s.name() << ": " << ( on ? "Enable Filter" : "Disable Filter"); + Action::manager().store(oss.str(), s.id()); + } s.setImageProcessingEnabled(on); ImGui::SetCursorPos(pos); // ...come back @@ -445,8 +448,11 @@ void ImGuiVisitor::visit (SessionSource& s) ImGui::SetNextItemWidth(IMGUI_RIGHT_ALIGN); if (ImGui::SliderFloat("Fading", &f, 0.0, 1.0, f < 0.001 ? "None" : "%.2f") ) s.session()->setFading(f); - if (ImGui::IsItemDeactivatedAfterEdit()) - Action::manager().store("Fading", s.id()); + if (ImGui::IsItemDeactivatedAfterEdit()){ + std::ostringstream oss; + oss << s.name() << ": Fading " << std::setprecision(2) << f; + Action::manager().store(oss.str(), s.id()); + } if ( ImGui::Button( ICON_FA_FILE_UPLOAD " Make Current", ImVec2(IMGUI_RIGHT_ALIGN, 0)) ) Mixer::manager().set( s.detach() ); @@ -486,7 +492,9 @@ void ImGuiVisitor::visit (PatternSource& s) for (int p = 0; p < Pattern::pattern_types.size(); ++p){ if (ImGui::Selectable( Pattern::pattern_types[p].c_str() )) { s.setPattern(p, s.pattern()->resolution()); - Action::manager().store("Pattern "+Pattern::pattern_types[p], s.id()); + std::ostringstream oss; + oss << s.name() << ": Pattern " << Pattern::pattern_types[p]; + Action::manager().store(oss.str(), s.id()); } } ImGui::EndCombo(); @@ -506,7 +514,9 @@ void ImGuiVisitor::visit (DeviceSource& s) std::string namedev = Device::manager().name(d); if (ImGui::Selectable( namedev.c_str() )) { s.setDevice(namedev); - Action::manager().store("Device "+namedev, s.id()); + std::ostringstream oss; + oss << s.name() << " Device " << namedev; + Action::manager().store(oss.str(), s.id()); } } ImGui::EndCombo(); diff --git a/MediaSource.cpp b/MediaSource.cpp index fe6c3f8..7cc414e 100644 --- a/MediaSource.cpp +++ b/MediaSource.cpp @@ -105,7 +105,7 @@ void MediaSource::init() // done init initialized_ = true; - Log::Info("Source '%s' linked to Media %s.", name().c_str(), mediaplayer()->uri().c_str()); + Log::Info("Source '%s' linked to Media %s.", name().c_str(), std::to_string(mediaplayer_->id()).c_str()); // force update of activation mode active_ = true; diff --git a/Mixer.cpp b/Mixer.cpp index a370cf2..f1f37c2 100644 --- a/Mixer.cpp +++ b/Mixer.cpp @@ -272,7 +272,8 @@ Source * Mixer::createSourceStream(const std::string &gstreamerpipeline) s->setDescription(gstreamerpipeline); // propose a new name based on pattern name - renameSource(s, gstreamerpipeline.substr(0,10)); + std::string name = gstreamerpipeline.substr(0, gstreamerpipeline.find(" ")); + renameSource(s, name); return s; } @@ -284,7 +285,9 @@ Source * Mixer::createSourcePattern(int pattern, glm::ivec2 res) s->setPattern(pattern, res); // propose a new name based on pattern name - renameSource(s, Pattern::pattern_types[pattern]); + std::string name = Pattern::pattern_types[pattern]; + name = name.substr(0, name.find(" ")); + renameSource(s, name); return s; } @@ -295,7 +298,8 @@ Source * Mixer::createSourceDevice(const std::string &namedevice) Source *s = Device::manager().createSource(namedevice); // propose a new name based on pattern name - renameSource(s, namedevice); + std::string name = namedevice.substr(0, namedevice.find(" ")); + renameSource(s, name); return s; } @@ -319,7 +323,7 @@ Source * Mixer::createSourceClone(const std::string &namesource) // create a source s = (*origin)->clone(); - // get new name + // propose new name (this automatically increments name) renameSource(s, (*origin)->name()); } diff --git a/PatternSource.cpp b/PatternSource.cpp index f444a44..66f5c76 100644 --- a/PatternSource.cpp +++ b/PatternSource.cpp @@ -62,8 +62,8 @@ const char* pattern_internal_[24] = { "videotestsrc pattern=black", "videotestsrc pattern=black ! clockoverlay halignment=center valignment=center font-desc=\"Sans, 72\" " }; -std::vector Pattern::pattern_types = { "100% Black", - "100% White", +std::vector Pattern::pattern_types = { "Black", + "White", "Gradient", "Checkers 1x1 px", "Checkers 8x8 px", @@ -71,18 +71,18 @@ std::vector Pattern::pattern_types = { "100% Black", "Lissajous", "Pinwheel", "Spokes", - "100% Red", - "100% Green", - "100% Blue", + "Red", + "Green", + "Blue", "Color bars", - "Color grid", + "RGB grid", "SMPTE test pattern", "Television snow", "Blink", "Fresnel zone plate", "Chroma zone plate", - "Moving bar", - "Moving ball", + "Bar moving", + "Ball bouncing", "Blob", "Timer", "Clock" @@ -107,7 +107,7 @@ void Pattern::open( uint pattern, glm::ivec2 res ) // there is always a special case... switch(type_) { - case 16: + case 18: case 17: { std::ostringstream oss; diff --git a/StreamSource.cpp b/StreamSource.cpp index 25bd06d..5dc4325 100644 --- a/StreamSource.cpp +++ b/StreamSource.cpp @@ -88,7 +88,7 @@ void StreamSource::init() // done init initialized_ = true; - Log::Info("Source '%s' linked to Stream %d.", name().c_str(), stream_->id()); + Log::Info("Source '%s' linked to Stream %s", name().c_str(), std::to_string(stream_->id()).c_str()); // force update of activation mode active_ = true; diff --git a/View.cpp b/View.cpp index ea91a67..9aac647 100644 --- a/View.cpp +++ b/View.cpp @@ -12,6 +12,7 @@ // memmove #include #include +#include #include #include "View.h" @@ -123,6 +124,8 @@ void View::initiate() void View::terminate() { + std::regex r("\\n"); + current_action_ = std::regex_replace(current_action_, r, " "); Action::manager().store(current_action_, current_id_); current_action_ = ""; current_id_ = 0; @@ -502,7 +505,7 @@ View::Cursor MixingView::grab (Source *s, glm::vec2 from, glm::vec2 to, std::pai info << "Inactive"; // store action in history - current_action_ = s->name() + " " + info.str(); + current_action_ = s->name() + ": " + info.str(); current_id_ = s->id(); return Cursor(Cursor_ResizeAll, info.str() ); @@ -1174,7 +1177,7 @@ View::Cursor GeometryView::grab (Source *s, glm::vec2 from, glm::vec2 to, std::p s->touch(); // store action in history - current_action_ = s->name() + " " + info.str(); + current_action_ = s->name() + ": " + info.str(); current_id_ = s->id(); // update cursor @@ -1355,7 +1358,7 @@ View::Cursor LayerView::grab (Source *s, glm::vec2 from, glm::vec2 to, std::pair info << "Depth " << std::fixed << std::setprecision(2) << d; // store action in history - current_action_ = s->name() + " " + info.str(); + current_action_ = s->name() + ": " + info.str(); current_id_ = s->id(); return Cursor(Cursor_ResizeNESW, info.str() );