]> git.sesse.net Git - casparcg/blob - core/consumer/bluefish/util.h
2.0.0.2:
[casparcg] / core / consumer / bluefish / util.h
1 #pragma once\r
2 \r
3 #include <BlueVelvet4.h>\r
4 #include "../../frame/frame_format.h"\r
5 \r
6 #include <memory>\r
7 \r
8 namespace caspar { namespace bluefish {\r
9         \r
10 inline bool is_epoch_card(int card_type)\r
11 {\r
12         return  card_type == CRD_BLUE_EPOCH_2K ||       \r
13                         card_type == CRD_BLUE_EPOCH_HORIZON || \r
14                         card_type == CRD_BLUE_EPOCH_2K_CORE ||  \r
15                         card_type == CRD_BLUE_EPOCH_2K_ULTRA || \r
16                         card_type == CRD_BLUE_EPOCH_CORE || \r
17                         card_type == CRD_BLUE_EPOCH_ULTRA;\r
18 }\r
19 \r
20 inline unsigned long vid_fmt_from_frame_format(const frame_format& fmt) \r
21 {\r
22         switch(fmt)\r
23         {\r
24         case frame_format::pal:                 return VID_FMT_PAL;\r
25         case frame_format::ntsc:                return VID_FMT_NTSC;\r
26         case frame_format::x576p2500:   return ULONG_MAX;       //not supported\r
27         case frame_format::x720p5000:   return VID_FMT_720P_5000;\r
28         case frame_format::x720p5994:   return VID_FMT_720P_5994;\r
29         case frame_format::x720p6000:   return VID_FMT_720P_6000;\r
30         case frame_format::x1080p2397:  return VID_FMT_1080P_2397;\r
31         case frame_format::x1080p2400:  return VID_FMT_1080P_2400;\r
32         case frame_format::x1080i5000:  return VID_FMT_1080I_5000;\r
33         case frame_format::x1080i5994:  return VID_FMT_1080I_5994;\r
34         case frame_format::x1080i6000:  return VID_FMT_1080I_6000;\r
35         case frame_format::x1080p2500:  return VID_FMT_1080P_2500;\r
36         case frame_format::x1080p2997:  return VID_FMT_1080P_2997;\r
37         case frame_format::x1080p3000:  return VID_FMT_1080P_3000;\r
38         default:                                                return ULONG_MAX;\r
39         }\r
40 }\r
41 \r
42 inline wchar_t* get_card_desc(int cardType)\r
43 {\r
44         switch(cardType) \r
45         {\r
46         case CRD_BLUEDEEP_LT:                           return L"Deepblue LT";// D64 Lite\r
47         case CRD_BLUEDEEP_SD:                           return L"Iridium SD";// Iridium SD\r
48         case CRD_BLUEDEEP_AV:                           return L"Iridium AV";// Iridium AV\r
49         case CRD_BLUEDEEP_IO:                           return L"Deepblue IO";// D64 Full\r
50         case CRD_BLUEWILD_AV:                           return L"Wildblue AV";// D64 AV\r
51         case CRD_IRIDIUM_HD:                            return L"Iridium HD";// * Iridium HD\r
52         case CRD_BLUEWILD_RT:                           return L"Wildblue RT";// D64 RT\r
53         case CRD_BLUEWILD_HD:                           return L"Wildblue HD";// * BadAss G2\r
54         case CRD_REDDEVIL:                                      return L"Iridium Full";// Iridium Full\r
55         case CRD_BLUEDEEP_HD:   \r
56         case CRD_BLUEDEEP_HDS:                          return L"Reserved for \"BasAss G2";// * BadAss G2 variant, proposed, reserved\r
57         case CRD_BLUE_ENVY:                                     return L"Blue envy"; // Mini Din \r
58         case CRD_BLUE_PRIDE:                            return L"Blue pride";//Mini Din Output \r
59         case CRD_BLUE_GREED:                            return L"Blue greed";\r
60         case CRD_BLUE_INGEST:                           return L"Blue ingest";\r
61         case CRD_BLUE_SD_DUALLINK:                      return L"Blue SD duallink";\r
62         case CRD_BLUE_CATALYST:                         return L"Blue catalyst";\r
63         case CRD_BLUE_SD_DUALLINK_PRO:          return L"Blue SD duallink pro";\r
64         case CRD_BLUE_SD_INGEST_PRO:            return L"Blue SD ingest pro";\r
65         case CRD_BLUE_SD_DEEPBLUE_LITE_PRO:     return L"Blue SD deepblue lite pro";\r
66         case CRD_BLUE_SD_SINGLELINK_PRO:        return L"Blue SD singlelink pro";\r
67         case CRD_BLUE_SD_IRIDIUM_AV_PRO:        return L"Blue SD iridium AV pro";\r
68         case CRD_BLUE_SD_FIDELITY:                      return L"Blue SD fidelity";\r
69         case CRD_BLUE_SD_FOCUS:                         return L"Blue SD focus";\r
70         case CRD_BLUE_SD_PRIME:                         return L"Blue SD prime";\r
71         case CRD_BLUE_EPOCH_2K_CORE:            return L"Blue epoch 2k core";\r
72         case CRD_BLUE_EPOCH_2K_ULTRA:           return L"Blue epoch 2k ultra";\r
73         case CRD_BLUE_EPOCH_HORIZON:            return L"Blue epoch horizon";\r
74         case CRD_BLUE_EPOCH_CORE:                       return L"Blue epoch core";\r
75         case CRD_BLUE_EPOCH_ULTRA:                      return L"Blue epoch ultra";\r
76         case CRD_BLUE_CREATE_HD:                        return L"Blue create HD";\r
77         case CRD_BLUE_CREATE_2K:                        return L"Blue create 2k";\r
78         case CRD_BLUE_CREATE_2K_ULTRA:          return L"Blue create 2k ultra";\r
79         default:                                                        return L"Unknown";\r
80         }\r
81 }\r
82 \r
83 inline int set_card_property(CBlueVelvet4 * pSdk, ULONG prop, ULONG value)\r
84 {\r
85         VARIANT variantValue;\r
86         variantValue.vt  = VT_UI4;\r
87         variantValue.ulVal = value;\r
88         return (pSdk->SetCardProperty(prop,variantValue));\r
89 }\r
90 \r
91 inline int set_card_property(const std::shared_ptr<CBlueVelvet4> pSdk, ULONG prop, ULONG value)\r
92 {\r
93         return set_card_property(pSdk.get(), prop, value);\r
94 }\r
95 \r
96 }}