On Fri, Apr 22, 2011 at 7:18 PM, Lieven Moors <lievenmoors(a)gmail.com> wrote:
  On Fri, Apr 22, 2011 at 07:09:24PM -0400, Paul Davis
wrote:
  On Fri, Apr 22, 2011 at 7:05 PM, Lieven Moors
<lievenmoors(a)gmail.com> wrote:
  I had a similar problem in my studio when I
wanted to restore
 connections with multiple ZynaddsubFX instances. All the port names
 were the same, so I had no way of knowing which was which.
 And the client ID is not much help either, because it completely
 depends on the order in which you start the applications.
 In the end, the only thing I could do was patch ZynaddsubFX so
 it would make unique port names. It was very hard to code such
 a simple thing, because like you, I couldn't find a way to get
 an id from a name... 
 why would you use the name at all. the way we handle this in ardour2
 is to use only port IDs when storing MIDI connections. the names are
 not used at all. we use pair<int,int> as SequencerPortAddress (the
 first one is the client ID, the second is the port ID).
 --p 
 But surely, the client IDs are a moving target. I want to connect
 to a specific instance of ZynaddsubFX, not to the program that was
 the second one to get an ALSA ID...
 Am I missing something? 
i don't think so. but since, as dave pointed out, there is no
particular mapping between client IDs and names, there's really no way
to do this. i think. like i said, i consider the whole design totally
FUBAR'ed. if you use numeric ID's you're screwed because the client ID
may change; if you use names, you're screwed because you can't map
reliably from names to the numeric ID's required by the API. that's
how it looks to me, anyway.