Commit 92b48ad4 authored by David Fuhrmann's avatar David Fuhrmann

macosx: add own video view for each window

Note that this commit will break some stuff for non-embedded cases, for now.

refs #6814
parent b9dc8922
...@@ -21,6 +21,7 @@ ...@@ -21,6 +21,7 @@
</object> </object>
<object class="NSMutableArray" key="IBDocument.EditedObjectIDs"> <object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
<bool key="EncodedWithXMLCoder">YES</bool> <bool key="EncodedWithXMLCoder">YES</bool>
<integer value="2"/>
</object> </object>
<object class="NSArray" key="IBDocument.PluginDependencies"> <object class="NSArray" key="IBDocument.PluginDependencies">
<bool key="EncodedWithXMLCoder">YES</bool> <bool key="EncodedWithXMLCoder">YES</bool>
...@@ -53,7 +54,7 @@ ...@@ -53,7 +54,7 @@
<nil key="NSUserInterfaceItemIdentifier"/> <nil key="NSUserInterfaceItemIdentifier"/>
<string key="NSWindowContentMaxSize">{1.7976931348623157e+308, 1.7976931348623157e+308}</string> <string key="NSWindowContentMaxSize">{1.7976931348623157e+308, 1.7976931348623157e+308}</string>
<object class="NSView" key="NSWindowView" id="429932428"> <object class="NSView" key="NSWindowView" id="429932428">
<nil key="NSNextResponder"/> <reference key="NSNextResponder"/>
<int key="NSvFlags">256</int> <int key="NSvFlags">256</int>
<object class="NSMutableArray" key="NSSubviews"> <object class="NSMutableArray" key="NSSubviews">
<bool key="EncodedWithXMLCoder">YES</bool> <bool key="EncodedWithXMLCoder">YES</bool>
...@@ -191,6 +192,7 @@ ...@@ -191,6 +192,7 @@
</object> </object>
<string key="NSFrame">{{1, 1}, {199, 272}}</string> <string key="NSFrame">{{1, 1}, {199, 272}}</string>
<reference key="NSSuperview" ref="979766179"/> <reference key="NSSuperview" ref="979766179"/>
<reference key="NSNextKeyView" ref="1064884668"/>
<reference key="NSDocView" ref="1064884668"/> <reference key="NSDocView" ref="1064884668"/>
<reference key="NSBGColor" ref="885475112"/> <reference key="NSBGColor" ref="885475112"/>
<int key="NScvFlags">4</int> <int key="NScvFlags">4</int>
...@@ -219,6 +221,7 @@ ...@@ -219,6 +221,7 @@
</object> </object>
<string key="NSFrameSize">{201, 274}</string> <string key="NSFrameSize">{201, 274}</string>
<reference key="NSSuperview" ref="824340487"/> <reference key="NSSuperview" ref="824340487"/>
<reference key="NSNextKeyView" ref="18556274"/>
<int key="NSsFlags">133650</int> <int key="NSsFlags">133650</int>
<reference key="NSVScroller" ref="252983915"/> <reference key="NSVScroller" ref="252983915"/>
<reference key="NSHScroller" ref="11557666"/> <reference key="NSHScroller" ref="11557666"/>
...@@ -449,6 +452,7 @@ ...@@ -449,6 +452,7 @@
</object> </object>
<string key="NSFrame">{{1, 17}, {402, 236}}</string> <string key="NSFrame">{{1, 17}, {402, 236}}</string>
<reference key="NSSuperview" ref="915491793"/> <reference key="NSSuperview" ref="915491793"/>
<reference key="NSNextKeyView" ref="23448837"/>
<reference key="NSDocView" ref="23448837"/> <reference key="NSDocView" ref="23448837"/>
<reference key="NSBGColor" ref="885475112"/> <reference key="NSBGColor" ref="885475112"/>
<int key="NScvFlags">4</int> <int key="NScvFlags">4</int>
...@@ -483,6 +487,7 @@ ...@@ -483,6 +487,7 @@
</object> </object>
<string key="NSFrame">{{1, 0}, {402, 17}}</string> <string key="NSFrame">{{1, 0}, {402, 17}}</string>
<reference key="NSSuperview" ref="915491793"/> <reference key="NSSuperview" ref="915491793"/>
<reference key="NSNextKeyView" ref="823165105"/>
<reference key="NSDocView" ref="823165105"/> <reference key="NSDocView" ref="823165105"/>
<reference key="NSBGColor" ref="885475112"/> <reference key="NSBGColor" ref="885475112"/>
<int key="NScvFlags">4</int> <int key="NScvFlags">4</int>
...@@ -490,6 +495,7 @@ ...@@ -490,6 +495,7 @@
</object> </object>
<string key="NSFrameSize">{404, 254}</string> <string key="NSFrameSize">{404, 254}</string>
<reference key="NSSuperview" ref="440594360"/> <reference key="NSSuperview" ref="440594360"/>
<reference key="NSNextKeyView" ref="343242432"/>
<int key="NSsFlags">133682</int> <int key="NSsFlags">133682</int>
<reference key="NSVScroller" ref="573737110"/> <reference key="NSVScroller" ref="573737110"/>
<reference key="NSHScroller" ref="297523533"/> <reference key="NSHScroller" ref="297523533"/>
...@@ -1056,6 +1062,7 @@ ...@@ -1056,6 +1062,7 @@
</object> </object>
</object> </object>
<string key="NSFrameSize">{604, 310}</string> <string key="NSFrameSize">{604, 310}</string>
<reference key="NSSuperview"/>
</object> </object>
<string key="NSScreenRect">{{0, 0}, {1280, 778}}</string> <string key="NSScreenRect">{{0, 0}, {1280, 778}}</string>
<string key="NSMaxSize">{1.7976931348623157e+308, 1.7976931348623157e+308}</string> <string key="NSMaxSize">{1.7976931348623157e+308, 1.7976931348623157e+308}</string>
...@@ -15118,7 +15125,6 @@ LCAuLi4</string> ...@@ -15118,7 +15125,6 @@ LCAuLi4</string>
<string>o_sidebar_scrollview</string> <string>o_sidebar_scrollview</string>
<string>o_sidebar_view</string> <string>o_sidebar_view</string>
<string>o_split_view</string> <string>o_split_view</string>
<string>o_video_view</string>
</object> </object>
<object class="NSMutableArray" key="dict.values"> <object class="NSMutableArray" key="dict.values">
<bool key="EncodedWithXMLCoder">YES</bool> <bool key="EncodedWithXMLCoder">YES</bool>
...@@ -15151,7 +15157,6 @@ LCAuLi4</string> ...@@ -15151,7 +15157,6 @@ LCAuLi4</string>
<string>id</string> <string>id</string>
<string>id</string> <string>id</string>
<string>id</string> <string>id</string>
<string>id</string>
</object> </object>
</object> </object>
<object class="NSMutableDictionary" key="toOneOutletInfosByName"> <object class="NSMutableDictionary" key="toOneOutletInfosByName">
...@@ -15187,7 +15192,6 @@ LCAuLi4</string> ...@@ -15187,7 +15192,6 @@ LCAuLi4</string>
<string>o_sidebar_scrollview</string> <string>o_sidebar_scrollview</string>
<string>o_sidebar_view</string> <string>o_sidebar_view</string>
<string>o_split_view</string> <string>o_split_view</string>
<string>o_video_view</string>
</object> </object>
<object class="NSMutableArray" key="dict.values"> <object class="NSMutableArray" key="dict.values">
<bool key="EncodedWithXMLCoder">YES</bool> <bool key="EncodedWithXMLCoder">YES</bool>
...@@ -15307,10 +15311,6 @@ LCAuLi4</string> ...@@ -15307,10 +15311,6 @@ LCAuLi4</string>
<string key="name">o_split_view</string> <string key="name">o_split_view</string>
<string key="candidateClassName">id</string> <string key="candidateClassName">id</string>
</object> </object>
<object class="IBToOneOutletInfo">
<string key="name">o_video_view</string>
<string key="candidateClassName">id</string>
</object>
</object> </object>
</object> </object>
<object class="IBClassDescriptionSource" key="sourceIdentifier"> <object class="IBClassDescriptionSource" key="sourceIdentifier">
...@@ -15917,11 +15917,13 @@ LCAuLi4</string> ...@@ -15917,11 +15917,13 @@ LCAuLi4</string>
<bool key="EncodedWithXMLCoder">YES</bool> <bool key="EncodedWithXMLCoder">YES</bool>
<string>o_controls_bar</string> <string>o_controls_bar</string>
<string>o_titlebar_view</string> <string>o_titlebar_view</string>
<string>o_video_view</string>
</object> </object>
<object class="NSMutableArray" key="dict.values"> <object class="NSMutableArray" key="dict.values">
<bool key="EncodedWithXMLCoder">YES</bool> <bool key="EncodedWithXMLCoder">YES</bool>
<string>VLCControlsBarCommon</string> <string>VLCControlsBarCommon</string>
<string>id</string> <string>id</string>
<string>VLCVoutView</string>
</object> </object>
</object> </object>
<object class="NSMutableDictionary" key="toOneOutletInfosByName"> <object class="NSMutableDictionary" key="toOneOutletInfosByName">
...@@ -15930,6 +15932,7 @@ LCAuLi4</string> ...@@ -15930,6 +15932,7 @@ LCAuLi4</string>
<bool key="EncodedWithXMLCoder">YES</bool> <bool key="EncodedWithXMLCoder">YES</bool>
<string>o_controls_bar</string> <string>o_controls_bar</string>
<string>o_titlebar_view</string> <string>o_titlebar_view</string>
<string>o_video_view</string>
</object> </object>
<object class="NSMutableArray" key="dict.values"> <object class="NSMutableArray" key="dict.values">
<bool key="EncodedWithXMLCoder">YES</bool> <bool key="EncodedWithXMLCoder">YES</bool>
...@@ -15941,6 +15944,10 @@ LCAuLi4</string> ...@@ -15941,6 +15944,10 @@ LCAuLi4</string>
<string key="name">o_titlebar_view</string> <string key="name">o_titlebar_view</string>
<string key="candidateClassName">id</string> <string key="candidateClassName">id</string>
</object> </object>
<object class="IBToOneOutletInfo">
<string key="name">o_video_view</string>
<string key="candidateClassName">VLCVoutView</string>
</object>
</object> </object>
</object> </object>
<object class="IBClassDescriptionSource" key="sourceIdentifier" id="615738430"> <object class="IBClassDescriptionSource" key="sourceIdentifier" id="615738430">
......
...@@ -28,7 +28,10 @@ ...@@ -28,7 +28,10 @@
#import "CompatibilityFixes.h" #import "CompatibilityFixes.h"
#import "PXSourceList.h" #import "PXSourceList.h"
#import "PXSourceListDataSource.h" #import "PXSourceListDataSource.h"
#import <vlc_input.h> #import <vlc_input.h>
#import <vlc_vout_window.h>
#import "Windows.h" #import "Windows.h"
#import "misc.h" #import "misc.h"
#import "fspanel.h" #import "fspanel.h"
...@@ -36,13 +39,13 @@ ...@@ -36,13 +39,13 @@
@class VLCDetachedVideoWindow; @class VLCDetachedVideoWindow;
@class VLCMainWindowControlsBar; @class VLCMainWindowControlsBar;
@class VLCVoutView;
@interface VLCMainWindow : VLCVideoWindowCommon <PXSourceListDataSource, PXSourceListDelegate, NSWindowDelegate, NSAnimationDelegate, NSSplitViewDelegate> { @interface VLCMainWindow : VLCVideoWindowCommon <PXSourceListDataSource, PXSourceListDelegate, NSWindowDelegate, NSAnimationDelegate, NSSplitViewDelegate> {
IBOutlet id o_search_fld; IBOutlet id o_search_fld;
IBOutlet id o_playlist_table; IBOutlet id o_playlist_table;
IBOutlet id o_video_view;
IBOutlet id o_split_view; IBOutlet id o_split_view;
IBOutlet id o_left_split_view; IBOutlet id o_left_split_view;
IBOutlet id o_right_split_view; IBOutlet id o_right_split_view;
...@@ -104,7 +107,7 @@ ...@@ -104,7 +107,7 @@
VLCColorView * o_color_backdrop; VLCColorView * o_color_backdrop;
NSInteger i_originalLevel; NSInteger i_originalLevel;
VLCWindow *o_extra_video_window; VLCVideoWindowCommon *o_extra_video_window;
id o_current_video_window; id o_current_video_window;
NSRect frameBeforePlayback; NSRect frameBeforePlayback;
...@@ -136,8 +139,7 @@ ...@@ -136,8 +139,7 @@
- (void)setPlay; - (void)setPlay;
- (void)updateVolumeSlider; - (void)updateVolumeSlider;
- (id)videoView; - (VLCVoutView *)setupVout:(vout_window_t *)p_wnd;
- (void)setupVideoView;
- (void)setVideoplayEnabled; - (void)setVideoplayEnabled;
- (void)resizeWindow; - (void)resizeWindow;
- (void)setNativeVideoSize:(NSSize)size; - (void)setNativeVideoSize:(NSSize)size;
......
...@@ -43,6 +43,7 @@ ...@@ -43,6 +43,7 @@
#import <vlc_aout_intf.h> #import <vlc_aout_intf.h>
#import "ControlsBar.h" #import "ControlsBar.h"
#import "VideoView.h"
@interface VLCMainWindow () @interface VLCMainWindow ()
...@@ -142,6 +143,11 @@ static VLCMainWindow *_o_sharedInstance = nil; ...@@ -142,6 +143,11 @@ static VLCMainWindow *_o_sharedInstance = nil;
o_extra_video_window = nil; o_extra_video_window = nil;
} }
if (o_detached_video_window) {
[o_detached_video_window release];
o_detached_video_window = nil;
}
[super dealloc]; [super dealloc];
} }
...@@ -727,15 +733,13 @@ static VLCMainWindow *_o_sharedInstance = nil; ...@@ -727,15 +733,13 @@ static VLCMainWindow *_o_sharedInstance = nil;
#pragma mark - #pragma mark -
#pragma mark Video Output handling #pragma mark Video Output handling
- (id)videoView
{
return o_video_view;
}
- (void)setupVideoView - (VLCVoutView *)setupVout:(vout_window_t *)p_wnd
{ {
BOOL b_video_deco = var_InheritBool(VLCIntf, "video-deco"); BOOL b_video_deco = var_InheritBool(VLCIntf, "video-deco");
BOOL b_video_wallpaper = var_InheritBool(VLCIntf, "video-wallpaper"); BOOL b_video_wallpaper = var_InheritBool(VLCIntf, "video-wallpaper");
VLCVoutView *o_vout_view;
VLCVideoWindowCommon *o_new_video_window;
// TODO: make lion fullscreen compatible with video-wallpaper and !embedded-video // TODO: make lion fullscreen compatible with video-wallpaper and !embedded-video
if ((b_video_wallpaper || !b_video_deco) && !b_nativeFullscreenMode) { if ((b_video_wallpaper || !b_video_deco) && !b_nativeFullscreenMode) {
...@@ -769,17 +773,16 @@ static VLCMainWindow *_o_sharedInstance = nil; ...@@ -769,17 +773,16 @@ static VLCMainWindow *_o_sharedInstance = nil;
[o_extra_video_window setBackgroundColor: [NSColor blackColor]]; [o_extra_video_window setBackgroundColor: [NSColor blackColor]];
[o_extra_video_window setCanBecomeKeyWindow: !b_video_wallpaper]; [o_extra_video_window setCanBecomeKeyWindow: !b_video_wallpaper];
[o_extra_video_window setCanBecomeMainWindow: !b_video_wallpaper]; [o_extra_video_window setCanBecomeMainWindow: !b_video_wallpaper];
[o_extra_video_window setAcceptsMouseMovedEvents:!b_video_wallpaper]; [o_extra_video_window setAcceptsMouseMovedEvents: !b_video_wallpaper];
[o_extra_video_window setMovableByWindowBackground: !b_video_wallpaper]; [o_extra_video_window setMovableByWindowBackground: !b_video_wallpaper];
[o_extra_video_window useOptimizedDrawing: YES]; [o_extra_video_window useOptimizedDrawing: YES];
[o_video_view retain]; o_vout_view = [[VLCVoutView alloc] initWithFrame:[[o_extra_video_window contentView] bounds]];
if ([o_video_view superview] != NULL) [o_vout_view setAutoresizingMask:NSViewWidthSizable | NSViewHeightSizable];
[o_video_view removeFromSuperviewWithoutNeedingDisplay]; [[o_extra_video_window contentView] addSubview:o_vout_view positioned:NSWindowAbove relativeTo:nil];
window_rect.origin.x = window_rect.origin.y = 0; [o_extra_video_window setVideoView:o_vout_view];
[o_video_view setFrame: window_rect];
[[o_extra_video_window contentView] addSubview: o_video_view positioned:NSWindowAbove relativeTo:nil]; o_new_video_window = o_extra_video_window;
[o_video_view release];
if (b_video_wallpaper) if (b_video_wallpaper)
[o_extra_video_window orderBack:nil]; [o_extra_video_window orderBack:nil];
...@@ -792,20 +795,14 @@ static VLCMainWindow *_o_sharedInstance = nil; ...@@ -792,20 +795,14 @@ static VLCMainWindow *_o_sharedInstance = nil;
b_nonembedded = YES; b_nonembedded = YES;
} else { } else {
if (var_InheritBool(VLCIntf, "embedded-video") || b_nativeFullscreenMode) { if (var_InheritBool(VLCIntf, "embedded-video") || b_nativeFullscreenMode) {
if ([o_video_view window] != self) { o_vout_view = [o_video_view retain];
[o_video_view removeFromSuperviewWithoutNeedingDisplay]; o_new_video_window = self;
[o_video_view setFrame: [o_split_view frame]];
[[self contentView] addSubview:o_video_view positioned:NSWindowAbove relativeTo:nil];
}
b_nonembedded = NO; b_nonembedded = NO;
} else { } else {
if ([o_video_view superview] != NULL)
[o_video_view removeFromSuperviewWithoutNeedingDisplay];
if (!o_detached_video_window) { if (!o_detached_video_window) {
NSWindowController *o_controller = [[NSWindowController alloc] initWithWindowNibName:@"DetachedVideoWindow"]; NSWindowController *o_controller = [[NSWindowController alloc] initWithWindowNibName:@"DetachedVideoWindow"];
[o_controller loadWindow]; [o_controller loadWindow];
o_detached_video_window = (VLCDetachedVideoWindow *)[o_controller window]; o_detached_video_window = [(VLCDetachedVideoWindow *)[o_controller window] retain];
[o_controller release]; [o_controller release];
// event occurs before window is created, so call again // event occurs before window is created, so call again
...@@ -819,38 +816,31 @@ static VLCMainWindow *_o_sharedInstance = nil; ...@@ -819,38 +816,31 @@ static VLCMainWindow *_o_sharedInstance = nil;
[o_detached_video_window setContentMinSize: NSMakeSize(363., f_min_video_height + [[[o_detached_video_window controlsBar] bottomBarView] frame].size.height)]; [o_detached_video_window setContentMinSize: NSMakeSize(363., f_min_video_height + [[[o_detached_video_window controlsBar] bottomBarView] frame].size.height)];
} }
NSRect videoFrame;
videoFrame.size = [[o_detached_video_window contentView] frame].size;
videoFrame.size.height -= [[[o_detached_video_window controlsBar] bottomBarView] frame].size.height;
if (b_dark_interface)
videoFrame.size.height -= [o_titlebar_view frame].size.height;
videoFrame.origin.x = .0;
videoFrame.origin.y = [[[o_detached_video_window controlsBar] bottomBarView] frame].size.height;
[o_video_view setFrame: videoFrame];
[[o_detached_video_window contentView] addSubview: o_video_view positioned:NSWindowAbove relativeTo:nil];
[o_detached_video_window setLevel:NSNormalWindowLevel]; [o_detached_video_window setLevel:NSNormalWindowLevel];
[o_detached_video_window useOptimizedDrawing: YES]; [o_detached_video_window useOptimizedDrawing: YES];
o_vout_view = [[o_detached_video_window videoView] retain];
o_new_video_window = o_detached_video_window;
b_nonembedded = YES; b_nonembedded = YES;
} }
} }
if (!b_video_wallpaper) { if (!b_video_wallpaper) {
[[o_video_view window] makeKeyAndOrderFront: self]; [o_new_video_window makeKeyAndOrderFront: self];
vout_thread_t *p_vout = getVout(); vout_thread_t *p_vout = getVout();
if (p_vout) { if (p_vout) {
if (var_GetBool(p_vout, "video-on-top")) if (var_GetBool(p_vout, "video-on-top"))
[[o_video_view window] setLevel: NSStatusWindowLevel]; [o_new_video_window setLevel: NSStatusWindowLevel];
else else
[[o_video_view window] setLevel: NSNormalWindowLevel]; [o_new_video_window setLevel: NSNormalWindowLevel];
vlc_object_release(p_vout); vlc_object_release(p_vout);
} }
} }
[[o_video_view window] setAlphaValue: config_GetFloat(VLCIntf, "macosx-opaqueness")]; [o_new_video_window setAlphaValue: config_GetFloat(VLCIntf, "macosx-opaqueness")];
return [o_vout_view autorelease];
} }
- (void)setVideoplayEnabled - (void)setVideoplayEnabled
...@@ -1886,8 +1876,15 @@ static VLCMainWindow *_o_sharedInstance = nil; ...@@ -1886,8 +1876,15 @@ static VLCMainWindow *_o_sharedInstance = nil;
// native fs not supported with detached view yet // native fs not supported with detached view yet
[o_titlebar_view setFullscreenButtonHidden: YES]; [o_titlebar_view setFullscreenButtonHidden: YES];
} }
NSRect videoViewRect = [[self contentView] bounds];
if (b_dark_interface)
videoViewRect.size.height -= [o_titlebar_view frame].size.height;
CGFloat f_bottomBarHeight = [[[self controlsBar] bottomBarView] frame].size.height;
videoViewRect.size.height -= f_bottomBarHeight;
videoViewRect.origin.y = f_bottomBarHeight;
[o_video_view setFrame: videoViewRect];
} }
@end @end
...@@ -55,12 +55,16 @@ ...@@ -55,12 +55,16 @@
[super dealloc]; [super dealloc];
} }
- (void)awakeFromNib -(id)initWithFrame:(NSRect)frameRect
{ {
if (self = [super initWithFrame:frameRect]) {
[self registerForDraggedTypes:[NSArray arrayWithObject: NSFilenamesPboardType]]; [self registerForDraggedTypes:[NSArray arrayWithObject: NSFilenamesPboardType]];
}
i_lastScrollWheelDirection = 0; i_lastScrollWheelDirection = 0;
f_cumulated_magnification = 0.0; f_cumulated_magnification = 0.0;
return self;
} }
- (NSDragOperation)draggingEntered:(id <NSDraggingInfo>)sender - (NSDragOperation)draggingEntered:(id <NSDraggingInfo>)sender
......
...@@ -57,6 +57,7 @@ ...@@ -57,6 +57,7 @@
@end @end
@class VLCVoutView;
@class VLCControlsBarCommon; @class VLCControlsBarCommon;
/***************************************************************************** /*****************************************************************************
...@@ -71,12 +72,15 @@ ...@@ -71,12 +72,15 @@
BOOL b_dark_interface; BOOL b_dark_interface;
IBOutlet id o_titlebar_view; // only set in main or detached window IBOutlet id o_titlebar_view; // only set in main or detached window
IBOutlet VLCVoutView *o_video_view;
IBOutlet VLCControlsBarCommon* o_controls_bar; IBOutlet VLCControlsBarCommon *o_controls_bar;
} }
@property (nonatomic, assign) VLCVoutView* videoView;
@property (readonly) VLCControlsBarCommon* controlsBar; @property (readonly) VLCControlsBarCommon* controlsBar;
- (void)setTitle:(NSString *)title; - (void)setTitle:(NSString *)title;
@end @end
\ No newline at end of file
...@@ -219,6 +219,7 @@ ...@@ -219,6 +219,7 @@
@implementation VLCVideoWindowCommon @implementation VLCVideoWindowCommon
@synthesize videoView=o_video_view;
@synthesize controlsBar=o_controls_bar; @synthesize controlsBar=o_controls_bar;
#pragma mark - #pragma mark -
......
...@@ -34,6 +34,7 @@ ...@@ -34,6 +34,7 @@
#import <vlc_vout.h> #import <vlc_vout.h>
#import <vlc_aout.h> #import <vlc_aout.h>
#import <vlc_input.h> #import <vlc_input.h>
#import <vlc_vout_window.h>
#import <Cocoa/Cocoa.h> #import <Cocoa/Cocoa.h>
#import "CompatibilityFixes.h" #import "CompatibilityFixes.h"
...@@ -157,7 +158,7 @@ struct intf_sys_t ...@@ -157,7 +158,7 @@ struct intf_sys_t
- (id)playlist; - (id)playlist;
- (id)info; - (id)info;
- (id)wizard; - (id)wizard;
- (id)getVideoViewAtPositionX: (int *)pi_x Y: (int *)pi_y withWidth: (unsigned int*)pi_width andHeight: (unsigned int*)pi_height; - (id)getVideoViewAtPositionX: (int *)pi_x Y: (int *)pi_y withWidth: (unsigned int*)pi_width andHeight: (unsigned int*)pi_height forWindow:(vout_window_t *)p_wnd;
- (void)setNativeVideoSize:(NSSize)size; - (void)setNativeVideoSize:(NSSize)size;
- (id)coreDialogProvider; - (id)coreDialogProvider;
- (id)eyeTVController; - (id)eyeTVController;
......
...@@ -41,7 +41,6 @@ ...@@ -41,7 +41,6 @@
#include <vlc_modules.h> #include <vlc_modules.h>
#include <vlc_plugin.h> #include <vlc_plugin.h>
#include <vlc_aout_intf.h> #include <vlc_aout_intf.h>
#include <vlc_vout_window.h>
#include <vlc_vout_display.h> #include <vlc_vout_display.h>
#include <unistd.h> /* execl() */ #include <unistd.h> /* execl() */
...@@ -142,7 +141,7 @@ int WindowOpen(vout_window_t *p_wnd, const vout_window_cfg_t *cfg) ...@@ -142,7 +141,7 @@ int WindowOpen(vout_window_t *p_wnd, const vout_window_cfg_t *cfg)
int i_y = cfg->y; int i_y = cfg->y;
unsigned i_width = cfg->width; unsigned i_width = cfg->width;
unsigned i_height = cfg->height; unsigned i_height = cfg->height;
p_wnd->handle.nsobject = [[VLCMain sharedInstance] getVideoViewAtPositionX: &i_x Y: &i_y withWidth: &i_width andHeight: &i_height]; p_wnd->handle.nsobject = [[VLCMain sharedInstance] getVideoViewAtPositionX: &i_x Y: &i_y withWidth: &i_width andHeight: &i_height forWindow: p_wnd];
if (!p_wnd->handle.nsobject) { if (!p_wnd->handle.nsobject) {
msg_Err(p_wnd, "got no video view from the interface"); msg_Err(p_wnd, "got no video view from the interface");
...@@ -1499,10 +1498,20 @@ static VLCMain *_o_sharedMainInstance = nil; ...@@ -1499,10 +1498,20 @@ static VLCMain *_o_sharedMainInstance = nil;
return o_wizard; return o_wizard;
} }
- (id)getVideoViewAtPositionX: (int *)pi_x Y: (int *)pi_y withWidth: (unsigned int*)pi_width andHeight: (unsigned int*)pi_height - (id)getVideoViewAtPositionX: (int *)pi_x Y: (int *)pi_y withWidth: (unsigned int*)pi_width andHeight: (unsigned int*)pi_height forWindow:(vout_window_t *)p_wnd
{ {
[o_mainwindow performSelectorOnMainThread:@selector(setupVideoView) withObject:nil waitUntilDone:YES]; SEL sel = @selector(setupVout:);
id videoView = [o_mainwindow videoView]; NSInvocation *inv = [NSInvocation invocationWithMethodSignature:[o_mainwindow methodSignatureForSelector:sel]];
[inv setTarget:o_mainwindow];
[inv setSelector:sel];
[inv setArgument:&p_wnd atIndex:2]; // starting at 2!
[inv performSelectorOnMainThread:@selector(invoke) withObject:nil
waitUntilDone:YES];
VLCVoutView *videoView;
[inv getReturnValue:&videoView];
NSRect videoRect = [videoView frame]; NSRect videoRect = [videoView frame];
int i_x = (int)videoRect.origin.x; int i_x = (int)videoRect.origin.x;
int i_y = (int)videoRect.origin.y; int i_y = (int)videoRect.origin.y;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment