From 717a38982aad73de3003c6d1eab2abcd82e42485 Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Mon, 10 Jun 2013 17:22:28 +0200 Subject: [PATCH] vtl: reduce ardour<>xjadeo communication avoid duplcate OSD related messages. --- gtk2_ardour/video_monitor.cc | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/gtk2_ardour/video_monitor.cc b/gtk2_ardour/video_monitor.cc index 2cefb7946c..17ce02e0b1 100644 --- a/gtk2_ardour/video_monitor.cc +++ b/gtk2_ardour/video_monitor.cc @@ -200,7 +200,9 @@ void VideoMonitor::send_cmd (int what, int param) { bool osd_update = false; + int prev_osdmode = osdmode; if (!is_started()) return; + printf("VideoMonitor::send_cmd %d %d\n", what, param); fflush(stdout); switch (what) { case 1: if (param) process->write_to_stdin("window ontop on\n"); @@ -209,17 +211,17 @@ VideoMonitor::send_cmd (int what, int param) case 2: if (param) osdmode |= 2; else osdmode &= ~2; - osd_update = true; + osd_update = (prev_osdmode != osdmode); break; case 3: if (param) osdmode |= 1; else osdmode &= ~1; - osd_update = true; + osd_update = (prev_osdmode != osdmode); break; case 4: if (param) osdmode |= 8; else osdmode &= ~8; - osd_update = true; + osd_update = (prev_osdmode != osdmode); break; case 5: if (param) process->write_to_stdin("window zoom on\n"); @@ -235,7 +237,7 @@ VideoMonitor::send_cmd (int what, int param) default: break; } - if (osd_update >= 0) { + if (osd_update) { std::ostringstream osstream; osstream << "osd mode " << osdmode << "\n"; process->write_to_stdin(osstream.str()); }