LilyPad: Add Quick Setup

Adds quick setup that allows for quickly setting up all the default pad
buttons without having to click on each one separately.

Hides special inputs(inputs that aren't available on a PS(2) controller) by default.
This commit is contained in:
FlatOutPS2 2017-02-09 20:37:49 +01:00 committed by Jonathan Li
parent 3075ec2203
commit 2ea078beb5
5 changed files with 369 additions and 284 deletions

View File

@ -75,6 +75,7 @@ u8 ps2e = 0;
HWND hWndProp = 0;
int selected = 0;
bool quickSetup = false;
// Older versions of PCSX2 don't always create the ini dir on startup, so LilyPad does it
// for it. But if PCSX2 sets the ini path with a call to setSettingsDir, then it means
@ -286,13 +287,10 @@ wchar_t *GetCommandStringW(u8 command, int port, int slot)
return temp;
}
/* Get text from the buttons. */
if (command >= 0x0C && command <= 0x2A) {
if (command >= 0x0F && command <= 0x2D) {
HWND hWnd = GetDlgItem(hWnds[port][slot][padtype], 0x10F0 + command);
if (!hWnd) {
wchar_t *strings[] = {
L"Lock Buttons", // 0x0C (12)
L"Lock Input", // 0x0D (13)
L"Lock Direction", // 0x0E (14)
L"Mouse", // 0x0F (15)
L"Select", // 0x10 (16)
L"L3", // 0x11 (17)
@ -320,9 +318,12 @@ wchar_t *GetCommandStringW(u8 command, int port, int slot)
L"R-Stick Left", // 0x27 (39)
L"Analog", // 0x28 (40)
L"Excluded Input", // 0x29 (41)
L"Turbo", // 0x2A (42)
L"Lock Buttons", // 0x2A (42)
L"Lock Input", // 0x2B (43)
L"Lock Direction", // 0x2C (44)
L"Turbo", // 0x2D (45)
};
return strings[command - 0xC];
return strings[command - 0xF];
}
int res = GetWindowTextW(hWnd, temp, 20);
if ((unsigned int)res - 1 <= 18)
@ -395,15 +396,12 @@ void SelChanged(int port, int slot)
int ffbFound = 0;
ForceFeedbackBinding *ffb = 0;
Binding *b = 0;
if (config.bind && !config.configureOnBind) {
i = 0;
config.bind = false;
}
if (i >= 1) {
int index = -1;
int flipped = 0;
while (1) {
index = ListView_GetNextItem(hWndList, index, LVNI_SELECTED);
if (!(config.bind && (!config.configureOnBind || quickSetup)))
index = ListView_GetNextItem(hWndList, index, LVNI_SELECTED);
if (index < 0)
break;
LVITEMW item;
@ -490,12 +488,19 @@ void SelChanged(int port, int slot)
}
}
}
config.bind = false;
for (i = IDC_DPAD; i <= IDC_FACE_ANALOG; i++) {
// Input & Special Bindings:
for (i = IDC_DPAD; i <= ID_SPECIAL_INPUTS; i++) {
hWndTemp = GetDlgItem(hWnd, i);
if (hWndTemp)
ShowWindow(hWndTemp, !ffb && !b);
if (hWndTemp) {
if (i >= ID_EXCLUDE && i <= ID_TURBO_KEY)
ShowWindow(hWndTemp, !ffb && !b && config.specialInputs[port][slot]);
else
ShowWindow(hWndTemp, !ffb && !b);
}
}
// Input configuration:
for (i = IDC_SLIDER_SENSITIVITY; i <= IDC_AXIS_SKIP_DEADZONE; i++) {
hWndTemp = GetDlgItem(hWnd, i);
if (hWndTemp)
@ -505,6 +510,7 @@ void SelChanged(int port, int slot)
if (i == IDC_AXIS_SKIP_DEADZONE && skipDeadZone <= deadZone)
ShowWindow(hWndTemp, 0);
}
// Pad Force Feedback configuration:
for (i = ID_TEST; i <= IDC_FF_AXIS8_SCALE; i++) {
hWndTemp = GetDlgItem(hWnd, i);
if (hWndTemp) {
@ -1500,6 +1506,10 @@ void EndBinding(HWND hWnd)
}
selected = 0;
quickSetup = false;
SetWindowTextW(GetDlgItem(hWnd, ID_QUICK_SETUP), L"Quick Setup");
SetWindowTextW(GetDlgItem(hWnd, IDC_QUICK_SETUP_TEXT), L"");
dm->ReleaseInput();
ClearKeyQueue();
hWndButtonProc.Release();
@ -1608,9 +1618,9 @@ INT_PTR CALLBACK DialogProc(HWND hWnd, unsigned int msg, WPARAM wParam, LPARAM l
InitInfo info = {selected == 0x7F, 1, hWndProp, &hWndButtonProc};
Device *dev = dm->GetActiveDevice(&info, &uid, &index, &value);
int selectedDevice = config.deviceSelect[port][slot];
static unsigned int prev_uid = !uid;
if (dev == nullptr || (selectedDevice != -1 && dm->devices[selectedDevice] != dev))
if (dev == nullptr || (quickSetup && (uid == prev_uid || uid & UID_AXIS)))
return 0;
//Check the bindings for an excluded input, and ignore it if found.
@ -1626,7 +1636,8 @@ INT_PTR CALLBACK DialogProc(HWND hWnd, unsigned int msg, WPARAM wParam, LPARAM l
int command = selected;
// Good idea to do this first, as BindCommand modifies the ListView, which will
// call it anyways, which is a bit funky.
EndBinding(hWnd);
if (!quickSetup)
EndBinding(hWnd);
UnselectAll(hWndList);
int index = -1;
if (command < 0x30) {
@ -1638,6 +1649,33 @@ INT_PTR CALLBACK DialogProc(HWND hWnd, unsigned int msg, WPARAM wParam, LPARAM l
ListView_EnsureVisible(hWndList, index, 0);
config.bind = true;
ListView_SetColumnWidth(hWndList, 2, LVSCW_AUTOSIZE_USEHEADER);
if (quickSetup) {
HWND hWndS = GetDlgItem(hWnds[port][slot][padtype], selected + 0x10F0);
for (selected++; selected <= (ID_ANALOG - (ID_SELECT - 0x10)); selected++) {
HWND hWndS = GetDlgItem(hWnds[port][slot][padtype], selected + 0x10F0);
if (hWndS) {
break;
}
}
if (!hWndS || selected > (ID_ANALOG - (ID_SELECT - 0x10))) {
prev_uid = !uid;
EndBinding(hWnd);
SetWindowTextW(GetDlgItem(hWnd, IDC_QUICK_SETUP_TEXT), L"Finished");
} else {
wchar_t temp[60];
wsprintfW(temp, L"Please enter an input for %ws", GetCommandStringW(selected, port, slot));
SetWindowTextW(GetDlgItem(hWnd, IDC_QUICK_SETUP_TEXT), temp);
Sleep(80);
for (int i = 0; i < dm->numDevices; i++) {
if (dm->devices[i]->active && (dm->devices[i]->api != WM || dm->devices[i]->api != RAW))
dm->devices[i]->Deactivate();
}
prev_uid = uid;
}
} else {
SetWindowTextW(GetDlgItem(hWnd, IDC_QUICK_SETUP_TEXT), L"Succeeded");
}
}
}
break;
@ -1660,6 +1698,8 @@ INT_PTR CALLBACK DialogProc(HWND hWnd, unsigned int msg, WPARAM wParam, LPARAM l
EndBinding(hWnd);
return 0;
case PSN_SETACTIVE:
SetWindowTextW(GetDlgItem(hWnd, IDC_QUICK_SETUP_TEXT), L"");
ListView_SetColumnWidth(hWndList, 2, LVSCW_AUTOSIZE_USEHEADER);
return 0;
case PSN_APPLY:
SetWindowLongPtr(hWnd, DWLP_MSGRESULT, PSNRET_NOERROR);
@ -1758,14 +1798,29 @@ INT_PTR CALLBACK DialogProc(HWND hWnd, unsigned int msg, WPARAM wParam, LPARAM l
int selectedDev = SendMessage(GetDlgItem(hWnd, IDC_DEVICE_SELECT), CB_GETCURSEL, 0, 0);
config.deviceSelect[port][slot] = SendMessage(GetDlgItem(hWnd, IDC_DEVICE_SELECT), CB_GETITEMDATA, selectedDev, 0);
RefreshEnabledDevicesAndDisplay(1, hWndGeneral, 1);
if (selectedDev > 0) {
for (int i = 0; i < dm->numDevices; i++) {
Device *dev = dm->devices[config.deviceSelect[port][slot]];
if (dm->devices[i] != dev) {
dm->DisableDevice(i);
} else {
dm->EnableDevice(i);
}
}
}
ListView_SetColumnWidth(hWndList, 2, LVSCW_AUTOSIZE_USEHEADER);
} else if (HIWORD(wParam) == CBN_SELCHANGE && LOWORD(wParam) == IDC_FF_EFFECT) {
int typeIndex = SendMessage((HWND)lParam, CB_GETCURSEL, 0, 0);
if (typeIndex >= 0)
ChangeEffect(port, slot, 0, 0, (unsigned int *)&typeIndex);
} else if (HIWORD(wParam) == BN_CLICKED) {
EndBinding(hWnd);
int cmd = LOWORD(wParam);
if (quickSetup && cmd == ID_QUICK_SETUP) {
SetWindowTextW(GetDlgItem(hWnd, IDC_QUICK_SETUP_TEXT), L"Stopped");
EndBinding(hWnd);
return 0;
}
EndBinding(hWnd);
if (cmd == ID_BIG_MOTOR || cmd == ID_SMALL_MOTOR) {
int i = (int)SendMessage(GetDlgItem(hWnd, IDC_FORCEFEEDBACK), CB_GETCURSEL, 0, 0);
if (i >= 0) {
@ -1834,6 +1889,8 @@ INT_PTR CALLBACK DialogProc(HWND hWnd, unsigned int msg, WPARAM wParam, LPARAM l
}
} else if (cmd == ID_CONTROLS) {
UnselectAll(hWndList);
SetWindowTextW(GetDlgItem(hWnd, IDC_QUICK_SETUP_TEXT), L"");
ListView_SetColumnWidth(hWndList, 2, LVSCW_AUTOSIZE_USEHEADER);
} else if (cmd == ID_TEST) {
// Just in case...
if (selected)
@ -1860,13 +1917,48 @@ INT_PTR CALLBACK DialogProc(HWND hWnd, unsigned int msg, WPARAM wParam, LPARAM l
SetTimer(hWnd, 1, 3000, 0);
}
}
} else if (cmd >= ID_LOCK_BUTTONS && cmd <= ID_TURBO_KEY) { // || cmd == ID_FORCE_FEEDBACK) {
} else if (cmd >= IDC_DPAD && cmd <= ID_QUICK_SETUP) { // || cmd == ID_FORCE_FEEDBACK) {
// Messes up things, unfortunately.
// End binding on a bunch of notification messages, and
// this will send a bunch.
// UnselectAll(hWndList);
EndBinding(hWnd);
selected = cmd - (ID_SELECT - 0x10);
SetWindowTextW(GetDlgItem(hWnd, IDC_QUICK_SETUP_TEXT), L"");
RefreshEnabledDevices(0);
int selectedDev = SendMessage(GetDlgItem(hWnd, IDC_DEVICE_SELECT), CB_GETCURSEL, 0, 0);
if (selectedDev > 0) {
for (int i = 0; i < dm->numDevices; i++) {
Device *dev = dm->devices[config.deviceSelect[port][slot]];
if (dm->devices[i] != dev) {
dm->DisableDevice(i);
} else {
dm->EnableDevice(i);
}
}
}
if (cmd != ID_QUICK_SETUP) {
selected = cmd - (ID_SELECT - 0x10);
} else {
quickSetup = true;
HWND hWndS;
for (selected = 0x10; selected <= (ID_ANALOG - (ID_SELECT - 0x10)); selected++) {
hWndS = GetDlgItem(hWnds[port][slot][padtype], selected + 0x10F0);
if (hWndS) {
break;
}
}
if (hWndS) {
SetWindowTextW(GetDlgItem(hWnd, ID_QUICK_SETUP), L"Stop");
} else {
EndBinding(hWnd);
return 0;
}
}
wchar_t temp[60];
wsprintfW(temp, L"Please enter an input for %ws", GetCommandStringW(selected, port, slot));
SetWindowTextW(GetDlgItem(hWnd, IDC_QUICK_SETUP_TEXT), temp);
hWndButtonProc.SetWndHandle(GetDlgItem(hWnd, cmd));
hWndButtonProc.Eat(DoNothingWndProc, 0);
@ -1881,6 +1973,13 @@ INT_PTR CALLBACK DialogProc(HWND hWnd, unsigned int msg, WPARAM wParam, LPARAM l
SetTimer(hWnd, 1, 30, 0);
} else if (cmd == IDC_CONFIGURE_ON_BIND) {
config.configureOnBind = IsDlgButtonChecked(hWnd, IDC_CONFIGURE_ON_BIND);
} else if (cmd == ID_SPECIAL_INPUTS) {
config.specialInputs[port][slot] = !config.specialInputs[port][slot];
SetWindowTextW(GetDlgItem(hWnd, ID_SPECIAL_INPUTS), config.specialInputs[port][slot] ? L"Hide Special Inputs" : L"Show Special Inputs");
SetWindowPos(hWndList, NULL, 0, 0, 275, config.specialInputs[port][slot] ? 324 : 440, SWP_NOZORDER | SWP_NOMOVE);
ListView_SetColumnWidth(hWndList, 2, LVSCW_AUTOSIZE_USEHEADER);
UnselectAll(hWndList);
SelChanged(port, slot);
}
if (cmd == IDC_RAPID_FIRE) {
// Don't allow setting it back to indeterminate.

View File

@ -44,6 +44,8 @@ public:
u8 configureOnBind;
bool bind;
bool specialInputs[2][4];
union
{
struct

View File

@ -394,7 +394,7 @@ void ProcessButtonBinding(Binding *b, ButtonSum *sum, int value)
value = std::min((int)(((__int64)value * (FULLY_DOWN - (__int64)b->skipDeadZone)) / FULLY_DOWN) + b->skipDeadZone, FULLY_DOWN);
}
if (b->command == 0x2A) { // Turbo key
if (b->command == 0x2D) { // Turbo key
static unsigned int LastCheck = 0;
unsigned int t = timeGetTime();
if (t - LastCheck < 300)
@ -550,16 +550,16 @@ void Update(unsigned int port, unsigned int slot)
if (cmd > 0x0F && cmd != 0x28) {
ProcessButtonBinding(b, &s[port][slot], state);
} else if ((state >> 15) && !(dev->oldVirtualControlState[b->controlIndex] >> 15)) {
if (cmd == 0x0F) {
if (cmd == 0x0F) { // Mouse
miceEnabled = !miceEnabled;
UpdateEnabledDevices();
} else if (cmd == 0x0C) {
} else if (cmd == 0x2A) { // Lock Buttons
lockStateChanged[port][slot] |= LOCK_BUTTONS;
} else if (cmd == 0x0E) {
lockStateChanged[port][slot] |= LOCK_DIRECTION;
} else if (cmd == 0x0D) {
} else if (cmd == 0x2B) { // Lock Input
lockStateChanged[port][slot] |= LOCK_BOTH;
} else if (cmd == 0x28 && !pads[port][slot].modeLock && padtype == Dualshock2Pad) {
} else if (cmd == 0x2C) { // Lock Direction
lockStateChanged[port][slot] |= LOCK_DIRECTION;
} else if (cmd == 0x28 && !pads[port][slot].modeLock && padtype == Dualshock2Pad) { // Analog
if (pads[port][slot].mode == MODE_ANALOG)
pads[port][slot].mode = MODE_DIGITAL;
else if (pads[port][slot].mode == MODE_DIGITAL)
@ -602,25 +602,25 @@ void Update(unsigned int port, unsigned int slot)
int values[5];
int i;
for (i = 0; i < 5; i++) {
int id = oldIdList[i] - 0x1104;
int id = oldIdList[i] - ID_DPAD_UP;
values[i] = s[port][slot].buttons[id];
s[port][slot].buttons[id] = 0;
}
s[port][slot].buttons[ID_TRIANGLE - 0x1104] = values[1];
s[port][slot].buttons[ID_TRIANGLE - ID_DPAD_UP] = values[1];
for (i = 0; i < 5; i++) {
int id = idList[i] - 0x1104;
int id = idList[i] - ID_DPAD_UP;
s[port][slot].buttons[id] = values[i];
}
if (s[port][slot].buttons[14] <= 48 && s[port][slot].buttons[12] <= 48) {
for (int i = 0; i < 5; i++) {
unsigned int id = idList[i] - 0x1104;
unsigned int id = idList[i] - ID_DPAD_UP;
if (pads[port][slot].sum.buttons[id] < s[port][slot].buttons[id]) {
s[port][slot].buttons[id] = pads[port][slot].sum.buttons[id];
}
}
} else if (pads[port][slot].sum.buttons[14] <= 48 && pads[port][slot].sum.buttons[12] <= 48) {
for (int i = 0; i < 5; i++) {
unsigned int id = idList[i] - 0x1104;
unsigned int id = idList[i] - ID_DPAD_UP;
if (pads[port][slot].sum.buttons[id]) {
s[port][slot].buttons[id] = 0;
}

View File

@ -56,50 +56,56 @@ FONT 8, "MS Shell Dlg", 0, 0, 0x1
BEGIN
CONTROL "",IDC_BINDINGS_LIST,"SysListView32",LVS_REPORT | LVS_SHOWSELALWAYS | LVS_NOSORTHEADER | WS_BORDER | WS_VSCROLL | WS_TABSTOP,7,7,183,271,WS_EX_CLIENTEDGE
// Input Bindings:
PUSHBUTTON "Select",ID_SELECT,328,13,34,15
PUSHBUTTON "Start",ID_START,366,13,34,15
PUSHBUTTON "Analog",ID_ANALOG,328,30,34,15
PUSHBUTTON "Mouse",ID_MOUSE,366,30,34,15
GROUPBOX "Shoulder buttons",IDC_SHOULDER,196,3,108,46
PUSHBUTTON "L1",ID_L1,210,13,34,15
PUSHBUTTON "R1",ID_R1,254,13,34,15
PUSHBUTTON "L2",ID_L2,210,30,34,15
PUSHBUTTON "R2",ID_R2,254,30,34,15
GROUPBOX "D-Pad",IDC_DPAD,196,49,108,70
PUSHBUTTON "Up",ID_DPAD_UP,233,60,34,15
PUSHBUTTON "Left",ID_DPAD_LEFT,214,79,34,15
PUSHBUTTON "Right",ID_DPAD_RIGHT,252,79,34,15
PUSHBUTTON "Down",ID_DPAD_DOWN,233,97,34,15
GROUPBOX "Face buttons",IDC_FACE,310,49,108,70
PUSHBUTTON "Triangle",ID_TRIANGLE,347,60,34,15
PUSHBUTTON "Square",ID_SQUARE,328,79,34,15
PUSHBUTTON "Circle",ID_CIRCLE,366,79,34,15
PUSHBUTTON "Cross",ID_CROSS,347,98,34,15
GROUPBOX "Left Analog Stick",IDC_LSTICK,196,120,108,70
PUSHBUTTON "Up",ID_LSTICK_UP,234,131,30,15
PUSHBUTTON "Left",ID_LSTICK_LEFT,202,150,30,15
PUSHBUTTON "L3",ID_L3,234,150,30,15
PUSHBUTTON "Right",ID_LSTICK_RIGHT,266,150,30,15
PUSHBUTTON "Down",ID_LSTICK_DOWN,234,170,30,15
GROUPBOX "Right Analog Stick",IDC_RSTICK,310,120,108,70
PUSHBUTTON "Up",ID_RSTICK_UP,348,131,30,15
PUSHBUTTON "Left",ID_RSTICK_LEFT,316,150,30,15
PUSHBUTTON "R3",ID_R3,348,150,30,15
PUSHBUTTON "Right",ID_RSTICK_RIGHT,380,150,30,15
PUSHBUTTON "Down",ID_RSTICK_DOWN,348,170,30,15
PUSHBUTTON "Select",ID_SELECT,328,34,34,15
PUSHBUTTON "Start",ID_START,366,34,34,15
PUSHBUTTON "Analog",ID_ANALOG,328,51,34,15
PUSHBUTTON "Mouse",ID_MOUSE,366,51,34,15
GROUPBOX "Shoulder buttons",IDC_SHOULDER,196,24,108,46
PUSHBUTTON "L1",ID_L1,210,34,34,15
PUSHBUTTON "R1",ID_R1,254,34,34,15
PUSHBUTTON "L2",ID_L2,210,51,34,15
PUSHBUTTON "R2",ID_R2,254,51,34,15
GROUPBOX "D-Pad",IDC_DPAD,196,70,108,70
PUSHBUTTON "Up",ID_DPAD_UP,233,81,34,15
PUSHBUTTON "Left",ID_DPAD_LEFT,214,100,34,15
PUSHBUTTON "Right",ID_DPAD_RIGHT,252,100,34,15
PUSHBUTTON "Down",ID_DPAD_DOWN,233,118,34,15
GROUPBOX "Face buttons",IDC_FACE,310,70,108,70
PUSHBUTTON "Triangle",ID_TRIANGLE,347,81,34,15
PUSHBUTTON "Square",ID_SQUARE,328,100,34,15
PUSHBUTTON "Circle",ID_CIRCLE,366,100,34,15
PUSHBUTTON "Cross",ID_CROSS,347,119,34,15
GROUPBOX "Left Analog Stick",IDC_LSTICK,196,141,108,70
PUSHBUTTON "Up",ID_LSTICK_UP,234,152,30,15
PUSHBUTTON "Left",ID_LSTICK_LEFT,202,171,30,15
PUSHBUTTON "L3",ID_L3,234,171,30,15
PUSHBUTTON "Right",ID_LSTICK_RIGHT,266,171,30,15
PUSHBUTTON "Down",ID_LSTICK_DOWN,234,191,30,15
GROUPBOX "Right Analog Stick",IDC_RSTICK,310,141,108,70
PUSHBUTTON "Up",ID_RSTICK_UP,348,152,30,15
PUSHBUTTON "Left",ID_RSTICK_LEFT,316,171,30,15
PUSHBUTTON "R3",ID_R3,348,171,30,15
PUSHBUTTON "Right",ID_RSTICK_RIGHT,380,171,30,15
PUSHBUTTON "Down",ID_RSTICK_DOWN,348,191,30,15
// Force Feedback bindings:
GROUPBOX "Add Force Feedback Effect",ID_FORCEFEEDBACK_BOX,262,194,155,51
COMBOBOX IDC_FORCEFEEDBACK,269,207,142,106,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
PUSHBUTTON "Big Motor",ID_BIG_MOTOR,269,225,64,14
PUSHBUTTON "Small Motor",ID_SMALL_MOTOR,347,225,64,14
// Special bindings and options:
PUSHBUTTON "Lock Input",ID_LOCK_ALL_INPUT,196,195,59,15
PUSHBUTTON "Lock Direction",ID_LOCK_DIRECTION,196,213,59,15
PUSHBUTTON "Lock Buttons",ID_LOCK_BUTTONS,196,231,59,15
PUSHBUTTON "Turbo",ID_TURBO_KEY,196,249,59,15
PUSHBUTTON "Exclude Input",ID_EXCLUDE,261,249,59,15
COMBOBOX IDC_DEVICE_SELECT,326,250,91,70,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
CONTROL "Configure on bind",IDC_CONFIGURE_ON_BIND,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,347,265,70,15
GROUPBOX "Add Force Feedback Effect",ID_FORCEFEEDBACK_BOX,196,215,221,30
COMBOBOX IDC_FORCEFEEDBACK,202,225,96,106,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
PUSHBUTTON "Big Motor",ID_BIG_MOTOR,304,224,50,14
PUSHBUTTON "Small Motor",ID_SMALL_MOTOR,360,224,50,14
// Input options:
PUSHBUTTON "Quick Setup",ID_QUICK_SETUP,358,7,59,15
CTEXT "",IDC_QUICK_SETUP_TEXT,196,7,156,15,WS_BORDER
CONTROL "Configure on bind",IDC_CONFIGURE_ON_BIND,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,347,266,70,15
PUSHBUTTON "Show Special Inputs",ID_SPECIAL_INPUTS,196,249,90,15
COMBOBOX IDC_DEVICE_SELECT,304,250,113,70,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
// Special bindings:
PUSHBUTTON "Lock Input",ID_LOCK_ALL_INPUT,7,210,58,15
PUSHBUTTON "Lock Direction",ID_LOCK_DIRECTION,69,210,58,15
PUSHBUTTON "Lock Buttons",ID_LOCK_BUTTONS,131,210,58,15
PUSHBUTTON "Turbo",ID_TURBO_KEY,7,228,58,15
PUSHBUTTON "Exclude Input",ID_EXCLUDE,7,246,58,15
// Force Feedback & Input configurations:
PUSHBUTTON "Back to Controls",ID_CONTROLS,196,260,59,15
// Force Feedback configuration:
GROUPBOX "",ID_FF,195,9,222,248
COMBOBOX IDC_FF_EFFECT,203,23,206,106,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
@ -127,8 +133,7 @@ BEGIN
CONTROL "Axis 6",IDC_FF_AXIS6_ENABLED,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,205,243,91,10
CONTROL "Flip",IDC_FF_AXIS6_FLIP,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,302,243,35,10
EDITTEXT IDC_FF_AXIS6_SCALE,375,243,33,12,ES_RIGHT | ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP,WS_EX_RTLREADING
PUSHBUTTON "Back to Controls",ID_CONTROLS,196,261,59,15
PUSHBUTTON "Test",ID_TEST,257,261,59,15
PUSHBUTTON "Test",ID_TEST,257,260,59,15
// Input configuration:
GROUPBOX "Configure Binding",ID_SENSITIVITY,195,9,222,110
EDITTEXT IDC_AXIS_DEVICE,202,22,74,12,ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP
@ -154,30 +159,36 @@ FONT 8, "MS Shell Dlg", 0, 0, 0x1
BEGIN
CONTROL "",IDC_BINDINGS_LIST,"SysListView32",LVS_REPORT | LVS_SHOWSELALWAYS | LVS_NOSORTHEADER | WS_BORDER | WS_VSCROLL | WS_TABSTOP,7,7,183,271,WS_EX_CLIENTEDGE
// Input Bindings:
PUSHBUTTON "Select", ID_SELECT,262,22,43,15
PUSHBUTTON "Start", ID_START,306,22,43,15
PUSHBUTTON "White L",ID_TRIANGLE,196,66,43,15
PUSHBUTTON "Yellow L",ID_CIRCLE,218,48,43,15
PUSHBUTTON "Green L",ID_R1,240,66,43,15
PUSHBUTTON "Blue L",ID_CROSS,262,48,43,15
PUSHBUTTON "Red",ID_L1,284,66,43,15
PUSHBUTTON "Blue R",ID_SQUARE,306,48,43,15
PUSHBUTTON "Green R",ID_R2,328,66,43,15
PUSHBUTTON "Yellow R",ID_DPAD_UP,350,48,43,15
PUSHBUTTON "White R",ID_L2,372,66,43,15
PUSHBUTTON "Select", ID_SELECT,262,25,43,15
PUSHBUTTON "Start", ID_START,306,25,43,15
PUSHBUTTON "White L",ID_TRIANGLE,196,69,43,15
PUSHBUTTON "Yellow L",ID_CIRCLE,218,51,43,15
PUSHBUTTON "Green L",ID_R1,240,69,43,15
PUSHBUTTON "Blue L",ID_CROSS,262,51,43,15
PUSHBUTTON "Red",ID_L1,284,69,43,15
PUSHBUTTON "Blue R",ID_SQUARE,306,51,43,15
PUSHBUTTON "Green R",ID_R2,328,69,43,15
PUSHBUTTON "Yellow R",ID_DPAD_UP,350,51,43,15
PUSHBUTTON "White R",ID_L2,372,69,43,15
// Force Feedback bindings:
GROUPBOX "Add Force Feedback Effect",ID_FORCEFEEDBACK_BOX,262,194,155,51
COMBOBOX IDC_FORCEFEEDBACK,269,207,142,106,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
PUSHBUTTON "Big Motor",ID_BIG_MOTOR,269,225,64,14
PUSHBUTTON "Small Motor",ID_SMALL_MOTOR,347,225,64,14
// Special bindings and options:
PUSHBUTTON "Lock Input",ID_LOCK_ALL_INPUT,196,195,59,15
PUSHBUTTON "Lock Direction",ID_LOCK_DIRECTION,196,213,59,15
PUSHBUTTON "Lock Buttons",ID_LOCK_BUTTONS,196,231,59,15
PUSHBUTTON "Turbo",ID_TURBO_KEY,196,249,59,15
PUSHBUTTON "Exclude Input",ID_EXCLUDE,261,249,59,15
COMBOBOX IDC_DEVICE_SELECT,326,250,91,70,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
CONTROL "Configure on bind",IDC_CONFIGURE_ON_BIND,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,347,265,70,15
GROUPBOX "Add Force Feedback Effect",ID_FORCEFEEDBACK_BOX,196,215,221,30
COMBOBOX IDC_FORCEFEEDBACK,202,225,96,106,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
PUSHBUTTON "Big Motor",ID_BIG_MOTOR,304,224,50,14
PUSHBUTTON "Small Motor",ID_SMALL_MOTOR,360,224,50,14
// Input options:
PUSHBUTTON "Quick Setup",ID_QUICK_SETUP,358,7,59,15
CTEXT "",IDC_QUICK_SETUP_TEXT,196,7,156,15,WS_BORDER
CONTROL "Configure on bind",IDC_CONFIGURE_ON_BIND,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,347,266,70,15
PUSHBUTTON "Show Special Inputs",ID_SPECIAL_INPUTS,196,249,90,15
COMBOBOX IDC_DEVICE_SELECT,304,250,113,70,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
// Special bindings:
PUSHBUTTON "Lock Input",ID_LOCK_ALL_INPUT,7,210,58,15
PUSHBUTTON "Lock Direction",ID_LOCK_DIRECTION,69,210,58,15
PUSHBUTTON "Lock Buttons",ID_LOCK_BUTTONS,131,210,58,15
PUSHBUTTON "Turbo",ID_TURBO_KEY,7,228,58,15
PUSHBUTTON "Exclude Input",ID_EXCLUDE,7,246,58,15
// Force Feedback & Input configurations:
PUSHBUTTON "Back to Controls",ID_CONTROLS,196,260,59,15
// Force Feedback configuration:
GROUPBOX "",ID_FF,195,9,222,248
COMBOBOX IDC_FF_EFFECT,203,23,206,106,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
@ -205,8 +216,7 @@ BEGIN
CONTROL "Axis 6",IDC_FF_AXIS6_ENABLED,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,205,243,91,10
CONTROL "Flip",IDC_FF_AXIS6_FLIP,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,302,243,35,10
EDITTEXT IDC_FF_AXIS6_SCALE,375,243,33,12,ES_RIGHT | ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP,WS_EX_RTLREADING
PUSHBUTTON "Back to Controls",ID_CONTROLS,196,261,59,15
PUSHBUTTON "Test",ID_TEST,257,261,59,15
PUSHBUTTON "Test",ID_TEST,257,260,59,15
// Input configuration:
GROUPBOX "Configure Binding",ID_SENSITIVITY,195,9,222,110
EDITTEXT IDC_AXIS_DEVICE,202,22,74,12,ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP
@ -232,30 +242,36 @@ FONT 8, "MS Shell Dlg", 0, 0, 0x1
BEGIN
CONTROL "",IDC_BINDINGS_LIST,"SysListView32",LVS_REPORT | LVS_SHOWSELALWAYS | LVS_NOSORTHEADER | WS_BORDER | WS_VSCROLL | WS_TABSTOP,7,7,183,271,WS_EX_CLIENTEDGE
// Input Bindings:
PUSHBUTTON "Fret 1",ID_R2,283,7,45,15
PUSHBUTTON "Fret 2",ID_CIRCLE,283,30,45,15
PUSHBUTTON "Fret 3",ID_TRIANGLE,283,53,45,15
PUSHBUTTON "Fret 4",ID_CROSS,283,76,45,15
PUSHBUTTON "Fret 5",ID_SQUARE,283,99,45,15
PUSHBUTTON "Start",ID_START,256,122,45,15
PUSHBUTTON "Select/Tilt",ID_SELECT,307,122,45,15
PUSHBUTTON "Whammy Bar Up",ID_LSTICK_UP,219,146,69,15
PUSHBUTTON "Whammy Bar Down",ID_LSTICK_DOWN,219,164,69,15
PUSHBUTTON "Strum Bar Up",ID_DPAD_UP,336,146,58,15
PUSHBUTTON "Strum Bar Down",ID_DPAD_DOWN,336,164,58,15
PUSHBUTTON "Fret 1",ID_R2,283,30,45,15
PUSHBUTTON "Fret 2",ID_CIRCLE,283,53,45,15
PUSHBUTTON "Fret 3",ID_TRIANGLE,283,76,45,15
PUSHBUTTON "Fret 4",ID_CROSS,283,99,45,15
PUSHBUTTON "Fret 5",ID_SQUARE,283,122,45,15
PUSHBUTTON "Start",ID_START,256,145,45,15
PUSHBUTTON "Select/Tilt",ID_SELECT,307,145,45,15
PUSHBUTTON "Whammy Bar Up",ID_LSTICK_UP,219,168,69,15
PUSHBUTTON "Whammy Bar Down",ID_LSTICK_DOWN,219,191,69,15
PUSHBUTTON "Strum Bar Up",ID_DPAD_UP,336,168,58,15
PUSHBUTTON "Strum Bar Down",ID_DPAD_DOWN,336,191,58,15
// Force Feedback bindings:
GROUPBOX "Add Force Feedback Effect",ID_FORCEFEEDBACK_BOX,262,194,155,51
COMBOBOX IDC_FORCEFEEDBACK,269,207,142,106,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
PUSHBUTTON "Big Motor",ID_BIG_MOTOR,269,225,64,14
PUSHBUTTON "Small Motor",ID_SMALL_MOTOR,347,225,64,14
// Special bindings and options:
PUSHBUTTON "Lock Input",ID_LOCK_ALL_INPUT,196,195,59,15
PUSHBUTTON "Lock Direction",ID_LOCK_DIRECTION,196,213,59,15
PUSHBUTTON "Lock Buttons",ID_LOCK_BUTTONS,196,231,59,15
PUSHBUTTON "Turbo",ID_TURBO_KEY,196,249,59,15
PUSHBUTTON "Exclude Input",ID_EXCLUDE,261,249,59,15
COMBOBOX IDC_DEVICE_SELECT,326,250,91,70,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
CONTROL "Configure on bind",IDC_CONFIGURE_ON_BIND,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,347,265,70,15
GROUPBOX "Add Force Feedback Effect",ID_FORCEFEEDBACK_BOX,196,215,221,30
COMBOBOX IDC_FORCEFEEDBACK,202,225,96,106,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
PUSHBUTTON "Big Motor",ID_BIG_MOTOR,304,224,50,14
PUSHBUTTON "Small Motor",ID_SMALL_MOTOR,360,224,50,14
// Input options:
PUSHBUTTON "Quick Setup",ID_QUICK_SETUP,358,7,59,15
CTEXT "",IDC_QUICK_SETUP_TEXT,196,7,156,15,WS_BORDER
CONTROL "Configure on bind",IDC_CONFIGURE_ON_BIND,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,347,266,70,15
PUSHBUTTON "Show Special Inputs",ID_SPECIAL_INPUTS,196,249,90,15
COMBOBOX IDC_DEVICE_SELECT,304,250,113,70,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
// Special bindings:
PUSHBUTTON "Lock Input",ID_LOCK_ALL_INPUT,7,210,58,15
PUSHBUTTON "Lock Direction",ID_LOCK_DIRECTION,69,210,58,15
PUSHBUTTON "Lock Buttons",ID_LOCK_BUTTONS,131,210,58,15
PUSHBUTTON "Turbo",ID_TURBO_KEY,7,228,58,15
PUSHBUTTON "Exclude Input",ID_EXCLUDE,7,246,58,15
// Force Feedback & Input configurations:
PUSHBUTTON "Back to Controls",ID_CONTROLS,196,260,59,15
// Force Feedback configuration:
GROUPBOX "",ID_FF,195,9,222,248
COMBOBOX IDC_FF_EFFECT,203,23,206,106,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
@ -283,8 +299,7 @@ BEGIN
CONTROL "Axis 6",IDC_FF_AXIS6_ENABLED,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,205,243,91,10
CONTROL "Flip",IDC_FF_AXIS6_FLIP,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,302,243,35,10
EDITTEXT IDC_FF_AXIS6_SCALE,375,243,33,12,ES_RIGHT | ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP,WS_EX_RTLREADING
PUSHBUTTON "Back to Controls",ID_CONTROLS,196,261,59,15
PUSHBUTTON "Test",ID_TEST,257,261,59,15
PUSHBUTTON "Test",ID_TEST,257,260,59,15
// Input configuration:
GROUPBOX "Configure Binding",ID_SENSITIVITY,195,9,222,110
EDITTEXT IDC_AXIS_DEVICE,202,22,74,12,ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP
@ -308,7 +323,7 @@ IDD_CONFIG_PS1_MOUSE DIALOGEX 0, 0, 424, 283
STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION
FONT 8, "MS Shell Dlg", 0, 0, 0x1
BEGIN
CONTROL "",IDC_BINDINGS_LIST,"SysListView32",LVS_REPORT | LVS_SHOWSELALWAYS | LVS_NOSORTHEADER | WS_BORDER | WS_VSCROLL | WS_TABSTOP,7,7,183,285,WS_EX_CLIENTEDGE
CONTROL "",IDC_BINDINGS_LIST,"SysListView32",LVS_REPORT | LVS_SHOWSELALWAYS | LVS_NOSORTHEADER | WS_BORDER | WS_VSCROLL | WS_TABSTOP,7,7,183,271,WS_EX_CLIENTEDGE
// Input bindings:
PUSHBUTTON "Mouse",ID_MOUSE,379,28,34,15
GROUPBOX "Mouse buttons",IDC_FACE,242,46,124,34
@ -320,47 +335,24 @@ BEGIN
PUSHBUTTON "Y-axis Up",ID_LSTICK_UP,283,92,45,15
PUSHBUTTON "Y-axis Down",ID_LSTICK_DOWN,283,132,45,15
// Force Feedback bindings:
GROUPBOX "Add Force Feedback Effect",ID_FORCEFEEDBACK_BOX,262,194,155,51
COMBOBOX IDC_FORCEFEEDBACK,269,207,142,106,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
PUSHBUTTON "Big Motor",ID_BIG_MOTOR,269,225,64,14
PUSHBUTTON "Small Motor",ID_SMALL_MOTOR,347,225,64,14
// Special bindings and options:
PUSHBUTTON "Lock Input",ID_LOCK_ALL_INPUT,196,195,59,15
PUSHBUTTON "Lock Direction",ID_LOCK_DIRECTION,196,213,59,15
PUSHBUTTON "Lock Buttons",ID_LOCK_BUTTONS,196,231,59,15
PUSHBUTTON "Turbo",ID_TURBO_KEY,196,249,59,15
PUSHBUTTON "Exclude Input",ID_EXCLUDE,261,249,59,15
COMBOBOX IDC_DEVICE_SELECT,326,250,91,70,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
CONTROL "Configure on bind",IDC_CONFIGURE_ON_BIND,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,347,265,70,15
// Force Feedback configuration:
GROUPBOX "",ID_FF,195,9,222,248
COMBOBOX IDC_FF_EFFECT,203,23,206,106,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
CONTROL "",IDC_FF_AXIS1,"msctls_trackbar32",WS_TABSTOP,199,43,214,17
CONTROL "Axis 1",IDC_FF_AXIS1_ENABLED,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,205,63,91,10
CONTROL "Flip",IDC_FF_AXIS1_FLIP,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,302,63,35,10
EDITTEXT IDC_FF_AXIS1_SCALE,375,63,33,12,ES_RIGHT | ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP,WS_EX_RTLREADING
CONTROL "",IDC_FF_AXIS2,"msctls_trackbar32",WS_TABSTOP,199,79,214,17
CONTROL "Axis 2",IDC_FF_AXIS2_ENABLED,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,205,99,91,10
CONTROL "Flip",IDC_FF_AXIS2_FLIP,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,302,99,35,10
EDITTEXT IDC_FF_AXIS2_SCALE,375,92,33,12,ES_RIGHT | ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP,WS_EX_RTLREADING
CONTROL "",IDC_FF_AXIS3,"msctls_trackbar32",WS_TABSTOP,199,115,214,17
CONTROL "Axis 3",IDC_FF_AXIS3_ENABLED,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,205,135,91,10
CONTROL "Flip",IDC_FF_AXIS3_FLIP,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,302,135,35,10
EDITTEXT IDC_FF_AXIS3_SCALE,375,135,33,12,ES_RIGHT | ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP,WS_EX_RTLREADING
CONTROL "",IDC_FF_AXIS4,"msctls_trackbar32",WS_TABSTOP,199,151,214,17
CONTROL "Axis 4",IDC_FF_AXIS4_ENABLED,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,205,171,91,10
CONTROL "Flip",IDC_FF_AXIS4_FLIP,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,302,171,35,10
EDITTEXT IDC_FF_AXIS4_SCALE,375,171,33,12,ES_RIGHT | ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP,WS_EX_RTLREADING
CONTROL "",IDC_FF_AXIS5,"msctls_trackbar32",WS_TABSTOP,199,187,214,17
CONTROL "Axis 5",IDC_FF_AXIS5_ENABLED,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,205,207,91,10
CONTROL "Flip",IDC_FF_AXIS5_FLIP,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,302,207,35,10
EDITTEXT IDC_FF_AXIS5_SCALE,375,207,33,12,ES_RIGHT | ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP,WS_EX_RTLREADING
CONTROL "",IDC_FF_AXIS6,"msctls_trackbar32",WS_TABSTOP,199,223,214,17
CONTROL "Axis 6",IDC_FF_AXIS6_ENABLED,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,205,243,91,10
CONTROL "Flip",IDC_FF_AXIS6_FLIP,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,302,243,35,10
EDITTEXT IDC_FF_AXIS6_SCALE,375,243,33,12,ES_RIGHT | ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP,WS_EX_RTLREADING
PUSHBUTTON "Back to Controls",ID_CONTROLS,196,261,59,15
PUSHBUTTON "Test",ID_TEST,257,261,59,15
GROUPBOX "Add Force Feedback Effect",ID_FORCEFEEDBACK_BOX,196,215,221,30
COMBOBOX IDC_FORCEFEEDBACK,202,225,96,106,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
PUSHBUTTON "Big Motor",ID_BIG_MOTOR,304,224,50,14
PUSHBUTTON "Small Motor",ID_SMALL_MOTOR,360,224,50,14
// Input options:
PUSHBUTTON "Quick Setup",ID_QUICK_SETUP,358,7,59,15
CTEXT "",IDC_QUICK_SETUP_TEXT,196,7,156,15,WS_BORDER
CONTROL "Configure on bind",IDC_CONFIGURE_ON_BIND,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,347,266,70,15
PUSHBUTTON "Show Special Inputs",ID_SPECIAL_INPUTS,196,249,90,15
COMBOBOX IDC_DEVICE_SELECT,304,250,113,70,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
// Special bindings:
PUSHBUTTON "Lock Input",ID_LOCK_ALL_INPUT,7,210,58,15
PUSHBUTTON "Lock Direction",ID_LOCK_DIRECTION,69,210,58,15
PUSHBUTTON "Lock Buttons",ID_LOCK_BUTTONS,131,210,58,15
PUSHBUTTON "Turbo",ID_TURBO_KEY,7,228,58,15
PUSHBUTTON "Exclude Input",ID_EXCLUDE,7,246,58,15
// Force Feedback & Input configurations:
PUSHBUTTON "Back to Controls",ID_CONTROLS,196,260,59,15
// Input configuration:
GROUPBOX "Configure Binding",ID_SENSITIVITY,195,9,222,110
EDITTEXT IDC_AXIS_DEVICE,202,22,74,12,ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP
@ -384,7 +376,7 @@ IDD_CONFIG_NEGCON DIALOGEX 0, 0, 424, 283
STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION
FONT 8, "MS Shell Dlg", 0, 0, 0x1
BEGIN
CONTROL "",IDC_BINDINGS_LIST,"SysListView32",LVS_REPORT | LVS_SHOWSELALWAYS | LVS_NOSORTHEADER | WS_BORDER | WS_VSCROLL | WS_TABSTOP,7,7,183,285,WS_EX_CLIENTEDGE
CONTROL "",IDC_BINDINGS_LIST,"SysListView32",LVS_REPORT | LVS_SHOWSELALWAYS | LVS_NOSORTHEADER | WS_BORDER | WS_VSCROLL | WS_TABSTOP,7,7,183,271,WS_EX_CLIENTEDGE
// Input bindings:
GROUPBOX "Shoulder buttons",IDC_SHOULDER,220,30,173,34
PUSHBUTTON "Analog L",ID_L1,233,41,34,15
@ -406,47 +398,24 @@ BEGIN
PUSHBUTTON "Start",ID_START,207,139,34,15
PUSHBUTTON "Mouse",ID_MOUSE,207,158,34,15
// Force Feedback bindings:
GROUPBOX "Add Force Feedback Effect",ID_FORCEFEEDBACK_BOX,262,194,155,51
COMBOBOX IDC_FORCEFEEDBACK,269,207,142,106,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
PUSHBUTTON "Big Motor",ID_BIG_MOTOR,269,225,64,14
PUSHBUTTON "Small Motor",ID_SMALL_MOTOR,347,225,64,14
// Special bindings and options:
PUSHBUTTON "Lock Input",ID_LOCK_ALL_INPUT,196,195,59,15
PUSHBUTTON "Lock Direction",ID_LOCK_DIRECTION,196,213,59,15
PUSHBUTTON "Lock Buttons",ID_LOCK_BUTTONS,196,231,59,15
PUSHBUTTON "Turbo",ID_TURBO_KEY,196,249,59,15
PUSHBUTTON "Exclude Input",ID_EXCLUDE,261,249,59,15
COMBOBOX IDC_DEVICE_SELECT,326,250,91,70,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
CONTROL "Configure on bind",IDC_CONFIGURE_ON_BIND,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,347,265,70,15
// Force Feedback configuration:
GROUPBOX "",ID_FF,195,9,222,248
COMBOBOX IDC_FF_EFFECT,203,23,206,106,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
CONTROL "",IDC_FF_AXIS1,"msctls_trackbar32",WS_TABSTOP,199,43,214,17
CONTROL "Axis 1",IDC_FF_AXIS1_ENABLED,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,205,63,91,10
CONTROL "Flip",IDC_FF_AXIS1_FLIP,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,302,63,35,10
EDITTEXT IDC_FF_AXIS1_SCALE,375,63,33,12,ES_RIGHT | ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP,WS_EX_RTLREADING
CONTROL "",IDC_FF_AXIS2,"msctls_trackbar32",WS_TABSTOP,199,79,214,17
CONTROL "Axis 2",IDC_FF_AXIS2_ENABLED,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,205,99,91,10
CONTROL "Flip",IDC_FF_AXIS2_FLIP,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,302,99,35,10
EDITTEXT IDC_FF_AXIS2_SCALE,375,92,40,12,ES_RIGHT | ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP,WS_EX_RTLREADING
CONTROL "",IDC_FF_AXIS3,"msctls_trackbar32",WS_TABSTOP,199,115,214,17
CONTROL "Axis 3",IDC_FF_AXIS3_ENABLED,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,205,135,91,10
CONTROL "Flip",IDC_FF_AXIS3_FLIP,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,302,135,35,10
EDITTEXT IDC_FF_AXIS3_SCALE,375,135,33,12,ES_RIGHT | ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP,WS_EX_RTLREADING
CONTROL "",IDC_FF_AXIS4,"msctls_trackbar32",WS_TABSTOP,199,151,214,17
CONTROL "Axis 4",IDC_FF_AXIS4_ENABLED,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,205,171,91,10
CONTROL "Flip",IDC_FF_AXIS4_FLIP,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,302,171,35,10
EDITTEXT IDC_FF_AXIS4_SCALE,375,171,33,12,ES_RIGHT | ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP,WS_EX_RTLREADING
CONTROL "",IDC_FF_AXIS5,"msctls_trackbar32",WS_TABSTOP,199,187,214,17
CONTROL "Axis 5",IDC_FF_AXIS5_ENABLED,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,205,207,91,10
CONTROL "Flip",IDC_FF_AXIS5_FLIP,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,302,207,35,10
EDITTEXT IDC_FF_AXIS5_SCALE,375,207,33,12,ES_RIGHT | ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP,WS_EX_RTLREADING
CONTROL "",IDC_FF_AXIS6,"msctls_trackbar32",WS_TABSTOP,199,223,214,17
CONTROL "Axis 6",IDC_FF_AXIS6_ENABLED,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,205,243,91,10
CONTROL "Flip",IDC_FF_AXIS6_FLIP,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,302,243,35,10
EDITTEXT IDC_FF_AXIS6_SCALE,375,243,33,12,ES_RIGHT | ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP,WS_EX_RTLREADING
PUSHBUTTON "Back to Controls",ID_CONTROLS,196,261,59,15
PUSHBUTTON "Test",ID_TEST,257,261,59,15
GROUPBOX "Add Force Feedback Effect",ID_FORCEFEEDBACK_BOX,196,215,221,30
COMBOBOX IDC_FORCEFEEDBACK,202,225,96,106,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
PUSHBUTTON "Big Motor",ID_BIG_MOTOR,304,224,50,14
PUSHBUTTON "Small Motor",ID_SMALL_MOTOR,360,224,50,14
// Input options:
PUSHBUTTON "Quick Setup",ID_QUICK_SETUP,358,7,59,15
CTEXT "",IDC_QUICK_SETUP_TEXT,196,7,156,15,WS_BORDER
CONTROL "Configure on bind",IDC_CONFIGURE_ON_BIND,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,347,266,70,15
PUSHBUTTON "Show Special Inputs",ID_SPECIAL_INPUTS,196,249,90,15
COMBOBOX IDC_DEVICE_SELECT,304,250,113,70,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
// Special bindings:
PUSHBUTTON "Lock Input",ID_LOCK_ALL_INPUT,7,210,58,15
PUSHBUTTON "Lock Direction",ID_LOCK_DIRECTION,69,210,58,15
PUSHBUTTON "Lock Buttons",ID_LOCK_BUTTONS,131,210,58,15
PUSHBUTTON "Turbo",ID_TURBO_KEY,7,228,58,15
PUSHBUTTON "Exclude Input",ID_EXCLUDE,7,246,58,15
// Force Feedback & Input configurations:
PUSHBUTTON "Back to Controls",ID_CONTROLS,196,260,59,15
// Input configuration:
GROUPBOX "Configure Binding",ID_SENSITIVITY,195,9,222,110
EDITTEXT IDC_AXIS_DEVICE,202,22,74,12,ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP
@ -507,7 +476,8 @@ BEGIN
CONTROL "Save state # in title",IDC_SAVE_STATE_TITLE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,336,217,79,10
CONTROL "Guitar Hero 2 Hack",IDC_GH2_HACK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,336,228,79,10
CONTROL "Enable logging",IDC_DEBUG_FILE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,336,239,79,10
PUSHBUTTON "Load Bindings",ID_LOAD,283,259,62,15
PUSHBUTTON "Restore Defaults",ID_RESTORE_DEFAULTS,219,259,62,15
PUSHBUTTON "Load Bindings",ID_LOAD,287,259,62,15
PUSHBUTTON "Save Bindings",ID_SAVE,355,259,62,15
END

View File

@ -2,49 +2,57 @@
// Microsoft Visual C++ generated include file.
// Used by LilyPad.rc
//
#define IDD_GENERAL 102
#define IDD_ABOUT 103
#define IDI_FROG 104
#define IDD_CONFIG 105
#define IDD_CONFIG_GUITAR 106
#define IDD_PROPPAGE_LARGE 107
#define IDC_CURSOR1 108
#define IDC_ESCAPE_FULLSCREEN_HACK 109
#define IDD_DIAG 110
#define IDR_INI1 111
#define IDD_CONFIG_POPN 112
#define IDD_CONFIG_PS1_MOUSE 113
#define IDD_CONFIG_NEGCON 114
#define IDC_KB_DISABLE 1100
#define IDC_KB_DI 1101
#define IDC_KB_WM 1102
#define IDC_KB_RAW 1103
#define IDC_DISABLE_PAD1 1104
#define IDC_M_DISABLE 1105
#define IDC_M_DI 1106
#define IDC_M_WM 1107
#define IDC_M_RAW 1108
#define IDC_G_XI 1109
#define IDC_G_DI 1110
#define IDC_G_DS3 1111
#define IDC_CLOSE_HACK 1112
#define IDC_DEBUG_FILE 1113
#define IDC_GUITAR1 1114
#define IDC_ANALOG_START1 1115
#define IDC_MULTITAP1 1116
#define IDC_DISABLE_SCREENSAVER 1117
#define IDC_MOUSE_UNFOCUS 1118
#define IDC_AXIS_BUTTONS 1119
#define IDC_MULTITAP2 1120
#define IDC_BACKGROUND 1121
#define IDC_MULTIPLE_BINDING 1122
#define IDC_FORCE_HIDE 1124
#define IDC_GH2_HACK 1125
#define IDC_SAVE_STATE_TITLE 1129
#define IDC_PAD_LIST 1130
#define IDC_COMBO1 1131
#define IDC_PAD_TYPE 1132
#define IDC_DIAG_LIST 1133
#define IDD_GENERAL 0x66
#define IDD_ABOUT 0x67
#define IDI_FROG 0x68
#define IDD_CONFIG 0x69
#define IDD_CONFIG_GUITAR 0x6A
#define IDD_PROPPAGE_LARGE 0x6B
#define IDC_CURSOR1 0x6C
#define IDC_ESCAPE_FULLSCREEN_HACK 0x6D
#define IDD_DIAG 0x6E
#define IDR_INI1 0x6F
#define IDD_CONFIG_POPN 0x70
#define IDD_CONFIG_PS1_MOUSE 0x71
#define IDD_CONFIG_NEGCON 0x72
#define IDC_VERSION 0x73
// General tab:
#define IDC_KB_DISABLE 0x44C
#define IDC_KB_DI 0x44D
#define IDC_KB_WM 0x44E
#define IDC_KB_RAW 0x44F
#define IDC_DISABLE_PAD1 0x450
#define IDC_M_DISABLE 0x451
#define IDC_M_DI 0x452
#define IDC_M_WM 0x453
#define IDC_M_RAW 0x454
#define IDC_G_XI 0x455
#define IDC_G_DI 0x456
#define IDC_G_DS3 0x457
#define IDC_CLOSE_HACK 0x458
#define IDC_DEBUG_FILE 0x459
#define IDC_GUITAR1 0x45A
#define IDC_ANALOG_START1 0x45B
#define IDC_MULTITAP1 0x45C
#define IDC_DISABLE_SCREENSAVER 0x45D
#define IDC_MOUSE_UNFOCUS 0x45E
#define IDC_AXIS_BUTTONS 0x45F
#define IDC_MULTITAP2 0x460
#define IDC_BACKGROUND 0x461
#define IDC_MULTIPLE_BINDING 0x462
#define IDC_FORCE_HIDE 0x463
#define IDC_GH2_HACK 0x464
#define IDC_SAVE_STATE_TITLE 0x465
#define IDC_PAD_LIST 0x466
#define IDC_COMBO1 0x467
#define IDC_PAD_TYPE 0x468
#define IDC_DIAG_LIST 0x469
#define ID_SAVE 0x46A
#define ID_LOAD 0x46B
#define ID_RESTORE_DEFAULTS 0x46C
// Pad tabs:
#define IDC_BINDINGS_LIST 0xF00
// Pad Input configuration:
#define IDC_SLIDER_SENSITIVITY 0x1000
#define IDC_FLIP 0x1001
#define IDC_AXIS_DIRECTION 0x1002
@ -61,14 +69,14 @@
#define IDC_SKIP_DEADZONE_OFF 0x100D
#define IDC_SLIDER_SKIP_DEADZONE 0x100E
#define IDC_AXIS_SKIP_DEADZONE 0x100F
#define IDC_DPAD 0x10F7
#define IDC_LSTICK 0x10F8
#define IDC_RSTICK 0x10F9
#define IDC_FACE 0x10FA
#define IDC_SHOULDER 0x10FB
#define ID_LOCK_BUTTONS 0x10FC
#define ID_LOCK_ALL_INPUT 0x10FD
#define ID_LOCK_DIRECTION 0x10FE
// Pad Input Boxes:
#define IDC_DPAD 0x10D0
#define IDC_LSTICK 0x10D1
#define IDC_RSTICK 0x10D2
#define IDC_FACE 0x10D3
#define IDC_SHOULDER 0x10D4
#define IDC_FACE_ANALOG 0x10D5
// Pad Input Bindings:
#define ID_MOUSE 0x10FF
#define ID_SELECT 0x1100
#define ID_L3 0x1101
@ -95,26 +103,30 @@
#define ID_RSTICK_DOWN 0x1116
#define ID_RSTICK_LEFT 0x1117
#define ID_ANALOG 0x1118
// Special bindings:
#define ID_EXCLUDE 0x1119
#define ID_TURBO_KEY 0x111A
#define IDC_FORCEFEEDBACK 0x1130
#define IDC_FORCEFEEDBACK_FUNCTION 0x1131
#define ID_BIG_MOTOR 0x1132
#define ID_SMALL_MOTOR 0x1133
#define ID_FORCEFEEDBACK_BOX 0x1134
#define IDC_CONFIGURE_ON_BIND 0x1135
#define IDC_DEVICE_SELECT 0x1136
#define IDC_FACE_ANALOG 0x1137
#define IDC_BINDINGS_LIST 0x1200
#define ID_SAVE 0x1201
#define ID_LOAD 0x1202
#define ID_TEST 0x1300
#define ID_CONTROLS 0x1301
#define IDC_FF_DEVICE 0x1302
#define IDC_FF_MOTOR 0x1303
#define ID_FF 0x1304
#define IDC_FF_EFFECT 0x1305
#define IDC_VERSION 0x1306
#define ID_LOCK_BUTTONS 0x111A
#define ID_LOCK_ALL_INPUT 0x111B
#define ID_LOCK_DIRECTION 0x111C
#define ID_TURBO_KEY 0x111D
#define ID_QUICK_SETUP 0x111E
#define IDC_QUICK_SETUP_TEXT 0x111F
// Force Feedback bindings:
#define IDC_FORCEFEEDBACK 0x1200
#define IDC_FORCEFEEDBACK_FUNCTION 0x1201
#define ID_BIG_MOTOR 0x1202
#define ID_SMALL_MOTOR 0x1203
#define ID_FORCEFEEDBACK_BOX 0x1204
// Input options:
#define IDC_CONFIGURE_ON_BIND 0x1230
#define IDC_DEVICE_SELECT 0x1231
#define ID_CLEAR 0x1232
#define ID_SPECIAL_INPUTS 0x1233
// Pad Force Feedback configuration:
#define ID_CONTROLS 0x1300
#define ID_TEST 0x1301
#define ID_FF 0x1302
#define IDC_FF_EFFECT 0x1303
#define IDC_FF_AXIS1_ENABLED 0x1310
#define IDC_FF_AXIS1 0x1311
#define IDC_FF_AXIS1_FLIP 0x1312
@ -147,14 +159,16 @@
#define IDC_FF_AXIS8 0x1381
#define IDC_FF_AXIS8_FLIP 0x1382
#define IDC_FF_AXIS8_SCALE 0x1383
// Force Feedback & Input configurations:
#define ID_CONTROLS 0x1390
// Next default values for new objects
//
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE 113
#define _APS_NEXT_RESOURCE_VALUE 116
#define _APS_NEXT_COMMAND_VALUE 40001
#define _APS_NEXT_CONTROL_VALUE 1133
#define _APS_NEXT_CONTROL_VALUE 5009
#define _APS_NEXT_SYMED_VALUE 101
#endif
#endif