diff --git a/ClrVpin.sln.DotSettings b/ClrVpin.sln.DotSettings
index ddd1485..a8efdc9 100644
--- a/ClrVpin.sln.DotSettings
+++ b/ClrVpin.sln.DotSettings
@@ -231,6 +231,7 @@
True
True
True
+ True
True
True
diff --git a/ClrVpin/Controls/Folder/ContentFolderType.xaml b/ClrVpin/Controls/Folder/ContentFolderType.xaml
index 091d8f2..6a45eff 100644
--- a/ClrVpin/Controls/Folder/ContentFolderType.xaml
+++ b/ClrVpin/Controls/Folder/ContentFolderType.xaml
@@ -40,7 +40,7 @@
diff --git a/ClrVpin/Models/Settings/Settings.cs b/ClrVpin/Models/Settings/Settings.cs
index 5a37b57..3187a0a 100644
--- a/ClrVpin/Models/Settings/Settings.cs
+++ b/ClrVpin/Models/Settings/Settings.cs
@@ -41,7 +41,7 @@ private void ApplyDefaults()
{
new() { Enum = ContentTypeEnum.Tables, Tip = "Playfield table", Extensions = "*.vpx, *.vpt", KindredExtensions = "*.ini, *.vbs, *.txt, *.pdf", Category = ContentTypeCategoryEnum.Pinball, IsFolderRequired = true},
new() { Enum = ContentTypeEnum.Backglasses, Tip = "Video used for the backglass", Extensions = "*.directb2s", Category = ContentTypeCategoryEnum.Pinball },
- new() { Enum = ContentTypeEnum.PointOfViews, Tip = "3D camera configuration", Extensions = "*.pov", Category = ContentTypeCategoryEnum.Pinball },
+ new() { Enum = ContentTypeEnum.PointOfViews, Tip = "3D camera configuration", Extensions = "*.pov", KindredExtensions = "autopov.pov", Category = ContentTypeCategoryEnum.Pinball },
new() { Enum = ContentTypeEnum.Database, Tip = "Pinball X or Pinball Y database file", Extensions = "*.xml", Category = ContentTypeCategoryEnum.Database, IsFolderRequired = true},
new() { Enum = ContentTypeEnum.TableAudio, Tip = "Audio used when displaying a table", Extensions = "*.mp3, *.wav", Category = ContentTypeCategoryEnum.Media },
new() { Enum = ContentTypeEnum.LaunchAudio, Tip = "Audio used when launching a table", Extensions = "*.mp3, *.wav", Category = ContentTypeCategoryEnum.Media },
@@ -105,7 +105,7 @@ private void ApplyDefaults()
public int Version { get; set; }
[JsonIgnore]
- public int MinVersion { get; set; } = 8;
+ public int MinVersion { get; set; } = 9;
public void Init(DefaultSettings defaultSettings)
{
diff --git a/ClrVpin/Models/Settings/StaticSettings.cs b/ClrVpin/Models/Settings/StaticSettings.cs
index 82adbc3..93b6de0 100644
--- a/ClrVpin/Models/Settings/StaticSettings.cs
+++ b/ClrVpin/Models/Settings/StaticSettings.cs
@@ -65,7 +65,7 @@ static StaticSettings()
new(HitTypeEnum.Missing, false, "Files that are missing. Missing files can be downloaded via the 'Feeder' feature from the home page."),
new(HitTypeEnum.Unknown, false, "Files that do match the configured file extension type, but don't match any of the tables in the database"),
new(HitTypeEnum.Unsupported, false,
- "Files that don't match the configured file extension types - ONLY APPLICABLE FOR MEDIA CONTENT, since unsupported files are EXPECTED to exist in the tables folder (e.g. txt, exe, ogg, etc)")
+ "Files that don't match the configured file extension types - ONLY APPLICABLE FOR MEDIA CONTENT, since unsupported file types/extensions are EXPECTED to exist in the tables folder (e.g. txt, exe, ogg, etc)")
};
// merger matching criteria types - to be used elsewhere (merger)
diff --git a/ClrVpin/Shared/Utils/ContentUtils.cs b/ClrVpin/Shared/Utils/ContentUtils.cs
index d7cc5ff..c7d8c75 100644
--- a/ClrVpin/Shared/Utils/ContentUtils.cs
+++ b/ClrVpin/Shared/Utils/ContentUtils.cs
@@ -25,7 +25,8 @@ public static IList GetContentFileNames(ContentType contentType, string
public static IEnumerable GetNonContentFileDetails(ContentType contentType, string folder)
{
- // return all files that don't match the supported file extensions
+ // return all files that don't match the supported file extensions OR kindred file extensions
+ // - kindred file extensions are normally in the format *., but may also include a file name, e.g. autopov.pov
var supportedExtensions = contentType.ExtensionsList.Select(x => x.TrimStart('*').ToLower()).ToList();
var kindredExtensions = contentType.KindredExtensionsList.Where(x => !string.IsNullOrWhiteSpace(x)).Select(x => x.TrimStart('*').ToLower());
supportedExtensions.AddRange(kindredExtensions);
@@ -101,7 +102,9 @@ public static IEnumerable MatchFilesToLocal(IList localGa
// - e.g. possible for..
// a. table --> new table files added AND the database not updated yet
// b. table support and media --> as per pinball OR extra/redundant files exist where there is no table (yet!)
- unmatchedSupportedFiles.Add(new FileDetail(contentType.Enum, HitTypeEnum.Unknown, FixFileTypeEnum.Skipped, contentFile, new FileInfo(contentFile).Length));
+ // c. pov --> known exception for 'autopov.pov' which is a special case that is known NOT to match a table
+ if (!contentType.KindredExtensionsList.Contains(Path.GetFileName(contentFile)))
+ unmatchedSupportedFiles.Add(new FileDetail(contentType.Enum, HitTypeEnum.Unknown, FixFileTypeEnum.Skipped, contentFile, new FileInfo(contentFile).Length));
}
}
});