Hi everyone,<br><br>I'm the author of a/the libhal(-storage) C++ wrapper ( <a href="http://projects.beep-media-player.org/index.php/Main/Hal">http://projects.beep-media-player.org/index.php/Main/Hal</a> ).<br><br>I've noticed some subtle differences between hal
0.5.7.x and hal 0.5.8.x which are not clear to me as to why this happened:<br><br>0.5.7:<br>--snip--<br>struct LibHalPropertySetIterator_s {<br> LibHalPropertySet *set; /**< Property set we are iterating over */<br>
unsigned int index; <br>--snip--<br><br>0.5.8:<br>--snip--<br>struct LibHalPropertySetIterator_s {<br> LibHalPropertySet *set; /**< Property set we are iterating over */<br> unsigned int idx;<br>--snip--<br><br>
("index" was renamed to "idx")<br><br>I'm providing an STL-like (input iterator concept providing) interface for iterating through the PS of a device in the C++ wrapper, which requires this code here to check whether 2 iters are identical (point to the same position in the PS, and belong to the same PS):
<br><br>--snip--<br>#ifdef HAVE_HAL_058<br> return ((i.idx == other.i.idx) && (i.set == other.i.set));<br>#else<br> return ((i.index == other.i.index) && (i.set == other.i.set
));<br>#endif // HAVE_HAL_058<br>--snip--<br><br>I'd like to ask to please not change the name of this member or the entire PS iterator struct itself, if possible at all. Alternatively mark the entire structure as private/opaque/subject to change, and if that should happen, please provide get_current_index(), and get_property_set() methods for the iterator.
<br><br>The second thing i'd like to point out is this:<br><br>0.5.7 LibHalDriveCdromCaps:<br>--snip--<br> LIBHAL_DRIVE_CDROM_CAPS_DVDPLUSR = 0x0080,<br> LIBHAL_DRIVE_CDROM_CAPS_DVDPLUSRW = 0x0100,<br> LIBHAL_DRIVE_CDROM_CAPS_DVDPLUSRDL = 0x0200,
<br> LIBHAL_DRIVE_CDROM_CAPS_BDROM = 0x0400,<br> LIBHAL_DRIVE_CDROM_CAPS_BDR = 0x0800,<br>--snip--<br><br>0.5.8 LibHalDriveCdromCaps:<br>--snip--<br> LIBHAL_DRIVE_CDROM_CAPS_DVDPLUSR = 0x00080,<br> LIBHAL_DRIVE_CDROM_CAPS_DVDPLUSRW = 0x00100,
<br> LIBHAL_DRIVE_CDROM_CAPS_DVDPLUSRDL = 0x00200,<br> LIBHAL_DRIVE_CDROM_CAPS_DVDPLUSRWDL = 0x00400,<br> LIBHAL_DRIVE_CDROM_CAPS_BDROM = 0x00800,<br> LIBHAL_DRIVE_CDROM_CAPS_BDR = 0x01000,<br>--snip--<br>
<br>All the values after DVDPLUSRDL are shifted, which doesn't make much sense to me, as there is enough padding. How this padding was to be used exactly I don't know, but without knowing it, this here would seem to have been just as sensible and then even keeping the API wrt this enum stable:
<br><br> LIBHAL_DRIVE_CDROM_CAPS_DVDPLUSR = 0x00080,<br>
LIBHAL_DRIVE_CDROM_CAPS_DVDPLUSRW = 0x00100,<br>
LIBHAL_DRIVE_CDROM_CAPS_DVDPLUSRDL = 0x00200,<br>
LIBHAL_DRIVE_CDROM_CAPS_DVDPLUSRWDL = 0x00201,<br>
LIBHAL_DRIVE_CDROM_CAPS_BDROM = 0x00400,<br>
LIBHAL_DRIVE_CDROM_CAPS_BDR = 0x00800,<br>
<br><br>Thanks for consideration<br>Milosz<br>