bitfocus / companion

Bitfocus Companion enables the reasonably priced Elgato Stream Deck and other controllers to be a professional shotbox surface for an increasing amount of different presentation switchers, video playback software and broadcast equipment.
http://bitfocus.io/companion
Other
1.62k stars 505 forks source link

feat: make connection of action changeable, closes #1498 #3110

Closed dnmeid closed 3 weeks ago

dnmeid commented 3 weeks ago

This adds the possibility to change the connection of an action after creation. A dropdown with all connections of the matching type is shown only if there are multiple connections of that type. Upon change of the connection unsubscribe is called for the old instance and subscribe is called for the new instance.

image

Todo: improve positioning

CLAassistant commented 3 weeks ago

CLA assistant check
Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.
You have signed the CLA already but the status is still pending? Let us recheck it.

phillipivan commented 3 weeks ago

In the case of connections which define available actions based on the model of the connected device, or similar, what happens when a connection is selected which doesn't support the specific action? Does it just become undefined similar to a disabled module?

thedist commented 3 weeks ago

Is there are a reason this couldn't be expanded beyond just a dropdown of connections, and limited to actions? If feedbacks could have a connection option too, and if this option supported variables, it would mean that an entire set of buttons could be changed from one connection to another with just 1 button that cycles between instance labels in a variable.

For example controlling multiple switchers could be made trivial as there would only be a need for 1 set of actions and feedbacks, and they would all refer to a variable that chooses the connection. This is as opposed to the current solutions of duplicate actions/feedbacks from each connection across multiple pages.

dnmeid commented 3 weeks ago

In the case of connections which define available actions based on the model of the connected device, or similar, what happens when a connection is selected which doesn't support the specific action? Does it just become undefined similar to a disabled module?

Yes, also when the connection is disabled. It is possible to change the action to a currently disabled connection. If there are different option choices on the different connections and the one you've chosen is not available at the new connection, you're also out of luck.

Is there are a reason this couldn't be expanded beyond just a dropdown of connections, and limited to actions?

There is no reason, it is just one step. I think I'll do the same for feedbacks soon. According the variable, there is a different feature request about that and I think this still needs some more thoughts but maybe in the future...