OLD | NEW |
---|---|
(Empty) | |
1 /* -LICENSE-START- | |
2 ** Copyright (c) 2009 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 /* DeckLinkAPIDispatch_v7_6.cpp */ | |
28 | |
29 #include "DeckLinkAPI_v7_6.h" | |
30 #include <pthread.h> | |
31 | |
32 #define kDeckLinkAPI_BundlePath "/Library/Frameworks/DeckLinkAPI.framework" | |
perkj_chrome
2014/08/28 11:35:44
This file is not used in the gyp file. Should it s
| |
33 | |
34 typedef IDeckLinkIterator* (*CreateIteratorFunc_v7_6)(void); | |
35 typedef IDeckLinkGLScreenPreviewHelper_v7_6* (*CreateOpenGLScreenPreviewHelperFu nc_v7_6)(void); | |
36 typedef IDeckLinkCocoaScreenPreviewCallback_v7_6* (*CreateCocoaScreenPreviewFunc _v7_6)(void*); | |
37 typedef IDeckLinkVideoConversion_v7_6* (*CreateVideoConversionInstanceFunc_v7_6) (void); | |
38 | |
39 static pthread_once_t gDeckLinkOnceControl = PTHREAD_ONCE_INIT; | |
40 static CFBundleRef gBundleRef = NULL; | |
41 static CreateIteratorFunc_v7_6 gCreateI teratorFunc = NULL; | |
42 static CreateOpenGLScreenPreviewHelperFunc_v7_6 gCreateOpenGLPreviewFunc = NULL; | |
43 static CreateCocoaScreenPreviewFunc_v7_6 gCreateCocoaPrev iewFunc = NULL; | |
44 static CreateVideoConversionInstanceFunc_v7_6 gCreateVideoConversionFu nc = NULL; | |
45 | |
46 | |
47 void InitDeckLinkAPI_v7_6 (void) | |
48 { | |
49 CFURLRef bundleURL; | |
50 | |
51 bundleURL = CFURLCreateWithFileSystemPath(kCFAllocatorDefault, CFSTR(kDe ckLinkAPI_BundlePath), kCFURLPOSIXPathStyle, true); | |
52 if (bundleURL != NULL) | |
53 { | |
54 gBundleRef = CFBundleCreate(kCFAllocatorDefault, bundleURL); | |
55 if (gBundleRef != NULL) | |
56 { | |
57 gCreateIteratorFunc = (CreateIteratorFunc_v7_6)CFBundleG etFunctionPointerForName(gBundleRef, CFSTR("CreateDeckLinkIteratorInstance")); | |
58 gCreateOpenGLPreviewFunc = (CreateOpenGLScreenPreviewHel perFunc_v7_6)CFBundleGetFunctionPointerForName(gBundleRef, CFSTR("CreateOpenGLSc reenPreviewHelper")); | |
59 gCreateCocoaPreviewFunc = (CreateCocoaScreenPreviewFunc_ v7_6)CFBundleGetFunctionPointerForName(gBundleRef, CFSTR("CreateCocoaScreenPrevi ew")); | |
60 gCreateVideoConversionFunc = (CreateVideoConversionInsta nceFunc_v7_6)CFBundleGetFunctionPointerForName(gBundleRef, CFSTR("CreateVideoCon versionInstance")); | |
61 } | |
62 CFRelease(bundleURL); | |
63 } | |
64 } | |
65 | |
66 IDeckLinkIterator* CreateDeckLinkIteratorInstance_v7_6 (void) | |
67 { | |
68 pthread_once(&gDeckLinkOnceControl, InitDeckLinkAPI_v7_6); | |
69 | |
70 if (gCreateIteratorFunc == NULL) | |
71 return NULL; | |
72 | |
73 return gCreateIteratorFunc(); | |
74 } | |
75 | |
76 IDeckLinkGLScreenPreviewHelper_v7_6* CreateOpenGLScreenPreviewHelper_ v7_6 (void) | |
77 { | |
78 pthread_once(&gDeckLinkOnceControl, InitDeckLinkAPI_v7_6); | |
79 | |
80 if (gCreateOpenGLPreviewFunc == NULL) | |
81 return NULL; | |
82 | |
83 return gCreateOpenGLPreviewFunc(); | |
84 } | |
85 | |
86 IDeckLinkCocoaScreenPreviewCallback_v7_6* CreateCocoaScreenPreview_v7_6 (v oid* parentView) | |
87 { | |
88 pthread_once(&gDeckLinkOnceControl, InitDeckLinkAPI_v7_6); | |
89 | |
90 if (gCreateCocoaPreviewFunc == NULL) | |
91 return NULL; | |
92 | |
93 return gCreateCocoaPreviewFunc(parentView); | |
94 } | |
95 | |
96 IDeckLinkVideoConversion_v7_6* CreateVideoConversionInstance_v7_6 (void) | |
97 { | |
98 pthread_once(&gDeckLinkOnceControl, InitDeckLinkAPI_v7_6); | |
99 | |
100 if (gCreateVideoConversionFunc == NULL) | |
101 return NULL; | |
102 | |
103 return gCreateVideoConversionFunc(); | |
104 } | |
105 | |
OLD | NEW |