Open jquyatt opened 1 month ago
Would be doable, do you in that case have examples of common vendor/product ids, and the input data they send with the click of different buttons?
In my case, I'm using the DSAN PerfectCue Micro (SCM Products), Vendor ID 1155 (0x0483), Product ID 8320 (0x2080). (I was able to simply pull that info from Karabiner-Elements.) It has a two button remote that sends right arrow and left arrow key presses.
I would think that you could use whichever module you choose to identify all the HIDs available and then possibly include a command training feature that listens for clicks from the device that you choose to assign the commands.
@vassbo
In the program EasyWorship, you have to "register" remote devices. Maybe that feature would work here (even though the USB dongle for the clicker is local). You could have a settings option for people to "register" a clicker and then attach a listener to the specific USB device that captures input from that device. Some older clickers may also use the pg up or pg down keys, so you may want to have a spot for the end user to select which keys (arrows or pg up/down) to use. It could go in the Settings->Connections Tab.
Describe the feature Allow FreeShow to detect and isolate input from a connected presentation clicker, enabling specific actions (e.g., advancing or reversing slides) to be triggered by the clicker even when FreeShow is minimized or not the active window. Other input devices (keyboards, mice, etc.) would not interfere with presentation actions.
Additional context As a user running AV for live events, I often need to perform tasks across multiple applications while presenting. However, I still need to advance slides using a presenter clicker without having to constantly bring the FreeShow window into focus. This feature would provide me with more flexibility in multitasking, allowing smooth transitions in my workflow while ensuring clicker input still works as expected.
I have previously implemented a workaround for this issue with ProPresenter by using Karabiner Elements to isolate my presentation clicker's input and convert it to key presses F19 and F20, then using Hammerspoon to turn those key presses into API calls for next/previous slide. I feel that FreeShow could benefit from having a solution like this baked into the program itself, since it could isolate the key presses without having to translate them to other keys or use other programs to send API calls.
Proposed Solution
Since FreeShow is already built with Electron, this feature can be implemented using existing cross-platform Node.js modules to handle USB devices. Here’s a high-level approach: