1234567891011121314151617181920212223242526272829303132333435363738394041 |
- using CliWrap;
- using CliWrap.Buffered;
- using Ips.Library.Basic;
- using Ips.Library.Entity;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading;
- using System.Threading.Tasks;
- namespace Ips.Ddc
- {
- public static class DdcUtil
- {
- static readonly string CliFile = Path.Combine(IpsPath.CliRootDir, "ddc", "ddc.exe");
- public static async Task<ExeResult<string>> ExecAsync(string fileIn, long fs, string outDir, IEnumerable<DdcSigItem> items, bool real = false, bool useGpu = false, CancellationToken token = default)
- {
- var ddcItems = string.Join(" ", items);
- var cli = Cli.Wrap(CliFile)
- .WithArguments(args =>
- {
- args.Add(fileIn, true);
- args.Add(fs);
- args.Add(outDir);
- args.Add("--items").Add(ddcItems, false);
- if(real)
- {
- args.Add("--real");
- }
- if (useGpu)
- {
- args.Add("--gpu");
- }
- });
- var res = await cli.ExecuteBufferedAsync(token);
- return ExeResult.Create(res.StandardOutput, cli.Arguments, res.StartTime, res.ExitTime, res.ExitCode, res.StandardError);
- }
- }
- }
|