Cocoa Port: Do some refactoring to remove extraneous connections in EmuControllerDelegate.
This commit is contained in:
parent
221fa5f72b
commit
cb4ecbe17e
|
@ -81,7 +81,8 @@ ClientExecutionControl::ClientExecutionControl()
|
|||
_settingsPending.executionSpeed = SPEED_SCALAR_NORMAL;
|
||||
|
||||
_settingsPending.enableFrameSkip = true;
|
||||
_settingsPending.frameJumpTarget = 0;
|
||||
_settingsPending.frameJumpRelativeTarget = 60;
|
||||
_settingsPending.frameJumpTarget = 60;
|
||||
|
||||
_settingsPending.execBehavior = ExecutionBehavior_Pause;
|
||||
_settingsPending.jumpBehavior = FrameJumpBehavior_Forward;
|
||||
|
@ -672,6 +673,24 @@ void ClientExecutionControl::ResetFramesToSkip()
|
|||
pthread_mutex_unlock(&this->_mutexSettingsPendingOnNDSExec);
|
||||
}
|
||||
|
||||
uint64_t ClientExecutionControl::GetFrameJumpRelativeTarget()
|
||||
{
|
||||
pthread_mutex_lock(&this->_mutexSettingsPendingOnExecutionLoopStart);
|
||||
const uint64_t jumpTarget = this->_settingsPending.frameJumpRelativeTarget;
|
||||
pthread_mutex_unlock(&this->_mutexSettingsPendingOnExecutionLoopStart);
|
||||
|
||||
return jumpTarget;
|
||||
}
|
||||
|
||||
void ClientExecutionControl::SetFrameJumpRelativeTarget(uint64_t newRelativeTarget)
|
||||
{
|
||||
pthread_mutex_lock(&this->_mutexSettingsPendingOnExecutionLoopStart);
|
||||
this->_settingsPending.frameJumpRelativeTarget = newRelativeTarget;
|
||||
|
||||
this->_newSettingsPendingOnExecutionLoopStart = true;
|
||||
pthread_mutex_unlock(&this->_mutexSettingsPendingOnExecutionLoopStart);
|
||||
}
|
||||
|
||||
uint64_t ClientExecutionControl::GetFrameJumpTarget()
|
||||
{
|
||||
pthread_mutex_lock(&this->_mutexSettingsPendingOnExecutionLoopStart);
|
||||
|
@ -729,12 +748,20 @@ void ClientExecutionControl::SetExecutionBehavior(ExecutionBehavior newBehavior)
|
|||
|
||||
FrameJumpBehavior ClientExecutionControl::GetFrameJumpBehavior()
|
||||
{
|
||||
return this->_settingsPending.jumpBehavior;
|
||||
pthread_mutex_lock(&this->_mutexSettingsPendingOnExecutionLoopStart);
|
||||
const FrameJumpBehavior jumpBehavior = this->_settingsPending.jumpBehavior;
|
||||
pthread_mutex_unlock(&this->_mutexSettingsPendingOnExecutionLoopStart);
|
||||
|
||||
return jumpBehavior;
|
||||
}
|
||||
|
||||
void ClientExecutionControl::SetFrameJumpBehavior(FrameJumpBehavior newBehavior)
|
||||
{
|
||||
pthread_mutex_lock(&this->_mutexSettingsPendingOnExecutionLoopStart);
|
||||
this->_settingsPending.jumpBehavior = newBehavior;
|
||||
|
||||
this->_newSettingsPendingOnExecutionLoopStart = true;
|
||||
pthread_mutex_unlock(&this->_mutexSettingsPendingOnExecutionLoopStart);
|
||||
}
|
||||
|
||||
void ClientExecutionControl::ApplySettingsOnReset()
|
||||
|
@ -821,7 +848,24 @@ void ClientExecutionControl::ApplySettingsOnExecutionLoopStart()
|
|||
this->_settingsApplied.enableExecutionSpeedLimiter = this->_settingsPending.enableExecutionSpeedLimiter;
|
||||
this->_settingsApplied.executionSpeed = speedScalar;
|
||||
|
||||
this->_settingsApplied.frameJumpTarget = this->_settingsPending.frameJumpTarget;
|
||||
this->_settingsApplied.jumpBehavior = this->_settingsPending.jumpBehavior;
|
||||
this->_settingsApplied.frameJumpRelativeTarget = this->_settingsPending.frameJumpRelativeTarget;
|
||||
|
||||
switch (this->_settingsApplied.jumpBehavior)
|
||||
{
|
||||
case FrameJumpBehavior_Forward:
|
||||
this->_settingsApplied.frameJumpTarget = this->_ndsFrameInfo.frameIndex + this->_settingsApplied.frameJumpRelativeTarget;
|
||||
break;
|
||||
|
||||
case FrameJumpBehavior_NextMarker:
|
||||
// TODO: Support frame markers in replays.
|
||||
break;
|
||||
|
||||
case FrameJumpBehavior_ToFrame:
|
||||
default:
|
||||
this->_settingsApplied.frameJumpTarget = this->_settingsPending.frameJumpTarget;
|
||||
break;
|
||||
}
|
||||
|
||||
const bool needBehaviorChange = (this->_settingsApplied.execBehavior != this->_settingsPending.execBehavior);
|
||||
if (needBehaviorChange)
|
||||
|
@ -1380,6 +1424,15 @@ const NDSFrameInfo& ClientExecutionControl::GetNDSFrameInfo()
|
|||
return this->_ndsFrameInfo;
|
||||
}
|
||||
|
||||
uint64_t ClientExecutionControl::GetFrameIndex()
|
||||
{
|
||||
pthread_mutex_lock(&this->_mutexOutputPostNDSExec);
|
||||
const uint64_t frameIndex = this->_ndsFrameInfo.frameIndex;
|
||||
pthread_mutex_unlock(&this->_mutexOutputPostNDSExec);
|
||||
|
||||
return frameIndex;
|
||||
}
|
||||
|
||||
double ClientExecutionControl::GetFrameTime()
|
||||
{
|
||||
return this->_frameTime;
|
||||
|
|
|
@ -345,6 +345,7 @@ struct ClientExecutionControlSettings
|
|||
double executionSpeed;
|
||||
|
||||
bool enableFrameSkip;
|
||||
uint64_t frameJumpRelativeTarget;
|
||||
uint64_t frameJumpTarget;
|
||||
|
||||
ExecutionBehavior execBehavior;
|
||||
|
@ -569,6 +570,9 @@ public:
|
|||
void SetFramesToSkip(uint8_t numFrames);
|
||||
void ResetFramesToSkip();
|
||||
|
||||
uint64_t GetFrameJumpRelativeTarget();
|
||||
void SetFrameJumpRelativeTarget(uint64_t newRelativeTarget);
|
||||
|
||||
uint64_t GetFrameJumpTarget();
|
||||
uint64_t GetFrameJumpTargetApplied();
|
||||
void SetFrameJumpTarget(uint64_t newJumpTarget);
|
||||
|
@ -613,6 +617,7 @@ public:
|
|||
|
||||
void FetchOutputPostNDSExec();
|
||||
const NDSFrameInfo& GetNDSFrameInfo();
|
||||
uint64_t GetFrameIndex();
|
||||
|
||||
double GetFrameTime();
|
||||
uint8_t CalculateFrameSkip(double startAbsoluteTime, double frameAbsoluteTime);
|
||||
|
|
|
@ -88,6 +88,10 @@ typedef struct
|
|||
@property (assign) BOOL isCheatingEnabled;
|
||||
@property (assign) CGFloat speedScalar;
|
||||
|
||||
@property (assign) NSInteger frameJumpBehavior;
|
||||
@property (assign) NSUInteger frameJumpNumberFramesForward;
|
||||
@property (assign) NSUInteger frameJumpToFrameIndex;
|
||||
|
||||
@property (assign) BOOL isGdbStubStarted;
|
||||
@property (assign) BOOL isInDebugTrap;
|
||||
@property (assign) BOOL enableGdbStubARM9;
|
||||
|
@ -130,8 +134,6 @@ typedef struct
|
|||
- (void) reset;
|
||||
- (void) getTimedEmulatorStatistics:(NSTimer *)timer;
|
||||
- (NSUInteger) frameNumber;
|
||||
- (void) frameJumpTo:(NSUInteger)targetFrameNum;
|
||||
- (void) frameJump:(NSUInteger)relativeFrameNum;
|
||||
|
||||
- (void) addOutput:(CocoaDSOutput *)theOutput;
|
||||
- (void) removeOutput:(CocoaDSOutput *)theOutput;
|
||||
|
|
|
@ -89,6 +89,10 @@ volatile bool execute = true;
|
|||
@dynamic isCheatingEnabled;
|
||||
@dynamic speedScalar;
|
||||
|
||||
@dynamic frameJumpBehavior;
|
||||
@dynamic frameJumpNumberFramesForward;
|
||||
@dynamic frameJumpToFrameIndex;
|
||||
|
||||
@dynamic isGdbStubStarted;
|
||||
@dynamic isInDebugTrap;
|
||||
@synthesize enableGdbStubARM9;
|
||||
|
@ -300,6 +304,40 @@ volatile bool execute = true;
|
|||
return scalar;
|
||||
}
|
||||
|
||||
- (void) setFrameJumpBehavior:(NSInteger)theBehavior
|
||||
{
|
||||
execControl->SetFrameJumpBehavior((FrameJumpBehavior)theBehavior);
|
||||
}
|
||||
|
||||
- (NSInteger) frameJumpBehavior
|
||||
{
|
||||
const NSInteger theBehavior = (NSInteger)execControl->GetFrameJumpBehavior();
|
||||
return theBehavior;
|
||||
}
|
||||
|
||||
- (void) setFrameJumpNumberFramesForward:(NSUInteger)numberFrames
|
||||
{
|
||||
execControl->SetFrameJumpRelativeTarget((uint64_t)numberFrames);
|
||||
[self setFrameJumpToFrameIndex:[self frameNumber] + numberFrames];
|
||||
}
|
||||
|
||||
- (NSUInteger) frameJumpNumberFramesForward
|
||||
{
|
||||
const NSUInteger numberFrames = execControl->GetFrameJumpRelativeTarget();
|
||||
return numberFrames;
|
||||
}
|
||||
|
||||
- (void) setFrameJumpToFrameIndex:(NSUInteger)frameIndex
|
||||
{
|
||||
execControl->SetFrameJumpTarget((uint64_t)frameIndex);
|
||||
}
|
||||
|
||||
- (NSUInteger) frameJumpToFrameIndex
|
||||
{
|
||||
const NSUInteger frameIndex = execControl->GetFrameJumpTarget();
|
||||
return frameIndex;
|
||||
}
|
||||
|
||||
- (void) setIsSpeedLimitEnabled:(BOOL)enable
|
||||
{
|
||||
execControl->SetEnableSpeedLimiter((enable) ? true : false);
|
||||
|
@ -557,6 +595,33 @@ volatile bool execute = true;
|
|||
|
||||
- (void) setCoreState:(NSInteger)coreState
|
||||
{
|
||||
if (coreState == ExecutionBehavior_FrameJump)
|
||||
{
|
||||
uint64_t frameIndex = [self frameNumber];
|
||||
|
||||
switch ([self frameJumpBehavior])
|
||||
{
|
||||
case FrameJumpBehavior_Forward:
|
||||
[self setFrameJumpToFrameIndex:[self frameJumpNumberFramesForward] + frameIndex];
|
||||
break;
|
||||
|
||||
case FrameJumpBehavior_NextMarker:
|
||||
// TODO: Support frame jumping to replay markers.
|
||||
break;
|
||||
|
||||
case FrameJumpBehavior_ToFrame:
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
uint64_t jumpTarget = [self frameJumpToFrameIndex];
|
||||
|
||||
if (frameIndex >= jumpTarget)
|
||||
{
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
pthread_mutex_lock(&threadParam.mutexThreadExecute);
|
||||
|
||||
execControl->SetExecutionBehavior((ExecutionBehavior)coreState);
|
||||
|
@ -572,7 +637,7 @@ volatile bool execute = true;
|
|||
[cdsOutput setIdle:YES];
|
||||
}
|
||||
|
||||
[self setFrameStatus:[NSString stringWithFormat:@"%lu", (unsigned long)[self frameNumber]]];
|
||||
[self setFrameStatus:[NSString stringWithFormat:@"%llu", (unsigned long long)[self frameNumber]]];
|
||||
[_fpsTimer invalidate];
|
||||
_fpsTimer = nil;
|
||||
break;
|
||||
|
@ -585,7 +650,7 @@ volatile bool execute = true;
|
|||
[cdsOutput setIdle:NO];
|
||||
}
|
||||
|
||||
[self setFrameStatus:[NSString stringWithFormat:@"%lu", (unsigned long)[self frameNumber]]];
|
||||
[self setFrameStatus:[NSString stringWithFormat:@"%llu", (unsigned long long)[self frameNumber]]];
|
||||
[_fpsTimer invalidate];
|
||||
_fpsTimer = nil;
|
||||
break;
|
||||
|
@ -625,7 +690,7 @@ volatile bool execute = true;
|
|||
}
|
||||
}
|
||||
|
||||
[self setFrameStatus:[NSString stringWithFormat:@"Jumping to frame %lu.", (unsigned long)execControl->GetFrameJumpTarget()]];
|
||||
[self setFrameStatus:[NSString stringWithFormat:@"Jumping to frame %llu.", (unsigned long long)execControl->GetFrameJumpTarget()]];
|
||||
[_fpsTimer invalidate];
|
||||
_fpsTimer = nil;
|
||||
break;
|
||||
|
@ -810,26 +875,7 @@ volatile bool execute = true;
|
|||
|
||||
- (NSUInteger) frameNumber
|
||||
{
|
||||
pthread_rwlock_rdlock(&threadParam.rwlockCoreExecute);
|
||||
const NSUInteger currFrameNum = currFrameCounter;
|
||||
pthread_rwlock_unlock(&threadParam.rwlockCoreExecute);
|
||||
|
||||
return currFrameNum;
|
||||
}
|
||||
|
||||
- (void) frameJumpTo:(NSUInteger)targetFrameNum
|
||||
{
|
||||
execControl->SetFrameJumpTarget(targetFrameNum);
|
||||
|
||||
if (targetFrameNum > [self frameNumber])
|
||||
{
|
||||
[self setCoreState:ExecutionBehavior_FrameJump];
|
||||
}
|
||||
}
|
||||
|
||||
- (void) frameJump:(NSUInteger)relativeFrameNum
|
||||
{
|
||||
[self frameJumpTo:[self frameNumber] + relativeFrameNum];
|
||||
return (NSUInteger)execControl->GetFrameIndex();
|
||||
}
|
||||
|
||||
- (void) addOutput:(CocoaDSOutput *)theOutput
|
||||
|
|
Binary file not shown.
|
@ -12,6 +12,8 @@
|
|||
</object>
|
||||
<object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<integer value="8991"/>
|
||||
<integer value="576"/>
|
||||
</object>
|
||||
<object class="NSArray" key="IBDocument.PluginDependencies">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
|
@ -20732,7 +20734,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
<object class="NSWindowTemplate" id="743100165">
|
||||
<int key="NSWindowStyleMask">23</int>
|
||||
<int key="NSWindowBacking">2</int>
|
||||
<string key="NSWindowRect">{{144, 214}, {254, 262}}</string>
|
||||
<string key="NSWindowRect">{{144, 234}, {254, 242}}</string>
|
||||
<int key="NSWTFlags">-461896704</int>
|
||||
<string key="NSWindowTitle">Execution Control</string>
|
||||
<string key="NSWindowClass">NSPanel</string>
|
||||
|
@ -20740,14 +20742,14 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
<nil key="NSUserInterfaceItemIdentifier"/>
|
||||
<string key="NSWindowContentMaxSize">{1.7976931348623157e+308, 1.7976931348623157e+308}</string>
|
||||
<object class="NSView" key="NSWindowView" id="1071235285">
|
||||
<nil key="NSNextResponder"/>
|
||||
<reference key="NSNextResponder"/>
|
||||
<int key="NSvFlags">256</int>
|
||||
<object class="NSMutableArray" key="NSSubviews">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="NSButton" id="987271593">
|
||||
<reference key="NSNextResponder" ref="1071235285"/>
|
||||
<int key="NSvFlags">268</int>
|
||||
<string key="NSFrame">{{0, 230}, {32, 32}}</string>
|
||||
<string key="NSFrame">{{0, 210}, {32, 32}}</string>
|
||||
<reference key="NSSuperview" ref="1071235285"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:2530</string>
|
||||
<bool key="NSEnabled">YES</bool>
|
||||
|
@ -20774,7 +20776,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
<object class="NSButton" id="24823560">
|
||||
<reference key="NSNextResponder" ref="1071235285"/>
|
||||
<int key="NSvFlags">268</int>
|
||||
<string key="NSFrame">{{32, 230}, {32, 32}}</string>
|
||||
<string key="NSFrame">{{32, 210}, {32, 32}}</string>
|
||||
<reference key="NSSuperview" ref="1071235285"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:2530</string>
|
||||
<bool key="NSEnabled">YES</bool>
|
||||
|
@ -20801,7 +20803,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
<object class="NSButton" id="638248312">
|
||||
<reference key="NSNextResponder" ref="1071235285"/>
|
||||
<int key="NSvFlags">268</int>
|
||||
<string key="NSFrame">{{64, 230}, {32, 32}}</string>
|
||||
<string key="NSFrame">{{64, 210}, {32, 32}}</string>
|
||||
<reference key="NSSuperview" ref="1071235285"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:2530</string>
|
||||
<bool key="NSEnabled">YES</bool>
|
||||
|
@ -20828,7 +20830,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
<object class="NSButton" id="673376854">
|
||||
<reference key="NSNextResponder" ref="1071235285"/>
|
||||
<int key="NSvFlags">268</int>
|
||||
<string key="NSFrame">{{222, 230}, {32, 32}}</string>
|
||||
<string key="NSFrame">{{222, 210}, {32, 32}}</string>
|
||||
<reference key="NSSuperview" ref="1071235285"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:2530</string>
|
||||
<bool key="NSEnabled">YES</bool>
|
||||
|
@ -20855,7 +20857,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
<object class="NSButton" id="1051817973">
|
||||
<reference key="NSNextResponder" ref="1071235285"/>
|
||||
<int key="NSvFlags">268</int>
|
||||
<string key="NSFrame">{{96, 230}, {32, 32}}</string>
|
||||
<string key="NSFrame">{{96, 210}, {32, 32}}</string>
|
||||
<reference key="NSSuperview" ref="1071235285"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:2530</string>
|
||||
<bool key="NSEnabled">YES</bool>
|
||||
|
@ -20895,7 +20897,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
<object class="NSMutableArray" key="NSSubviews">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
</object>
|
||||
<string key="NSFrame">{{176, 53}, {64, 19}}</string>
|
||||
<string key="NSFrame">{{176, 33}, {64, 19}}</string>
|
||||
<reference key="NSSuperview" ref="765987896"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:817</string>
|
||||
<bool key="NSEnabled">YES</bool>
|
||||
|
@ -20974,7 +20976,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
<object class="NSMutableArray" key="NSSubviews">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
</object>
|
||||
<string key="NSFrame">{{176, 33}, {64, 19}}</string>
|
||||
<string key="NSFrame">{{176, 13}, {64, 19}}</string>
|
||||
<reference key="NSSuperview" ref="765987896"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:817</string>
|
||||
<bool key="NSEnabled">YES</bool>
|
||||
|
@ -21043,12 +21045,12 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
<object class="NSMatrix" id="253303397">
|
||||
<reference key="NSNextResponder" ref="765987896"/>
|
||||
<int key="NSvFlags">268</int>
|
||||
<string key="NSFrame">{{18, 14}, {150, 58}}</string>
|
||||
<string key="NSFrame">{{18, 14}, {150, 38}}</string>
|
||||
<reference key="NSSuperview" ref="765987896"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:736</string>
|
||||
<bool key="NSEnabled">YES</bool>
|
||||
<bool key="NSAllowsLogicalLayoutDirection">NO</bool>
|
||||
<int key="NSNumRows">3</int>
|
||||
<int key="NSNumRows">2</int>
|
||||
<int key="NSNumCols">1</int>
|
||||
<object class="NSMutableArray" key="NSCells">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
|
@ -21172,53 +21174,6 @@ QXBwbGUgQ29tcHV0ZXIsIEluYy4sIDIwMDUAAAAAA</bytes>
|
|||
<int key="NSPeriodicDelay">400</int>
|
||||
<int key="NSPeriodicInterval">75</int>
|
||||
</object>
|
||||
<object class="NSButtonCell" id="621920339">
|
||||
<int key="NSCellFlags">603979776</int>
|
||||
<int key="NSCellFlags2">131072</int>
|
||||
<string key="NSContents">Jump to next marker</string>
|
||||
<reference key="NSSupport" ref="26"/>
|
||||
<reference key="NSControlView" ref="253303397"/>
|
||||
<int key="NSTag">2</int>
|
||||
<int key="NSButtonFlags">1211912448</int>
|
||||
<int key="NSButtonFlags2">0</int>
|
||||
<object class="NSImage" key="NSNormalImage">
|
||||
<int key="NSImageFlags">12779520</int>
|
||||
<object class="NSMutableArray" key="NSReps">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="NSArray">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<integer value="0"/>
|
||||
<object class="NSCoreUIImageRep">
|
||||
<object class="NSMutableDictionary" key="NSCoreUIImageOptions">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="NSArray" key="dict.sortedKeys">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<string>size</string>
|
||||
<string>state</string>
|
||||
<string>value</string>
|
||||
<string>widget</string>
|
||||
</object>
|
||||
<object class="NSMutableArray" key="dict.values">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<string>regular</string>
|
||||
<string>normal</string>
|
||||
<integer value="0"/>
|
||||
<string>radiobutton</string>
|
||||
</object>
|
||||
</object>
|
||||
<string key="NSSize">{18, 18}</string>
|
||||
<int key="NSBitsPerSample">0</int>
|
||||
<bool key="NSHasAlpha">YES</bool>
|
||||
<string key="NSColorSpaceName">NSCalibratedRGBColorSpace</string>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
<reference key="NSColor" ref="122595646"/>
|
||||
</object>
|
||||
<reference key="NSAlternateImage" ref="491083016"/>
|
||||
<int key="NSPeriodicDelay">400</int>
|
||||
<int key="NSPeriodicInterval">75</int>
|
||||
</object>
|
||||
</object>
|
||||
<string key="NSCellSize">{150, 18}</string>
|
||||
<string key="NSIntercellSpacing">{4, 2}</string>
|
||||
|
@ -21335,12 +21290,12 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
<reference key="NSFont" ref="462791774"/>
|
||||
</object>
|
||||
</object>
|
||||
<string key="NSFrame">{{1, 1}, {258, 82}}</string>
|
||||
<string key="NSFrame">{{1, 1}, {258, 62}}</string>
|
||||
<reference key="NSSuperview" ref="830110984"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:21</string>
|
||||
</object>
|
||||
</object>
|
||||
<string key="NSFrame">{{-3, 124}, {260, 98}}</string>
|
||||
<string key="NSFrame">{{-3, 124}, {260, 78}}</string>
|
||||
<reference key="NSSuperview" ref="1071235285"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:18</string>
|
||||
<string key="NSOffsets">{0, 0}</string>
|
||||
|
@ -21645,7 +21600,8 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
<int key="NSTextFieldAlignmentRectInsetsVersion">1</int>
|
||||
</object>
|
||||
</object>
|
||||
<string key="NSFrameSize">{254, 262}</string>
|
||||
<string key="NSFrameSize">{254, 242}</string>
|
||||
<reference key="NSSuperview"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:103</string>
|
||||
</object>
|
||||
<string key="NSScreenRect">{{0, 0}, {1920, 1177}}</string>
|
||||
|
@ -30882,6 +30838,9 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
<string>cdsGPU.render3DTextureSmoothing</string>
|
||||
<string>emuFlagUseGameSpecificHacks</string>
|
||||
<string>cdsGPU.gpuColorFormat</string>
|
||||
<string>frameJumpBehavior</string>
|
||||
<string>frameJumpNumberFramesForward</string>
|
||||
<string>frameJumpToFrameIndex</string>
|
||||
</object>
|
||||
<string key="NSObjectClassName">CocoaDSCore</string>
|
||||
<object class="_NSManagedProxy" key="_NSManagedProxy"/>
|
||||
|
@ -30921,9 +30880,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
<string>mainWindow.screenshotFileFormat</string>
|
||||
<string>selectedExportRomSaveID</string>
|
||||
<string>mainWindow.displayGap</string>
|
||||
<string>frameJumpType</string>
|
||||
<string>frameJumpFramesForward</string>
|
||||
<string>frameJumpToFrame</string>
|
||||
<string>mainWindow.outputFilter</string>
|
||||
<string>mainWindow.videoSourceDeposterize</string>
|
||||
<string>mainWindow.videoFiltersPreferGPU</string>
|
||||
|
@ -40986,54 +40942,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
</object>
|
||||
<int key="connectionID">9093</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBBindingConnection" key="connection">
|
||||
<string key="label">selectedTag: selection.frameJumpType</string>
|
||||
<reference key="source" ref="253303397"/>
|
||||
<reference key="destination" ref="258098641"/>
|
||||
<object class="NSNibBindingConnector" key="connector">
|
||||
<reference key="NSSource" ref="253303397"/>
|
||||
<reference key="NSDestination" ref="258098641"/>
|
||||
<string key="NSLabel">selectedTag: selection.frameJumpType</string>
|
||||
<string key="NSBinding">selectedTag</string>
|
||||
<string key="NSKeyPath">selection.frameJumpType</string>
|
||||
<int key="NSNibBindingConnectorVersion">2</int>
|
||||
</object>
|
||||
</object>
|
||||
<int key="connectionID">9096</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBBindingConnection" key="connection">
|
||||
<string key="label">value: selection.frameJumpFramesForward</string>
|
||||
<reference key="source" ref="1005221604"/>
|
||||
<reference key="destination" ref="258098641"/>
|
||||
<object class="NSNibBindingConnector" key="connector">
|
||||
<reference key="NSSource" ref="1005221604"/>
|
||||
<reference key="NSDestination" ref="258098641"/>
|
||||
<string key="NSLabel">value: selection.frameJumpFramesForward</string>
|
||||
<string key="NSBinding">value</string>
|
||||
<string key="NSKeyPath">selection.frameJumpFramesForward</string>
|
||||
<int key="NSNibBindingConnectorVersion">2</int>
|
||||
</object>
|
||||
</object>
|
||||
<int key="connectionID">9097</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBBindingConnection" key="connection">
|
||||
<string key="label">value: selection.frameJumpToFrame</string>
|
||||
<reference key="source" ref="1048302620"/>
|
||||
<reference key="destination" ref="258098641"/>
|
||||
<object class="NSNibBindingConnector" key="connector">
|
||||
<reference key="NSSource" ref="1048302620"/>
|
||||
<reference key="NSDestination" ref="258098641"/>
|
||||
<string key="NSLabel">value: selection.frameJumpToFrame</string>
|
||||
<string key="NSBinding">value</string>
|
||||
<string key="NSKeyPath">selection.frameJumpToFrame</string>
|
||||
<int key="NSNibBindingConnectorVersion">2</int>
|
||||
</object>
|
||||
</object>
|
||||
<int key="connectionID">9098</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBOutletConnection" key="connection">
|
||||
<string key="label">executionControlWindow</string>
|
||||
|
@ -44593,6 +44501,54 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
</object>
|
||||
<int key="connectionID">10510</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBBindingConnection" key="connection">
|
||||
<string key="label">selectedTag: selection.frameJumpBehavior</string>
|
||||
<reference key="source" ref="253303397"/>
|
||||
<reference key="destination" ref="582168938"/>
|
||||
<object class="NSNibBindingConnector" key="connector">
|
||||
<reference key="NSSource" ref="253303397"/>
|
||||
<reference key="NSDestination" ref="582168938"/>
|
||||
<string key="NSLabel">selectedTag: selection.frameJumpBehavior</string>
|
||||
<string key="NSBinding">selectedTag</string>
|
||||
<string key="NSKeyPath">selection.frameJumpBehavior</string>
|
||||
<int key="NSNibBindingConnectorVersion">2</int>
|
||||
</object>
|
||||
</object>
|
||||
<int key="connectionID">10512</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBBindingConnection" key="connection">
|
||||
<string key="label">value: selection.frameJumpNumberFramesForward</string>
|
||||
<reference key="source" ref="1005221604"/>
|
||||
<reference key="destination" ref="582168938"/>
|
||||
<object class="NSNibBindingConnector" key="connector">
|
||||
<reference key="NSSource" ref="1005221604"/>
|
||||
<reference key="NSDestination" ref="582168938"/>
|
||||
<string key="NSLabel">value: selection.frameJumpNumberFramesForward</string>
|
||||
<string key="NSBinding">value</string>
|
||||
<string key="NSKeyPath">selection.frameJumpNumberFramesForward</string>
|
||||
<int key="NSNibBindingConnectorVersion">2</int>
|
||||
</object>
|
||||
</object>
|
||||
<int key="connectionID">10514</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBBindingConnection" key="connection">
|
||||
<string key="label">value: selection.frameJumpToFrameIndex</string>
|
||||
<reference key="source" ref="1048302620"/>
|
||||
<reference key="destination" ref="582168938"/>
|
||||
<object class="NSNibBindingConnector" key="connector">
|
||||
<reference key="NSSource" ref="1048302620"/>
|
||||
<reference key="NSDestination" ref="582168938"/>
|
||||
<string key="NSLabel">value: selection.frameJumpToFrameIndex</string>
|
||||
<string key="NSBinding">value</string>
|
||||
<string key="NSKeyPath">selection.frameJumpToFrameIndex</string>
|
||||
<int key="NSNibBindingConnectorVersion">2</int>
|
||||
</object>
|
||||
</object>
|
||||
<int key="connectionID">10516</int>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBMutableOrderedSet" key="objectRecords">
|
||||
<object class="NSArray" key="orderedObjects">
|
||||
|
@ -55502,18 +55458,12 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
<reference key="object" ref="253303397"/>
|
||||
<object class="NSMutableArray" key="children">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<reference ref="621920339"/>
|
||||
<reference ref="411711591"/>
|
||||
<reference ref="674426613"/>
|
||||
<reference ref="850478018"/>
|
||||
</object>
|
||||
<reference key="parent" ref="830110984"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">9038</int>
|
||||
<reference key="object" ref="621920339"/>
|
||||
<reference key="parent" ref="253303397"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">9037</int>
|
||||
<reference key="object" ref="411711591"/>
|
||||
|
@ -62868,7 +62818,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
<string>9035.IBPluginDependency</string>
|
||||
<string>9036.IBPluginDependency</string>
|
||||
<string>9037.IBPluginDependency</string>
|
||||
<string>9038.IBPluginDependency</string>
|
||||
<string>9039.IBPluginDependency</string>
|
||||
<string>904.IBPluginDependency</string>
|
||||
<string>9040.IBPluginDependency</string>
|
||||
|
@ -64431,7 +64380,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
<string>{{329, 836}, {512, 20}}</string>
|
||||
<string>{{380, 836}, {512, 20}}</string>
|
||||
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
|
@ -65556,7 +65505,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
<string>{{599, 423}, {257, 413}}</string>
|
||||
<string>{{568, 423}, {257, 413}}</string>
|
||||
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
|
@ -66765,9 +66714,9 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
<string>{{307, 556}, {254, 262}}</string>
|
||||
<string>{{898, 620}, {254, 242}}</string>
|
||||
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
<string>{{307, 556}, {254, 262}}</string>
|
||||
<string>{{898, 620}, {254, 242}}</string>
|
||||
<boolean value="NO"/>
|
||||
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
<object class="NSMutableDictionary">
|
||||
|
@ -66871,7 +66820,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
<integer value="1040"/>
|
||||
<boolean value="YES"/>
|
||||
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
|
@ -67353,7 +67301,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
|
|||
</object>
|
||||
</object>
|
||||
<nil key="sourceID"/>
|
||||
<int key="maxID">10510</int>
|
||||
<int key="maxID">10516</int>
|
||||
</object>
|
||||
<object class="IBClassDescriber" key="IBDocument.Classes">
|
||||
<object class="NSMutableArray" key="referencedPartialClassDescriptions">
|
||||
|
|
|
@ -1596,17 +1596,18 @@ static std::unordered_map<NSScreen *, DisplayWindowController *> _screenMap; //
|
|||
{
|
||||
BOOL enable = YES;
|
||||
const SEL theAction = [theItem action];
|
||||
CocoaDSCore *cdsCore = (CocoaDSCore *)[[emuControl cdsCoreController] content];
|
||||
|
||||
if (theAction == @selector(toggleExecutePause:))
|
||||
{
|
||||
if (![emuControl masterExecuteFlag] ||
|
||||
if (![cdsCore masterExecute] ||
|
||||
[emuControl currentRom] == nil ||
|
||||
[emuControl isUserInterfaceBlockingExecution])
|
||||
{
|
||||
enable = NO;
|
||||
}
|
||||
|
||||
if ([emuControl executionState] == ExecutionBehavior_Pause)
|
||||
if ([cdsCore coreState] == ExecutionBehavior_Pause)
|
||||
{
|
||||
[theItem setLabel:NSSTRING_TITLE_EXECUTE_CONTROL];
|
||||
[theItem setImage:[emuControl iconExecute]];
|
||||
|
@ -1619,10 +1620,10 @@ static std::unordered_map<NSScreen *, DisplayWindowController *> _screenMap; //
|
|||
}
|
||||
else if (theAction == @selector(frameAdvance:))
|
||||
{
|
||||
if (![emuControl masterExecuteFlag] ||
|
||||
if (![cdsCore masterExecute] ||
|
||||
[emuControl currentRom] == nil ||
|
||||
[emuControl isUserInterfaceBlockingExecution] ||
|
||||
[emuControl executionState] != ExecutionBehavior_Pause)
|
||||
[cdsCore coreState] != ExecutionBehavior_Pause)
|
||||
{
|
||||
enable = NO;
|
||||
}
|
||||
|
@ -1636,7 +1637,7 @@ static std::unordered_map<NSScreen *, DisplayWindowController *> _screenMap; //
|
|||
}
|
||||
else if (theAction == @selector(changeCoreSpeed:))
|
||||
{
|
||||
NSInteger speedScalar = (NSInteger)([emuControl speedScalar] * 100.0);
|
||||
NSInteger speedScalar = (NSInteger)([cdsCore speedScalar] * 100.0);
|
||||
|
||||
if (speedScalar != (NSInteger)(SPEED_SCALAR_NORMAL * 100.0))
|
||||
{
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
Copyright (C) 2013-2015 DeSmuME Team
|
||||
Copyright (C) 2013-2017 DeSmuME Team
|
||||
|
||||
This file is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
|
@ -77,15 +77,9 @@ class AudioSampleBlockGenerator;
|
|||
NSURL *currentSaveStateURL;
|
||||
NSInteger selectedExportRomSaveID;
|
||||
NSInteger selectedRomSaveTypeID;
|
||||
NSInteger frameJumpType;
|
||||
NSInteger frameJumpFramesForward;
|
||||
NSInteger frameJumpToFrame;
|
||||
|
||||
CGFloat lastSetSpeedScalar;
|
||||
BOOL isSoftwareMicActive;
|
||||
BOOL isHardwareMicAvailable;
|
||||
BOOL isHardwareMicIdle;
|
||||
BOOL isHardwareMicInClip;
|
||||
float currentMicGainValue;
|
||||
BOOL isSoundMuted;
|
||||
float lastSetVolumeValue;
|
||||
|
@ -143,18 +137,12 @@ class AudioSampleBlockGenerator;
|
|||
@property (readonly) NSImage *iconSpeedNormal;
|
||||
@property (readonly) NSImage *iconSpeedDouble;
|
||||
|
||||
@property (readonly) BOOL masterExecuteFlag;
|
||||
@property (readonly) NSInteger executionState;
|
||||
@property (readonly) CGFloat lastSetSpeedScalar;
|
||||
@property (readonly) CGFloat speedScalar;
|
||||
|
||||
@property (assign) BOOL isWorking;
|
||||
@property (assign) BOOL isRomLoading;
|
||||
@property (assign) NSString *statusText;
|
||||
@property (assign) BOOL isSoftwareMicActive;
|
||||
@property (assign) BOOL isHardwareMicAvailable;
|
||||
@property (assign) BOOL isHardwareMicIdle;
|
||||
@property (assign) BOOL isHardwareMicInClip;
|
||||
@property (assign) float currentMicGainValue;
|
||||
@property (assign) float currentVolumeValue;
|
||||
@property (retain) NSImage *currentMicStatusIcon;
|
||||
|
@ -165,9 +153,6 @@ class AudioSampleBlockGenerator;
|
|||
@property (retain) NSURL *currentSaveStateURL;
|
||||
@property (assign) NSInteger selectedExportRomSaveID;
|
||||
@property (assign) NSInteger selectedRomSaveTypeID;
|
||||
@property (assign) NSInteger frameJumpType;
|
||||
@property (assign) NSInteger frameJumpFramesForward;
|
||||
@property (assign) NSInteger frameJumpToFrame;
|
||||
|
||||
@property (retain) DisplayWindowController *mainWindow;
|
||||
@property (readonly) NSMutableArray *windowList;
|
||||
|
|
|
@ -66,18 +66,12 @@
|
|||
@synthesize iconSpeedNormal;
|
||||
@synthesize iconSpeedDouble;
|
||||
|
||||
@dynamic masterExecuteFlag;
|
||||
@dynamic executionState;
|
||||
@synthesize lastSetSpeedScalar;
|
||||
@dynamic speedScalar;
|
||||
|
||||
@synthesize isWorking;
|
||||
@synthesize isRomLoading;
|
||||
@synthesize statusText;
|
||||
@synthesize isSoftwareMicActive;
|
||||
@synthesize isHardwareMicAvailable;
|
||||
@synthesize isHardwareMicIdle;
|
||||
@synthesize isHardwareMicInClip;
|
||||
@synthesize currentMicGainValue;
|
||||
@dynamic currentVolumeValue;
|
||||
@synthesize currentMicStatusIcon;
|
||||
|
@ -90,9 +84,6 @@
|
|||
@synthesize currentSaveStateURL;
|
||||
@synthesize selectedExportRomSaveID;
|
||||
@synthesize selectedRomSaveTypeID;
|
||||
@synthesize frameJumpType;
|
||||
@synthesize frameJumpFramesForward;
|
||||
@synthesize frameJumpToFrame;
|
||||
|
||||
@synthesize mainWindow;
|
||||
@synthesize windowList;
|
||||
|
@ -129,15 +120,9 @@
|
|||
currentSaveStateURL = nil;
|
||||
selectedRomSaveTypeID = ROMSAVETYPE_AUTOMATIC;
|
||||
selectedExportRomSaveID = 0;
|
||||
frameJumpType = FrameJumpBehavior_Forward;
|
||||
frameJumpFramesForward = 60;
|
||||
frameJumpToFrame = 0;
|
||||
|
||||
lastSetSpeedScalar = 1.0f;
|
||||
isSoftwareMicActive = NO;
|
||||
isHardwareMicAvailable = NO;
|
||||
isHardwareMicIdle = YES;
|
||||
isHardwareMicInClip = NO;
|
||||
currentMicGainValue = 0.0f;
|
||||
isSoundMuted = NO;
|
||||
lastSetVolumeValue = MAX_VOLUME;
|
||||
|
@ -282,24 +267,6 @@
|
|||
return theSpeaker;
|
||||
}
|
||||
|
||||
- (BOOL) masterExecuteFlag
|
||||
{
|
||||
CocoaDSCore *cdsCore = (CocoaDSCore *)[cdsCoreController content];
|
||||
return [cdsCore masterExecute];
|
||||
}
|
||||
|
||||
- (NSInteger) executionState
|
||||
{
|
||||
CocoaDSCore *cdsCore = (CocoaDSCore *)[cdsCoreController content];
|
||||
return [cdsCore coreState];
|
||||
}
|
||||
|
||||
- (CGFloat) speedScalar
|
||||
{
|
||||
CocoaDSCore *cdsCore = (CocoaDSCore *)[cdsCoreController content];
|
||||
return [cdsCore speedScalar];
|
||||
}
|
||||
|
||||
- (void) setCurrentVolumeValue:(float)vol
|
||||
{
|
||||
currentVolumeValue = vol;
|
||||
|
@ -1119,7 +1086,7 @@
|
|||
const float sineWaveFrequency = cmdAttr.floatValue[0];
|
||||
[cdsController setSineWaveGeneratorFrequency:sineWaveFrequency];
|
||||
|
||||
NSString *audioFilePath = cmdAttr.object[0];
|
||||
NSString *audioFilePath = (NSString *)cmdAttr.object[0];
|
||||
[cdsController setSelectedAudioFileGenerator:[inputManager audioFileGeneratorFromFilePath:audioFilePath]];
|
||||
}
|
||||
|
||||
|
@ -1202,7 +1169,7 @@
|
|||
return;
|
||||
}
|
||||
|
||||
const NSInteger slotNumber = (cmdAttr.useInputForSender) ? [CocoaDSUtil getIBActionSenderTag:cmdAttr.input.sender] : cmdAttr.intValue[0];
|
||||
const NSInteger slotNumber = (cmdAttr.useInputForSender) ? [CocoaDSUtil getIBActionSenderTag:(id)cmdAttr.input.object] : cmdAttr.intValue[0];
|
||||
if (slotNumber < 0 || slotNumber > MAX_SAVESTATE_SLOTS)
|
||||
{
|
||||
return;
|
||||
|
@ -1247,7 +1214,7 @@
|
|||
return;
|
||||
}
|
||||
|
||||
const NSInteger slotNumber = (cmdAttr.useInputForSender) ? [CocoaDSUtil getIBActionSenderTag:cmdAttr.input.sender] : cmdAttr.intValue[0];
|
||||
const NSInteger slotNumber = (cmdAttr.useInputForSender) ? [CocoaDSUtil getIBActionSenderTag:(id)cmdAttr.input.object] : cmdAttr.intValue[0];
|
||||
if (slotNumber < 0 || slotNumber > MAX_SAVESTATE_SLOTS)
|
||||
{
|
||||
return;
|
||||
|
@ -1283,7 +1250,7 @@
|
|||
return;
|
||||
}
|
||||
|
||||
const double relativeDegrees = (cmdAttr.useInputForSender) ? (double)[CocoaDSUtil getIBActionSenderTag:cmdAttr.input.sender] : (double)cmdAttr.intValue[0];
|
||||
const double relativeDegrees = (cmdAttr.useInputForSender) ? (double)[CocoaDSUtil getIBActionSenderTag:(id)cmdAttr.input.object] : (double)cmdAttr.intValue[0];
|
||||
const double angleDegrees = [mainWindow displayRotation] + relativeDegrees;
|
||||
[mainWindow setDisplayRotation:angleDegrees];
|
||||
}
|
||||
|
@ -1429,7 +1396,7 @@
|
|||
CommandAttributes cmdAttr;
|
||||
[cmdAttrValue getValue:&cmdAttr];
|
||||
|
||||
if (cmdAttr.input.state == INPUT_ATTRIBUTE_STATE_OFF || [self currentRom] == nil)
|
||||
if ( (cmdAttr.input.state == INPUT_ATTRIBUTE_STATE_OFF) || ([self currentRom] == nil) )
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
@ -1451,7 +1418,7 @@
|
|||
CommandAttributes cmdAttr;
|
||||
[cmdAttrValue getValue:&cmdAttr];
|
||||
|
||||
if (cmdAttr.input.state == INPUT_ATTRIBUTE_STATE_OFF || [self currentRom] == nil)
|
||||
if ( (cmdAttr.input.state == INPUT_ATTRIBUTE_STATE_OFF) || ([self currentRom] == nil) )
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
@ -1464,7 +1431,7 @@
|
|||
CommandAttributes cmdAttr;
|
||||
[cmdAttrValue getValue:&cmdAttr];
|
||||
|
||||
if (cmdAttr.input.state == INPUT_ATTRIBUTE_STATE_OFF || [self currentRom] == nil)
|
||||
if ( (cmdAttr.input.state == INPUT_ATTRIBUTE_STATE_OFF) || ([self currentRom] == nil) )
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
@ -1479,7 +1446,9 @@
|
|||
|
||||
CocoaDSCore *cdsCore = (CocoaDSCore *)[cdsCoreController content];
|
||||
|
||||
if (cmdAttr.input.state == INPUT_ATTRIBUTE_STATE_OFF || [cdsCore coreState] != ExecutionBehavior_Pause || [self currentRom] == nil)
|
||||
if ( (cmdAttr.input.state == INPUT_ATTRIBUTE_STATE_OFF) ||
|
||||
([cdsCore coreState] != ExecutionBehavior_Pause) ||
|
||||
([self currentRom] == nil) )
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
@ -1492,34 +1461,15 @@
|
|||
CommandAttributes cmdAttr;
|
||||
[cmdAttrValue getValue:&cmdAttr];
|
||||
|
||||
if (cmdAttr.input.state == INPUT_ATTRIBUTE_STATE_OFF || [self currentRom] == nil)
|
||||
if ( (cmdAttr.input.state == INPUT_ATTRIBUTE_STATE_OFF) || ([self currentRom] == nil) )
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
CocoaDSCore *cdsCore = (CocoaDSCore *)[cdsCoreController content];
|
||||
[executionControlWindow makeFirstResponder:nil];
|
||||
NSUInteger jumpFrames = 0;
|
||||
|
||||
switch ([self frameJumpType])
|
||||
{
|
||||
case FrameJumpBehavior_Forward:
|
||||
jumpFrames = [self frameJumpFramesForward];
|
||||
[cdsCore frameJump:jumpFrames];
|
||||
break;
|
||||
|
||||
case FrameJumpBehavior_ToFrame:
|
||||
jumpFrames = [self frameJumpToFrame];
|
||||
[cdsCore frameJumpTo:jumpFrames];
|
||||
break;
|
||||
|
||||
case FrameJumpBehavior_NextMarker:
|
||||
// TODO: Support when replay markers are implemented.
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
CocoaDSCore *cdsCore = (CocoaDSCore *)[cdsCoreController content];
|
||||
[cdsCore setCoreState:ExecutionBehavior_FrameJump];
|
||||
}
|
||||
|
||||
- (void) cmdReset:(NSValue *)cmdAttrValue
|
||||
|
@ -1527,13 +1477,11 @@
|
|||
CommandAttributes cmdAttr;
|
||||
[cmdAttrValue getValue:&cmdAttr];
|
||||
|
||||
if (cmdAttr.input.state == INPUT_ATTRIBUTE_STATE_OFF || [self currentRom] == nil)
|
||||
if ( (cmdAttr.input.state == INPUT_ATTRIBUTE_STATE_OFF) || ([self currentRom] == nil) )
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
CocoaDSCore *cdsCore = (CocoaDSCore *)[cdsCoreController content];
|
||||
|
||||
[self setStatusText:NSSTRING_STATUS_EMULATOR_RESETTING];
|
||||
[self setIsWorking:YES];
|
||||
|
||||
|
@ -1542,6 +1490,7 @@
|
|||
[[windowController window] displayIfNeeded];
|
||||
}
|
||||
|
||||
CocoaDSCore *cdsCore = (CocoaDSCore *)[cdsCoreController content];
|
||||
[cdsCore reset];
|
||||
|
||||
for (DisplayWindowController *windowController in windowList)
|
||||
|
@ -1598,7 +1547,7 @@
|
|||
}
|
||||
|
||||
CocoaDSCore *cdsCore = (CocoaDSCore *)[cdsCoreController content];
|
||||
const NSInteger bitNumber = (cmdAttr.useInputForSender) ? [CocoaDSUtil getIBActionSenderTag:cmdAttr.input.sender] : cmdAttr.intValue[0];
|
||||
const NSInteger bitNumber = (cmdAttr.useInputForSender) ? [CocoaDSUtil getIBActionSenderTag:(id)cmdAttr.input.object] : cmdAttr.intValue[0];
|
||||
const UInt32 flagBit = [cdsCore.cdsGPU gpuStateFlags] ^ (1 << bitNumber);
|
||||
|
||||
[cdsCore.cdsGPU setGpuStateFlags:flagBit];
|
||||
|
@ -1998,7 +1947,7 @@
|
|||
CocoaDSController *cdsController = [cdsCore cdsController];
|
||||
NSImage *micIcon = iconMicDisabled;
|
||||
|
||||
if ([self isSoftwareMicActive])
|
||||
if ([cdsController softwareMicState])
|
||||
{
|
||||
micIcon = iconMicManualOverride;
|
||||
}
|
||||
|
@ -2006,11 +1955,11 @@
|
|||
{
|
||||
if ([cdsController isHardwareMicAvailable])
|
||||
{
|
||||
if ([self isHardwareMicInClip])
|
||||
if ([cdsController isHardwareMicInClip])
|
||||
{
|
||||
micIcon = iconMicInClip;
|
||||
}
|
||||
else if ([self isHardwareMicIdle])
|
||||
else if ([cdsController isHardwareMicIdle])
|
||||
{
|
||||
micIcon = iconMicIdle;
|
||||
}
|
||||
|
@ -2304,11 +2253,6 @@
|
|||
}
|
||||
else if (theAction == @selector(frameAdvance:))
|
||||
{
|
||||
if ([cdsCore coreState] != ExecutionBehavior_Pause)
|
||||
{
|
||||
enable = NO;
|
||||
}
|
||||
|
||||
if ([cdsCore coreState] != ExecutionBehavior_Pause ||
|
||||
![cdsCore masterExecute] ||
|
||||
[self currentRom] == nil ||
|
||||
|
@ -2534,9 +2478,6 @@
|
|||
|
||||
- (void) doMicLevelUpdateFromController:(CocoaDSController *)cdsController
|
||||
{
|
||||
[self setIsSoftwareMicActive:[cdsController softwareMicState]];
|
||||
[self setIsHardwareMicIdle:[cdsController isHardwareMicIdle]];
|
||||
[self setIsHardwareMicInClip:[cdsController isHardwareMicInClip]];
|
||||
[self updateMicStatusIcon];
|
||||
}
|
||||
|
||||
|
|
|
@ -66,7 +66,7 @@ typedef struct
|
|||
float floatCoordX; // The X-coordinate as a float for commands that require a location
|
||||
float floatCoordY; // The Y-coordinate as a float for commands that require a location
|
||||
float scalar; // A scalar value for commands that require a scalar
|
||||
id sender; // An object for commands that require an object
|
||||
void *object; // An object for commands that require an object
|
||||
} InputAttributes;
|
||||
|
||||
typedef struct
|
||||
|
@ -75,7 +75,7 @@ typedef struct
|
|||
SEL selector; // The selector that is called on command dispatch
|
||||
int32_t intValue[4]; // Context dependent int values
|
||||
float floatValue[4]; // Context dependent float values
|
||||
id object[4]; // Context dependent objects
|
||||
void *object[4]; // Context dependent objects
|
||||
|
||||
bool useInputForIntCoord; // The command will prefer the input device's int coordinate
|
||||
bool useInputForFloatCoord; // The command will prefer the input device's float coordinate
|
||||
|
|
|
@ -453,7 +453,7 @@ InputAttributes InputAttributesOfHIDValue(IOHIDValueRef hidValueRef)
|
|||
inputAttr.floatCoordX = 0.0f;
|
||||
inputAttr.floatCoordY = 0.0f;
|
||||
inputAttr.scalar = (float)(logicalValue - logicalMin) / (float)(logicalMax - logicalMin);
|
||||
inputAttr.sender = nil;
|
||||
inputAttr.object = nil;
|
||||
|
||||
if (!inputAttr.isAnalog)
|
||||
{
|
||||
|
@ -2156,10 +2156,10 @@ NSMutableDictionary* DeviceInfoDictionaryWithCommandAttributes(const CommandAttr
|
|||
nil];
|
||||
|
||||
// Set the object references last since these could be nil.
|
||||
[newDeviceInfo setValue:cmdAttr->object[0] forKey:@"object0"];
|
||||
[newDeviceInfo setValue:cmdAttr->object[1] forKey:@"object1"];
|
||||
[newDeviceInfo setValue:cmdAttr->object[2] forKey:@"object2"];
|
||||
[newDeviceInfo setValue:cmdAttr->object[3] forKey:@"object3"];
|
||||
[newDeviceInfo setValue:(id)cmdAttr->object[0] forKey:@"object0"];
|
||||
[newDeviceInfo setValue:(id)cmdAttr->object[1] forKey:@"object1"];
|
||||
[newDeviceInfo setValue:(id)cmdAttr->object[2] forKey:@"object2"];
|
||||
[newDeviceInfo setValue:(id)cmdAttr->object[3] forKey:@"object3"];
|
||||
|
||||
return newDeviceInfo;
|
||||
}
|
||||
|
@ -2217,7 +2217,7 @@ InputAttributes InputManagerEncodeKeyboardInput(const unsigned short keyCode, BO
|
|||
inputAttr.floatCoordX = 0.0f;
|
||||
inputAttr.floatCoordY = 0.0f;
|
||||
inputAttr.scalar = (keyPressed) ? 1.0f : 0.0f;
|
||||
inputAttr.sender = nil;
|
||||
inputAttr.object = nil;
|
||||
|
||||
return inputAttr;
|
||||
}
|
||||
|
@ -2255,7 +2255,7 @@ InputAttributes InputManagerEncodeMouseButtonInput(const NSInteger buttonNumber,
|
|||
inputAttr.floatCoordX = touchLoc.x;
|
||||
inputAttr.floatCoordY = touchLoc.y;
|
||||
inputAttr.scalar = (buttonPressed) ? 1.0f : 0.0f;
|
||||
inputAttr.sender = nil;
|
||||
inputAttr.object = nil;
|
||||
|
||||
return inputAttr;
|
||||
}
|
||||
|
@ -2275,7 +2275,7 @@ InputAttributes InputManagerEncodeIBAction(const SEL theSelector, id sender)
|
|||
inputAttr.floatCoordX = 0.0f;
|
||||
inputAttr.floatCoordY = 0.0f;
|
||||
inputAttr.scalar = 1.0f;
|
||||
inputAttr.sender = sender;
|
||||
inputAttr.object = sender;
|
||||
|
||||
return inputAttr;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue