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
@@ -0,0 +1,27 @@
|
||||
/* bt_dev.h — 蓝牙 A2DP 设备自识别(DEV 自动更新纯逻辑,宿主可单测)。
|
||||
*
|
||||
* 背景:/usr/data/alsa.conf 的 `pcm.bluealsa`(plug→bluealsa)需把 DEV/device 钉在当前
|
||||
* 连接的 A2DP sink 设备 MAC 上才能正确出声。本模块提供两段纯逻辑(无 meow_* / popen / 文件
|
||||
* I/O —— meow_audiod 负责读文件与执行系统命令):
|
||||
* - bt_dev_detect_mac:从 `bluealsa-cli list-pcms` 输出提取第一个 a2dpsrc 端点的设备 MAC;
|
||||
* - bt_dev_rewrite:幂等改写 alsa.conf 文本,把 `pcm.bluealsa` 块内 `DEV=<mac>` 与
|
||||
* `device <mac>` 两处换成目标 MAC(保留引号风格 / codec / 其余 token)。
|
||||
* 纯 libc(string / stdlib),独立编译,宿主零链接重。
|
||||
*/
|
||||
#ifndef BT_DEV_H
|
||||
#define BT_DEV_H
|
||||
|
||||
#include <stddef.h>
|
||||
|
||||
/* 解析 bluealsa-cli list-pcms 输出,取第一个 a2dpsrc/a2dp_source 端点的设备 MAC。
|
||||
* 返回 0=找到并写入 mac(NUL 结尾),-1=无 a2dpsrc 端点 / 参数非法。macsz 建议 ≥18。 */
|
||||
int bt_dev_detect_mac(const char *listpcms, char *mac, size_t macsz);
|
||||
|
||||
/* 幂等改写 alsa.conf 文本(in_len 不含 NUL):把 `pcm.bluealsa` 块内 `DEV=<mac>` 与
|
||||
* `device <mac>` 两处 MAC 换成 mac(保留引号风格、codec/其它 token 原样)。
|
||||
* 返回 0=已改动(*out 与 *out_len 给出新文本,调用方负责 free);1=无需改动(两端已一致);
|
||||
* -1=无 pcm.bluealsa / 无 DEV= 或 device token / 参数非法(不动)。 */
|
||||
int bt_dev_rewrite(const char *in, size_t in_len, const char *mac,
|
||||
char **out, size_t *out_len);
|
||||
|
||||
#endif /* BT_DEV_H */
|
||||
Reference in new issue
Block a user