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 45 BMD_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 49 typedef uint32_t BMDDeckLinkConfigurationID; 50 enum _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 152 class IDeckLinkConfiguration; 153 154 /* Interface IDeckLinkConfiguration - DeckLink Configuration interface */ 155 156 class IDeckLinkConfiguration : public IUnknown 157 { 158 public: 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 169 protected: 170 virtual ~IDeckLinkConfiguration () {}; // call Release method to drop reference count 171 }; 172 173 /* Functions */ 174 175 extern "C" { 176 177 178 }; 179 180 181 #endif /* defined(BMD_DECKLINKAPICONFIGURATION_H) */ 182