Skip to content

Commit a4a7211

Browse files
committed
deltacast_dvi: add more presets types
1 parent 09e1a72 commit a4a7211

File tree

1 file changed

+35
-17
lines changed

1 file changed

+35
-17
lines changed

src/video_capture/deltacast_dvi.cpp

Lines changed: 35 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -139,23 +139,35 @@ struct vidcap_deltacast_dvi_state {
139139

140140
static decltype(EEDDIDOK) CheckEEDID(BYTE pEEDIDBuffer[256]);
141141

142-
const static map<VHD_DV_EEDID_PRESET, const char *> edid_presets = {
143-
{ VHD_DV_EEDID_EMPTY, "empty E-EDID - the host should force its output regardless of the DELTA-dvi E-EDID" },
144-
{ VHD_DV_EEDID_DVIA, "DVI-A E-EDID" },
145-
{ VHD_DV_EEDID_DVID, "DVI-D E-EDID" },
146-
{ VHD_DV_EEDID_HDMI, "HDMI E-EDID" },
147-
{ VHD_DV_EEDID_DVID_DUAL, "DVI-D E-EDID with dual-link formats" },
148-
{ VHD_DV_EEDID_HDMI_H4K, "HDMI H4K E-EDID" },
149-
{ VHD_DV_EEDID_DVID_H4K, "DVI-D H4K E-EDID" },
142+
static const char *
143+
get_edid_preset_name(VHD_DV_EEDID_PRESET preset)
144+
{
145+
switch (preset) {
146+
case VHD_DV_EEDID_EMPTY: return "empty E-EDID - the host should force its output regardless of the DELTA-dvi E-EDID";
147+
case VHD_DV_EEDID_DVIA: return "DVI-A E-EDID";
148+
case VHD_DV_EEDID_DVID: return "DVI-D E-EDID";
149+
case VHD_DV_EEDID_HDMI: return "HDMI E-EDID";
150+
case VHD_DV_EEDID_DVID_DUAL: return "DVI-D E-EDID with dual-link formats";
151+
case VHD_DV_EEDID_HDMI_H4K: return "HDMI H4K E-EDID";
152+
case VHD_DV_EEDID_DVID_H4K: return "DVI-D H4K E-EDID";
150153
#if defined VHD_MIN_6_00
151-
{ VHD_DV_EEDID_HDMI_H4K2, "HDMI H4K2 E-EDID" },
152-
{ VHD_DV_EEDID_DVID_H4K2, "DVI-D H4K2 E-EDID" },
153-
{ VHD_DV_EEDID_DISPLAYPORT_1_2, "DisplayPort 1.2 E-EDID" },
154-
{ VHD_DV_EEDID_HDMI_FLEX_HMI, "HDMI FLEX-HMI E-EDID" },
155-
{ VHD_DV_EEDID_DVID_FLEX_HMI, "DVI-D FLEX-HMI E-EDID" },
154+
case VHD_DV_EEDID_HDMI_H4K2: return "HDMI H4K2 E-EDID";
155+
case VHD_DV_EEDID_DVID_H4K2: return "DVI-D H4K2 E-EDID";
156+
case VHD_DV_EEDID_DISPLAYPORT_1_2: return "DisplayPort 1.2 E-EDID";
157+
case VHD_DV_EEDID_HDMI_FLEX_HMI: return "HDMI FLEX-HMI E-EDID";
158+
case VHD_DV_EEDID_DVID_FLEX_HMI: return "DVI-D FLEX-HMI E-EDID";
156159
#endif
157-
{ (VHD_DV_EEDID_PRESET) -1, "avoid E-EDID loading" },
158-
};
160+
#if defined VHD_MIN_6_30
161+
case VHD_DV_EEDID_HDMI_12GxC_HMI: return "HDMI 12G-xC-hmi E-EDID";
162+
case VHD_DV_EEDID_DVID_12GxC_HMI: return "DVI-D 12G-xC-hmi E-EDID";
163+
case VHD_DV_EEDID_HDMI_DELTA_HMI: return "HDMI DELTA-hmi E-EDID";
164+
case VHD_DV_EEDID_HDMI_DELTA_HMI_FRL3: return "HDMI DELTA-hmi E-EDID FRL1/2/3 Support";
165+
case VHD_DV_EEDID_HDMI_DELTA_HMI_FRL5: return "HDMI DELTA-hmi E-EDID FRL1/2/3/4/5 Support";
166+
#endif
167+
case NB_VHD_DV_EEDID_PRESET: abort();
168+
}
169+
return nullptr; // can occur if new presets add to SDK
170+
}
159171

160172
static void
161173
usage(bool full)
@@ -172,8 +184,14 @@ usage(bool full)
172184
<< MAX_DELTA_CH << ")\n";
173185

174186
col() << SBOLD("\t<preset>") << " may be one of following\n";
175-
for (const auto &it : edid_presets) {
176-
col() << SBOLD("\t\t " << setw(2) << it.first) << " - " << it.second << "\n";
187+
for (unsigned i = 0; i < NB_VHD_DV_EEDID_PRESET; ++i) {
188+
const char *preset_name =
189+
get_edid_preset_name((VHD_DV_EEDID_PRESET) i);
190+
if (preset_name == nullptr) {
191+
continue;
192+
}
193+
col() << "\t\t " << setw(2) << SBOLD(i) << " - " << preset_name
194+
<< "\n";
177195
}
178196

179197
col() << SBOLD("\t<color_spec>") << " may be one of following\n";

0 commit comments

Comments
 (0)