I don't like the idea to copy the file around just. This did not entirely solve the problem because we have a write back anyway.
Such a solution will likely introduce other issues.
A suitable solution to me is:
* use an external process for taglib (based on clementine tagreader)
* use an explicit file lock for all file operations (based on http://libqxt.bitbucket.org/doc/tip/qxtfilelock.html)
Advantages:
* a own process reduces the risk of corrupting the track by a Mixxx error elsewhere.
* A crash due to a corrupt file does not effect Mixxx itself. This was reported by a Clementine developer, can be found by Google and I might remember that we had a mixxx bug like that.
* File locks will solve the seek offset problem on XP entirely and with all cooperative processes on Linux and Mac OS
* Writing Tags is as fast as possible especially if there is no need to grow the tag region of the file.
So there is minimum rest risk if a user users uses a external tag writer writing a track while it is currently mmaped in Mixxx (playing) .
Currently the clementine-tagreader works in my trunk experimental. If I find time I will work on unit tests on that.
Hi RJ,
I don't like the idea to copy the file around just. This did not entirely solve the problem because we have a write back anyway.
Such a solution will likely introduce other issues.
A suitable solution to me is: libqxt. bitbucket. org/doc/ tip/qxtfilelock .html)
* use an external process for taglib (based on clementine tagreader)
* use an explicit file lock for all file operations (based on http://
Advantages:
* a own process reduces the risk of corrupting the track by a Mixxx error elsewhere.
* A crash due to a corrupt file does not effect Mixxx itself. This was reported by a Clementine developer, can be found by Google and I might remember that we had a mixxx bug like that.
* File locks will solve the seek offset problem on XP entirely and with all cooperative processes on Linux and Mac OS
* Writing Tags is as fast as possible especially if there is no need to grow the tag region of the file.
So there is minimum rest risk if a user users uses a external tag writer writing a track while it is currently mmaped in Mixxx (playing) .
Currently the clementine- tagreader works in my trunk experimental. If I find time I will work on unit tests on that.
Regards,
Daniel