diff --git a/VDownload.Core/VDownload.Core.Strings/Strings/en-US/CommonResources.resw b/VDownload.Core/VDownload.Core.Strings/Strings/en-US/CommonResources.resw
index 08fb142..9632010 100644
--- a/VDownload.Core/VDownload.Core.Strings/Strings/en-US/CommonResources.resw
+++ b/VDownload.Core/VDownload.Core.Strings/Strings/en-US/CommonResources.resw
@@ -126,6 +126,33 @@
Original
+
+ Fast
+
+
+ Faster
+
+
+ Medium
+
+
+ Slow
+
+
+ Slower
+
+
+ Super fast
+
+
+ Ultra fast
+
+
+ Very fast
+
+
+ Very slow
+
You are trying to download a video using a metered connection. Do you want to continue?
diff --git a/VDownload.Core/VDownload.Core.Strings/Strings/en-US/SettingsViewResources.resw b/VDownload.Core/VDownload.Core.Strings/Strings/en-US/SettingsViewResources.resw
index 9ebfef6..afeb536 100644
--- a/VDownload.Core/VDownload.Core.Strings/Strings/en-US/SettingsViewResources.resw
+++ b/VDownload.Core/VDownload.Core.Strings/Strings/en-US/SettingsViewResources.resw
@@ -129,6 +129,27 @@
Show notifications when task ended unsuccessfully
+
+ FFmpeg location
+
+
+ Browse
+
+
+ Processing
+
+
+ Speed
+
+
+ Use hardware acceleration
+
+
+ Use multithreading
+
+
+ Restore settings to default
+
Searching
@@ -163,7 +184,7 @@
Maximum number of tasks running in parallel
- Otherwise, default directory defined below will be used
+ Otherwise, default directory defined below (after expanding) will be used
Save last output directory
diff --git a/VDownload.Core/VDownload.Core.ViewModels/Settings/SettingsViewModel.cs b/VDownload.Core/VDownload.Core.ViewModels/Settings/SettingsViewModel.cs
index fb98fa7..9ea848e 100644
--- a/VDownload.Core/VDownload.Core.ViewModels/Settings/SettingsViewModel.cs
+++ b/VDownload.Core/VDownload.Core.ViewModels/Settings/SettingsViewModel.cs
@@ -3,6 +3,7 @@ using CommunityToolkit.Mvvm.Input;
using System;
using System.Collections.Generic;
using System.Linq;
+using System.Reflection;
using System.Text;
using System.Threading.Tasks;
using VDownload.Models;
@@ -76,6 +77,30 @@ namespace VDownload.Core.ViewModels.Settings
set => SetProperty(_settingsService.Data.Common.Tasks.DefaultOutputDirectory, value, _settingsService.Data.Common.Tasks, (u, n) => u.DefaultOutputDirectory = n);
}
+ public string ProcessingFFmpegLocation
+ {
+ get => _settingsService.Data.Common.Processing.FFmpegLocation;
+ set => SetProperty(_settingsService.Data.Common.Processing.FFmpegLocation, value, _settingsService.Data.Common.Processing, (u, n) => u.FFmpegLocation = n);
+ }
+
+ public bool ProcessingUseHardwareAcceleration
+ {
+ get => _settingsService.Data.Common.Processing.UseHardwareAcceleration;
+ set => SetProperty(_settingsService.Data.Common.Processing.UseHardwareAcceleration, value, _settingsService.Data.Common.Processing, (u, n) => u.UseHardwareAcceleration = n);
+ }
+
+ public bool ProcessingUseMultithreading
+ {
+ get => _settingsService.Data.Common.Processing.UseMultithreading;
+ set => SetProperty(_settingsService.Data.Common.Processing.UseMultithreading, value, _settingsService.Data.Common.Processing, (u, n) => u.UseMultithreading = n);
+ }
+
+ public ProcessingSpeed ProcessingSpeed
+ {
+ get => _settingsService.Data.Common.Processing.Speed;
+ set => SetProperty(_settingsService.Data.Common.Processing.Speed, value, _settingsService.Data.Common.Processing, (u, n) => u.Speed = n);
+ }
+
public bool NotificationsOnSuccessful
{
get => _settingsService.Data.Common.Notifications.OnSuccessful;
@@ -177,6 +202,26 @@ namespace VDownload.Core.ViewModels.Settings
}
}
+ [RelayCommand]
+ public async Task BrowseProcessingFFmpegLocation()
+ {
+ string? newDirectory = await _storagePickerService.OpenDirectory();
+ if (newDirectory is not null)
+ {
+ this.ProcessingFFmpegLocation = newDirectory;
+ }
+ }
+
+ [RelayCommand]
+ public async Task RestoreToDefault()
+ {
+ await _settingsService.Restore();
+ foreach (PropertyInfo property in this.GetType().GetProperties())
+ {
+ base.OnPropertyChanged(property.Name);
+ }
+ }
+
#endregion
diff --git a/VDownload.Core/VDownload.Core.Views/Settings/SettingsView.xaml b/VDownload.Core/VDownload.Core.Views/Settings/SettingsView.xaml
index 97a3bdf..8fcb718 100644
--- a/VDownload.Core/VDownload.Core.Views/Settings/SettingsView.xaml
+++ b/VDownload.Core/VDownload.Core.Views/Settings/SettingsView.xaml
@@ -122,6 +122,78 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
+
@@ -215,6 +287,11 @@
+
+
+
+
diff --git a/VDownload/Assets/SettingsView/ProcessingFFmpegLocationDark.png b/VDownload/Assets/SettingsView/ProcessingFFmpegLocationDark.png
new file mode 100644
index 0000000..731e15e
Binary files /dev/null and b/VDownload/Assets/SettingsView/ProcessingFFmpegLocationDark.png differ
diff --git a/VDownload/Assets/SettingsView/ProcessingFFmpegLocationLight.png b/VDownload/Assets/SettingsView/ProcessingFFmpegLocationLight.png
new file mode 100644
index 0000000..b82f380
Binary files /dev/null and b/VDownload/Assets/SettingsView/ProcessingFFmpegLocationLight.png differ
diff --git a/VDownload/Assets/SettingsView/ProcessingSpeedDark.png b/VDownload/Assets/SettingsView/ProcessingSpeedDark.png
new file mode 100644
index 0000000..28d3f9a
Binary files /dev/null and b/VDownload/Assets/SettingsView/ProcessingSpeedDark.png differ
diff --git a/VDownload/Assets/SettingsView/ProcessingSpeedLight.png b/VDownload/Assets/SettingsView/ProcessingSpeedLight.png
new file mode 100644
index 0000000..5e7b7ee
Binary files /dev/null and b/VDownload/Assets/SettingsView/ProcessingSpeedLight.png differ
diff --git a/VDownload/Assets/SettingsView/ProcessingUseHardwareAccelerationDark.png b/VDownload/Assets/SettingsView/ProcessingUseHardwareAccelerationDark.png
new file mode 100644
index 0000000..5a83f4e
Binary files /dev/null and b/VDownload/Assets/SettingsView/ProcessingUseHardwareAccelerationDark.png differ
diff --git a/VDownload/Assets/SettingsView/ProcessingUseHardwareAccelerationLight.png b/VDownload/Assets/SettingsView/ProcessingUseHardwareAccelerationLight.png
new file mode 100644
index 0000000..2864771
Binary files /dev/null and b/VDownload/Assets/SettingsView/ProcessingUseHardwareAccelerationLight.png differ
diff --git a/VDownload/Assets/SettingsView/ProcessingUseMultithreadingDark.png b/VDownload/Assets/SettingsView/ProcessingUseMultithreadingDark.png
new file mode 100644
index 0000000..3f26960
Binary files /dev/null and b/VDownload/Assets/SettingsView/ProcessingUseMultithreadingDark.png differ
diff --git a/VDownload/Assets/SettingsView/ProcessingUseMultithreadingLight.png b/VDownload/Assets/SettingsView/ProcessingUseMultithreadingLight.png
new file mode 100644
index 0000000..478965e
Binary files /dev/null and b/VDownload/Assets/SettingsView/ProcessingUseMultithreadingLight.png differ
diff --git a/VDownload/Dictionaries/Images/ImagesSettingsView.xaml b/VDownload/Dictionaries/Images/ImagesSettingsView.xaml
index e9be33d..fd1967a 100644
--- a/VDownload/Dictionaries/Images/ImagesSettingsView.xaml
+++ b/VDownload/Dictionaries/Images/ImagesSettingsView.xaml
@@ -13,6 +13,10 @@
/Assets/SettingsView/TempDeleteOnFailLight.png
/Assets/SettingsView/NotificationOnSuccessfulLight.png
/Assets/SettingsView/NotificationOnUnsuccessfulLight.png
+ /Assets/SettingsView/ProcessingFFmpegLocationLight.png
+ /Assets/SettingsView/ProcessingUseHardwareAccelerationLight.png
+ /Assets/SettingsView/ProcessingUseMultithreadingLight.png
+ /Assets/SettingsView/ProcessingSpeedLight.png
/Assets/SettingsView/SearchingPlaylistCountDark.png
@@ -24,6 +28,10 @@
/Assets/SettingsView/TempDeleteOnFailDark.png
/Assets/SettingsView/NotificationOnSuccessfulDark.png
/Assets/SettingsView/NotificationOnUnsuccessfulDark.png
+ /Assets/SettingsView/ProcessingFFmpegLocationDark.png
+ /Assets/SettingsView/ProcessingUseHardwareAccelerationDark.png
+ /Assets/SettingsView/ProcessingUseMultithreadingDark.png
+ /Assets/SettingsView/ProcessingSpeedDark.png
diff --git a/VDownload/VDownload.csproj b/VDownload/VDownload.csproj
index 664489e..a171dc6 100644
--- a/VDownload/VDownload.csproj
+++ b/VDownload/VDownload.csproj
@@ -95,6 +95,8 @@
+
+
@@ -216,6 +218,24 @@
Always
+
+ Always
+
+
+ Always
+
+
+ Always
+
+
+ Always
+
+
+ Always
+
+
+ Always
+
Always
@@ -464,9 +484,15 @@
Always
+
+ Always
+
Always
+
+ Always
+
Always