MCPcopy Create free account
hub / github.com/BlitterStudio/amiberry / compatibility_copy

Function compatibility_copy

src/inputdevice.cpp:7592–7992  ·  view source on GitHub ↗

merge gameport settings with current input configuration

Source from the content-addressed store, hash-verified

7590
7591// merge gameport settings with current input configuration
7592static void compatibility_copy (struct uae_prefs *prefs, bool gameports)
7593{
7594 int used[MAX_INPUT_DEVICES] = { 0 };
7595 int i, joy;
7596
7597 for (i = 0; i < MAX_JPORTS; i++) {
7598 joymodes[i] = prefs->jports[i].mode;
7599 joysubmodes[i] = prefs->jports[i].submode;
7600 joyinputs[i] = NULL;
7601 // remove all mappings from this port
7602 if (gameports)
7603 remove_compa_config (prefs, i);
7604 remove_custom_config (prefs, i);
7605 setjoyinputs (prefs, i);
7606 }
7607
7608 for (i = 0; i < 2; i++) {
7609 if (prefs->jports[i].id >= 0 && joymodes[i] <= 0) {
7610 int mode = prefs->jports[i].mode;
7611 if (jsem_ismouse (i, prefs) >= 0) {
7612 switch (mode)
7613 {
7614 case JSEM_MODE_DEFAULT:
7615 case JSEM_MODE_MOUSE:
7616 case JSEM_MODE_WHEELMOUSE:
7617 default:
7618 joymodes[i] = JSEM_MODE_WHEELMOUSE;
7619 joyinputs[i] = i ? ip_mouse2 : ip_mouse1;
7620 break;
7621 case JSEM_MODE_LIGHTPEN:
7622 joymodes[i] = JSEM_MODE_LIGHTPEN;
7623 joyinputs[i] = getlightpen(i, joysubmodes[i]);
7624 break;
7625 case JSEM_MODE_MOUSE_CDTV:
7626 joymodes[i] = JSEM_MODE_MOUSE_CDTV;
7627 joyinputs[i] = ip_mousecdtv;
7628 break;
7629 }
7630 } else if (jsem_isjoy (i, prefs) >= 0) {
7631 switch (mode)
7632 {
7633 case JSEM_MODE_DEFAULT:
7634 case JSEM_MODE_JOYSTICK:
7635 case JSEM_MODE_GAMEPAD:
7636 case JSEM_MODE_JOYSTICK_CD32:
7637 default:
7638 {
7639 bool iscd32 = mode == JSEM_MODE_JOYSTICK_CD32 || (mode == JSEM_MODE_DEFAULT && prefs->cs_cd32cd);
7640 if (iscd32) {
7641 joymodes[i] = JSEM_MODE_JOYSTICK_CD32;
7642 joyinputs[i] = i ? ip_joycd322 : ip_joycd321;
7643 } else if (mode == JSEM_MODE_GAMEPAD) {
7644 joymodes[i] = JSEM_MODE_GAMEPAD;
7645 joyinputs[i] = i ? ip_joypad2 : ip_joypad1;
7646 } else {
7647 joymodes[i] = JSEM_MODE_JOYSTICK;
7648 joyinputs[i] = i ? ip_joy2 : ip_joy1;
7649 }

Callers 1

Calls 15

remove_compa_configFunction · 0.85
remove_custom_configFunction · 0.85
setjoyinputsFunction · 0.85
jsem_ismouseFunction · 0.85
getlightpenFunction · 0.85
jsem_isjoyFunction · 0.85
cleardevFunction · 0.85
input_get_default_mouseFunction · 0.85
checkcompakbFunction · 0.85

Tested by

no test coverage detected