1 // File generated by idl2d from
2 //   ../DeckLinkAPITypes.idl
3 module decklink4d.bmd.decklinkapitypes;
4 
5 import decklink4d.port;
6 
7 /* -LICENSE-START-
8 ** Copyright (c) 2013 Blackmagic Design
9 **
10 ** Permission is hereby granted, free of charge, to any person or organization
11 ** obtaining a copy of the software and accompanying documentation covered by
12 ** this license (the "Software") to use, reproduce, display, distribute,
13 ** execute, and transmit the Software, and to prepare derivative works of the
14 ** Software, and to permit third-parties to whom the Software is furnished to
15 ** do so, all subject to the following:
16 ** 
17 ** The copyright notices in the Software and this entire statement, including
18 ** the above license grant, this restriction and the following disclaimer,
19 ** must be included in all copies of the Software, in whole or in part, and
20 ** all derivative works of the Software, unless such copies or derivative
21 ** works are solely in the form of machine-executable object code generated by
22 ** a source language processor.
23 ** 
24 ** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
25 ** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
26 ** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
27 ** SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
28 ** FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
29 ** ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
30 ** DEALINGS IN THE SOFTWARE.
31 ** -LICENSE-END-
32 */
33 
34 // Type Declarations
35 
36 alias LONGLONG BMDTimeValue;
37 alias LONGLONG BMDTimeScale;
38 alias uint BMDTimecodeBCD;
39 alias uint BMDTimecodeUserBits;
40 
41 // Enumeration Mapping
42 
43 alias uint BMDTimecodeFlags; 
44 
45 /* Enum BMDTimecodeFlags - Timecode flags */
46 
47 /+[v1_enum]+/ enum /+	_BMDTimecodeFlags+/ : int 
48 {
49     bmdTimecodeFlagDefault                                       = 0,
50     bmdTimecodeIsDropFrame                                       = 1 << 0
51 }
52 alias int	_BMDTimecodeFlags;
53 
54 /* Enum BMDVideoConnection - Video connection types */
55 
56 enum 
57 		/+[v1_enum]+/ /+	_BMDVideoConnection+/
58 {
59     bmdVideoConnectionSDI                                        = 1 << 0,
60     bmdVideoConnectionHDMI                                       = 1 << 1,
61     bmdVideoConnectionOpticalSDI                                 = 1 << 2,
62     bmdVideoConnectionComponent                                  = 1 << 3,
63     bmdVideoConnectionComposite                                  = 1 << 4,
64     bmdVideoConnectionSVideo                                     = 1 << 5
65 }
66 alias int	_BMDVideoConnection;
67 alias int BMDVideoConnection;
68 
69 // Forward Declarations
70 
71 /+ interface IDeckLinkTimecode; +/
72 
73 /* Interface IDeckLinkTimecode - Used for video frame timecode representation. */
74 
75 const GUID IID_IDeckLinkTimecode = IDeckLinkTimecode.iid;
76 
77 interface IDeckLinkTimecode : IUnknown
78 {
79 extern(System):
80     static const GUID iid = { 0xBC6CFBD3,0x8317,0x4325,[ 0xAC,0x1C,0x12,0x16,0x39,0x1E,0x93,0x40 ] };
81     BMDTimecodeBCD GetBCD();
82     HRESULT GetComponents(/+[out]+/ ubyte *hours, 
83 		/+[out]+/ ubyte *minutes, 
84 		/+[out]+/ ubyte *seconds, 
85 		/+[out]+/ ubyte *frames);
86     HRESULT GetString(/+[out]+/ BMDSTR *timecode);
87     BMDTimecodeFlags GetFlags();
88     HRESULT GetTimecodeUserBits(/+[out]+/ BMDTimecodeUserBits *userBits);
89 };