From: Jeff M. <kd...@em...> - 2007-04-29 04:31:58
|
Matt Mossholder wrote: > On Sat, 2007-04-28 at 16:52 -0400, Jeff Mitchell wrote: > >> This isn't doing something hal or the hal developers don't really want >> you to >> do; to quote from the hal specification, "The fundamental idea about HAL is >> that all ''interesting'' information about hardware that a desktop >> application needs, can be obtained by querying HAL." So if device libraries >> can provide interesting and useful information that could be useful by a >> desktop application, I don't see how you'd be doing any wrong. >> >> > > I think the quote you just supplied explains why this is the wrong > approach. The information going into HAL is supposed to be about the > -device-, not about the programs or libraries that might wish to access > the device. By putting in a bunch of cruft related to things outside of > the device, you're opening the door for all sorts of duplication, > errors, etc. > Your arguments are perfectly valid, except I disagree with your conclusion -- because the access protocol and the device's name are essential pieces of device information -- one for other software, the other for the user. There's no easy way to figure out how to talk to a device without that information being provided by hal. And certainly device names are far better to present to the user than "Portable Media Player" -- especially if you have two or three of them plugged in. As for the library level, I wouldn't call information relevant to libraries that can talk to the device cruft. Note that I'm not talking about programs that might wish to access it -- I'm talking about libraries that actually *do* access it. Software that interfaces with the device is relevant to the device, and isn't cruft. Nor do I see what the duplication and errors that you speak of would come from -- if libraries want to add metadata to a device's hardware information, they are likely to be more accurate than what the central HAL files would have, and would be relevant to either the user or other software that wants to make use of the device via the library (or relevant to the library itself). --Jeff |