Notice: This forum has been recovered from an old backup, so some content, links, and dates may be outdated. The forum is currently read-only while we restore sign-in and registration functionality. Details

If you find this forum valuable and would like to help keep it online, donations to help cover hosting and domain costs are greatly appreciated, but never expected. You can support the forum through Buy Me a Coffee or Ko-fi. Thank you for helping preserve the EventGhost community.

Xbox Controller - button combinations!

If you have a question or need help, this is the place to be.
3000
Posts: 37
Joined: Fri Aug 07, 2015 3:49 pm

Xbox Controller - button combinations!

Post by 3000 »

Hi, I am using Windows 10, an Xbox One Elite Controller and a Pioneer AV-Receiver. Thanks to Eventghost, the XInputPlugin and the Pioneer_AV_NET Plugin, I can use my Xbox Controller to control my AV-R (like Volume Up/Down, Mute, etc ).

Now the problem: LetÔÇÖs take ÔÇ£Volume UpÔÇØ as an example. Currently, I am pressing ÔÇ£right thumb upÔÇØ of my Xbox Controller and it turns up the volume. But I want to use this button combination to increase the volume: While holding the ÔÇ£backÔÇØ-button, press ÔÇ£right thumb upÔÇØ. (the back button by the way is the one left to start).

So only the combination of ÔÇ£backÔÇØ AND ÔÇ£right thumb upÔÇØ should send the ÔÇ£volume upÔÇØ-command to my AV-R.
I have tried dozens of possibilities. Macros, event, action and python code, but I couldnÔÇÖt figure out. Please help!

This is the code for Volume Up:

Code: Select all

eg.plugins.Pioneer_AV_NET.SendCommand(u'VU', u'Pio')
This is the code when I press ÔÇ£backÔÇØ on my controller, an Event:

Code: Select all

XInputPlugin.BUTTON.PRESSED.BACK
And this for ÔÇ£right thumb upÔÇØ, an Event:

Code: Select all

XInputPlugin.BUTTON.PRESSED.RTHUMB_UP
sign my petition to save a 28-year-old young mother who is fighting Stage 4 cancer: https://www.change.org/p/help-cancer-pa ... on-the-nhs
User avatar
kgschlosser
Site Admin
Posts: 5190
Joined: Fri Jun 05, 2015 5:43 am
Location: Rocky Mountains, Colorado USA

Re: Xbox Controller - button combinations!

Post by kgschlosser »

so there is no event that is generated for just the back button being pressed???

if that is the case then we will have to do something with a timer. what i need to know is if you see multiple events if the button is held down or if only one event occurs.

there is something I would like you to try also. I am going to have you make a macro with a python script in it. and in that script copy and paste this code. then place an event in there that is from a remote button press... then press the button and hold it down and you should see 'button pressed' and the button name printed in the log every 1/2 second. then when you let off the button you should see 'button released' and the button name. I am trying to see if enduring events are used. then what I am going to want you to do is to make a second macro just like the last but put a different button event in that macro and then press down on both buttons. and see how the output looks.

Code: Select all

import threading

event = eg.event
suffix = eg.event.suffix

def check_event():
    while not event .shouldEnd.isSet():
        print 'Button Pressed ', suffix 
        event.shouldEnd.wait(0.5)

    print 'Button Released', suffix 

threading.Thread(target=check_event).start()

If you like the work I have been doing then feel free to Image
3000
Posts: 37
Joined: Fri Aug 07, 2015 3:49 pm

Re: Xbox Controller - button combinations!

Post by 3000 »

Hi, thank you for your help!
kgschlosser wrote:so there is no event that is generated for just the back button being pressed???
The back button DOES generate an event. It's:

Code: Select all

XInputPlugin.BUTTON.PRESSED.BACK
I did what you said. I created two macros: "test1" and "test2". Each one has the same script you have above. In addition I put in the back-event in test1 and rthumb_up-event to test2.

