summaryrefslogtreecommitdiff
path: root/gtk2_ardour/video_monitor.cc
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2013-06-10 17:22:28 +0200
committerRobin Gareus <robin@gareus.org>2013-06-10 19:10:12 +0200
commit717a38982aad73de3003c6d1eab2abcd82e42485 (patch)
tree15c3b1337bfaedeb1092ec12770687edbc0adb5c /gtk2_ardour/video_monitor.cc
parentb203da5eb9deaeef10b6d2c9da4fad25f2e097f8 (diff)
vtl: reduce ardour<>xjadeo communication
avoid duplcate OSD related messages.
Diffstat (limited to 'gtk2_ardour/video_monitor.cc')
-rw-r--r--gtk2_ardour/video_monitor.cc10
1 files 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());
}