OLD | NEW |
1 /* -LICENSE-START- | 1 /* -LICENSE-START- |
2 ** Copyright (c) 2014 Blackmagic Design | 2 ** Copyright (c) 2014 Blackmagic Design |
3 ** | 3 ** |
4 ** Permission is hereby granted, free of charge, to any person or organization | 4 ** Permission is hereby granted, free of charge, to any person or organization |
5 ** obtaining a copy of the software and accompanying documentation covered by | 5 ** obtaining a copy of the software and accompanying documentation covered by |
6 ** this license (the "Software") to use, reproduce, display, distribute, | 6 ** this license (the "Software") to use, reproduce, display, distribute, |
7 ** execute, and transmit the Software, and to prepare derivative works of the | 7 ** execute, and transmit the Software, and to prepare derivative works of the |
8 ** Software, and to permit third-parties to whom the Software is furnished to | 8 ** Software, and to permit third-parties to whom the Software is furnished to |
9 ** do so, all subject to the following: | 9 ** do so, all subject to the following: |
10 ** | 10 ** |
11 ** The copyright notices in the Software and this entire statement, including | 11 ** The copyright notices in the Software and this entire statement, including |
12 ** the above license grant, this restriction and the following disclaimer, | 12 ** the above license grant, this restriction and the following disclaimer, |
13 ** must be included in all copies of the Software, in whole or in part, and | 13 ** must be included in all copies of the Software, in whole or in part, and |
14 ** all derivative works of the Software, unless such copies or derivative | 14 ** all derivative works of the Software, unless such copies or derivative |
15 ** works are solely in the form of machine-executable object code generated by | 15 ** works are solely in the form of machine-executable object code generated by |
16 ** a source language processor. | 16 ** a source language processor. |
17 ** | 17 ** |
18 ** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | 18 ** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
19 ** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | 19 ** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
20 ** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT | 20 ** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT |
21 ** SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE | 21 ** SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE |
22 ** FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, | 22 ** FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, |
23 ** ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | 23 ** ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER |
24 ** DEALINGS IN THE SOFTWARE. | 24 ** DEALINGS IN THE SOFTWARE. |
25 ** -LICENSE-END- | 25 ** -LICENSE-END- |
26 */ | 26 */ |
27 | 27 |
28 #ifndef BMD_DECKLINKAPICONFIGURATION_H | |
29 #define BMD_DECKLINKAPICONFIGURATION_H | |
30 | |
31 | 28 |
32 #ifndef BMD_CONST | 29 #ifndef BMD_CONST |
33 #if defined(_MSC_VER) | 30 #if defined(_MSC_VER) |
34 #define BMD_CONST __declspec(selectany) static const | 31 #define BMD_CONST __declspec(selectany) static const |
35 #else | 32 #else |
36 #define BMD_CONST static const | 33 #define BMD_CONST static const |
37 #endif | 34 #endif |
38 #endif | 35 #endif |
39 | 36 |
40 // Type Declarations | 37 // Type Declarations |
41 | 38 |
42 | 39 |
43 // Interface ID Declarations | 40 // Enumeration Mapping |
44 | 41 |
45 BMD_CONST REFIID IID_IDeckLinkConfiguration = /* C679A35B-
610C-4D09-B748-1D0478100FC0 */ {0xC6,0x79,0xA3,0x5B,0x61,0x0C,0x4D,0x09,0xB7,0x4
8,0x1D,0x04,0x78,0x10,0x0F,0xC0}; | 42 cpp_quote("#if 0") |
| 43 cpp_quote("#endif") |
46 | 44 |
47 /* Enum BMDDeckLinkConfigurationID - DeckLink Configuration ID */ | 45 /* Enum BMDDeckLinkConfigurationID - DeckLink Configuration ID */ |
48 | 46 |
49 typedef uint32_t BMDDeckLinkConfigurationID; | 47 typedef [v1_enum] enum» _BMDDeckLinkConfigurationID { |
50 enum _BMDDeckLinkConfigurationID { | |
51 | 48 |
52 /* Serial port Flags */ | 49 /* Serial port Flags */ |
53 | 50 |
54 bmdDeckLinkConfigSwapSerialRxTx = 'ssrt', | 51 bmdDeckLinkConfigSwapSerialRxTx = /* 'ssrt' */
0x73737274, |
55 | 52 |
56 /* Video Input/Output Flags */ | 53 /* Video Input/Output Flags */ |
57 | 54 |
58 bmdDeckLinkConfigUse1080pNotPsF = 'fpro', | 55 bmdDeckLinkConfigUse1080pNotPsF = /* 'fpro' */
0x6670726F, |
59 | 56 |
60 /* Video Input/Output Integers */ | 57 /* Video Input/Output Integers */ |
61 | 58 |
62 bmdDeckLinkConfigHDMI3DPackingFormat = '3dpf', | 59 bmdDeckLinkConfigHDMI3DPackingFormat = /* '3dpf' */
0x33647066, |
63 bmdDeckLinkConfigBypass = 'byps', | 60 bmdDeckLinkConfigBypass = /* 'byps' */
0x62797073, |
64 bmdDeckLinkConfigClockTimingAdjustment = 'ctad', | 61 bmdDeckLinkConfigClockTimingAdjustment = /* 'ctad' */
0x63746164, |
65 | 62 |
66 /* Audio Input/Output Flags */ | 63 /* Audio Input/Output Flags */ |
67 | 64 |
68 bmdDeckLinkConfigAnalogAudioConsumerLevels = 'aacl', | 65 bmdDeckLinkConfigAnalogAudioConsumerLevels = /* 'aacl' */
0x6161636C, |
69 | 66 |
70 /* Video output flags */ | 67 /* Video output flags */ |
71 | 68 |
72 bmdDeckLinkConfigFieldFlickerRemoval = 'fdfr', | 69 bmdDeckLinkConfigFieldFlickerRemoval = /* 'fdfr' */
0x66646672, |
73 bmdDeckLinkConfigHD1080p24ToHD1080i5994Conversion = 'to59', | 70 bmdDeckLinkConfigHD1080p24ToHD1080i5994Conversion = /* 'to59' */
0x746F3539, |
74 bmdDeckLinkConfig444SDIVideoOutput = '444o', | 71 bmdDeckLinkConfig444SDIVideoOutput = /* '444o' */
0x3434346F, |
75 bmdDeckLinkConfig3GBpsVideoOutput = '3gbs', | 72 bmdDeckLinkConfig3GBpsVideoOutput = /* '3gbs' */
0x33676273, |
76 bmdDeckLinkConfigBlackVideoOutputDuringCapture = 'bvoc', | 73 bmdDeckLinkConfigBlackVideoOutputDuringCapture = /* 'bvoc' */
0x62766F63, |
77 bmdDeckLinkConfigLowLatencyVideoOutput = 'llvo', | 74 bmdDeckLinkConfigLowLatencyVideoOutput = /* 'llvo' */
0x6C6C766F, |
78 | 75 |
79 /* Video Output Integers */ | 76 /* Video Output Integers */ |
80 | 77 |
81 bmdDeckLinkConfigVideoOutputConnection = 'vocn', | 78 bmdDeckLinkConfigVideoOutputConnection = /* 'vocn' */
0x766F636E, |
82 bmdDeckLinkConfigVideoOutputConversionMode = 'vocm', | 79 bmdDeckLinkConfigVideoOutputConversionMode = /* 'vocm' */
0x766F636D, |
83 bmdDeckLinkConfigAnalogVideoOutputFlags = 'avof', | 80 bmdDeckLinkConfigAnalogVideoOutputFlags = /* 'avof' */
0x61766F66, |
84 bmdDeckLinkConfigReferenceInputTimingOffset = 'glot', | 81 bmdDeckLinkConfigReferenceInputTimingOffset = /* 'glot' */
0x676C6F74, |
85 bmdDeckLinkConfigVideoOutputIdleOperation = 'voio', | 82 bmdDeckLinkConfigVideoOutputIdleOperation = /* 'voio' */
0x766F696F, |
86 bmdDeckLinkConfigDefaultVideoOutputMode = 'dvom', | 83 bmdDeckLinkConfigDefaultVideoOutputMode = /* 'dvom' */
0x64766F6D, |
87 bmdDeckLinkConfigDefaultVideoOutputModeFlags = 'dvof', | 84 bmdDeckLinkConfigDefaultVideoOutputModeFlags = /* 'dvof' */
0x64766F66, |
88 | 85 |
89 /* Video Output Floats */ | 86 /* Video Output Floats */ |
90 | 87 |
91 bmdDeckLinkConfigVideoOutputComponentLumaGain = 'oclg', | 88 bmdDeckLinkConfigVideoOutputComponentLumaGain = /* 'oclg' */
0x6F636C67, |
92 bmdDeckLinkConfigVideoOutputComponentChromaBlueGain = 'occb', | 89 bmdDeckLinkConfigVideoOutputComponentChromaBlueGain = /* 'occb' */
0x6F636362, |
93 bmdDeckLinkConfigVideoOutputComponentChromaRedGain = 'occr', | 90 bmdDeckLinkConfigVideoOutputComponentChromaRedGain = /* 'occr' */
0x6F636372, |
94 bmdDeckLinkConfigVideoOutputCompositeLumaGain = 'oilg', | 91 bmdDeckLinkConfigVideoOutputCompositeLumaGain = /* 'oilg' */
0x6F696C67, |
95 bmdDeckLinkConfigVideoOutputCompositeChromaGain = 'oicg', | 92 bmdDeckLinkConfigVideoOutputCompositeChromaGain = /* 'oicg' */
0x6F696367, |
96 bmdDeckLinkConfigVideoOutputSVideoLumaGain = 'oslg', | 93 bmdDeckLinkConfigVideoOutputSVideoLumaGain = /* 'oslg' */
0x6F736C67, |
97 bmdDeckLinkConfigVideoOutputSVideoChromaGain = 'oscg', | 94 bmdDeckLinkConfigVideoOutputSVideoChromaGain = /* 'oscg' */
0x6F736367, |
98 | 95 |
99 /* Video Input Flags */ | 96 /* Video Input Flags */ |
100 | 97 |
101 bmdDeckLinkConfigVideoInputScanning = 'visc',»
// Applicable to H264 Pro Recorder only | 98 bmdDeckLinkConfigVideoInputScanning = /* 'visc' */
0x76697363,» // Applicable to H264 Pro Recorder only |
102 bmdDeckLinkConfigUseDedicatedLTCInput = 'dltc',»
// Use timecode from LTC input instead of SDI stream | 99 bmdDeckLinkConfigUseDedicatedLTCInput = /* 'dltc' */
0x646C7463,» // Use timecode from LTC input instead of SDI stream |
103 | 100 |
104 /* Video Input Integers */ | 101 /* Video Input Integers */ |
105 | 102 |
106 bmdDeckLinkConfigVideoInputConnection = 'vicn', | 103 bmdDeckLinkConfigVideoInputConnection = /* 'vicn' */
0x7669636E, |
107 bmdDeckLinkConfigAnalogVideoInputFlags = 'avif', | 104 bmdDeckLinkConfigAnalogVideoInputFlags = /* 'avif' */
0x61766966, |
108 bmdDeckLinkConfigVideoInputConversionMode = 'vicm', | 105 bmdDeckLinkConfigVideoInputConversionMode = /* 'vicm' */
0x7669636D, |
109 bmdDeckLinkConfig32PulldownSequenceInitialTimecodeFrame = 'pdif', | 106 bmdDeckLinkConfig32PulldownSequenceInitialTimecodeFrame = /* 'pdif' */
0x70646966, |
110 bmdDeckLinkConfigVANCSourceLine1Mapping = 'vsl1', | 107 bmdDeckLinkConfigVANCSourceLine1Mapping = /* 'vsl1' */
0x76736C31, |
111 bmdDeckLinkConfigVANCSourceLine2Mapping = 'vsl2', | 108 bmdDeckLinkConfigVANCSourceLine2Mapping = /* 'vsl2' */
0x76736C32, |
112 bmdDeckLinkConfigVANCSourceLine3Mapping = 'vsl3', | 109 bmdDeckLinkConfigVANCSourceLine3Mapping = /* 'vsl3' */
0x76736C33, |
113 bmdDeckLinkConfigCapturePassThroughMode = 'cptm', | 110 bmdDeckLinkConfigCapturePassThroughMode = /* 'cptm' */
0x6370746D, |
114 | 111 |
115 /* Video Input Floats */ | 112 /* Video Input Floats */ |
116 | 113 |
117 bmdDeckLinkConfigVideoInputComponentLumaGain = 'iclg', | 114 bmdDeckLinkConfigVideoInputComponentLumaGain = /* 'iclg' */
0x69636C67, |
118 bmdDeckLinkConfigVideoInputComponentChromaBlueGain = 'iccb', | 115 bmdDeckLinkConfigVideoInputComponentChromaBlueGain = /* 'iccb' */
0x69636362, |
119 bmdDeckLinkConfigVideoInputComponentChromaRedGain = 'iccr', | 116 bmdDeckLinkConfigVideoInputComponentChromaRedGain = /* 'iccr' */
0x69636372, |
120 bmdDeckLinkConfigVideoInputCompositeLumaGain = 'iilg', | 117 bmdDeckLinkConfigVideoInputCompositeLumaGain = /* 'iilg' */
0x69696C67, |
121 bmdDeckLinkConfigVideoInputCompositeChromaGain = 'iicg', | 118 bmdDeckLinkConfigVideoInputCompositeChromaGain = /* 'iicg' */
0x69696367, |
122 bmdDeckLinkConfigVideoInputSVideoLumaGain = 'islg', | 119 bmdDeckLinkConfigVideoInputSVideoLumaGain = /* 'islg' */
0x69736C67, |
123 bmdDeckLinkConfigVideoInputSVideoChromaGain = 'iscg', | 120 bmdDeckLinkConfigVideoInputSVideoChromaGain = /* 'iscg' */
0x69736367, |
124 | 121 |
125 /* Audio Input Integers */ | 122 /* Audio Input Integers */ |
126 | 123 |
127 bmdDeckLinkConfigAudioInputConnection = 'aicn', | 124 bmdDeckLinkConfigAudioInputConnection = /* 'aicn' */
0x6169636E, |
128 | 125 |
129 /* Audio Input Floats */ | 126 /* Audio Input Floats */ |
130 | 127 |
131 bmdDeckLinkConfigAnalogAudioInputScaleChannel1 = 'ais1', | 128 bmdDeckLinkConfigAnalogAudioInputScaleChannel1 = /* 'ais1' */
0x61697331, |
132 bmdDeckLinkConfigAnalogAudioInputScaleChannel2 = 'ais2', | 129 bmdDeckLinkConfigAnalogAudioInputScaleChannel2 = /* 'ais2' */
0x61697332, |
133 bmdDeckLinkConfigAnalogAudioInputScaleChannel3 = 'ais3', | 130 bmdDeckLinkConfigAnalogAudioInputScaleChannel3 = /* 'ais3' */
0x61697333, |
134 bmdDeckLinkConfigAnalogAudioInputScaleChannel4 = 'ais4', | 131 bmdDeckLinkConfigAnalogAudioInputScaleChannel4 = /* 'ais4' */
0x61697334, |
135 bmdDeckLinkConfigDigitalAudioInputScale = 'dais', | 132 bmdDeckLinkConfigDigitalAudioInputScale = /* 'dais' */
0x64616973, |
136 | 133 |
137 /* Audio Output Integers */ | 134 /* Audio Output Integers */ |
138 | 135 |
139 bmdDeckLinkConfigAudioOutputAESAnalogSwitch = 'aoaa', | 136 bmdDeckLinkConfigAudioOutputAESAnalogSwitch = /* 'aoaa' */
0x616F6161, |
140 | 137 |
141 /* Audio Output Floats */ | 138 /* Audio Output Floats */ |
142 | 139 |
143 bmdDeckLinkConfigAnalogAudioOutputScaleChannel1 = 'aos1', | 140 bmdDeckLinkConfigAnalogAudioOutputScaleChannel1 = /* 'aos1' */
0x616F7331, |
144 bmdDeckLinkConfigAnalogAudioOutputScaleChannel2 = 'aos2', | 141 bmdDeckLinkConfigAnalogAudioOutputScaleChannel2 = /* 'aos2' */
0x616F7332, |
145 bmdDeckLinkConfigAnalogAudioOutputScaleChannel3 = 'aos3', | 142 bmdDeckLinkConfigAnalogAudioOutputScaleChannel3 = /* 'aos3' */
0x616F7333, |
146 bmdDeckLinkConfigAnalogAudioOutputScaleChannel4 = 'aos4', | 143 bmdDeckLinkConfigAnalogAudioOutputScaleChannel4 = /* 'aos4' */
0x616F7334, |
147 bmdDeckLinkConfigDigitalAudioOutputScale = 'daos' | 144 bmdDeckLinkConfigDigitalAudioOutputScale = /* 'daos' */
0x64616F73 |
148 }; | 145 } BMDDeckLinkConfigurationID; |
149 | 146 |
150 // Forward Declarations | 147 // Forward Declarations |
151 | 148 |
152 class IDeckLinkConfiguration; | 149 interface IDeckLinkConfiguration; |
153 | 150 |
154 /* Interface IDeckLinkConfiguration - DeckLink Configuration interface */ | 151 /* Interface IDeckLinkConfiguration - DeckLink Configuration interface */ |
155 | 152 |
156 class IDeckLinkConfiguration : public IUnknown | 153 [ |
| 154 object, |
| 155 uuid(C679A35B-610C-4D09-B748-1D0478100FC0), |
| 156 local, |
| 157 helpstring("DeckLink Configuration interface") |
| 158 ] interface IDeckLinkConfiguration : IUnknown |
157 { | 159 { |
158 public: | 160 HRESULT SetFlag([in] BMDDeckLinkConfigurationID cfgID, [in] BOOL value); |
159 virtual HRESULT SetFlag (/* in */ BMDDeckLinkConfigurationID cfgID, /* in */
bool value) = 0; | 161 HRESULT GetFlag([in] BMDDeckLinkConfigurationID cfgID, [out] BOOL *value); |
160 virtual HRESULT GetFlag (/* in */ BMDDeckLinkConfigurationID cfgID, /* out *
/ bool *value) = 0; | 162 HRESULT SetInt([in] BMDDeckLinkConfigurationID cfgID, [in] LONGLONG value); |
161 virtual HRESULT SetInt (/* in */ BMDDeckLinkConfigurationID cfgID, /* in */
int64_t value) = 0; | 163 HRESULT GetInt([in] BMDDeckLinkConfigurationID cfgID, [out] LONGLONG *value)
; |
162 virtual HRESULT GetInt (/* in */ BMDDeckLinkConfigurationID cfgID, /* out */
int64_t *value) = 0; | 164 HRESULT SetFloat([in] BMDDeckLinkConfigurationID cfgID, [in] double value); |
163 virtual HRESULT SetFloat (/* in */ BMDDeckLinkConfigurationID cfgID, /* in *
/ double value) = 0; | 165 HRESULT GetFloat([in] BMDDeckLinkConfigurationID cfgID, [out] double *value)
; |
164 virtual HRESULT GetFloat (/* in */ BMDDeckLinkConfigurationID cfgID, /* out
*/ double *value) = 0; | 166 HRESULT SetString([in] BMDDeckLinkConfigurationID cfgID, [in] BSTR value); |
165 virtual HRESULT SetString (/* in */ BMDDeckLinkConfigurationID cfgID, /* in
*/ CFStringRef value) = 0; | 167 HRESULT GetString([in] BMDDeckLinkConfigurationID cfgID, [out] BSTR *value); |
166 virtual HRESULT GetString (/* in */ BMDDeckLinkConfigurationID cfgID, /* out
*/ CFStringRef *value) = 0; | 168 HRESULT WriteConfigurationToPreferences(void); |
167 virtual HRESULT WriteConfigurationToPreferences (void) = 0; | |
168 | |
169 protected: | |
170 virtual ~IDeckLinkConfiguration () {}; // call Release method to drop refere
nce count | |
171 }; | 169 }; |
172 | 170 |
173 /* Functions */ | 171 /* Coclasses */ |
174 | 172 |
175 extern "C" { | 173 importlib("stdole2.tlb"); |
176 | 174 |
177 | 175 |
178 }; | |
179 | |
180 | |
181 #endif /* defined(BMD_DECKLINKAPICONFIGURATION_H) */ | |
OLD | NEW |