49 }
50
51 + (OSXMediaPlayer*) peerForPlayer:(jobject)javaPlayer andEnv:(JNIEnv*)javaEnv
52 {
53 return [gMediaPlayerPeers peerForJObject:javaPlayer javaEnv:javaEnv];
54 }
55
56 + (void) setPeer:(OSXMediaPlayer*)player forJavaPlayer:(jobject)javaPlayer andEnv:(JNIEnv*)javaEnv
57 {
58 [gMediaPlayerPeers setPeer:player forJObject:javaPlayer javaEnv:javaEnv];
59 }
60
61 + (void) removePlayerPeers:(OSXMediaPlayer*)player
62 {
63 [gMediaPlayerPeers removePeer:player];
64 }
65
66 + (BOOL) initPlayerPlatform
67 {
68 BOOL enableAVF = YES;
69 BOOL enableQTK = YES;
70
71 // Check environment to see if platforms are enabled
72 char *value = getenv("JFXMEDIA_AVF");
73 if (value ? strncasecmp(value, "yes", 3) != 0 : NO) {
74 enableAVF = NO;
75 }
76
77 value = getenv("JFXMEDIA_QTKIT");
78 if (value ? strncasecmp(value, "yes", 3) != 0 : NO) {
79 enableQTK = NO;
80 }
81
82 // Determine if we can use OSX native player libs, without linking directly
83 Class klass;
84
85 if (enableAVF) {
86 klass = objc_getClass("AVFMediaPlayer");
87 if (klass) {
88 if ([klass conformsToProtocol:@protocol(OSXPlayerProtocol)]) {
89 if ([klass respondsToSelector:@selector(playerAvailable)] ? [klass playerAvailable] : YES) {
90 gMediaPlayerClass = klass;
91 return YES;
92 }
93 }
94 }
95 }
96
97 if (enableQTK) {
98 klass = objc_getClass("QTKMediaPlayer");
99 if (klass) {
100 // And make sure it conforms to the OSXPlayerProtocol
101 if ([klass conformsToProtocol:@protocol(OSXPlayerProtocol)]) {
102 if ([klass respondsToSelector:@selector(playerAvailable)] ? [klass playerAvailable] : YES) {
103 gMediaPlayerClass = klass;
104 return YES;
105 }
106 }
107 }
108 }
109
110 return NO;
111 }
112
113 - (id) init
114 {
115 if ((self = [super init]) != nil) {
116 }
117 return self;
118 }
119
120 - (id) initWithURL:(NSURL *)source javaPlayer:(jobject)jp andEnv:(JNIEnv*)env eventHandler:(CJavaPlayerEventDispatcher*)hdlr
121 {
122 if (!gMediaPlayerClass) {
123 // No player class available, abort
124 return nil;
125 }
126
127 if ((self = [super init]) != nil) {
128 movieURL = [source retain];
129
|
49 }
50
51 + (OSXMediaPlayer*) peerForPlayer:(jobject)javaPlayer andEnv:(JNIEnv*)javaEnv
52 {
53 return [gMediaPlayerPeers peerForJObject:javaPlayer javaEnv:javaEnv];
54 }
55
56 + (void) setPeer:(OSXMediaPlayer*)player forJavaPlayer:(jobject)javaPlayer andEnv:(JNIEnv*)javaEnv
57 {
58 [gMediaPlayerPeers setPeer:player forJObject:javaPlayer javaEnv:javaEnv];
59 }
60
61 + (void) removePlayerPeers:(OSXMediaPlayer*)player
62 {
63 [gMediaPlayerPeers removePeer:player];
64 }
65
66 + (BOOL) initPlayerPlatform
67 {
68 BOOL enableAVF = YES;
69
70 // Check environment to see if platforms are enabled
71 char *value = getenv("JFXMEDIA_AVF");
72 if (value ? strncasecmp(value, "yes", 3) != 0 : NO) {
73 enableAVF = NO;
74 }
75
76 // Determine if we can use OSX native player libs, without linking directly
77 Class klass;
78
79 if (enableAVF) {
80 klass = objc_getClass("AVFMediaPlayer");
81 if (klass) {
82 if ([klass conformsToProtocol:@protocol(OSXPlayerProtocol)]) {
83 if ([klass respondsToSelector:@selector(playerAvailable)] ? [klass playerAvailable] : YES) {
84 gMediaPlayerClass = klass;
85 return YES;
86 }
87 }
88 }
89 }
90
91 return NO;
92 }
93
94 - (id) init
95 {
96 if ((self = [super init]) != nil) {
97 }
98 return self;
99 }
100
101 - (id) initWithURL:(NSURL *)source javaPlayer:(jobject)jp andEnv:(JNIEnv*)env eventHandler:(CJavaPlayerEventDispatcher*)hdlr
102 {
103 if (!gMediaPlayerClass) {
104 // No player class available, abort
105 return nil;
106 }
107
108 if ((self = [super init]) != nil) {
109 movieURL = [source retain];
110
|