This is the output for test1:
XInputPlugin.BUTTON.PRESSED.BACK
test1
Button Pressed BUTTON.PRESSED.BACK
Button Pressed BUTTON.PRESSED.BACK
Button Pressed BUTTON.PRESSED.BACK
...
Button Released BUTTON.PRESSED.BACK
and this is the output for test1 and test2 together:
XInputPlugin.BUTTON.PRESSED.BACK
test1
Button Pressed BUTTON.PRESSED.BACK
XInputPlugin.BUTTON.PRESSED.RTHUMB_UP
test2
Button Pressed BUTTON.PRESSED.RTHUMB_UP
Button Released BUTTON.PRESSED.BACK
Button Pressed BUTTON.PRESSED.RTHUMB_UP
Button Pressed BUTTON.PRESSED.RTHUMB_UP
...
Button Released BUTTON.PRESSED.RTHUMB_UP
sign my petition to save a 28-year-old young mother who is fighting Stage 4 cancer: https://www.change.org/p/help-cancer-pa ... on-the-nhs
User avatar
kgschlosser
Site Admin
Posts: 5190
Joined: Fri Jun 05, 2015 5:43 am
Location: Rocky Mountains, Colorado USA

Re: Xbox Controller - button combinations!

Post by kgschlosser »

ok so here is the good part. the plugin knows when you press and release another button (or so it thinks)

the release mechanism is based on a timer (because it gets no more data of you pressing from that button)

bad part.. but it will also release the button if you press another button regardless if you pressed it after the first or if you pressed it at the same time as the first.

I am thinking what i may need to do is alter the plugin to not use enduring events. and see if the plugin will fire events for both buttons at the same time.


There is going to be quite a bit of testing if you are interested in moving forward. but I am sure we can get the expected results you want. It's going to be largely getting the timings correct. as i do not know how fast the data comes in from the controller. this we will find out. once I have that information I will be able to make the plugin wait a specific amount of time before it fires an event to see if another button code comes in and if another one does to wait that specific period of time again to see if the first code comes in once more. then it will know that both button are being pressed at the same time. and to trigger a specific event for a combination press. but if the same code comes back then it knows that only one button is being pressed. this all happens in milliseconds so it may give a slight pause in event generation (fraction of a second) I am hoping that we can get the alignment correct. but there is going to be trial and error. as i do not have one of these remotes to fine tune with.

so tell me if this is something that you want to do and we can move forward.
If you like the work I have been doing then feel free to Image
3000
Posts: 37
Joined: Fri Aug 07, 2015 3:49 pm

Re: Xbox Controller - button combinations!

Post by 3000 »

Thank you so much, of course IÔÇÖm interested!

Can you just tell me why this or something similar wouldnÔÇÖt work??

Code: Select all

if XInputPlugin.BUTTON.PRESSED.BACK and XInputPlugin.BUTTON.PRESSED.RTHUMB_UP:
    eg.plugins.Pioneer_AV_NET.SendCommand(u'VU', u'Pio') 
And what is so different to the keyboard? There I can easily press ÔÇ£ctrl and aÔÇØ, for instance, and it would output a SINGLE EVENT: ÔÇ£Keyboad.LCtrl+AÔÇØ, which I could assign to any command I choose.
sign my petition to save a 28-year-old young mother who is fighting Stage 4 cancer: https://www.change.org/p/help-cancer-pa ... on-the-nhs
User avatar
kgschlosser
Site Admin
Posts: 5190
Joined: Fri Jun 05, 2015 5:43 am
Location: Rocky Mountains, Colorado USA

Re: Xbox Controller - button combinations!

Post by kgschlosser »

well I have looked at the plugin.. and guess what.

I am going to rewrite the thing. it doesn't even touch base on 3/4 of what xinput does.

for instance. xinput will specifically tell EG is a button is being pressed, released or held. the only thing the previous author used was the being pressed. this is going to make it so that we will know if 2 buttons are being pressed at the same time


this is what I am going to do with it..

adding support for the following controller types
gamepad
steering wheel
arcade stick
arcade pad
flight stick
dance pad
guitar
guitar alternate
guitar bass
drum kit

wireless devices:
events for low battery level

all devices:
events for button combinations pressed, released, held
events for single buttons pressed, released, held

steering wheel:
events for accelerator petal/brake/wheel left/wheel right

flight stick:
events for Stick left/right
events for POV Hat
events for Throttle up/down
events for Rudder left/right
events for Hat switch left/right/up/down
events for Primary Weapon
events for Secondary Weapon


adding actions actions for:
making the controller vibrate
seeing what the battery level is

