Files
ChanSort/source/ChanSort.Loader.TCL/TclPlugin.cs
Horst Beham b097d20de8 - updated build.md with steps to compile and debug ChanSort yourself (without DevExpress license)
- updated .csproj files to include proper configurations for "NoDevExpress_Debug"
2025-06-12 16:27:25 +02:00

40 lines
1.2 KiB
C#

using System.IO;
using ChanSort.Api;
namespace ChanSort.Loader.TCL
{
public class TclPlugin : ISerializerPlugin
{
public string DllName { get; set; }
public string PluginName => "TCL";
public string FileFilter => "*.tar;*.bin;*.db";
public SerializerBase CreateSerializer(string inputFile)
{
var ext = Path.GetExtension(inputFile).ToLowerInvariant();
if (ext == ".tar")
return new DtvDataSerializer(inputFile);
var name = Path.GetFileName(inputFile).ToLowerInvariant();
var dir = Path.GetDirectoryName(inputFile);
if (name == "dtvdata.db" || name == "satellite.db")
return new DtvDataSerializer(Path.Combine(dir, "DtvData.db"));
if (name == "clonecrc.bin")
{
// cloneCRC.bin normally is in the parent folder of userdata/DtvData.db, but might also be in the same folder
var file1 = Path.Combine(dir, "userdata", "DtvData.db");
var file2 = Path.Combine(dir, "DtvData.db");
foreach (var file in new[] { file1, file2 })
{
if (File.Exists(file))
return new DtvDataSerializer(file);
}
}
throw LoaderException.TryNext("No DtvData.db file found");
}
}
}