summaryrefslogtreecommitdiff
path: root/src/fruits
diff options
context:
space:
mode:
authorAndrew Opalach <andrew@akon.city> 2024-05-25 20:22:59 -0400
committerAndrew Opalach <andrew@akon.city> 2024-05-25 20:22:59 -0400
commit2f9a0945bfeee3296cec3d38d094e4c49f9cb65f (patch)
treece80b220accbb44920932b1a2a6ca49ed31752a4 /src/fruits
parent90e0930d820972802d1bb2fb27d7dded304483d6 (diff)
downloadcamu-2f9a0945bfeee3296cec3d38d094e4c49f9cb65f.tar.gz
camu-2f9a0945bfeee3296cec3d38d094e4c49f9cb65f.tar.bz2
camu-2f9a0945bfeee3296cec3d38d094e4c49f9cb65f.zip
wip
Signed-off-by: Andrew Opalach <andrew@akon.city>
Diffstat (limited to 'src/fruits')
-rw-r--r--src/fruits/sink/sink.c18
1 files changed, 7 insertions, 11 deletions
diff --git a/src/fruits/sink/sink.c b/src/fruits/sink/sink.c
index cbd82bd..2b3d451 100644
--- a/src/fruits/sink/sink.c
+++ b/src/fruits/sink/sink.c
@@ -129,7 +129,13 @@ static void screen_callback(void *userdata, u8 op, f64 float0)
static aki_thread_result AKI_THREADCALL event_loop_thread(void *userdata)
{
struct cmv *c = (struct cmv *)userdata;
- aki_event_loop_run(&c->loop);
+ aki_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;
+ if (camu_sink_connect(&c->sink, CAMU_SERVER_IP, CAMU_PORT)) {
+ aki_event_loop_run(&c->loop);
+ }
aki_event_loop_destroy(&c->loop);
return 0;
}
@@ -154,8 +160,6 @@ s32 wmain(s32 argc, wchar_t **argv)
signal(SIGINT, sigint_handler);
- aki_event_loop_init(&c.loop);
-
c.scr.callback = screen_callback;
c.scr.userdata = &c;
if (!camu_screen_init(&c.scr) || !camu_screen_create_window(&c.scr, "cmv")) {
@@ -172,13 +176,6 @@ s32 wmain(s32 argc, wchar_t **argv)
goto err;
}
- camu_sink_init(&c.sink, &c.loop, &c.mixer, c.renderer);
- c.sink.callback = sink_callback;
- c.sink.userdata = &c;
- if (!camu_sink_connect(&c.sink, CAMU_SERVER_IP, CAMU_PORT)) {
- goto err;
- }
-
struct aki_thread thread0;
aki_thread_create(&thread0, event_loop_thread, &c);
@@ -206,7 +203,6 @@ s32 wmain(s32 argc, wchar_t **argv)
return EXIT_SUCCESS;
err:
- aki_event_loop_destroy(&c.loop);
aki_common_close();
return EXIT_FAILURE;
}