Skip to content

Commit 41a648e

Browse files
committed
[*] refactor: video-editor
1 parent 4cb6932 commit 41a648e

File tree

13 files changed

+835
-917
lines changed

13 files changed

+835
-917
lines changed

lib/video-editor/src/commands/track.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -155,6 +155,7 @@ impl Command for DuplicateTrackCommand {
155155
Track::Video(vt) => {
156156
let vt = vt.as_ref();
157157
Track::Video(Arc::new(crate::tracks::video_track::VideoTrack {
158+
name: vt.name.clone(),
158159
hiding: vt.hiding,
159160
muted: vt.muted,
160161
track: vt.track.clone(),
@@ -163,13 +164,15 @@ impl Command for DuplicateTrackCommand {
163164
Track::Audio(at) => {
164165
let at = at.as_ref();
165166
Track::Audio(Arc::new(crate::tracks::audio_track::AudioTrack {
167+
name: at.name.clone(),
166168
hiding: at.hiding,
167169
track: at.track.clone(),
168170
}))
169171
}
170172
Track::Subtitle(st) => {
171173
let st = st.as_ref();
172174
Track::Subtitle(Arc::new(crate::tracks::subtitle_track::SubtitleTrack {
175+
name: st.name.clone(),
173176
hiding: st.hiding,
174177
subtitles: st.subtitles.clone(),
175178
track: st.track.clone(),
@@ -178,6 +181,7 @@ impl Command for DuplicateTrackCommand {
178181
Track::Overlay(ot) => {
179182
let ot = ot.as_ref();
180183
Track::Overlay(Arc::new(crate::tracks::overlay_track::OverlayTrack {
184+
name: ot.name.clone(),
181185
hiding: ot.hiding,
182186
track: ot.track.clone(),
183187
}))

lib/video-editor/src/metadata.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ pub struct SubtitleMetadata {
5050
pub duration: Duration,
5151
}
5252

53-
#[derive(Debug, Clone)]
53+
#[derive(Debug, Clone, Default)]
5454
pub struct Metadata {
5555
pub path: PathBuf,
5656
pub size: u64,

lib/video-editor/src/project/project.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -334,6 +334,7 @@ impl VideoTrackData {
334334
.collect::<Result<Vec<_>>>()?;
335335

336336
Ok(Track::Video(Arc::new(VideoTrack {
337+
name: String::default(),
337338
hiding: self.hiding,
338339
muted: false,
339340
track: InnerTrack {
@@ -355,6 +356,7 @@ impl AudioTrackData {
355356
.collect::<Result<Vec<_>>>()?;
356357

357358
Ok(Track::Audio(Arc::new(AudioTrack {
359+
name: String::default(),
358360
hiding: self.hiding,
359361
track: InnerTrack {
360362
metadata,
@@ -377,6 +379,7 @@ impl SubtitleTrackData {
377379
let subtitles = self.subtitles.iter().map(|s| s.into()).collect();
378380

379381
Ok(Track::Subtitle(Arc::new(SubtitleTrack {
382+
name: String::default(),
380383
hiding: self.hiding,
381384
track: InnerTrack {
382385
metadata,
@@ -398,6 +401,7 @@ impl OverlayTrackData {
398401
.collect::<Result<Vec<_>>>()?;
399402

400403
Ok(Track::Overlay(Arc::new(OverlayTrack {
404+
name: String::default(),
401405
hiding: self.hiding,
402406
track: InnerTrack {
403407
metadata,

lib/video-editor/src/tracks/audio_track.rs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,18 +25,24 @@ pub struct AudioSamples {
2525

2626
#[derive(Debug, Clone)]
2727
pub struct AudioTrack {
28+
pub name: String,
2829
pub hiding: bool,
2930
pub track: InnerTrack,
3031
}
3132

3233
impl AudioTrack {
3334
pub fn new(track: InnerTrack) -> Self {
3435
Self {
36+
name: String::default(),
3537
hiding: false,
3638
track,
3739
}
3840
}
3941

42+
pub fn set_name(&mut self, name: String) {
43+
self.name = name;
44+
}
45+
4046
pub fn set_hiding(&mut self, hiding: bool) {
4147
self.hiding = hiding;
4248
}

lib/video-editor/src/tracks/overlay_track.rs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ use std::{sync::Arc, time::Duration};
1111

1212
#[derive(Debug, Clone)]
1313
pub struct OverlayTrack {
14+
pub name: String,
1415
pub hiding: bool,
1516
pub track: InnerTrack,
1617
}
@@ -22,11 +23,16 @@ impl OverlayTrack {
2223

2324
pub fn new_with_inner(track: InnerTrack) -> Self {
2425
Self {
26+
name: String::default(),
2527
hiding: false,
2628
track,
2729
}
2830
}
2931

32+
pub fn set_name(&mut self, name: String) {
33+
self.name = name;
34+
}
35+
3036
pub fn set_hiding(&mut self, hiding: bool) {
3137
self.hiding = hiding;
3238
}

lib/video-editor/src/tracks/subtitle_track.rs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ use std::{path::Path, sync::Arc, time::Duration};
1313

1414
#[derive(Debug, Clone)]
1515
pub struct SubtitleTrack {
16+
pub name: String,
1617
pub hiding: bool,
1718
pub track: InnerTrack,
1819
pub subtitles: Vec<SubtitleEntry>,
@@ -21,12 +22,17 @@ pub struct SubtitleTrack {
2122
impl SubtitleTrack {
2223
pub fn new(track: InnerTrack, subtitles: Vec<SubtitleEntry>) -> Self {
2324
Self {
25+
name: String::default(),
2426
hiding: false,
2527
track,
2628
subtitles,
2729
}
2830
}
2931

32+
pub fn set_name(&mut self, name: String) {
33+
self.name = name;
34+
}
35+
3036
pub fn set_hiding(&mut self, hiding: bool) {
3137
self.hiding = hiding;
3238
}

lib/video-editor/src/tracks/track.rs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ impl Track {
4848
Arc::new(Segment::new(Duration::ZERO, duration, metadata.clone()));
4949

5050
Ok(vec![Track::Video(Arc::new(VideoTrack {
51+
name: String::default(),
5152
hiding: false,
5253
muted: false,
5354
track: InnerTrack::new(metadata.clone(), duration, vec![video_segment]),
@@ -58,6 +59,7 @@ impl Track {
5859
Arc::new(Segment::new(Duration::ZERO, duration, metadata.clone()));
5960

6061
Ok(vec![Track::Overlay(Arc::new(OverlayTrack {
62+
name: String::default(),
6163
hiding: false,
6264
track: InnerTrack::new(metadata.clone(), duration, vec![text_segment]),
6365
}))])
@@ -67,6 +69,7 @@ impl Track {
6769
Arc::new(Segment::new(Duration::ZERO, duration, metadata.clone()));
6870

6971
Ok(vec![Track::Overlay(Arc::new(OverlayTrack {
72+
name: String::default(),
7073
hiding: false,
7174
track: InnerTrack::new(metadata.clone(), duration, vec![image_segment]),
7275
}))])
@@ -76,6 +79,7 @@ impl Track {
7679
Arc::new(Segment::new(Duration::ZERO, duration, metadata.clone()));
7780

7881
Ok(vec![Track::Audio(Arc::new(AudioTrack {
82+
name: String::default(),
7983
hiding: false,
8084
track: InnerTrack::new(metadata.clone(), duration, vec![audio_segment]),
8185
}))])
@@ -868,6 +872,7 @@ impl Track {
868872
.collect();
869873

870874
Ok(vec![Track::Subtitle(Arc::new(SubtitleTrack {
875+
name: String::default(),
871876
hiding: false,
872877
subtitles: entries,
873878
track: InnerTrack::new(metadata, total_duration, segments),

lib/video-editor/src/tracks/video_track.rs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ use video_utils::{
3232

3333
#[derive(Debug, Clone)]
3434
pub struct VideoTrack {
35+
pub name: String,
3536
pub hiding: bool,
3637
pub muted: bool, // 是否静音
3738
pub track: InnerTrack,
@@ -40,12 +41,17 @@ pub struct VideoTrack {
4041
impl VideoTrack {
4142
pub fn new(track: InnerTrack) -> Self {
4243
Self {
44+
name: String::default(),
4345
hiding: false,
4446
muted: false,
4547
track,
4648
}
4749
}
4850

51+
pub fn set_name(&mut self, name: String) {
52+
self.name = name;
53+
}
54+
4955
pub fn set_hiding(&mut self, hiding: bool) {
5056
self.hiding = hiding;
5157
}
@@ -91,6 +97,7 @@ impl VideoTrack {
9197

9298
// 创建音频轨道
9399
let audio_track = AudioTrack {
100+
name: String::default(),
94101
hiding: false,
95102
track: InnerTrack {
96103
metadata: audio_metadata,
@@ -134,6 +141,7 @@ impl VideoTrack {
134141
});
135142

136143
let audio_track = AudioTrack {
144+
name: String::default(),
137145
hiding: false,
138146
track: InnerTrack {
139147
metadata: audio_metadata,
@@ -204,6 +212,7 @@ impl VideoTrack {
204212
.collect();
205213

206214
let subtitle_track = SubtitleTrack {
215+
name: String::default(),
207216
hiding: false,
208217
subtitles: entries,
209218
track: InnerTrack {

wayshot/src/logic/video_editor.rs

Lines changed: 16 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,23 @@
1-
mod command;
1+
// mod command;
22
mod common_type;
33
mod conversion;
4-
mod export;
5-
mod library;
6-
mod playlist;
7-
mod preview;
4+
// mod export;
5+
// mod library;
6+
// mod playlist;
7+
// mod preview;
88
mod project;
9-
mod segment;
10-
mod subtitle;
11-
mod track;
12-
mod validation;
9+
// mod segment;
10+
// mod subtitle;
11+
// mod track;
1312

1413
pub fn init(ui: &crate::slint_generatedAppWindow::AppWindow) {
1514
project::init(ui);
16-
command::init(ui);
17-
track::init(ui);
18-
export::init(ui);
19-
library::init(ui);
20-
playlist::init(ui);
21-
preview::init(ui);
22-
segment::init(ui);
23-
subtitle::init(ui);
15+
// command::init(ui);
16+
// track::init(ui);
17+
// export::init(ui);
18+
// library::init(ui);
19+
// playlist::init(ui);
20+
// preview::init(ui);
21+
// segment::init(ui);
22+
// subtitle::init(ui);
2423
}

0 commit comments

Comments
 (0)