feat(media): 批3歌词数据源框架 — meow_media_session扩实时歌词(lrc/tlrc/seq)+MSG_META_LYRIC上报分片+ncm上报+launcher读meow_media_lyric_* 接批1/2;宿主L1-L7全过/ncm热更27554dd8,launcher待固件收编
This commit is contained in:
1 parent
7ca3e5bd84
commit
2e5b814059
8 files changed
+363
-4
No files matched your search
@@ -48,7 +48,15 @@ typedef struct meow_media_session {
|
||||
char artist[128];
|
||||
char album[128];
|
||||
char artwork[192];
|
||||
char lyric[192];
|
||||
char lyric[192]; /* 歌词源路径/槽位(沿用 META.lyric) */
|
||||
/* 批3:当前曲 live 歌词(App 经 MSG_META_LYRIC 上报;有界缓冲,新 seq 重置)。
|
||||
* lyric_lrc/lyric_tlrc 为当前曲歌词原文/翻译文本(桌面歌词页 meow_lyric_parse 用);
|
||||
* lyric_seq=歌曲代际(App 新歌/新词自增,launcher 见新 seq 清旧词)。 */
|
||||
uint32_t lyric_seq;
|
||||
uint32_t lyric_lrc_len;
|
||||
uint32_t lyric_tlrc_len;
|
||||
char lyric_lrc[MEOW_MEDIA_LRC_MAX];
|
||||
char lyric_tlrc[MEOW_MEDIA_TLRC_MAX];
|
||||
} meow_media_session_t;
|
||||
|
||||
/* 依赖注入:send=发一帧(launcher 用 ipc_send 包装;宿主单测用 socket 写);
|
||||
@@ -91,6 +99,17 @@ void meow_media_tick(void);
|
||||
/* 显示用虚拟位置:播放中按墙钟推进 pos_ms(clamp 到 dur);暂停/缓冲/停止原样。 */
|
||||
uint32_t meow_media_display_pos(const meow_media_session_t *s);
|
||||
|
||||
/* ---- 歌词(批3 · live lyric 数据源)----
|
||||
* App 上报当前曲歌词(MSG_META_LYRIC 分片):按 app_id 归并到会话,seq 为歌曲代际、
|
||||
* 新代际清旧词;分片按 kind(0=原文/1=翻译)/off 写入会话内有序缓冲(超 MEOW_MEDIA_LRC_MAX/
|
||||
* MEOW_MEDIA_TLRC_MAX 截断)。会话不存在(未先报 META 注册)→ 丢弃返回 -1(防 fd=0 槽)。
|
||||
* meow_media_lyric_valid/lrc/tlrc:桌面歌词页从当前会话取歌词文本,交由批1 meow_lyric_parse
|
||||
* 解析 + meow_lyric_line_at(meow_media_display_pos(s)) 驱动批2 meow_lyric_view 实时滚动。 */
|
||||
int meow_media_lyric(const m_lyric_t *l); /* 0=已写入;-1=会话不存在/参数非法 */
|
||||
int meow_media_lyric_valid(const meow_media_session_t *s); /* 会话携带有效歌词(lrc 非空) */
|
||||
const char *meow_media_lyric_lrc(const meow_media_session_t *s); /* 原文;无则 "" */
|
||||
const char *meow_media_lyric_tlrc(const meow_media_session_t *s); /* 翻译;无则 "" */
|
||||
|
||||
/* 调试打印(经 ops->log,前缀+每会话一行)。 */
|
||||
void meow_media_dump(const char *prefix);
|
||||
|
||||
|
||||
Reference in new issue
Block a user