evilC / OneSwitch-Utilities

A set of utilitie to assist disabled people operate computers. In association with OneSwtich.
http://oneswitch.org.uk/
4 stars 0 forks source link

Special Function key features #7

Open evilC opened 9 years ago

evilC commented 9 years ago

Barrie: F1 = LEFT-TRIGGER 25% (or user’s preset) F2 = RIGHT-TRIGGER 25% F3 = RIGHT-TRIGGER 50% F4 = RIGHT-TRIGGER 75% F5 = RIGHT-THUMB-STICK BACK 25% F6 = RIGHT-THUMB-STICK BACK 50% F7 = RIGHT-THUMB-STICK BACK 75% F8 = RIGHT-THUMB STICK FORWARD 25% F9 = RIGHT-THUMB STICK FORWARD 50% F10 = RIGHT-THUMB STICK FORWARD 75% F11 = MACRO MODE 1 (TRIGGER BUTTON 27 THEN 28 with some adjustment for timing) F12 = MACRO MODE 2 (TRIGGER BUTTON 27 or 28 alternately on each press).

oneswitch commented 9 years ago

Hold fire on this until we have the vJoy rX, rY and Z sitting at the mid-point at rest.

Special Function keys, and other special key-combinations will open up more powers, triggered by JoyToKey, and responded too appropriately by Pulse. Very keen to find ways to "speed limit" analogue controls smoothly. Very keen to have some special macros.

F1-F12 special modes. Keen to find methods to make Pool and Golf games accessible where you have to pull the right-stick back (set-power), then smoothly push forward quickly.

Also wonder if this might be possible....

ALT+WASD (left-stick at 25% power) CTRL+WASD (left-stick at 50% power) SHIFT+WASD (left-stick at 75% power)

ALT+IJKL (right-stick at 25% power) CTRL+IJKL (right-stick at 50% power) SHIFT+IJKL (right-stick at 75% power)

ALT+2 (left-trigger at 25% power) CTRL+2 (left-trigger at 50% power) SHIFT+2 (left-trigger at 75% power)

ALT+~9 (right-trigger at 25% power) CTRL+9 (right-trigger at 50% power) SHIFT+9 (right-trigger at 75% power)

oneswitch commented 9 years ago

Quicker than I thought, the rX, rY and Z issue seems fixed.

As a provisional early test, it would be great to implement the following temporary set-up....

F1 = Z-axis toggle (with the facility to adjust the setting from lowest to highest). F2 = Z-axis 1:1 (also with the facility to adjust how it works).

(So Choice Button = "F1" > Pulse toggles the Z-axis on or off at the pre-set level).

From this, I can test with the Titan One device in Direct Input mode, and try to find out how well it works, and what settings might be the most useful.

It could also open up the car game idea for testing by Christopher Hills.

evilC commented 9 years ago

I am still not really sure what you want here.

What do you mean by this statement?

So Choice Button = "F1" > Pulse toggles the Z-axis on or off at the pre-set level

Do you mean if the user defines the choice button as F1?

oneswitch commented 9 years ago

Kind of.

Imagine the Choice Button is button 1.

When the user presses their choice button, JTK responds 1:1 with the key "F1".

Pulse listens out for "F1", and upon hearing it, responds by adjusting the Z-axis to a pre-set level until "F1" is pressed again.

This would be a proof of concept test.

JoyToKey can only adjust throttle speed using auto-fire (e.g. rapid taps of the accelerator) or using mouse motion. Both result in horribly jerky response. Making this key-stroke to control the analogue axis could mean smooth power control, but also lots of other possibilities.

oneswitch commented 9 years ago

Scrub the above... Here's a thought for giving more power to a single switch user....

  1. Long Press of Choice Button 1 = Toggle a joystick button on/off (e.g. button 24)

Notes: The idea is that you can use taps and short-holds for one control (e.g. button 21 is for steer left/right), and a long tap for another (e.g. button 24 is for accelerate on/off). Impossible to do this otherwise with our system. Be great for driving games.

  1. Enable JTK to listen for these and trigger them.....

ALT+WASD (left-stick at 25% power) [[I think LX +/25% and LY +/-25%]] CTRL+WASD (left-stick at 50% power) SHIFT+WASD (left-stick at 75% power)

ALT+IJKL (right-stick at 25% power) [[I think RX +/25% and RY +/-25%]] CTRL+IJKL (right-stick at 50% power) SHIFT+IJKL (right-stick at 75% power)

ALT+2 (left-trigger at 25% power) [[I think Z-AXIS +25%]] CTRL+2 (left-trigger at 50% power) SHIFT+2 (left-trigger at 75% power)

ALT+~9 (right-trigger at 25% power) [[I think Z-AXIS -25%]] CTRL+9 (right-trigger at 50% power) SHIFT+9 (right-trigger at 75% power)

  1. Enable JTK to listen for these remaining controls and trigger a special function....

F9 = SLOW MOUSE (when pressed cycle through up,right,down,left motion) F10 = FASTER MOUSE (as F9 but quicker - allow for speed to be adjusted within GUI) F11 = LEFT-CLICK

