It's been over 2 months, but I've finally made a new release, and it's massive.
This release features rewrites of several key components of the library that
improve efficiency and correctness. Most, if not all, of the bugs reported over
the past two months have been fixed in this release, so I highly recommend
As usual, this library is not binary compatible with the previous version, so
you'll need to recompile your apps with it. The only major interface change is
for retrieving text items from a text list field. Indexing for text lists is
now 0-based. Here is some example code.
ID3_Field& fld = myFrame.Field(ID3FN_TEXT);
size_t numItems = fld.GetNumTextItems();
// this retrieves the entire string (up to 1024 characters)
for (size_t i = 0; i < numItems; ++i)
// this retrieves item #i (up to 1024 characters)
fld.Get(str, 1024, i);
Prior to this release, indexing was 1-based, and retrieving item 0 was
equivalent to retrieving the entire string. This interface is more natural,
although I imagine it will break some code out there.
There is a problem with this release. John Adcock, the writer and maintainer of
id3com, seems to have disappeared from my radar, and id3com isn't compilable in
its current state. The last I heard from John, he had integrated some brand new
features involving paintlib, but apparently there were some last-minute changes
he needed to do. I haven't heard from him since, despite my repeated attempts
at contacting him. If someone wants to take a look at id3com and see if they
can get it up and running again, I would greately appreciate it.
Finally, I realize that the library is still lacking significant new
documentation. I also realize this is a major problem, since the current best
way to learn how to use the library is to read its source. Improving
documention is priority #1 for the next release.