fix(lyric/bt): ①桌面歌词页封面不显示修复(根因:歌词页从不画封面+scrim逐秒叠涂压黑→新增np_draw_lyric_coverbg封面背景+1s整页重绘;播放页封面宿实证非批5破坏) ②alsa.conf pcm.bluealsa DEV自动识别(bt_dev.c:audiod BT打开时bluealsa-cli检测a2dpsrc设备幂等改写DEV=保留codec/ldac_eqmid等);test_bt_dev 14/14,0warning
This commit is contained in:
1 parent
ef6eca86b1
commit
8c165bb8e6
6 files changed
+359
-13
No files matched your search
@@ -291,6 +291,19 @@ static void np_lyric_refresh(const meow_media_session_t *s)
|
||||
g_np_lyric_last_valid = valid;
|
||||
}
|
||||
|
||||
/* 歌词页封面作整页背景:等比 cover 到 max(W, H-SB_BAR_H) 方块、居中铺满内容区(裁剪溢出
|
||||
* 部分),衬在 lyric_view 半透明 scrim 之下形成压暗封面;无封面不画(回退渐变/主题面)。
|
||||
* 批6:批5 只铺渐变、从不画封面 → 歌词页无封面;此处补上封面背景,取色只做附加。 */
|
||||
static void np_draw_lyric_coverbg(int W, int H)
|
||||
{
|
||||
if (!g_np_cover) return;
|
||||
int size = W > (H - SB_BAR_H) ? W : (H - SB_BAR_H);
|
||||
int x = (W - size) / 2;
|
||||
int y = SB_BAR_H + (H - SB_BAR_H - size) / 2;
|
||||
if (y < SB_BAR_H) y = SB_BAR_H;
|
||||
meow_ui_img_cover(x, y, size, g_np_cover);
|
||||
}
|
||||
|
||||
/* 歌词页整页绘制:铺封面取色渐变(或 theme surface)底 → lyric_view(自绘 scrim + 歌词/空态)。 */
|
||||
static void np_draw_lyric_page(int redraw_sb)
|
||||
{
|
||||
@@ -298,13 +311,17 @@ static void np_draw_lyric_page(int redraw_sb)
|
||||
int W = fb_xres, H = fb_yres;
|
||||
if (!g_np_init) np_widgets_create();
|
||||
if (redraw_sb) fill_rect(0, 0, W, SB_BAR_H, th->surface);
|
||||
/* 批5:封面取色背景(主→次渐变)或主题面;并注入歌词页 set_colors。 */
|
||||
/* 批5:封面取色背景(主→次渐变)或主题面;并注入歌词页 set_colors。
|
||||
* 批6:有封面时以封面作整页背景(衬在 lyric_view 半透明 scrim 之下),取色只做附加;
|
||||
* 无封面回退渐变/主题面。 */
|
||||
np_cover_theme_update();
|
||||
if (g_np_cc_valid)
|
||||
np_apply_lyric_colors();
|
||||
if (g_np_cover)
|
||||
np_draw_lyric_coverbg(W, H);
|
||||
else if (g_np_cc_valid)
|
||||
np_fill_gradient(0, SB_BAR_H, W, H - SB_BAR_H, g_np_cc.bg_top, g_np_cc.bg_bottom);
|
||||
else
|
||||
fill_rect(0, SB_BAR_H, W, H - SB_BAR_H, th->surface);
|
||||
np_apply_lyric_colors();
|
||||
np_lyric_refresh(meow_media_current());
|
||||
if (g_np_lyric)
|
||||
meow_widget_draw(meow_lyric_view_widget(g_np_lyric));
|
||||
@@ -607,12 +624,11 @@ void run_now_playing(struct app *apps, int napps)
|
||||
/* 进度推进(按页分流):播放页=进度带+按钮;歌词页=歌词实时滚动重绘(当前行随 pos)。 */
|
||||
last_prog = now;
|
||||
if (g_np_page == NP_PAGE_LYRIC) {
|
||||
np_lyric_refresh(s);
|
||||
if (g_np_lyric) {
|
||||
meow_widget_draw(meow_lyric_view_widget(g_np_lyric));
|
||||
meow_dirty_add(0, SB_BAR_H, fb_xres, fb_yres - SB_BAR_H);
|
||||
meow_ui_flush();
|
||||
}
|
||||
/* 批6:整页重绘(封面背景+scrim+歌词),避免 lyric_view 半透明 scrim 每 1s
|
||||
* 叠涂把封面/背景逐秒压黑(批4 既有「只重绘控件不重铺背景」结构修正)。 */
|
||||
np_draw_lyric_page(0);
|
||||
meow_dirty_add(0, SB_BAR_H, fb_xres, fb_yres - SB_BAR_H);
|
||||
meow_ui_flush();
|
||||
} else {
|
||||
np_repaint_progress();
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user