Skip to content

Commit 346fd92

Browse files
committed
ws-protocol: 重新定义新的报文主体,并提供结构概述文档
core: 整理代码 skia-player: 正在重写排版算法
1 parent fdd2e34 commit 346fd92

File tree

13 files changed

+555
-95
lines changed

13 files changed

+555
-95
lines changed

Cargo.lock

Lines changed: 5 additions & 5 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

packages/core/src/lyric-player/canvas/index.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,6 @@ export class CanvasLyricPlayer extends LyricPlayerBase {
4343
(line) => new CanvasLyricLine(this, line),
4444
);
4545

46-
this.setLinePosXSpringParams({});
4746
this.setLinePosYSpringParams({});
4847
this.setLineScaleSpringParams({});
4948
this.calcLayout(true, true);

packages/core/src/utils/flagsets.ts

Lines changed: 38 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,17 +2,53 @@ const SAFE_FLAG_CHUNK_SIZE = Number.MAX_SAFE_INTEGER.toString(2).length;
22

33
export class FlagSets {
44
private flags: number[] = [];
5+
private _size = 0;
6+
7+
get size() {
8+
return this._size;
9+
}
10+
11+
[Symbol.iterator]() {
12+
let flag = 0;
13+
let chunkIndex = 0;
14+
let chunkOffset = 0;
15+
return {
16+
next: () => {
17+
while (chunkIndex < this.flags.length) {
18+
while (chunkOffset < SAFE_FLAG_CHUNK_SIZE) {
19+
const flagBit = 1 << chunkOffset;
20+
if (this.flags[chunkIndex] & flagBit) {
21+
return { value: flag, done: false };
22+
}
23+
flag++;
24+
chunkOffset++;
25+
}
26+
chunkIndex++;
27+
chunkOffset = 0;
28+
}
29+
return { value: undefined, done: true };
30+
},
31+
};
32+
}
533

634
add(flag: number) {
735
const chunkIndex = (flag / SAFE_FLAG_CHUNK_SIZE) | 0;
836
const chunkOffset = flag % SAFE_FLAG_CHUNK_SIZE;
9-
this.flags[chunkIndex] |= 1 << chunkOffset;
37+
const flagBit = 1 << chunkOffset;
38+
if (!(this.flags[chunkIndex] & flagBit)) {
39+
this._size++;
40+
this.flags[chunkIndex] |= flagBit;
41+
}
1042
}
1143

1244
delete(flag: number) {
1345
const chunkIndex = (flag / SAFE_FLAG_CHUNK_SIZE) | 0;
1446
const chunkOffset = flag % SAFE_FLAG_CHUNK_SIZE;
15-
this.flags[chunkIndex] &= ~(1 << chunkOffset);
47+
const flagBit = 1 << chunkOffset;
48+
if (!(this.flags[chunkIndex] & flagBit)) {
49+
this._size--;
50+
this.flags[chunkIndex] &= ~(1 << chunkOffset);
51+
}
1652
}
1753

1854
has(flag: number) {

packages/player/src-tauri/Cargo.lock

Lines changed: 5 additions & 5 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

packages/skia-player/Cargo.lock

Lines changed: 4 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

packages/skia-player/src/main.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ fn main() {
2929
std::thread::spawn(move || {
3030
while let Ok(body) = rx.recv_blocking() {
3131
match body {
32-
Body::SetMusicAlbumCoverImageURL { img_url } => {
32+
Body::SetMusicAlbumCoverImageURI { img_url } => {
3333
let img_url = img_url.to_string();
3434
let win_sx = win_sx.clone();
3535
// TODO: 确保同步

packages/skia-player/src/renderer.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@ pub struct Renderer {
110110
frame_time: Instant,
111111
frame: usize,
112112
cur_frame: usize,
113-
progress: f64,
113+
progress: u64,
114114
scale: f32,
115115
physical_width: usize,
116116
physical_height: usize,
@@ -154,7 +154,7 @@ impl Renderer {
154154
sf_pro_type_face.clone(),
155155
),
156156
pingfang_type_face,
157-
progress: 0.,
157+
progress: 0,
158158
sf_pro_type_face,
159159
fps_time: Instant::now(),
160160
frame_time: Instant::now(),
@@ -368,9 +368,9 @@ impl Renderer {
368368
self.lyric_renderer.set_lines(lines);
369369
}
370370

371-
pub fn set_progress(&mut self, time: f64) {
371+
pub fn set_progress(&mut self, time: u64) {
372372
self.progress = time;
373-
self.lyric_renderer.set_progress(time);
373+
self.lyric_renderer.set_current_time(time);
374374
}
375375

376376
pub fn set_album_image(&mut self, image: impl AsRef<[u8]>) {

0 commit comments

Comments
 (0)