there will be events for the rest of the devices once i get to the API for the mappings for those device types.
If you like the work I have been doing then feel free to Image
User avatar
kgschlosser
Site Admin
Posts: 5190
Joined: Fri Jun 05, 2015 5:43 am
Location: Rocky Mountains, Colorado USA

Re: Xbox Controller - button combinations!

Post by kgschlosser »

there is also something to do with sound support tho i have not gotten into those bits of it yet
If you like the work I have been doing then feel free to Image
3000
Posts: 37
Joined: Fri Aug 07, 2015 3:49 pm

Re: Xbox Controller - button combinations!

Post by 3000 »

wow, that sounds amazing!

I wish I could be a help. At least let me know once you have something to test and I will.

Many will benefit from it - for sure!

Thank you :)
sign my petition to save a 28-year-old young mother who is fighting Stage 4 cancer: https://www.change.org/p/help-cancer-pa ... on-the-nhs
User avatar
kgschlosser
Site Admin
Posts: 5190
Joined: Fri Jun 05, 2015 5:43 am
Location: Rocky Mountains, Colorado USA

Re: Xbox Controller - button combinations!

Post by kgschlosser »

well here are all of the controller mappings

Code: Select all

CONTROLLER_MAPPINGS = {
    XINPUT_DEVSUBTYPE_GAMEPAD: {
        VK_PAD_DPAD_UP         : 'D-Pad.Up',
        VK_PAD_DPAD_DOWN       : 'D-Pad.Down',
        VK_PAD_DPAD_LEFT       : 'D-Pad.Left',
        VK_PAD_DPAD_RIGHT      : 'D-Pad.Right',
        VK_PAD_A               : 'Button.A',
        VK_PAD_B               : 'Button.B',
        VK_PAD_X               : 'Button.X',
        VK_PAD_Y               : 'Button.Y',
        VK_PAD_START           : 'Button.Start',
        VK_PAD_BACK            : 'Button.Back',
        VK_PAD_LSHOULDER       : 'Shoulder.Left',
        VK_PAD_RSHOULDER       : 'Shoulder.Right',
        VK_PAD_LTRIGGER        : 'Trigger.Left',
        VK_PAD_RTRIGGER        : 'Trigger.Right',
        VK_PAD_LTHUMB_UP       : 'LeftStick.Up',
        VK_PAD_LTHUMB_DOWN     : 'LeftStick.Down',
        VK_PAD_LTHUMB_LEFT     : 'LeftStick.Left',
        VK_PAD_LTHUMB_RIGHT    : 'LeftStick.Right',
        VK_PAD_LTHUMB_UPLEFT   : 'LeftStick.UpLeft',
        VK_PAD_LTHUMB_UPRIGHT  : 'LeftStick.UpRight',
        VK_PAD_LTHUMB_DOWNLEFT : 'LeftStick.DownLeft',
        VK_PAD_LTHUMB_DOWNRIGHT: 'LeftStick.DownRight',
        VK_PAD_LTHUMB_PRESS    : 'LeftStick.Push',
        VK_PAD_RTHUMB_UP       : 'RightStick.Up',
        VK_PAD_RTHUMB_DOWN     : 'RightStick.Down',
        VK_PAD_RTHUMB_LEFT     : 'RightStick.Left',
        VK_PAD_RTHUMB_RIGHT    : 'RightStick.Right',
        VK_PAD_RTHUMB_UPLEFT   : 'RightStick.UpLeft',
        VK_PAD_RTHUMB_UPRIGHT  : 'RightStick.UpRight',
        VK_PAD_RTHUMB_DOWNLEFT : 'RightStick.DownLeft',
        VK_PAD_RTHUMB_DOWNRIGHT: 'RightStick.DownRight',
        VK_PAD_RTHUMB_PRESS    : 'RightStick.Push'
    },
    XINPUT_DEVSUBTYPE_WHEEL: {
        VK_PAD_DPAD_UP         : 'HatSwitch.Up',
        VK_PAD_DPAD_DOWN       : 'HatSwitch.Down',
        VK_PAD_DPAD_LEFT       : 'HatSwitch.Left',
        VK_PAD_DPAD_RIGHT      : 'HatSwitch.Right',
        VK_PAD_A               : 'A',
        VK_PAD_B               : 'B',
        VK_PAD_X               : 'X',
        VK_PAD_Y               : 'Y',
        VK_PAD_START           : 'START',
        VK_PAD_BACK            : 'BACK',
        VK_PAD_LSHOULDER       : 'LSHOULDER',
        VK_PAD_RSHOULDER       : 'RSHOULDER',
        VK_PAD_LTRIGGER        : 'LTRIGGER',
        VK_PAD_RTRIGGER        : 'RTRIGGER',
        VK_PAD_LTHUMB_UP       : 'LTHUMB_UP',
        VK_PAD_LTHUMB_DOWN     : 'LTHUMB_DOWN',
        VK_PAD_LTHUMB_LEFT     : 'Wheel.Left',
        VK_PAD_LTHUMB_RIGHT    : 'Wheel.Right',
        VK_PAD_LTHUMB_UPLEFT   : 'LTHUMB_UPLEFT',
        VK_PAD_LTHUMB_UPRIGHT  : 'LTHUMB_UPRIGHT',
        VK_PAD_LTHUMB_DOWNLEFT : 'LTHUMB_DOWNLEFT',
        VK_PAD_LTHUMB_DOWNRIGHT: 'LTHUMB_DOWNRIGHT',
        VK_PAD_LTHUMB_PRESS    : 'LTHUMB_PRESS',
        VK_PAD_RTHUMB_UP       : 'RTHUMB_UP',
        VK_PAD_RTHUMB_DOWN     : 'RTHUMB_DOWN',
        VK_PAD_RTHUMB_LEFT     : 'RTHUMB_LEFT',
        VK_PAD_RTHUMB_RIGHT    : 'RTHUMB_RIGHT',
        VK_PAD_RTHUMB_UPLEFT   : 'RTHUMB_UPLEFT',
        VK_PAD_RTHUMB_UPRIGHT  : 'RTHUMB_UPRIGHT',
        VK_PAD_RTHUMB_DOWNLEFT : 'RTHUMB_DOWNLEFT',
        VK_PAD_RTHUMB_DOWNRIGHT: 'RTHUMB_DOWNRIGHT',
        VK_PAD_RTHUMB_PRESS    : 'RTHUMB_PRESS'
    },
    XINPUT_DEVSUBTYPE_FLIGHT_STICK: {
        VK_PAD_DPAD_UP         : 'DPAD_UP',
        VK_PAD_DPAD_DOWN       : 'DPAD_DOWN',
        VK_PAD_DPAD_LEFT       : 'DPAD_LEFT',
        VK_PAD_DPAD_RIGHT      : 'DPAD_RIGHT',
        VK_PAD_A               : 'Weapon.Primary',
        VK_PAD_B               : 'Weapon.Secondary',
        VK_PAD_X               : 'X',
        VK_PAD_Y               : 'Y',
        VK_PAD_START           : 'START',
        VK_PAD_BACK            : 'BACK',
        VK_PAD_LSHOULDER       : 'LSHOULDER',
        VK_PAD_RSHOULDER       : 'RSHOULDER',
        VK_PAD_LTRIGGER        : 'Throttle.Up',
        VK_PAD_RTRIGGER        : 'Throttle.Down',
        VK_PAD_LTHUMB_UP       : 'Pitch.Down',
        VK_PAD_LTHUMB_DOWN     : 'Pitch.Up',
        VK_PAD_LTHUMB_LEFT     : 'Roll.Left',
        VK_PAD_LTHUMB_RIGHT    : 'Roll.Right',
        VK_PAD_LTHUMB_UPLEFT   : 'PitchDown.RollLeft',
        VK_PAD_LTHUMB_UPRIGHT  : 'PitchDown.RollRight',
        VK_PAD_LTHUMB_DOWNLEFT : 'PitchUp.RollLeft',
        VK_PAD_LTHUMB_DOWNRIGHT: 'PitchUp.RollRight',
        VK_PAD_LTHUMB_PRESS    : 'LTHUMB_PRESS',
        VK_PAD_RTHUMB_UP       : 'POVHat.Up',
        VK_PAD_RTHUMB_DOWN     : 'POVHat.Down',
        VK_PAD_RTHUMB_LEFT     : 'POVHat.Left',
        VK_PAD_RTHUMB_RIGHT    : 'POVHat.Right',
        VK_PAD_RTHUMB_UPLEFT   : 'RTHUMB_UPLEFT',
        VK_PAD_RTHUMB_UPRIGHT  : 'RTHUMB_UPRIGHT',
        VK_PAD_RTHUMB_DOWNLEFT : 'RTHUMB_DOWNLEFT',
        VK_PAD_RTHUMB_DOWNRIGHT: 'RTHUMB_DOWNRIGHT',
        VK_PAD_RTHUMB_PRESS    : 'RTHUMB_PRESS'
    },
    XINPUT_DEVSUBTYPE_GUITAR: {
        VK_PAD_DPAD_UP         : 'Strum.Up',
        VK_PAD_DPAD_DOWN       : 'Strum.Down',
        VK_PAD_DPAD_LEFT       : 'D-Pad.Left',
        VK_PAD_DPAD_RIGHT      : 'D-Pad.Right',
        VK_PAD_A               : 'Fret.Green',
        VK_PAD_B               : 'Fret.Red',
        VK_PAD_X               : 'Fret.Blue',
        VK_PAD_Y               : 'Fret.Yellow',
        VK_PAD_START           : 'Button.Start',
        VK_PAD_BACK            : 'Button.Back',
        VK_PAD_LSHOULDER       : 'Fret.Orange',
        VK_PAD_RSHOULDER       : 'FretModifier.2',
        VK_PAD_LTRIGGER        : 'PickupSelector',
        VK_PAD_RTRIGGER        : 'FretModifier.1',
        VK_PAD_LTHUMB_UP       : 'Pitch.Down',
        VK_PAD_LTHUMB_DOWN     : 'Pitch.Up',
        VK_PAD_LTHUMB_LEFT     : 'Roll.Left',
        VK_PAD_LTHUMB_RIGHT    : 'Roll.Right',
        VK_PAD_LTHUMB_UPLEFT   : 'PitchDown.RollLeft',
        VK_PAD_LTHUMB_UPRIGHT  : 'PitchDown.RollRight',
        VK_PAD_LTHUMB_DOWNLEFT : 'PitchUp.RollLeft',
        VK_PAD_LTHUMB_DOWNRIGHT: 'PitchUp.RollRight',
        VK_PAD_LTHUMB_PRESS    : 'FretModifier.3',
        VK_PAD_RTHUMB_UP       : 'Orientation.Up',
        VK_PAD_RTHUMB_DOWN     : 'Orientation.Down',
        VK_PAD_RTHUMB_LEFT     : 'WhammyBar.Left',
        VK_PAD_RTHUMB_RIGHT    : 'WhammyBar.Right',
        VK_PAD_RTHUMB_UPLEFT   : 'RTHUMB_UPLEFT',
        VK_PAD_RTHUMB_UPRIGHT  : 'RTHUMB_UPRIGHT',
        VK_PAD_RTHUMB_DOWNLEFT : 'RTHUMB_DOWNLEFT',
        VK_PAD_RTHUMB_DOWNRIGHT: 'RTHUMB_DOWNRIGHT',
        VK_PAD_RTHUMB_PRESS    : 'RTHUMB_PRESS'
    },
    XINPUT_DEVSUBTYPE_DRUM_KIT: {
        VK_PAD_DPAD_UP         : 'D-Pad.Up',
        VK_PAD_DPAD_DOWN       : 'D-Pad.Down',
        VK_PAD_DPAD_LEFT       : 'D-Pad.Left',
        VK_PAD_DPAD_RIGHT      : 'D-Pad.Right',
        VK_PAD_A               : 'Tom.Floor',
        VK_PAD_B               : 'Drum.Snare',
        VK_PAD_X               : 'Tom.Low',
        VK_PAD_Y               : 'Tom.High',
        VK_PAD_START           : 'Button.Start',
        VK_PAD_BACK            : 'Button.Back',
        VK_PAD_LSHOULDER       : 'Drum.Bass',
        VK_PAD_RSHOULDER       : 'RSHOULDER',
        VK_PAD_LTRIGGER        : 'LTRIGGER',
        VK_PAD_RTRIGGER        : 'RTRIGGER',
        VK_PAD_LTHUMB_UP       : 'LTHUMB_UP',
        VK_PAD_LTHUMB_DOWN     : 'LTHUMB_DOWN',
        VK_PAD_LTHUMB_LEFT     : 'LTHUMB_LEFT',
        VK_PAD_LTHUMB_RIGHT    : 'LTHUMB_RIGHT',
        VK_PAD_LTHUMB_UPLEFT   : 'LTHUMB_UPLEFT',
        VK_PAD_LTHUMB_UPRIGHT  : 'LTHUMB_UPRIGHT',
        VK_PAD_LTHUMB_DOWNLEFT : 'LTHUMB_DOWNLEFT',
        VK_PAD_LTHUMB_DOWNRIGHT: 'LTHUMB_DOWNRIGHT',
        VK_PAD_LTHUMB_PRESS    : 'LTHUMB_PRESS',
        VK_PAD_RTHUMB_UP       : 'RTHUMB_UP',
        VK_PAD_RTHUMB_DOWN     : 'RTHUMB_DOWN',
        VK_PAD_RTHUMB_LEFT     : 'RTHUMB_LEFT',
        VK_PAD_RTHUMB_RIGHT    : 'RTHUMB_RIGHT',
        VK_PAD_RTHUMB_UPLEFT   : 'RTHUMB_UPLEFT',
        VK_PAD_RTHUMB_UPRIGHT  : 'RTHUMB_UPRIGHT',
        VK_PAD_RTHUMB_DOWNLEFT : 'RTHUMB_DOWNLEFT',
        VK_PAD_RTHUMB_DOWNRIGHT: 'RTHUMB_DOWNRIGHT',
        VK_PAD_RTHUMB_PRESS    : 'RTHUMB_PRESS'
    },
    XINPUT_DEVSUBTYPE_DANCE_PAD: {
        VK_PAD_DPAD_UP         : 'D-Pad.Up',
        VK_PAD_DPAD_DOWN       : 'D-Pad.Down',
        VK_PAD_DPAD_LEFT       : 'D-Pad.Left',
        VK_PAD_DPAD_RIGHT      : 'D-Pad.Right',
        VK_PAD_A               : 'Button.A',
        VK_PAD_B               : 'Button.B',
        VK_PAD_X               : 'Button.X',
        VK_PAD_Y               : 'Button.Y',
        VK_PAD_START           : 'Button.Start',
        VK_PAD_BACK            : 'Button.Back',
        VK_PAD_LSHOULDER       : 'LSHOULDER',
        VK_PAD_RSHOULDER       : 'RSHOULDER',
        VK_PAD_LTRIGGER        : 'LTRIGGER',
        VK_PAD_RTRIGGER        : 'RTRIGGER',
        VK_PAD_LTHUMB_UP       : 'LTHUMB_UP',
        VK_PAD_LTHUMB_DOWN     : 'LTHUMB_DOWN',
        VK_PAD_LTHUMB_LEFT     : 'LTHUMB_LEFT',
        VK_PAD_LTHUMB_RIGHT    : 'LTHUMB_RIGHT',
        VK_PAD_LTHUMB_UPLEFT   : 'LTHUMB_UPLEFT',
        VK_PAD_LTHUMB_UPRIGHT  : 'LTHUMB_UPRIGHT',
        VK_PAD_LTHUMB_DOWNLEFT : 'LTHUMB_DOWNLEFT',
        VK_PAD_LTHUMB_DOWNRIGHT: 'LTHUMB_DOWNRIGHT',
        VK_PAD_LTHUMB_PRESS    : 'LTHUMB_PRESS',
        VK_PAD_RTHUMB_UP       : 'RTHUMB_UP',
        VK_PAD_RTHUMB_DOWN     : 'RTHUMB_DOWN',
        VK_PAD_RTHUMB_LEFT     : 'RTHUMB_LEFT',
        VK_PAD_RTHUMB_RIGHT    : 'RTHUMB_RIGHT',
        VK_PAD_RTHUMB_UPLEFT   : 'RTHUMB_UPLEFT',
        VK_PAD_RTHUMB_UPRIGHT  : 'RTHUMB_UPRIGHT',
        VK_PAD_RTHUMB_DOWNLEFT : 'RTHUMB_DOWNLEFT',
        VK_PAD_RTHUMB_DOWNRIGHT: 'RTHUMB_DOWNRIGHT',
        VK_PAD_RTHUMB_PRESS    : 'RTHUMB_PRESS'
    },
    XINPUT_DEVSUBTYPE_ARCADE_STICK: {
        VK_PAD_DPAD_UP         : 'D-Pad.Up',
        VK_PAD_DPAD_DOWN       : 'D-Pad.Down',
        VK_PAD_DPAD_LEFT       : 'D-Pad.Left',
        VK_PAD_DPAD_RIGHT      : 'D-Pad.Right',
        VK_PAD_A               : 'Button.A',
        VK_PAD_B               : 'Button.B',
        VK_PAD_X               : 'Button.X',
        VK_PAD_Y               : 'Button.Y',
        VK_PAD_START           : 'Button.Start',
        VK_PAD_BACK            : 'Button.Back',
        VK_PAD_LSHOULDER       : 'LSHOULDER',
        VK_PAD_RSHOULDER       : 'RSHOULDER',
        VK_PAD_LTRIGGER        : 'Trigger.Left',
        VK_PAD_RTRIGGER        : 'Trigger.Right',
        VK_PAD_LTHUMB_UP       : 'LTHUMB_UP',
        VK_PAD_LTHUMB_DOWN     : 'LTHUMB_DOWN',
        VK_PAD_LTHUMB_LEFT     : 'LTHUMB_LEFT',
        VK_PAD_LTHUMB_RIGHT    : 'LTHUMB_RIGHT',
        VK_PAD_LTHUMB_UPLEFT   : 'LTHUMB_UPLEFT',
        VK_PAD_LTHUMB_UPRIGHT  : 'LTHUMB_UPRIGHT',
        VK_PAD_LTHUMB_DOWNLEFT : 'LTHUMB_DOWNLEFT',
        VK_PAD_LTHUMB_DOWNRIGHT: 'LTHUMB_DOWNRIGHT',
        VK_PAD_LTHUMB_PRESS    : 'LTHUMB_PRESS',
        VK_PAD_RTHUMB_UP       : 'RTHUMB_UP',
        VK_PAD_RTHUMB_DOWN     : 'RTHUMB_DOWN',
        VK_PAD_RTHUMB_LEFT     : 'RTHUMB_LEFT',
        VK_PAD_RTHUMB_RIGHT    : 'RTHUMB_RIGHT',
        VK_PAD_RTHUMB_UPLEFT   : 'RTHUMB_UPLEFT',
        VK_PAD_RTHUMB_UPRIGHT  : 'RTHUMB_UPRIGHT',
        VK_PAD_RTHUMB_DOWNLEFT : 'RTHUMB_DOWNLEFT',
        VK_PAD_RTHUMB_DOWNRIGHT: 'RTHUMB_DOWNRIGHT',
        VK_PAD_RTHUMB_PRESS    : 'RTHUMB_PRESS'
    },
    XINPUT_DEVSUBTYPE_ARCADE_PAD: {
        VK_PAD_DPAD_UP         : 'D-Pad.Up',
        VK_PAD_DPAD_DOWN       : 'D-Pad.Down',
        VK_PAD_DPAD_LEFT       : 'D-Pad.Left',
        VK_PAD_DPAD_RIGHT      : 'D-Pad.Right',
        VK_PAD_A               : 'Button.A',
        VK_PAD_B               : 'Button.B',
        VK_PAD_X               : 'Button.X',
        VK_PAD_Y               : 'Button.Y',
        VK_PAD_START           : 'Button.Start',
        VK_PAD_BACK            : 'Button.Back',
        VK_PAD_LSHOULDER       : 'Shoulder.Left',
        VK_PAD_RSHOULDER       : 'Shoulder.Right',
        VK_PAD_LTRIGGER        : 'Trigger.Left',
        VK_PAD_RTRIGGER        : 'Trigger.Right',
        VK_PAD_LTHUMB_UP       : 'LTHUMB_UP',
        VK_PAD_LTHUMB_DOWN     : 'LTHUMB_DOWN',
        VK_PAD_LTHUMB_LEFT     : 'LTHUMB_LEFT',
        VK_PAD_LTHUMB_RIGHT    : 'LTHUMB_RIGHT',
        VK_PAD_LTHUMB_UPLEFT   : 'LTHUMB_UPLEFT',
        VK_PAD_LTHUMB_UPRIGHT  : 'LTHUMB_UPRIGHT',
        VK_PAD_LTHUMB_DOWNLEFT : 'LTHUMB_DOWNLEFT',
        VK_PAD_LTHUMB_DOWNRIGHT: 'LTHUMB_DOWNRIGHT',
        VK_PAD_LTHUMB_PRESS    : 'LTHUMB_PRESS',
        VK_PAD_RTHUMB_UP       : 'RTHUMB_UP',
        VK_PAD_RTHUMB_DOWN     : 'RTHUMB_DOWN',
        VK_PAD_RTHUMB_LEFT     : 'RTHUMB_LEFT',
        VK_PAD_RTHUMB_RIGHT    : 'RTHUMB_RIGHT',
        VK_PAD_RTHUMB_UPLEFT   : 'RTHUMB_UPLEFT',
        VK_PAD_RTHUMB_UPRIGHT  : 'RTHUMB_UPRIGHT',
        VK_PAD_RTHUMB_DOWNLEFT : 'RTHUMB_DOWNLEFT',
        VK_PAD_RTHUMB_DOWNRIGHT: 'RTHUMB_DOWNRIGHT',
        VK_PAD_RTHUMB_PRESS    : 'RTHUMB_PRESS'
    },
}

