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.59k stars 503 forks source link

Group assignment for buttons #3074

Open dansherer8181 opened 1 week ago

dansherer8181 commented 1 week ago

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

Is there an existing issue for this?

Describe the feature

I would like to be able to assign a button or selection of buttons to a group, say Group A,BC, etc and then create an action that sets all buttons within a group to the same step. Thanks.

Usecases

Programming buttons that change an Atem output to a source. Each button could have the source names, ie Cam 1, Cam 2, Cam 3, and then if you group them, another button could cycle through what output you are sending them to when you press them By creating steps that change what output the source goes to.

dnmeid commented 1 week ago

If I understand you right, you are using steps to do what a programmer calls branching, i.e. do a different command depending on a condition. I can see this quite often since the introduction of steps and it is a totally valid approach. But as you have noticed yourself it can become quite tedious to set a large amount of buttons to a step. So I like to encourage you to rethink the way of programming, instead of pushing the condition to many buttons it is better if each button is retrieving the condition. That way you will have a much more maintainable and easier to program setup. In case of Aem it is especially super simple. Just make some buttons to set the output and make them change a user variable. On the source selection buttons use the action Aux/Output: Set source from variables and use that variable as the source. Thats basically the functionality of a crosspoint matrix.

Even for other usecases where it is more complicated and no actions with variables are provided, I would prefer not to introduce new functionality that promotes the push workflow but if necessary rather do new solutions that promote the retrieve workflow.