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