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