- Display playlist total duration in units up to weeks and down to just seconds, and only pluralize units as necessary - Major change: Implemented a SQLite disk backed playlist, track data, and queue storage system, which will be synchronized from the player in real time, and will hopefully survive system or app crashes. Existing plist playlist will be imported on first run, and removed on shutdown.
65 lines
1.6 KiB
Objective-C
Executable file
65 lines
1.6 KiB
Objective-C
Executable file
//
|
|
// PlaylistLoader.h
|
|
// Cog
|
|
//
|
|
// Created by Vincent Spader on 3/05/07.
|
|
// Copyright 2007 Vincent Spader All rights reserved.
|
|
//
|
|
|
|
#import <Cocoa/Cocoa.h>
|
|
#import "PlaylistController.h"
|
|
#import "PlaylistView.h"
|
|
|
|
@class PlaylistController;
|
|
@class PlaybackController;
|
|
@class PlaylistEntry;
|
|
|
|
typedef enum {
|
|
kPlaylistM3u,
|
|
kPlaylistPls,
|
|
kPlaylistXml,
|
|
} PlaylistType;
|
|
|
|
@interface PlaylistLoader : NSObject {
|
|
IBOutlet PlaylistController *playlistController;
|
|
IBOutlet NSScrollView *playlistView;
|
|
|
|
NSOperationQueue *queue;
|
|
}
|
|
|
|
- (void)initDefaults;
|
|
|
|
// Clear playlist
|
|
- (void)clear:(id)sender;
|
|
|
|
// Load arrays of urls...
|
|
- (NSArray*)addURLs:(NSArray *)urls sort:(BOOL)sort;
|
|
- (NSArray*)addURL:(NSURL *)url;
|
|
- (NSArray*)insertURLs:(NSArray *)urls atIndex:(NSInteger)index sort:(BOOL)sort;
|
|
|
|
- (NSArray*)addDatabase;
|
|
|
|
// Save playlist, auto-determines type based on extension. Uses m3u if it cannot be determined.
|
|
- (BOOL)save:(NSString *)filename;
|
|
- (BOOL)save:(NSString *)filename asType:(PlaylistType)type;
|
|
- (BOOL)saveM3u:(NSString *)filename;
|
|
- (BOOL)savePls:(NSString *)filename;
|
|
- (BOOL)saveXml:(NSString *)filename;
|
|
|
|
// Read info for a playlist entry
|
|
//- (NSDictionary *)readEntryInfo:(PlaylistEntry *)pe;
|
|
|
|
- (void)loadInfoForEntries:(NSArray *)entries;
|
|
|
|
// To be dispatched on main thread only
|
|
- (void)syncLoadInfoForEntries:(NSArray *)entries;
|
|
|
|
- (NSArray *)acceptableFileTypes;
|
|
- (NSArray *)acceptablePlaylistTypes; //Only m3u and pls saving
|
|
- (NSArray *)acceptableContainerTypes;
|
|
|
|
// Events (passed to playlist controler):
|
|
- (void)willInsertURLs:(NSArray*)urls origin:(URLOrigin)origin;
|
|
- (void)didInsertURLs:(NSArray*)entries origin:(URLOrigin)origin;
|
|
|
|
@end
|