--- hatari/src/gui-osx/PrefsController.m 2019/04/01 07:14:42 1.1.1.3 +++ hatari/src/gui-osx/PrefsController.m 2019/04/09 08:47:11 1.1.1.5 @@ -229,7 +229,7 @@ size_t Preferences_cKeysForJoysticks = s [textField setStringValue:[path stringByAbbreviatingWithTildeInPath]]; // Signal completion - return TRUE; + return true; } // Signal that the selection was aborted @@ -295,6 +295,11 @@ size_t Preferences_cKeysForJoysticks = s [self choosePathForControl: hdImage chooseDirectories:FALSE defaultInitialDir:@"~"]; } +- (IBAction)chooseIdeHdImage:(id)sender +{ + [self choosePathForControl: ideHdImage chooseDirectories:FALSE defaultInitialDir:@"~"]; +} + - (IBAction)chooseKeyboardMappingFile:(id)sender { [self choosePathForControl: keyboardMappingFile chooseDirectories:FALSE defaultInitialDir:@"~"]; @@ -358,6 +363,12 @@ size_t Preferences_cKeysForJoysticks = s [hdImage setStringValue:@""]; } +- (IBAction)ejectIdeHdImage:(id)sender +{ + // Clear the control. Later. saveAllControls will set the ConfigureParams accordingly to signal this is ejected + [ideHdImage setStringValue:@""]; +} + /*-----------------------------------------------------------------------*/ /** @@ -439,7 +450,7 @@ size_t Preferences_cKeysForJoysticks = s */ - (IBAction)commitAndClose:(id)sender { - BOOL applyChanges = TRUE; + BOOL applyChanges = true; // The user clicked OK [self saveAllControls]; @@ -455,7 +466,7 @@ size_t Preferences_cKeysForJoysticks = s // Commit the new configuration if (applyChanges) { - Change_CopyChangedParamsToConfiguration(&CurrentParams, &ConfigureParams, FALSE); + Change_CopyChangedParamsToConfiguration(&CurrentParams, &ConfigureParams, false); } else { @@ -518,7 +529,7 @@ size_t Preferences_cKeysForJoysticks = s [realJoystick setEnabled:FALSE]; } - bInitialized = TRUE; + bInitialized = true; } @@ -581,16 +592,15 @@ size_t Preferences_cKeysForJoysticks = s IMPORT_RADIO(machineType, ConfigureParams.System.nMachineType); IMPORT_RADIO(monitor, ConfigureParams.Screen.nMonitorType); IMPORT_SWITCH(patchTimerD, ConfigureParams.System.bPatchTimerD); - IMPORT_RADIO(playbackQuality, ConfigureParams.Sound.nPlaybackQuality); IMPORT_TEXTFIELD(printToFile, ConfigureParams.Printer.szPrintToFileName); IMPORT_RADIO(ramSize, ConfigureParams.Memory.nMemorySize); IMPORT_TEXTFIELD(readRS232FromFile, ConfigureParams.RS232.szInFileName); IMPORT_SWITCH(realTime, ConfigureParams.System.bRealTimeClock); - IMPORT_SWITCH(slowFDC, ConfigureParams.System.bSlowFDC); + IMPORT_SWITCH(slowFDC, ConfigureParams.DiskImage.bSlowFloppy); IMPORT_TEXTFIELD(tosImage, ConfigureParams.Rom.szTosImageFileName); IMPORT_SWITCH(useBorders, ConfigureParams.Screen.bAllowOverscan); IMPORT_SWITCH(useVDIResolution, ConfigureParams.Screen.bUseExtVdiResolutions); - IMPORT_TEXTFIELD(writeMidiToFile, ConfigureParams.Midi.szMidiOutFileName); + IMPORT_TEXTFIELD(writeMidiToFile, ConfigureParams.Midi.sMidiOutFileName); IMPORT_RADIO(writeProtection, ConfigureParams.DiskImage.nWriteProtection); IMPORT_TEXTFIELD(writeRS232ToFile, ConfigureParams.RS232.szOutFileName); IMPORT_SWITCH(zoomSTLowRes, ConfigureParams.Screen.bZoomLowRes); @@ -600,6 +610,13 @@ size_t Preferences_cKeysForJoysticks = s [(force8bpp) setState:((ConfigureParams.Screen.nForceBpp==8))? NSOnState : NSOffState]; + if (ConfigureParams.Sound.nPlaybackFreq >= 44100) + [playbackQuality selectCellWithTag:(2)]; + else if (ConfigureParams.Sound.nPlaybackFreq >= 22050) + [playbackQuality selectCellWithTag:(1)]; + else + [playbackQuality selectCellWithTag:(0)]; + if (ConfigureParams.Screen.nVdiWidth >= 1024) [resolution selectCellWithTag:(2)]; else if (ConfigureParams.Screen.nVdiWidth >= 768) @@ -617,6 +634,16 @@ size_t Preferences_cKeysForJoysticks = s [hdImage setStringValue:@""]; } + // If the IDE HD flag is set, load the IDE HD path, otherwise make it blank + if (ConfigureParams.HardDisk.bUseIdeHardDiskImage) + { + IMPORT_TEXTFIELD(ideHdImage, ConfigureParams.HardDisk.szIdeHardDiskImage); + } + else + { + [ideHdImage setStringValue:@""]; + } + // If the Gemdos flag is set, load the Gemdos path, otherwise make it blank if (ConfigureParams.HardDisk.bUseHardDiskDirectories) { @@ -744,16 +771,15 @@ size_t Preferences_cKeysForJoysticks = s EXPORT_RADIO(machineType, ConfigureParams.System.nMachineType); EXPORT_RADIO(monitor, ConfigureParams.Screen.nMonitorType); EXPORT_SWITCH(patchTimerD, ConfigureParams.System.bPatchTimerD); - EXPORT_RADIO(playbackQuality, ConfigureParams.Sound.nPlaybackQuality); EXPORT_TEXTFIELD(printToFile, ConfigureParams.Printer.szPrintToFileName); EXPORT_RADIO(ramSize, ConfigureParams.Memory.nMemorySize); EXPORT_TEXTFIELD(readRS232FromFile, ConfigureParams.RS232.szInFileName); EXPORT_SWITCH(realTime, ConfigureParams.System.bRealTimeClock); - EXPORT_SWITCH(slowFDC, ConfigureParams.System.bSlowFDC); + EXPORT_SWITCH(slowFDC, ConfigureParams.DiskImage.bSlowFloppy); EXPORT_TEXTFIELD(tosImage, ConfigureParams.Rom.szTosImageFileName); EXPORT_SWITCH(useBorders, ConfigureParams.Screen.bAllowOverscan); EXPORT_SWITCH(useVDIResolution, ConfigureParams.Screen.bUseExtVdiResolutions); - EXPORT_TEXTFIELD(writeMidiToFile, ConfigureParams.Midi.szMidiOutFileName); + EXPORT_TEXTFIELD(writeMidiToFile, ConfigureParams.Midi.sMidiOutFileName); EXPORT_RADIO(writeProtection, ConfigureParams.DiskImage.nWriteProtection); EXPORT_TEXTFIELD(writeRS232ToFile, ConfigureParams.RS232.szOutFileName); EXPORT_SWITCH(zoomSTLowRes, ConfigureParams.Screen.bZoomLowRes); @@ -762,6 +788,19 @@ size_t Preferences_cKeysForJoysticks = s ConfigureParams.Screen.nForceBpp = ([force8bpp state] == NSOnState) ? 8 : 16; + switch ([[playbackQuality selectedCell] tag]) + { + case 0: + ConfigureParams.Sound.nPlaybackFreq = 11025; + break; + case 1: + ConfigureParams.Sound.nPlaybackFreq = 22050; + break; + case 2: + ConfigureParams.Sound.nPlaybackFreq = 44100; + break; + } + switch ([[resolution selectedCell] tag]) { case 0: @@ -782,22 +821,33 @@ size_t Preferences_cKeysForJoysticks = s if ([[hdImage stringValue] length] > 0) { EXPORT_TEXTFIELD(hdImage, ConfigureParams.HardDisk.szHardDiskImage); - ConfigureParams.HardDisk.bUseHardDiskImage = TRUE; + ConfigureParams.HardDisk.bUseHardDiskImage = true; + } + else + { + ConfigureParams.HardDisk.bUseHardDiskImage = false; + } + + // Define the IDE HD flag, and export the IDE HD path if one is selected + if ([[ideHdImage stringValue] length] > 0) + { + EXPORT_TEXTFIELD(ideHdImage, ConfigureParams.HardDisk.szIdeHardDiskImage); + ConfigureParams.HardDisk.bUseIdeHardDiskImage = true; } else { - ConfigureParams.HardDisk.bUseHardDiskImage = FALSE; + ConfigureParams.HardDisk.bUseIdeHardDiskImage = false; } // Define the Gemdos flag, and export the Gemdos path if one is selected if ([[gemdosImage stringValue] length] > 0) { EXPORT_TEXTFIELD(gemdosImage, ConfigureParams.HardDisk.szHardDiskDirectories[0]); - ConfigureParams.HardDisk.bUseHardDiskDirectories = TRUE; + ConfigureParams.HardDisk.bUseHardDiskDirectories = true; } else { - ConfigureParams.HardDisk.bUseHardDiskDirectories = FALSE; + ConfigureParams.HardDisk.bUseHardDiskDirectories = false; } // Save the per-joystick controls