mirror of
https://github.com/PredatH0r/ChanSort.git
synced 2026-01-22 23:32:04 +01:00
merged patch for VDR *.conf channel list format
This commit is contained in:
@@ -134,6 +134,13 @@ namespace ChanSort.Api
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region GetChannelsByNewOrder()
|
||||
public IList<ChannelInfo> GetChannelsByNewOrder()
|
||||
{
|
||||
return this.channels.OrderBy(c => c.NewProgramNr).ToList();
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region RemoveChannel()
|
||||
public void RemoveChannel(ChannelInfo channel)
|
||||
{
|
||||
|
||||
87
ChanSort.Loader.VDR/ChanSort.Loader.VDR.csproj
Normal file
87
ChanSort.Loader.VDR/ChanSort.Loader.VDR.csproj
Normal file
@@ -0,0 +1,87 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
<ProductVersion>8.0.30703</ProductVersion>
|
||||
<SchemaVersion>2.0</SchemaVersion>
|
||||
<ProjectGuid>{74A18C6F-09FF-413E-90D9-827066FA5B36}</ProjectGuid>
|
||||
<OutputType>Library</OutputType>
|
||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||
<RootNamespace>ChanSort.Loader.VDR</RootNamespace>
|
||||
<AssemblyName>ChanSort.Loader.VDR</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
|
||||
<TargetFrameworkProfile>
|
||||
</TargetFrameworkProfile>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>bin\Debug\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<Optimize>true</Optimize>
|
||||
<OutputPath>bin\Release\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<OutputPath>..\Debug\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<DebugType>full</DebugType>
|
||||
<PlatformTarget>x86</PlatformTarget>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<CodeAnalysisIgnoreBuiltInRuleSets>true</CodeAnalysisIgnoreBuiltInRuleSets>
|
||||
<CodeAnalysisIgnoreBuiltInRules>true</CodeAnalysisIgnoreBuiltInRules>
|
||||
<AllowUnsafeBlocks>false</AllowUnsafeBlocks>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x86'">
|
||||
<OutputPath>bin\x86\Release\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<Optimize>true</Optimize>
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<PlatformTarget>x86</PlatformTarget>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<CodeAnalysisIgnoreBuiltInRuleSets>true</CodeAnalysisIgnoreBuiltInRuleSets>
|
||||
<CodeAnalysisIgnoreBuiltInRules>true</CodeAnalysisIgnoreBuiltInRules>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Core" />
|
||||
<Reference Include="System.Xml.Linq" />
|
||||
<Reference Include="System.Data.DataSetExtensions" />
|
||||
<Reference Include="System.Data" />
|
||||
<Reference Include="System.Drawing" />
|
||||
<Reference Include="System.Windows.Forms" />
|
||||
<Reference Include="System.Xml" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="Channels.cs" />
|
||||
<Compile Include="Serializer.cs" />
|
||||
<Compile Include="SerializerPlugin.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
<Service Include="{94E38DFF-614B-4cbd-B67C-F211BB35CE8B}" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\ChanSort.Api\ChanSort.Api.csproj">
|
||||
<Project>{DCCFFA08-472B-4D17-BB90-8F513FC01392}</Project>
|
||||
<Name>ChanSort.Api</Name>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
||||
Other similar extension points exist, see Microsoft.Common.targets.
|
||||
<Target Name="BeforeBuild">
|
||||
</Target>
|
||||
<Target Name="AfterBuild">
|
||||
</Target>
|
||||
-->
|
||||
</Project>
|
||||
330
ChanSort.Loader.VDR/Channels.cs
Normal file
330
ChanSort.Loader.VDR/Channels.cs
Normal file
@@ -0,0 +1,330 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using ChanSort.Api;
|
||||
|
||||
namespace ChanSort.Loader.VDR
|
||||
{
|
||||
internal class Channels : ChannelInfo
|
||||
{
|
||||
private const int MAXAPIDS = 32; // audio
|
||||
private const int MAXDPIDS = 16; // dolby (AC3 + DTS)
|
||||
|
||||
public string confLine { get; private set; }
|
||||
|
||||
private int vtype;
|
||||
private int[] apids = new int[MAXAPIDS+1]; // list is zero-terminated
|
||||
private int[] atypes = new int[MAXAPIDS + 1]; // list is zero-terminated
|
||||
private string[] alangs = new string[MAXAPIDS];
|
||||
|
||||
private int[] dpids = new int[MAXDPIDS + 1]; // list is zero-terminated
|
||||
private int[] dtypes = new int[MAXAPIDS + 1]; // list is zero-terminated
|
||||
private string[] dlangs = new string[MAXDPIDS];
|
||||
|
||||
#region ctor()
|
||||
internal Channels(int pos, String line, DataRoot dataRoot)
|
||||
{
|
||||
this.confLine = line;
|
||||
this.RecordIndex = this.RecordOrder = this.OldProgramNr = pos+1;
|
||||
|
||||
try
|
||||
{
|
||||
if (line[0] == ':')
|
||||
{
|
||||
this.Name = Convert.ToString(line.Split(':').GetValue(1));
|
||||
return;
|
||||
}
|
||||
|
||||
var fields = line.Split(':');
|
||||
|
||||
// field 0 - ChannelName[,ShotName][;ProviderName]
|
||||
if (fields[0].IndexOf(',') >= 0 || fields[0].IndexOf(';') >= 0)
|
||||
{
|
||||
if (fields[0].IndexOf(',') >= 0)
|
||||
{
|
||||
this.Name = fields[0].Substring(0, fields[0].LastIndexOf(','));
|
||||
if (fields[0].IndexOf(';') >= 0)
|
||||
this.ShortName = fields[0].Split(';').GetValue(0).ToString().Substring(fields[0].LastIndexOf(',')+1);
|
||||
else
|
||||
this.ShortName = fields[0].Substring(fields[0].LastIndexOf(',')+1);
|
||||
}
|
||||
else
|
||||
this.Name = Convert.ToString(fields[0].Split(';').GetValue(0));
|
||||
|
||||
if (fields[0].IndexOf(';') >= 0)
|
||||
this.Provider = Convert.ToString(fields[0].Split(';').GetValue(1));
|
||||
}
|
||||
else
|
||||
this.Name = Convert.ToString(fields[0]);
|
||||
|
||||
if (fields.Length >= 9)
|
||||
{
|
||||
// field 1 - Freqency
|
||||
// DVB-S - Frequency in MHz.
|
||||
// DVB-C/T - Frequency in MHz, kHz or Hz.
|
||||
// analogue- Frequency in MHz. (analogTV plugin)
|
||||
|
||||
int freq = Convert.ToInt32(fields[1]);
|
||||
// TODO - corrent DVB-C/T to MHz
|
||||
this.FreqInMhz = freq;
|
||||
|
||||
// field 2 - Params
|
||||
ParseParams(Convert.ToString(fields[2]));
|
||||
|
||||
// field 3 - Source
|
||||
string ntype = Convert.ToString(fields[3]);
|
||||
switch (ntype[0])
|
||||
{
|
||||
case 'S':
|
||||
this.SignalSource |= SignalSource.DvbS;
|
||||
this.Satellite = ntype.Substring(1,ntype.Length -1);
|
||||
this.SatPosition = ntype.Substring(1, ntype.Length - 1);
|
||||
break;
|
||||
|
||||
case 'C':
|
||||
this.SignalSource |= SignalSource.DvbC;
|
||||
this.Satellite = "DVB-C";
|
||||
break;
|
||||
|
||||
case 'T':
|
||||
this.SignalSource |= SignalSource.DvbT;
|
||||
this.Satellite = "DVB-T";
|
||||
break;
|
||||
|
||||
}
|
||||
|
||||
// field 4 - SymbolRate
|
||||
this.SymbolRate = Convert.ToInt32(fields[4]);
|
||||
|
||||
// field 5 - Video-PID[+PCR-PID][=Stream-Type]
|
||||
vtype = 0;
|
||||
string tmp = fields[5];
|
||||
if (tmp.IndexOf('=') >= 0 || tmp.IndexOf('+') >= 0)
|
||||
{
|
||||
this.SignalSource |= SignalSource.Tv;
|
||||
if (tmp.IndexOf('+') >= 0)
|
||||
{
|
||||
this.VideoPid = Convert.ToInt32(fields[5].Split('+').GetValue(0));
|
||||
if (tmp.IndexOf('=') >= 0)
|
||||
vtype = Convert.ToInt32(fields[5].Split('=').GetValue(1));
|
||||
}
|
||||
else
|
||||
{
|
||||
this.VideoPid = Convert.ToInt32(fields[5].Split('=').GetValue(0));
|
||||
vtype = Convert.ToInt32(fields[5].Split('=').GetValue(1));
|
||||
}
|
||||
}
|
||||
else if (tmp == "0" || tmp == "1")
|
||||
{
|
||||
this.SignalSource |= SignalSource.Radio;
|
||||
if (tmp == "1")
|
||||
this.Encrypted = true;
|
||||
}
|
||||
else
|
||||
this.VideoPid = Convert.ToInt32(fields[5]);
|
||||
|
||||
if (this.VideoPid != 0 && vtype == 0)
|
||||
vtype = 2; // default is MPEG-2
|
||||
|
||||
// field 6 - Audio-PID[=Language-ID][@Stream-Type][;Dolby-PID[=Language-ID][@Stream-Type]]
|
||||
int NumApids = 0;
|
||||
int NumDpids = 0;
|
||||
|
||||
apids[0] = 0;
|
||||
atypes[0] = 0;
|
||||
dpids[0] = 0;
|
||||
dtypes[0] = 0;
|
||||
|
||||
// example field: 5102=deu@3,5103=deu;5106
|
||||
// 101=deu@3;103=deu@106
|
||||
|
||||
foreach (string f1 in fields[6].Split(','))
|
||||
{
|
||||
int i = 0;
|
||||
foreach (string apid in f1.Split(';'))
|
||||
{
|
||||
if(i == 0) // apids
|
||||
{
|
||||
atypes[NumApids] = 4; // backwards compatibility
|
||||
|
||||
if (apid.IndexOf('=') >= 0)
|
||||
{
|
||||
apids[NumApids] = Convert.ToInt32(apid.Split('=').GetValue(0));
|
||||
if (apid.IndexOf('@') >= 0)
|
||||
{
|
||||
tmp = Convert.ToString(apid.Split('=').GetValue(1));
|
||||
alangs[NumApids] = Convert.ToString(tmp.Split('@').GetValue(0));
|
||||
atypes[NumApids] = Convert.ToInt32(tmp.Split('@').GetValue(1));
|
||||
}
|
||||
else
|
||||
alangs[NumApids] = Convert.ToString(apid.Split('=').GetValue(1));
|
||||
}
|
||||
else if (apid.IndexOf('@') >= 0)
|
||||
{
|
||||
apids[NumApids] = Convert.ToInt32(apid.Split('@').GetValue(0));
|
||||
atypes[NumApids] = Convert.ToInt32(apid.Split('@').GetValue(1));
|
||||
}
|
||||
else
|
||||
apids[NumApids] = Convert.ToInt32(apid);
|
||||
|
||||
NumApids++;
|
||||
}
|
||||
else // dpids
|
||||
{
|
||||
//dtypes[NumDpids]
|
||||
//dlangs[NumDpids]
|
||||
//dpids[NumDpids]
|
||||
NumDpids++;
|
||||
}
|
||||
i++;
|
||||
}
|
||||
}
|
||||
|
||||
this.AudioPid = apids[0];
|
||||
this.ServiceType = getServiceType();
|
||||
|
||||
// field 7 - Teletext-PID (TPID)
|
||||
|
||||
// field 8 - Conditional Access-ID (CAID)
|
||||
if (Convert.ToString(fields[8]) == "0")
|
||||
this.Encrypted = false;
|
||||
else
|
||||
this.Encrypted = true;
|
||||
|
||||
// field 9 - Service ID (SID)
|
||||
this.ServiceId = Convert.ToInt32(fields[9]);
|
||||
|
||||
// field 10 - Network ID (NID)
|
||||
this.OriginalNetworkId = Convert.ToInt32(fields[10]);
|
||||
|
||||
// field 11 - Transport Steam ID (TID)
|
||||
this.TransportStreamId = Convert.ToInt32(fields[11]);
|
||||
|
||||
// field 12 - Radio ID (RID)
|
||||
}
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
Console.WriteLine("{0} Exception caught.", e);
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region ParseParams
|
||||
private void ParseParams(String Params)
|
||||
{
|
||||
Params = Params.ToUpper();
|
||||
for (int i = 0; i < Params.Length; i++)
|
||||
{
|
||||
switch (Params[i])
|
||||
{
|
||||
case 'B':
|
||||
// Bandwidth in MHz (1712 in kHz) (1712, 5, 6, 7, 8, 10)
|
||||
break;
|
||||
|
||||
case 'C':
|
||||
// Code rate high priority (FEC) (0, 12, 23, 34, 35, 45, 56, 67, 78, 89, 910)
|
||||
break;
|
||||
|
||||
case 'D':
|
||||
// coDe rate low priority (FEC) (0, 12, 23, 34, 35, 45, 56, 67, 78, 89, 910)
|
||||
break;
|
||||
|
||||
case 'G':
|
||||
// Guard interval (4, 8, 16, 32, 128, 19128, 19256)
|
||||
break;
|
||||
|
||||
case 'H':
|
||||
// Horizontal Polarization
|
||||
break;
|
||||
|
||||
case 'I':
|
||||
// Inversion (0, 1)
|
||||
break;
|
||||
|
||||
case 'L':
|
||||
// Left circular polarization
|
||||
break;
|
||||
|
||||
case 'M':
|
||||
// Modulation (2, 5, 6, 7, 10, 11, 12, 16, 32, 64, 128, 256, 999)
|
||||
break;
|
||||
|
||||
case 'O':
|
||||
// rollOff (0, 20, 25, 35)
|
||||
break;
|
||||
|
||||
case 'P':
|
||||
// stream id (0-255)
|
||||
break;
|
||||
|
||||
case 'R':
|
||||
// Right circular polarization
|
||||
break;
|
||||
|
||||
case 'S':
|
||||
// delivery System (0, 1)
|
||||
break;
|
||||
|
||||
case 'T':
|
||||
// Transmission mode (1, 2, 4, 8, 16, 32)
|
||||
break;
|
||||
|
||||
case 'V':
|
||||
// Vertical Polarization
|
||||
break;
|
||||
|
||||
case 'Y':
|
||||
// hierarchY (0, 1, 2, 4)
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private int getServiceType()
|
||||
{
|
||||
if ((this.SignalSource & SignalSource.Radio) != 0)
|
||||
return 2;
|
||||
|
||||
// we cant get real ServiceType, but we can try to poke a little bit around :D
|
||||
switch (vtype)
|
||||
{
|
||||
case 2: // 2 = MPEG2
|
||||
return 1;
|
||||
|
||||
case 27: // 27 = H264
|
||||
return 25;
|
||||
|
||||
case 16: // 16 = MPEG4
|
||||
return 22;
|
||||
|
||||
default:
|
||||
return 0;
|
||||
|
||||
}
|
||||
|
||||
//SERVICETYPE;Number;Description
|
||||
//SERVICETYPE;01;SD-TV - SD MPEG1
|
||||
//SERVICETYPE;02;Radio
|
||||
//SERVICETYPE;12;Data/Test
|
||||
//SERVICETYPE;22;SD-TV
|
||||
//SERVICETYPE;25;HD-TV
|
||||
//SERVICETYPE;211;Option
|
||||
|
||||
// case 0x01: 01 // SD MPEG1
|
||||
// case 0x11: 17 // MPEG2-HD
|
||||
// case 0x16: 22 // H264/AVC-SD
|
||||
// case 0x19: 25 // H264/AVC-HD
|
||||
// return SignalSource.Tv;
|
||||
// case 0x02:
|
||||
// case 0x0A:
|
||||
// return SignalSource.Radio;
|
||||
}
|
||||
}
|
||||
}
|
||||
36
ChanSort.Loader.VDR/Properties/AssemblyInfo.cs
Normal file
36
ChanSort.Loader.VDR/Properties/AssemblyInfo.cs
Normal file
@@ -0,0 +1,36 @@
|
||||
using System.Reflection;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
// General Information about an assembly is controlled through the following
|
||||
// set of attributes. Change these attribute values to modify the information
|
||||
// associated with an assembly.
|
||||
[assembly: AssemblyTitle("ChanSort.Loader.VDR")]
|
||||
[assembly: AssemblyDescription("")]
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyCompany("")]
|
||||
[assembly: AssemblyProduct("ChanSort.Loader.VDR")]
|
||||
[assembly: AssemblyCopyright("Copyright © 2014")]
|
||||
[assembly: AssemblyTrademark("")]
|
||||
[assembly: AssemblyCulture("")]
|
||||
|
||||
// Setting ComVisible to false makes the types in this assembly not visible
|
||||
// to COM components. If you need to access a type in this assembly from
|
||||
// COM, set the ComVisible attribute to true on that type.
|
||||
[assembly: ComVisible(false)]
|
||||
|
||||
// The following GUID is for the ID of the typelib if this project is exposed to COM
|
||||
[assembly: Guid("ebf84b90-20d8-4cdb-bda0-d711070fe551")]
|
||||
|
||||
// Version information for an assembly consists of the following four values:
|
||||
//
|
||||
// Major Version
|
||||
// Minor Version
|
||||
// Build Number
|
||||
// Revision
|
||||
//
|
||||
// You can specify all the values or you can default the Build and Revision Numbers
|
||||
// by using the '*' as shown below:
|
||||
// [assembly: AssemblyVersion("1.0.*")]
|
||||
[assembly: AssemblyVersion("1.0.0.0")]
|
||||
[assembly: AssemblyFileVersion("1.0.0.0")]
|
||||
85
ChanSort.Loader.VDR/Serializer.cs
Normal file
85
ChanSort.Loader.VDR/Serializer.cs
Normal file
@@ -0,0 +1,85 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Data;
|
||||
using System.IO;
|
||||
using System.Text;
|
||||
using System.Windows.Forms;
|
||||
using ChanSort.Api;
|
||||
|
||||
namespace ChanSort.Loader.VDR
|
||||
{
|
||||
class Serializer : SerializerBase
|
||||
{
|
||||
private const string ERR_FileFormat = "File uses an unknown format";
|
||||
|
||||
private readonly ChannelList allChannels = new ChannelList(SignalSource.DvbT | SignalSource.DvbC | SignalSource.DvbS | SignalSource.AnalogC | SignalSource.AnalogT | SignalSource.Tv | SignalSource.Radio, "All");
|
||||
|
||||
#region ctor()
|
||||
public Serializer(string inputFile) : base(inputFile)
|
||||
{
|
||||
DepencencyChecker.AssertVc2010RedistPackageX86Installed();
|
||||
|
||||
this.Features.ChannelNameEdit = false;
|
||||
this.DataRoot.SortedFavorites = false;
|
||||
//this.DataRoot.SupportedFavorites = new Favorites();
|
||||
|
||||
this.DataRoot.AddChannelList(this.allChannels);
|
||||
}
|
||||
#endregion
|
||||
|
||||
public override string DisplayName { get { return "VDR channels .conf Loader"; } }
|
||||
|
||||
#region Load()
|
||||
public override void Load()
|
||||
{
|
||||
this.ReadChannels();
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region ReadChannels()
|
||||
private void ReadChannels()
|
||||
{
|
||||
string line;
|
||||
int pos = 0;
|
||||
|
||||
using (StreamReader file = new StreamReader(this.FileName))
|
||||
{
|
||||
while ((line = file.ReadLine()) != null)
|
||||
{
|
||||
ChannelInfo channel = new Channels(pos, line, this.DataRoot);
|
||||
this.DataRoot.AddChannel(this.allChannels, channel);
|
||||
pos++;
|
||||
}
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region Save()
|
||||
public override void Save(string tvOutputFile)
|
||||
{
|
||||
if (tvOutputFile != this.FileName)
|
||||
{
|
||||
File.Copy(this.FileName, tvOutputFile);
|
||||
this.FileName = tvOutputFile;
|
||||
}
|
||||
|
||||
using (StreamWriter file = new StreamWriter(tvOutputFile))
|
||||
{
|
||||
foreach (Channels channelInfo in this.allChannels.GetChannelsByNewOrder())
|
||||
{
|
||||
file.WriteLine(channelInfo.confLine);
|
||||
}
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region GetFileInformation()
|
||||
public override string GetFileInformation()
|
||||
{
|
||||
StringBuilder sb = new StringBuilder();
|
||||
sb.Append(base.GetFileInformation());
|
||||
return sb.ToString();
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
15
ChanSort.Loader.VDR/SerializerPlugin.cs
Normal file
15
ChanSort.Loader.VDR/SerializerPlugin.cs
Normal file
@@ -0,0 +1,15 @@
|
||||
using ChanSort.Api;
|
||||
|
||||
namespace ChanSort.Loader.VDR
|
||||
{
|
||||
public class SerializerPlugin : ISerializerPlugin
|
||||
{
|
||||
public string PluginName { get { return "VDR Channels *.conf"; } }
|
||||
public string FileFilter { get { return "*.conf"; } }
|
||||
|
||||
public SerializerBase CreateSerializer(string inputFile)
|
||||
{
|
||||
return new Serializer(inputFile);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,6 +1,5 @@
|
||||
@echo off
|
||||
c:\cygwin\bin\date "+%%Y-%%m-%%d">%TEMP%\date.txt
|
||||
set /p curdate=<%temp%\date.txt
|
||||
set curdate=%date:~6,4%-%date:~3,2%-%date:~0,2%
|
||||
set target=%cd%\..\ChanSort_%curdate%
|
||||
set DXversion=13.2
|
||||
mkdir "%target%" 2>nul
|
||||
|
||||
Reference in New Issue
Block a user