Add queued FFmpeg conversion and finish splitting the window from the host.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-08-25 01:49:50 +02:00
parent 48d03f794f
commit 6fc7506eb7
85 changed files with 3394 additions and 512 deletions

View File

@@ -110,6 +110,29 @@ public class ArchiveFormatsTests
}
}
public class ConversionFormatsTests
{
[Fact]
public void Matches_video_audio_and_heic()
{
Assert.True(ConversionFormats.Matches("clip.MOV", ConversionKind.VideoToMp4));
Assert.True(ConversionFormats.Matches("talk.wav", ConversionKind.ExtractAudio));
Assert.True(ConversionFormats.Matches("film.mkv", ConversionKind.ExtractAudio));
Assert.True(ConversionFormats.Matches("IMG_0001.heic", ConversionKind.HeicToJpeg));
Assert.False(ConversionFormats.Matches("notes.txt", ConversionKind.VideoToMp4));
Assert.False(ConversionFormats.IsConvertible("notes.txt"));
Assert.True(ConversionFormats.IsConvertible("phone.mp4"));
Assert.Equal("mp4", ConversionFormats.Extension(ConversionKind.VideoToMp4));
Assert.Equal("m4a", ConversionFormats.Extension(ConversionKind.ExtractAudio));
Assert.Equal("jpg", ConversionFormats.Extension(ConversionKind.HeicToJpeg));
Assert.Equal(ConversionKind.VideoToMp4, ConversionFormats.Preferred(["clip.mov", "notes.txt"]));
Assert.Equal(ConversionKind.HeicToJpeg, ConversionFormats.Preferred(["IMG.HEIC"]));
Assert.Equal(ConversionKind.VideoToMp4, ConversionFormats.Infer(@"C:\a.mov", @"C:\a.mp4"));
Assert.Equal(ConversionKind.ExtractAudio, ConversionFormats.Infer(@"C:\a.mov", @"C:\a.m4a"));
Assert.Equal(ConversionKind.HeicToJpeg, ConversionFormats.Infer(@"C:\a.heic", @"C:\a.jpg"));
}
}
public class VolumeIdentityTests
{
[Fact]
@@ -386,6 +409,9 @@ public class OperationProfileTests
var compress = new OperationProfile { Name = "Archive", DoCopy = true, DoCompress = true, AutoRun = true };
Assert.False(compress.CanAutoRun);
var convert = new OperationProfile { Name = "Convert", DoCopy = true, DoConvert = true, AutoRun = true };
Assert.False(convert.CanAutoRun);
var rename = new OperationProfile { Name = "Rename", DoCopy = true, DoRename = true, RenamePrefix = "x_", AutoRun = true };
Assert.False(rename.CanAutoRun);
}