Git Product home page Git Product logo

muchimi / joystickgremlinex Goto Github PK

View Code? Open in Web Editor NEW
20.0 8.0 3.0 183.1 MB

Modified version of Joystick Gremlin to add features I wanted to have but were difficult to do as just a plugin, plus I wanted to run this as 64 bit and on a more current version of Python/QT.

License: GNU General Public License v3.0

HTML 3.25% Python 92.31% QML 4.41% Batchfile 0.02% JavaScript 0.02%
joystick simulation-control advanced-macro hardware-cockpit joystick-remote-control star-citizen vjoy midi osc

joystickgremlinex's People

Contributors

amadeus avatar bryceschmitt avatar dixonte avatar jc43081 avatar jmriego avatar moondragon85 avatar muchimi avatar whitemagic avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

joystickgremlinex's Issues

Uncaught exception: Traceback when running macro's using Hold / Toggle / Count options

image
image

Description:
The error here-above was observed anytime a macro was created using a Hold / Toggle or Count option in the macro settings.
Upon activation of the macro using the associated keybind, the macro would get executed and the message would pop-up simultaneously. If the macro was set to Hold, it would loop continuously.

How to reproduce:
(1) Create a macro with a blank profile;
(2) Set a Hold / toggle or Count setting;
(3) Activate profile and activate keybind.

Impact:
Moderate. Although the macro is being run, the pop-up will trigger a return to windows and cause cascading issues.

Something with the UI breaks

While fiddling around I discovered that something is breaking with the UI and it generates errors. I'll link a video that will tell more than a thousand words:

2023-06-29.03-56-07.mp4

I can consistently make this error pop up with the exact first few steps. You'll notice the longer you watch the video that once this error shows up it will come back in all kind of place.

How hard to have SimConnect Python API in plugins?

Hey Muchimi it's so awesome that you have put work into JG, I love this program and agree with you on the whole approach - so smart. Thank you.

Would it be hard to bring the dlls or python modules necessary to be able to use SimConnect interfacing with MSFS2020 directly inside JGEx plugins?

I've seen example code to use a python SimConnect API and realized if it were inside JGEx plugins it would simplify a billion things for fs2020. I think.

Thanks for any input!

Input Viewer window not resizable vertically

image

Description:
As per title. When using a large quantity of virtual devices, it becomes impossible to access the last ones due to the absence of scroll bars and option to resize.

Workaround:
None.

Impact:
Minimal, nuisance only.

Affected builds:
All.

Setting Vjoy conditions '"Activate if [Button] is [released] results in a max recursion depth error

Hi,

First of all, a gazillion thumbs up for keeping KJG alive and adding the network control feature. Soooo useful.

I have identified the following issue on my system : Whenever the following activation condition is used:
condition comparison="released" condition-type="vjoy"

Then the following error message gets displayed when selecting the associated button to edit the mapping.

2024-01-20 22:55:25 ERROR Uncaught exception:
Traceback (most recent call last):
File "gremlin\ui\common.py", line 695, in _execute_callback
File "gremlin\ui\activation_condition.py", line 635, in _modify_vjoy
File "gremlin\ui\activation_condition.py", line 495, in _create_ui
File "gremlin\ui\common.py", line 758, in init
File "gremlin\ui\common.py", line 559, in init
File "gremlin\ui\common.py", line 762, in _initialize
File "gremlin\joystick_handling.py", line 88, in vjoy_devices
RecursionError: maximum recursion depth exceeded.

JG Ex 13.40.3 / Vjoy 2.1.9 / HidHide 1.4.19.2.0 / Windows 11 Pro fresh install

Of note:

  1. After setting the field to "released" in JG, leaving the page and coming back, the field would display "pressed". The condition "released" never gets recorded by JG Ex. the xml profile has to be edited manually and the comparison tag changed from pressed to released.
  2. After editing the file manually, the script works as intended.

I have a significant amount of buttons relying on VJoy "released" conditions and any help would be greatly appreciated. At this time, I have to edit the xml profile with a code editor, I cannot use the JG interface due to this behavior.

Have a great day,

Lolo

Incorrect VJOY Pairing .... Issue hard to describe, see capture

0421.1.mp4

While troubleshooting pairings with the latest JG release, the following was observed :

Setting any pairing for my Virpil, button 11 would always result to VJOY2 button 57. Even if pairing left blank.

Several instances of the same type have been observed.

Cheers,

Changing Vjoy Action settings conditions via the GUI is not recorded / registered / causes crashes (max recursion depth)

First, you're a legend for crunching through updates so quickly.

While checking update 13.40.8ex for the max recursion depth fix, the following 2 issues were noticed :

(1) A new file was created in JG 13.40.8Ex.
(2) Button 1 of a Virpil joystick was selected and remapped to Vjoy device 1 / Button 1.
(3) A container condition was added with a Vjoy condition on Vjoy Device1.
(4) Selecting a VJOY device was successful, however:

