On Tuesday 18 Apr 2006 15:51, Clemens Ladisch wrote: > Chris Cannam wrote: > > Rosegarden relies on the client numbers to determine whether a port > > is system, hardware or software -- there are significant functional > > differences between the types of port, > > What are those differences? Well, for example a hardware port of a given name can have any number of MIDI devices attached to it, or none, you can't find out anything about them, and they can change between runs of the program. Whereas a software port with a given name is highly likely to represent a single application, the application's name is available, and it's probably the same one each time. Programs don't usually have to care about distinctions like this, but it's not helpful to users to always treat these types the same. > > and I see no other way to find out which type a port is -- if there > > is one, I'd dearly like to know. > > snd_seq_client_info_get_type() This returns whether a client exists in kernel or user space, which is not the same thing at all. Programs may care about this, but users seldom would. The equivalent function for ports (snd_seq_port_info_get_type) is a similar red herring. Looks useful: isn't. Chris