feat: adiciona suporte para definir título e faixa padrão em faixas de áudio e legenda

This commit is contained in:
2026-03-01 01:55:22 -03:00
parent c7031cbdce
commit 1f163ca0fc
15 changed files with 294 additions and 16 deletions
+6 -2
View File
@@ -1,6 +1,6 @@
use anyhow::Result;
use crate::domain::entities::{AudioTrack, Project, Track};
use crate::domain::value_objects::{FilePath, SyncOffset, TrackLanguage};
use anyhow::Result;
/// Adiciona uma faixa de áudio externa ao projeto.
pub struct AddAudioTrack;
@@ -11,9 +11,11 @@ impl AddAudioTrack {
path: FilePath,
offset: SyncOffset,
language: TrackLanguage,
is_default: bool,
title: String,
) -> Result<()> {
let id = project.next_track_id();
let track = AudioTrack::new(id, path, offset, language);
let track = AudioTrack::new(id, path, offset, language, is_default, title);
project.tracks.push(Track::Audio(track));
Ok(())
}
@@ -39,6 +41,8 @@ mod tests {
FilePath::from("audio_pt.aac"),
SyncOffset::default(),
lang,
false,
String::new(),
)
.unwrap();
+6 -2
View File
@@ -1,6 +1,6 @@
use anyhow::Result;
use crate::domain::entities::{Project, SubtitleTrack, Track};
use crate::domain::value_objects::{FilePath, SyncOffset, TrackLanguage};
use anyhow::Result;
/// Adiciona uma faixa de legenda externa ao projeto.
pub struct AddSubtitle;
@@ -11,9 +11,11 @@ impl AddSubtitle {
path: FilePath,
offset: SyncOffset,
language: TrackLanguage,
is_default: bool,
title: String,
) -> Result<()> {
let id = project.next_track_id();
let track = SubtitleTrack::new(id, path, offset, language);
let track = SubtitleTrack::new(id, path, offset, language, is_default, title);
project.tracks.push(Track::Subtitle(track));
Ok(())
}
@@ -38,6 +40,8 @@ mod tests {
FilePath::from("sub_en.srt"),
SyncOffset::default(),
lang,
false,
String::new(),
)
.unwrap();
+2
View File
@@ -37,6 +37,8 @@ mod tests {
FilePath::from("audio.aac"),
SyncOffset::default(),
lang,
false,
String::new(),
)
.unwrap();
let id = project.tracks[0].id();
@@ -49,6 +49,8 @@ mod tests {
FilePath::from("audio_pt.aac"),
SyncOffset::from_ms(1200),
TrackLanguage::new("por").unwrap(),
false,
String::new(),
)
.unwrap();
@@ -38,6 +38,8 @@ mod tests {
FilePath::from("audio.aac"),
SyncOffset::from_ms(0),
TrackLanguage::new("por").unwrap(),
false,
String::new(),
)));
assert_eq!(project.tracks.len(), 1);
@@ -36,6 +36,8 @@ mod tests {
FilePath::from("audio.aac"),
SyncOffset::default(),
TrackLanguage::new("por").unwrap(),
false,
String::new(),
)
.unwrap();
let id = project.tracks[0].id();