When trying to select the button and/or axis for the condition, JG Ex crashes. At the same time, the CPU usage rises to 82degrees / 100%. After 2 minutes, the following message gets displayed :

image

(1) A new file was created as per before.
(2) A macro was created for button 2 with one action in the list.
(3) The action was changed to "Vjoy"in the action settings.

The option to select a button and/or a axis was missing :

image

Max recursion depth (13.40.7ex)

Unfortunately, 13.40.7 did not solve the max recursion depth error reported on 13.40.4 :

image

I can provide replication steps if required. Here is an example of XML snippet causing the error anytime the axis in question is selected via the GUI :

This code allows for the activation a the Vjoy#2 button#4 anytime the X axis is moved beyond 99% in either direction. (It enables auto boost in Star citizen when hitting the stick max aft or fwd limit).

Cheers and many thanks for the continuous work on this awesome program. You're a legend.

Vjoy action condition not recorded when button set to "released""

Bug.JG.Ex.3.mp4

Description:
Whenever a condition is set to a container or action and involves a Vjoy button condition, it is impossible to set the condtion to 'released' via the UI. If the button menu is left after setting the condition to 'released', it is automatically set back to 'pressed'.

Workaround:
Editing the profile XML and changing the tag works as intended. That is until the button is called up in the UI at which point it will revert back to pressed.

Impact
Not critical, more of a UI nuisance than anything else. However, the auto revert back to pressed when the button is inadvertently selected is frustrating.

Note
This issue has been present on every version of JG since 13.30 and every version of JG Ex since 13.40

Cheers,

Selecting a mode crashes the software

