// Handler for the XM_NOTIFY message HRESULT COptionsScene::OnNotifyPress( HXUIOBJ hObjPressed, BOOL& bHandled ) { switch(m_GroupJoy.GetCurSel()) { case 0: memset (&changed_prefs.jports[0], 0, sizeof (struct jport)); memset (&changed_prefs.jports[1], 0, sizeof (struct jport)); changed_prefs.jports[0].id = JSEM_MICE; changed_prefs.jports[1].id = JSEM_JOYS; changed_prefs.mouse_settings[0]->enabled = 1; config_changed = 1; inputdevice_config_change(); break; case 1: memset (&changed_prefs.jports[0], 0, sizeof (struct jport)); memset (&changed_prefs.jports[1], 0, sizeof (struct jport)); changed_prefs.jports[0].id = JSEM_JOYS + 1; changed_prefs.jports[1].id = JSEM_JOYS; changed_prefs.mouse_settings[1]->enabled = 0; config_changed = 1; inputdevice_config_change(); break; case 2: memset (&changed_prefs.jports[0], 0, sizeof (struct jport)); memset (&changed_prefs.jports[1], 0, sizeof (struct jport)); changed_prefs.jports[0].id = JSEM_MICE; changed_prefs.jports[1].id = JSEM_MICE + 1; changed_prefs.mouse_settings[0]->enabled = 0; changed_prefs.mouse_settings[1]->enabled = 1; config_changed = 1; inputdevice_config_change(); break; } switch(m_GroupCPU.GetCurSel()) { case 0: changed_prefs.cpu_model = 68000; check_prefs_changed_cpu(); break; case 1: changed_prefs.cpu_model = 68010; check_prefs_changed_cpu(); break; case 2: changed_prefs.cpu_model = 68020; check_prefs_changed_cpu(); changed_prefs.address_space_24 = 0; break; case 3: changed_prefs.cpu_model = 68020; check_prefs_changed_cpu(); changed_prefs.address_space_24 = 1; break; case 4: changed_prefs.cpu_model = 68030; check_prefs_changed_cpu(); changed_prefs.address_space_24 = 0; break; case 5: changed_prefs.cpu_model = 68040; check_prefs_changed_cpu(); changed_prefs.address_space_24 = 0; break; } switch (m_GroupChipset.GetCurSel()) { case 0: changed_prefs.chipset_mask = 0; break; case 1: changed_prefs.chipset_mask = CSMASK_ECS_AGNUS; break; case 2: changed_prefs.chipset_mask = CSMASK_ECS_DENISE; break; case 3: changed_prefs.chipset_mask = (CSMASK_ECS_AGNUS | CSMASK_ECS_DENISE); break; case 4: changed_prefs.chipset_mask = (CSMASK_AGA | CSMASK_ECS_AGNUS | CSMASK_ECS_DENISE); break; } switch(m_GroupChipMem.GetCurSel()) { case 0: m_GroupFast.SetEnable(true); changed_prefs.chipmem_size = 0x80000; changed_prefs.bogomem_size = 0x0; memory_reset(); break; case 1: m_GroupFast.SetEnable(true); changed_prefs.chipmem_size = 0x100000; changed_prefs.bogomem_size = 0x0; memory_reset(); break; case 2: m_GroupFast.SetEnable(true); changed_prefs.chipmem_size = 0x200000; changed_prefs.bogomem_size = 0x0; memory_reset(); break; case 3: m_GroupFast.SetCurSel(0); m_GroupFast.SetEnable(false); changed_prefs.fastmem_size = 0x00; changed_prefs.chipmem_size = 0x400000; changed_prefs.bogomem_size = 0x0; memory_reset(); break; case 4: m_GroupFast.SetCurSel(0); m_GroupFast.SetEnable(false); changed_prefs.chipmem_size = 0x800000; changed_prefs.fastmem_size = 0x00; changed_prefs.bogomem_size = 0x0; memory_reset(); break; } switch (m_GroupFast.GetCurSel()) { case 0x00000000: changed_prefs.fastmem_size = 0x00000000; memory_reset(); break; case 0x100000: changed_prefs.fastmem_size = 0x100000; memory_reset(); break; case 0x200000: changed_prefs.fastmem_size = 0x200000; memory_reset(); break; case 0x400000: changed_prefs.fastmem_size = 0x400000; memory_reset(); break; case 0x800000: changed_prefs.fastmem_size = 0x800000; memory_reset(); break; } switch(m_GroupBogoMem.GetCurSel()) { case 0: changed_prefs.bogomem_size = 0x0; memory_reset(); break; case 1: changed_prefs.bogomem_size = 0x80000; memory_reset(); break; case 2: changed_prefs.bogomem_size = 0x100000; memory_reset(); break; case 3: changed_prefs.bogomem_size = 0x180000; memory_reset(); break; case 4: changed_prefs.bogomem_size = 0x1c0000; memory_reset(); break; } switch(m_GroupFast.GetCurSel()) { case 0: changed_prefs.fastmem_size = 0x00; memory_reset(); break; case 1: changed_prefs.fastmem_size = 0x100000; memory_reset(); break; case 2: changed_prefs.fastmem_size = 0x200000; memory_reset(); break; case 3: changed_prefs.fastmem_size = 0x400000; memory_reset(); break; case 4: changed_prefs.fastmem_size = 0x800000; memory_reset(); break; } switch(m_GroupZ3Fast.GetCurSel()) { case 0: changed_prefs.z3fastmem_size = 0x00; memory_reset(); break; case 1: changed_prefs.z3fastmem_size = 0x800000; memory_reset(); break; case 2: changed_prefs.z3fastmem_size = 0x2000000; memory_reset(); break; case 3: changed_prefs.z3fastmem_size = 0x4000000; memory_reset(); break; case 4: changed_prefs.z3fastmem_size = 0x8000000; memory_reset(); break; } switch(m_GroupRTG.GetCurSel()) { case 0: changed_prefs.gfxmem_size = 0x00; memory_reset(); break; case 1: changed_prefs.gfxmem_size = 0x800000; memory_reset(); break; case 2: changed_prefs.gfxmem_size = 0x2000000; memory_reset(); break; case 3: changed_prefs.gfxmem_size = 0x4000000; memory_reset(); break; case 4: changed_prefs.gfxmem_size = 0x8000000; memory_reset(); break; } if (m_FasterRTG.IsChecked()) { changed_prefs.picasso96_nocustom = 1; check_prefs_changed_gfx(); } else { changed_prefs.picasso96_nocustom = 0; check_prefs_changed_gfx(); } if (m_BSDSocket.IsChecked()) { currprefs.socket_emu = 1; } else { currprefs.socket_emu = 0; } if (m_Picasso96.IsChecked()) { currprefs.picasso96_modeflags = 212; check_prefs_changed_gfx(); } else { currprefs.picasso96_modeflags = 0; check_prefs_changed_gfx(); } if (m_DriveClick.IsChecked()) { changed_prefs.floppyslots[0].dfxclick = -1; changed_prefs.dfxclickvolume = 33; changed_prefs.dfxclickchannelmask = 0xFFFF; check_prefs_changed_audio (); driveclick_check_prefs(); } else { changed_prefs.floppyslots[0].dfxclick = 0; check_prefs_changed_audio (); driveclick_check_prefs(); } if (m_24BitAddressing.IsChecked()) { changed_prefs.address_space_24 = 1; check_prefs_changed_custom (); } else { changed_prefs.address_space_24 = 0; check_prefs_changed_custom (); } if (m_CycleExact.IsChecked()) { changed_prefs.cpu_cycle_exact = 1; check_prefs_changed_custom (); check_prefs_changed_gfx(); } else { changed_prefs.cpu_cycle_exact = 0; check_prefs_changed_custom (); check_prefs_changed_gfx(); } if (m_ImmediateBlits.IsChecked()) { changed_prefs.immediate_blits = 1; check_prefs_changed_custom (); check_prefs_changed_gfx(); } else { changed_prefs.immediate_blits = 0; check_prefs_changed_custom (); check_prefs_changed_gfx(); } if (m_ShowLeds.IsChecked()) { currprefs.leds_on_screen = 1; } else { currprefs.leds_on_screen = 0; } if( XuiControlIsBackButton( hObjPressed ) ) { config_changed = 1; fixup_prefs (&currprefs); this->NavigateBack(); } bHandled = TRUE; return S_OK; }
int my_kbd_handler (int keycode, int scancode, int newstate) { int akey = scancode2amiga (keycode, scancode); #ifdef DEBUG_KBD write_log ( "kbd_handler: keycode 0x%x, scancode 0x%x, newstate %d\n", keycode, scancode, newstate ); #endif if (akey < 0) { switch (akey) { #ifndef _WIN32_WCE case -2: if (newstate) { clearallkeys(); WIN32GUI_DisplayGUI(-1); } return 0; case -3: if (newstate) toggle_sound = 1; return 0; case -4: if (newstate) { akey = 0x62; newstate = getcapslock (); } break; case -5: if( newstate ) { // Bring up GUI-based debugger here if(currprefs.illegal_mem) { if(picasso_on)changed_prefs.gfx_pfullscreen=0; else changed_prefs.gfx_afullscreen=0; check_prefs_changed_gfx(); activate_debugger(); } } return 0; break; case -6: if(newstate) { if(picasso_on)changed_prefs.gfx_pfullscreen=!changed_prefs.gfx_pfullscreen; else changed_prefs.gfx_afullscreen=!changed_prefs.gfx_afullscreen; return 0; } break; default: if (newstate && akey >= -17 && akey <= -10) { akey = -10 - akey; if (akey & 1) { akey >>= 1; disk_eject (akey); return 0; } akey >>= 1; WIN32GUI_DisplayGUI( akey ); } return 0; #endif }