diff --git a/CUETools.ARCUE/CUETools.ARCUE.csproj b/CUETools.ARCUE/CUETools.ARCUE.csproj index 5eaf0cd..1a5bb9e 100644 --- a/CUETools.ARCUE/CUETools.ARCUE.csproj +++ b/CUETools.ARCUE/CUETools.ARCUE.csproj @@ -61,6 +61,10 @@ + + {AA2A9A7E-45FB-4632-AD85-85B0E556F818} + CUETools.CTDB + {4911BD82-49EF-4858-8B51-5394F86739A4} CUETools.Processor diff --git a/CUETools.ARCUE/Program.cs b/CUETools.ARCUE/Program.cs index 463c1d2..994f5bc 100644 --- a/CUETools.ARCUE/Program.cs +++ b/CUETools.ARCUE/Program.cs @@ -1,30 +1,55 @@ using System; using System.IO; +using CUETools.CTDB; using CUETools.Processor; namespace ArCueDotNet { class Program { - static void Main(string[] args) + static int Main(string[] args) { - if (args.Length != 1) + bool ok = true; + bool verbose = false; + string pathIn = null; + for (int arg = 0; arg < args.Length; arg++) + { + if (args[arg].Length == 0) + ok = false; + else if ((args[arg] == "-v" || args[arg] == "--verbose")) + verbose = true; + else if (args[arg][0] != '-' && pathIn == null) + pathIn = args[arg]; + else + ok = false; + if (!ok) + break; + } + + if (!ok || pathIn == null) { - Console.WriteLine("Usage: ArCueDotNet "); - return; + Console.SetOut(Console.Error); + Console.WriteLine("Usage: ArCueDotNet [options] "); + Console.WriteLine(); + Console.WriteLine("Options:"); + Console.WriteLine(); + Console.WriteLine(" -v --verbose Verbose mode"); + return 1; } - string pathIn = args[0]; if (!File.Exists(pathIn)) { + Console.SetOut(Console.Error); Console.WriteLine("Input CUE Sheet not found."); - return; + return 2; } + CUEConfig config = new CUEConfig(); config.writeArLogOnVerify = false; config.writeArTagsOnVerify = false; config.autoCorrectFilenames = true; config.extractAlbumArt = false; config.embedAlbumArt = false; + config.advanced.DetailedCTDBLog = verbose; string accurateRipLog; try @@ -34,6 +59,7 @@ namespace ArCueDotNet //cueSheet.OutputStyle = CUEStyle.SingleFile; cueSheet.Open(pathIn); cueSheet.UseAccurateRip(); + cueSheet.UseCUEToolsDB("ARCUE " + CUESheet.CUEToolsVersion, null, true, CTDBMetadataSearch.None); cueSheet.GenerateFilenames(AudioEncoderType.NoAudio, "dummy", pathIn); cueSheet.Go(); @@ -42,10 +68,11 @@ namespace ArCueDotNet catch (Exception ex) { Console.WriteLine("Error: " + ex.Message); - return; + return 3; } Console.Write(accurateRipLog); + return 0; } } } diff --git a/CUETools/CUETools.sln b/CUETools/CUETools.sln index f095b4e..4fe2960 100644 --- a/CUETools/CUETools.sln +++ b/CUETools/CUETools.sln @@ -64,6 +64,9 @@ EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libwavpack", "..\wavpack-4.5.0\src\libwavpack.vcxproj", "{5CCCB9CF-0384-458F-BA08-72B73866840F}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CUETools.ARCUE", "..\CUETools.ARCUE\CUETools.ARCUE.csproj", "{A5A8D8FA-9E32-4010-8AAF-AE580C5AF728}" + ProjectSection(ProjectDependencies) = postProject + {AA2A9A7E-45FB-4632-AD85-85B0E556F818} = {AA2A9A7E-45FB-4632-AD85-85B0E556F818} + EndProjectSection EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CUETools.Processor", "..\CUETools.Processor\CUETools.Processor.csproj", "{4911BD82-49EF-4858-8B51-5394F86739A4}" EndProject