1 // File generated by idl2d from 2 // ../DeckLinkAPIModes.idl 3 module decklink4d.bmd.decklinkapimodes; 4 5 import decklink4d.port; 6 import decklink4d.bmd.decklinkapitypes; 7 8 /* -LICENSE-START- 9 ** Copyright (c) 2013 Blackmagic Design 10 ** 11 ** Permission is hereby granted, free of charge, to any person or organization 12 ** obtaining a copy of the software and accompanying documentation covered by 13 ** this license (the "Software") to use, reproduce, display, distribute, 14 ** execute, and transmit the Software, and to prepare derivative works of the 15 ** Software, and to permit third-parties to whom the Software is furnished to 16 ** do so, all subject to the following: 17 ** 18 ** The copyright notices in the Software and this entire statement, including 19 ** the above license grant, this restriction and the following disclaimer, 20 ** must be included in all copies of the Software, in whole or in part, and 21 ** all derivative works of the Software, unless such copies or derivative 22 ** works are solely in the form of machine-executable object code generated by 23 ** a source language processor. 24 ** 25 ** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 26 ** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 27 ** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT 28 ** SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE 29 ** FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, 30 ** ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 31 ** DEALINGS IN THE SOFTWARE. 32 ** -LICENSE-END- 33 */ 34 35 // Type Declarations 36 37 // Enumeration Mapping 38 39 alias uint BMDDisplayModeFlags; 40 41 /* Enum BMDDisplayMode - Video display modes */ 42 43 enum 44 /+[v1_enum]+/ /+ _BMDDisplayMode+/ 45 { 46 47 /* SD Modes */ 48 49 bmdModeNTSC = /* 'ntsc' */ 0x6E747363, 50 bmdModeNTSC2398 = /* 'nt23' */ 0x6E743233, // 3:2 pulldown 51 bmdModePAL = /* 'pal ' */ 0x70616C20, 52 bmdModeNTSCp = /* 'ntsp' */ 0x6E747370, 53 bmdModePALp = /* 'palp' */ 0x70616C70, 54 55 /* HD 1080 Modes */ 56 57 bmdModeHD1080p2398 = /* '23ps' */ 0x32337073, 58 bmdModeHD1080p24 = /* '24ps' */ 0x32347073, 59 bmdModeHD1080p25 = /* 'Hp25' */ 0x48703235, 60 bmdModeHD1080p2997 = /* 'Hp29' */ 0x48703239, 61 bmdModeHD1080p30 = /* 'Hp30' */ 0x48703330, 62 bmdModeHD1080i50 = /* 'Hi50' */ 0x48693530, 63 bmdModeHD1080i5994 = /* 'Hi59' */ 0x48693539, 64 bmdModeHD1080i6000 = /* 'Hi60' */ 0x48693630, // N.B. This _really_ is 60.00 Hz. 65 bmdModeHD1080p50 = /* 'Hp50' */ 0x48703530, 66 bmdModeHD1080p5994 = /* 'Hp59' */ 0x48703539, 67 bmdModeHD1080p6000 = /* 'Hp60' */ 0x48703630, // N.B. This _really_ is 60.00 Hz. 68 69 /* HD 720 Modes */ 70 71 bmdModeHD720p50 = /* 'hp50' */ 0x68703530, 72 bmdModeHD720p5994 = /* 'hp59' */ 0x68703539, 73 bmdModeHD720p60 = /* 'hp60' */ 0x68703630, 74 75 /* 2k Modes */ 76 77 bmdMode2k2398 = /* '2k23' */ 0x326B3233, 78 bmdMode2k24 = /* '2k24' */ 0x326B3234, 79 bmdMode2k25 = /* '2k25' */ 0x326B3235, 80 81 /* 4k Modes */ 82 83 bmdMode4K2160p2398 = /* '4k23' */ 0x346B3233, 84 bmdMode4K2160p24 = /* '4k24' */ 0x346B3234, 85 bmdMode4K2160p25 = /* '4k25' */ 0x346B3235, 86 bmdMode4K2160p2997 = /* '4k29' */ 0x346B3239, 87 bmdMode4K2160p30 = /* '4k30' */ 0x346B3330, 88 89 /* Special Modes */ 90 91 bmdModeUnknown = /* 'iunk' */ 0x69756E6B 92 } 93 alias int _BMDDisplayMode; 94 alias int BMDDisplayMode; 95 96 /* Enum BMDFieldDominance - Video field dominance */ 97 98 enum 99 /+[v1_enum]+/ /+ _BMDFieldDominance+/ 100 { 101 bmdUnknownFieldDominance = 0, 102 bmdLowerFieldFirst = /* 'lowr' */ 0x6C6F7772, 103 bmdUpperFieldFirst = /* 'uppr' */ 0x75707072, 104 bmdProgressiveFrame = /* 'prog' */ 0x70726F67, 105 bmdProgressiveSegmentedFrame = /* 'psf ' */ 0x70736620 106 } 107 alias int _BMDFieldDominance; 108 alias int BMDFieldDominance; 109 110 /* Enum BMDPixelFormat - Video pixel formats supported for output/input */ 111 112 enum 113 /+[v1_enum]+/ /+ _BMDPixelFormat+/ 114 { 115 bmdFormat8BitYUV = /* '2vuy' */ 0x32767579, 116 bmdFormat10BitYUV = /* 'v210' */ 0x76323130, 117 bmdFormat8BitARGB = 32, 118 bmdFormat8BitBGRA = /* 'BGRA' */ 0x42475241, 119 bmdFormat10BitRGB = /* 'r210' */ 0x72323130 120 } 121 alias int _BMDPixelFormat; 122 alias int BMDPixelFormat; 123 124 /* Enum BMDDisplayModeFlags - Flags to describe the characteristics of an IDeckLinkDisplayMode. */ 125 126 /+[v1_enum]+/ enum /+ _BMDDisplayModeFlags+/ : int 127 { 128 bmdDisplayModeSupports3D = 1 << 0, 129 bmdDisplayModeColorspaceRec601 = 1 << 1, 130 bmdDisplayModeColorspaceRec709 = 1 << 2 131 } 132 alias int _BMDDisplayModeFlags; 133 134 // Forward Declarations 135 136 /+ interface IDeckLinkDisplayModeIterator; +/ 137 /+ interface IDeckLinkDisplayMode; +/ 138 139 /* Interface IDeckLinkDisplayModeIterator - enumerates over supported input/output display modes. */ 140 141 const GUID IID_IDeckLinkDisplayModeIterator = IDeckLinkDisplayModeIterator.iid; 142 143 interface IDeckLinkDisplayModeIterator : IUnknown 144 { 145 extern(System): 146 static const GUID iid = { 0x9C88499F,0xF601,0x4021,[ 0xB8,0x0B,0x03,0x2E,0x4E,0xB4,0x1C,0x35 ] }; 147 HRESULT Next(/+[out]+/ IDeckLinkDisplayMode *deckLinkDisplayMode); 148 }; 149 150 /* Interface IDeckLinkDisplayMode - represents a display mode */ 151 152 const GUID IID_IDeckLinkDisplayMode = IDeckLinkDisplayMode.iid; 153 154 interface IDeckLinkDisplayMode : IUnknown 155 { 156 extern(System): 157 static const GUID iid = { 0x3EB2C1AB,0x0A3D,0x4523,[ 0xA3,0xAD,0xF4,0x0D,0x7F,0xB1,0x4E,0x78 ] }; 158 HRESULT GetName(/+[out]+/ BMDSTR *name); 159 BMDDisplayMode GetDisplayMode(); 160 int GetWidth(); 161 int GetHeight(); 162 HRESULT GetFrameRate(/+[out]+/ BMDTimeValue *frameDuration, 163 /+[out]+/ BMDTimeScale *timeScale); 164 BMDFieldDominance GetFieldDominance(); 165 BMDDisplayModeFlags GetFlags(); 166 };