/************************************************************* *************************************************************/ private void HandleDiskTypeDetecting(AppStims theAppStims) { switch (theAppStims) { case AppStims.PS3_DISK: btnRipGame.Enabled = true; btnEject.Enabled = true; AddEvent("Ready"); theAppState = AppStates.READY; break; case AppStims.NO_PS3_DISK: btnEject.Enabled = true; /* Wait for user to swap disks */ break; case AppStims.NO_DISK_PRESENT: btnEject.Enabled = false; /* Wait for user to swap disks */ break; case AppStims.DRIVE_ABSENT: theAppState = AppStates.DETECTING; break; } }
/************************************************************* *************************************************************/ private void StateMachine(AppStims theStim) { switch (theAppState) { case AppStates.ERROR: HandleError(theStim); break; case AppStates.DETECTING: HandleDetecting(theStim); break; case AppStates.AUTHENTICATING: HandleAuthenticating(theStim); break; case AppStates.DISK_DETECTING: HandleDiskDetecting(theStim); break; case AppStates.DISK_TYPE_DETECTING: HandleDiskTypeDetecting(theStim); break; case AppStates.READY: HandleReady(theStim); break; } }
/************************************************************* *************************************************************/ private void HandleDetecting(AppStims theAppStims) { switch (theAppStims) { case AppStims.KEYS_LOADED: break; case AppStims.DRIVE_DETECTED: theAppState = AppStates.AUTHENTICATING; break; } }
/************************************************************* *************************************************************/ private void HandleError(AppStims theAppStims) { switch (theAppStims) { case AppStims.DRIVE_PRESENT: break; case AppStims.DRIVE_ABSENT: AddEvent("Drive Removed"); theAppState = AppStates.DETECTING; break; } }
/************************************************************* *************************************************************/ private void HandleAuthenticating(AppStims theAppStims) { switch (theAppStims) { case AppStims.KEYS_LOADED: AuthenticateDrive(); break; case AppStims.DRIVE_AUTH_FAILED: //keys.Enabled = true; theAppState = AppStates.ERROR; break; case AppStims.DRIVE_AUTH_PASSED: //keys.Enabled = true; theAppState = AppStates.DISK_DETECTING; break; } }
/************************************************************* *************************************************************/ private void HandleReady(AppStims theAppStims) { switch (theAppStims) { case AppStims.DISK_PRESENT: btnRipGame.Enabled = true; btnEject.Enabled = true; break; case AppStims.NO_DISK_PRESENT: AuthenticateDrive(); /* Wait for user to swap disks */ btnRipGame.Enabled = false; btnEject.Enabled = false; theAppState = AppStates.DISK_DETECTING; break; case AppStims.DRIVE_ABSENT: theAppState = AppStates.DETECTING; break; } }
/************************************************************* *************************************************************/ private void HandleDiskDetecting(AppStims theAppStims) { switch (theAppStims) { case AppStims.DRIVE_PRESENT: DiskDetectionWorker.RunWorkerAsync(); break; case AppStims.DRIVE_ABSENT: AddEvent("Drive Removed"); theAppState = AppStates.DETECTING; break; case AppStims.DISK_PRESENT: theAppState = AppStates.DISK_TYPE_DETECTING; break; case AppStims.NO_DISK_PRESENT: /* Wait for user to swap disks */ break; } }