Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-winehq
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-winehq
Commits
5dbe1360
Commit
5dbe1360
authored
Mar 09, 2009
by
Aric Stewart
Committed by
Alexandre Julliard
Mar 10, 2009
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
dinput: Create generic joystick Acquire/Unacquire.
parent
36f538eb
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
47 additions
and
7 deletions
+47
-7
joystick.c
dlls/dinput/joystick.c
+34
-0
joystick_linux.c
dlls/dinput/joystick_linux.c
+9
-7
joystick_private.h
dlls/dinput/joystick_private.h
+4
-0
No files found.
dlls/dinput/joystick.c
View file @
5dbe1360
...
...
@@ -32,6 +32,40 @@
WINE_DEFAULT_DEBUG_CHANNEL
(
dinput
);
/******************************************************************************
* Acquire : gets exclusive control of the joystick
*/
HRESULT
WINAPI
JoystickAGenericImpl_Acquire
(
LPDIRECTINPUTDEVICE8A
iface
)
{
JoystickGenericImpl
*
This
=
(
JoystickGenericImpl
*
)
iface
;
TRACE
(
"(%p)
\n
"
,
This
);
if
(
This
->
base
.
acquired
)
{
WARN
(
"already acquired
\n
"
);
return
S_FALSE
;
}
This
->
base
.
acquired
=
1
;
return
DI_OK
;
}
/******************************************************************************
* Unacquire : frees the joystick
*/
HRESULT
WINAPI
JoystickAGenericImpl_Unacquire
(
LPDIRECTINPUTDEVICE8A
iface
)
{
JoystickGenericImpl
*
This
=
(
JoystickGenericImpl
*
)
iface
;
HRESULT
res
;
TRACE
(
"(%p)
\n
"
,
This
);
if
((
res
=
IDirectInputDevice2AImpl_Unacquire
(
iface
))
!=
DI_OK
)
return
res
;
return
DI_OK
;
}
/******************************************************************************
* SetProperty : change input device properties
*/
HRESULT
WINAPI
JoystickAGenericImpl_SetProperty
(
...
...
dlls/dinput/joystick_linux.c
View file @
5dbe1360
...
...
@@ -605,13 +605,13 @@ const struct dinput_device joystick_linux_device = {
static
HRESULT
WINAPI
JoystickLinuxAImpl_Acquire
(
LPDIRECTINPUTDEVICE8A
iface
)
{
JoystickImpl
*
This
=
(
JoystickImpl
*
)
iface
;
HRESULT
res
;
TRACE
(
"(%p)
\n
"
,
This
);
if
(
This
->
generic
.
base
.
acquired
)
{
WARN
(
"already acquired
\n
"
);
return
S_FALSE
;
}
res
=
JoystickAGenericImpl_Acquire
(
iface
);
if
(
res
!=
DI_OK
)
return
res
;
/* open the joystick device */
if
(
This
->
joyfd
==-
1
)
{
...
...
@@ -620,12 +620,11 @@ static HRESULT WINAPI JoystickLinuxAImpl_Acquire(LPDIRECTINPUTDEVICE8A iface)
This
->
joyfd
=
open
(
This
->
dev
,
O_RDONLY
);
if
(
This
->
joyfd
==-
1
)
{
ERR
(
"open(%s) failed: %s
\n
"
,
This
->
dev
,
strerror
(
errno
));
JoystickAGenericImpl_Unacquire
(
iface
);
return
DIERR_NOTFOUND
;
}
}
This
->
generic
.
base
.
acquired
=
1
;
return
DI_OK
;
}
...
...
@@ -639,7 +638,10 @@ static HRESULT WINAPI JoystickLinuxAImpl_Unacquire(LPDIRECTINPUTDEVICE8A iface)
TRACE
(
"(%p)
\n
"
,
This
);
if
((
res
=
IDirectInputDevice2AImpl_Unacquire
(
iface
))
!=
DI_OK
)
return
res
;
res
=
JoystickAGenericImpl_Unacquire
(
iface
);
if
(
res
!=
DI_OK
)
return
res
;
if
(
This
->
joyfd
!=-
1
)
{
TRACE
(
"closing joystick device
\n
"
);
...
...
dlls/dinput/joystick_private.h
View file @
5dbe1360
...
...
@@ -78,4 +78,8 @@ HRESULT WINAPI JoystickAGenericImpl_Poll(LPDIRECTINPUTDEVICE8A iface);
HRESULT
WINAPI
JoystickAGenericImpl_GetDeviceState
(
LPDIRECTINPUTDEVICE8A
iface
,
DWORD
len
,
LPVOID
ptr
);
HRESULT
WINAPI
JoystickAGenericImpl_Acquire
(
LPDIRECTINPUTDEVICE8A
iface
);
HRESULT
WINAPI
JoystickAGenericImpl_Unacquire
(
LPDIRECTINPUTDEVICE8A
iface
);
#endif
/* __WINE_DLLS_DINPUT_JOYSTICK_PRIVATE_H */
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