The path to the file being played was being incorrectly returned in the xesam:url field. This PR fixes this.
Additionally, metadata album art results now get stored in memory after the first request.
In systems with slow disk IO (for example playing a vgm over sshfs), the player would pause for a short period every time an application would request metadata over DBus.
This happened because the access and glob functions would take a while to return, thus blocking the main loop as it all runs in the same thread.
Since it's possible to make a playlist with tracks from different games, the "cache" gets invalidated on track change, and updated accordingly.
The path to the file being played was being incorrectly returned in the
xesam:url
field. This PR fixes this.Additionally, metadata album art results now get stored in memory after the first request. In systems with slow disk IO (for example playing a vgm over sshfs), the player would pause for a short period every time an application would request metadata over DBus.
This happened because the access and glob functions would take a while to return, thus blocking the main loop as it all runs in the same thread.
Since it's possible to make a playlist with tracks from different games, the "cache" gets invalidated on track change, and updated accordingly.