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
68176eed
Commit
68176eed
authored
Dec 10, 2006
by
Vitaliy Margolen
Committed by
Alexandre Julliard
Dec 11, 2006
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
dinput: Move few helper functions and standardize them.
parent
267cbf82
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
55 additions
and
92 deletions
+55
-92
device.c
dlls/dinput/device.c
+36
-0
device_private.h
dlls/dinput/device_private.h
+3
-0
joystick_linux.c
dlls/dinput/joystick_linux.c
+10
-39
joystick_linuxinput.c
dlls/dinput/joystick_linuxinput.c
+6
-53
No files found.
dlls/dinput/device.c
View file @
68176eed
...
@@ -453,6 +453,42 @@ DataFormat *create_DataFormat(LPCDIDATAFORMAT wine_format, LPDIDATAFORMAT asked_
...
@@ -453,6 +453,42 @@ DataFormat *create_DataFormat(LPCDIDATAFORMAT wine_format, LPDIDATAFORMAT asked_
return
ret
;
return
ret
;
}
}
/* find an object by it's offset in a data format */
int
offset_to_object
(
LPCDIDATAFORMAT
df
,
int
offset
)
{
int
i
;
for
(
i
=
0
;
i
<
df
->
dwNumObjs
;
i
++
)
if
(
df
->
rgodf
[
i
].
dwOfs
==
offset
)
return
i
;
return
-
1
;
}
static
int
id_to_object
(
LPCDIDATAFORMAT
df
,
int
id
)
{
int
i
;
for
(
i
=
0
;
i
<
df
->
dwNumObjs
;
i
++
)
if
((
df
->
rgodf
[
i
].
dwType
&
0x00ffffff
)
==
(
id
&
0x00ffffff
))
return
i
;
return
-
1
;
}
int
find_property
(
LPCDIDATAFORMAT
df
,
LPCDIPROPHEADER
ph
)
{
switch
(
ph
->
dwHow
)
{
case
DIPH_BYID
:
return
id_to_object
(
df
,
ph
->
dwObj
);
case
DIPH_BYOFFSET
:
return
offset_to_object
(
df
,
ph
->
dwObj
);
}
FIXME
(
"Unhandled ph->dwHow=='%04X'
\n
"
,
(
unsigned
int
)
ph
->
dwHow
);
return
-
1
;
}
BOOL
DIEnumDevicesCallbackAtoW
(
LPCDIDEVICEOBJECTINSTANCEA
lpddi
,
LPVOID
lpvRef
)
{
BOOL
DIEnumDevicesCallbackAtoW
(
LPCDIDEVICEOBJECTINSTANCEA
lpddi
,
LPVOID
lpvRef
)
{
DIDEVICEOBJECTINSTANCEW
ddtmp
;
DIDEVICEOBJECTINSTANCEW
ddtmp
;
device_enumobjects_AtoWcb_data
*
data
;
device_enumobjects_AtoWcb_data
*
data
;
...
...
dlls/dinput/device_private.h
View file @
68176eed
...
@@ -63,6 +63,9 @@ extern void fill_DataFormat(void *out, const void *in, DataFormat *df) ;
...
@@ -63,6 +63,9 @@ extern void fill_DataFormat(void *out, const void *in, DataFormat *df) ;
extern
DataFormat
*
create_DataFormat
(
LPCDIDATAFORMAT
wine_format
,
LPDIDATAFORMAT
asked_format
,
int
*
offset
);
extern
DataFormat
*
create_DataFormat
(
LPCDIDATAFORMAT
wine_format
,
LPDIDATAFORMAT
asked_format
,
int
*
offset
);
extern
void
release_DataFormat
(
DataFormat
*
df
)
;
extern
void
release_DataFormat
(
DataFormat
*
df
)
;
extern
void
queue_event
(
LPDIRECTINPUTDEVICE8A
iface
,
int
ofs
,
DWORD
data
,
DWORD
time
,
DWORD
seq
);
extern
void
queue_event
(
LPDIRECTINPUTDEVICE8A
iface
,
int
ofs
,
DWORD
data
,
DWORD
time
,
DWORD
seq
);
/* Helper functions to work with data format */
extern
int
offset_to_object
(
LPCDIDATAFORMAT
df
,
int
offset
);
extern
int
find_property
(
LPCDIDATAFORMAT
df
,
LPCDIPROPHEADER
ph
);
/**
/**
* Callback Data used by specific callback
* Callback Data used by specific callback
...
...
dlls/dinput/joystick_linux.c
View file @
68176eed
...
@@ -791,19 +791,6 @@ static LONG map_axis(JoystickImpl * This, short val, short index)
...
@@ -791,19 +791,6 @@ static LONG map_axis(JoystickImpl * This, short val, short index)
return
fret
;
return
fret
;
}
}
/* convert wine format offset to user format object index */
static
int
offset_to_object
(
JoystickImpl
*
This
,
int
offset
)
{
int
i
;
for
(
i
=
0
;
i
<
This
->
user_df
->
dwNumObjs
;
i
++
)
{
if
(
This
->
user_df
->
rgodf
[
i
].
dwOfs
==
offset
)
return
i
;
}
return
-
1
;
}
static
LONG
calculate_pov
(
JoystickImpl
*
This
,
int
index
)
static
LONG
calculate_pov
(
JoystickImpl
*
This
,
int
index
)
{
{
if
(
This
->
povs
[
index
].
lX
<
-
16384
)
{
if
(
This
->
povs
[
index
].
lX
<
-
16384
)
{
...
@@ -862,7 +849,7 @@ static void joy_polldev(JoystickImpl *This) {
...
@@ -862,7 +849,7 @@ static void joy_polldev(JoystickImpl *This) {
int
number
=
This
->
axis_map
[
jse
.
number
];
/* wine format object index */
int
number
=
This
->
axis_map
[
jse
.
number
];
/* wine format object index */
if
(
number
<
12
)
{
if
(
number
<
12
)
{
int
offset
=
This
->
offsets
[
number
];
int
offset
=
This
->
offsets
[
number
];
int
index
=
offset_to_object
(
This
,
offset
);
int
index
=
offset_to_object
(
This
->
user_df
,
offset
);
LONG
value
=
map_axis
(
This
,
jse
.
value
,
index
);
LONG
value
=
map_axis
(
This
,
jse
.
value
,
index
);
/* FIXME do deadzone and saturation here */
/* FIXME do deadzone and saturation here */
...
@@ -958,22 +945,6 @@ static HRESULT WINAPI JoystickAImpl_GetDeviceState(
...
@@ -958,22 +945,6 @@ static HRESULT WINAPI JoystickAImpl_GetDeviceState(
return
DI_OK
;
return
DI_OK
;
}
}
static
int
find_property
(
JoystickImpl
*
This
,
LPCDIPROPHEADER
ph
)
{
int
i
;
if
(
ph
->
dwHow
==
DIPH_BYOFFSET
)
{
return
offset_to_object
(
This
,
ph
->
dwObj
);
}
else
if
(
ph
->
dwHow
==
DIPH_BYID
)
{
for
(
i
=
0
;
i
<
This
->
user_df
->
dwNumObjs
;
i
++
)
{
if
((
This
->
user_df
->
rgodf
[
i
].
dwType
&
0x00ffffff
)
==
(
ph
->
dwObj
&
0x00ffffff
))
{
return
i
;
}
}
}
return
-
1
;
}
/******************************************************************************
/******************************************************************************
* SetProperty : change input device properties
* SetProperty : change input device properties
*/
*/
...
@@ -1006,7 +977,7 @@ static HRESULT WINAPI JoystickAImpl_SetProperty(
...
@@ -1006,7 +977,7 @@ static HRESULT WINAPI JoystickAImpl_SetProperty(
This
->
props
[
i
].
lMax
=
pr
->
lMax
;
This
->
props
[
i
].
lMax
=
pr
->
lMax
;
}
}
}
else
{
}
else
{
int
obj
=
find_property
(
This
,
ph
);
int
obj
=
find_property
(
This
->
user_df
,
ph
);
TRACE
(
"proprange(%d,%d) obj=%d
\n
"
,
pr
->
lMin
,
pr
->
lMax
,
obj
);
TRACE
(
"proprange(%d,%d) obj=%d
\n
"
,
pr
->
lMin
,
pr
->
lMax
,
obj
);
if
(
obj
>=
0
)
{
if
(
obj
>=
0
)
{
This
->
props
[
obj
].
lMin
=
pr
->
lMin
;
This
->
props
[
obj
].
lMin
=
pr
->
lMin
;
...
@@ -1023,7 +994,7 @@ static HRESULT WINAPI JoystickAImpl_SetProperty(
...
@@ -1023,7 +994,7 @@ static HRESULT WINAPI JoystickAImpl_SetProperty(
for
(
i
=
0
;
i
<
This
->
user_df
->
dwNumObjs
;
i
++
)
for
(
i
=
0
;
i
<
This
->
user_df
->
dwNumObjs
;
i
++
)
This
->
props
[
i
].
lDeadZone
=
pd
->
dwData
;
This
->
props
[
i
].
lDeadZone
=
pd
->
dwData
;
}
else
{
}
else
{
int
obj
=
find_property
(
This
,
ph
);
int
obj
=
find_property
(
This
->
user_df
,
ph
);
TRACE
(
"deadzone(%d) obj=%d
\n
"
,
pd
->
dwData
,
obj
);
TRACE
(
"deadzone(%d) obj=%d
\n
"
,
pd
->
dwData
,
obj
);
if
(
obj
>=
0
)
{
if
(
obj
>=
0
)
{
This
->
props
[
obj
].
lDeadZone
=
pd
->
dwData
;
This
->
props
[
obj
].
lDeadZone
=
pd
->
dwData
;
...
@@ -1039,7 +1010,7 @@ static HRESULT WINAPI JoystickAImpl_SetProperty(
...
@@ -1039,7 +1010,7 @@ static HRESULT WINAPI JoystickAImpl_SetProperty(
for
(
i
=
0
;
i
<
This
->
user_df
->
dwNumObjs
;
i
++
)
for
(
i
=
0
;
i
<
This
->
user_df
->
dwNumObjs
;
i
++
)
This
->
props
[
i
].
lSaturation
=
pd
->
dwData
;
This
->
props
[
i
].
lSaturation
=
pd
->
dwData
;
}
else
{
}
else
{
int
obj
=
find_property
(
This
,
ph
);
int
obj
=
find_property
(
This
->
user_df
,
ph
);
TRACE
(
"saturation(%d) obj=%d
\n
"
,
pd
->
dwData
,
obj
);
TRACE
(
"saturation(%d) obj=%d
\n
"
,
pd
->
dwData
,
obj
);
if
(
obj
>=
0
)
{
if
(
obj
>=
0
)
{
This
->
props
[
obj
].
lSaturation
=
pd
->
dwData
;
This
->
props
[
obj
].
lSaturation
=
pd
->
dwData
;
...
@@ -1184,7 +1155,7 @@ static HRESULT WINAPI JoystickAImpl_EnumObjects(
...
@@ -1184,7 +1155,7 @@ static HRESULT WINAPI JoystickAImpl_EnumObjects(
}
}
if
(
wine_obj
<
8
)
{
if
(
wine_obj
<
8
)
{
user_offset
=
This
->
offsets
[
wine_obj
];
/* get user offset from wine index */
user_offset
=
This
->
offsets
[
wine_obj
];
/* get user offset from wine index */
user_object
=
offset_to_object
(
This
,
user_offset
);
user_object
=
offset_to_object
(
This
->
user_df
,
user_offset
);
ddoi
.
dwType
=
This
->
user_df
->
rgodf
[
user_object
].
dwType
&
0x00ffffff
;
ddoi
.
dwType
=
This
->
user_df
->
rgodf
[
user_object
].
dwType
&
0x00ffffff
;
ddoi
.
dwOfs
=
This
->
user_df
->
rgodf
[
user_object
].
dwOfs
;
ddoi
.
dwOfs
=
This
->
user_df
->
rgodf
[
user_object
].
dwOfs
;
...
@@ -1193,7 +1164,7 @@ static HRESULT WINAPI JoystickAImpl_EnumObjects(
...
@@ -1193,7 +1164,7 @@ static HRESULT WINAPI JoystickAImpl_EnumObjects(
}
else
{
}
else
{
if
(
pov
[
wine_obj
-
8
]
<
2
)
{
if
(
pov
[
wine_obj
-
8
]
<
2
)
{
user_offset
=
This
->
offsets
[
wine_obj
];
/* get user offset from wine index */
user_offset
=
This
->
offsets
[
wine_obj
];
/* get user offset from wine index */
user_object
=
offset_to_object
(
This
,
user_offset
);
user_object
=
offset_to_object
(
This
->
user_df
,
user_offset
);
ddoi
.
dwType
=
This
->
user_df
->
rgodf
[
user_object
].
dwType
&
0x00ffffff
;
ddoi
.
dwType
=
This
->
user_df
->
rgodf
[
user_object
].
dwType
&
0x00ffffff
;
ddoi
.
dwOfs
=
This
->
user_df
->
rgodf
[
user_object
].
dwOfs
;
ddoi
.
dwOfs
=
This
->
user_df
->
rgodf
[
user_object
].
dwOfs
;
...
@@ -1218,7 +1189,7 @@ static HRESULT WINAPI JoystickAImpl_EnumObjects(
...
@@ -1218,7 +1189,7 @@ static HRESULT WINAPI JoystickAImpl_EnumObjects(
for
(
i
=
0
;
i
<
This
->
buttons
;
i
++
)
{
for
(
i
=
0
;
i
<
This
->
buttons
;
i
++
)
{
user_offset
=
This
->
offsets
[
i
+
12
];
/* get user offset from wine index */
user_offset
=
This
->
offsets
[
i
+
12
];
/* get user offset from wine index */
user_object
=
offset_to_object
(
This
,
user_offset
);
user_object
=
offset_to_object
(
This
->
user_df
,
user_offset
);
ddoi
.
guidType
=
GUID_Button
;
ddoi
.
guidType
=
GUID_Button
;
ddoi
.
dwType
=
This
->
user_df
->
rgodf
[
user_object
].
dwType
&
0x00ffffff
;
ddoi
.
dwType
=
This
->
user_df
->
rgodf
[
user_object
].
dwType
&
0x00ffffff
;
ddoi
.
dwOfs
=
This
->
user_df
->
rgodf
[
user_object
].
dwOfs
;
ddoi
.
dwOfs
=
This
->
user_df
->
rgodf
[
user_object
].
dwOfs
;
...
@@ -1269,7 +1240,7 @@ static HRESULT WINAPI JoystickAImpl_GetProperty(
...
@@ -1269,7 +1240,7 @@ static HRESULT WINAPI JoystickAImpl_GetProperty(
switch
(
LOWORD
(
rguid
))
{
switch
(
LOWORD
(
rguid
))
{
case
(
DWORD
)
DIPROP_RANGE
:
{
case
(
DWORD
)
DIPROP_RANGE
:
{
LPDIPROPRANGE
pr
=
(
LPDIPROPRANGE
)
pdiph
;
LPDIPROPRANGE
pr
=
(
LPDIPROPRANGE
)
pdiph
;
int
obj
=
find_property
(
This
,
pdiph
);
int
obj
=
find_property
(
This
->
user_df
,
pdiph
);
/* The app is querying the current range of the axis
/* The app is querying the current range of the axis
* return the lMin and lMax values */
* return the lMin and lMax values */
if
(
obj
>=
0
)
{
if
(
obj
>=
0
)
{
...
@@ -1282,7 +1253,7 @@ static HRESULT WINAPI JoystickAImpl_GetProperty(
...
@@ -1282,7 +1253,7 @@ static HRESULT WINAPI JoystickAImpl_GetProperty(
}
}
case
(
DWORD
)
DIPROP_DEADZONE
:
{
case
(
DWORD
)
DIPROP_DEADZONE
:
{
LPDIPROPDWORD
pd
=
(
LPDIPROPDWORD
)
pdiph
;
LPDIPROPDWORD
pd
=
(
LPDIPROPDWORD
)
pdiph
;
int
obj
=
find_property
(
This
,
pdiph
);
int
obj
=
find_property
(
This
->
user_df
,
pdiph
);
if
(
obj
>=
0
)
{
if
(
obj
>=
0
)
{
pd
->
dwData
=
This
->
props
[
obj
].
lDeadZone
;
pd
->
dwData
=
This
->
props
[
obj
].
lDeadZone
;
TRACE
(
"deadzone(%d) obj=%d
\n
"
,
pd
->
dwData
,
obj
);
TRACE
(
"deadzone(%d) obj=%d
\n
"
,
pd
->
dwData
,
obj
);
...
@@ -1292,7 +1263,7 @@ static HRESULT WINAPI JoystickAImpl_GetProperty(
...
@@ -1292,7 +1263,7 @@ static HRESULT WINAPI JoystickAImpl_GetProperty(
}
}
case
(
DWORD
)
DIPROP_SATURATION
:
{
case
(
DWORD
)
DIPROP_SATURATION
:
{
LPDIPROPDWORD
pd
=
(
LPDIPROPDWORD
)
pdiph
;
LPDIPROPDWORD
pd
=
(
LPDIPROPDWORD
)
pdiph
;
int
obj
=
find_property
(
This
,
pdiph
);
int
obj
=
find_property
(
This
->
user_df
,
pdiph
);
if
(
obj
>=
0
)
{
if
(
obj
>=
0
)
{
pd
->
dwData
=
This
->
props
[
obj
].
lSaturation
;
pd
->
dwData
=
This
->
props
[
obj
].
lSaturation
;
TRACE
(
"saturation(%d) obj=%d
\n
"
,
pd
->
dwData
,
obj
);
TRACE
(
"saturation(%d) obj=%d
\n
"
,
pd
->
dwData
,
obj
);
...
...
dlls/dinput/joystick_linuxinput.c
View file @
68176eed
...
@@ -147,11 +147,9 @@ struct JoystickImpl
...
@@ -147,11 +147,9 @@ struct JoystickImpl
};
};
static
void
fake_current_js_state
(
JoystickImpl
*
ji
);
static
void
fake_current_js_state
(
JoystickImpl
*
ji
);
static
int
find_property_offset
(
JoystickImpl
*
This
,
LPCDIPROPHEADER
ph
);
static
DWORD
map_pov
(
int
event_value
,
int
is_x
);
static
DWORD
map_pov
(
int
event_value
,
int
is_x
);
static
void
find_joydevs
(
void
);
static
void
find_joydevs
(
void
);
static
int
lxinput_to_user_offset
(
JoystickImpl
*
This
,
int
ie_type
,
int
ie_code
);
static
int
lxinput_to_user_offset
(
JoystickImpl
*
This
,
int
ie_type
,
int
ie_code
);
static
int
offset_to_object
(
JoystickImpl
*
This
,
int
offset
);
/* This GUID is slightly different from the linux joystick one. Take note. */
/* This GUID is slightly different from the linux joystick one. Take note. */
static
const
GUID
DInput_Wine_Joystick_Base_GUID
=
{
/* 9e573eda-7734-11d2-8d4a-23903fb6bdf7 */
static
const
GUID
DInput_Wine_Joystick_Base_GUID
=
{
/* 9e573eda-7734-11d2-8d4a-23903fb6bdf7 */
...
@@ -709,39 +707,6 @@ static DWORD map_pov(int event_value, int is_x)
...
@@ -709,39 +707,6 @@ static DWORD map_pov(int event_value, int is_x)
return
ret
;
return
ret
;
}
}
static
int
find_property_offset
(
JoystickImpl
*
This
,
LPCDIPROPHEADER
ph
)
{
int
i
,
ofs
=
-
1
;
switch
(
ph
->
dwHow
)
{
case
DIPH_BYOFFSET
:
for
(
i
=
0
;
i
<
This
->
df
->
dwNumObjs
;
i
++
)
{
if
(
This
->
offsets
[
i
]
==
ph
->
dwObj
)
{
return
i
;
}
}
break
;
case
DIPH_BYID
:
for
(
i
=
0
;
i
<
This
->
df
->
dwNumObjs
;
i
++
)
{
if
((
This
->
df
->
rgodf
[
i
].
dwType
&
0x00ffffff
)
==
(
ph
->
dwObj
&
0x00ffffff
))
{
ofs
=
This
->
df
->
rgodf
[
i
].
dwOfs
;
break
;
}
}
if
(
ofs
!=-
1
)
{
for
(
i
=
0
;
i
<
This
->
df
->
dwNumObjs
;
i
++
)
{
if
(
This
->
offsets
[
i
]
==
ofs
)
{
return
i
;
}
}
}
break
;
default:
FIXME
(
"Unhandled ph->dwHow=='%04X'
\n
"
,
(
unsigned
int
)
ph
->
dwHow
);
}
return
-
1
;
}
/* defines how the linux input system offset mappings into c_dfDIJoystick2 */
/* defines how the linux input system offset mappings into c_dfDIJoystick2 */
static
int
static
int
lxinput_to_user_offset
(
JoystickImpl
*
This
,
int
ie_type
,
int
ie_code
)
lxinput_to_user_offset
(
JoystickImpl
*
This
,
int
ie_type
,
int
ie_code
)
...
@@ -783,18 +748,6 @@ lxinput_to_user_offset(JoystickImpl *This, int ie_type, int ie_code )
...
@@ -783,18 +748,6 @@ lxinput_to_user_offset(JoystickImpl *This, int ie_type, int ie_code )
}
}
/* convert wine format offset to user format object index */
/* convert wine format offset to user format object index */
static
int
offset_to_object
(
JoystickImpl
*
This
,
int
offset
)
{
int
i
;
for
(
i
=
0
;
i
<
This
->
df
->
dwNumObjs
;
i
++
)
{
if
(
This
->
df
->
rgodf
[
i
].
dwOfs
==
offset
)
return
i
;
}
return
-
1
;
}
static
void
joy_polldev
(
JoystickImpl
*
This
)
{
static
void
joy_polldev
(
JoystickImpl
*
This
)
{
struct
pollfd
plfd
;
struct
pollfd
plfd
;
struct
input_event
ie
;
struct
input_event
ie
;
...
@@ -975,7 +928,7 @@ static HRESULT WINAPI JoystickAImpl_SetProperty(LPDIRECTINPUTDEVICE8A iface,
...
@@ -975,7 +928,7 @@ static HRESULT WINAPI JoystickAImpl_SetProperty(LPDIRECTINPUTDEVICE8A iface,
This
->
wantmax
[
i
]
=
pr
->
lMax
;
This
->
wantmax
[
i
]
=
pr
->
lMax
;
}
}
}
else
{
}
else
{
int
obj
=
find_property
_offset
(
This
,
ph
);
int
obj
=
find_property
(
This
->
df
,
ph
);
TRACE
(
"proprange(%d,%d) obj=%d
\n
"
,
pr
->
lMin
,
pr
->
lMax
,
obj
);
TRACE
(
"proprange(%d,%d) obj=%d
\n
"
,
pr
->
lMin
,
pr
->
lMax
,
obj
);
if
(
obj
>=
0
)
{
if
(
obj
>=
0
)
{
This
->
wantmin
[
obj
]
=
pr
->
lMin
;
This
->
wantmin
[
obj
]
=
pr
->
lMin
;
...
@@ -994,7 +947,7 @@ static HRESULT WINAPI JoystickAImpl_SetProperty(LPDIRECTINPUTDEVICE8A iface,
...
@@ -994,7 +947,7 @@ static HRESULT WINAPI JoystickAImpl_SetProperty(LPDIRECTINPUTDEVICE8A iface,
This
->
deadz
[
i
]
=
pd
->
dwData
;
This
->
deadz
[
i
]
=
pd
->
dwData
;
}
}
}
else
{
}
else
{
int
obj
=
find_property
_offset
(
This
,
ph
);
int
obj
=
find_property
(
This
->
df
,
ph
);
TRACE
(
"deadzone(%d) obj=%d
\n
"
,
pd
->
dwData
,
obj
);
TRACE
(
"deadzone(%d) obj=%d
\n
"
,
pd
->
dwData
,
obj
);
if
(
obj
>=
0
)
{
if
(
obj
>=
0
)
{
This
->
deadz
[
obj
]
=
pd
->
dwData
;
This
->
deadz
[
obj
]
=
pd
->
dwData
;
...
@@ -1153,7 +1106,7 @@ static HRESULT WINAPI JoystickAImpl_EnumObjects(
...
@@ -1153,7 +1106,7 @@ static HRESULT WINAPI JoystickAImpl_EnumObjects(
if
((
user_offset
=
lxinput_to_user_offset
(
This
,
EV_ABS
,
i
))
==
-
1
)
{
if
((
user_offset
=
lxinput_to_user_offset
(
This
,
EV_ABS
,
i
))
==
-
1
)
{
continue
;
continue
;
}
}
user_object
=
offset_to_object
(
This
,
user_offset
);
user_object
=
offset_to_object
(
This
->
df
,
user_offset
);
ddoi
.
dwType
=
This
->
df
->
rgodf
[
user_object
].
dwType
&
0x00ffffff
;
ddoi
.
dwType
=
This
->
df
->
rgodf
[
user_object
].
dwType
&
0x00ffffff
;
ddoi
.
dwOfs
=
This
->
df
->
rgodf
[
user_object
].
dwOfs
;
ddoi
.
dwOfs
=
This
->
df
->
rgodf
[
user_object
].
dwOfs
;
/* Linux event force feedback supports only (and always) x and y axes */
/* Linux event force feedback supports only (and always) x and y axes */
...
@@ -1178,7 +1131,7 @@ static HRESULT WINAPI JoystickAImpl_EnumObjects(
...
@@ -1178,7 +1131,7 @@ static HRESULT WINAPI JoystickAImpl_EnumObjects(
if
((
user_offset
=
lxinput_to_user_offset
(
This
,
EV_ABS
,
ABS_HAT0X
+
i
))
==
-
1
)
{
if
((
user_offset
=
lxinput_to_user_offset
(
This
,
EV_ABS
,
ABS_HAT0X
+
i
))
==
-
1
)
{
continue
;
continue
;
}
}
user_object
=
offset_to_object
(
This
,
user_offset
);
user_object
=
offset_to_object
(
This
->
df
,
user_offset
);
ddoi
.
dwType
=
This
->
df
->
rgodf
[
user_object
].
dwType
&
0x00ffffff
;
ddoi
.
dwType
=
This
->
df
->
rgodf
[
user_object
].
dwType
&
0x00ffffff
;
ddoi
.
dwOfs
=
This
->
df
->
rgodf
[
user_object
].
dwOfs
;
ddoi
.
dwOfs
=
This
->
df
->
rgodf
[
user_object
].
dwOfs
;
sprintf
(
ddoi
.
tszName
,
"%d-POV"
,
i
);
sprintf
(
ddoi
.
tszName
,
"%d-POV"
,
i
);
...
@@ -1203,7 +1156,7 @@ static HRESULT WINAPI JoystickAImpl_EnumObjects(
...
@@ -1203,7 +1156,7 @@ static HRESULT WINAPI JoystickAImpl_EnumObjects(
if
((
user_offset
=
lxinput_to_user_offset
(
This
,
EV_KEY
,
btncount
))
==
-
1
)
{
if
((
user_offset
=
lxinput_to_user_offset
(
This
,
EV_KEY
,
btncount
))
==
-
1
)
{
continue
;
continue
;
}
}
user_object
=
offset_to_object
(
This
,
user_offset
);
user_object
=
offset_to_object
(
This
->
df
,
user_offset
);
ddoi
.
dwType
=
This
->
df
->
rgodf
[
user_object
].
dwType
&
0x00ffffff
;
ddoi
.
dwType
=
This
->
df
->
rgodf
[
user_object
].
dwType
&
0x00ffffff
;
ddoi
.
dwOfs
=
This
->
df
->
rgodf
[
user_object
].
dwOfs
;
ddoi
.
dwOfs
=
This
->
df
->
rgodf
[
user_object
].
dwOfs
;
sprintf
(
ddoi
.
tszName
,
"%d-Button"
,
btncount
);
sprintf
(
ddoi
.
tszName
,
"%d-Button"
,
btncount
);
...
@@ -1252,7 +1205,7 @@ static HRESULT WINAPI JoystickAImpl_GetProperty(LPDIRECTINPUTDEVICE8A iface,
...
@@ -1252,7 +1205,7 @@ static HRESULT WINAPI JoystickAImpl_GetProperty(LPDIRECTINPUTDEVICE8A iface,
switch
(
LOWORD
(
rguid
))
{
switch
(
LOWORD
(
rguid
))
{
case
(
DWORD
)
DIPROP_RANGE
:
{
case
(
DWORD
)
DIPROP_RANGE
:
{
LPDIPROPRANGE
pr
=
(
LPDIPROPRANGE
)
pdiph
;
LPDIPROPRANGE
pr
=
(
LPDIPROPRANGE
)
pdiph
;
int
obj
=
find_property
_offset
(
This
,
pdiph
);
int
obj
=
find_property
(
This
->
df
,
pdiph
);
if
(
obj
>=
0
)
{
if
(
obj
>=
0
)
{
pr
->
lMin
=
This
->
joydev
->
havemin
[
obj
];
pr
->
lMin
=
This
->
joydev
->
havemin
[
obj
];
pr
->
lMax
=
This
->
joydev
->
havemax
[
obj
];
pr
->
lMax
=
This
->
joydev
->
havemax
[
obj
];
...
...
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