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.61k stars 504 forks source link

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

Open downhall opened 5 months ago

downhall commented 5 months 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 5 months 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 5 months 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 5 months 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.

JackTheFoxOtter commented 4 months ago

Hello! I'm new to Companion, and am currently experimenting with the satellite API to create a custom satellite client. My client will bridge the companion satellite API to a custom VR interface, which will use the text mode to render buttons. I'm still in the proof-of-concept phase, but this seems to be the only "issue" I've encountered so far. Without a text to display on the PAGENUM button, my interface won't be able to convey the current page number / name to the user.

I personally agree that there isn't much harm in exposing the page number / name as a string in the "text" property. It's the changing text to render on the PAGENUM button. Interpreting this as anything but a string to display on the button would be incorrect on the implementation side.

JackTheFoxOtter commented 1 month ago

Hello, I wanted to give a small update on our use-case. We've been using the Satellite API for a couple of months for our virtual production now, and the missing page name on the PAGENUM button is indeed the only issue we have with it. I'm glad to see this has been added to the 3.5 milestone! Looking forward to having this issue resolved in future versions.