Add queued FFmpeg conversion and finish splitting the window from the host.
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -88,6 +88,20 @@ public sealed class FileOperationService
|
||||
public Task VerifyArchiveAsync(string archivePath, CancellationToken cancellationToken = default)
|
||||
=> _queue.EnqueueVerifyArchiveAsync(archivePath, cancellationToken);
|
||||
|
||||
public Task ConvertAsync(string sourcePath, string destinationPath, ConversionKind kind, CancellationToken cancellationToken = default)
|
||||
=> _queue.EnqueueConvertAsync(sourcePath, destinationPath, kind, cancellationToken);
|
||||
|
||||
public async Task ConvertAsync(IReadOnlyList<PlannedOperation> operations, CancellationToken cancellationToken = default)
|
||||
{
|
||||
foreach (var op in operations.Where(o => o.Op == TransferOp.Convert && o.DestinationPath is not null))
|
||||
{
|
||||
var kind = Enum.TryParse<ConversionKind>(op.NewName, true, out var parsed)
|
||||
? parsed
|
||||
: ConversionFormats.Infer(op.SourcePath, op.DestinationPath!);
|
||||
await _queue.EnqueueConvertAsync(op.SourcePath, op.DestinationPath!, kind, cancellationToken).ConfigureAwait(false);
|
||||
}
|
||||
}
|
||||
|
||||
public static string UniqueArchivePath(string directory, string stem, string extension)
|
||||
{
|
||||
extension = extension.Trim().TrimStart('.');
|
||||
|
||||
Reference in New Issue
Block a user