]> git.sesse.net Git - vlc/blob - projects/macosx/vlc_app/Sources/VLCController.m
Rework of vout_OSDEpg.
[vlc] / projects / macosx / vlc_app / Sources / VLCController.m
1 /*****************************************************************************
2  * VLCController.m: VLC.app main controller
3  *****************************************************************************
4  * Copyright (C) 2007 Pierre d'Herbemont
5  * Copyright (C) 2007 the VideoLAN team
6  * $Id$
7  *
8  * Authors: Pierre d'Herbemont <pdherbemont # videolan.org>
9  *
10  * This program is free software; you can redistribute it and/or modify
11  * it under the terms of the GNU General Public License as published by
12  * the Free Software Foundation; either version 2 of the License, or
13  * (at your option) any later version.
14  *
15  * This program is distributed in the hope that it will be useful,
16  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18  * GNU General Public License for more details.
19  *
20  * You should have received a copy of the GNU General Public License
21  * along with this program; if not, write to the Free Software
22  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
23  *****************************************************************************/
24
25 #import <VLCKit/VLCKit.h>
26
27 #import "VLCController.h" 
28 #import "VLCAppAdditions.h" 
29 #import "VLCValueTransformer.h" 
30
31 @interface VLCController ()
32 @property (readwrite,retain) NSArray * categories;
33 @end
34
35 /******************************************************************************
36  * VLCBrowsableVideoView
37  */
38 @implementation VLCController
39 @synthesize categories;
40
41 - (void)awakeFromNib
42 {
43     /***********************************
44      * Register our bindings value transformer
45      */
46     VLCFloat10000FoldTransformer *float100fold;
47     float100fold = [[[VLCFloat10000FoldTransformer alloc] init] autorelease];
48     [NSValueTransformer setValueTransformer:(id)float100fold forName:@"Float10000FoldTransformer"];
49     VLCNonNilAsBoolTransformer *nonNilAsBool;
50     nonNilAsBool = [[[VLCNonNilAsBoolTransformer alloc] init] autorelease];
51     [NSValueTransformer setValueTransformer:(id)nonNilAsBool forName:@"NonNilAsBoolTransformer"];
52     VLCURLToRepresentedFileNameTransformer *urlToRepresentedFileName;
53     urlToRepresentedFileName = [[[VLCURLToRepresentedFileNameTransformer alloc] init] autorelease];
54     [NSValueTransformer setValueTransformer:(id)urlToRepresentedFileName forName:@"URLToRepresentedFileNameTransformer"];
55     VLCSelectionIndexToDescriptionTransformer *indexToDescription;
56     indexToDescription = [[[VLCSelectionIndexToDescriptionTransformer alloc] init] autorelease];
57     [NSValueTransformer setValueTransformer:(id)indexToDescription forName:@"SelectionIndexToDescriptionTransformer"];
58
59     /***********************************
60      * categories: Main content
61      */
62     NSArray * mediaDiscoverers = [NSArray arrayWithObjects:
63         [[[VLCMediaDiscoverer alloc] initWithName:@"shoutcasttv"] autorelease],
64         [[[VLCMediaDiscoverer alloc] initWithName:@"shoutcast"] autorelease],
65         [[[VLCMediaDiscoverer alloc] initWithName:@"sap"] autorelease],
66         [[[VLCMediaDiscoverer alloc] initWithName:@"freebox"] autorelease], nil];
67
68     self.categories = [NSArray arrayWithObjects:
69                     [NSMutableDictionary dictionaryWithObjectsAndKeys:
70                         [@"Service Discovery" uppercaseString], @"descriptionInCategoriesList",
71                         @"Service Discovery", @"descriptionInVideoView",
72                         [NSNumber numberWithBool:NO], @"selectableInCategoriesList",
73                         mediaDiscoverers, @"childrenInCategoriesList",
74                         mediaDiscoverers, @"childrenInVideoView",
75                         nil],
76                     [VLCMedia mediaAsNodeWithName:@"Playlist"],
77                     nil];
78
79     /* Execution will continue in applicationDidFinishLaunching */
80     [NSApp setDelegate:self];
81 }
82
83 - (void)newMainWindow:(id)sender
84 {
85     if (![NSBundle loadNibNamed:@"MainWindow" owner:self])
86     {
87         NSLog(@"Warning! Could not load MainWindow file.\n");
88     }
89     /* We are done. Should be on screen if Visible at launch time is checked */
90 }
91
92 - (void)addPlaylist:(id)sender
93 {
94     // TODO
95     NSLog(@"unimplemented!");
96 }
97
98 @end
99
100 @implementation VLCController (NSAppDelegate)
101 - (void)applicationDidFinishLaunching:(NSNotification *)notification
102 {
103     [self newMainWindow: self];
104 }
105 @end