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.
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.
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: /github. com/mixxxdj/ mixxx/pull/ 592
https:/
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.