From a fresh new profile:

  • Tools -> Managed Mode
  • Add new mode (let's call it Test)
  • Select the mode created (Test) at the upper-right side of the window.
  • The software hard crashes (no error window)

Question: Looking to add a new action plugin, publish on a fork or create a PR?

I am writing a new action plugin (couldn’t use the plugin feature) and since you have a more recent version (plus lots of new features), I used your version as my starting point. As I near finalizing it, I am wondering if you would prefer me to publish a separate version on my fork or merge my changes with a PR. My changes are mostly within the new action plugin, but a few changes were made to the base code (and I fixed a few bugs).

My only concern going the PR route is I may have a potential flurry of PRs for fixes and I didn’t know how much you wanted to be bothered going forward. You can check out my changes in more details if you want by visiting my fork and the “star citizen” branch. Let me know your thoughts as I could go either way.

Thanks for continuing to extend JG. It is a great tool!

VjoyRemap button press with Tempo not behaving as expected

Hello!

When using a Tempo logic and fitting a VjoyRemap the button press won't behave as a 'click'. When I press the physical device button it will outputs the vJoy button press, but it won't depress it. The vJoy button is pressed forever and even when pressing again the physical device button the vJoy button will keep its pressed state.

image

Additionally unrelated to the issue, I wanted to point out that 'Button Press' and 'Pulse Button' are duplicated in the Mode list:
image

ERROR Uncaught exception: AttributeError: RecursionError:

G'day. I'm keen on this version and have it along side with the previous authors version.
Having an issue where this version gets exceptions, where the previous author version works.

Hopefully the log can assist.

user.log
2023-09-26 01:14:53      DEBUG --------------------------------------------------------------------------------
2023-09-26 01:14:53      DEBUG 2023-09-26 01:14
2023-09-26 01:14:53      DEBUG Starting Joystick Gremlin R13.3
2023-09-26 01:14:53      DEBUG --------------------------------------------------------------------------------
2023-09-26 01:14:53       INFO Initializing joystick devices
2023-09-26 01:14:53      DEBUG 11 joysticks detected
2023-09-26 01:14:53      DEBUG Added: name=vJoy Device guid={60C97400-1AFC-11EE-8002-444553540000}
2023-09-26 01:14:53      DEBUG Added: name=SimXperience AccuForce guid={60CCCF60-1AFC-11EE-8011-444553540000}
2023-09-26 01:14:53      DEBUG Added: name=vJoy Device guid={60CA1040-1AFC-11EE-8005-444553540000}
2023-09-26 01:14:53      DEBUG Added: name=vJoy Device guid={60CE7D10-1AFC-11EE-8019-444553540000}
2023-09-26 01:14:53      DEBUG Added: name=VRS DirectForce Pro Pedals guid={60CCF670-1AFC-11EE-8014-444553540000}
2023-09-26 01:14:53      DEBUG Added: name=FANATEC CSL Elite Pedals LC guid={60CD92B0-1AFC-11EE-8015-444553540000}
2023-09-26 01:14:53      DEBUG Added: name=G27 Racing Wheel guid={60CE2EF0-1AFC-11EE-8017-444553540000}
2023-09-26 01:14:53      DEBUG Added: name=vJoy Device guid={60CE7D10-1AFC-11EE-801B-444553540000}
2023-09-26 01:14:53      DEBUG Added: name=vJoy Device guid={60CEA420-1AFC-11EE-801D-444553540000}
2023-09-26 01:14:53      DEBUG Added: name=vJoy Device guid={60CEA420-1AFC-11EE-801F-444553540000}
2023-09-26 01:14:53      DEBUG Added: name=vJoy Device guid={12048880-484E-11EE-8002-444553540000}
2023-09-26 01:14:53      DEBUG vJoy guid={60C97400-1AFC-11EE-8002-444553540000}: (8, 105, 0)
2023-09-26 01:14:53      DEBUG vJoy guid={60CA1040-1AFC-11EE-8005-444553540000}: (8, 106, 0)
2023-09-26 01:14:53      DEBUG vJoy guid={60CE7D10-1AFC-11EE-8019-444553540000}: (8, 107, 0)
2023-09-26 01:14:53      DEBUG vJoy guid={60CE7D10-1AFC-11EE-801B-444553540000}: (8, 101, 0)
2023-09-26 01:14:53      DEBUG vJoy guid={60CEA420-1AFC-11EE-801D-444553540000}: (8, 102, 0)
2023-09-26 01:14:53      DEBUG vJoy guid={60CEA420-1AFC-11EE-801F-444553540000}: (8, 103, 0)
2023-09-26 01:14:53      DEBUG vJoy guid={12048880-484E-11EE-8002-444553540000}: (8, 104, 0)
2023-09-26 01:14:53      DEBUG vjoy id 1: (8, 101, 0) - MATCH
2023-09-26 01:14:53      DEBUG vjoy id 2: (8, 102, 0) - MATCH
2023-09-26 01:14:54      DEBUG vjoy id 3: (8, 103, 0) - MATCH
2023-09-26 01:14:54      DEBUG vjoy id 4: (8, 104, 0) - MATCH
2023-09-26 01:14:54      DEBUG vjoy id 5: (8, 105, 0) - MATCH
2023-09-26 01:14:54      DEBUG vjoy id 6: (8, 106, 0) - MATCH
2023-09-26 01:14:54      DEBUG vjoy id 7: (8, 107, 0) - MATCH
2023-09-26 01:14:54       INFO Initializing joystick devices
2023-09-26 01:14:54      DEBUG 11 joysticks detected
2023-09-26 01:14:54      DEBUG Added: name=vJoy Device guid={60C97400-1AFC-11EE-8002-444553540000}
2023-09-26 01:14:54      DEBUG Added: name=SimXperience AccuForce guid={60CCCF60-1AFC-11EE-8011-444553540000}
2023-09-26 01:14:54      DEBUG Added: name=vJoy Device guid={60CA1040-1AFC-11EE-8005-444553540000}
2023-09-26 01:14:54      DEBUG Added: name=vJoy Device guid={60CE7D10-1AFC-11EE-8019-444553540000}
2023-09-26 01:14:54      DEBUG Added: name=VRS DirectForce Pro Pedals guid={60CCF670-1AFC-11EE-8014-444553540000}
2023-09-26 01:14:54      DEBUG Added: name=FANATEC CSL Elite Pedals LC guid={60CD92B0-1AFC-11EE-8015-444553540000}
2023-09-26 01:14:54      DEBUG Added: name=G27 Racing Wheel guid={60CE2EF0-1AFC-11EE-8017-444553540000}
2023-09-26 01:14:54      DEBUG Added: name=vJoy Device guid={60CE7D10-1AFC-11EE-801B-444553540000}
2023-09-26 01:14:54      DEBUG Added: name=vJoy Device guid={60CEA420-1AFC-11EE-801D-444553540000}
2023-09-26 01:14:54      DEBUG Added: name=vJoy Device guid={60CEA420-1AFC-11EE-801F-444553540000}
2023-09-26 01:14:54      DEBUG Added: name=vJoy Device guid={12048880-484E-11EE-8002-444553540000}
2023-09-26 01:14:54      DEBUG Removed: name=vJoy Device guid={60C97400-1AFC-11EE-8002-444553540000}
2023-09-26 01:14:54      DEBUG Removed: name=SimXperience AccuForce guid={60CCCF60-1AFC-11EE-8011-444553540000}
2023-09-26 01:14:54      DEBUG Removed: name=vJoy Device guid={60CA1040-1AFC-11EE-8005-444553540000}
2023-09-26 01:14:54      DEBUG Removed: name=vJoy Device guid={60CE7D10-1AFC-11EE-8019-444553540000}
2023-09-26 01:14:54      DEBUG Removed: name=VRS DirectForce Pro Pedals guid={60CCF670-1AFC-11EE-8014-444553540000}
2023-09-26 01:14:54      DEBUG Removed: name=FANATEC CSL Elite Pedals LC guid={60CD92B0-1AFC-11EE-8015-444553540000}
2023-09-26 01:14:54      DEBUG Removed: name=G27 Racing Wheel guid={60CE2EF0-1AFC-11EE-8017-444553540000}
2023-09-26 01:14:54      DEBUG Removed: name=vJoy Device guid={60CE7D10-1AFC-11EE-801B-444553540000}
2023-09-26 01:14:54      DEBUG Removed: name=vJoy Device guid={60CEA420-1AFC-11EE-801D-444553540000}
2023-09-26 01:14:54      DEBUG Removed: name=vJoy Device guid={60CEA420-1AFC-11EE-801F-444553540000}
2023-09-26 01:14:54      DEBUG Removed: name=vJoy Device guid={12048880-484E-11EE-8002-444553540000}
2023-09-26 01:14:54      DEBUG vJoy guid={60C97400-1AFC-11EE-8002-444553540000}: (8, 105, 0)
2023-09-26 01:14:54      DEBUG vJoy guid={60CA1040-1AFC-11EE-8005-444553540000}: (8, 106, 0)
2023-09-26 01:14:54      DEBUG vJoy guid={60CE7D10-1AFC-11EE-8019-444553540000}: (8, 107, 0)
2023-09-26 01:14:54      DEBUG vJoy guid={60CE7D10-1AFC-11EE-801B-444553540000}: (8, 101, 0)
2023-09-26 01:14:54      DEBUG vJoy guid={60CEA420-1AFC-11EE-801D-444553540000}: (8, 102, 0)
2023-09-26 01:14:54      DEBUG vJoy guid={60CEA420-1AFC-11EE-801F-444553540000}: (8, 103, 0)
2023-09-26 01:14:54      DEBUG vJoy guid={12048880-484E-11EE-8002-444553540000}: (8, 104, 0)
2023-09-26 01:14:54      DEBUG vjoy id 1: (8, 101, 0) - MATCH
2023-09-26 01:14:54      DEBUG vjoy id 2: (8, 102, 0) - MATCH
2023-09-26 01:14:54      DEBUG vjoy id 3: (8, 103, 0) - MATCH
2023-09-26 01:14:54      DEBUG vjoy id 4: (8, 104, 0) - MATCH
2023-09-26 01:14:54      DEBUG vjoy id 5: (8, 105, 0) - MATCH
2023-09-26 01:14:54      DEBUG vjoy id 6: (8, 106, 0) - MATCH
2023-09-26 01:14:54      DEBUG vjoy id 7: (8, 107, 0) - MATCH
2023-09-26 01:14:54       INFO Checking vJoy installation
2023-09-26 01:14:54       INFO Initializing plugins
2023-09-26 01:14:54      DEBUG Loaded: cycle-modes
2023-09-26 01:14:54      DEBUG Loaded: description
2023-09-26 01:14:54      DEBUG Loaded: macro
2023-09-26 01:14:54      DEBUG Loaded: map-to-keyboard
2023-09-26 01:14:54      DEBUG Loaded: map-to-mouse
2023-09-26 01:14:54      DEBUG Loaded: map_to_mouse_ex
2023-09-26 01:14:54       INFO Initializing joystick devices
2023-09-26 01:14:54      DEBUG 11 joysticks detected
2023-09-26 01:14:54      DEBUG Added: name=vJoy Device guid={60C97400-1AFC-11EE-8002-444553540000}
2023-09-26 01:14:54      DEBUG Added: name=SimXperience AccuForce guid={60CCCF60-1AFC-11EE-8011-444553540000}
2023-09-26 01:14:54      DEBUG Added: name=vJoy Device guid={60CA1040-1AFC-11EE-8005-444553540000}
2023-09-26 01:14:54      DEBUG Added: name=vJoy Device guid={60CE7D10-1AFC-11EE-8019-444553540000}
2023-09-26 01:14:54      DEBUG Added: name=VRS DirectForce Pro Pedals guid={60CCF670-1AFC-11EE-8014-444553540000}
2023-09-26 01:14:54      DEBUG Added: name=FANATEC CSL Elite Pedals LC guid={60CD92B0-1AFC-11EE-8015-444553540000}
2023-09-26 01:14:54      DEBUG Added: name=G27 Racing Wheel guid={60CE2EF0-1AFC-11EE-8017-444553540000}
2023-09-26 01:14:54      DEBUG Added: name=vJoy Device guid={60CE7D10-1AFC-11EE-801B-444553540000}
2023-09-26 01:14:54      DEBUG Added: name=vJoy Device guid={60CEA420-1AFC-11EE-801D-444553540000}
2023-09-26 01:14:54      DEBUG Added: name=vJoy Device guid={60CEA420-1AFC-11EE-801F-444553540000}
2023-09-26 01:14:54      DEBUG Added: name=vJoy Device guid={12048880-484E-11EE-8002-444553540000}
2023-09-26 01:14:54      DEBUG Removed: name=vJoy Device guid={60C97400-1AFC-11EE-8002-444553540000}
2023-09-26 01:14:54      DEBUG Removed: name=SimXperience AccuForce guid={60CCCF60-1AFC-11EE-8011-444553540000}
2023-09-26 01:14:54      DEBUG Removed: name=vJoy Device guid={60CA1040-1AFC-11EE-8005-444553540000}
2023-09-26 01:14:54      DEBUG Removed: name=vJoy Device guid={60CE7D10-1AFC-11EE-8019-444553540000}
2023-09-26 01:14:54      DEBUG Removed: name=VRS DirectForce Pro Pedals guid={60CCF670-1AFC-11EE-8014-444553540000}
2023-09-26 01:14:54      DEBUG Removed: name=FANATEC CSL Elite Pedals LC guid={60CD92B0-1AFC-11EE-8015-444553540000}
2023-09-26 01:14:54      DEBUG Removed: name=G27 Racing Wheel guid={60CE2EF0-1AFC-11EE-8017-444553540000}
2023-09-26 01:14:54      DEBUG Removed: name=vJoy Device guid={60CE7D10-1AFC-11EE-801B-444553540000}
2023-09-26 01:14:54      DEBUG Removed: name=vJoy Device guid={60CEA420-1AFC-11EE-801D-444553540000}
2023-09-26 01:14:54      DEBUG Removed: name=vJoy Device guid={60CEA420-1AFC-11EE-801F-444553540000}
2023-09-26 01:14:54      DEBUG Removed: name=vJoy Device guid={12048880-484E-11EE-8002-444553540000}
2023-09-26 01:14:54      DEBUG vJoy guid={60C97400-1AFC-11EE-8002-444553540000}: (8, 105, 0)
2023-09-26 01:14:54      DEBUG vJoy guid={60CA1040-1AFC-11EE-8005-444553540000}: (8, 106, 0)
2023-09-26 01:14:54      DEBUG vJoy guid={60CE7D10-1AFC-11EE-8019-444553540000}: (8, 107, 0)
2023-09-26 01:14:54      DEBUG vJoy guid={60CE7D10-1AFC-11EE-801B-444553540000}: (8, 101, 0)
2023-09-26 01:14:54      DEBUG vJoy guid={60CEA420-1AFC-11EE-801D-444553540000}: (8, 102, 0)
2023-09-26 01:14:54      DEBUG vJoy guid={60CEA420-1AFC-11EE-801F-444553540000}: (8, 103, 0)
2023-09-26 01:14:54      DEBUG vJoy guid={12048880-484E-11EE-8002-444553540000}: (8, 104, 0)
2023-09-26 01:14:54      DEBUG vjoy id 1: (8, 101, 0) - MATCH
2023-09-26 01:14:54      DEBUG vjoy id 2: (8, 102, 0) - MATCH
2023-09-26 01:14:54      DEBUG vjoy id 3: (8, 103, 0) - MATCH
2023-09-26 01:14:54      DEBUG vjoy id 4: (8, 104, 0) - MATCH
2023-09-26 01:14:54      DEBUG vjoy id 5: (8, 105, 0) - MATCH
2023-09-26 01:14:54      DEBUG vjoy id 6: (8, 106, 0) - MATCH
2023-09-26 01:14:54      DEBUG vjoy id 7: (8, 107, 0) - MATCH
2023-09-26 01:14:54      DEBUG Loaded: VjoyRemap
2023-09-26 01:14:54      DEBUG Loaded: noop
2023-09-26 01:14:54      DEBUG Loaded: pause
2023-09-26 01:14:54      DEBUG Loaded: play-sound
2023-09-26 01:14:54      DEBUG Loaded: previous-mode
2023-09-26 01:14:54      DEBUG Loaded: remap
2023-09-26 01:14:54      DEBUG Loaded: response-curve
2023-09-26 01:14:54      DEBUG Loaded: resume
2023-09-26 01:14:54      DEBUG Loaded: split-axis
2023-09-26 01:14:54      DEBUG Loaded: switch-mode
2023-09-26 01:14:54      DEBUG Loaded: temporary-mode-switch
2023-09-26 01:14:55      DEBUG Loaded: text-to-speech
2023-09-26 01:14:55      DEBUG Loaded: toggle-pause
2023-09-26 01:14:55      DEBUG Loaded: basic
2023-09-26 01:14:55      DEBUG Loaded: chain
2023-09-26 01:14:55      DEBUG Loaded: double_tap
2023-09-26 01:14:55      DEBUG Loaded: hat_buttons
2023-09-26 01:14:55      DEBUG Loaded: smart_toggle
2023-09-26 01:14:55      DEBUG Loaded: tempo
2023-09-26 01:14:55      DEBUG Gremlin RPC client started...
2023-09-26 01:14:55       INFO Gremlin UI created
2023-09-26 01:14:55       INFO Gremlin UI launching
2023-09-26 01:15:01      DEBUG Gremlin RPC client stopped.
2023-09-26 01:15:31      ERROR Uncaught exception:
Traceback (most recent call last):
   File "gremlin\ui\common.py", line 695, in _execute_callback
   File "D:\fs\fs0\p\f\joystick.gremlin\.extras\JoystickGremlinEx\joystick_gremlin.10.40.3ex\action_plugins\macro\__init__.py", line 677, in _modify_vjoy
    self._vjoy_ui()
   File "D:\fs\fs0\p\f\joystick.gremlin\.extras\JoystickGremlinEx\joystick_gremlin.10.40.3ex\action_plugins\macro\__init__.py", line 392, in _vjoy_ui
    self.ui_elements["vjoy_selector"] = gremlin.ui.common.VJoySelector(
                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   File "gremlin\ui\common.py", line 758, in __init__
   File "gremlin\ui\common.py", line 561, in __init__
   File "gremlin\ui\common.py", line 673, in _create_input_dropdown
   File "gremlin\common.py", line 182, in input_to_ui_string
   File "enum.py", line 717, in __call__
   File "enum.py", line 1106, in __new__
 RecursionError: maximum recursion depth exceeded while calling a Python object

2023-09-26 01:15:31      ERROR Uncaught exception:
Traceback (most recent call last):
   File "gremlin\ui\device_tab.py", line 445, in input_item_selected_cb
   File "gremlin\ui\device_tab.py", line 56, in __init__
   File "gremlin\ui\device_tab.py", line 122, in _create_dropdowns
   File "gremlin\ui\common.py", line 810, in __init__
   File "gremlin\ui\common.py", line 829, in _valid_action_list
 RecursionError: maximum recursion depth exceeded

2023-09-26 01:15:31      ERROR Uncaught exception:
Traceback (most recent call last):
   File "joystick_gremlin.py", line 860, in _joystick_input_selection
   File "joystick_gremlin.py", line 838, in _process_joystick_input_selection
   File "joystick_gremlin.py", line 1355, in _should_process_input
   File "gremlin\input_devices.py", line 1707, in should_process
   File "gremlin\input_devices.py", line 1746, in _process_axis
   File "gremlin\event_handler.py", line 99, in __eq__
   File "gremlin\event_handler.py", line 122, in __hash__
   File "dill\__init__.py", line 215, in __hash__
 RecursionError: maximum recursion depth exceeded while calling a Python object

2023-09-26 01:15:42       INFO Gremlin UI terminated
2023-09-26 01:15:42       INFO Terminating Gremlin

Virus detected

JoystickGremlinEX is always be detected as a Virus! Iam the only one, who got this ?

Screenshot 2024-05-28 190422

Vjoypulse duration setting not recorded in xml file

Hi,

As per the title, it appears that the duration entered when selecting a Pulse button is not being recorded. Changing the default from 250ms to another value works until JG Ex is closed. Reopening the file resulted in the value reverting back to 250ms.

Inspecting the xml file using Visual Code Studio has shown that changing the duration value was not recorded.

I am using pulse buttons as a workaround to the tempo issue reported as issue 6. However the default value of 250ms is too long and results in missed inputs in games like Star Citizen.

Changing the default to 50ms would temporarily fix the problem until the duration value can be recorded in the xml file.

Cheers !

JoystickGremlinEx 13.40.8ex crashes if you start program clean with no prior run.

JoystickGremlinEx 13.40.7ex crashes if you start program clean with no prior run.

Unhandled exception in script — text
Failed to execute script 'joystick_gremlin' due to unhandled exception: [Errno 2] No such file or directory:  
'c:\\users\\samkat\\joystick gremlin\\config.json'  
  
Traceback (most recent call last):
File "joystick_gremlin.py", line 37, in <module>
File "<frozen importlib,_bootstrap>", line 1178, in _find_and_load
File "<frozen importlib,_bootstrap>", line 1149, in _find_and_load_unlocked
File "<frozen importlib,_bootstrap>", line 690, in _load_unlocked
File "Pylnstaller\loader\pyimod02_importers.py", line 352, in exec_module
File "gremlin\_init _. py", line 18, in <module>
File "<frozen importlib,_bootstrap>", line 1178, in _find_and_load
File "<frozen importlib,_bootstrap>", line 1149, in _find_and_load_unlocked
File "<frozen importlib,_bootstrap>", line 690, in _load_unlocked
File "Pylnstaller\loader\pyimod02_importers.py", line 352, in exec_module
File "gremlin\actions.py", line 24, in <module>
File "<frozen importlib,_bootstrap>", line 1178, in _find_and_load
File "<frozen importlib,_bootstrap>", line 1149, in_find_and_load_unlocked
File "<frozen importlib,_bootstrap>", line 690, in_load_unlocked
File "Pylnstaller\loader\pyimod02_importers.py", line 352, in exec_module
File "gremlin\ base_classes.py", line 27, in <module>
File "<frozen importlib,_bootstrap>", line 1178, in _find_and_load
File "<frozen importlib,_bootstrap>", line 1149, in _find_and_load_unlocked
File "<frozen importlib,_bootstrap>", line 690, in _load_unlocked
File "Pylnstaller\loader\pyimod02_importers.py", line 352, in exec_module
File "gremlin\profile.py", line 35, in <module>
File "<frozen importlib,_bootstrap>", line 1178, in _find_and_load
File "<frozen importlib,_bootstrap>", line 1149, in_find_and_load_unlocked
File "<frozen importlib,_bootstrap>", line 690, in_load_unlocked
File "Pylnstaller\loader\pyimod02_importers.py", line 352, in exec_module
File "gremlin\input_devices.py", line 359, in <module>
File "gremlin\common.py", line 34, in _call_
File "gremlin\input_devices.py", line 239, in _init
File "gremlin\ common.py", line 34, in _call
File "gremlin\config.py", line 38, in _init
File "gremlin\config.py", line 78, in reload
File "gremlin\config.py", line 83, in save
FileNotFoundError: [Errno 2] No such file or directory: 'c:\\users\\samkat\\joystick gremlin\\config.json'
Unhandled exception in script — image

240413-023827131-joystick_gremlin-1200x1348-SKG-DV-005-SKG-DV-005-samkat

Missing icons in the Macro container

image

Test Conditions:
JG 13.40.12ex_d

Description:
The icons associated with creating and deleting actions are missing and the space is blank.

Workaround:
None.

Impact.
Minimal. The buttons are still functional when clicking in the blank space.

Uncaught Exception

I searched under closed issues and noticed a issue marked as closed crashing with modes, when switching modes I am getting the below error. Sorry if this is repeating a known issue already.

It might be a configuration issue on my end, just recently started using this tool. In the base Joystick Gremlin was not having this error, being able to set the start axis value is why I switched to this Ex thank you.

Been using 13.40.4 and get this error anytime I go to switch modes to edit mappings, it does not prevent the modes from working with the bindings. To make sure it wasn't just my profile, I downloaded 13.40.9 and tested with a new blank profile, creating a new test mode and attempting to switch into it has the same error.

uncaught exception

VjoyRemap green/orange balls not updating correctly while in a session

The issues I'll describe is a UI problem and happens while in a session. If the software is closed and opened back everything is correctly presented.

To make it simple the use case starts with a new empty profile from a random physical button. When creating a VjoyRemap the vJoy button 1 is selected be default and the ball status is orange, no problem here. But then:

  1. If I select vJoy button 2 from the radio choices (and not from the list) the ball status doesn't update and stays green. If I select another physical button and come back to the previous physical button where I was configuring VjoyRemap, the ball status of vJoy button 2 updates to orange.

  2. Starting from 1), if I switch my choice to another vJoy button (let's say number 3) then the previous selected vJoy button (number 2) will permanently keep it's statue ball in orange in the future. This applies to all future change. Meaning you can have selected only vJoy button 9, but have vJoy button 1 to 5 (as an example) statue balls in orange because they were previously selected (turned orange by the workaround in 1)).

  3. Issue 2) persist when creating a new profile. Meaning in a new fresh profile, creating a VjoyRemap will have several statue balls already in orange from previous operations.

