Thursday, June 23, 2011
BatteryMonitor supports NetBSD
BatteryMonitor for GNUstep now has support for NetBSD acpi too now! Support languished because decent acpi support in NetBSD is relatively recent and reading it requires checking a property list (which is of course more complex, but at least consistent and clean compared to the maze of files linux provides). To manipulate it libprop sports handy functions, yet I always had some problems here and there, until I realized something very cool. Property lists are familiar to GNUstep and Cocoa users.
char * prop_dictionary_externalize(prop_dictionary_t dict);
Exports fully-fledged XML property list compatible with GNUstep plists, not just something similar. Thus it is a matter of using
to get a dictionary and manipulate it with obj-c iterators, which is much more convenient than the equivalent C function provided by libprop.
Support is still quite rough and, for example, only the first battery is checked. I have only one NetBSD laptop and I don't know how NetBSD shields the results from BIOS idiosyncrasies I experienced on Linux (watt-hour and ampere-hour usage and orthogonality for example). But it is already very nice!