diff options
| author | 2026-09-07 15:06:14 -0400 | |
|---|---|---|
| committer | 2026-09-07 15:06:14 -0400 | |
| commit | c66c7c64ebd16287b892f8a780cffcabafba3799 (patch) | |
| tree | b2195902ef055147878b591cf1171be7e6133c97 /src/fruits/cmv | |
| parent | 1758ae9e860bd3b65b661e3c804288c3599f4fd4 (diff) | |
| download | camu-c66c7c64ebd16287b892f8a780cffcabafba3799.tar.gz camu-c66c7c64ebd16287b892f8a780cffcabafba3799.tar.bz2 camu-c66c7c64ebd16287b892f8a780cffcabafba3799.zip | |
Better OSD behavior, lots of build stuff
Signed-off-by: Andrew Opalach <andrew@akon.city>
Diffstat (limited to 'src/fruits/cmv')
| -rw-r--r-- | src/fruits/cmv/cmv.c | 22 | ||||
| -rwxr-xr-x | src/fruits/cmv/create_icon.sh | 4 | ||||
| -rw-r--r-- | src/fruits/cmv/meson.build | 10 |
3 files changed, 29 insertions, 7 deletions
diff --git a/src/fruits/cmv/cmv.c b/src/fruits/cmv/cmv.c index 74e3555..333588e 100644 --- a/src/fruits/cmv/cmv.c +++ b/src/fruits/cmv/cmv.c @@ -18,7 +18,7 @@ #include "icon.h" #endif -#ifndef NAUNET_ON_WINDOWS +#if !defined NAUNET_ON_WINDOWS && !defined NAUNET_ON_ANDROID // https://unix.stackexchange.com/a/16884 #define PID_MAX_STR 7 // 0x400000 (2^22). static str CMV_UNIX_PATH = al_str_c("/tmp/cmv_sock_"); @@ -45,6 +45,7 @@ static void exit_callback(void *userdata, struct camu_desktop *desktop) static nn_thread_result NNWT_THREADCALL event_loop_thread(void *userdata) { + nn_thread_set_priority(NNWT_THREAD_SCHED_FIFO, 40); struct cmv *c = (struct cmv *)userdata; nn_thread_set_name("event_loop"); nn_event_loop_run(&c->loop); @@ -174,9 +175,16 @@ s32 window_system_main(u32 argc, str *argv, void *extra) prefs->language.audio = CAMU_LANG_JAPANESE; prefs->language.subtitles = CAMU_LANG_ENGLISH; +#ifdef CAMU_DIRECT_MODE +#ifdef CAMU_SINK_ONLY +#error "Sink-only and DIRECT_MODE are incompatible" +#endif + if (!local) al_assert("Cannot connect to a server in DIRECT_MODE" && false); +#endif + #ifndef CAMU_SINK_ONLY if (local) { - camu_server_init(&c.server, &c.loop); + camu_server_init(&c.server, &c.loop, local); #ifdef CAMU_DIRECT_MODE camu_server_bind_direct(&c.server); #else @@ -212,8 +220,8 @@ s32 window_system_main(u32 argc, str *argv, void *extra) c.desktop.userdata = &c; } char *SINK_FORCE_LOCAL = getenv("SINK_FORCE_LOCAL"); - if (SINK_FORCE_LOCAL && al_strscmp(SINK_FORCE_LOCAL, "1") == 0) { - c.desktop.sink.local = true; + if (SINK_FORCE_LOCAL) { + c.desktop.sink.local = al_strscmp(SINK_FORCE_LOCAL, "1") == 0; } else { c.desktop.sink.local = local; } @@ -232,9 +240,9 @@ s32 window_system_main(u32 argc, str *argv, void *extra) nn_packet_free(packet); } if (extra) { - u32 start_index = *(u32 *)extra; + s32 start_index = *(s32 *)extra; if (start_index != 0) { - camu_server_local_set_index(&c.server, start_index); + camu_server_local_start_at(&c.server, start_index); } } } @@ -306,7 +314,7 @@ s32 main(s32 argc, char *argv[]) for (s32 i = 0; i < argc; i++) { str arg; #ifdef NAUNET_ON_WINDOWS - if (!al_str_from_wstr(&arg, &al_wstr_cr(argv[i]))) { // This is so broken. + if (!al_str_from_wstr(&arg, &al_wstr_cr(argv[i]))) { log_error("Failed to convert argument #%i from a wide string.", i); continue; } diff --git a/src/fruits/cmv/create_icon.sh b/src/fruits/cmv/create_icon.sh new file mode 100755 index 0000000..08aa8eb --- /dev/null +++ b/src/fruits/cmv/create_icon.sh @@ -0,0 +1,4 @@ +#! /usr/bin/env sh +for size in {16,32,64,128}; do + magick sink.png -resize $sizex$size -set filename:f "%[t]-%[w]x%[h]" "%[filename:f].png" +done diff --git a/src/fruits/cmv/meson.build b/src/fruits/cmv/meson.build index 301fa58..a9eda61 100644 --- a/src/fruits/cmv/meson.build +++ b/src/fruits/cmv/meson.build @@ -21,10 +21,20 @@ elif is_windows windows = import('windows') cmv_src += [windows.compile_resources('icon.rc')] if not is_msvc + cmv_args += ['-mwindows', '-municode'] cmv_link_args += ['-mwindows', '-municode', '-static', '-static-libgcc', '-static-libstdc++'] endif endif +install_data(join_paths(meson.source_root(), 'package/sink.desktop'), install_tag: 'xdg', + install_dir: join_paths(get_option('datadir'), 'applications')) + +foreach size: ['16x16', '32x32', '64x64', '128x128', '256x256'] + icon_dir = join_paths(get_option('datadir'), 'icons', 'hicolor', size, 'apps') + install_data('sink-' + size + '.png', install_tag: 'xdg', + install_dir: icon_dir, rename: 'sink.png') +endforeach + if is_android cmv_args += ['-DAPPLICATION_NAME="CTV"'] shared_library('ctv', cmv_src, dependencies: cmv_deps, c_args: cmv_args, link_args: cmv_link_args) |