feat(launcher): 蓝牙/WiFi 独立子页面(安卓风)— 新增 subpage.c 统一脚手架(顶栏+分组列表+跟手滚动+左缘返回) + wifi_page.c(开关/当前连接详情/已保存/附近,BSSID去重+中文SSID) + bt_page.c(开关/已连接/已配对/附近扫描配对);SMENU 网络组收敛为 2 入口行 (agent-178)

launcher bd37c8b0→d10c0e8a; 改动文件 -Wall -Wextra 0 warning; 真机待验证: 蓝牙 pair/connect、开关联动、触摸几何
出入: 中文SSID/BSSID去重复用 net.c 既有实现; 模态复用 s_dd_modal(SDK 模态层未上收, 未改 SDK); s_net_open 旧分支留作死代码未删
This commit is contained in:
MeowOS committed 2026-08-31 03:41:51 +08:00
1 parent 366bf6bb5d
commit f2786552d5
10 files changed
+1122 -86

No files matched your search

+4 -4
View File
@@ -56,7 +56,7 @@ int fb_open(void)
* virtual framebuffer so we can read/write both buffers for the
* backup/restore below; mmapping only one frame would let the menu
* land on the buffer the panel is NOT showing. */
if (fb_yres_virtual < fb_yres) fb_yres_virtual = fb_yres; /* single buffer */
if (fb_yres_virtual < (unsigned int)fb_yres) fb_yres_virtual = (unsigned int)fb_yres; /* single buffer */
fb_mem = mmap(NULL, (size_t)fb_line * fb_yres_virtual,
PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0);
if (fb_mem == MAP_FAILED) {
@@ -105,7 +105,7 @@ int fb_open(void)
/* Snapshot the player's currently-displayed frame into a heap backup. */
void fb_backup_player(void)
{
if (fb_yres_virtual <= fb_yres) { fb_orig_yoffset = -1; return; } /* single buffer */
if (fb_yres_virtual <= (unsigned int)fb_yres) { fb_orig_yoffset = -1; return; } /* single buffer */
if (fb_active_yoffset >= fb_yres_virtual) fb_active_yoffset = 0;
fb_orig_yoffset = (int)fb_active_yoffset;
fb_player_backup_len = (size_t)fb_line * fb_yres;
@@ -129,7 +129,7 @@ void fb_backup_player(void)
* panel must show buffer0 for the menu and apps to be visible. */
void fb_norm_buf0(void)
{
if (fb_fd < 0 || fb_yres_virtual <= fb_yres) { fb_active_yoffset = 0; return; }
if (fb_fd < 0 || fb_yres_virtual <= (unsigned int)fb_yres) { fb_active_yoffset = 0; return; }
if (fb_active_yoffset == 0) return; /* already showing buffer0 */
unsigned char v[160];
memset(v, 0, sizeof v);
@@ -149,7 +149,7 @@ void fb_norm_buf0(void)
* no-op,无频闪),供唤醒/重绘路径调用,确保重画的界面一定落在被显示的缓冲。 */
void fb_pan_buf0_force(void)
{
if (fb_fd < 0 || fb_yres_virtual <= fb_yres) { fb_active_yoffset = 0; return; }
if (fb_fd < 0 || fb_yres_virtual <= (unsigned int)fb_yres) { fb_active_yoffset = 0; return; }
unsigned char v[160];
memset(v, 0, sizeof v);
if (ioctl(fb_fd, FBIOGET_VSCREENINFO, v) < 0) return; /* read current vinfo */