Randomly stop and delete Joys and profile.

hi !
I hide my joys after i load the profile into JG. But randomly everything stops and my joys are not anymore recognize because of the hiding. After that all my profil disapear, and i need to unhide, shut JG, load the profile, and hide again... Is there a way to force the profile even with any connection or deconection ?!

I need to precise : my XboxControler isn't connected, and i use à Logitech G915 Wireless and a Logitech 502 Wireless sometimes they have a standbye mode. It can be the problem ?!

image_2024-02-12_213427080

EDIT :
I've go this error at the lauch too.

image_2024-02-12_213859767

loading Logitech X56 ghost-input-filter plugin fails

When the plugin (which works perfectly in the original JoystickGremlin is loaded and configured, version 13.40.2 errors with a generic message:

"Unable to launch user plugin due to an error:". No actual error is listed however.

The user log for the plugin indicates is it actually being loaded though, but JG doesn't like something and stops working properly after the error.

This plugin is the reason I use JG(Ex).

Win10, Python 3.11 x64 installed seperately.
All updates installed.
JG is located in a writable location: "%USERPROFILE%\joystick_gremlin"

Runaway memory usage - apparently vJoy related?

This is a new one on me, because I've been using this version ok for a month or so and I've not changed any devices in the period.

Last entry in debug.txt before either there's a quite rapid runaway in memory usage, or the process just stops.

[2024-03-02 10:43:17.891] [debug] [info] {504FB840-FF80-11EA-800C-444553540000}: Processing device: vJoy Device
[2024-03-02 10:43:17.892] [debug] [info] Device summary: vJoy Device {504FB840-FF80-11EA-800C-444553540000}
[2024-03-02 10:43:17.892] [debug] [info] Axis=8 Buttons=32 Hats=0
[2024-03-02 10:43:17.892] [debug] [info] Axis map
[2024-03-02 10:43:17.892] [debug] [info]   linear=1 id=1
[2024-03-02 10:43:17.892] [debug] [info]   linear=2 id=2
[2024-03-02 10:43:17.892] [debug] [info]   linear=3 id=3
[2024-03-02 10:43:17.892] [debug] [info]   linear=4 id=4
[2024-03-02 10:43:17.892] [debug] [info]   linear=5 id=5
[2024-03-02 10:43:17.892] [debug] [info]   linear=6 id=6
[2024-03-02 10:43:17.892] [debug] [info]   linear=7 id=7
[2024-03-02 10:43:17.892] [debug] [info]   linear=8 id=8
[2024-03-02 10:43:17.898] [debug] [error] {CAD14A50-FF7D-11EA-8007-444553540000}: Attempted to read buffered device data from a device that is not buffered. (DIERR_NOTBUFFERED)
[2024-03-02 10:43:17.898] [debug] [error] {CAD14A50-FF7D-11EA-8007-444553540000} Failed reading device in buffered mode, falling back to polling, Attempted to read buffered device data from a device that is not buffered. (DIERR_NOTBUFFERED)
[2024-03-02 10:43:17.898] [debug] [error] {65C0E930-07B1-11EC-8001-444553540000}: Attempted to read buffered device data from a device that is not buffered. (DIERR_NOTBUFFERED)

The old 32bit original version starts up & sits at 50MB or so with the same config. I don't know whether it's a quirk of my install or I've just found a problem that hasn't shown up yet, but I thought some feedback is better than none. Thanks for keeping this util alive :)

