VLCMain.h 4.14 KB
Newer Older
1
/*****************************************************************************
2
 * VLCMain.h: MacOS X interface module
3
 *****************************************************************************
4
 * Copyright (C) 2002-2016 VLC authors and VideoLAN
5
 * $Id$
6
 *
7
 * Authors: Derk-Jan Hartman <hartman at videolan dot org>
8
 *          Felix Paul Kühne <fkuehne at videolan dot org>
9
 *          David Fuhrmann <david dot fuhrmann at googlemail dot com>
10
 *          Pierre d'Herbemont <pdherbemont # videolan org>
11 12 13 14 15
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
16
 *
17 18 19 20 21 22 23
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
Antoine Cellerier's avatar
Antoine Cellerier committed
24
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
25 26
 *****************************************************************************/

27 28 29 30
#ifdef HAVE_CONFIG_H
#   include "config.h"
#endif

31 32 33 34 35 36
#import <vlc_common.h>
#import <vlc_interface.h>
#import <vlc_playlist.h>
#import <vlc_vout.h>
#import <vlc_aout.h>
#import <vlc_input.h>
37
#import <vlc_vout_window.h>
38
#import <stdatomic.h>
39

40
#import <Cocoa/Cocoa.h>
41
#import "misc.h"
42
#import "VLCMainWindow.h"
43
#import "VLCVideoOutputProvider.h"
44
#import "VLCStatusBarIcon.h"
45
#import "VLCStringUtility.h"
46

47
/*****************************************************************************
Derk-Jan Hartman's avatar
Derk-Jan Hartman committed
48
 * Local prototypes.
49
 *****************************************************************************/
50 51

intf_thread_t *getIntf();
52

53
static NSString * VLCInputChangedNotification = @"VLCInputChangedNotification";
54
static NSString * VLCConfigurationChangedNotification = @"VLCConfigurationChangedNotification";
55
static NSString * VLCMediaKeySupportSettingChangedNotification = @"VLCMediaKeySupportSettingChangedNotification";
56 57

/*****************************************************************************
58
 * VLCMain interface
59
 *****************************************************************************/
60
@class AppleRemote;
61 62
@class VLCInfo;
@class VLCMainMenu;
63
@class VLCPlaylist;
64
@class VLCInputManager;
65
@class VLCResumeDialogController;
66
@class VLCSimplePrefsController;
67 68
@class VLCPrefs;
@class VLCCoreDialogProvider;
69
@class VLCBookmarksWindowController;
70
@class VLCOpenWindowController;
71
@class VLCLogWindowController;
72
@class VLCTrackSynchronizationWindowController;
73
@class VLCAudioEffectsWindowController;
74
@class VLCVideoEffectsWindowController;
75
@class VLCConvertAndSaveWindowController;
76
@class VLCExtensionsManager;
77
@class VLCInfo;
78
@class VLCStatusBarIcon;
79

80
@interface VLCMain : NSObject <NSWindowDelegate, NSApplicationDelegate>
81

82
@property (readonly) VLCVideoOutputProvider* voutProvider;
83
@property (readonly) BOOL nativeFullscreenMode;
84
@property (nonatomic, readwrite) BOOL playlistUpdatedSelectorInQueue;
85

Derk-Jan Hartman's avatar
Derk-Jan Hartman committed
86
+ (VLCMain *)sharedInstance;
87
+ (void)killInstance;
Derk-Jan Hartman's avatar
Derk-Jan Hartman committed
88

89
- (VLCMainMenu *)mainMenu;
90
- (VLCMainWindow *)mainWindow;
91
- (VLCBookmarksWindowController *)bookmarks;
92
- (VLCOpenWindowController *)open;
93
- (VLCSimplePrefsController *)simplePreferences;
94
- (VLCPrefs *)preferences;
95
- (VLCPlaylist *)playlist;
96
- (VLCCoreDialogProvider *)coreDialogProvider;
97
- (VLCResumeDialogController *)resumeDialog;
98
- (VLCInputManager *)inputManager;
99
- (VLCExtensionsManager *)extensionsManager;
100
- (VLCStatusBarIcon *)statusBarIcon;
101

102
- (VLCLogWindowController *)debugMsgPanel;
103

104
- (VLCTrackSynchronizationWindowController *)trackSyncPanel;
105
- (VLCAudioEffectsWindowController *)audioEffectsPanel;
106
- (VLCVideoEffectsWindowController *)videoEffectsPanel;
107

108 109 110
- (VLCInfo *)currentMediaInfoPanel;


111
- (VLCConvertAndSaveWindowController *)convertAndSaveWindow;
112

113 114
- (void)setActiveVideoPlayback:(BOOL)b_value;
- (BOOL)activeVideoPlayback;
115
- (void)applicationWillTerminate:(NSNotification *)notification;
116

117
- (void)showFullscreenController;
118

119 120
- (BOOL)isTerminating;

121 122
@end

123
#import "helpers.h"