Surface name over Satellite API
Is this a feature relevant to companion itself, and not a specific module?
- [x] I believe this to be a feature for companion, and is not specific to a module
Is there an existing issue for this?
- [x] I have searched for similiar existing issues
Describe the feature
Adding SURFACE
We would also need either the TCP connection to return surface name changes as they happen, if we keep the socket open, or, we would need something like SURFACE
Usecases
For example, the ScreenDesk app currently only displays the ID of a Surface. Here, you could automatically transfer the names and distinguish them more clearly. You can find out more about this feature with Screendeck here: https://github.com/josephdadams/screendeck/issues/52
It looks like screendeck is using the satellite api, not the tcp api, which makes this a bit more appealing.
I think that the best approach for this would be for the satellite device to be able to provide a 'default name' for a surface. I am not sure if that name should be possible to change at any time, or just when using the 'ADD-DEVICE' message in the protocol.
Reporting the current surface-name back to clients over the satellite api will be easy.
Then inside of companion, by default a surface should follow this default-name, until it is edited inside companion when it should switch to being manually defined, and be the one that is used. Maybe whether this is default/manual could be passed back in the message reporting the name, so that screendeck can know that its value is being overridden
That will avoid some concerns I have about source of truth (ie, if screendeck think its should be called A and updates it in companion at startup. but while it was not running the user renamed it to B in companion). I am also worried about some naive satellite clients which could end up setting the name at every startup to something with no way to opt out, which would end up stopping the user from using the name field as actually user defined names.
cc @josephdadams would that work for you, or do you think it needs to be without this default/manual state?
Sounds good to me!