4db72bda6378dd35e943b54b3dc53b4a6d12b8c1
[vlc.git] / modules / gui / macosx / VLCMain.h
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  * This program is free software; you can redistribute it and/or modify
13  * it under the terms of the GNU General Public License as published by
14  * the Free Software Foundation; either version 2 of the License, or
15  * (at your option) any later version.
16  *
17  * This program is distributed in the hope that it will be useful,
18  * but WITHOUT ANY WARRANTY; without even the implied warranty of
19  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
20  * GNU General Public License for more details.
21  *
22  * You should have received a copy of the GNU General Public License
23  * along with this program; if not, write to the Free Software
24  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
25  *****************************************************************************/
26
27 #ifdef HAVE_CONFIG_H
28 #   include "config.h"
29 #endif
30
31 #import <vlc_common.h>
32 #import <vlc_interface.h>
33 #import <vlc_playlist.h>
34 #import <vlc_vout.h>
35 #import <vlc_aout.h>
36 #import <vlc_input.h>
37 #import <vlc_vout_window.h>
38 #import <vlc_atomic.h>
39
40 #import <Cocoa/Cocoa.h>
41 #import "misc.h"
42 #import "VLCMainWindow.h"
43 #import "VLCVoutWindowController.h"
44 #import "VLCStatusBarIcon.h"
45 #import "VLCStringUtility.h"
46
47 /*****************************************************************************
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 @class VLCInfo;
62 @class VLCMainMenu;
63 @class VLCPlaylist;
64 @class VLCInputManager;
65 @class VLCResumeDialogController;
66 @class VLCSimplePrefsController;
67 @class VLCPrefs;
68 @class VLCCoreDialogProvider;
69 @class VLCBookmarksWindowController;
70 @class VLCOpenWindowController;
71 @class VLCDebugMessageWindowController;
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) VLCVoutWindowController* voutController;
83 @property (readonly) BOOL nativeFullscreenMode;
84 @property (nonatomic, readwrite) BOOL playlistUpdatedSelectorInQueue;
85
86 + (VLCMain *)sharedInstance;
87 + (void)killInstance;
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 - (VLCDebugMessageWindowController *)debugMsgPanel;
103
104 - (VLCTrackSynchronizationWindowController *)trackSyncPanel;
105 - (VLCAudioEffectsWindowController *)audioEffectsPanel;
106 - (VLCVideoEffectsWindowController *)videoEffectsPanel;
107
108 - (VLCInfo *)currentMediaInfoPanel;
109
110
111 - (VLCConvertAndSaveWindowController *)convertAndSaveWindow;
112
113 - (void)setActiveVideoPlayback:(BOOL)b_value;
114 - (BOOL)activeVideoPlayback;
115 - (void)applicationWillTerminate:(NSNotification *)notification;
116
117 - (void)showFullscreenController;
118
119 - (BOOL)isTerminating;
120
121 @end
122
123 #import "helpers.h"