This overhauls the VLC Status Bar Icon for OS X
It completely changed the appearance, using a mini-player instead of
simple menu items.
Additionally the current playing track with metadata is shown, including
it's coverart, if any.
TODO:
- Use more of the InputManager hooks to prevent unnecessary updates
- Refactor the metadata update code, it's a bit cluttered
- Increase accessibility
Signed-off-by: Jean-Baptiste Kempf <jb@videolan.org>
Uses NSWindowController to load the information panel. Get rid of
the singleton. VLCMain will now hold one instance, which is aimed
to display information about the currently playing media.
This renames the playlist related class files to match the class name,
which makes it easier to find the which belongs to a certain class and
follows common Cocoa/Obj C file naming conventions.
Signed-off-by: Felix Paul Kühne <fkuehne@videolan.org>
VLCIntf now points to a static getter for the interface thread
pointer.
This fixes several problems: During initialization of
VLCMain, [VLCMain sharedInstance] is not ready yet when all other
objects are initialized inside VLCMains constructor. Due to the
way ARC works, the same applies to dealloc (the main shared instance
is nil already). But in both situations, we need VLCIntf for
callback (un)registration and potential logging.
The mac interface relies on static data in any case and does not
support multiple instantiations.
The window controller ensures that all top-level objects of the
mainwindow xib are properly released.
This removes the last occurence of VLCMain in xib files, thus
awakeFromNib will not be called for this object anymore. The code
has been moved to initThis removes the last occurence of VLCMain in xib files, thus
awakeFromNib will not be called for this object anymore. The code
has been moved to init.
By deinitializing VLCMain, all connected objects are supposed to
be deallocated automatically. If [VLCMain sharedInstance] is gone,
the intf is deinitalized (this was previously checked with a
nil value of VLCIntf).
Fixes some retain cycles in input manager and playlist code which
prevented these objects to be deinitalized.