Skip to content

Commit

Permalink
Add error: parameter to -loadFileAtPath: method. And update each type…
Browse files Browse the repository at this point in the history
… of IPC communication to send the NSError back to the callers.
  • Loading branch information
clobber committed Feb 8, 2014
1 parent 002ede4 commit e39cbac
Show file tree
Hide file tree
Showing 30 changed files with 58 additions and 39 deletions.
2 changes: 1 addition & 1 deletion Atari800
2 changes: 1 addition & 1 deletion BSNES
Submodule BSNES updated 1 files
+1 −1 BSNESGameCore.mm
2 changes: 1 addition & 1 deletion CrabEmu
Submodule CrabEmu updated 1 files
+1 −1 SMSGameCore.m
2 changes: 1 addition & 1 deletion FCEU
Submodule FCEU updated 1 files
+1 −1 FCEUGameCore.mm
2 changes: 1 addition & 1 deletion Gambatte
Submodule Gambatte updated 1 files
+1 −1 GBGameCore.mm
2 changes: 1 addition & 1 deletion GenesisPlus
Submodule GenesisPlus updated 1 files
+1 −1 GenPlusGameCore.m
2 changes: 1 addition & 1 deletion Higan
Submodule Higan updated 1 files
+1 −1 HiganGameCore.mm
2 changes: 1 addition & 1 deletion Mednafen
Submodule Mednafen updated 1 files
+1 −1 MednafenGameCore.mm
2 changes: 1 addition & 1 deletion Mupen64Plus
Submodule Mupen64Plus updated 1 files
+1 −1 MupenGameCore.m
2 changes: 1 addition & 1 deletion NeoPop
Submodule NeoPop updated 1 files
+1 −1 NGPGameCore.m
2 changes: 1 addition & 1 deletion Nestopia
Submodule Nestopia updated 1 files
+1 −1 NESGameCore.mm
2 changes: 1 addition & 1 deletion OpenEmu-SDK
1 change: 1 addition & 0 deletions OpenEmu/OEDOGameCoreHelper.h
Expand Up @@ -67,6 +67,7 @@
@protocol OEDOGameCoreHelperDelegate <NSObject>

- (oneway void)gameCoreHelperDidSetSystemResponderClient:(byref id)responderClient withMessageIdentifier:(NSString *)identifier;
- (oneway void)gameCoreHelperFailedToLoadROMWithError:(NSError *)error messageIdentifier:(NSString *)identifier;

