Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-cw
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-cw
Commits
37169522
Commit
37169522
authored
Apr 14, 2013
by
Gurmail Bassi
Committed by
Alexandre Julliard
Apr 16, 2013
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
dinput: Update existing joystick values after setting the range property.
parent
e06cdb62
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
47 additions
and
0 deletions
+47
-0
joystick.c
dlls/dinput/joystick.c
+47
-0
No files found.
dlls/dinput/joystick.c
View file @
37169522
...
...
@@ -94,6 +94,7 @@ HRESULT WINAPI JoystickWGenericImpl_SetProperty(LPDIRECTINPUTDEVICE8W iface, REF
{
JoystickGenericImpl
*
This
=
impl_from_IDirectInputDevice8W
(
iface
);
DWORD
i
;
ObjProps
remap_props
;
TRACE
(
"(%p,%s,%p)
\n
"
,
This
,
debugstr_guid
(
rguid
),
ph
);
...
...
@@ -112,6 +113,28 @@ HRESULT WINAPI JoystickWGenericImpl_SetProperty(LPDIRECTINPUTDEVICE8W iface, REF
if
(
ph
->
dwHow
==
DIPH_DEVICE
)
{
TRACE
(
"proprange(%d,%d) all
\n
"
,
pr
->
lMin
,
pr
->
lMax
);
for
(
i
=
0
;
i
<
This
->
base
.
data_format
.
wine_df
->
dwNumObjs
;
i
++
)
{
remap_props
.
lDevMin
=
This
->
props
[
i
].
lMin
;
remap_props
.
lDevMax
=
This
->
props
[
i
].
lMax
;
remap_props
.
lDeadZone
=
This
->
props
[
i
].
lDeadZone
;
remap_props
.
lSaturation
=
This
->
props
[
i
].
lSaturation
;
remap_props
.
lMin
=
pr
->
lMin
;
remap_props
.
lMax
=
pr
->
lMax
;
switch
(
This
->
base
.
data_format
.
offsets
[
i
])
{
case
DIJOFS_X
:
This
->
js
.
lX
=
joystick_map_axis
(
&
remap_props
,
This
->
js
.
lX
);
break
;
case
DIJOFS_Y
:
This
->
js
.
lY
=
joystick_map_axis
(
&
remap_props
,
This
->
js
.
lY
);
break
;
case
DIJOFS_Z
:
This
->
js
.
lZ
=
joystick_map_axis
(
&
remap_props
,
This
->
js
.
lZ
);
break
;
case
DIJOFS_RX
:
This
->
js
.
lRx
=
joystick_map_axis
(
&
remap_props
,
This
->
js
.
lRx
);
break
;
case
DIJOFS_RY
:
This
->
js
.
lRy
=
joystick_map_axis
(
&
remap_props
,
This
->
js
.
lRy
);
break
;
case
DIJOFS_RZ
:
This
->
js
.
lRz
=
joystick_map_axis
(
&
remap_props
,
This
->
js
.
lRz
);
break
;
case
DIJOFS_SLIDER
(
0
):
This
->
js
.
rglSlider
[
0
]
=
joystick_map_axis
(
&
remap_props
,
This
->
js
.
rglSlider
[
0
]);
break
;
case
DIJOFS_SLIDER
(
1
):
This
->
js
.
rglSlider
[
1
]
=
joystick_map_axis
(
&
remap_props
,
This
->
js
.
rglSlider
[
1
]);
break
;
default:
break
;
}
This
->
props
[
i
].
lMin
=
pr
->
lMin
;
This
->
props
[
i
].
lMax
=
pr
->
lMax
;
}
...
...
@@ -120,6 +143,30 @@ HRESULT WINAPI JoystickWGenericImpl_SetProperty(LPDIRECTINPUTDEVICE8W iface, REF
TRACE
(
"proprange(%d,%d) obj=%d
\n
"
,
pr
->
lMin
,
pr
->
lMax
,
obj
);
if
(
obj
>=
0
)
{
/*ePSXe polls the joystick immediately after setting the range for calibration purposes, so the old values need to be remapped to the new range before it does so*/
remap_props
.
lDevMin
=
This
->
props
[
obj
].
lMin
;
remap_props
.
lDevMax
=
This
->
props
[
obj
].
lMax
;
remap_props
.
lDeadZone
=
This
->
props
[
obj
].
lDeadZone
;
remap_props
.
lSaturation
=
This
->
props
[
obj
].
lSaturation
;
remap_props
.
lMin
=
pr
->
lMin
;
remap_props
.
lMax
=
pr
->
lMax
;
switch
(
ph
->
dwObj
)
{
case
DIJOFS_X
:
This
->
js
.
lX
=
joystick_map_axis
(
&
remap_props
,
This
->
js
.
lX
);
break
;
case
DIJOFS_Y
:
This
->
js
.
lY
=
joystick_map_axis
(
&
remap_props
,
This
->
js
.
lY
);
break
;
case
DIJOFS_Z
:
This
->
js
.
lZ
=
joystick_map_axis
(
&
remap_props
,
This
->
js
.
lZ
);
break
;
case
DIJOFS_RX
:
This
->
js
.
lRx
=
joystick_map_axis
(
&
remap_props
,
This
->
js
.
lRx
);
break
;
case
DIJOFS_RY
:
This
->
js
.
lRy
=
joystick_map_axis
(
&
remap_props
,
This
->
js
.
lRy
);
break
;
case
DIJOFS_RZ
:
This
->
js
.
lRz
=
joystick_map_axis
(
&
remap_props
,
This
->
js
.
lRz
);
break
;
case
DIJOFS_SLIDER
(
0
):
This
->
js
.
rglSlider
[
0
]
=
joystick_map_axis
(
&
remap_props
,
This
->
js
.
rglSlider
[
0
]);
break
;
case
DIJOFS_SLIDER
(
1
):
This
->
js
.
rglSlider
[
1
]
=
joystick_map_axis
(
&
remap_props
,
This
->
js
.
rglSlider
[
1
]);
break
;
default:
break
;
}
This
->
props
[
obj
].
lMin
=
pr
->
lMin
;
This
->
props
[
obj
].
lMax
=
pr
->
lMax
;
return
DI_OK
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment