refactor(ncm): 包名 os.meow.ncm→dev.player.ncm(非系统应用,不用 os.meow.* 保留前缀;卡上目录+MeowData+logs 已同步迁移,登录态保留)
This commit is contained in:
1 parent
5fbf30755c
commit
f20e4cddd0
17 files changed
+24
-24
No files matched your search
@@ -1 +1 @@
|
||||
{"name":"网易云音乐","exec":"/usr/data/mnt/sd_0/MeowAPPs/os.meow.ncm/ncm","package":"os.meow.ncm","version":"0.1","version_code":1,"framework":1,"immersive":1,"fonts":"gbk","author":"MeowOS"}
|
||||
{"name":"网易云音乐","exec":"/usr/data/mnt/sd_0/MeowAPPs/dev.player.ncm/ncm","package":"dev.player.ncm","version":"0.1","version_code":1,"framework":1,"immersive":1,"fonts":"gbk","author":"MeowOS"}
|
||||
@@ -1,4 +1,4 @@
|
||||
/* app.c — os.meow.ncm 应用装配层:main + 组装 + 事件分发。
|
||||
/* app.c — dev.player.ncm 应用装配层:main + 组装 + 事件分发。
|
||||
*
|
||||
* 职责(对齐 hello_app/app.c):main 只做初始化/建页/跑事件循环/清理;把 meow_ui_run 的平铺输入
|
||||
* 回调(key/tap/swipe/tick/touch)路由到当前活动页。页面切换统一走 meow_view_page_push/pop/replace。
|
||||
@@ -110,7 +110,7 @@ int main(void)
|
||||
appstate_init();
|
||||
/* M2.82-联调修复:设备无系统 CA 库(真机 rc=-5 TLS 错误根因)——App 自带 Mozilla CA bundle,
|
||||
* 显式指给 core HTTP 层(保持 verify=1,不降级为不校验) */
|
||||
ncm_http_set_verify_default(1, "/usr/data/mnt/sd_0/MeowAPPs/os.meow.ncm/cacert.pem");
|
||||
ncm_http_set_verify_default(1, "/usr/data/mnt/sd_0/MeowAPPs/dev.player.ncm/cacert.pem");
|
||||
|
||||
/* 播放 + 媒体会话线程(UI 不卡;无 launcher socket 时 ipc 优雅跳过) */
|
||||
player_manager_start();
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
#define NCM_DEFAULT_DATA "/usr/data/mnt/sd_0/MeowData/os.meow.ncm/data"
|
||||
#define NCM_DEFAULT_DATA "/usr/data/mnt/sd_0/MeowData/dev.player.ncm/data"
|
||||
|
||||
int appstate_init(void)
|
||||
{
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/* ncm_app_internal.h — os.meow.ncm 应用内部共享头(UI 各页 + app 装配层 + 宿主测试面)。
|
||||
/* ncm_app_internal.h — dev.player.ncm 应用内部共享头(UI 各页 + app 装配层 + 宿主测试面)。
|
||||
*
|
||||
* 层级(对齐 hello_app/app.c 批② + files_app):
|
||||
* - app.c main + 装配 + 事件分发(把 meow_ui_run 的平铺回调路由到各页)
|
||||
@@ -85,7 +85,7 @@ extern const char *media; /* 占位 */
|
||||
/* ---- App 全局状态(main 线程拥有;play 线程经 ncm_play_run 共享)---- */
|
||||
typedef struct ncm_app_state {
|
||||
ncm_ctx_t ctx; /* 核心库上下文(device_id/cookie/cache) */
|
||||
char data_dir[512]; /* 数据目录(MeowData/os.meow.ncm/data) */
|
||||
char data_dir[512]; /* 数据目录(MeowData/dev.player.ncm/data) */
|
||||
char cache_dir[512];
|
||||
|
||||
/* 登录 */
|
||||
@@ -120,7 +120,7 @@ typedef struct ncm_app_state {
|
||||
int lyric_line_count;
|
||||
int cur_lyric_line;
|
||||
|
||||
/* 设置(持久化 MeowData/os.meow.ncm/data)*/
|
||||
/* 设置(持久化 MeowData/dev.player.ncm/data)*/
|
||||
int level; /* NCM_LEVEL_* */
|
||||
int cache_limit_gb;
|
||||
|
||||
|
||||
@@ -96,7 +96,7 @@ static void send_meta(int fd, uint32_t req_id)
|
||||
{
|
||||
m_meta_t mm;
|
||||
memset(&mm, 0, sizeof mm);
|
||||
ncm_strlcpy(mm.app_id, "os.meow.ncm", sizeof mm.app_id);
|
||||
ncm_strlcpy(mm.app_id, "dev.player.ncm", sizeof mm.app_id);
|
||||
|
||||
int idx = player_manager_playing_song();
|
||||
pthread_mutex_lock(&g_play.mu);
|
||||
@@ -156,7 +156,7 @@ static void *ipc_thread(void *arg)
|
||||
|
||||
m_hello_t h;
|
||||
memset(&h, 0, sizeof h);
|
||||
ncm_strlcpy(h.app_id, "os.meow.ncm", sizeof h.app_id);
|
||||
ncm_strlcpy(h.app_id, "dev.player.ncm", sizeof h.app_id);
|
||||
h.version = 1;
|
||||
h.flags = MF_PLAYBACK;
|
||||
if (send_frame(fd, MSG_HELLO, 1, &h, sizeof h) != 0) { close(fd); return NULL; }
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/* ui/common/chrome.c — os.meow.ncm 共享 chrome(TopAppBar 建置 / 几何 / 空态&页脚 / 底部提示条)。
|
||||
/* ui/common/chrome.c — dev.player.ncm 共享 chrome(TopAppBar 建置 / 几何 / 空态&页脚 / 底部提示条)。
|
||||
*
|
||||
* 与 files_app/ui/common/chrome.c 同理:把「页面 chrome 固定不随内容重建」分出去。绘制全部读
|
||||
* meow_theme_get() 语义色(§8.1),不硬编码配色。topbar 由 meow_topappbar 建,自动注册进绘制物
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/* ui/settings.c — 设置页(ACT_SETTINGS)。
|
||||
*
|
||||
* 行项:音质(Hi-res/较高/标准,默认 Hi-res)+ 缓存上限(1~100GB,默认 10GB)+ 退出登录。
|
||||
* 设置持久化到 MeowData/os.meow.ncm/data(meow_config_*;缓存上限键 ncm.cache_limit_gb 与核心库
|
||||
* 设置持久化到 MeowData/dev.player.ncm/data(meow_config_*;缓存上限键 ncm.cache_limit_gb 与核心库
|
||||
* ncm_cache_load_setting 对齐)。音质/上限经 BottomSheet 选择;退出登录经 confirm 弹窗。
|
||||
* 空态/绘制用 custom 绘制物 + 手动行命中(仅 3 行,无需列表滚动)。
|
||||
*/
|
||||
|
||||
@@ -10,8 +10,8 @@
|
||||
#include <string.h>
|
||||
|
||||
int main(int argc, char **argv) {
|
||||
const char *data_dir = argc > 1 ? argv[1] : "/usr/data/mnt/sd_0/MeowData/os.meow.ncm/data";
|
||||
const char *cacert = argc > 2 ? argv[2] : "/usr/data/mnt/sd_0/MeowAPPs/os.meow.ncm/cacert.pem";
|
||||
const char *data_dir = argc > 1 ? argv[1] : "/usr/data/mnt/sd_0/MeowData/dev.player.ncm/data";
|
||||
const char *cacert = argc > 2 ? argv[2] : "/usr/data/mnt/sd_0/MeowAPPs/dev.player.ncm/cacert.pem";
|
||||
|
||||
ncm_ctx_t ctx;
|
||||
ncm_ctx_init(&ctx, data_dir);
|
||||
|
||||
@@ -9,8 +9,8 @@
|
||||
#include <string.h>
|
||||
|
||||
int main(int argc, char **argv) {
|
||||
const char *data_dir = argc > 1 ? argv[1] : "/usr/data/mnt/sd_0/MeowData/os.meow.ncm/data";
|
||||
const char *cacert = argc > 2 ? argv[2] : "/usr/data/mnt/sd_0/MeowAPPs/os.meow.ncm/cacert.pem";
|
||||
const char *data_dir = argc > 1 ? argv[1] : "/usr/data/mnt/sd_0/MeowData/dev.player.ncm/data";
|
||||
const char *cacert = argc > 2 ? argv[2] : "/usr/data/mnt/sd_0/MeowAPPs/dev.player.ncm/cacert.pem";
|
||||
|
||||
ncm_ctx_t ctx;
|
||||
ncm_ctx_init(&ctx, data_dir);
|
||||
|
||||
@@ -38,8 +38,8 @@ static void run_chain(const char *pid, const char *label, int expect, int cap)
|
||||
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
const char *data_dir = argc > 1 ? argv[1] : "/usr/data/mnt/sd_0/MeowData/os.meow.ncm/data";
|
||||
const char *cacert = argc > 2 ? argv[2] : "/usr/data/mnt/sd_0/MeowAPPs/os.meow.ncm/cacert.pem";
|
||||
const char *data_dir = argc > 1 ? argv[1] : "/usr/data/mnt/sd_0/MeowData/dev.player.ncm/data";
|
||||
const char *cacert = argc > 2 ? argv[2] : "/usr/data/mnt/sd_0/MeowAPPs/dev.player.ncm/cacert.pem";
|
||||
ncm_ctx_init(&ncm_ctx, data_dir);
|
||||
printf("device_id=%s cookie_len=%zu\n", ncm_ctx.device_id, strlen(ncm_ctx.cookie));
|
||||
ncm_http_set_verify_default(1, cacert);
|
||||
|
||||
@@ -9,8 +9,8 @@
|
||||
#include <string.h>
|
||||
|
||||
int main(int argc, char **argv) {
|
||||
const char *data_dir = argc > 1 ? argv[1] : "/usr/data/mnt/sd_0/MeowData/os.meow.ncm/data";
|
||||
const char *cacert = argc > 2 ? argv[2] : "/usr/data/mnt/sd_0/MeowAPPs/os.meow.ncm/cacert.pem";
|
||||
const char *data_dir = argc > 1 ? argv[1] : "/usr/data/mnt/sd_0/MeowData/dev.player.ncm/data";
|
||||
const char *cacert = argc > 2 ? argv[2] : "/usr/data/mnt/sd_0/MeowAPPs/dev.player.ncm/cacert.pem";
|
||||
|
||||
ncm_ctx_t ctx;
|
||||
ncm_ctx_init(&ctx, data_dir);
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#!/bin/bash
|
||||
# build_ncm.sh — 构建 os.meow.ncm(网易云 App,SDK framework=1):链 meow_ui.a + 核心库 + minimp3 + mbedtls。
|
||||
# build_ncm.sh — 构建 dev.player.ncm(网易云 App,SDK framework=1):链 meow_ui.a + 核心库 + minimp3 + mbedtls。
|
||||
# 静态 MIPS32r2 (musl sf)。自有代码(app/ + core/)+ core 支撑 vendor 编译;vendor/minimp3/qrcodegen/jsmn 豁免告警。
|
||||
# 仅改本 App 目录;编译期不改 SDK(patch_v2/sdk/)、不动 meow_launcherd/。mipsel -Wall -Wextra 0 warning。
|
||||
set -e
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#!/bin/bash
|
||||
# build_ncm_host.sh — 宿主编译 os.meow.ncm 真实页面(离屏 480x720),用于 MEOW_UI_DUMP 截图自查。
|
||||
# build_ncm_host.sh — 宿主编译 dev.player.ncm 真实页面(离屏 480x720),用于 MEOW_UI_DUMP 截图自查。
|
||||
# 思路:gcc 编 SDK 源码(-DMEOW_UI_HOST_TEST, meow_font 打桩 meow_ui_global/render) + 应用源码 +
|
||||
# 宿主核心库对象(out/core-host/*.o) + 宿主 mbedtls libs。
|
||||
# 运行:NCM_PAGE=home MEOW_UI_DUMP=/tmp/home.ppm ./ncm_host
|
||||
|
||||
@@ -29,7 +29,7 @@ typedef struct ncm_ctx {
|
||||
int default_level; /* NCM_LEVEL_* 默认音质(Hi-res) */
|
||||
} ncm_ctx_t;
|
||||
|
||||
/* 默认缓存目录(<data_dir>/../cache,即 MeowData/os.meow.ncm/cache)。 */
|
||||
/* 默认缓存目录(<data_dir>/../cache,即 MeowData/dev.player.ncm/cache)。 */
|
||||
int ncm_ctx_default_cache_dir(const char *data_dir, char *out, size_t out_sz);
|
||||
|
||||
/* 初始化上下文:store(数据目录) + deviceId 载入/生成 + cookie 载入 + cache 目录 + 缓存上限配置。 */
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/* ncm_cache.h — 听过的歌自动缓存(LRU 淘汰到上限)
|
||||
*
|
||||
* 目录:MeowData/os.meow.ncm/cache/(可被 ncm_cache_set_base_dir 覆盖)。
|
||||
* 目录:MeowData/dev.player.ncm/cache/(可被 ncm_cache_set_base_dir 覆盖)。
|
||||
* 上限:默认 10GB,可配 1~100GB,配置键 ncm.cache_limit_gb(MeowOS 设置,读 <data_dir>/<key>.cfg)。
|
||||
* LRU:以文件 mtime 作为最后访问时间(lookup/commit 时刷新);超限时按 mtime 升序删最旧。
|
||||
* 命中缓存即可离线播放(ncm_cache_lookup 返回已缓存文件路径)。
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
#define SESSION_FILE "session.enc"
|
||||
#define SESSION_MAGIC "NCM1"
|
||||
#define SESSION_MAGIC_LEN 4
|
||||
#define SESSION_SALT "os.meow.ncm.session.v1"
|
||||
#define SESSION_SALT "dev.player.ncm.session.v1"
|
||||
#define DEVICE_FILE "deviceId"
|
||||
#define MKEY_FILE ".mkey"
|
||||
|
||||
|
||||
Binary file not shown.
Reference in new issue
Block a user