Installation

@muchimi
Sorry for being obtuse on this. But what's the proper way to install this thing?
Do you just put the folder in Program Files and run the executable? Well that doesn't work and just produces an error.
Sorry if this is obvious and I missed it, but could you provide installation instructions? Especially if one wanted to run the original Joystick Gremlin version along-side this new Branch version? For testing etc.

Thanks

Cannot launch

Hello!

When I try to launch the software it doesn't open. Here is the debug.txt content:
debug.txt

Any idea why?

Edit: Tried with only vJoy loaded and it still doesn't open and there's no message in debug.txt. Also a joystick_gremlin.exe instance is held in task manager and I have to manually kill it.

Vjoyremap Button Press inside Tempo acting as Toggle

0421.mp4

See capture above.

Performed on JG Ex 13.40.9Ex, downloaded 20 Apr. Attempting to set a tempo in the GUI with a VJOYremap results in Button Press behaving somewhat like a Toggle.

Workaround: Use pulse button instead of button press.

Cheers !

Discussion on Input repeater not working on Tempo (and probably other complex usages)

Hello, me again.

So this is a big one and may not be easily fixable, but I wanted to get your opinion about it. The issue I'm going to describe also exists in the original gremlin software. In fact I originally made several research to see if I could find a fix or band-aid solution about it and I stumble on gremlinEx which I wanted to see if it resolved the issue or not: sadly it doesn't but there's still interesting features keeping me around.