CONTROLLER_MAPPINGS[XINPUT_DEVSUBTYPE_GUITAR_ALTERNATE] = (
    CONTROLLER_MAPPINGS[XINPUT_DEVSUBTYPE_GUITAR]
)
CONTROLLER_MAPPINGS[XINPUT_DEVSUBTYPE_GUITAR_BASS] = (
    CONTROLLER_MAPPINGS[XINPUT_DEVSUBTYPE_GUITAR]
)
If you like the work I have been doing then feel free to Image
3000
Posts: 37
Joined: Fri Aug 07, 2015 3:49 pm

Re: Xbox Controller - button combinations!

Post by 3000 »

Thank you! I can't use this yet can I?
sign my petition to save a 28-year-old young mother who is fighting Stage 4 cancer: https://www.change.org/p/help-cancer-pa ... on-the-nhs
User avatar
kgschlosser
Site Admin
Posts: 5190
Joined: Fri Jun 05, 2015 5:43 am
Location: Rocky Mountains, Colorado USA

Re: Xbox Controller - button combinations!

Post by kgschlosser »

Nooo.. it is going to be a little bit. I am in the process of trying to understand how the old plugin worked. I haven't quite grasped why some things were done. I may have to go out and buy an xbox controller
If you like the work I have been doing then feel free to Image
3000
Posts: 37
Joined: Fri Aug 07, 2015 3:49 pm

