summaryrefslogtreecommitdiff
path: root/macosx/Source/PcsxrDiscHandler.m
blob: f93f91d44c4b02f57cba308f0324cd6a9e6b9544 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
//
//  PcsxrDiscHandler.m
//  Pcsxr
//
//  Created by Charles Betts on 12/11/11.
//  Copyright (c) 2011 __MyCompanyName__. All rights reserved.
//

#import "PcsxrDiscHandler.h"
#import "EmuThread.h"
#include "psxcommon.h"
#include "plugins.h"
#include "cdrom.h"
#import "RecentItemsMenu.h"
#import "PcsxrController.h"

@interface PcsxrDiscHandler ()
@property (nonatomic, strong) NSURL *discURL;
@property (weak) NSString *discPath;
@end

@implementation PcsxrDiscHandler
@synthesize discURL = _discURL;
- (NSURL*)discURL
{
	if (!_discURL) {
		self.discURL = [NSURL fileURLWithPath:discPath];
	}
	return _discURL;
}

@synthesize discPath;

+ (NSArray *)supportedUTIs
{
	static NSArray *utisupport = nil;
	if (utisupport == nil) {
		utisupport = @[@"com.alcohol-soft.mdfdisc", @"com.goldenhawk.cdrwin-cuesheet",
					   @"com.apple.disk-image-ndif", @"public.iso-image", @"com.sony.psp.firmware",
					   @"com.codeplex.pcsxr.compressed-bin-image", @"com.coppertino.vox.cue",
					   @"com.apple.macbinary-​archive"];
	}
	return utisupport;
}

- (BOOL)handleFile:(NSString *)theFile
{
	self.discPath = theFile;
	PcsxrController *appDelegate = [(NSApplication*)NSApp delegate];
	if ([EmuThread active] == YES && !UsingIso()) {
		return NO;
	}
	[appDelegate runURL:[self discURL]];
	[[appDelegate recentItems] addRecentItem:[self discURL]];
	return YES;
}

@end