From a48f9d1c839bca228b58f679dabf3bcbce665741 Mon Sep 17 00:00:00 2001
From: Deterous <138427222+Deterous@users.noreply.github.com>
Date: Mon, 24 Nov 2025 23:18:28 +0900
Subject: [PATCH] New Redumper Drive Pregap Start option (#920)
* Pregap start option
* Fix DriveType names
* Fix options window
* Update changelist
---
CHANGELIST.md | 1 +
.../Redumper/ExecutionContext.cs | 7 +++
.../Redumper/SettingConstants.cs | 3 ++
MPF.Frontend/EnumExtensions.cs | 48 +++++++++----------
MPF.Frontend/Options.cs | 9 ++++
MPF.UI/Resources/Strings.de.xaml | 1 +
MPF.UI/Resources/Strings.es.xaml | 1 +
MPF.UI/Resources/Strings.fr.xaml | 1 +
MPF.UI/Resources/Strings.it.xaml | 1 +
MPF.UI/Resources/Strings.ja.xaml | 1 +
MPF.UI/Resources/Strings.ko.xaml | 1 +
MPF.UI/Resources/Strings.pl.xaml | 1 +
MPF.UI/Resources/Strings.ru.xaml | 1 +
MPF.UI/Resources/Strings.sv.xaml | 1 +
MPF.UI/Resources/Strings.uk.xaml | 1 +
MPF.UI/Resources/Strings.xaml | 1 +
MPF.UI/Windows/OptionsWindow.xaml | 13 +++--
17 files changed, 65 insertions(+), 27 deletions(-)
diff --git a/CHANGELIST.md b/CHANGELIST.md
index 18d0b2ea..46a2abbe 100644
--- a/CHANGELIST.md
+++ b/CHANGELIST.md
@@ -73,6 +73,7 @@
- Name some type parameters
- Ensure volume label is trimmed if used in filenames
- Remove DPM identifier for StarForce Keyless
+- New Redumper Drive Pregap Start option
### 3.5.0 (2025-10-10)
diff --git a/MPF.ExecutionContexts/Redumper/ExecutionContext.cs b/MPF.ExecutionContexts/Redumper/ExecutionContext.cs
index 345145e1..d2fe3594 100644
--- a/MPF.ExecutionContexts/Redumper/ExecutionContext.cs
+++ b/MPF.ExecutionContexts/Redumper/ExecutionContext.cs
@@ -363,6 +363,13 @@ namespace MPF.ExecutionContexts.Redumper
(_inputs[FlagStrings.DriveReadMethod] as StringInput)?.SetValue(readMethod!);
}
+ int drivePregapStart = GetInt32Setting(options, SettingConstants.DrivePregapStart, SettingConstants.DrivePregapStartDefault);
+ if (drivePregapStart != SettingConstants.DrivePregapStartDefault)
+ {
+ this[FlagStrings.DrivePregapStart] = true;
+ (_inputs[FlagStrings.DrivePregapStart] as Int32Input)?.SetValue(drivePregapStart);
+ }
+
string? sectorOrder = GetStringSetting(options, SettingConstants.SectorOrder, SettingConstants.SectorOrderDefault);
if (!string.IsNullOrEmpty(sectorOrder) && sectorOrder != SectorOrder.NONE.ToString())
{
diff --git a/MPF.ExecutionContexts/Redumper/SettingConstants.cs b/MPF.ExecutionContexts/Redumper/SettingConstants.cs
index 47441bfb..2ca56dfa 100644
--- a/MPF.ExecutionContexts/Redumper/SettingConstants.cs
+++ b/MPF.ExecutionContexts/Redumper/SettingConstants.cs
@@ -14,6 +14,9 @@ namespace MPF.ExecutionContexts.Redumper
public const string LeadinRetryCount = "RedumperLeadinRetryCount";
public const int LeadinRetryCountDefault = 4;
+ public const string DrivePregapStart = "RedumperDrivePregapStart";
+ public const int DrivePregapStartDefault = 0;
+
public const string ReadMethod = "RedumperReadMethod";
public static readonly string ReadMethodDefault = Redumper.ReadMethod.NONE.ToString();
diff --git a/MPF.Frontend/EnumExtensions.cs b/MPF.Frontend/EnumExtensions.cs
index caf1acd2..9e08ea2f 100644
--- a/MPF.Frontend/EnumExtensions.cs
+++ b/MPF.Frontend/EnumExtensions.cs
@@ -466,31 +466,31 @@ namespace MPF.Frontend
{
"generic" => RedumperDriveType.GENERIC,
"plextor" => RedumperDriveType.PLEXTOR,
- "lg_asus8a"
- or "lg-asus8a"
- or "lgasus8a"
- or "lg_asus_8a"
- or "lg-asus-8a" => RedumperDriveType.LG_ASU8A,
- "lg_asus8b"
- or "lg-asus8b"
- or "lgasus8b"
- or "lg_asus_8b"
- or "lg-asus-8b" => RedumperDriveType.LG_ASU8B,
- "lg_asus8c"
- or "lg-asus8c"
- or "lgasus8c"
- or "lg_asus_8c"
- or "lg-asus-8c" => RedumperDriveType.LG_ASU8C,
+ "lg_asu8a"
+ or "lg-asu8a"
+ or "lgasu8a"
+ or "lg_asu_8a"
+ or "lg-asu-8a" => RedumperDriveType.LG_ASU8A,
+ "lg_asu8b"
+ or "lg-asu8b"
+ or "lgasu8b"
+ or "lg_asu_8b"
+ or "lg-asu-8b" => RedumperDriveType.LG_ASU8B,
+ "lg_asu8c"
+ or "lg-asu8c"
+ or "lgasu8c"
+ or "lg_asu_8c"
+ or "lg-asu-8c" => RedumperDriveType.LG_ASU8C,
"lg_asus3"
- or "lg-asus3"
- or "lgasus3"
- or "lg_asus_3"
- or "lg-asus-3" => RedumperDriveType.LG_ASU3,
- "lg_asus2"
- or "lg-asus2"
- or "lgasus2"
- or "lg_asus_2"
- or "lg-asus-2" => RedumperDriveType.LG_ASU2,
+ or "lg-asu3"
+ or "lgasu3"
+ or "lg_asu_3"
+ or "lg-asu-3" => RedumperDriveType.LG_ASU3,
+ "lg_asu2"
+ or "lg-asu2"
+ or "lgasu2"
+ or "lg_asu_2"
+ or "lg-asu-2" => RedumperDriveType.LG_ASU2,
_ => RedumperDriveType.NONE,
};
diff --git a/MPF.Frontend/Options.cs b/MPF.Frontend/Options.cs
index 2febcdb9..616bf2f9 100644
--- a/MPF.Frontend/Options.cs
+++ b/MPF.Frontend/Options.cs
@@ -484,6 +484,15 @@ namespace MPF.Frontend
}
}
+ ///
+ /// Currently selected default redumper drive pregap start sector
+ ///
+ public int RedumperDrivePregapStart
+ {
+ get { return GetInt32Setting(Settings, RedumperSettings.DrivePregapStart, RedumperSettings.DrivePregapStartDefault); }
+ set { Settings[RedumperSettings.DrivePregapStart] = value.ToString(); }
+ }
+
///
/// Currently selected default redumper read method
///
diff --git a/MPF.UI/Resources/Strings.de.xaml b/MPF.UI/Resources/Strings.de.xaml
index 1446112d..ce5ab9b0 100644
--- a/MPF.UI/Resources/Strings.de.xaml
+++ b/MPF.UI/Resources/Strings.de.xaml
@@ -123,6 +123,7 @@
Standard-Lesemethode:
Standard-Sektorordnung:
Standard-Laufwerkstyp:
+ Standard-Laufwerk Pregap Start:
Login-Informationen
Abruf
diff --git a/MPF.UI/Resources/Strings.es.xaml b/MPF.UI/Resources/Strings.es.xaml
index 7db5883b..3f0ff4ef 100644
--- a/MPF.UI/Resources/Strings.es.xaml
+++ b/MPF.UI/Resources/Strings.es.xaml
@@ -123,6 +123,7 @@
Método de lectura predeterminado:
Orden de sectores predeterminado:
Tipo de unidad predeterminado:
+ Pregap Start de unidad predeterminada:
Información de acceso
Recuperación
diff --git a/MPF.UI/Resources/Strings.fr.xaml b/MPF.UI/Resources/Strings.fr.xaml
index ede04c90..4f6e2dea 100644
--- a/MPF.UI/Resources/Strings.fr.xaml
+++ b/MPF.UI/Resources/Strings.fr.xaml
@@ -123,6 +123,7 @@
Méthode de lecture par défaut :
Ordre des secteurs par défaut :
Type de lecteur par défaut :
+ Pregap Start de lecteur par défaut:
Infos de connexion
Récupération
diff --git a/MPF.UI/Resources/Strings.it.xaml b/MPF.UI/Resources/Strings.it.xaml
index 39df0892..ac6f80b2 100644
--- a/MPF.UI/Resources/Strings.it.xaml
+++ b/MPF.UI/Resources/Strings.it.xaml
@@ -123,6 +123,7 @@
Metodo di Lettura Predefinito:
Ordine Settori Predefinito:
Tipo Unità Predefinito:
+ Drive Pregap Start Predefinito:
Informazioni Login
Recupero
diff --git a/MPF.UI/Resources/Strings.ja.xaml b/MPF.UI/Resources/Strings.ja.xaml
index a859235e..3f583be6 100644
--- a/MPF.UI/Resources/Strings.ja.xaml
+++ b/MPF.UI/Resources/Strings.ja.xaml
@@ -123,6 +123,7 @@
既定のリード方法:
既定のセクター順序:
既定のドライブ種別:
+ 既定のドライブ プリギャップ スタート:
ログイン情報
情報取得
diff --git a/MPF.UI/Resources/Strings.ko.xaml b/MPF.UI/Resources/Strings.ko.xaml
index 3782e9cd..53643db3 100644
--- a/MPF.UI/Resources/Strings.ko.xaml
+++ b/MPF.UI/Resources/Strings.ko.xaml
@@ -123,6 +123,7 @@
기본 읽기 방식:
기본 섹터 순서:
기본 드라이브 유형:
+ 기본 드라이브 프리갭 스타트:
로그인 정보
검색
diff --git a/MPF.UI/Resources/Strings.pl.xaml b/MPF.UI/Resources/Strings.pl.xaml
index ed34012a..26039bba 100644
--- a/MPF.UI/Resources/Strings.pl.xaml
+++ b/MPF.UI/Resources/Strings.pl.xaml
@@ -123,6 +123,7 @@
Domyślna metoda odczytu:
Domyślna kolejność sektorów:
Domyślny typ napędu:
+ Domyślny pregap start napęd:
Informacje logowania
Pobieranie
diff --git a/MPF.UI/Resources/Strings.ru.xaml b/MPF.UI/Resources/Strings.ru.xaml
index 93c1a728..2f8960fc 100644
--- a/MPF.UI/Resources/Strings.ru.xaml
+++ b/MPF.UI/Resources/Strings.ru.xaml
@@ -123,6 +123,7 @@
Метод чтения по умолчанию:
Порядок секторов:
Тип привода по умолчанию:
+ Pregap Start привода по умолчанию:
Данные входа
Получение
diff --git a/MPF.UI/Resources/Strings.sv.xaml b/MPF.UI/Resources/Strings.sv.xaml
index 96844cf3..ae1d19f6 100644
--- a/MPF.UI/Resources/Strings.sv.xaml
+++ b/MPF.UI/Resources/Strings.sv.xaml
@@ -123,6 +123,7 @@
Standard läsmetod:
Standard sektorordning:
Standard enhetstyp:
+ Standard pregap start:
Inloggningsinfo
Hämtning
diff --git a/MPF.UI/Resources/Strings.uk.xaml b/MPF.UI/Resources/Strings.uk.xaml
index 48056133..86012372 100644
--- a/MPF.UI/Resources/Strings.uk.xaml
+++ b/MPF.UI/Resources/Strings.uk.xaml
@@ -128,6 +128,7 @@
Режим читання за замовчуванням:
Структура сектору за замовчуванням:
Тип приводу за замовчуванням:
+ Pregap start приводу за замовчуванням:
Інформація для входу
Завантаження
diff --git a/MPF.UI/Resources/Strings.xaml b/MPF.UI/Resources/Strings.xaml
index 69448afe..3220638a 100644
--- a/MPF.UI/Resources/Strings.xaml
+++ b/MPF.UI/Resources/Strings.xaml
@@ -128,6 +128,7 @@
Default Read Method:
Default Sector Order:
Default Drive Type:
+ Default Drive Pregap Start:
Login Info
Retrieval
diff --git a/MPF.UI/Windows/OptionsWindow.xaml b/MPF.UI/Windows/OptionsWindow.xaml
index cf101d44..b2169871 100644
--- a/MPF.UI/Windows/OptionsWindow.xaml
+++ b/MPF.UI/Windows/OptionsWindow.xaml
@@ -445,23 +445,30 @@
/>
-
+
-
+
-
+
+
+
+