bitfocus / companion

Bitfocus Companion enables the reasonably priced Elgato Streamdeck 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.46k stars 489 forks source link

Satellite API: Page Number button does not return page number #2905

Open downhall opened 3 weeks ago

downhall commented 3 weeks ago

In the Satellite API the PAGENUM KEY-STATE does not return a text value. The page number value would be helpful here to understand which page was currently selected.

"KEY-STATE DEVICEID=10401 KEY=8 TYPE=PAGENUM COLOR=#000000 TEXT= FONT_SIZE=undefined PRESSED=false"

Companion: 3.4.0, OS: Ubuntu: 22:04 server

dnmeid commented 3 weeks ago

Yes, it should give you the text of the page number button (either number or name). As a workaround you can use a regular button instead and just type the page number on it.

Julusian commented 2 weeks ago

This is expected currently. I have avoided exposing anything about the current page number in the api as I knew that at some point soon the range and meaning of that number will change, so keeping it out of the api meant that clients wouldn't become reliant on it in bad ways.

In the experimental branch, it is possible to add/remove/reorder pages, and soon surfaces might become sticky to a page rather than to a page number. so if the page number gets exposed to the satellite api care will need to be taken to ensure it gets re-sent to clients when the page number changes but not the content

dnmeid commented 2 weeks ago

@Julusian As far as I can see the whole text streaming is made for an alternative method of rendering buttons at a satellite client. At least I use it that way. So in that aspect the client should be able to show whatever is written on any button like it is at the actual streamdeck. In my opinion that doesn't impose that a pagenumber button is always at the same position and is always the page number, it is just a button. You're right that some crazy guys may use ist to determin the page current page number in their very custom satellite client, but I guess they know what they are doing and are aware of the limitations.