Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Streamdeck + Encoder Rotation Stop #3179

Open
2 tasks done
Lukeb873 opened this issue Dec 14, 2024 · 4 comments
Open
2 tasks done

Streamdeck + Encoder Rotation Stop #3179

Lukeb873 opened this issue Dec 14, 2024 · 4 comments
Labels
area/internal Related to an internal action or function of Companion. Enhancement New feature or request

Comments

@Lukeb873
Copy link

Is this a feature relevant to companion itself, and not a module?

  • I believe this to be a feature for companion, not a module

Is there an existing issue for this?

  • I have searched the existing issues

Describe the feature

It would be great if on the Streamdeck + there was a stop rotation action. Like the release action on a normal button. I'm not sure if this is possible given a button is a 2/3 step. Either a press, hold, or a release. But the encoder is just one rotation in a left or right direction.

Usecases

The idea comes from PTZ cameras being controlled on Encoders. Most PTZ cameras are set up so once you trigger a move, you need a stop move action after. Otherwise the camera keeps moving. On an encoder, there's not a way to easily stop that pan/tilt/zoom action because there's no stop. I could add a delay of a few milliseconds after the inital move command, but I found this worked inconsistently. Specifically when wanting to move incrementally or slowly. You'd end up cancelling the 2nd roation by the delay or get it stuck moving.

@Julusian Julusian added Enhancement New feature or request area/internal Related to an internal action or function of Companion. labels Dec 14, 2024
@spoelstraethan
Copy link

Do you have the encoder button "Rotary actions" enabled?

I haven't had any issues using the rotary encoder buttons on the Streamdeck Plus and/or the Razer/Loupedeck for volume control where for it changes the volume by x% per "click", and both of these devices have "detents" where you can feel the rotation happening.

@Lukeb873
Copy link
Author

Lukeb873 commented Jan 8, 2025

I sure do. In certain modules you can not do per click adjustments... A lot of PTZ cameras when you start a "turn right" command will keep turning until they get a "stop turn right" command. So on a button you just press and hold for turn right and then set a release action of stop turn right. On an encoder there's not a way to do this.

@dnmeid
Copy link
Member

dnmeid commented Jan 9, 2025

It is possible to fire an action when there has been a rotation left or right and then there is no more rotation for a certain amount of time. You can do this on your own by killing and restarting starting a delayed action somwhere else. If the rotation stops the delayed action will not be killed and fires after the wait time.
Technically it would be possible for us to provide that functionality right in the GUI in a "stop rotation" section, but I don't see this happening. The whole way of how we handle rotations is another example of: just make this feature available quick and dirty and we can change it later. Unfortunately it survived quite long.
There is a discussion on how we can handle rotary and many other non button press inputs in the future here #2387.
With that proposal you'd have the choice if to react on individual clicks or on the rotation speed. So a speed value changing to 0 would also indicate a rotation stop.

@Lukeb873
Copy link
Author

I could do that, but that would mean that the camera would zoom for (x) amount of left over delayed time and not stop when I had stopped rotating. A stop rotation section would be an easy fix. However, I think (if there's an internal variable for rotation on a specific button), I could make an internal custom variable that checks to see if it's turning and if it's not turning, it consistently fires a stop zoom command.

I would suggest looking a birddog PTZ or Panasonic PTZ modules for something like this. I know for certain that these PTZ camera will keep doing Pan, Tilt, or Zoom until they get a stop command. On a button that's easy because it's your release action. We're wanting to use encoders because it's a little more natural, but there is no easy to way to do a stop action.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/internal Related to an internal action or function of Companion. Enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

4 participants