The main reference I’m using is the capture functionality in the core video library. Basically, there you just have a static Capture.list() method that returns an array of strings containing the list of available capture devices. Clearly, this is what I’m using as a model here.
However, it seems to me that the way the server discovery works in Syphon is not conducing to this kind of approach. Correct me if I’m wrong, but what SyphonServerDirectory does is not to query the available devices at a given time, but instead it passively waits to be contacted by the servers and then adds them to its internal list of servers, right?
An alternative polling mechanism where an event handling method would be called with the appropriate object holding the names of the registered server it is certainly possible, but the list() method would be preferred. Although the code I mentioned earlier works, it seems to me like a “problematic hack” that goes against the way server discovery works.