Fixed #460: Mouse Wheel didn't work under emulation. Fixed Middle Mouse button support was missing.
This commit is contained in:
parent
780c020967
commit
0f5a512af1
7 changed files with 37 additions and 22 deletions
|
@ -40,7 +40,8 @@
|
|||
<CPPLanguageStandard>GNUPP14</CPPLanguageStandard>
|
||||
<AdditionalIncludeDirectories>=/usr/local/include/SDL2;=/usr/include/libxml2;../../src;../../src/osdep;../../src/threaddep;../../src/include;../../guisan-dev/include;../../src/archivers;%(ClCompile.AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>DEBUG=1;_REENTRANT;AMIBERRY;CPU_arm;ARMV6_ASSEMBLY;ARM_HAS_DIV;USE_SDL2;_FILE_OFFSET_BITS=64;%(ClCompile.PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<AdditionalOptions>-march=armv6zk -mtune=arm1176jzf-s -mfpu=vfp %(AdditionalOptions)</AdditionalOptions>
|
||||
<AdditionalCOptions>-march=armv6zk -mtune=arm1176jzf-s -mfpu=vfp </AdditionalCOptions>
|
||||
<AdditionalCPPOptions>-march=armv6zk -mtune=arm1176jzf-s -mfpu=vfp </AdditionalCPPOptions>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalLinkerInputs>;%(Link.AdditionalLinkerInputs)</AdditionalLinkerInputs>
|
||||
|
@ -54,7 +55,8 @@
|
|||
<CPPLanguageStandard>GNUPP14</CPPLanguageStandard>
|
||||
<AdditionalIncludeDirectories>=/usr/local/include/SDL2;=/usr/include/libxml2;../../src;../../src/osdep;../../src/threaddep;../../src/include;../../guisan-dev/include;../../src/archivers;%(ClCompile.AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>NDEBUG=1;RELEASE=1;_REENTRANT;AMIBERRY;CPU_arm;ARMV6_ASSEMBLY;ARM_HAS_DIV;USE_SDL2;_FILE_OFFSET_BITS=64;%(ClCompile.PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<AdditionalOptions>-march=armv6zk -mtune=arm1176jzf-s -mfpu=vfp %(AdditionalOptions)</AdditionalOptions>
|
||||
<AdditionalCOptions>-march=armv6zk -mtune=arm1176jzf-s -mfpu=vfp -mfloat-abi=hard </AdditionalCOptions>
|
||||
<AdditionalCPPOptions>-march=armv6zk -mtune=arm1176jzf-s -mfpu=vfp -mfloat-abi=hard </AdditionalCPPOptions>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalLinkerInputs>;%(Link.AdditionalLinkerInputs)</AdditionalLinkerInputs>
|
||||
|
|
|
@ -39,7 +39,8 @@
|
|||
<CPPLanguageStandard>GNUPP14</CPPLanguageStandard>
|
||||
<AdditionalIncludeDirectories>=/usr/include/SDL;=/opt/vc/include;=/opt/vc/include/interface/vmcs_host/linux;=/opt/vc/include/interface/vcos/pthreads;=/usr/include/libxml2;../../src;../../src/osdep;../../src/threaddep;../../src/include;../../src/archivers;%(ClCompile.AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>DEBUG=1;ARMV6T2;USE_ARMNEON;ARM_HAS_DIV;_REENTRANT;AMIBERRY;CPU_arm;ARMV6_ASSEMBLY;USE_SDL1;USE_DISPMANX;_FILE_OFFSET_BITS=64;%(ClCompile.PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<AdditionalOptions>-march=armv8-a -mfpu=neon-fp-armv8 -mfloat-abi=hard %(AdditionalOptions)</AdditionalOptions>
|
||||
<AdditionalCOptions>-march=armv8-a -mfpu=neon-fp-armv8 -mfloat-abi=hard </AdditionalCOptions>
|
||||
<AdditionalCPPOptions>-march=armv8-a -mfpu=neon-fp-armv8 -mfloat-abi=hard </AdditionalCPPOptions>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalLinkerInputs>;%(Link.AdditionalLinkerInputs)</AdditionalLinkerInputs>
|
||||
|
@ -53,7 +54,8 @@
|
|||
<CPPLanguageStandard>GNUPP14</CPPLanguageStandard>
|
||||
<AdditionalIncludeDirectories>=/usr/include/SDL;=/opt/vc/include;=/opt/vc/include/interface/vmcs_host/linux;=/opt/vc/include/interface/vcos/pthreads;=/usr/include/libxml2;../../src;../../src/osdep;../../src/threaddep;../../src/include;../../src/archivers;%(ClCompile.AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>NDEBUG=1;RELEASE=1;ARMV6T2;USE_ARMNEON;ARM_HAS_DIV;_REENTRANT;AMIBERRY;CPU_arm;ARMV6_ASSEMBLY;USE_SDL1;USE_DISPMANX;_FILE_OFFSET_BITS=64;%(ClCompile.PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<AdditionalOptions>-march=armv8-a -mfpu=neon-fp-armv8 -mfloat-abi=hard %(AdditionalOptions)</AdditionalOptions>
|
||||
<AdditionalCOptions>-march=armv8-a -mfpu=neon-fp-armv8 -mfloat-abi=hard </AdditionalCOptions>
|
||||
<AdditionalCPPOptions>-march=armv8-a -mfpu=neon-fp-armv8 -mfloat-abi=hard </AdditionalCPPOptions>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalLinkerInputs>;%(Link.AdditionalLinkerInputs)</AdditionalLinkerInputs>
|
||||
|
|
|
@ -96,7 +96,7 @@
|
|||
<IgnoredHeaders />
|
||||
</DiscoverySettings>
|
||||
<CheckForClangFormatFiles xsi:nil="true" />
|
||||
<FormattingEngine xsi:nil="true" />
|
||||
<FormattingEngine>ClangFormat</FormattingEngine>
|
||||
</ExtraSettings>
|
||||
<CodeAnalyzerSettings>
|
||||
<Enabled>true</Enabled>
|
||||
|
|
|
@ -62,7 +62,8 @@
|
|||
<CPPLanguageStandard>GNUPP14</CPPLanguageStandard>
|
||||
<AdditionalIncludeDirectories>=/usr/local/include/SDL2;=/usr/include/libxml2;../../src;../../src/osdep;../../src/threaddep;../../src/include;../../guisan-dev/include;../../src/archivers;%(ClCompile.AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>DEBUG=1;ARMV6T2;USE_ARMNEON;ARM_HAS_DIV;_REENTRANT;AMIBERRY;CPU_arm;ARMV6_ASSEMBLY;USE_SDL2;_FILE_OFFSET_BITS=64;%(ClCompile.PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<AdditionalOptions>-march=armv8-a -mfpu=neon-fp-armv8 -mfloat-abi=hard %(AdditionalOptions)</AdditionalOptions>
|
||||
<AdditionalCOptions>-march=armv8-a -mfpu=neon-fp-armv8 -mfloat-abi=hard </AdditionalCOptions>
|
||||
<AdditionalCPPOptions>-march=armv8-a -mfpu=neon-fp-armv8 -mfloat-abi=hard </AdditionalCPPOptions>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalLinkerInputs>;%(Link.AdditionalLinkerInputs)</AdditionalLinkerInputs>
|
||||
|
@ -76,7 +77,8 @@
|
|||
<CPPLanguageStandard>GNUPP14</CPPLanguageStandard>
|
||||
<AdditionalIncludeDirectories>=/usr/local/include/SDL2;=/usr/include/libxml2;../../src;../../src/osdep;../../src/threaddep;../../src/include;../../guisan-dev/include;../../src/archivers;=/opt/vc/include;=/opt/vc/include/interface/vmcs_host/linux;=/opt/vc/include/interface/vcos/pthreads;%(ClCompile.AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>DEBUG=1;ARMV6T2;USE_ARMNEON;ARM_HAS_DIV;_REENTRANT;AMIBERRY;CPU_arm;ARMV6_ASSEMBLY;USE_SDL2;USE_DISPMANX;_FILE_OFFSET_BITS=64;%(ClCompile.PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<AdditionalOptions>-march=armv8-a -mfpu=neon-fp-armv8 %(AdditionalOptions)</AdditionalOptions>
|
||||
<AdditionalCOptions>-march=armv8-a -mfpu=neon-fp-armv8 -mfloat-abi=hard </AdditionalCOptions>
|
||||
<AdditionalCPPOptions>-march=armv8-a -mfpu=neon-fp-armv8 -mfloat-abi=hard </AdditionalCPPOptions>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalLinkerInputs>;%(Link.AdditionalLinkerInputs)</AdditionalLinkerInputs>
|
||||
|
@ -91,7 +93,8 @@
|
|||
<CPPLanguageStandard>GNUPP14</CPPLanguageStandard>
|
||||
<AdditionalIncludeDirectories>=/usr/local/include/SDL2;=/usr/include/libxml2;../../src;../../src/osdep;../../src/threaddep;../../src/include;../../guisan-dev/include;../../src/archivers;%(ClCompile.AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>NDEBUG=1;RELEASE=1;ARMV6T2;USE_ARMNEON;ARM_HAS_DIV;_REENTRANT;AMIBERRY;CPU_arm;ARMV6_ASSEMBLY;USE_SDL2;_FILE_OFFSET_BITS=64;%(ClCompile.PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<AdditionalOptions>-march=armv8-a -mfpu=neon-fp-armv8 -mfloat-abi=hard %(AdditionalOptions)</AdditionalOptions>
|
||||
<AdditionalCOptions>-march=armv8-a -mfpu=neon-fp-armv8 -mfloat-abi=hard </AdditionalCOptions>
|
||||
<AdditionalCPPOptions>-march=armv8-a -mfpu=neon-fp-armv8 -mfloat-abi=hard </AdditionalCPPOptions>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalLinkerInputs>;%(Link.AdditionalLinkerInputs)</AdditionalLinkerInputs>
|
||||
|
@ -107,7 +110,8 @@
|
|||
<CPPLanguageStandard>GNUPP14</CPPLanguageStandard>
|
||||
<AdditionalIncludeDirectories>=/usr/local/include/SDL2;=/usr/include/libxml2;../../src;../../src/osdep;../../src/threaddep;../../src/include;../../guisan-dev/include;../../src/archivers;=/opt/vc/include;=/opt/vc/include/interface/vmcs_host/linux;=/opt/vc/include/interface/vcos/pthreads;%(ClCompile.AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>NDEBUG=1;RELEASE=1;ARMV6T2;USE_ARMNEON;ARM_HAS_DIV;_REENTRANT;AMIBERRY;CPU_arm;ARMV6_ASSEMBLY;USE_SDL2;USE_DISPMANX;_FILE_OFFSET_BITS=64;%(ClCompile.PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<AdditionalOptions>-march=armv8-a -mfpu=neon-fp-armv8 -mfloat-abi=hard %(AdditionalOptions)</AdditionalOptions>
|
||||
<AdditionalCOptions>-march=armv8-a -mfpu=neon-fp-armv8 -mfloat-abi=hard </AdditionalCOptions>
|
||||
<AdditionalCPPOptions>-march=armv8-a -mfpu=neon-fp-armv8 -mfloat-abi=hard </AdditionalCPPOptions>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalLinkerInputs>;%(Link.AdditionalLinkerInputs)</AdditionalLinkerInputs>
|
||||
|
|
|
@ -1882,7 +1882,6 @@ static void mouseupdate (int pct, bool vsync)
|
|||
mouse_frame_y[i] = mouse_y[i] - v2;
|
||||
}
|
||||
|
||||
#ifndef INPUTDEVICE_SIMPLE
|
||||
int v3 = getvelocity (i, 2, pct);
|
||||
/* if v != 0, record mouse wheel key presses
|
||||
* according to the NewMouse standard */
|
||||
|
@ -1890,7 +1889,7 @@ static void mouseupdate (int pct, bool vsync)
|
|||
record_key (0x7a << 1);
|
||||
else if (v3 < 0)
|
||||
record_key (0x7b << 1);
|
||||
#endif
|
||||
|
||||
if (!mouse_deltanoreset[i][2])
|
||||
mouse_delta[i][2] = 0;
|
||||
|
||||
|
|
|
@ -1371,10 +1371,19 @@ int handle_msgpump()
|
|||
case SDL_MOUSEWHEEL:
|
||||
if (currprefs.jports[0].id == JSEM_MICE || currprefs.jports[1].id == JSEM_MICE)
|
||||
{
|
||||
const int valY = rEvent.wheel.y;
|
||||
const int valX = rEvent.wheel.x;
|
||||
setmousestate(0, 2, valY, 0);
|
||||
setmousestate(0, 3, valX, 0);
|
||||
const auto val_y = rEvent.wheel.y;
|
||||
setmousestate(0, 2, val_y, 0);
|
||||
if (val_y < 0)
|
||||
setmousebuttonstate(0, 3 + 0, -1);
|
||||
else if (val_y > 0)
|
||||
setmousebuttonstate(0, 3 + 1, -1);
|
||||
|
||||
const auto val_x = rEvent.wheel.x;
|
||||
setmousestate(0, 3, val_x, 0);
|
||||
if (val_x < 0)
|
||||
setmousebuttonstate(0, 3 + 2, -1);
|
||||
else if (val_x > 0)
|
||||
setmousebuttonstate(0, 3 + 3, -1);
|
||||
}
|
||||
break;
|
||||
#endif
|
||||
|
|
|
@ -19,12 +19,12 @@ struct host_keyboard_button host_keyboard_buttons[4];
|
|||
|
||||
const int remap_buttons = 16;
|
||||
#define REMAP_BUTTONS 16
|
||||
#define MAX_MOUSE_BUTTONS 2
|
||||
#define MAX_MOUSE_AXES 2
|
||||
#define MAX_MOUSE_BUTTONS 3
|
||||
#define MAX_MOUSE_AXES 4
|
||||
#define FIRST_MOUSE_AXIS 0
|
||||
#define FIRST_MOUSE_BUTTON MAX_MOUSE_AXES
|
||||
#define CHECK_BIT(var,pos) ((var) & (1<<(pos)))
|
||||
#define SET_BIT(var,pos) (var |= 1 << pos)
|
||||
#define SET_BIT(var,pos) ((var) |= 1 << (pos))
|
||||
|
||||
static int num_mice = 1;
|
||||
static int num_keys_as_joys;
|
||||
|
@ -417,8 +417,10 @@ int input_get_default_mouse(struct uae_input_device* uid, const int i, const int
|
|||
{
|
||||
setid(uid, i, ID_AXIS_OFFSET + 0, 0, port, port ? INPUTEVENT_MOUSE2_HORIZ : INPUTEVENT_MOUSE1_HORIZ, gp);
|
||||
setid(uid, i, ID_AXIS_OFFSET + 1, 0, port, port ? INPUTEVENT_MOUSE2_VERT : INPUTEVENT_MOUSE1_VERT, gp);
|
||||
setid(uid, i, ID_AXIS_OFFSET + 2, 0, port, port ? 0 : INPUTEVENT_MOUSE1_WHEEL, gp);
|
||||
setid_af(uid, i, ID_BUTTON_OFFSET + 0, 0, port, port ? INPUTEVENT_JOY2_FIRE_BUTTON : INPUTEVENT_JOY1_FIRE_BUTTON, af, gp);
|
||||
setid(uid, i, ID_BUTTON_OFFSET + 1, 0, port, port ? INPUTEVENT_JOY2_2ND_BUTTON : INPUTEVENT_JOY1_2ND_BUTTON, gp);
|
||||
setid(uid, i, ID_BUTTON_OFFSET + 2, 0, port, port ? INPUTEVENT_JOY2_3RD_BUTTON : INPUTEVENT_JOY1_3RD_BUTTON, gp);
|
||||
}
|
||||
|
||||
else
|
||||
|
@ -1467,7 +1469,6 @@ int input_get_default_joystick(struct uae_input_device* uid, const int num, int
|
|||
thismap[0].start_action = thismap[0].start_action ? thismap[0].start_action : INPUTEVENT_KEY_P;
|
||||
}
|
||||
|
||||
|
||||
// shoulder buttons
|
||||
//if (CHECK_BIT(currprefs.jports[port].mousemap,1))
|
||||
if (mode == JSEM_MODE_MOUSE)
|
||||
|
@ -1554,7 +1555,6 @@ int input_get_default_joystick(struct uae_input_device* uid, const int num, int
|
|||
: INPUTEVENT_KEY_RETURN;
|
||||
}
|
||||
|
||||
|
||||
thismap[1] = currprefs.jports[port].amiberry_custom_hotkey; // grab the 'select button' options for the current map
|
||||
|
||||
// currently disabled
|
||||
|
@ -1564,7 +1564,6 @@ int input_get_default_joystick(struct uae_input_device* uid, const int num, int
|
|||
// Now assign the actual buttons VALUES (TRUE/FALSE) to trigger the EVENTS
|
||||
auto function_offset = 0;
|
||||
|
||||
|
||||
for (auto n = 0; n < 2; ++n) /// temporarily limited to '2' only
|
||||
{
|
||||
function_offset = n * REMAP_BUTTONS;
|
||||
|
@ -1614,7 +1613,7 @@ int input_get_default_joystick(struct uae_input_device* uid, const int num, int
|
|||
return 0;
|
||||
}
|
||||
|
||||
int input_get_default_joystick_analog(struct uae_input_device* uid, int num, int port, int af, bool joymouseswap)
|
||||
int input_get_default_joystick_analog(struct uae_input_device* uid, int i, int port, int af, bool gp, bool joymouseswap)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue