diff options
| author | 2024-12-27 11:02:38 -0500 | |
|---|---|---|
| committer | 2024-12-27 11:02:38 -0500 | |
| commit | 4af2d16c06a8a67ab225caa61ccd94df3c572bdc (patch) | |
| tree | 6f5b364ea409c93aa9f0b795f252ac78c7d833f9 /src/fruits | |
| parent | 9026e7f49f11e920eac666bd4159ec459b979623 (diff) | |
| download | camu-4af2d16c06a8a67ab225caa61ccd94df3c572bdc.tar.gz camu-4af2d16c06a8a67ab225caa61ccd94df3c572bdc.tar.bz2 camu-4af2d16c06a8a67ab225caa61ccd94df3c572bdc.zip | |
Fix some configurations, add sink loop mode
Signed-off-by: Andrew Opalach <andrew@akon.city>
Diffstat (limited to 'src/fruits')
| -rw-r--r-- | src/fruits/cmv/cmv.c | 6 | ||||
| -rw-r--r-- | src/fruits/ctv/ctv.c | 56 | ||||
| -rw-r--r-- | src/fruits/droid/ctv/app/src/main/AndroidManifest.xml | 1 | ||||
| -rw-r--r-- | src/fruits/droid/ctv/gradle/libs.versions.toml | 2 |
4 files changed, 40 insertions, 25 deletions
diff --git a/src/fruits/cmv/cmv.c b/src/fruits/cmv/cmv.c index 8509485..6fd1f38 100644 --- a/src/fruits/cmv/cmv.c +++ b/src/fruits/cmv/cmv.c @@ -12,7 +12,11 @@ #include "../common.h" +#ifndef CAMU_SINK_ONLY +#ifndef _WIN32 static str *CMV_UNIX_PATH = al_str_c("/tmp/cmv_sock"); +#endif +#endif struct cmv { struct nn_event_loop loop; @@ -87,7 +91,7 @@ s32 wmain(s32 argc, wchar_t **argv) addr = CAMU_TEST_ADDR; } #else - type = NNWT_SOCKET_TCP; addr = CAMU_SERVER_IP; + type = NNWT_SOCKET_TCP; addr = CAMU_TEST_ADDR; #endif #ifndef CAMU_SINK_ONLY diff --git a/src/fruits/ctv/ctv.c b/src/fruits/ctv/ctv.c index c7bd250..b350c8a 100644 --- a/src/fruits/ctv/ctv.c +++ b/src/fruits/ctv/ctv.c @@ -8,7 +8,9 @@ #include "../../mixer/audio_null.h" #include "../../mixer/audio_miniaudio.h" #include "../../sink/common.h" -#include "../../server/common.c" +#include "../../server/common.h" + +#include "../common.h" struct ctv { struct nn_event_loop loop; @@ -44,37 +46,44 @@ static nn_thread_result NNWT_THREADCALL event_loop_thread(void *userdata) return 0; } +static void to_be_removed_inline_create_client(struct ctv *c, GLFMDisplay *display) +{ + c->scr.callback = screen_callback; + c->scr.userdata = c; + camu_screen_init(&c->scr, display); + camu_screen_create_window(&c->scr, "ctv"); + c->renderer = camu_renderer_lp_create(); + camu_screen_create_renderer(&c->scr, c->renderer); + + camu_mixer_init(&c->mixer, camu_audio_miniaudio_create()); + c->mixer.audio->configure_stream(c->mixer.audio, NULL); + camu_mixer_pick_format(&c->mixer, &c->mixer.fmt); + + nn_event_loop_init(&c->loop); + + camu_sink_init(&c->sink, &c->loop, &c->mixer, c->renderer); + al_str_from(&c->sink.default_list, "default"); + c->sink.callback = sink_callback; + c->sink.userdata = c; + camu_sink_connect(&c->sink, NNWT_SOCKET_TCP, CAMU_TEST_IP, CAMU_PORT, al_str_c("ctv")); + + nn_thread_create(&c->thread, event_loop_thread, c); +} + static void onSurfaceCreated(GLFMDisplay *display, s32 width, s32 height) { struct ctv *c = (struct ctv *)glfmGetUserData(display); (void)width; (void)height; + GLFMRenderingAPI api = glfmGetRenderingAPI(display); al_log_info("window_glfm", "Created GLES context of version %s.", api == GLFMRenderingAPIOpenGLES32 ? "3.2" : api == GLFMRenderingAPIOpenGLES31 ? "3.1" : api == GLFMRenderingAPIOpenGLES3 ? "3.0" : "2.0"); - if (!c->created) { - c->scr.callback = screen_callback; - c->scr.userdata = c; - camu_screen_init(&c->scr, display); - camu_screen_create_window(&c->scr, "ctv"); - c->renderer = camu_renderer_lp_create(); - camu_screen_create_renderer(&c->scr, c->renderer); - - camu_mixer_init(&c->mixer, camu_audio_miniaudio_create()); - c->mixer.audio->configure_stream(c->mixer.audio, NULL); - camu_mixer_pick_format(&c->mixer, &c->mixer.fmt); - - nn_event_loop_init(&c->loop); - - camu_sink_init(&c->sink, &c->loop, &c->mixer, c->renderer); - c->sink.callback = sink_callback; - c->sink.userdata = c; - camu_sink_connect(&c->sink, NNWT_SOCKET_TCP, CAMU_SERVER_IP, CAMU_PORT, al_str_c("ctv")); - - nn_thread_create(&c->thread, event_loop_thread, c); + if (!c->created) { + to_be_removed_inline_create_client(c, display); c->created = true; } } @@ -87,8 +96,9 @@ static void onSurfaceDestroyed(GLFMDisplay *display) static void onDraw(GLFMDisplay *display) { struct ctv *c = (struct ctv *)glfmGetUserData(display); - if (camu_screen_tick(&c->scr)) { - c->renderer->render(c->renderer, &c->scr); + bool force; + if (camu_screen_tick(&c->scr, &force)) { + c->renderer->render(c->renderer, &c->scr, force); } } diff --git a/src/fruits/droid/ctv/app/src/main/AndroidManifest.xml b/src/fruits/droid/ctv/app/src/main/AndroidManifest.xml index 00f96c1..cca763f 100644 --- a/src/fruits/droid/ctv/app/src/main/AndroidManifest.xml +++ b/src/fruits/droid/ctv/app/src/main/AndroidManifest.xml @@ -1,6 +1,7 @@ <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android"> <uses-permission android:name="android.permission.INTERNET" /> + <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-feature android:name="android.software.leanback" android:required="false" /> <uses-feature android:name="android.hardware.touchscreen" diff --git a/src/fruits/droid/ctv/gradle/libs.versions.toml b/src/fruits/droid/ctv/gradle/libs.versions.toml index c474f95..ea02696 100644 --- a/src/fruits/droid/ctv/gradle/libs.versions.toml +++ b/src/fruits/droid/ctv/gradle/libs.versions.toml @@ -1,5 +1,5 @@ [versions] -agp = "8.7.2" +agp = "8.7.3" [libraries] |