1use mx_remote::{BayStatus, MxrSignalType};
22
23use crate::abi::guard;
24
25pub type mxr_signal_type_t = u16;
31
32pub const MXR_FEATURE_IR_RX: u32 = 1 << 0;
36
37pub const MXR_FEATURE_IR_TX: u32 = 1 << 1;
39
40pub const MXR_FEATURE_CEC: u32 = 1 << 2;
42
43pub const MXR_FEATURE_V2IP_SOURCE: u32 = 1 << 3;
45
46pub const MXR_FEATURE_V2IP_SINK: u32 = 1 << 4;
48
49pub const MXR_FEATURE_VIDEO_ROUTING: u32 = 1 << 5;
51
52pub const MXR_FEATURE_AUDIO_ROUTING: u32 = 1 << 6;
54
55pub const MXR_FEATURE_VOLUME_CONTROL: u32 = 1 << 7;
57
58pub const MXR_FEATURE_AUDIO_RETURN: u32 = 1 << 8;
60
61pub const MXR_FEATURE_REMOTE_CONTROL: u32 = 1 << 9;
63
64pub const MXR_FEATURE_SETUP_COMPLETED: u32 = 1 << 10;
66
67pub const MXR_FEATURE_MESH_MASTER: u32 = 1 << 11;
69
70pub const MXR_FEATURE_STATUS_NOTIFY: u32 = 1 << 12;
72
73pub const MXR_FEATURE_STATUS_WARNING: u32 = 1 << 13;
75
76pub const MXR_FEATURE_STATUS_ERROR: u32 = 1 << 14;
78
79pub const MXR_FEATURE_STATUS_REBOOT: u32 = 1 << 15;
81
82pub const MXR_FEATURE_MESH_MEMBER: u32 = 1 << 16;
84
85pub const MXR_FEATURE_AUDIO_AMPLIFIER: u32 = 1 << 17;
87
88pub const MXR_FEATURE_BOOTING: u32 = 1 << 18;
90
91pub const MXR_FEATURE_MANAGER: u32 = 1 << 19;
93
94pub const MXR_FEATURE_STATUS_POWER_SAVE: u32 = 1 << 20;
96
97pub const MXR_FEATURE_MESH: u32 = 1 << 21;
99
100pub const MXR_FEATURE_MULTIVIEWER: u32 = 1 << 22;
102
103pub const MXR_FEATURE_STATUS_CRASHED: u32 = 1 << 23;
105
106pub const MXR_FEATURE_VIDEO_WALL: u32 = 1 << 24;
108
109pub const MXR_FEATURE_CONFIG_INITIALISED: u32 = 1 << 25;
114
115pub const MXR_FEATURE_STATUS_MCAST_FAULT: u32 = 1 << 26;
118
119pub const MXR_FEATURE_POWER_SAVE: u32 = 1 << 27;
122
123pub const MXR_FEATURE_VLAN: u32 = 1 << 28;
126
127pub const MXR_FEATURE_OSD_SYNC: u32 = 1 << 29;
129
130pub const MXR_FEATURE_STATUS_UPGRADING: u32 = 1 << 30;
133
134pub const MXR_FEATURE_BOOT_BIT: u32 = 1 << 31;
136
137pub const MXR_BAY_HDMI_OUT: u32 = 1 << 0;
141
142pub const MXR_BAY_HDMI_IN: u32 = 1 << 1;
144
145pub const MXR_BAY_AUDIO_DIG_OUT: u32 = 1 << 2;
147
148pub const MXR_BAY_AUDIO_DIG_IN: u32 = 1 << 3;
150
151pub const MXR_BAY_AUDIO_ANA_OUT: u32 = 1 << 4;
153
154pub const MXR_BAY_AUDIO_ANA_IN: u32 = 1 << 5;
156
157pub const MXR_BAY_IR_IN: u32 = 1 << 6;
159
160pub const MXR_BAY_IR_OUT: u32 = 1 << 7;
162
163pub const MXR_BAY_AUDIO_AMP_OUT: u32 = 1 << 8;
165
166pub const MXR_BAY_RC_OUT: u32 = 1 << 9;
168
169pub const MXR_BAY_RC_IN: u32 = 1 << 10;
171
172pub const MXR_BAY_DOLBY: u32 = 1 << 11;
174
175pub const MXR_BAY_AUTO_OFF: u32 = 1 << 12;
177
178pub const MXR_BAY_V2IP_SOURCE_REMOTE: u32 = 1 << 13;
180
181pub const MXR_BAY_V2IP_SINK_REMOTE: u32 = 1 << 14;
183
184pub const MXR_BAY_V2IP_SOURCE_LOCAL: u32 = 1 << 15;
186
187pub const MXR_BAY_V2IP_SINK_LOCAL: u32 = 1 << 16;
189
190pub const MXR_BAY_STATUS_FAULT: u32 = 1 << 0;
197
198pub const MXR_BAY_STATUS_HIDDEN: u32 = 1 << 1;
200
201pub const MXR_BAY_STATUS_POWERED: u32 = 1 << 2;
203
204pub const MXR_BAY_STATUS_SIGNAL_DETECTED: u32 = 1 << 3;
206
207pub const MXR_BAY_STATUS_HPD_DETECTED: u32 = 1 << 4;
209
210pub const MXR_BAY_STATUS_SIGNAL_SCRAMBLE: u32 = 1 << 5;
212
213pub const MXR_BAY_STATUS_HDBT_CONNECTED: u32 = 1 << 6;
215
216pub const MXR_BAY_STATUS_CEC_DETECTED: u32 = 1 << 7;
218
219pub const MXR_BAY_STATUS_POWERED_ON: u32 = 1 << 8;
221
222pub const MXR_BAY_STATUS_POWERED_OFF: u32 = 1 << 9;
224
225pub const MXR_BAY_STATUS_AUDIO_ARC_HDMI: u32 = 1 << 10;
227
228pub const MXR_BAY_STATUS_AUDIO_ARC_OPTIC: u32 = 1 << 11;
230
231pub const MXR_BAY_STATUS_AUDIO_ARC_ANALOG: u32 = 1 << 12;
233
234pub const MXR_BAY_STATUS_OFFLINE: u32 = 1 << 13;
236
237pub const MXR_BAY_STATUS_DECODER_DISABLE: u32 = 1 << 14;
239
240pub const MXR_BAY_STATUS_ENCODER_DISABLE: u32 = 1 << 15;
242
243pub const MXR_BAY_STATUS_CEC_DISABLED: u32 = 1 << 20;
245
246pub const MXR_BAY_STATUS_ENCODER_ERROR: u32 = 1 << 21;
248
249pub const MXR_BAY_STATUS_AUTO_NAME: u32 = 1 << 24;
253
254pub const MXR_AUDIO_INPUT: u32 = 1 << 0;
258
259pub const MXR_AUDIO_OUTPUT: u32 = 1 << 1;
261
262pub const MXR_AUDIO_V2IP_TX: u32 = 1 << 2;
264
265pub const MXR_AUDIO_V2IP_RX: u32 = 1 << 3;
267
268pub const MXR_AUDIO_HDMI: u32 = 1 << 4;
270
271pub const MXR_AUDIO_RCA: u32 = 1 << 5;
273
274pub const MXR_AUDIO_SPDIF: u32 = 1 << 6;
276
277pub const MXR_AUDIO_TRIGGER: u32 = 1 << 7;
279
280pub const MXR_AUDIO_MUTE: u32 = 1 << 8;
282
283pub const MXR_AUDIO_ROUTE_INPUT: u32 = 1 << 9;
285
286pub const MXR_AUDIO_ROUTE_OUTPUT: u32 = 1 << 10;
288
289pub const MXR_AUDIO_ROUTE_IN_NONE: u32 = 1 << 11;
291
292pub const MXR_AUDIO_AMP_OUTPUT: u32 = 1 << 12;
294
295pub const MXR_AUDIO_VOLUME_CONTROL: u32 = 1 << 13;
297
298pub const MXR_AUDIO_GAIN_CONTROL: u32 = 1 << 14;
300
301pub const MXR_AUDIO_AUDIO_LOCK: u32 = 1 << 15;
303
304pub const MXR_KEY_NUM0: u16 = 0;
312
313pub const MXR_KEY_NUM1: u16 = 1;
315
316pub const MXR_KEY_NUM2: u16 = 2;
318
319pub const MXR_KEY_NUM3: u16 = 3;
321
322pub const MXR_KEY_NUM4: u16 = 4;
324
325pub const MXR_KEY_NUM5: u16 = 5;
327
328pub const MXR_KEY_NUM6: u16 = 6;
330
331pub const MXR_KEY_NUM7: u16 = 7;
333
334pub const MXR_KEY_NUM8: u16 = 8;
336
337pub const MXR_KEY_NUM9: u16 = 9;
339
340pub const MXR_KEY_SELECT: u16 = 10;
342
343pub const MXR_KEY_BACK: u16 = 11;
345
346pub const MXR_KEY_UP: u16 = 12;
348
349pub const MXR_KEY_DOWN: u16 = 13;
351
352pub const MXR_KEY_LEFT: u16 = 14;
354
355pub const MXR_KEY_RIGHT: u16 = 15;
357
358pub const MXR_KEY_MENU: u16 = 16;
360
361pub const MXR_KEY_CONTENT_MENU: u16 = 17;
363
364pub const MXR_KEY_CHANNEL_UP: u16 = 18;
366
367pub const MXR_KEY_CHANNEL_DOWN: u16 = 19;
369
370pub const MXR_KEY_PLAY: u16 = 20;
372
373pub const MXR_KEY_PAUSE: u16 = 21;
375
376pub const MXR_KEY_STOP: u16 = 22;
378
379pub const MXR_KEY_RECORD: u16 = 23;
381
382pub const MXR_KEY_FAST_FORWARD: u16 = 24;
384
385pub const MXR_KEY_REWIND: u16 = 25;
387
388pub const MXR_KEY_RED: u16 = 26;
390
391pub const MXR_KEY_GREEN: u16 = 27;
393
394pub const MXR_KEY_YELLOW: u16 = 28;
396
397pub const MXR_KEY_BLUE: u16 = 29;
399
400pub const MXR_KEY_HELP: u16 = 30;
402
403pub const MXR_KEY_INFORMATION: u16 = 31;
405
406pub const MXR_KEY_TEXT: u16 = 32;
408
409pub const MXR_KEY_GUIDE: u16 = 33;
411
412pub const MXR_KEY_VIDEO_ON_DEMAND: u16 = 34;
414
415pub const MXR_KEY_PREVIOUS_CHANNEL: u16 = 80;
417
418pub const MXR_KEY_MODE_3D: u16 = 81;
420
421pub const MXR_KEY_SUBTITLE: u16 = 82;
423
424pub const MXR_KEY_SOUND_SELECT: u16 = 83;
426
427pub const MXR_KEY_INPUT_SELECT: u16 = 84;
429
430pub const MXR_KEY_EJECT: u16 = 85;
432
433pub const MXR_KEY_NEXT_CHAPTER: u16 = 86;
435
436pub const MXR_KEY_PREV_CHAPTER: u16 = 87;
438
439pub const MXR_KEY_INTERACTIVE: u16 = 128;
441
442pub const MXR_KEY_SEARCH: u16 = 129;
444
445pub const MXR_KEY_SKY: u16 = 130;
447
448pub const MXR_KEY_CUSTOM_CEC: u16 = 1280;
450
451pub const MXR_KEY_CUSTOM_SKY: u16 = 2048;
453
454pub const MXR_MV_VIEW_MODE_UNKNOWN: u8 = 0;
463
464pub const MXR_MV_VIEW_MODE_SINGLE: u8 = 1;
466
467pub const MXR_MV_VIEW_MODE_PIP: u8 = 2;
469
470pub const MXR_MV_VIEW_MODE_TWO_SCREEN_LARGE: u8 = 3;
472
473pub const MXR_MV_VIEW_MODE_TWO_SCREEN_SMALL: u8 = 4;
475
476pub const MXR_MV_VIEW_MODE_THREE_SCREEN_LARGE: u8 = 5;
478
479pub const MXR_MV_VIEW_MODE_THREE_SCREEN_SMALL: u8 = 6;
481
482pub const MXR_MV_VIEW_MODE_FOUR_SCREEN_EQUAL: u8 = 7;
484
485pub const MXR_MV_VIEW_MODE_FOUR_SCREEN_SMALL: u8 = 8;
487
488pub const MXR_MV_PIP_POSITION_UNKNOWN: u8 = 0;
490
491pub const MXR_MV_PIP_POSITION_LEFT_TOP: u8 = 1;
493
494pub const MXR_MV_PIP_POSITION_LEFT_BOTTOM: u8 = 2;
496
497pub const MXR_MV_PIP_POSITION_RIGHT_TOP: u8 = 3;
499
500pub const MXR_MV_PIP_POSITION_RIGHT_BOTTOM: u8 = 4;
502
503pub const MXR_MV_PIP_SIZE_UNKNOWN: u8 = 0;
505
506pub const MXR_MV_PIP_SIZE_SMALL: u8 = 1;
508
509pub const MXR_MV_PIP_SIZE_MEDIUM: u8 = 2;
511
512pub const MXR_MV_PIP_SIZE_LARGE: u8 = 3;
514
515pub const MXR_MV_OUTPUT_UNKNOWN: u8 = 0;
517
518pub const MXR_MV_OUTPUT_DCI4K_P60: u8 = 1;
520
521pub const MXR_MV_OUTPUT_DCI4K_P50: u8 = 2;
523
524pub const MXR_MV_OUTPUT_UHD_P60: u8 = 3;
526
527pub const MXR_MV_OUTPUT_UHD_P50: u8 = 4;
529
530pub const MXR_MV_OUTPUT_UHD_P30: u8 = 5;
532
533pub const MXR_MV_OUTPUT_UHD_P25: u8 = 6;
535
536pub const MXR_MV_OUTPUT_WUXGA_P60_RB: u8 = 7;
538
539pub const MXR_MV_OUTPUT_HD1080_P60: u8 = 8;
541
542pub const MXR_MV_OUTPUT_HD1080_P50: u8 = 9;
544
545pub const MXR_MV_OUTPUT_WXGA_P60: u8 = 10;
547
548pub const MXR_MV_OUTPUT_WXGA800_P60: u8 = 11;
550
551pub const MXR_MV_OUTPUT_HD720_P60: u8 = 12;
553
554pub const MXR_MV_OUTPUT_HD720_P50: u8 = 13;
556
557pub const MXR_MV_OUTPUT_XGA_P60: u8 = 14;
559
560pub const MXR_MV_HDCP_UNKNOWN: u8 = 0;
562
563pub const MXR_MV_HDCP_V14: u8 = 1;
565
566pub const MXR_MV_HDCP_V22: u8 = 2;
568
569pub const MXR_MV_HDCP_OFF: u8 = 3;
571
572pub const MXR_MV_EDID_UNKNOWN: u8 = 0;
574
575pub const MXR_MV_EDID_4K2K60_444_STEREO: u8 = 1;
577
578pub const MXR_MV_EDID_4K2K60_444_DOLBY_DTS_51: u8 = 2;
580
581pub const MXR_MV_EDID_4K2K60_444_HD_AUDIO_71: u8 = 3;
583
584pub const MXR_MV_EDID_4K2K30_444_STEREO: u8 = 4;
586
587pub const MXR_MV_EDID_4K2K30_444_DOLBY_DTS_51: u8 = 5;
589
590pub const MXR_MV_EDID_4K2K30_444_HD_AUDIO_71: u8 = 6;
592
593pub const MXR_MV_EDID_1080P_STEREO: u8 = 7;
595
596pub const MXR_MV_EDID_1080P_DOLBY_DTS_51: u8 = 8;
598
599pub const MXR_MV_EDID_1080P_HD_AUDIO_71: u8 = 9;
601
602pub const MXR_MV_EDID_1920X1200_STEREO: u8 = 10;
604
605pub const MXR_MV_EDID_1680X1050_STEREO: u8 = 11;
607
608pub const MXR_MV_EDID_1600X1200_STEREO: u8 = 12;
610
611pub const MXR_MV_EDID_1440X900_STEREO: u8 = 13;
613
614pub const MXR_MV_EDID_1360X768_STEREO: u8 = 14;
616
617pub const MXR_MV_EDID_1280X1024_STEREO: u8 = 15;
619
620pub const MXR_MV_EDID_1024X768_STEREO: u8 = 16;
622
623pub const MXR_MV_EDID_720P_STEREO: u8 = 17;
625
626pub const MXR_MV_EDID_COPY_OUTPUT: u8 = 18;
629
630pub const MXR_MV_EDID_CUSTOM: u8 = 19;
632
633pub const MXR_MV_ITC_UNKNOWN: u8 = 0;
635
636pub const MXR_MV_ITC_VIDEO: u8 = 1;
638
639pub const MXR_MV_ITC_PC: u8 = 2;
641
642pub const MXR_MV_ASPECT_UNKNOWN: u8 = 0;
644
645pub const MXR_MV_ASPECT_FULL: u8 = 1;
647
648pub const MXR_MV_ASPECT_RATIO_16_9: u8 = 2;
650
651pub const MXR_MV_BOOL_OFF: u8 = 0;
653
654pub const MXR_MV_BOOL_ON: u8 = 1;
656
657pub const MXR_MV_BOOL_UNKNOWN: u8 = 255;
659
660pub const MXR_MV_SOURCE_UNKNOWN: u8 = 0;
662
663pub const MXR_MV_SOURCE_INPUT_1: u8 = 1;
665
666pub const MXR_MV_SOURCE_INPUT_2: u8 = 2;
668
669pub const MXR_MV_SOURCE_INPUT_3: u8 = 3;
671
672pub const MXR_MV_SOURCE_INPUT_4: u8 = 4;
674
675pub const MXR_V2IP_SETTING_SINK_CHECK_POWER: u32 = 1 << 0;
679
680pub const MXR_V2IP_SETTING_SINK_OFF_NO_SIGNAL: u32 = 1 << 1;
682
683pub const MXR_V2IP_SETTING_IR_TX_MODULATED: u32 = 1 << 2;
685
686pub const MXR_V2IP_SETTING_STATUS_LED: u32 = 1 << 3;
688
689pub const MXR_V2IP_SETTING_NETWORK_LED: u32 = 1 << 4;
691
692pub const MXR_V2IP_SETTING_FAN_QUIET: u32 = 1 << 5;
694
695pub const MXR_V2IP_SETTING_CEC_COMBO_KEYS: u32 = 1 << 6;
697
698pub const MXR_V2IP_SETTING_CEC_COMBO_INPUT: u32 = 1 << 7;
700
701pub const MXR_V2IP_SETTING_IR_PROFILE: u32 = 1 << 8;
703
704pub const MXR_V2IP_SETTING_IR_PROFILE_SINK: u32 = 1 << 9;
706
707pub const MXR_V2IP_SETTING_IR_PROFILES: u32 = 1 << 10;
709
710pub const MXR_V2IP_SETTING_AUTO_POWER_SAVE: u32 = 1 << 11;
713
714pub const MXR_V2IP_SETTING_POWER_SAVE_SCHEDULE: u32 = 1 << 12;
717
718pub const MXR_V2IP_SETTING_CLOCK_SET: u32 = 1 << 13;
720
721pub const MXR_V2IP_SETTING_PTP_MODE: u32 = 1 << 14;
723
724pub const MXR_V2IP_SETTING_PTP_DOMAIN: u32 = 1 << 15;
726
727pub const MXR_V2IP_SETTING_PTP_PRIORITY1: u32 = 1 << 16;
730
731pub const MXR_V2IP_SETTING_AES67: u32 = 1 << 17;
734
735pub const MXR_V2IP_SETTING_POWER_SAVE_LEVEL: u32 = 1 << 18;
737
738pub const MXR_V2IP_SETTING_PTP_ANNOUNCE: u32 = 1 << 19;
741
742pub const MXR_V2IP_SETTING_PTP_SYNC: u32 = 1 << 20;
744
745pub const MXR_V2IP_SETTING_PTP_DELAY_REQ: u32 = 1 << 21;
747
748pub const MXR_V2IP_SETTING_PTP_ANNOUNCE_TIMEOUT: u32 = 1 << 22;
751
752pub const MXR_V2IP_SETTING_PTP_DSCP: u32 = 1 << 23;
754
755pub const MXR_V2IP_SETTING_SAP_EXPIRE: u32 = 1 << 24;
758
759pub const MXR_V2IP_SETTING_SAP_LISTEN: u32 = 1 << 25;
761
762pub const MXR_V2IP_SETTING_SAP_ANNOUNCE: u32 = 1 << 26;
764
765pub const MXR_V2IP_SETTING_SAP_INTERVAL: u32 = 1 << 27;
767
768pub const MXR_V2IP_SETTING_POWER_SAVE_DISABLED: u32 = 1 << 28;
771
772pub const MXR_V2IP_SETTING_STREAM_TTL: u32 = 1 << 29;
775
776pub const MXR_V2IP_SETTING_CLOUD: u32 = 1 << 30;
779
780pub const MXR_V2IP_SETTING_SINK_ROTATION: u32 = 1 << 31;
784
785pub const MXR_V2IP_STREAM_TTL_DEFAULT: u8 = 64;
787
788pub const MXR_V2IP_SINK_ROTATION_MAX: u16 = 359;
790
791pub const MXR_V2IP_DOWNMIX_OFF: u8 = 0;
795pub const MXR_V2IP_DOWNMIX_AUTO: u8 = 1;
797pub const MXR_V2IP_DOWNMIX_ALWAYS: u8 = 2;
799
800pub const MXR_V2IP_DOWNMIX_LEVEL_NORMALISED: u8 = 0;
802pub const MXR_V2IP_DOWNMIX_LEVEL_UNSCALED: u8 = 1;
804
805pub const MXR_V2IP_DOWNMIX_LFE_MAX: u8 = 100;
807
808pub const MXR_V2IP_SDP_FLAG_ACTIVE: u8 = 1 << 0;
812pub const MXR_V2IP_SDP_FLAG_AUDIO_ONLY: u8 = 1 << 1;
814pub const MXR_V2IP_SDP_FLAG_CLOCK: u8 = 1 << 2;
816
817pub const MXR_V2IP_SDP_ENCODING_NONE: u8 = 0;
819pub const MXR_V2IP_SDP_ENCODING_L16: u8 = 1;
821pub const MXR_V2IP_SDP_ENCODING_L24: u8 = 2;
823pub const MXR_V2IP_SDP_ENCODING_AM824: u8 = 3;
825
826pub const MXR_V2IP_SDP_MEDIA_CLOCK_NONE: u8 = 0;
828pub const MXR_V2IP_SDP_MEDIA_CLOCK_DIRECT: u8 = 1;
830pub const MXR_V2IP_SDP_MEDIA_CLOCK_SENDER: u8 = 2;
832
833pub const MXR_V2IP_SDP_REF_CLOCK_NONE: u8 = 0;
835pub const MXR_V2IP_SDP_REF_CLOCK_PTP: u8 = 1;
837pub const MXR_V2IP_SDP_REF_CLOCK_TRACEABLE: u8 = 2;
839pub const MXR_V2IP_SDP_REF_CLOCK_LOCAL_MAC: u8 = 3;
841
842pub const MXR_V2IP_SDP_CLOCK_MODE_ARRIVAL: u8 = 0;
844pub const MXR_V2IP_SDP_CLOCK_MODE_PTP: u8 = 1;
846pub const MXR_V2IP_SDP_CLOCK_MODE_SENDER: u8 = 2;
848
849pub const MXR_V2IP_SDP_CLOCK_STATE_IDLE: u8 = 0;
851pub const MXR_V2IP_SDP_CLOCK_STATE_SERVO: u8 = 1;
853pub const MXR_V2IP_SDP_CLOCK_STATE_ALIGNING: u8 = 2;
855pub const MXR_V2IP_SDP_CLOCK_STATE_TIMED: u8 = 3;
857pub const MXR_V2IP_SDP_CLOCK_STATE_PARKED: u8 = 4;
859pub const MXR_V2IP_SDP_CLOCK_STATE_UNTIMED: u8 = 5;
861pub const MXR_V2IP_SDP_CLOCK_STATE_UNSUPPORTED: u8 = 6;
863
864pub const MXR_V2IP_POWER_SAVE_LEVEL_NONE: u8 = 0;
868pub const MXR_V2IP_POWER_SAVE_LEVEL_REDUCED: u8 = 1;
870pub const MXR_V2IP_POWER_SAVE_LEVEL_LOW: u8 = 2;
872pub const MXR_V2IP_POWER_SAVE_LEVEL_OFF: u8 = 3;
874
875pub const MXR_UNIT_POWER_SAVE_SUPPORTED: u8 = 1 << 0;
879pub const MXR_UNIT_POWER_SAVE_INPUT_WAKE: u8 = 1 << 1;
881pub const MXR_UNIT_POWER_SAVE_OUTPUT_WAKE: u8 = 1 << 2;
883
884pub const MXR_V2IP_PTP_MODE_OFF: u8 = 0;
888pub const MXR_V2IP_PTP_MODE_FOLLOWER: u8 = 1;
890pub const MXR_V2IP_PTP_MODE_AUTO: u8 = 2;
892
893pub const MXR_UNIT_REBOOT_REQUIRED: u32 = 1 << 0;
897pub const MXR_UNIT_FPGA_UPGRADE: u32 = 1 << 1;
899pub const MXR_UNIT_DHCP: u32 = 1 << 2;
901pub const MXR_UNIT_NET_PENDING: u32 = 1 << 3;
904pub const MXR_UNIT_FAN_QUIET: u32 = 1 << 4;
906pub const MXR_UNIT_EXTERNAL_PSU: u32 = 1 << 5;
908pub const MXR_UNIT_FPGA_CONFIGURED: u32 = 1 << 6;
911pub const MXR_UNIT_ENCODER_ACTIVE: u32 = 1 << 7;
913pub const MXR_UNIT_DECODER_ACTIVE: u32 = 1 << 8;
915pub const MXR_UNIT_AUTO_DISABLE: u32 = 1 << 9;
917pub const MXR_UNIT_AUTO_DISABLE_ACTIVE: u32 = 1 << 10;
919pub const MXR_UNIT_OFF_NO_SIGNAL: u32 = 1 << 11;
921pub const MXR_UNIT_OFF_NO_SIGNAL_ACTIVE: u32 = 1 << 12;
923pub const MXR_UNIT_POWER_CHECK: u32 = 1 << 13;
925pub const MXR_UNIT_BOOT_COUNT: u32 = 1 << 14;
927pub const MXR_UNIT_FAN_SPEED: u32 = 1 << 15;
929
930pub const MXR_V2IP_PTP_VALID: u8 = 1 << 0;
934pub const MXR_V2IP_PTP_FOLLOWED: u8 = 1 << 1;
937
938pub const MXR_V2IP_PTP_LOCK_UNLOCKED: u8 = 0;
940pub const MXR_V2IP_PTP_LOCK_LOCKING: u8 = 1;
942pub const MXR_V2IP_PTP_LOCK_LOCKED: u8 = 2;
944
945pub const MXR_V2IP_VLAN_VALID: u16 = 1 << 0;
949
950pub const MXR_V2IP_VLAN_TRUNK: u16 = 1 << 1;
953
954pub const MXR_V2IP_VLAN_PENDING: u16 = 1 << 2;
957
958pub const MXR_V2IP_VLAN_CONFIRM: u16 = 1 << 3;
961
962pub const MXR_V2IP_VLAN_HAS_SFP: u16 = 1 << 4;
964
965pub const MXR_V2IP_TEST_PATTERN_OFF: u8 = 0;
969pub const MXR_V2IP_TEST_PATTERN_BARS: u8 = 1;
971pub const MXR_V2IP_TEST_PATTERN_FLAT: u8 = 2;
973pub const MXR_V2IP_TEST_PATTERN_RAMP: u8 = 3;
975pub const MXR_V2IP_TEST_PATTERN_GRID: u8 = 4;
977pub const MXR_V2IP_TEST_PATTERN_STRIP: u8 = 5;
979pub const MXR_V2IP_TEST_PATTERN_CARD: u8 = 6;
981
982pub const MXR_V2IP_TONE_MODE_OFF: u8 = 0;
984pub const MXR_V2IP_TONE_MODE_CONTINUOUS: u8 = 1;
986pub const MXR_V2IP_TONE_MODE_IDENT: u8 = 2;
988pub const MXR_V2IP_TONE_MODE_LINEUP: u8 = 3;
990pub const MXR_V2IP_TONE_MODE_BEEP: u8 = 4;
992
993pub const MXR_V2IP_TESTCARD_SUPPORTED: u8 = 1 << 0;
995pub const MXR_V2IP_TESTCARD_SHOWING: u8 = 1 << 1;
997pub const MXR_V2IP_TESTCARD_PLAYING: u8 = 1 << 2;
999pub const MXR_V2IP_TESTCARD_PATTERN_PENDING: u8 = 1 << 3;
1001pub const MXR_V2IP_TESTCARD_TONE_PENDING: u8 = 1 << 4;
1003pub const MXR_V2IP_TESTCARD_SYNC_PENDING: u8 = 1 << 5;
1005
1006pub const MXR_OSD_SYNC_WHAT_CAPTIONS: u8 = 1 << 0;
1010pub const MXR_OSD_SYNC_WHAT_LOGO: u8 = 1 << 1;
1012pub const MXR_OSD_SYNC_WHAT_BACKGROUNDS: u8 = 1 << 2;
1014pub const MXR_OSD_SYNC_WHAT_LOGO_SLOTS: u8 = 1 << 3;
1016
1017pub const MXR_OSD_SYNC_STATE_TAKING: u8 = 0;
1019pub const MXR_OSD_SYNC_STATE_DONE: u8 = 1;
1021pub const MXR_OSD_SYNC_STATE_FAILED: u8 = 2;
1023pub const MXR_OSD_SYNC_STATE_DEFERRED: u8 = 3;
1025
1026pub const MXR_OSD_MESSAGE_SET: u8 = 1 << 0;
1030pub const MXR_OSD_MESSAGE_SHOWN: u8 = 1 << 1;
1032pub const MXR_OSD_MESSAGE_SUPPORTED: u8 = 1 << 2;
1034pub const MXR_OSD_MESSAGE_REFUSED: u8 = 1 << 3;
1037
1038pub const MXR_OSD_MESSAGE_PRIORITY_LOW: u8 = 0;
1040pub const MXR_OSD_MESSAGE_PRIORITY_NORMAL: u8 = 1;
1042pub const MXR_OSD_MESSAGE_PRIORITY_TOP: u8 = 2;
1044
1045pub const MXR_OSD_MESSAGE_TEXT_MAX: usize = 255;
1047
1048pub const MXR_OSD_SYNC_TYPE_CAPTION: u8 = 0;
1052pub const MXR_OSD_SYNC_TYPE_LOGO: u8 = 1;
1054pub const MXR_OSD_SYNC_TYPE_BACKGROUND: u8 = 2;
1056
1057pub const MXR_OSD_SYNC_SIZE_LARGE: u8 = 1;
1059pub const MXR_OSD_SYNC_SIZE_SMALL: u8 = 2;
1061
1062pub const MXR_OSD_CAPTION_ALIGN_LEFT: u8 = 0;
1064pub const MXR_OSD_CAPTION_ALIGN_CENTRE: u8 = 1;
1066pub const MXR_OSD_CAPTION_ALIGN_RIGHT: u8 = 2;
1068pub const MXR_OSD_CAPTION_ALIGN_DEFAULT: u8 = 0xFF;
1070
1071pub const MXR_OSD_CAPTION_FORMAT_PLAIN: u8 = 0;
1073pub const MXR_OSD_CAPTION_FORMAT_MARKDOWN: u8 = 1;
1075pub const MXR_OSD_CAPTION_FORMAT_DEFAULT: u8 = 0xFF;
1077
1078pub const MXR_OSD_CAPTION_FIELD_FONT: u16 = 1 << 0;
1081pub const MXR_OSD_CAPTION_FIELD_SIZE: u16 = 1 << 1;
1083pub const MXR_OSD_CAPTION_FIELD_X: u16 = 1 << 2;
1085pub const MXR_OSD_CAPTION_FIELD_Y: u16 = 1 << 3;
1087pub const MXR_OSD_CAPTION_FIELD_ALIGN: u16 = 1 << 4;
1089pub const MXR_OSD_CAPTION_FIELD_FORMAT: u16 = 1 << 5;
1091pub const MXR_OSD_CAPTION_FIELD_COLOUR: u16 = 1 << 6;
1093pub const MXR_OSD_CAPTION_FIELD_WRAP: u16 = 1 << 7;
1095pub const MXR_OSD_CAPTION_FIELD_TEXT: u16 = 1 << 8;
1097
1098pub const MXR_OSD_LOGO_FIELD_LOGO: u16 = 1 << 0;
1101pub const MXR_OSD_LOGO_FIELD_X: u16 = 1 << 1;
1103pub const MXR_OSD_LOGO_FIELD_Y: u16 = 1 << 2;
1105
1106#[no_mangle]
1110pub extern "C" fn mxr_bay_status_rc_type(status: u32) -> u8 {
1111 guard(0, || BayStatus::from_bits(status).rc_type().to_wire())
1112}
1113
1114#[no_mangle]
1116pub extern "C" fn mxr_bay_status_hdcp(status: u32) -> u8 {
1117 guard(0, || BayStatus::from_bits(status).hdcp())
1118}
1119
1120#[no_mangle]
1122pub extern "C" fn mxr_signal_type_svd(signal_type: mxr_signal_type_t) -> u8 {
1123 guard(0, || MxrSignalType::from_wire(signal_type).svd())
1124}
1125
1126#[no_mangle]
1128pub extern "C" fn mxr_signal_type_colour_space(signal_type: mxr_signal_type_t) -> u8 {
1129 guard(0, || MxrSignalType::from_wire(signal_type).colour_space())
1130}
1131
1132#[no_mangle]
1134pub extern "C" fn mxr_signal_type_non_integer(signal_type: mxr_signal_type_t) -> bool {
1135 guard(false, || {
1136 MxrSignalType::from_wire(signal_type).is_non_integer()
1137 })
1138}
1139
1140#[no_mangle]
1145pub extern "C" fn mxr_signal_type_bpp(signal_type: mxr_signal_type_t) -> u8 {
1146 guard(0, || {
1147 MxrSignalType::from_wire(signal_type).bpp().unwrap_or(0)
1148 })
1149}
1150
1151#[no_mangle]
1155pub extern "C" fn mxr_signal_type_bpp_index(signal_type: mxr_signal_type_t) -> u8 {
1156 guard(0, || MxrSignalType::from_wire(signal_type).bpp_index())
1157}
1158
1159#[no_mangle]
1167pub extern "C" fn mxr_signal_type_is_set(signal_type: mxr_signal_type_t) -> bool {
1168 guard(false, || MxrSignalType::from_wire(signal_type).is_set())
1169}