R = RIGHT-CLICK

E = PULL BACK ON RIGHT-STICK 50% THEN AUTO PUSH FORWARD. F = PULL BACK ON RIGHT-STICK 75% THEN AUTO PUSH FORWARD. G = PULL BACK ON RIGHT-STICK 100% THEN AUTO PUSH FORWARD (these for Pool/Golf games).

KEYS IN USE ALREADY BY TITAN ONE GTUNER / PULSE:

ACDIJKLOPSWXZ 123 6 7890 BACKSPACE CURSOR UP,DOWN,LEFT,RIGHT ENTER SPACE BAR -+/*[] F1-F8 (USE AS DEFAULT BINDINGS FOR SWITCHES) F12 (USED AS FUNCTIONALITY TOGGLE)

evilC commented 8 years ago

When you say you wish to change the sensitivity of L/R trigger, what exactly do you mean?

Do you mean a vJoy axis, or are you talking about the physical XBOX controller. Bear in mind two things:

1) We cannot alter the behavior of physical controllers - only map a physical controller to a virtual one. Also, a vJoy controller cannot pretend to be an XBOX controller - they are read in fundamentally different ways (See point 2), so if a game only works with XBOX controllers, we cannot use vJoy to control it.

2) Our current system does not currently support reading of XBOX triggers independently. By default, windows only recognizes both XBOX triggers as one axis - there is no difference between no triggers held and both triggers fully held. In order to read the triggers independently, I would need to add support for "XInput". I do have proof of concept code for this, but it would not be trivial to allow an XBOX trigger to be mapped in the "Bindings" tab of my apps.

oneswitch commented 8 years ago

Hi Clive,

Hopefully simpler than I've made out. The idea is to have a key-press that can simulate (through vJoy into Titan One into a Game Console) the act of doing things like partially holding a trigger down (to go slow in a game).

The first proof of concept for this, is for the game Pool Nation that Colin has requested....

E = PULL BACK ON RIGHT-STICK 50% THEN AUTO PUSH FORWARD. F = PULL BACK ON RIGHT-STICK 75% THEN AUTO PUSH FORWARD. G = PULL BACK ON RIGHT-STICK 100% THEN AUTO PUSH FORWARD (these for Pool/Golf games).

So the idea is this....

The user presses their switch > Pulse detects this and 1:1 triggers a vJoy Button 1 event (for instance) > JoyToKey detects this and a special profile converts Button 1 to an "E" character > Pulse detects an "E" and triggers a special event (whilst I hold "E" the "Y-Rotation" goes to +50%). When I release "E", the "Y-Rotation goes to -100%).

This elaborate mix enables the "E" key on the keyboard to play a half-powered shot in Pool and other games. It's impossible otherwise.

Does that make more sense / any sense?

evilC commented 8 years ago

Does the new pool cue mode satisfy this request? Can I close this ticket?

oneswitch commented 8 years ago

Only part of this request. The other parts are still needed. To recap....

Long Press of Choice Button 1 = Toggle a joystick button on/off (e.g. button 24) Notes: The idea is that you can use taps and short-holds for one control (e.g. button 21 is for steer left/right), and a long tap for another (e.g. button 24 is for accelerate on/off). Impossible to do this otherwise with our system. Be great for driving games.

Enable JTK to listen for these and trigger them..... ALT+WASD (left-stick at 25% power) [[I think LX +/25% and LY +/-25%]] CTRL+WASD (left-stick at 50% power) SHIFT+WASD (left-stick at 75% power)

ALT+IJKL (right-stick at 25% power) [[I think RX +/25% and RY +/-25%]] CTRL+IJKL (right-stick at 50% power) SHIFT+IJKL (right-stick at 75% power)

ALT+2 (left-trigger at 25% power) [[I think Z-AXIS +25%]] CTRL+2 (left-trigger at 50% power) SHIFT+2 (left-trigger at 75% power)

ALT+~9 (right-trigger at 25% power) [[I think Z-AXIS -25%]] CTRL+9 (right-trigger at 50% power) SHIFT+9 (right-trigger at 75% power)

Enable JTK to listen for these remaining controls and trigger a special function.... F9 = SLOW MOUSE (when pressed cycle through up,right,down,left motion) F10 = FASTER MOUSE (as F9 but quicker - allow for speed to be adjusted within GUI) F11 = LEFT-CLICK

R = RIGHT-CLICK

ACD EFG IJKLOPSWXZ (EFG for Pool/Golf Games) 123 6 7890 BACKSPACE CURSOR UP,DOWN,LEFT,RIGHT ENTER SPACE BAR -+/*[] F1-F8 (USE AS DEFAULT BINDINGS FOR SWITCHES) F12 (USED AS FUNCTIONALITY TOGGLE)

AS A NOTE THIS LEAVES FREE:

B H MN QR TUV Y 45 !"£$%^&*() _= @ :;#~ <>?,./ ¬`