From: Alex K. <ak...@se...> - 2005-07-22 20:44:55
|
On Fri, 22 Jul 2005, Christian W. Zuckschwerdt wrote: > Seems we are talking the same language after all ;) So if a user requests > connection to his 7610 or some Nokia and the application knows it wants Obex > FT, all it has to do is get the array, look up the right pair (i.e. "*7610" > or "Nokia*" with Obex FT) and voila. Yes, exactly. > I can't think of any other way an application would choose the connection. So > hide the _intf parts inside the lib. If the pair/triplet is ambiguous there > is nothing the application could possibly do about it. That's my point here. > The application won't choose a specific interface/configuration, bus or dev. > If it can't identify the connection based on device name and service type it > simply has to enumerate and probe all candidates. Yep. > Now, is there a way to join the interface name and capabilities into a single > field? If I take a look at the SDP fields (sorry I don't have a USB capable > phone) it seems the interface name is descriptional only. > We should stick to the capabilities (SDP has Service Class IDs and Profile > Descriptors for this -- e.g. 0x1105 for "OBEX Object Push") Well, it would be helpful to have the interface names anyway, for three reasons: 0) Diagnostics. 1) On USB, there is no equivalent to Service Class IDs and Profile Descriptors - only the interface names. You can see that in lsusb output I've sent you off-list. We could perhaps map those interface names to some capability constants of our own, but that has to be done each time hardware vendors come up with some new name for an interface. 2) Not all Bluetooth OBEX services may have standardized Service Class IDs. For example Nokia 7610 has a vendor-specific Bluetooth OBEX service, which looks like this: Service Name: Nokia OBEX PC Suite Services Service RecHandle: 0x10007 Service Class ID List: "Error: This is UUID-128" (0x00005005-0000-1000-8000-0002ee000001) Protocol Descriptor List: "L2CAP" (0x0100) "RFCOMM" (0x0003) Channel: 12 "OBEX" (0x0008) Language Base Attr List: code_ISO639: 0x454e encoding: 0x6a base_offset: 0x100 Profile Descriptor List: "Error: This is UUID-128" (0x00005005-0000-1000-8000-0002ee000001) Version: 0x0100 I have no idea where that UUID128 is coming from. Probably made up by Nokia. Alexander Homepage: http://www.sensi.org/~ak/ |