The read() call asynchronously fetches read-only tags and audio properties and discards the FileRef. This makes AudioProperties a redundant and synchronous way to fetch audio properties. Since they are read only by default, unlike tags, it is getter to just extract them and stuff them into an object rather than have a backing C++ object.
* Utility functions moved out of class Tag and into file taglib.cc * Added corresponding taglib.h * CreateFileRef creates TagLib::FileRef's which also read audio properties. * Removed Tag::Dispose * Combined the batons into one AsyncBaton used for both (probably not a good idea?)