blob: 0420940c290a0f95aa6b364a75a9eaf8c19d281d (
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
59
60
61
62
63
64
65
66
67
68
69
70
71
|
//
// 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"
#import "ARCBridge.h"
@interface PcsxrDiscHandler ()
@property (arcstrong) NSURL *discURL;
@end
@implementation PcsxrDiscHandler
@synthesize discURL;
- (NSURL*)discURLFromFilePath:(NSString *)filePath
{
if (!discURL) {
self.discURL = [NSURL fileURLWithPath:filePath isDirectory:NO];
}
return self.discURL;
}
+ (NSArray *)supportedUTIs
{
static NSArray *utisupport = nil;
if (utisupport == nil) {
utisupport = [[NSArray alloc] initWithObjects:@"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", nil];
}
return utisupport;
}
- (BOOL)handleFile:(NSString *)theFile
{
PcsxrController *appDelegate = [NSApp delegate];
if ([EmuThread active] == YES) {
if (UsingIso()) {
SetIsoFile([theFile fileSystemRepresentation]);
SetCdOpenCaseTime(time(NULL) + 2);
LidInterrupt();
//[EmuThread reset];
} else {
return NO;
}
} else {
[appDelegate runURL:[self discURLFromFilePath:theFile]];
}
[[appDelegate recentItems] addRecentItem:[self discURLFromFilePath:theFile]];
return YES;
}
#if !__has_feature(objc_arc)
- (void)dealloc
{
self.discURL = nil;
[super dealloc];
}
#endif
@end
|