feat: Implement face encoder functionality with GPU support and recursive option
This commit is contained in:
parent
daf3b5ad2c
commit
988a3d94e1
10 changed files with 790 additions and 219 deletions
|
|
@ -3,6 +3,7 @@ using Avalonia.Interactivity;
|
|||
using Avalonia.Platform.Storage;
|
||||
using Avalonia.Styling;
|
||||
using Avalonia.Threading;
|
||||
using System.ComponentModel;
|
||||
using System.IO;
|
||||
|
||||
namespace ImageCatalog_2;
|
||||
|
|
@ -20,6 +21,7 @@ public partial class AvaloniaMainWindow : Window
|
|||
DataContext = _model;
|
||||
|
||||
Opened += (_, _) => SyncThemeStateFromCurrentTheme();
|
||||
Closing += AvaloniaMainWindow_Closing;
|
||||
|
||||
// Let DataModel marshal callbacks onto Avalonia UI thread.
|
||||
_model.UiInvoker = action => Dispatcher.UIThread.Invoke(action);
|
||||
|
|
@ -135,6 +137,29 @@ public partial class AvaloniaMainWindow : Window
|
|||
};
|
||||
}
|
||||
|
||||
private bool _isStoppingFaceEncoderForClose;
|
||||
|
||||
private async void AvaloniaMainWindow_Closing(object? sender, CancelEventArgs e)
|
||||
{
|
||||
if (_isStoppingFaceEncoderForClose || !_model.IsFaceEncoderRunning)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
e.Cancel = true;
|
||||
_isStoppingFaceEncoderForClose = true;
|
||||
|
||||
try
|
||||
{
|
||||
await _model.StopFaceEncoderAsync("Arresto face encoder in chiusura...", waitForExit: true);
|
||||
}
|
||||
finally
|
||||
{
|
||||
_isStoppingFaceEncoderForClose = false;
|
||||
Close();
|
||||
}
|
||||
}
|
||||
|
||||
private void ToggleTheme_Click(object? sender, RoutedEventArgs e)
|
||||
{
|
||||
_isDarkTheme = !_isDarkTheme;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue