46 lines
1.3 KiB
C#
46 lines
1.3 KiB
C#
using System;
|
|
using System.Globalization;
|
|
using System.Linq;
|
|
|
|
using JD.Audio.Sox;
|
|
|
|
namespace TeaBox.Data
|
|
{
|
|
public class AudioPreviewCommand : SoxCommand
|
|
{
|
|
/// <summary>
|
|
/// The input file to use.
|
|
/// </summary>
|
|
public string Input { get; set; }
|
|
|
|
/// <summary>
|
|
/// The generated file.
|
|
/// </summary>
|
|
public string Output { get; set; }
|
|
|
|
/// <summary>
|
|
/// Trim start time.
|
|
/// </summary>
|
|
public TimeSpan Start { get; set; }
|
|
|
|
/// <summary>
|
|
/// Trim end time.
|
|
/// </summary>
|
|
public TimeSpan Duration { get; set; }
|
|
|
|
public TimeSpan FadeIn { get; set; }
|
|
|
|
public TimeSpan FadeOut { get; set; }
|
|
|
|
/// <summary>
|
|
/// Volume, in dB
|
|
/// </summary>
|
|
public float Volume { get; set; }
|
|
|
|
protected override string GetSoxArguments()
|
|
{
|
|
string args = $"{Input} {Output} trim {Start.TotalSeconds.ToString(CultureInfo.InvariantCulture)} {Duration.TotalSeconds.ToString(CultureInfo.InvariantCulture)} fade t {FadeIn.TotalSeconds.ToString(CultureInfo.InvariantCulture)} {Duration.TotalSeconds.ToString(CultureInfo.InvariantCulture)} {FadeOut.TotalSeconds.ToString(CultureInfo.InvariantCulture)} gain {Volume.ToString(CultureInfo.InvariantCulture)}";
|
|
return args;
|
|
}
|
|
}
|
|
}
|