Re: Xbox Controller - button combinations!

Post by 3000 »

wow, that is amazing! I highly appreciate it. Controller is on me then. :)
just drop me a message with your PayPal Mail.
sign my petition to save a 28-year-old young mother who is fighting Stage 4 cancer: https://www.change.org/p/help-cancer-pa ... on-the-nhs
User avatar
kgschlosser
Site Admin
Posts: 5190
Joined: Fri Jun 05, 2015 5:43 am
Location: Rocky Mountains, Colorado USA

Re: Xbox Controller - button combinations!

Post by kgschlosser »

no need for that.. I have to make a trip out of the house today. I am going to check now to see who has one the cheapest. I have to plan these things. it takes me just over 20 minutes to get to the closest gas station. LOL
If you like the work I have been doing then feel free to Image
3000
Posts: 37
Joined: Fri Aug 07, 2015 3:49 pm

Re: Xbox Controller - button combinations!

Post by 3000 »

awesome :) I sincerely hope you'll have at least a use for the plugin then!!

Can't wait to test.
sign my petition to save a 28-year-old young mother who is fighting Stage 4 cancer: https://www.change.org/p/help-cancer-pa ... on-the-nhs
User avatar
kgschlosser
Site Admin
Posts: 5190
Joined: Fri Jun 05, 2015 5:43 am
Location: Rocky Mountains, Colorado USA

Re: Xbox Controller - button combinations!

Post by kgschlosser »

the only purpose I have for the plugin is to make EG a better piece of software.
If you like the work I have been doing then feel free to Image
Post Reply