Cog/Playlist/PlaylistLoader.h
Christopher Snowhill 92573ec088 [Job Queue] Overhauled long action handling
Long actions, such as file opening, playlist loading, metadata loading
and refreshing, etc, are now handled through NSProgress. Additionally,
a new status bar change displays the progress of the task instead of
the total duration of the playlist. Finally, app quit is blocked by a
running task, and if the app is quit while a task is running, it will
be delayed until the task completes, at which time the app will
terminate cleanly.

Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2022-06-15 01:01:45 -07:00

68 lines
1.7 KiB
Objective-C

//
// PlaylistLoader.h
// Cog
//
// Created by Vincent Spader on 3/05/07.
// Copyright 2007 Vincent Spader All rights reserved.
//
#import "PlaylistController.h"
#import "PlaylistView.h"
#import <Cocoa/Cocoa.h>
@class PlaylistController;
@class PlaybackController;
@class PlaylistEntry;
typedef enum {
kPlaylistM3u,
kPlaylistPls,
kPlaylistXml,
} PlaylistType;
@interface PlaylistLoader : NSObject {
IBOutlet PlaylistController *playlistController;
IBOutlet NSScrollView *playlistView;
IBOutlet PlaybackController *playbackController;
NSOperationQueue *queue;
BOOL metadataLoadInProgress;
}
- (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