I no longer consider this a reachable goal for 2.2.
Isolating the database interactions into separate threads would only be the first step. Further down the road we need to integrate external providers like streaming services which are completely separate remote services. So why not define a portable IPC/RPC API right from the start and and implement that API for both a local service provider using an SQLite database and optionally for external providers?
Of course, an evolutionary approach for migrating the current design towards the final goal would be preferable. Unfortunately I suppose that is not worth the effort since we don't have enough resources for that. Exhausted and burnt from preceding and very painful refactorings I decided that I will not perform this task as originally intended.
The tightly integrated, inflexible, and inextensible library management in Mixxx is IMHO already beyond repair. Migrating a fat desktop application with a simplified Excel/Access-style UI towards a modern, modular, extensible, cloud-aware, multi-device, multi-frontend family of apps(!) will require a substantial redesign.
I no longer consider this a reachable goal for 2.2.
Isolating the database interactions into separate threads would only be the first step. Further down the road we need to integrate external providers like streaming services which are completely separate remote services. So why not define a portable IPC/RPC API right from the start and and implement that API for both a local service provider using an SQLite database and optionally for external providers?
Of course, an evolutionary approach for migrating the current design towards the final goal would be preferable. Unfortunately I suppose that is not worth the effort since we don't have enough resources for that. Exhausted and burnt from preceding and very painful refactorings I decided that I will not perform this task as originally intended.
The tightly integrated, inflexible, and inextensible library management in Mixxx is IMHO already beyond repair. Migrating a fat desktop application with a simplified Excel/Access-style UI towards a modern, modular, extensible, cloud-aware, multi-device, multi-frontend family of apps(!) will require a substantial redesign.