DeckLinkAPIConfiguration.h revision 1320f92c476a1ad9d19dba2a48c72b75566198e9
1/* -LICENSE-START-
2** Copyright (c) 2014 Blackmagic Design
3**
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
6** this license (the "Software") to use, reproduce, display, distribute,
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
9** do so, all subject to the following:
10**
11** The copyright notices in the Software and this entire statement, including
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
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
16** a source language processor.
17**
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,
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
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
24** DEALINGS IN THE SOFTWARE.
25** -LICENSE-END-
26*/
27
28#ifndef BMD_DECKLINKAPICONFIGURATION_H
29#define BMD_DECKLINKAPICONFIGURATION_H
30
31
32#ifndef BMD_CONST
33    #if defined(_MSC_VER)
34        #define BMD_CONST __declspec(selectany) static const
35    #else
36        #define BMD_CONST static const
37    #endif
38#endif
39
40// Type Declarations
41
42
43// Interface ID Declarations
44
45BMD_CONST REFIID IID_IDeckLinkConfiguration                       = /* C679A35B-610C-4D09-B748-1D0478100FC0 */ {0xC6,0x79,0xA3,0x5B,0x61,0x0C,0x4D,0x09,0xB7,0x48,0x1D,0x04,0x78,0x10,0x0F,0xC0};
46
47/* Enum BMDDeckLinkConfigurationID - DeckLink Configuration ID */
48
49typedef uint32_t BMDDeckLinkConfigurationID;
50enum _BMDDeckLinkConfigurationID {
51
52    /* Serial port Flags */
53
54    bmdDeckLinkConfigSwapSerialRxTx                              = 'ssrt',
55
56    /* Video Input/Output Flags */
57
58    bmdDeckLinkConfigUse1080pNotPsF                              = 'fpro',
59
60    /* Video Input/Output Integers */
61
62    bmdDeckLinkConfigHDMI3DPackingFormat                         = '3dpf',
63    bmdDeckLinkConfigBypass                                      = 'byps',
64    bmdDeckLinkConfigClockTimingAdjustment                       = 'ctad',
65
66    /* Audio Input/Output Flags */
67
68    bmdDeckLinkConfigAnalogAudioConsumerLevels                   = 'aacl',
69
70    /* Video output flags */
71
72    bmdDeckLinkConfigFieldFlickerRemoval                         = 'fdfr',
73    bmdDeckLinkConfigHD1080p24ToHD1080i5994Conversion            = 'to59',
74    bmdDeckLinkConfig444SDIVideoOutput                           = '444o',
75    bmdDeckLinkConfig3GBpsVideoOutput                            = '3gbs',
76    bmdDeckLinkConfigBlackVideoOutputDuringCapture               = 'bvoc',
77    bmdDeckLinkConfigLowLatencyVideoOutput                       = 'llvo',
78
79    /* Video Output Integers */
80
81    bmdDeckLinkConfigVideoOutputConnection                       = 'vocn',
82    bmdDeckLinkConfigVideoOutputConversionMode                   = 'vocm',
83    bmdDeckLinkConfigAnalogVideoOutputFlags                      = 'avof',
84    bmdDeckLinkConfigReferenceInputTimingOffset                  = 'glot',
85    bmdDeckLinkConfigVideoOutputIdleOperation                    = 'voio',
86    bmdDeckLinkConfigDefaultVideoOutputMode                      = 'dvom',
87    bmdDeckLinkConfigDefaultVideoOutputModeFlags                 = 'dvof',
88
89    /* Video Output Floats */
90
91    bmdDeckLinkConfigVideoOutputComponentLumaGain                = 'oclg',
92    bmdDeckLinkConfigVideoOutputComponentChromaBlueGain          = 'occb',
93    bmdDeckLinkConfigVideoOutputComponentChromaRedGain           = 'occr',
94    bmdDeckLinkConfigVideoOutputCompositeLumaGain                = 'oilg',
95    bmdDeckLinkConfigVideoOutputCompositeChromaGain              = 'oicg',
96    bmdDeckLinkConfigVideoOutputSVideoLumaGain                   = 'oslg',
97    bmdDeckLinkConfigVideoOutputSVideoChromaGain                 = 'oscg',
98
99    /* Video Input Flags */
100
101    bmdDeckLinkConfigVideoInputScanning                          = 'visc',	// Applicable to H264 Pro Recorder only
102    bmdDeckLinkConfigUseDedicatedLTCInput                        = 'dltc',	// Use timecode from LTC input instead of SDI stream
103
104    /* Video Input Integers */
105
106    bmdDeckLinkConfigVideoInputConnection                        = 'vicn',
107    bmdDeckLinkConfigAnalogVideoInputFlags                       = 'avif',
108    bmdDeckLinkConfigVideoInputConversionMode                    = 'vicm',
109    bmdDeckLinkConfig32PulldownSequenceInitialTimecodeFrame      = 'pdif',
110    bmdDeckLinkConfigVANCSourceLine1Mapping                      = 'vsl1',
111    bmdDeckLinkConfigVANCSourceLine2Mapping                      = 'vsl2',
112    bmdDeckLinkConfigVANCSourceLine3Mapping                      = 'vsl3',
113    bmdDeckLinkConfigCapturePassThroughMode                      = 'cptm',
114
115    /* Video Input Floats */
116
117    bmdDeckLinkConfigVideoInputComponentLumaGain                 = 'iclg',
118    bmdDeckLinkConfigVideoInputComponentChromaBlueGain           = 'iccb',
119    bmdDeckLinkConfigVideoInputComponentChromaRedGain            = 'iccr',
120    bmdDeckLinkConfigVideoInputCompositeLumaGain                 = 'iilg',
121    bmdDeckLinkConfigVideoInputCompositeChromaGain               = 'iicg',
122    bmdDeckLinkConfigVideoInputSVideoLumaGain                    = 'islg',
123    bmdDeckLinkConfigVideoInputSVideoChromaGain                  = 'iscg',
124
125    /* Audio Input Integers */
126
127    bmdDeckLinkConfigAudioInputConnection                        = 'aicn',
128
129    /* Audio Input Floats */
130
131    bmdDeckLinkConfigAnalogAudioInputScaleChannel1               = 'ais1',
132    bmdDeckLinkConfigAnalogAudioInputScaleChannel2               = 'ais2',
133    bmdDeckLinkConfigAnalogAudioInputScaleChannel3               = 'ais3',
134    bmdDeckLinkConfigAnalogAudioInputScaleChannel4               = 'ais4',
135    bmdDeckLinkConfigDigitalAudioInputScale                      = 'dais',
136
137    /* Audio Output Integers */
138
139    bmdDeckLinkConfigAudioOutputAESAnalogSwitch                  = 'aoaa',
140
141    /* Audio Output Floats */
142
143    bmdDeckLinkConfigAnalogAudioOutputScaleChannel1              = 'aos1',
144    bmdDeckLinkConfigAnalogAudioOutputScaleChannel2              = 'aos2',
145    bmdDeckLinkConfigAnalogAudioOutputScaleChannel3              = 'aos3',
146    bmdDeckLinkConfigAnalogAudioOutputScaleChannel4              = 'aos4',
147    bmdDeckLinkConfigDigitalAudioOutputScale                     = 'daos'
148};
149
150// Forward Declarations
151
152class IDeckLinkConfiguration;
153
154/* Interface IDeckLinkConfiguration - DeckLink Configuration interface */
155
156class IDeckLinkConfiguration : public IUnknown
157{
158public:
159    virtual HRESULT SetFlag (/* in */ BMDDeckLinkConfigurationID cfgID, /* in */ bool value) = 0;
160    virtual HRESULT GetFlag (/* in */ BMDDeckLinkConfigurationID cfgID, /* out */ bool *value) = 0;
161    virtual HRESULT SetInt (/* in */ BMDDeckLinkConfigurationID cfgID, /* in */ int64_t value) = 0;
162    virtual HRESULT GetInt (/* in */ BMDDeckLinkConfigurationID cfgID, /* out */ int64_t *value) = 0;
163    virtual HRESULT SetFloat (/* in */ BMDDeckLinkConfigurationID cfgID, /* in */ double value) = 0;
164    virtual HRESULT GetFloat (/* in */ BMDDeckLinkConfigurationID cfgID, /* out */ double *value) = 0;
165    virtual HRESULT SetString (/* in */ BMDDeckLinkConfigurationID cfgID, /* in */ CFStringRef value) = 0;
166    virtual HRESULT GetString (/* in */ BMDDeckLinkConfigurationID cfgID, /* out */ CFStringRef *value) = 0;
167    virtual HRESULT WriteConfigurationToPreferences (void) = 0;
168
169protected:
170    virtual ~IDeckLinkConfiguration () {}; // call Release method to drop reference count
171};
172
173/* Functions */
174
175extern "C" {
176
177
178};
179
180
181#endif /* defined(BMD_DECKLINKAPICONFIGURATION_H) */
182