So here are the details. As you may know, having a physical device showing at the same time of having mappings to vjoy is going to create confusion for bindings in-game. For that we have the input repeater. The thing is, the implemented input repeater seems to be working on the simple scenario of: one physical button press => one vjoy button. When it gets more complicated it seems the input repeater is getting confused.

In my setup I use the Tempo logic (short press = one vjoy button, long press = another vjoy button), so I'll focus on that part. Simply put, the input repeater doesn't always repeat the appropriate output and it even seems the tempo delay somehow affects the behavior.

Here's two examples. One with 0.50 delay, and another with 0.20 delay. Both examples will use one physical button mapped to a tempo logic on which short press = vjoy btn 1 and long press = vjoy btn 2.

With 0.50 delay, a short press will result of vjoy btn 1 to repeat (correct). A long press will result of vjoy btn 1 to repeat (not correct, should be btn 2):

2023-06-29.02-08-26.mp4

With 0.20 delay, a short press will result of vjoy btn 2 to repeat (not correct, should be btn 1). A long press will result of vjoy btn 2 to repeat (correct):

2023-06-29.02-18-40.mp4

(VjoyRemap has the same behavior)

So as you can see things are getting real weird. This is an important feature for me to work, but I got the feeling from my understanding it won't be something easy to correct. What is your opinion on it? Did you already notice it? Do you see a way to make it work (gremlin code or plugins) or is it a though one to tackle? I'm trying to figure out if I can have some hope or if I should put aside the idea on getting the repeater to work on my use case.

Sorry for the wall of text and thanks in advance.

Cannot select vJoy as Input

Hi,

Thanks for your efforts developing this. It looks really useful as I have a use case for sending Joystick Gremlin across the network to my gaming machine.
However, I am running into a problem whereby I cannot select a vJoy 1 as an input device. The UI shows me clicking on the box, but never confirms it with a tick and doesn't "move" the vJoy 1 tab like the original software does.
This works fine in the original version I have installed.

Thanks again and hopefully you can find the problem :)

Problem playing sound

I'm creating a new profile again with JoystickGremlinEX, but when I set up a PlaySound, when I run it I get an error screen that I attach. Thanks.
JoystickGremlinEx Fallo PlaySound

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.