diff options
author | Robin Gareus <robin@gareus.org> | 2013-06-10 17:22:28 +0200 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2013-06-10 19:10:12 +0200 |
commit | 717a38982aad73de3003c6d1eab2abcd82e42485 (patch) | |
tree | 15c3b1337bfaedeb1092ec12770687edbc0adb5c /gtk2_ardour/video_monitor.cc | |
parent | b203da5eb9deaeef10b6d2c9da4fad25f2e097f8 (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.cc | 10 |
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()); } |