- (oneway void)gameCoreHelperDidSetupEmulationWithSurfaceID:(IOSurfaceID)surfaceID screenSize:(OEIntSize)screenSize aspectSize:(OEIntSize)aspectSize messageIdentifier:(NSString *)identifier;;
- (oneway void)gameCoreHelperDidStartEmulationWithMessageIdentifier:(NSString *)identifier;
Expand Down
28 changes: 20 additions & 8 deletions OpenEmu/OEDOGameCoreManager.m
Expand Up @@ -78,8 +78,15 @@ - (void)loadROMWithCompletionHandler:(void(^)(id systemClient))completionHandler
withDelegate:_delegateHelper
displayHelper:(id<OEDOGameCoreDisplayHelper>)[self displayHelper]
messageIdentifier:
[self messageIdentifierForResponderClientHandler:^(id responderClient)
[self messageIdentifierForResponderClientHandler:
^(id responderClient, NSError *error)
{
if(responderClient == nil)
{
errorHandler(error);
return;
}

[(NSDistantObject *)responderClient setProtocolForProxy:[[[self systemController] responderClass] gameSystemResponderClientProtocol]];

completionHandler(responderClient);
Expand Down Expand Up @@ -301,7 +308,7 @@ - (NSString *)messageIdentifierForSuccessHandler:(void(^)(BOOL, NSError *))succe
return identifier;
}

- (NSString *)messageIdentifierForResponderClientHandler:(void(^)(id))responderClient;
- (NSString *)messageIdentifierForResponderClientHandler:(void(^)(id, NSError *))responderClient;
{
NSString *identifier = [NSString stringWithUUID];
responderClient = [responderClient copy];
Expand Down Expand Up @@ -332,11 +339,11 @@ - (void)performSuccessBlockWithIdentifier:(NSString *)identifier success:(BOOL)s
block(success, error);
}

- (void)performResponderClientBlockWithIdentifier:(NSString *)identifier systemClient:(id)systemClient;
- (void)performResponderClientBlockWithIdentifier:(NSString *)identifier systemClient:(id)systemClient error:(NSError *)error;
{
void(^block)(id) = _pendingBlocks[identifier];
void(^block)(id, NSError *) = _pendingBlocks[identifier];
[_pendingBlocks removeObjectForKey:identifier];
block(systemClient);
block(systemClient, error);
}

#pragma mark - TaskWrapper delegate methods
Expand Down Expand Up @@ -385,14 +392,19 @@ - (void)callSuccessBlockForIdentifier:(NSString *)identifier withSuccess:(BOOL)s
[_gameCoreManager performSuccessBlockWithIdentifier:identifier success:success error:error];
}

- (void)callResponderClientBlockForIdentifier:(NSString *)identifier withClient:(id)client
- (void)callResponderClientBlockForIdentifier:(NSString *)identifier withClient:(id)client error:(NSError *)error
{
[_gameCoreManager performResponderClientBlockWithIdentifier:identifier systemClient:client];
[_gameCoreManager performResponderClientBlockWithIdentifier:identifier systemClient:client error:error];
}

- (oneway void)gameCoreHelperDidSetSystemResponderClient:(byref id)responderClient withMessageIdentifier:(NSString *)identifier
{
[self callResponderClientBlockForIdentifier:identifier withClient:responderClient];
[self callResponderClientBlockForIdentifier:identifier withClient:responderClient error:nil];
}

- (oneway void)gameCoreHelperFailedToLoadROMWithError:(NSError *)error messageIdentifier:(NSString *)identifier
{
[self callResponderClientBlockForIdentifier:identifier withClient:nil error:error];
}

- (oneway void)gameCoreHelperDidSetupEmulationWithSurfaceID:(IOSurfaceID)surfaceID screenSize:(OEIntSize)screenSize aspectSize:(OEIntSize)aspectSize messageIdentifier:(NSString *)identifier;
Expand Down
6 changes: 4 additions & 2 deletions OpenEmu/OEThreadGameCoreManager.m
Expand Up @@ -73,12 +73,14 @@ - (void)_executionThread:(id)object
{
[self setGameCoreHelper:(id<OEGameCoreHelper>)_helperProxy];
[_helper setDisplayHelper:(id<OEGameCoreDisplayHelper>)_displayHelperProxy];
if(![_helper loadROMAtPath:[self ROMPath] withCorePluginAtPath:[[self plugin] path] systemIdentifier:[[self systemController] systemIdentifier]])

NSError *error;
if(![_helper loadROMAtPath:[self ROMPath] withCorePluginAtPath:[[self plugin] path] systemIdentifier:[[self systemController] systemIdentifier] error:&error])
{
FIXME("Return a proper error object here.");
if(_errorHandler != nil)
{
_errorHandler(nil);
_errorHandler(error);
_errorHandler = nil;
}
return;
Expand Down
5 changes: 4 additions & 1 deletion OpenEmu/OpenEmuDOHelperApp.m
Expand Up @@ -112,8 +112,11 @@ - (oneway void)loadROMAtPath:(bycopy NSString *)romPath usingCorePluginAtPath:(b
[(NSDistantObject *)delegate setProtocolForProxy:@protocol(OEDOGameCoreDisplayHelper)];
[self setDisplayHelper:(id<OEGameCoreDisplayHelper>)displayHelper];

if([self loadROMAtPath:romPath withCorePluginAtPath:corePluginPath systemIdentifier:[[OESystemPlugin systemPluginWithBundleAtPath:systemPluginPath] systemIdentifier]])
NSError *error;
if([self loadROMAtPath:romPath withCorePluginAtPath:corePluginPath systemIdentifier:[[OESystemPlugin systemPluginWithBundleAtPath:systemPluginPath] systemIdentifier] error:&error])
[delegate gameCoreHelperDidSetSystemResponderClient:[self gameCore] withMessageIdentifier:identifier];
else
[delegate gameCoreHelperFailedToLoadROMWithError:error messageIdentifier:identifier];
}

@end
2 changes: 1 addition & 1 deletion OpenEmu/OpenEmuHelperApp.h
Expand Up @@ -109,7 +109,7 @@ enum _OEHelperAppErrorCodes

- (void)launchApplication;

- (BOOL)loadROMAtPath:(NSString *)aPath withCorePluginAtPath:(NSString *)pluginPath systemIdentifier:(NSString *)systemIdentifier;
- (BOOL)loadROMAtPath:(NSString *)aPath withCorePluginAtPath:(NSString *)pluginPath systemIdentifier:(NSString *)systemIdentifier error:(NSError **)error;
- (void)setupProcessPollingTimer;
- (void)quitHelperTool;

Expand Down
4 changes: 2 additions & 2 deletions OpenEmu/OpenEmuHelperApp.m
Expand Up @@ -526,7 +526,7 @@ - (void)destroyGLResources

#pragma mark - Game Core methods

- (BOOL)loadROMAtPath:(NSString *)aPath withCorePluginAtPath:(NSString *)pluginPath systemIdentifier:(NSString *)systemIdentifier
- (BOOL)loadROMAtPath:(NSString *)aPath withCorePluginAtPath:(NSString *)pluginPath systemIdentifier:(NSString *)systemIdentifier error:(NSError **)error
{
if([self loadedRom]) return NO;

Expand Down Expand Up @@ -559,7 +559,7 @@ - (BOOL)loadROMAtPath:(NSString *)aPath withCorePluginAtPath:(NSString *)pluginP
if(![systemIdentifier isEqualToString:@"openemu.system.arcade"])
aPath = [self decompressedPathForRomAtPath:aPath];

if([_gameCore loadFileAtPath:aPath])
if([_gameCore loadFileAtPath:aPath error:error])
{
DLog(@"Loaded new Rom: %@", aPath);
return self.loadedRom = YES;
Expand Down
5 changes: 3 additions & 2 deletions OpenEmu/OpenEmuXPCHelperApp.m
Expand Up @@ -108,9 +108,10 @@ - (void)loadROMAtPath:(NSString *)romPath usingCorePluginAtPath:(NSString *)plug
{
OESystemPlugin *plugin = [OESystemPlugin systemPluginWithBundleAtPath:systemPluginPath];

if(![self loadROMAtPath:romPath withCorePluginAtPath:pluginPath systemIdentifier:[plugin systemIdentifier]])
NSError *error;
if(![self loadROMAtPath:romPath withCorePluginAtPath:pluginPath systemIdentifier:[plugin systemIdentifier] error:&error])
{
completionHandler(nil, nil);
completionHandler(nil, error);
return;
}

Expand Down
2 changes: 1 addition & 1 deletion PPSSPP
Submodule PPSSPP updated 1 files
+1 −1 PPSSPPGameCore.mm
2 changes: 1 addition & 1 deletion ProSystem
2 changes: 1 addition & 1 deletion SNES9x
Submodule SNES9x updated 1 files
+1 −1 SNESGameCore.mm
2 changes: 1 addition & 1 deletion Stella
Submodule Stella updated 1 files
+1 −1 StellaGameCore.mm
2 changes: 1 addition & 1 deletion TwoMbit
Submodule TwoMbit updated 1 files
+1 −1 SMSGameCore.mm
2 changes: 1 addition & 1 deletion UME
Submodule UME updated from f3f695 to 9799cf
2 changes: 1 addition & 1 deletion VecXGL
2 changes: 1 addition & 1 deletion VisualBoyAdvance
2 changes: 1 addition & 1 deletion blueMSX
Submodule blueMSX updated 1 files
+47 −5 blueMSXGameCore.m
2 changes: 1 addition & 1 deletion picodrive
Submodule picodrive updated 1 files
+1 −1 PicodriveGameCore.m
2 changes: 1 addition & 1 deletion yabause

0 comments on commit e39cbac

Please sign in to comment.