| /* -LICENSE-START- |
| ** Copyright (c) 2014 Blackmagic Design |
| ** |
| ** Permission is hereby granted, free of charge, to any person or organization |
| ** obtaining a copy of the software and accompanying documentation covered by |
| ** this license (the "Software") to use, reproduce, display, distribute, |
| ** execute, and transmit the Software, and to prepare derivative works of the |
| ** Software, and to permit third-parties to whom the Software is furnished to |
| ** do so, all subject to the following: |
| ** |
| ** The copyright notices in the Software and this entire statement, including |
| ** the above license grant, this restriction and the following disclaimer, |
| ** must be included in all copies of the Software, in whole or in part, and |
| ** all derivative works of the Software, unless such copies or derivative |
| ** works are solely in the form of machine-executable object code generated by |
| ** a source language processor. |
| ** |
| ** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
| ** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
| ** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT |
| ** SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE |
| ** FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, |
| ** ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER |
| ** DEALINGS IN THE SOFTWARE. |
| ** -LICENSE-END- |
| */ |
| |
| |
| #ifndef BMD_CONST |
| #if defined(_MSC_VER) |
| #define BMD_CONST __declspec(selectany) static const |
| #else |
| #define BMD_CONST static const |
| #endif |
| #endif |
| |
| // Type Declarations |
| |
| typedef LONGLONG BMDTimeValue; |
| typedef LONGLONG BMDTimeScale; |
| typedef unsigned long BMDTimecodeBCD; |
| typedef unsigned long BMDTimecodeUserBits; |
| |
| // Enumeration Mapping |
| |
| cpp_quote("typedef unsigned long BMDTimecodeFlags;") |
| cpp_quote("#if 0") |
| typedef enum _BMDTimecodeFlags BMDTimecodeFlags; |
| cpp_quote("#endif") |
| |
| /* Enum BMDTimecodeFlags - Timecode flags */ |
| |
| [v1_enum] enum _BMDTimecodeFlags { |
| bmdTimecodeFlagDefault = 0, |
| bmdTimecodeIsDropFrame = 1 << 0 |
| }; |
| |
| /* Enum BMDVideoConnection - Video connection types */ |
| |
| typedef [v1_enum] enum _BMDVideoConnection { |
| bmdVideoConnectionSDI = 1 << 0, |
| bmdVideoConnectionHDMI = 1 << 1, |
| bmdVideoConnectionOpticalSDI = 1 << 2, |
| bmdVideoConnectionComponent = 1 << 3, |
| bmdVideoConnectionComposite = 1 << 4, |
| bmdVideoConnectionSVideo = 1 << 5 |
| } BMDVideoConnection; |
| |
| // Forward Declarations |
| |
| interface IDeckLinkTimecode; |
| |
| /* Interface IDeckLinkTimecode - Used for video frame timecode representation. */ |
| |
| [ |
| object, |
| uuid(BC6CFBD3-8317-4325-AC1C-1216391E9340), |
| helpstring("Used for video frame timecode representation.") |
| ] interface IDeckLinkTimecode : IUnknown |
| { |
| BMDTimecodeBCD GetBCD(void); |
| HRESULT GetComponents([out] unsigned char *hours, [out] unsigned char *minutes, [out] unsigned char *seconds, [out] unsigned char *frames); |
| HRESULT GetString([out] BSTR *timecode); |
| BMDTimecodeFlags GetFlags(void); |
| HRESULT GetTimecodeUserBits([out] BMDTimecodeUserBits *userBits); |
| }; |
| |
| /* Coclasses */ |
| |
| importlib("stdole2.tlb"); |
| |
| |