joy.cpl: Tab for force feedback tests.
This commit is contained in:
parent
d05f9109c8
commit
37ce970629
|
@ -29,11 +29,22 @@
|
|||
|
||||
extern HMODULE hcpl;
|
||||
|
||||
struct Effect {
|
||||
IDirectInputEffect *effect;
|
||||
DIEFFECT params;
|
||||
DIEFFECTINFOW info;
|
||||
};
|
||||
|
||||
struct Joystick {
|
||||
IDirectInputDevice8W *device;
|
||||
DIDEVICEINSTANCEW instance;
|
||||
int num_buttons;
|
||||
int num_axes;
|
||||
BOOL forcefeedback;
|
||||
int num_effects;
|
||||
int cur_effect;
|
||||
int chosen_effect;
|
||||
struct Effect *effects;
|
||||
};
|
||||
|
||||
#define TEST_MAX_BUTTONS 32
|
||||
|
@ -43,6 +54,7 @@ struct JoystickData {
|
|||
IDirectInput8W *di;
|
||||
struct Joystick *joysticks;
|
||||
int num_joysticks;
|
||||
int num_ff;
|
||||
int cur_joystick;
|
||||
int chosen_joystick;
|
||||
HWND buttons[TEST_MAX_BUTTONS];
|
||||
|
@ -76,6 +88,9 @@ struct JoystickData {
|
|||
#define IDC_JOYSTICKBUTTON 3000
|
||||
#define IDC_JOYSTICKAXES 4000
|
||||
|
||||
#define IDC_FFSELECTCOMBO 2009
|
||||
#define IDC_FFEFFECTLIST 2010
|
||||
|
||||
/* constants */
|
||||
#define TEST_POLL_TIME 100
|
||||
|
||||
|
@ -95,4 +110,7 @@ struct JoystickData {
|
|||
#define TEST_AXIS_MIN -40
|
||||
#define TEST_AXIS_MAX 40
|
||||
|
||||
#define FF_PLAY_TIME 2*DI_SECONDS
|
||||
#define FF_PERIOD_TIME FF_PLAY_TIME/4
|
||||
|
||||
#endif
|
||||
|
|
|
@ -59,6 +59,10 @@ STYLE WS_CAPTION | WS_CHILD | WS_DISABLED
|
|||
CAPTION "Test Force Feedback"
|
||||
FONT 8, "Ms Shell Dlg"
|
||||
{
|
||||
COMBOBOX IDC_FFSELECTCOMBO, 5, 5, 100, 30, CBS_DROPDOWNLIST | CBS_HASSTRINGS
|
||||
LTEXT "Available Effects", IDC_STATIC, 10, 30, 100, 10
|
||||
LISTBOX IDC_FFEFFECTLIST, 10, 40, 180, 70, WS_TABSTOP | WS_VSCROLL | LBS_NOTIFY
|
||||
LTEXT "Press any button in the controller to activate the chosen effect.", IDC_STATIC, 10, 110, 210, 25
|
||||
}
|
||||
|
||||
#define WINE_FILENAME_STR "joy.cpl"
|
||||
|
|
|
@ -88,6 +88,9 @@ static BOOL CALLBACK enum_callback(const DIDEVICEINSTANCEW *instance, void *cont
|
|||
|
||||
joystick->num_buttons = caps.dwButtons;
|
||||
joystick->num_axes = caps.dwAxes;
|
||||
joystick->forcefeedback = caps.dwFlags & DIDC_FORCEFEEDBACK;
|
||||
|
||||
if (joystick->forcefeedback) data->num_ff++;
|
||||
|
||||
return DIENUM_CONTINUE;
|
||||
}
|
||||
|
@ -111,10 +114,19 @@ static void initialize_joysticks(struct JoystickData *data)
|
|||
*/
|
||||
static void destroy_joysticks(struct JoystickData *data)
|
||||
{
|
||||
int i;
|
||||
int i, j;
|
||||
|
||||
for (i = 0; i < data->num_joysticks; i++)
|
||||
{
|
||||
|
||||
if (data->joysticks[i].forcefeedback)
|
||||
{
|
||||
for (j = 0; j < data->joysticks[i].num_effects; j++)
|
||||
IDirectInputEffect_Release(data->joysticks[i].effects[j].effect);
|
||||
|
||||
HeapFree(GetProcessHeap(), 0, data->joysticks[i].effects);
|
||||
}
|
||||
|
||||
IDirectInputDevice8_Unacquire(data->joysticks[i].device);
|
||||
IDirectInputDevice8_Release(data->joysticks[i].device);
|
||||
}
|
||||
|
@ -437,6 +449,255 @@ static INT_PTR CALLBACK test_dlgproc(HWND hwnd, UINT msg, WPARAM wparam, LPARAM
|
|||
return FALSE;
|
||||
}
|
||||
|
||||
/*********************************************************************
|
||||
* Joystick force feedback testing functions
|
||||
*
|
||||
*/
|
||||
|
||||
static void initialize_effects_list(HWND hwnd, struct Joystick* joy)
|
||||
{
|
||||
int i;
|
||||
|
||||
SendDlgItemMessageW(hwnd, IDC_FFEFFECTLIST, LB_RESETCONTENT, 0, 0);
|
||||
|
||||
for (i=0; i < joy->num_effects; i++)
|
||||
{
|
||||
/* Effect names start with GUID_, so we'll skip this part */
|
||||
WCHAR *name = joy->effects[i].info.tszName + 5;
|
||||
SendDlgItemMessageW(hwnd, IDC_FFEFFECTLIST, LB_ADDSTRING, 0, (LPARAM) name);
|
||||
}
|
||||
}
|
||||
|
||||
static void ff_handle_joychange(HWND hwnd, struct JoystickData *data)
|
||||
{
|
||||
int sel;
|
||||
|
||||
if (data->num_ff == 0) return;
|
||||
|
||||
sel = SendDlgItemMessageW(hwnd, IDC_FFSELECTCOMBO, CB_GETCURSEL, 0, 0);
|
||||
data->chosen_joystick = SendDlgItemMessageW(hwnd, IDC_FFSELECTCOMBO, CB_GETITEMDATA, sel, 0);
|
||||
initialize_effects_list(hwnd, &data->joysticks[data->chosen_joystick]);
|
||||
}
|
||||
|
||||
static void ff_handle_effectchange(HWND hwnd, struct Joystick *joy)
|
||||
{
|
||||
int sel = SendDlgItemMessageW(hwnd, IDC_FFEFFECTLIST, LB_GETCURSEL, 0, 0);
|
||||
|
||||
if (sel < 0) return;
|
||||
|
||||
joy->chosen_effect = sel;
|
||||
}
|
||||
|
||||
static DWORD WINAPI ff_input_thread(void *param)
|
||||
{
|
||||
struct JoystickData *data = param;
|
||||
DIJOYSTATE state;
|
||||
|
||||
ZeroMemory(&state, sizeof(state));
|
||||
|
||||
while (!data->stop)
|
||||
{
|
||||
int i;
|
||||
struct Joystick *joy = &data->joysticks[data->chosen_joystick];
|
||||
int chosen_effect = joy->chosen_effect;
|
||||
|
||||
/* Skip this if we have no effects */
|
||||
if (joy->num_effects == 0 || chosen_effect < 0) continue;
|
||||
|
||||
poll_input(joy, &state);
|
||||
|
||||
for (i=0; i < joy->num_buttons; i++)
|
||||
if (state.rgbButtons[i])
|
||||
{
|
||||
IDirectInputEffect_Start(joy->effects[chosen_effect].effect, 1, 0);
|
||||
break;
|
||||
}
|
||||
|
||||
Sleep(TEST_POLL_TIME);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
* ff_effects_callback [internal]
|
||||
* Enumerates, creates, sets the some parameters and stores all ff effects
|
||||
* supported by the joystick. Works like enum_callback, counting the effects
|
||||
* first and then storing them.
|
||||
*/
|
||||
static BOOL CALLBACK ff_effects_callback(const DIEFFECTINFOW *pdei, void *pvRef)
|
||||
{
|
||||
HRESULT hr;
|
||||
DIEFFECT dieffect;
|
||||
DWORD axes[2] = {DIJOFS_X, DIJOFS_Y};
|
||||
int direction[2] = {0, 0};
|
||||
struct Joystick *joystick = pvRef;
|
||||
|
||||
if (joystick->effects == NULL)
|
||||
{
|
||||
joystick->num_effects += 1;
|
||||
return DIENUM_CONTINUE;
|
||||
}
|
||||
|
||||
hr = IDirectInputDevice8_Acquire(joystick->device);
|
||||
|
||||
if (FAILED(hr)) return DIENUM_CONTINUE;
|
||||
|
||||
ZeroMemory(&dieffect, sizeof(dieffect));
|
||||
|
||||
dieffect.dwSize = sizeof(dieffect);
|
||||
dieffect.dwFlags = DIEFF_CARTESIAN;
|
||||
dieffect.dwDuration = FF_PLAY_TIME;
|
||||
|
||||
dieffect.cAxes = 2;
|
||||
dieffect.rgdwAxes = axes;
|
||||
dieffect.rglDirection = direction;
|
||||
|
||||
if (IsEqualGUID(&pdei->guid, &GUID_RampForce))
|
||||
{
|
||||
DIRAMPFORCE rforce;
|
||||
|
||||
rforce.lStart = 0;
|
||||
rforce.lEnd = DI_FFNOMINALMAX;
|
||||
|
||||
dieffect.cbTypeSpecificParams = sizeof(rforce);
|
||||
dieffect.lpvTypeSpecificParams = &rforce;
|
||||
dieffect.dwFlags |= DIEP_TYPESPECIFICPARAMS;
|
||||
}
|
||||
else if (IsEqualGUID(&pdei->guid, &GUID_ConstantForce))
|
||||
{
|
||||
DICONSTANTFORCE cforce;
|
||||
|
||||
cforce.lMagnitude = DI_FFNOMINALMAX;
|
||||
|
||||
dieffect.cbTypeSpecificParams = sizeof(cforce);
|
||||
dieffect.lpvTypeSpecificParams = &cforce;
|
||||
dieffect.dwFlags |= DIEP_TYPESPECIFICPARAMS;
|
||||
}
|
||||
else if (IsEqualGUID(&pdei->guid, &GUID_Sine) ||
|
||||
IsEqualGUID(&pdei->guid, &GUID_Square) ||
|
||||
IsEqualGUID(&pdei->guid, &GUID_Triangle) ||
|
||||
IsEqualGUID(&pdei->guid, &GUID_SawtoothUp) ||
|
||||
IsEqualGUID(&pdei->guid, &GUID_SawtoothDown))
|
||||
{
|
||||
DIPERIODIC pforce;
|
||||
|
||||
pforce.dwMagnitude = DI_FFNOMINALMAX;
|
||||
pforce.lOffset = 0;
|
||||
pforce.dwPhase = 0;
|
||||
pforce.dwPeriod = FF_PERIOD_TIME;
|
||||
|
||||
dieffect.cbTypeSpecificParams = sizeof(pforce);
|
||||
dieffect.lpvTypeSpecificParams = &pforce;
|
||||
dieffect.dwFlags |= DIEP_TYPESPECIFICPARAMS;
|
||||
}
|
||||
|
||||
hr = IDirectInputDevice2_CreateEffect(
|
||||
joystick->device, &pdei->guid, &dieffect, &joystick->effects[joystick->cur_effect].effect, NULL);
|
||||
|
||||
joystick->effects[joystick->cur_effect].params = dieffect;
|
||||
joystick->effects[joystick->cur_effect].info = *pdei;
|
||||
joystick->cur_effect += 1;
|
||||
|
||||
return DIENUM_CONTINUE;
|
||||
}
|
||||
|
||||
/*********************************************************************
|
||||
* ff_dlgproc [internal]
|
||||
*
|
||||
*/
|
||||
static INT_PTR CALLBACK ff_dlgproc(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam)
|
||||
{
|
||||
static HANDLE thread;
|
||||
static struct JoystickData *data;
|
||||
TRACE("(%p, 0x%08x/%d, 0x%lx)\n", hwnd, msg, msg, lparam);
|
||||
|
||||
switch (msg)
|
||||
{
|
||||
case WM_INITDIALOG:
|
||||
{
|
||||
int i, cur = 0;
|
||||
|
||||
data = (struct JoystickData*) ((PROPSHEETPAGEW*)lparam)->lParam;
|
||||
|
||||
/* Add joysticks with FF support to the combobox and get the effects */
|
||||
for (i = 0; i < data->num_joysticks; i++)
|
||||
{
|
||||
struct Joystick *joy = &data->joysticks[i];
|
||||
|
||||
if (joy->forcefeedback)
|
||||
{
|
||||
SendDlgItemMessageW(hwnd, IDC_FFSELECTCOMBO, CB_ADDSTRING, 0, (LPARAM) joy->instance.tszInstanceName);
|
||||
SendDlgItemMessageW(hwnd, IDC_FFSELECTCOMBO, CB_SETITEMDATA, cur, i);
|
||||
|
||||
cur++;
|
||||
|
||||
/* Count device effects and then store them */
|
||||
joy->num_effects = 0;
|
||||
joy->effects = NULL;
|
||||
IDirectInputDevice8_EnumEffects(joy->device, ff_effects_callback, (void *) joy, 0);
|
||||
joy->effects = HeapAlloc(GetProcessHeap(), 0, sizeof(struct Effect) * joy->num_effects);
|
||||
|
||||
joy->cur_effect = 0;
|
||||
IDirectInputDevice8_EnumEffects(joy->device, ff_effects_callback, (void*) joy, 0);
|
||||
FIXME("%d --- %d\n", joy->num_effects, joy->cur_effect);
|
||||
joy->num_effects = joy->cur_effect;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
case WM_COMMAND:
|
||||
switch(wparam)
|
||||
{
|
||||
case MAKEWPARAM(IDC_FFSELECTCOMBO, CBN_SELCHANGE):
|
||||
ff_handle_joychange(hwnd, data);
|
||||
|
||||
SendDlgItemMessageW(hwnd, IDC_FFEFFECTLIST, LB_SETCURSEL, 0, 0);
|
||||
ff_handle_effectchange(hwnd, &data->joysticks[data->chosen_joystick]);
|
||||
break;
|
||||
|
||||
case MAKEWPARAM(IDC_FFEFFECTLIST, LBN_SELCHANGE):
|
||||
ff_handle_effectchange(hwnd, &data->joysticks[data->chosen_joystick]);
|
||||
break;
|
||||
}
|
||||
return TRUE;
|
||||
|
||||
case WM_NOTIFY:
|
||||
switch(((LPNMHDR)lparam)->code)
|
||||
{
|
||||
case PSN_SETACTIVE:
|
||||
if (data->num_ff > 0)
|
||||
{
|
||||
DWORD tid;
|
||||
|
||||
data->stop = FALSE;
|
||||
/* Set the first joystick as default */
|
||||
SendDlgItemMessageW(hwnd, IDC_FFSELECTCOMBO, CB_SETCURSEL, 0, 0);
|
||||
ff_handle_joychange(hwnd, data);
|
||||
|
||||
SendDlgItemMessageW(hwnd, IDC_FFEFFECTLIST, LB_SETCURSEL, 0, 0);
|
||||
ff_handle_effectchange(hwnd, &data->joysticks[data->chosen_joystick]);
|
||||
|
||||
thread = CreateThread(NULL, 0, ff_input_thread, (void*) data, 0, &tid);
|
||||
}
|
||||
break;
|
||||
|
||||
case PSN_RESET: /* intentional fall-through */
|
||||
case PSN_KILLACTIVE:
|
||||
/* Stop ff thread */
|
||||
data->stop = TRUE;
|
||||
MsgWaitForMultipleObjects(1, &thread, FALSE, INFINITE, 0);
|
||||
CloseHandle(thread);
|
||||
break;
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
/******************************************************************************
|
||||
* propsheet_callback [internal]
|
||||
*/
|
||||
|
@ -491,7 +752,7 @@ static void display_cpl_sheets(HWND parent, struct JoystickData *data)
|
|||
psp[id].dwSize = sizeof (PROPSHEETPAGEW);
|
||||
psp[id].hInstance = hcpl;
|
||||
psp[id].u.pszTemplate = MAKEINTRESOURCEW(IDD_FORCEFEEDBACK);
|
||||
psp[id].pfnDlgProc = NULL;
|
||||
psp[id].pfnDlgProc = ff_dlgproc;
|
||||
psp[id].lParam = (INT_PTR) data;
|
||||
id++;
|
||||
|
||||
|
|
8
po/ar.po
8
po/ar.po
|
@ -3428,6 +3428,14 @@ msgstr ""
|
|||
msgid "Test Force Feedback"
|
||||
msgstr ""
|
||||
|
||||
#: joy.rc:63
|
||||
msgid "Available Effects"
|
||||
msgstr ""
|
||||
|
||||
#: joy.rc:65
|
||||
msgid "Press any button in the controller to activate the chosen effect."
|
||||
msgstr ""
|
||||
|
||||
#: joy.rc:28
|
||||
#, fuzzy
|
||||
msgid "Game Controllers"
|
||||
|
|
9
po/bg.po
9
po/bg.po
|
@ -3454,6 +3454,15 @@ msgstr ""
|
|||
msgid "Test Force Feedback"
|
||||
msgstr ""
|
||||
|
||||
#: joy.rc:63
|
||||
#, fuzzy
|
||||
msgid "Available Effects"
|
||||
msgstr "На&пред"
|
||||
|
||||
#: joy.rc:65
|
||||
msgid "Press any button in the controller to activate the chosen effect."
|
||||
msgstr ""
|
||||
|
||||
#: joy.rc:28
|
||||
#, fuzzy
|
||||
msgid "Game Controllers"
|
||||
|
|
10
po/ca.po
10
po/ca.po
|
@ -3503,6 +3503,16 @@ msgstr ""
|
|||
msgid "Test Force Feedback"
|
||||
msgstr ""
|
||||
|
||||
#: joy.rc:63
|
||||
#, fuzzy
|
||||
#| msgid "Available formats"
|
||||
msgid "Available Effects"
|
||||
msgstr "Formats disponibles"
|
||||
|
||||
#: joy.rc:65
|
||||
msgid "Press any button in the controller to activate the chosen effect."
|
||||
msgstr ""
|
||||
|
||||
#: joy.rc:28
|
||||
#, fuzzy
|
||||
#| msgid "Create Control"
|
||||
|
|
10
po/cs.po
10
po/cs.po
|
@ -3502,6 +3502,16 @@ msgstr ""
|
|||
msgid "Test Force Feedback"
|
||||
msgstr ""
|
||||
|
||||
#: joy.rc:63
|
||||
#, fuzzy
|
||||
#| msgid "Available formats"
|
||||
msgid "Available Effects"
|
||||
msgstr "Dostupné formáty"
|
||||
|
||||
#: joy.rc:65
|
||||
msgid "Press any button in the controller to activate the chosen effect."
|
||||
msgstr ""
|
||||
|
||||
#: joy.rc:28
|
||||
#, fuzzy
|
||||
#| msgid "Create Control"
|
||||
|
|
10
po/da.po
10
po/da.po
|
@ -3474,6 +3474,16 @@ msgstr ""
|
|||
msgid "Test Force Feedback"
|
||||
msgstr ""
|
||||
|
||||
#: joy.rc:63
|
||||
#, fuzzy
|
||||
#| msgid "Available formats"
|
||||
msgid "Available Effects"
|
||||
msgstr "Tilgængelige formater"
|
||||
|
||||
#: joy.rc:65
|
||||
msgid "Press any button in the controller to activate the chosen effect."
|
||||
msgstr ""
|
||||
|
||||
#: joy.rc:28
|
||||
#, fuzzy
|
||||
#| msgid "Create Control"
|
||||
|
|
10
po/de.po
10
po/de.po
|
@ -3461,6 +3461,16 @@ msgstr "Tasten"
|
|||
msgid "Test Force Feedback"
|
||||
msgstr "Force Feedback testen"
|
||||
|
||||
#: joy.rc:63
|
||||
#, fuzzy
|
||||
#| msgid "Available formats"
|
||||
msgid "Available Effects"
|
||||
msgstr "Verfügbare Formate"
|
||||
|
||||
#: joy.rc:65
|
||||
msgid "Press any button in the controller to activate the chosen effect."
|
||||
msgstr ""
|
||||
|
||||
#: joy.rc:28
|
||||
msgid "Game Controllers"
|
||||
msgstr "Gamecontroller"
|
||||
|
|
10
po/el.po
10
po/el.po
|
@ -3388,6 +3388,16 @@ msgstr ""
|
|||
msgid "Test Force Feedback"
|
||||
msgstr ""
|
||||
|
||||
#: joy.rc:63
|
||||
#, fuzzy
|
||||
#| msgid "A&vailable buttons:"
|
||||
msgid "Available Effects"
|
||||
msgstr "Δ&ιαθέσιμα κουμπιά:"
|
||||
|
||||
#: joy.rc:65
|
||||
msgid "Press any button in the controller to activate the chosen effect."
|
||||
msgstr ""
|
||||
|
||||
#: joy.rc:28
|
||||
#, fuzzy
|
||||
msgid "Game Controllers"
|
||||
|
|
8
po/en.po
8
po/en.po
|
@ -3452,6 +3452,14 @@ msgstr "Buttons"
|
|||
msgid "Test Force Feedback"
|
||||
msgstr "Test Force Feedback"
|
||||
|
||||
#: joy.rc:63
|
||||
msgid "Available Effects"
|
||||
msgstr "Available Effects"
|
||||
|
||||
#: joy.rc:65
|
||||
msgid "Press any button in the controller to activate the chosen effect."
|
||||
msgstr "Press any button in the controller to activate the chosen effect."
|
||||
|
||||
#: joy.rc:28
|
||||
msgid "Game Controllers"
|
||||
msgstr "Game Controllers"
|
||||
|
|
|
@ -3454,6 +3454,14 @@ msgstr "Buttons"
|
|||
msgid "Test Force Feedback"
|
||||
msgstr "Test Force Feedback"
|
||||
|
||||
#: joy.rc:63
|
||||
msgid "Available Effects"
|
||||
msgstr "Available Effects"
|
||||
|
||||
#: joy.rc:65
|
||||
msgid "Press any button in the controller to activate the chosen effect."
|
||||
msgstr "Press any button in the controller to activate the chosen effect."
|
||||
|
||||
#: joy.rc:28
|
||||
msgid "Game Controllers"
|
||||
msgstr "Game Controllers"
|
||||
|
|
10
po/eo.po
10
po/eo.po
|
@ -3369,6 +3369,16 @@ msgstr ""
|
|||
msgid "Test Force Feedback"
|
||||
msgstr ""
|
||||
|
||||
#: joy.rc:63
|
||||
#, fuzzy
|
||||
#| msgid "Available formats"
|
||||
msgid "Available Effects"
|
||||
msgstr "Disponeblaj formatoj"
|
||||
|
||||
#: joy.rc:65
|
||||
msgid "Press any button in the controller to activate the chosen effect."
|
||||
msgstr ""
|
||||
|
||||
#: joy.rc:28
|
||||
#, fuzzy
|
||||
#| msgid "Create Control"
|
||||
|
|
10
po/es.po
10
po/es.po
|
@ -3488,6 +3488,16 @@ msgstr ""
|
|||
msgid "Test Force Feedback"
|
||||
msgstr ""
|
||||
|
||||
#: joy.rc:63
|
||||
#, fuzzy
|
||||
#| msgid "Available formats"
|
||||
msgid "Available Effects"
|
||||
msgstr "Formatos disponibles"
|
||||
|
||||
#: joy.rc:65
|
||||
msgid "Press any button in the controller to activate the chosen effect."
|
||||
msgstr ""
|
||||
|
||||
#: joy.rc:28
|
||||
#, fuzzy
|
||||
#| msgid "Create Control"
|
||||
|
|
8
po/fa.po
8
po/fa.po
|
@ -3428,6 +3428,14 @@ msgstr ""
|
|||
msgid "Test Force Feedback"
|
||||
msgstr ""
|
||||
|
||||
#: joy.rc:63
|
||||
msgid "Available Effects"
|
||||
msgstr ""
|
||||
|
||||
#: joy.rc:65
|
||||
msgid "Press any button in the controller to activate the chosen effect."
|
||||
msgstr ""
|
||||
|
||||
#: joy.rc:28
|
||||
#, fuzzy
|
||||
msgid "Game Controllers"
|
||||
|
|
10
po/fi.po
10
po/fi.po
|
@ -3449,6 +3449,16 @@ msgstr "Painikkeet"
|
|||
msgid "Test Force Feedback"
|
||||
msgstr "Testaa voimapalautetta"
|
||||
|
||||
#: joy.rc:63
|
||||
#, fuzzy
|
||||
#| msgid "Available formats"
|
||||
msgid "Available Effects"
|
||||
msgstr "Mahdolliset muodot"
|
||||
|
||||
#: joy.rc:65
|
||||
msgid "Press any button in the controller to activate the chosen effect."
|
||||
msgstr ""
|
||||
|
||||
#: joy.rc:28
|
||||
msgid "Game Controllers"
|
||||
msgstr "Peliohjaimet"
|
||||
|
|
10
po/fr.po
10
po/fr.po
|
@ -3478,6 +3478,16 @@ msgstr "Boutons"
|
|||
msgid "Test Force Feedback"
|
||||
msgstr "Tester le retour de force"
|
||||
|
||||
#: joy.rc:63
|
||||
#, fuzzy
|
||||
#| msgid "Available formats"
|
||||
msgid "Available Effects"
|
||||
msgstr "Formats disponibles"
|
||||
|
||||
#: joy.rc:65
|
||||
msgid "Press any button in the controller to activate the chosen effect."
|
||||
msgstr ""
|
||||
|
||||
#: joy.rc:28
|
||||
msgid "Game Controllers"
|
||||
msgstr "Contrôleurs de jeu"
|
||||
|
|
10
po/he.po
10
po/he.po
|
@ -3456,6 +3456,16 @@ msgstr ""
|
|||
msgid "Test Force Feedback"
|
||||
msgstr ""
|
||||
|
||||
#: joy.rc:63
|
||||
#, fuzzy
|
||||
#| msgid "Available formats"
|
||||
msgid "Available Effects"
|
||||
msgstr "התבניות הזמינות"
|
||||
|
||||
#: joy.rc:65
|
||||
msgid "Press any button in the controller to activate the chosen effect."
|
||||
msgstr ""
|
||||
|
||||
#: joy.rc:28
|
||||
#, fuzzy
|
||||
#| msgid "Create Control"
|
||||
|
|
8
po/hi.po
8
po/hi.po
|
@ -3366,6 +3366,14 @@ msgstr ""
|
|||
msgid "Test Force Feedback"
|
||||
msgstr ""
|
||||
|
||||
#: joy.rc:63
|
||||
msgid "Available Effects"
|
||||
msgstr ""
|
||||
|
||||
#: joy.rc:65
|
||||
msgid "Press any button in the controller to activate the chosen effect."
|
||||
msgstr ""
|
||||
|
||||
#: joy.rc:28
|
||||
msgid "Game Controllers"
|
||||
msgstr ""
|
||||
|
|
10
po/hu.po
10
po/hu.po
|
@ -3490,6 +3490,16 @@ msgstr ""
|
|||
msgid "Test Force Feedback"
|
||||
msgstr ""
|
||||
|
||||
#: joy.rc:63
|
||||
#, fuzzy
|
||||
#| msgid "Available formats"
|
||||
msgid "Available Effects"
|
||||
msgstr "Elérhető formátumok"
|
||||
|
||||
#: joy.rc:65
|
||||
msgid "Press any button in the controller to activate the chosen effect."
|
||||
msgstr ""
|
||||
|
||||
#: joy.rc:28
|
||||
#, fuzzy
|
||||
#| msgid "Create Control"
|
||||
|
|
10
po/it.po
10
po/it.po
|
@ -3503,6 +3503,16 @@ msgstr ""
|
|||
msgid "Test Force Feedback"
|
||||
msgstr ""
|
||||
|
||||
#: joy.rc:63
|
||||
#, fuzzy
|
||||
#| msgid "Available formats"
|
||||
msgid "Available Effects"
|
||||
msgstr "Formati disponibili"
|
||||
|
||||
#: joy.rc:65
|
||||
msgid "Press any button in the controller to activate the chosen effect."
|
||||
msgstr ""
|
||||
|
||||
#: joy.rc:28
|
||||
#, fuzzy
|
||||
#| msgid "Create Control"
|
||||
|
|
10
po/ja.po
10
po/ja.po
|
@ -3446,6 +3446,16 @@ msgstr ""
|
|||
msgid "Test Force Feedback"
|
||||
msgstr "フォース フィードバックのテスト"
|
||||
|
||||
#: joy.rc:63
|
||||
#, fuzzy
|
||||
#| msgid "Available formats"
|
||||
msgid "Available Effects"
|
||||
msgstr "利用できる形式"
|
||||
|
||||
#: joy.rc:65
|
||||
msgid "Press any button in the controller to activate the chosen effect."
|
||||
msgstr ""
|
||||
|
||||
#: joy.rc:28
|
||||
msgid "Game Controllers"
|
||||
msgstr "ゲーム コントローラ"
|
||||
|
|
10
po/ko.po
10
po/ko.po
|
@ -3444,6 +3444,16 @@ msgstr "버튼"
|
|||
msgid "Test Force Feedback"
|
||||
msgstr "강제 피드백 시험"
|
||||
|
||||
#: joy.rc:63
|
||||
#, fuzzy
|
||||
#| msgid "Available formats"
|
||||
msgid "Available Effects"
|
||||
msgstr "가능한 형식"
|
||||
|
||||
#: joy.rc:65
|
||||
msgid "Press any button in the controller to activate the chosen effect."
|
||||
msgstr ""
|
||||
|
||||
#: joy.rc:28
|
||||
msgid "Game Controllers"
|
||||
msgstr "게임 컨트롤러"
|
||||
|
|
10
po/lt.po
10
po/lt.po
|
@ -3462,6 +3462,16 @@ msgstr "Mygtukai"
|
|||
msgid "Test Force Feedback"
|
||||
msgstr "Testuoti „Force Feedback“"
|
||||
|
||||
#: joy.rc:63
|
||||
#, fuzzy
|
||||
#| msgid "Available formats"
|
||||
msgid "Available Effects"
|
||||
msgstr "Galimi formatai"
|
||||
|
||||
#: joy.rc:65
|
||||
msgid "Press any button in the controller to activate the chosen effect."
|
||||
msgstr ""
|
||||
|
||||
#: joy.rc:28
|
||||
msgid "Game Controllers"
|
||||
msgstr "Žaidimų valdikliai"
|
||||
|
|
8
po/ml.po
8
po/ml.po
|
@ -3366,6 +3366,14 @@ msgstr ""
|
|||
msgid "Test Force Feedback"
|
||||
msgstr ""
|
||||
|
||||
#: joy.rc:63
|
||||
msgid "Available Effects"
|
||||
msgstr ""
|
||||
|
||||
#: joy.rc:65
|
||||
msgid "Press any button in the controller to activate the chosen effect."
|
||||
msgstr ""
|
||||
|
||||
#: joy.rc:28
|
||||
msgid "Game Controllers"
|
||||
msgstr ""
|
||||
|
|
10
po/nb_NO.po
10
po/nb_NO.po
|
@ -3600,6 +3600,16 @@ msgstr ""
|
|||
msgid "Test Force Feedback"
|
||||
msgstr ""
|
||||
|
||||
#: joy.rc:63
|
||||
#, fuzzy
|
||||
#| msgid "Available formats"
|
||||
msgid "Available Effects"
|
||||
msgstr "Tilgjengelige formater"
|
||||
|
||||
#: joy.rc:65
|
||||
msgid "Press any button in the controller to activate the chosen effect."
|
||||
msgstr ""
|
||||
|
||||
#: joy.rc:28
|
||||
#, fuzzy
|
||||
#| msgid "Create Control"
|
||||
|
|
10
po/nl.po
10
po/nl.po
|
@ -3517,6 +3517,16 @@ msgstr ""
|
|||
msgid "Test Force Feedback"
|
||||
msgstr ""
|
||||
|
||||
#: joy.rc:63
|
||||
#, fuzzy
|
||||
#| msgid "Available formats"
|
||||
msgid "Available Effects"
|
||||
msgstr "Beschikbare formaten"
|
||||
|
||||
#: joy.rc:65
|
||||
msgid "Press any button in the controller to activate the chosen effect."
|
||||
msgstr ""
|
||||
|
||||
#: joy.rc:28
|
||||
#, fuzzy
|
||||
#| msgid "Create Control"
|
||||
|
|
8
po/or.po
8
po/or.po
|
@ -3366,6 +3366,14 @@ msgstr ""
|
|||
msgid "Test Force Feedback"
|
||||
msgstr ""
|
||||
|
||||
#: joy.rc:63
|
||||
msgid "Available Effects"
|
||||
msgstr ""
|
||||
|
||||
#: joy.rc:65
|
||||
msgid "Press any button in the controller to activate the chosen effect."
|
||||
msgstr ""
|
||||
|
||||
#: joy.rc:28
|
||||
msgid "Game Controllers"
|
||||
msgstr ""
|
||||
|
|
8
po/pa.po
8
po/pa.po
|
@ -3366,6 +3366,14 @@ msgstr ""
|
|||
msgid "Test Force Feedback"
|
||||
msgstr ""
|
||||
|
||||
#: joy.rc:63
|
||||
msgid "Available Effects"
|
||||
msgstr ""
|
||||
|
||||
#: joy.rc:65
|
||||
msgid "Press any button in the controller to activate the chosen effect."
|
||||
msgstr ""
|
||||
|
||||
#: joy.rc:28
|
||||
msgid "Game Controllers"
|
||||
msgstr ""
|
||||
|
|
10
po/pl.po
10
po/pl.po
|
@ -3474,6 +3474,16 @@ msgstr "Przyciski"
|
|||
msgid "Test Force Feedback"
|
||||
msgstr "Testuj odczucie siły zwrotnej"
|
||||
|
||||
#: joy.rc:63
|
||||
#, fuzzy
|
||||
#| msgid "Available formats"
|
||||
msgid "Available Effects"
|
||||
msgstr "Dostępne formaty"
|
||||
|
||||
#: joy.rc:65
|
||||
msgid "Press any button in the controller to activate the chosen effect."
|
||||
msgstr ""
|
||||
|
||||
#: joy.rc:28
|
||||
msgid "Game Controllers"
|
||||
msgstr "Kontrolery gier"
|
||||
|
|
10
po/pt_BR.po
10
po/pt_BR.po
|
@ -3501,6 +3501,16 @@ msgstr ""
|
|||
msgid "Test Force Feedback"
|
||||
msgstr ""
|
||||
|
||||
#: joy.rc:63
|
||||
#, fuzzy
|
||||
#| msgid "Available formats"
|
||||
msgid "Available Effects"
|
||||
msgstr "Formatos Disponíveis"
|
||||
|
||||
#: joy.rc:65
|
||||
msgid "Press any button in the controller to activate the chosen effect."
|
||||
msgstr ""
|
||||
|
||||
#: joy.rc:28
|
||||
#, fuzzy
|
||||
#| msgid "Create Control"
|
||||
|
|
10
po/pt_PT.po
10
po/pt_PT.po
|
@ -3500,6 +3500,16 @@ msgstr ""
|
|||
msgid "Test Force Feedback"
|
||||
msgstr ""
|
||||
|
||||
#: joy.rc:63
|
||||
#, fuzzy
|
||||
#| msgid "Available formats"
|
||||
msgid "Available Effects"
|
||||
msgstr "Formatos Disponíveis"
|
||||
|
||||
#: joy.rc:65
|
||||
msgid "Press any button in the controller to activate the chosen effect."
|
||||
msgstr ""
|
||||
|
||||
#: joy.rc:28
|
||||
#, fuzzy
|
||||
#| msgid "Create Control"
|
||||
|
|
8
po/rm.po
8
po/rm.po
|
@ -3394,6 +3394,14 @@ msgstr ""
|
|||
msgid "Test Force Feedback"
|
||||
msgstr ""
|
||||
|
||||
#: joy.rc:63
|
||||
msgid "Available Effects"
|
||||
msgstr ""
|
||||
|
||||
#: joy.rc:65
|
||||
msgid "Press any button in the controller to activate the chosen effect."
|
||||
msgstr ""
|
||||
|
||||
#: joy.rc:28
|
||||
msgid "Game Controllers"
|
||||
msgstr ""
|
||||
|
|
10
po/ro.po
10
po/ro.po
|
@ -3460,6 +3460,16 @@ msgstr ""
|
|||
msgid "Test Force Feedback"
|
||||
msgstr ""
|
||||
|
||||
#: joy.rc:63
|
||||
#, fuzzy
|
||||
#| msgid "Available formats"
|
||||
msgid "Available Effects"
|
||||
msgstr "Formate disponibile"
|
||||
|
||||
#: joy.rc:65
|
||||
msgid "Press any button in the controller to activate the chosen effect."
|
||||
msgstr ""
|
||||
|
||||
#: joy.rc:28
|
||||
#, fuzzy
|
||||
#| msgid "Create Control"
|
||||
|
|
10
po/ru.po
10
po/ru.po
|
@ -3467,6 +3467,16 @@ msgstr ""
|
|||
msgid "Test Force Feedback"
|
||||
msgstr ""
|
||||
|
||||
#: joy.rc:63
|
||||
#, fuzzy
|
||||
#| msgid "Available formats"
|
||||
msgid "Available Effects"
|
||||
msgstr "Доступные форматы"
|
||||
|
||||
#: joy.rc:65
|
||||
msgid "Press any button in the controller to activate the chosen effect."
|
||||
msgstr ""
|
||||
|
||||
#: joy.rc:28
|
||||
#, fuzzy
|
||||
#| msgid "Create Control"
|
||||
|
|
10
po/sk.po
10
po/sk.po
|
@ -3402,6 +3402,16 @@ msgstr ""
|
|||
msgid "Test Force Feedback"
|
||||
msgstr ""
|
||||
|
||||
#: joy.rc:63
|
||||
#, fuzzy
|
||||
#| msgid "Available formats"
|
||||
msgid "Available Effects"
|
||||
msgstr "Dostupné formáty"
|
||||
|
||||
#: joy.rc:65
|
||||
msgid "Press any button in the controller to activate the chosen effect."
|
||||
msgstr ""
|
||||
|
||||
#: joy.rc:28
|
||||
msgid "Game Controllers"
|
||||
msgstr ""
|
||||
|
|
10
po/sl.po
10
po/sl.po
|
@ -3492,6 +3492,16 @@ msgstr ""
|
|||
msgid "Test Force Feedback"
|
||||
msgstr ""
|
||||
|
||||
#: joy.rc:63
|
||||
#, fuzzy
|
||||
#| msgid "Available formats"
|
||||
msgid "Available Effects"
|
||||
msgstr "Razpoložljive oblike"
|
||||
|
||||
#: joy.rc:65
|
||||
msgid "Press any button in the controller to activate the chosen effect."
|
||||
msgstr ""
|
||||
|
||||
#: joy.rc:28
|
||||
#, fuzzy
|
||||
#| msgid "Create Control"
|
||||
|
|
|
@ -3485,6 +3485,15 @@ msgstr ""
|
|||
msgid "Test Force Feedback"
|
||||
msgstr ""
|
||||
|
||||
#: joy.rc:63
|
||||
#, fuzzy
|
||||
msgid "Available Effects"
|
||||
msgstr "Н&апред"
|
||||
|
||||
#: joy.rc:65
|
||||
msgid "Press any button in the controller to activate the chosen effect."
|
||||
msgstr ""
|
||||
|
||||
#: joy.rc:28
|
||||
#, fuzzy
|
||||
#| msgid "Create Control"
|
||||
|
|
|
@ -3563,6 +3563,15 @@ msgstr ""
|
|||
msgid "Test Force Feedback"
|
||||
msgstr ""
|
||||
|
||||
#: joy.rc:63
|
||||
#, fuzzy
|
||||
msgid "Available Effects"
|
||||
msgstr "N&apred"
|
||||
|
||||
#: joy.rc:65
|
||||
msgid "Press any button in the controller to activate the chosen effect."
|
||||
msgstr ""
|
||||
|
||||
#: joy.rc:28
|
||||
#, fuzzy
|
||||
#| msgid "Create Control"
|
||||
|
|
10
po/sv.po
10
po/sv.po
|
@ -3444,6 +3444,16 @@ msgstr "Knappar"
|
|||
msgid "Test Force Feedback"
|
||||
msgstr "Testa kraftåterkoppling"
|
||||
|
||||
#: joy.rc:63
|
||||
#, fuzzy
|
||||
#| msgid "Available formats"
|
||||
msgid "Available Effects"
|
||||
msgstr "Tillgängliga format"
|
||||
|
||||
#: joy.rc:65
|
||||
msgid "Press any button in the controller to activate the chosen effect."
|
||||
msgstr ""
|
||||
|
||||
#: joy.rc:28
|
||||
msgid "Game Controllers"
|
||||
msgstr "Spelkontroller"
|
||||
|
|
8
po/te.po
8
po/te.po
|
@ -3366,6 +3366,14 @@ msgstr ""
|
|||
msgid "Test Force Feedback"
|
||||
msgstr ""
|
||||
|
||||
#: joy.rc:63
|
||||
msgid "Available Effects"
|
||||
msgstr ""
|
||||
|
||||
#: joy.rc:65
|
||||
msgid "Press any button in the controller to activate the chosen effect."
|
||||
msgstr ""
|
||||
|
||||
#: joy.rc:28
|
||||
msgid "Game Controllers"
|
||||
msgstr ""
|
||||
|
|
10
po/th.po
10
po/th.po
|
@ -3405,6 +3405,16 @@ msgstr ""
|
|||
msgid "Test Force Feedback"
|
||||
msgstr ""
|
||||
|
||||
#: joy.rc:63
|
||||
#, fuzzy
|
||||
#| msgid "A&vailable buttons:"
|
||||
msgid "Available Effects"
|
||||
msgstr "ทีเลือกได้:"
|
||||
|
||||
#: joy.rc:65
|
||||
msgid "Press any button in the controller to activate the chosen effect."
|
||||
msgstr ""
|
||||
|
||||
#: joy.rc:28
|
||||
#, fuzzy
|
||||
msgid "Game Controllers"
|
||||
|
|
10
po/tr.po
10
po/tr.po
|
@ -3359,6 +3359,16 @@ msgstr ""
|
|||
msgid "Test Force Feedback"
|
||||
msgstr ""
|
||||
|
||||
#: joy.rc:63
|
||||
#, fuzzy
|
||||
#| msgid "Available formats"
|
||||
msgid "Available Effects"
|
||||
msgstr "Mevcut biçimler"
|
||||
|
||||
#: joy.rc:65
|
||||
msgid "Press any button in the controller to activate the chosen effect."
|
||||
msgstr ""
|
||||
|
||||
#: joy.rc:28
|
||||
#, fuzzy
|
||||
#| msgid "Create Control"
|
||||
|
|
10
po/uk.po
10
po/uk.po
|
@ -3481,6 +3481,16 @@ msgstr ""
|
|||
msgid "Test Force Feedback"
|
||||
msgstr ""
|
||||
|
||||
#: joy.rc:63
|
||||
#, fuzzy
|
||||
#| msgid "Available formats"
|
||||
msgid "Available Effects"
|
||||
msgstr "Доступні формати"
|
||||
|
||||
#: joy.rc:65
|
||||
msgid "Press any button in the controller to activate the chosen effect."
|
||||
msgstr ""
|
||||
|
||||
#: joy.rc:28
|
||||
#, fuzzy
|
||||
#| msgid "Create Control"
|
||||
|
|
8
po/wa.po
8
po/wa.po
|
@ -3413,6 +3413,14 @@ msgstr ""
|
|||
msgid "Test Force Feedback"
|
||||
msgstr ""
|
||||
|
||||
#: joy.rc:63
|
||||
msgid "Available Effects"
|
||||
msgstr ""
|
||||
|
||||
#: joy.rc:65
|
||||
msgid "Press any button in the controller to activate the chosen effect."
|
||||
msgstr ""
|
||||
|
||||
#: joy.rc:28
|
||||
msgid "Game Controllers"
|
||||
msgstr ""
|
||||
|
|
|
@ -3328,6 +3328,14 @@ msgstr ""
|
|||
msgid "Test Force Feedback"
|
||||
msgstr ""
|
||||
|
||||
#: joy.rc:63
|
||||
msgid "Available Effects"
|
||||
msgstr ""
|
||||
|
||||
#: joy.rc:65
|
||||
msgid "Press any button in the controller to activate the chosen effect."
|
||||
msgstr ""
|
||||
|
||||
#: joy.rc:28
|
||||
msgid "Game Controllers"
|
||||
msgstr ""
|
||||
|
|
10
po/zh_CN.po
10
po/zh_CN.po
|
@ -3379,6 +3379,16 @@ msgstr ""
|
|||
msgid "Test Force Feedback"
|
||||
msgstr ""
|
||||
|
||||
#: joy.rc:63
|
||||
#, fuzzy
|
||||
#| msgid "Available formats"
|
||||
msgid "Available Effects"
|
||||
msgstr "可选格式"
|
||||
|
||||
#: joy.rc:65
|
||||
msgid "Press any button in the controller to activate the chosen effect."
|
||||
msgstr ""
|
||||
|
||||
#: joy.rc:28
|
||||
#, fuzzy
|
||||
#| msgid "Create Control"
|
||||
|
|
10
po/zh_TW.po
10
po/zh_TW.po
|
@ -3408,6 +3408,16 @@ msgstr "按鈕"
|
|||
msgid "Test Force Feedback"
|
||||
msgstr "測試應力回饋"
|
||||
|
||||
#: joy.rc:63
|
||||
#, fuzzy
|
||||
#| msgid "Available formats"
|
||||
msgid "Available Effects"
|
||||
msgstr "可用格式"
|
||||
|
||||
#: joy.rc:65
|
||||
msgid "Press any button in the controller to activate the chosen effect."
|
||||
msgstr ""
|
||||
|
||||
#: joy.rc:28
|
||||
msgid "Game Controllers"
|
||||
msgstr "遊戲控制器"
|
||||
|
|
Loading…
Reference in New Issue