vtl: reduce ardour<>xjadeo communication

avoid duplcate OSD related messages.
This commit is contained in:
Robin Gareus 2013-06-10 17:22:28 +02:00
parent b203da5eb9
commit 717a38982a

View File

@ -200,7 +200,9 @@ void
VideoMonitor::send_cmd (int what, int param) VideoMonitor::send_cmd (int what, int param)
{ {
bool osd_update = false; bool osd_update = false;
int prev_osdmode = osdmode;
if (!is_started()) return; if (!is_started()) return;
printf("VideoMonitor::send_cmd %d %d\n", what, param); fflush(stdout);
switch (what) { switch (what) {
case 1: case 1:
if (param) process->write_to_stdin("window ontop on\n"); if (param) process->write_to_stdin("window ontop on\n");
@ -209,17 +211,17 @@ VideoMonitor::send_cmd (int what, int param)
case 2: case 2:
if (param) osdmode |= 2; if (param) osdmode |= 2;
else osdmode &= ~2; else osdmode &= ~2;
osd_update = true; osd_update = (prev_osdmode != osdmode);
break; break;
case 3: case 3:
if (param) osdmode |= 1; if (param) osdmode |= 1;
else osdmode &= ~1; else osdmode &= ~1;
osd_update = true; osd_update = (prev_osdmode != osdmode);
break; break;
case 4: case 4:
if (param) osdmode |= 8; if (param) osdmode |= 8;
else osdmode &= ~8; else osdmode &= ~8;
osd_update = true; osd_update = (prev_osdmode != osdmode);
break; break;
case 5: case 5:
if (param) process->write_to_stdin("window zoom on\n"); if (param) process->write_to_stdin("window zoom on\n");
@ -235,7 +237,7 @@ VideoMonitor::send_cmd (int what, int param)
default: default:
break; break;
} }
if (osd_update >= 0) { if (osd_update) {
std::ostringstream osstream; osstream << "osd mode " << osdmode << "\n"; std::ostringstream osstream; osstream << "osd mode " << osdmode << "\n";
process->write_to_stdin(osstream.str()); process->write_to_stdin(osstream.str());
} }