joy.cpl: Added force feedback direction control.
[wine] / dlls / joy.cpl / joy.h
1 /*
2  * Joystick testing control panel applet resources and definitions
3  *
4  * Copyright 2012 Lucas Fialho Zawacki
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the GNU Lesser General Public
8  * License as published by the Free Software Foundation; either
9  * version 2.1 of the License, or (at your option) any later version.
10  *
11  * This library is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14  * Lesser General Public License for more details.
15  *
16  * You should have received a copy of the GNU Lesser General Public
17  * License along with this library; if not, write to the Free Software
18  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
19  *
20  */
21
22 #ifndef __WINE_JOYSTICKCPL__
23 #define __WINE_JOYSTICKCPL__
24
25 #include <winuser.h>
26 #include <windef.h>
27 #include <commctrl.h>
28 #include <dinput.h>
29
30 extern HMODULE hcpl;
31
32 struct Effect {
33     IDirectInputEffect *effect;
34     DIEFFECT params;
35     DIEFFECTINFOW info;
36 };
37
38 struct Joystick {
39     IDirectInputDevice8W *device;
40     DIDEVICEINSTANCEW instance;
41     int num_buttons;
42     int num_axes;
43     BOOL forcefeedback;
44     int num_effects;
45     int cur_effect;
46     int chosen_effect;
47     struct Effect *effects;
48 };
49
50 #define TEST_MAX_BUTTONS    32
51 #define TEST_MAX_AXES       4
52
53 struct JoystickData {
54     IDirectInput8W *di;
55     struct Joystick *joysticks;
56     int num_joysticks;
57     int num_ff;
58     int cur_joystick;
59     int chosen_joystick;
60     HWND buttons[TEST_MAX_BUTTONS];
61     HWND axes[TEST_MAX_AXES];
62     HWND ff_axis;
63     BOOL stop;
64 };
65
66 #define NUM_PROPERTY_PAGES 3
67
68 /* strings */
69 #define IDS_CPL_NAME        1
70 #define IDS_CPL_INFO        2
71
72 /* dialogs */
73 #define IDC_STATIC          -1
74
75 #define IDD_LIST            1000
76 #define IDD_TEST            1001
77 #define IDD_FORCEFEEDBACK   1002
78
79 #define IDC_JOYSTICKLIST    2000
80 #define IDC_BUTTONDISABLE   2001
81 #define IDC_BUTTONENABLE    2002
82 #define IDC_DISABLEDLIST    2003
83 #define IDC_TESTSELECTCOMBO 2004
84 #define IDC_TESTGROUPXY     2005
85 #define IDC_TESTGROUPRXRY   2006
86 #define IDC_TESTGROUPZRZ    2007
87 #define IDC_TESTGROUPPOV    2008
88
89 #define IDC_JOYSTICKBUTTON  3000
90 #define IDC_JOYSTICKAXES    4000
91
92 #define IDC_FFSELECTCOMBO   2009
93 #define IDC_FFEFFECTLIST    2010
94 #define IDC_FFAXIS          2011
95
96 /* constants */
97 #define TEST_POLL_TIME      100
98
99 #define TEST_BUTTON_COL_MAX 8
100 #define TEST_BUTTON_X       15
101 #define TEST_BUTTON_Y       200
102 #define TEST_NEXT_BUTTON_X  45
103 #define TEST_NEXT_BUTTON_Y  40
104 #define TEST_BUTTON_SIZE_X  30
105 #define TEST_BUTTON_SIZE_Y  25
106
107 #define TEST_AXIS_X         65
108 #define TEST_AXIS_Y         98
109 #define TEST_NEXT_AXIS_X    115
110 #define TEST_AXIS_SIZE_X    5
111 #define TEST_AXIS_SIZE_Y    5
112 #define TEST_AXIS_MIN       -40
113 #define TEST_AXIS_MAX       40
114
115 #define FF_AXIS_X           373
116 #define FF_AXIS_Y           98
117 #define FF_AXIS_SIZE_X      5
118 #define FF_AXIS_SIZE_Y      5
119
120 #define FF_PLAY_TIME        2*DI_SECONDS
121 #define FF_PERIOD_TIME      FF_PLAY_TIME/4
122
123 #endif