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 };