1 /*
2 * This file is part of bino, a 3D video player.
3 *
4 * Copyright (C) 2010, 2011, 2012, 2013, 2014
5 * Martin Lambers <marlam@marlam.de>
6 * Frédéric Devernay <Frederic.Devernay@inrialpes.fr>
7 * Joe <cuchac@email.cz>
8 * Daniel Schaal <farbing@web.de>
9 * D. Matz <bandregent@yahoo.de>
10 * Binocle <http://binocle.com> (author: Olivier Letz <oletz@binocle.com>)
11 * Frédéric Bour <frederic.bour@lakaban.net>
12 *
13 * This program is free software; you can redistribute it and/or modify
14 * it under the terms of the GNU General Public License as published by
15 * the Free Software Foundation; either version 3 of the License, or
16 * (at your option) any later version.
17 *
18 * This program is distributed in the hope that it will be useful,
19 * but WITHOUT ANY WARRANTY; without even the implied warranty of
20 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21 * GNU General Public License for more details.
22 *
23 * You should have received a copy of the GNU General Public License
24 * along with this program. If not, see <http://www.gnu.org/licenses/>.
25 */
26
27 #include "config.h"
28
29 #include <QLabel>
30 #include <QComboBox>
31 #include <QGridLayout>
32
33 #include "sdioutputdialog.h"
34
35 #include "gui_common.h"
36
37 #if HAVE_LIBXNVCTRL
38 #include <NVCtrl/NVCtrl.h>
39 #include "NvSDIutils.h"
40 #endif // HAVE_LIBXNVCTRL
41
sdi_output_dialog(QWidget * parent)42 sdi_output_dialog::sdi_output_dialog(QWidget *parent) : QWidget(parent),
43 _lock(false)
44 {
45 #if HAVE_LIBXNVCTRL
46
47 QLabel *sdi_output_format_label = new QLabel(_("SDI Output Format:"));
48 sdi_output_format_label->setToolTip(_("<p>Select output format used for SDI output.</p>"));
49 _sdi_output_format_combobox = new QComboBox();
50 _sdi_output_format_combobox->setToolTip(sdi_output_format_label->toolTip());
51 for (int i=NV_CTRL_GVIO_VIDEO_FORMAT_487I_59_94_SMPTE259_NTSC; i < NV_CTRL_GVIO_VIDEO_FORMAT_2048I_47_96_SMPTE372+1; ++i) {
52 _sdi_output_format_combobox->addItem(decodeSignalFormat(i));
53 }
54 connect(_sdi_output_format_combobox, SIGNAL(currentIndexChanged(int)), this, SLOT(sdi_output_format_changed(int)));
55
56 QLabel *sdi_output_left_stereo_mode_label = new QLabel(_("Left stereo mode:"));
57 sdi_output_left_stereo_mode_label->setToolTip(_("<p>Select stereo mode used for left SDI output.</p>"));
58 _sdi_output_left_stereo_mode_combobox = new QComboBox();
59 _sdi_output_left_stereo_mode_combobox->setToolTip(sdi_output_left_stereo_mode_label->toolTip());
60 _sdi_output_left_stereo_mode_combobox->addItem(QIcon(":icons-local/output-type-mono-left.png"), _("Left view"));
61 _sdi_output_left_stereo_mode_combobox->addItem(QIcon(":icons-local/output-type-mono-right.png"), _("Right view"));
62 _sdi_output_left_stereo_mode_combobox->addItem(QIcon(":icons-local/output-type-top-bottom.png"), _("Top/bottom"));
63 _sdi_output_left_stereo_mode_combobox->addItem(QIcon(":icons-local/output-type-top-bottom-half.png"), _("Top/bottom, half height"));
64 _sdi_output_left_stereo_mode_combobox->addItem(QIcon(":icons-local/output-type-left-right.png"), _("Left/right"));
65 _sdi_output_left_stereo_mode_combobox->addItem(QIcon(":icons-local/output-type-left-right-half.png"), _("Left/right, half width"));
66 _sdi_output_left_stereo_mode_combobox->addItem(QIcon(":icons-local/output-type-even-odd-rows.png"), _("Even/odd rows"));
67 _sdi_output_left_stereo_mode_combobox->addItem(QIcon(":icons-local/output-type-even-odd-columns.png"), _("Even/odd columns"));
68 _sdi_output_left_stereo_mode_combobox->addItem(QIcon(":icons-local/output-type-checkerboard.png"), _("Checkerboard pattern"));
69 _sdi_output_left_stereo_mode_combobox->addItem(QIcon(":icons-local/output-type-red-cyan.png"), _("Red/cyan glasses, monochrome"));
70 _sdi_output_left_stereo_mode_combobox->addItem(QIcon(":icons-local/output-type-red-cyan.png"), _("Red/cyan glasses, half color"));
71 _sdi_output_left_stereo_mode_combobox->addItem(QIcon(":icons-local/output-type-red-cyan.png"), _("Red/cyan glasses, full color"));
72 _sdi_output_left_stereo_mode_combobox->addItem(QIcon(":icons-local/output-type-red-cyan.png"), _("Red/cyan glasses, Dubois"));
73 _sdi_output_left_stereo_mode_combobox->addItem(QIcon(":icons-local/output-type-green-magenta.png"), _("Green/magenta glasses, monochrome"));
74 _sdi_output_left_stereo_mode_combobox->addItem(QIcon(":icons-local/output-type-green-magenta.png"), _("Green/magenta glasses, half color"));
75 _sdi_output_left_stereo_mode_combobox->addItem(QIcon(":icons-local/output-type-green-magenta.png"), _("Green/magenta glasses, full color"));
76 _sdi_output_left_stereo_mode_combobox->addItem(QIcon(":icons-local/output-type-green-magenta.png"), _("Green/magenta glasses, Dubois"));
77 _sdi_output_left_stereo_mode_combobox->addItem(QIcon(":icons-local/output-type-amber-blue.png"), _("Amber/blue glasses, monochrome"));
78 _sdi_output_left_stereo_mode_combobox->addItem(QIcon(":icons-local/output-type-amber-blue.png"), _("Amber/blue glasses, half color"));
79 _sdi_output_left_stereo_mode_combobox->addItem(QIcon(":icons-local/output-type-amber-blue.png"), _("Amber/blue glasses, full color"));
80 _sdi_output_left_stereo_mode_combobox->addItem(QIcon(":icons-local/output-type-amber-blue.png"), _("Amber/blue glasses, Dubois"));
81 _sdi_output_left_stereo_mode_combobox->addItem(QIcon(":icons-local/output-type-red-green.png"), _("Red/green glasses, monochrome"));
82 _sdi_output_left_stereo_mode_combobox->addItem(QIcon(":icons-local/output-type-red-blue.png"), _("Red/blue glasses, monochrome"));
83 connect(_sdi_output_left_stereo_mode_combobox, SIGNAL(currentIndexChanged(int)), this, SLOT(sdi_output_left_stereo_mode_changed(int)));
84
85 QLabel *sdi_output_right_stereo_mode_label = new QLabel(_("Right stereo mode:"));
86 sdi_output_right_stereo_mode_label->setToolTip(_("<p>Select stereo mode used for right SDI output.</p>"));
87 _sdi_output_right_stereo_mode_combobox = new QComboBox();
88 _sdi_output_right_stereo_mode_combobox->setToolTip(sdi_output_right_stereo_mode_label->toolTip());
89 _sdi_output_right_stereo_mode_combobox->addItem(QIcon(":icons-local/output-type-mono-left.png"), _("Left view"));
90 _sdi_output_right_stereo_mode_combobox->addItem(QIcon(":icons-local/output-type-mono-right.png"), _("Right view"));
91 _sdi_output_right_stereo_mode_combobox->addItem(QIcon(":icons-local/output-type-top-bottom.png"), _("Top/bottom"));
92 _sdi_output_right_stereo_mode_combobox->addItem(QIcon(":icons-local/output-type-top-bottom-half.png"), _("Top/bottom, half height"));
93 _sdi_output_right_stereo_mode_combobox->addItem(QIcon(":icons-local/output-type-left-right.png"), _("Left/right"));
94 _sdi_output_right_stereo_mode_combobox->addItem(QIcon(":icons-local/output-type-left-right-half.png"), _("Left/right, half width"));
95 _sdi_output_right_stereo_mode_combobox->addItem(QIcon(":icons-local/output-type-even-odd-rows.png"), _("Even/odd rows"));
96 _sdi_output_right_stereo_mode_combobox->addItem(QIcon(":icons-local/output-type-even-odd-columns.png"), _("Even/odd columns"));
97 _sdi_output_right_stereo_mode_combobox->addItem(QIcon(":icons-local/output-type-checkerboard.png"), _("Checkerboard pattern"));
98 _sdi_output_right_stereo_mode_combobox->addItem(QIcon(":icons-local/output-type-red-cyan.png"), _("Red/cyan glasses, monochrome"));
99 _sdi_output_right_stereo_mode_combobox->addItem(QIcon(":icons-local/output-type-red-cyan.png"), _("Red/cyan glasses, half color"));
100 _sdi_output_right_stereo_mode_combobox->addItem(QIcon(":icons-local/output-type-red-cyan.png"), _("Red/cyan glasses, full color"));
101 _sdi_output_right_stereo_mode_combobox->addItem(QIcon(":icons-local/output-type-red-cyan.png"), _("Red/cyan glasses, Dubois"));
102 _sdi_output_right_stereo_mode_combobox->addItem(QIcon(":icons-local/output-type-green-magenta.png"), _("Green/magenta glasses, monochrome"));
103 _sdi_output_right_stereo_mode_combobox->addItem(QIcon(":icons-local/output-type-green-magenta.png"), _("Green/magenta glasses, half color"));
104 _sdi_output_right_stereo_mode_combobox->addItem(QIcon(":icons-local/output-type-green-magenta.png"), _("Green/magenta glasses, full color"));
105 _sdi_output_right_stereo_mode_combobox->addItem(QIcon(":icons-local/output-type-green-magenta.png"), _("Green/magenta glasses, Dubois"));
106 _sdi_output_right_stereo_mode_combobox->addItem(QIcon(":icons-local/output-type-amber-blue.png"), _("Amber/blue glasses, monochrome"));
107 _sdi_output_right_stereo_mode_combobox->addItem(QIcon(":icons-local/output-type-amber-blue.png"), _("Amber/blue glasses, half color"));
108 _sdi_output_right_stereo_mode_combobox->addItem(QIcon(":icons-local/output-type-amber-blue.png"), _("Amber/blue glasses, full color"));
109 _sdi_output_right_stereo_mode_combobox->addItem(QIcon(":icons-local/output-type-amber-blue.png"), _("Amber/blue glasses, Dubois"));
110 _sdi_output_right_stereo_mode_combobox->addItem(QIcon(":icons-local/output-type-red-green.png"), _("Red/green glasses, monochrome"));
111 _sdi_output_right_stereo_mode_combobox->addItem(QIcon(":icons-local/output-type-red-blue.png"), _("Red/blue glasses, monochrome"));
112 connect(_sdi_output_right_stereo_mode_combobox, SIGNAL(currentIndexChanged(int)), this, SLOT(sdi_output_right_stereo_mode_changed(int)));
113
114 QGridLayout *layout = new QGridLayout;
115 layout->addWidget(sdi_output_format_label, 0, 0);
116 layout->addWidget(_sdi_output_format_combobox, 0, 1, 1, 1);
117 layout->addWidget(sdi_output_left_stereo_mode_label, 1, 0);
118 layout->addWidget(_sdi_output_left_stereo_mode_combobox, 1, 1);
119 layout->addWidget(sdi_output_right_stereo_mode_label, 2, 0);
120 layout->addWidget(_sdi_output_right_stereo_mode_combobox, 2, 1);
121 setLayout(layout);
122
123 update();
124 #endif // HAVE_LIBXNVCTRL
125 }
126
update()127 void sdi_output_dialog::update()
128 {
129 #if HAVE_LIBXNVCTRL
130 _lock = true;
131 set_sdi_output_format(dispatch::parameters().sdi_output_format());
132 set_sdi_output_left_stereo_mode(dispatch::parameters().sdi_output_left_stereo_mode());
133 set_sdi_output_right_stereo_mode(dispatch::parameters().sdi_output_right_stereo_mode());
134 _lock = false;
135 #endif // HAVE_LIBXNVCTRL
136 }
137
set_sdi_output_format(int val)138 void sdi_output_dialog::set_sdi_output_format(int val)
139 {
140 #if HAVE_LIBXNVCTRL
141 _sdi_output_format_combobox->setCurrentIndex(val-1);
142 #else
143 (void)val;
144 #endif // HAVE_LIBXNVCTRL
145 }
146
set_sdi_output_left_stereo_mode(parameters::stereo_mode_t stereo_mode)147 void sdi_output_dialog::set_sdi_output_left_stereo_mode(parameters::stereo_mode_t stereo_mode)
148 {
149 #if HAVE_LIBXNVCTRL
150 switch (stereo_mode)
151 {
152 default:
153 case parameters::mode_mono_left:
154 _sdi_output_left_stereo_mode_combobox->setCurrentIndex(0);
155 break;
156 case parameters::mode_mono_right:
157 _sdi_output_left_stereo_mode_combobox->setCurrentIndex(1);
158 break;
159 case parameters::mode_top_bottom:
160 _sdi_output_left_stereo_mode_combobox->setCurrentIndex(2);
161 break;
162 case parameters::mode_top_bottom_half:
163 _sdi_output_left_stereo_mode_combobox->setCurrentIndex(3);
164 break;
165 case parameters::mode_left_right:
166 _sdi_output_left_stereo_mode_combobox->setCurrentIndex(4);
167 break;
168 case parameters::mode_left_right_half:
169 _sdi_output_left_stereo_mode_combobox->setCurrentIndex(5);
170 break;
171 case parameters::mode_even_odd_rows:
172 _sdi_output_left_stereo_mode_combobox->setCurrentIndex(6);
173 break;
174 case parameters::mode_even_odd_columns:
175 _sdi_output_left_stereo_mode_combobox->setCurrentIndex(7);
176 break;
177 case parameters::mode_checkerboard:
178 _sdi_output_left_stereo_mode_combobox->setCurrentIndex(8);
179 break;
180 case parameters::mode_red_cyan_monochrome:
181 _sdi_output_left_stereo_mode_combobox->setCurrentIndex(9);
182 break;
183 case parameters::mode_red_cyan_half_color:
184 _sdi_output_left_stereo_mode_combobox->setCurrentIndex(10);
185 break;
186 case parameters::mode_red_cyan_full_color:
187 _sdi_output_left_stereo_mode_combobox->setCurrentIndex(11);
188 break;
189 case parameters::mode_red_cyan_dubois:
190 _sdi_output_left_stereo_mode_combobox->setCurrentIndex(12);
191 break;
192 case parameters::mode_green_magenta_monochrome:
193 _sdi_output_left_stereo_mode_combobox->setCurrentIndex(13);
194 break;
195 case parameters::mode_green_magenta_half_color:
196 _sdi_output_left_stereo_mode_combobox->setCurrentIndex(14);
197 break;
198 case parameters::mode_green_magenta_full_color:
199 _sdi_output_left_stereo_mode_combobox->setCurrentIndex(15);
200 break;
201 case parameters::mode_green_magenta_dubois:
202 _sdi_output_left_stereo_mode_combobox->setCurrentIndex(16);
203 break;
204 case parameters::mode_amber_blue_monochrome:
205 _sdi_output_left_stereo_mode_combobox->setCurrentIndex(17);
206 break;
207 case parameters::mode_amber_blue_half_color:
208 _sdi_output_left_stereo_mode_combobox->setCurrentIndex(18);
209 break;
210 case parameters::mode_amber_blue_full_color:
211 _sdi_output_left_stereo_mode_combobox->setCurrentIndex(19);
212 break;
213 case parameters::mode_amber_blue_dubois:
214 _sdi_output_left_stereo_mode_combobox->setCurrentIndex(20);
215 break;
216 case parameters::mode_red_green_monochrome:
217 _sdi_output_left_stereo_mode_combobox->setCurrentIndex(21);
218 break;
219 case parameters::mode_red_blue_monochrome:
220 _sdi_output_left_stereo_mode_combobox->setCurrentIndex(22);
221 break;
222 }
223 #else
224 (void)stereo_mode;
225 #endif // HAVE_LIBXNVCTRL
226 }
227
set_sdi_output_right_stereo_mode(parameters::stereo_mode_t stereo_mode)228 void sdi_output_dialog::set_sdi_output_right_stereo_mode(parameters::stereo_mode_t stereo_mode)
229 {
230 #if HAVE_LIBXNVCTRL
231 switch (stereo_mode)
232 {
233 default:
234 case parameters::mode_mono_left:
235 _sdi_output_right_stereo_mode_combobox->setCurrentIndex(0);
236 break;
237 case parameters::mode_mono_right:
238 _sdi_output_right_stereo_mode_combobox->setCurrentIndex(1);
239 break;
240 case parameters::mode_top_bottom:
241 _sdi_output_right_stereo_mode_combobox->setCurrentIndex(2);
242 break;
243 case parameters::mode_top_bottom_half:
244 _sdi_output_right_stereo_mode_combobox->setCurrentIndex(3);
245 break;
246 case parameters::mode_left_right:
247 _sdi_output_right_stereo_mode_combobox->setCurrentIndex(4);
248 break;
249 case parameters::mode_left_right_half:
250 _sdi_output_right_stereo_mode_combobox->setCurrentIndex(5);
251 break;
252 case parameters::mode_even_odd_rows:
253 _sdi_output_right_stereo_mode_combobox->setCurrentIndex(6);
254 break;
255 case parameters::mode_even_odd_columns:
256 _sdi_output_right_stereo_mode_combobox->setCurrentIndex(7);
257 break;
258 case parameters::mode_checkerboard:
259 _sdi_output_right_stereo_mode_combobox->setCurrentIndex(8);
260 break;
261 case parameters::mode_red_cyan_monochrome:
262 _sdi_output_right_stereo_mode_combobox->setCurrentIndex(9);
263 break;
264 case parameters::mode_red_cyan_half_color:
265 _sdi_output_right_stereo_mode_combobox->setCurrentIndex(10);
266 break;
267 case parameters::mode_red_cyan_full_color:
268 _sdi_output_right_stereo_mode_combobox->setCurrentIndex(11);
269 break;
270 case parameters::mode_red_cyan_dubois:
271 _sdi_output_right_stereo_mode_combobox->setCurrentIndex(12);
272 break;
273 case parameters::mode_green_magenta_monochrome:
274 _sdi_output_right_stereo_mode_combobox->setCurrentIndex(13);
275 break;
276 case parameters::mode_green_magenta_half_color:
277 _sdi_output_right_stereo_mode_combobox->setCurrentIndex(14);
278 break;
279 case parameters::mode_green_magenta_full_color:
280 _sdi_output_right_stereo_mode_combobox->setCurrentIndex(15);
281 break;
282 case parameters::mode_green_magenta_dubois:
283 _sdi_output_right_stereo_mode_combobox->setCurrentIndex(16);
284 break;
285 case parameters::mode_amber_blue_monochrome:
286 _sdi_output_right_stereo_mode_combobox->setCurrentIndex(17);
287 break;
288 case parameters::mode_amber_blue_half_color:
289 _sdi_output_right_stereo_mode_combobox->setCurrentIndex(18);
290 break;
291 case parameters::mode_amber_blue_full_color:
292 _sdi_output_right_stereo_mode_combobox->setCurrentIndex(19);
293 break;
294 case parameters::mode_amber_blue_dubois:
295 _sdi_output_right_stereo_mode_combobox->setCurrentIndex(20);
296 break;
297 case parameters::mode_red_green_monochrome:
298 _sdi_output_right_stereo_mode_combobox->setCurrentIndex(21);
299 break;
300 case parameters::mode_red_blue_monochrome:
301 _sdi_output_right_stereo_mode_combobox->setCurrentIndex(22);
302 break;
303 }
304 #else
305 (void)stereo_mode;
306 #endif // HAVE_LIBXNVCTRL
307 }
308
sdi_output_format_changed(int val)309 void sdi_output_dialog::sdi_output_format_changed(int val)
310 {
311 #if HAVE_LIBXNVCTRL
312 if (!_lock)
313 send_cmd(command::set_sdi_output_format, val+1);
314 #else
315 (void)val;
316 #endif // HAVE_LIBXNVCTRL
317 }
318
sdi_output_left_stereo_mode_changed(int val)319 void sdi_output_dialog::sdi_output_left_stereo_mode_changed(int val)
320 {
321 #if HAVE_LIBXNVCTRL
322 parameters::stereo_mode_t stereo_mode = parameters::mode_mono_left;
323
324 switch (val)
325 {
326 case 0:
327 stereo_mode = parameters::mode_mono_left;
328 break;
329 case 1:
330 stereo_mode = parameters::mode_mono_right;
331 break;
332 case 2:
333 stereo_mode = parameters::mode_top_bottom;
334 break;
335 case 3:
336 stereo_mode = parameters::mode_top_bottom_half;
337 break;
338 case 4:
339 stereo_mode = parameters::mode_left_right;
340 break;
341 case 5:
342 stereo_mode = parameters::mode_left_right_half;
343 break;
344 case 6:
345 stereo_mode = parameters::mode_even_odd_rows;
346 break;
347 case 7:
348 stereo_mode = parameters::mode_even_odd_columns;
349 break;
350 case 8:
351 stereo_mode = parameters::mode_checkerboard;
352 break;
353 case 9:
354 stereo_mode = parameters::mode_red_cyan_monochrome;
355 break;
356 case 10:
357 stereo_mode = parameters::mode_red_cyan_half_color;
358 break;
359 case 11:
360 stereo_mode = parameters::mode_red_cyan_full_color;
361 break;
362 case 12:
363 stereo_mode = parameters::mode_red_cyan_dubois;
364 break;
365 case 13:
366 stereo_mode = parameters::mode_green_magenta_monochrome;
367 break;
368 case 14:
369 stereo_mode = parameters::mode_green_magenta_half_color;
370 break;
371 case 15:
372 stereo_mode = parameters::mode_green_magenta_full_color;
373 break;
374 case 16:
375 stereo_mode = parameters::mode_green_magenta_dubois;
376 break;
377 case 17:
378 stereo_mode = parameters::mode_amber_blue_monochrome;
379 break;
380 case 18:
381 stereo_mode = parameters::mode_amber_blue_half_color;
382 break;
383 case 19:
384 stereo_mode = parameters::mode_amber_blue_full_color;
385 break;
386 case 20:
387 stereo_mode = parameters::mode_amber_blue_dubois;
388 break;
389 case 21:
390 stereo_mode = parameters::mode_red_green_monochrome;
391 break;
392 case 22:
393 stereo_mode = parameters::mode_red_blue_monochrome;
394 break;
395 }
396
397 if (!_lock)
398 send_cmd(command::set_sdi_output_left_stereo_mode, static_cast<int>(stereo_mode));
399 #else
400 (void)val;
401 #endif // HAVE_LIBXNVCTRL
402 }
403
sdi_output_right_stereo_mode_changed(int val)404 void sdi_output_dialog::sdi_output_right_stereo_mode_changed(int val)
405 {
406 #if HAVE_LIBXNVCTRL
407 parameters::stereo_mode_t stereo_mode = parameters::mode_mono_left;
408
409 switch (val)
410 {
411 case 0:
412 stereo_mode = parameters::mode_mono_left;
413 break;
414 case 1:
415 stereo_mode = parameters::mode_mono_right;
416 break;
417 case 2:
418 stereo_mode = parameters::mode_top_bottom;
419 break;
420 case 3:
421 stereo_mode = parameters::mode_top_bottom_half;
422 break;
423 case 4:
424 stereo_mode = parameters::mode_left_right;
425 break;
426 case 5:
427 stereo_mode = parameters::mode_left_right_half;
428 break;
429 case 6:
430 stereo_mode = parameters::mode_even_odd_rows;
431 break;
432 case 7:
433 stereo_mode = parameters::mode_even_odd_columns;
434 break;
435 case 8:
436 stereo_mode = parameters::mode_checkerboard;
437 break;
438 case 9:
439 stereo_mode = parameters::mode_red_cyan_monochrome;
440 break;
441 case 10:
442 stereo_mode = parameters::mode_red_cyan_half_color;
443 break;
444 case 11:
445 stereo_mode = parameters::mode_red_cyan_full_color;
446 break;
447 case 12:
448 stereo_mode = parameters::mode_red_cyan_dubois;
449 break;
450 case 13:
451 stereo_mode = parameters::mode_green_magenta_monochrome;
452 break;
453 case 14:
454 stereo_mode = parameters::mode_green_magenta_half_color;
455 break;
456 case 15:
457 stereo_mode = parameters::mode_green_magenta_full_color;
458 break;
459 case 16:
460 stereo_mode = parameters::mode_green_magenta_dubois;
461 break;
462 case 17:
463 stereo_mode = parameters::mode_amber_blue_monochrome;
464 break;
465 case 18:
466 stereo_mode = parameters::mode_amber_blue_half_color;
467 break;
468 case 19:
469 stereo_mode = parameters::mode_amber_blue_full_color;
470 break;
471 case 20:
472 stereo_mode = parameters::mode_amber_blue_dubois;
473 break;
474 case 21:
475 stereo_mode = parameters::mode_red_green_monochrome;
476 break;
477 case 22:
478 stereo_mode = parameters::mode_red_blue_monochrome;
479 break;
480 }
481
482 if (!_lock)
483 send_cmd(command::set_sdi_output_right_stereo_mode, static_cast<int>(stereo_mode));
484 #else
485 (void)val;
486 #endif // HAVE_LIBXNVCTRL
487 }
488
receive_notification(const notification & note)489 void sdi_output_dialog::receive_notification(const notification ¬e)
490 {
491 #if HAVE_LIBXNVCTRL
492 switch (note.type)
493 {
494 case notification::sdi_output_format:
495 update();
496 break;
497 case notification::sdi_output_left_stereo_mode:
498 update();
499 break;
500 case notification::sdi_output_right_stereo_mode:
501 update();
502 break;
503 default:
504 /* not handled */
505 break;
506 }
507 #else
508 (void)note;
509 #endif // HAVE_LIBXNVCTRL
510 }
511