JD2022-TU1/main/tools/apps/JDSongConverter/Converters/LynToJd2016Converter.cs

70 lines
4.3 KiB
C#

using JDSongConverter.Tasks;
using TeaBox.Macros;
namespace JDSongConverter.Converters
{
public class LynToJd2016Converter : Converter
{
private readonly CreateMapFromTemplateTask _createMapFromTemplateTask = new CreateMapFromTemplateTask();
private readonly CopyDirectoryTask _copyPictogramsTask = new CopyDirectoryTask{Name = "Copy pictogram directory"};
private readonly CleanWaveHeaderTask _cleanWaveHeaderTask = new CleanWaveHeaderTask();
private readonly CreateTrkFileTask _createTrkFileTask = new CreateTrkFileTask();
private readonly ConvertTimelineToDtapeTask _convertTimelineToDtape = new ConvertTimelineToDtapeTask();
private readonly ConvertTimelineToKtapeTask _convertTimelineToKtape = new ConvertTimelineToKtapeTask();
private readonly CopyMovesTask _copyMoves = new CopyMovesTask();
private readonly CreatePictoTfiTask _createPictoTfiTask = new CreatePictoTfiTask();
private readonly RepairTrkTask _repairTrkTask = new RepairTrkTask();
private readonly ConvertPictogramsToPngTask _convertTgaToPng = new ConvertPictogramsToPngTask();
private readonly CreateAmbiantTask _createAmbiantTask = new CreateAmbiantTask();
private readonly ChangeWaveSamplerateTask _changeWaveSamplerateTask = new ChangeWaveSamplerateTask();
private readonly CopyDirectoryTask _copyUiCoversTask = new CopyDirectoryTask { Name = "Copy UI covers" };
public LynToJd2016Converter()
{
Tasks.Add(_createMapFromTemplateTask);
Tasks.Add(_copyPictogramsTask);
Tasks.Add(_cleanWaveHeaderTask);
Tasks.Add(_changeWaveSamplerateTask);
Tasks.Add(_createTrkFileTask);
Tasks.Add(_convertTimelineToDtape);
Tasks.Add(_convertTimelineToKtape);
Tasks.Add(_createAmbiantTask);
Tasks.Add(_repairTrkTask);
Tasks.Add(_copyMoves);
Tasks.Add(_createPictoTfiTask);
Tasks.Add(_convertTgaToPng);
Tasks.Add(_copyUiCoversTask);
Tasks.AddRange(new JD2015ToJd2016Converter().Tasks);
}
public override void Process(JDSong song, string outputDir, string mapPathRelative, IExecutionContext logger)
{
var pictoInputDir = AppDefinitions.Default.AbsoluteMapPath(MapPathType.PictosDir, song);
var pictoOutputDir = AppDefinitions.Default.AbsoluteMapPath(MapPathType.PictosDir, outputDir, song.Name, JDSongVersion.JD2015, JDFolderLayout.Engine);
var tmlFile = AppDefinitions.Default.AbsoluteMapPath(MapPathType.TimelineTml, song);
var dtapeFile = AppDefinitions.Default.AbsoluteMapPath(MapPathType.DanceTapeFile, outputDir, song.Name, JDSongVersion.JD2015, JDFolderLayout.Engine);
var ktapeFile = AppDefinitions.Default.AbsoluteMapPath(MapPathType.KaraokeTapeFile, outputDir, song.Name, JDSongVersion.JD2015, JDFolderLayout.Engine);
var lyricsFile = AppDefinitions.Default.AbsoluteMapPath(MapPathType.LyricsFile, outputDir, song.Name, JDSongVersion.JD2015, JDFolderLayout.Engine);
var inputWav = AppDefinitions.Default.AbsoluteMapPath(MapPathType.WavFile, song);
var outputWav = AppDefinitions.Default.AbsoluteMapPath(MapPathType.WavFile, outputDir, song.Name, JDSongVersion.JD2015, JDFolderLayout.Engine);
var outputTrk = AppDefinitions.Default.AbsoluteMapPath(MapPathType.TrkFile, outputDir, song.Name, JDSongVersion.JD2015, JDFolderLayout.Engine);
var uiCoverInputDir = AppDefinitions.Default.AbsoluteMapPath(MapPathType.CoverAndCoachLobby, song);
var uiCoverOutputDir = AppDefinitions.Default.AbsoluteMapPath(MapPathType.CoverAndCoachLobby, outputDir, song.Name, JDSongVersion.JD2015, JDFolderLayout.Engine);
_copyPictogramsTask.Init(pictoInputDir, pictoOutputDir);
_convertTimelineToDtape.Init(tmlFile, dtapeFile);
_convertTimelineToKtape.Init(tmlFile, ktapeFile, lyricsFile);
_cleanWaveHeaderTask.Init(inputWav, outputWav);
_changeWaveSamplerateTask.Init(outputWav, outputWav);
_createTrkFileTask.Init(outputWav, outputTrk);
_createPictoTfiTask.Init(pictoOutputDir, pictoOutputDir);
_copyUiCoversTask.Init(uiCoverInputDir, uiCoverOutputDir);
base.Process(song, outputDir, mapPathRelative, logger);
}
}
}