Database update feature

This commit is contained in:
2022-11-14 23:53:36 +01:00
parent 8c9e1cd91c
commit 7d71d90538
9 changed files with 173 additions and 33 deletions

View File

@ -334,16 +334,21 @@ namespace unison
}, token).ConfigureAwait(false);
}
private bool UpdateStarted = false;
private async Task HandleIdleResponseAsync(string subsystems)
{
try
{
if (subsystems.Contains("player") || subsystems.Contains("mixer") || subsystems.Contains("output") || subsystems.Contains("options"))
if (subsystems.Contains("player") || subsystems.Contains("mixer") || subsystems.Contains("output") || subsystems.Contains("options") || subsystems.Contains("update"))
{
await UpdateStatusAsync();
if (subsystems.Contains("player"))
await UpdateSongAsync();
if (subsystems.Contains("update"))
UpdateDatabaseSync();
}
}
catch (Exception e)
@ -353,6 +358,30 @@ namespace unison
}
}
private void UpdateDatabaseSync()
{
if (!UpdateStarted)
{
Application.Current.Dispatcher.Invoke(() =>
{
MainWindow MainWin = (MainWindow)Application.Current.MainWindow;
MainWin.GetSettings().MPDDatabaseUpdate_Start();
});
UpdateStarted = true;
}
else
{
Application.Current.Dispatcher.Invoke(() =>
{
MainWindow MainWin = (MainWindow)Application.Current.MainWindow;
MainWin.GetSettings().MPDDatabaseUpdate_Stop();
MainWin.UpdateStats();
});
UpdateStarted = false;
}
}
private async Task UpdateStatusAsync()
{
if (_connection == null || _isUpdatingStatus)
@ -611,6 +640,8 @@ namespace unison
return _Playlist.ToArray().Count();
}
public void UpdateDB() => SendCommand(new UpdateCommand());
private string FormatTime(TimeSpan time)
{
string FormattedTime = "";