Comment 27 for bug 728197

Revision history for this message
Uwe Klotz (uklotzde-deactivatedaccount) wrote :

I've implemented a thread-safe TrackPointer cache that replaces the weak-reference cache in TrackDAO. All TIOs in Mixxx must be allocated through this cache that is instantiated as a singleton. When the last reference to a TIO is dropped modified metadata could safely be written back into the file.

The cache is implemented on top of the following PR:
https://github.com/mixxxdj/mixxx/pull/592

I'm successfully using this code for managing a huge music library. In my use case the metadata in the audio files is the master and the Mixxx library is only a big and fast cache with additional information. I even prefer to reload (possibly modified) metadata from the files each time a track is (re-)loaded into the cache. Both writing metadata back into files and automatically reloading metadata from files can easily be configured.

It's experimental work that I prefer to hold back until the prerequisite PRs are integrated.