summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSND\weimingzhi_cp <SND\weimingzhi_cp@e17a0e51-4ae3-4d35-97c3-1a29b211df97>2009-11-04 02:54:50 +0000
committerSND\weimingzhi_cp <SND\weimingzhi_cp@e17a0e51-4ae3-4d35-97c3-1a29b211df97>2009-11-04 02:54:50 +0000
commitea688720ca433a8b3e677eba1b5b980e0d16c216 (patch)
tree9cf2d498878d051040abf4059f315e4ec4a54124
parent559fd026bb57e0d71615b237c37a31f287af5940 (diff)
downloadpcsxr-ea688720ca433a8b3e677eba1b5b980e0d16c216.tar.gz
git-svn-id: https://pcsxr.svn.codeplex.com/svn/pcsxr@35399 e17a0e51-4ae3-4d35-97c3-1a29b211df97
-rw-r--r--macosx/EmuThread.h1
-rw-r--r--macosx/EmuThread.m8
-rw-r--r--macosx/PcsxController.m6
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)