From ea688720ca433a8b3e677eba1b5b980e0d16c216 Mon Sep 17 00:00:00 2001 From: "SND\\weimingzhi_cp" Date: Wed, 4 Nov 2009 02:54:50 +0000 Subject: git-svn-id: https://pcsxr.svn.codeplex.com/svn/pcsxr@35399 e17a0e51-4ae3-4d35-97c3-1a29b211df97 --- macosx/EmuThread.h | 1 + macosx/EmuThread.m | 8 ++++++++ macosx/PcsxController.m | 6 ++++-- 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/macosx/EmuThread.h b/macosx/EmuThread.h index 7a20ea64..21b031fb 100644 --- a/macosx/EmuThread.h +++ b/macosx/EmuThread.h @@ -30,6 +30,7 @@ + (BOOL)isPaused; + (BOOL)active; ++ (BOOL)isRunBios; + (void)freezeAt:(NSString *)path which:(int)num; + (BOOL)defrostAt:(NSString *)path; diff --git a/macosx/EmuThread.m b/macosx/EmuThread.m index f8be4338..4818ff1a 100644 --- a/macosx/EmuThread.m +++ b/macosx/EmuThread.m @@ -19,6 +19,7 @@ EmuThread *emuThread; NSString *defrostPath = nil; static int safeEvent; static int paused; +static int runbios; static pthread_cond_t eventCond; static pthread_mutex_t eventMutex; @@ -227,6 +228,7 @@ done: safeEvent = EMUEVENT_NONE; paused = NO; + runbios = NO; if (SysInit() != 0) { pthread_mutex_unlock(&eventMutex); @@ -262,6 +264,7 @@ done: safeEvent = EMUEVENT_NONE; paused = NO; + runbios = YES; if (SysInit() != 0) { pthread_mutex_unlock(&eventMutex); @@ -357,6 +360,11 @@ done: return paused; } ++ (BOOL)isRunBios +{ + return runbios; +} + + (BOOL)active { return emuThread ? YES : NO; diff --git a/macosx/PcsxController.m b/macosx/PcsxController.m index d4e82b13..a7e5f313 100644 --- a/macosx/PcsxController.m +++ b/macosx/PcsxController.m @@ -154,11 +154,13 @@ NSString *saveStatePath; [menuItem setState:([EmuThread isPaused] ? NSOnState : NSOffState)]; } - if ([menuItem action] == @selector(reset:) || [menuItem action] == @selector(pause:) || - [menuItem action] == @selector(ejectCD:) || [menuItem action] == @selector(freeze:) || + if ([menuItem action] == @selector(pause:) || [menuItem action] == @selector(freeze:) || [menuItem action] == @selector(fullscreen:)) return [EmuThread active]; + if ([menuItem action] == @selector(reset:) || [menuItem action] == @selector(ejectCD:)) + return [EmuThread active] && ![EmuThread isRunBios]; + if ([menuItem action] == @selector(runCD:) || [menuItem action] == @selector(runIso:) || [menuItem action] == @selector(runBios:)) { if (preferenceWindow != nil) -- cgit v1.2.3