summaryrefslogtreecommitdiff
path: root/src/fruits/sink
diff options
context:
space:
mode:
authorAndrew Opalach <andrew@akon.city> 2024-10-21 19:22:50 -0400
committerAndrew Opalach <andrew@akon.city> 2024-10-21 19:22:50 -0400
commit60b4ebfbf3be78dba9dc7c65ab2bdaa0b218c0c2 (patch)
tree08ff2ce7975f523112e7ad2fe4f797b4fc7db5de /src/fruits/sink
parent2f9a0945bfeee3296cec3d38d094e4c49f9cb65f (diff)
downloadcamu-60b4ebfbf3be78dba9dc7c65ab2bdaa0b218c0c2.tar.gz
camu-60b4ebfbf3be78dba9dc7c65ab2bdaa0b218c0c2.tar.bz2
camu-60b4ebfbf3be78dba9dc7c65ab2bdaa0b218c0c2.zip
Everything before initial synced list
Signed-off-by: Andrew Opalach <andrew@akon.city>
Diffstat (limited to 'src/fruits/sink')
-rw-r--r--src/fruits/sink/meson.build15
-rw-r--r--src/fruits/sink/sink.c208
2 files changed, 0 insertions, 223 deletions
diff --git a/src/fruits/sink/meson.build b/src/fruits/sink/meson.build
deleted file mode 100644
index 1dd9140..0000000
--- a/src/fruits/sink/meson.build
+++ /dev/null
@@ -1,15 +0,0 @@
-sink_src = ['sink.c']
-sink_deps = [common_deps, buffer, render, screen, mixer, libsink]
-sink_args = []
-
-use_tui = false
-if use_tui
- sink_src += []
- sink_deps += [dependency('notcurses')]
-endif
-
-if is_windows and meson.is_cross_build()
- sink_args += ['-static', '-static-libgcc', '-static-libstdc++', '-municode', '-mwindows']
-endif
-
-executable('sink', sink_src, dependencies: sink_deps, link_args: sink_args)
diff --git a/src/fruits/sink/sink.c b/src/fruits/sink/sink.c
deleted file mode 100644
index 2b3d451..0000000
--- a/src/fruits/sink/sink.c
+++ /dev/null
@@ -1,208 +0,0 @@
-#include <al/log.h>
-#include <aki/event_loop.h>
-
-#include "../../mixer/audio_miniaudio.h"
-
-#include "../../screen/screen.h"
-#include "../../render/renderer_libplacebo.h"
-//#include "../../render/renderer_tiger.h"
-
-#include "../../libsink/sink.h"
-#include "../../server/common.h"
-
-struct cmv {
- s32 quit;
- struct camu_screen scr;
- struct camu_renderer *renderer;
- struct camu_mixer mixer;
- struct aki_event_loop loop;
- struct camu_sink sink;
-};
-
-static u8 sink_callback(void *userdata, u8 op, u8 type, void *opaque)
-{
- struct cmv *c = (struct cmv *)userdata;
- switch (op) {
- case CAMU_SINK_ADD_BUFFER:
- switch (type) {
- case CAMU_SINK_AUDIO: {
- struct camu_audio_buffer *buf = (struct camu_audio_buffer *)opaque;
- camu_mixer_add_buffer(&c->mixer, buf);
- al_log_debug("cmv", "Audio buffer added.");
- break;
- }
- case CAMU_SINK_VIDEO: {
- struct camu_video_buffer *buf = (struct camu_video_buffer *)opaque;
- camu_screen_add_buffer(&c->scr, buf);
- al_log_debug("cmv", "Video buffer added.");
- break;
- }
- }
- break;
- case CAMU_SINK_REMOVE_BUFFER:
- switch (type) {
- case CAMU_SINK_AUDIO: {
- struct camu_audio_buffer *buf = (struct camu_audio_buffer *)opaque;
- camu_mixer_remove_buffer(&c->mixer, buf);
- al_log_debug("cmv", "Audio buffer removed.");
- break;
- }
- case CAMU_SINK_VIDEO: {
- struct camu_video_buffer *buf = (struct camu_video_buffer *)opaque;
- camu_screen_remove_buffer(&c->scr, buf);
- al_log_debug("cmv", "Video buffer removed.");
- break;
- }
- }
- break;
- case CAMU_SINK_SWAP_BUFFER:
- switch (type) {
- case CAMU_SINK_AUDIO: {
- break;
- }
- }
- break;
- case CAMU_SINK_SET_BUFFERED: {
- break;
- }
- case CAMU_SINK_START:
- switch (type) {
- case CAMU_SINK_AUDIO: {
- camu_mixer_resume(&c->mixer);
- al_log_debug("cmv", "Audio started.");
- break;
- }
- case CAMU_SINK_VIDEO: {
- camu_screen_set_state(&c->scr, CAMU_SCREEN_PLAYING);
- camu_screen_wake(&c->scr);
- al_log_debug("cmv", "Video started.");
- break;
- }
- }
- break;
- case CAMU_SINK_STOP:
- switch (type) {
- case CAMU_SINK_AUDIO: {
- camu_mixer_pause(&c->mixer);
- al_log_debug("cmv", "Audio stopped.");
- break;
- }
- case CAMU_SINK_VIDEO: {
- camu_screen_set_state(&c->scr, CAMU_SCREEN_PAUSED);
- al_log_debug("cmv", "Video stopped.");
- break;
- }
- }
- break;
- case CAMU_SINK_EXIT:
- camu_sink_close(&c->sink);
- break;
- }
- return CAMU_SINK_OK;
-}
-
-static void screen_callback(void *userdata, u8 op, f64 float0)
-{
- struct cmv *c = (struct cmv *)userdata;
- switch (op) {
- case CAMU_SCREEN_NEXT:
- camu_sink_skip(&c->sink, 1);
- break;
- case CAMU_SCREEN_PREVIOUS:
- camu_sink_skip(&c->sink, -1);
- break;
- case CAMU_SCREEN_TOGGLE_PAUSE:
- camu_sink_toggle_pause(&c->sink);
- break;
- case CAMU_SCREEN_SEEK:
- camu_sink_seek(&c->sink, float0);
- break;
- case CAMU_SCREEN_RESEEK:
- camu_sink_reseek(&c->sink);
- break;
- case CAMU_SCREEN_CLOSE:
- c->quit = 1;
- break;
- }
-}
-
-static aki_thread_result AKI_THREADCALL event_loop_thread(void *userdata)
-{
- struct cmv *c = (struct cmv *)userdata;
- 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;
-}
-
-static struct cmv c = { 0 };
-
-static void sigint_handler(s32 signum)
-{
- (void)signum;
- c.quit = 1;
-}
-
-#ifndef _WIN32
-s32 main(s32 argc, char *argv[])
-#else
-s32 wmain(s32 argc, wchar_t **argv)
-#endif
-{
- (void)argc;
- (void)argv;
- if (!aki_common_init()) return EXIT_FAILURE;
-
- signal(SIGINT, sigint_handler);
-
- c.scr.callback = screen_callback;
- c.scr.userdata = &c;
- if (!camu_screen_init(&c.scr) || !camu_screen_create_window(&c.scr, "cmv")) {
- goto err;
- }
- c.renderer = camu_renderer_lp_create();
- //c.renderer = camu_renderer_tiger_create();
- if (!camu_screen_create_renderer(&c.scr, c.renderer)) {
- goto err;
- }
- c.renderer->render(c.renderer, &c.scr);
-
- if (!camu_mixer_init(&c.mixer, (struct camu_audio *)&audio_plugin_miniaudio)) {
- goto err;
- }
-
- struct aki_thread thread0;
- aki_thread_create(&thread0, event_loop_thread, &c);
-
- c.quit = 0;
-
- while (!c.quit) {
- if (camu_screen_tick(&c.scr)) {
- c.renderer->render(c.renderer, &c.scr);
- }
- }
-
- camu_screen_set_state(&c.scr, CAMU_SCREEN_CLOSED);
-
- camu_sink_stop(&c.sink);
-
- aki_thread_join(&thread0);
-
- camu_sink_free(&c.sink);
-
- camu_mixer_close(&c.mixer);
- c.renderer->free(&c.renderer);
- camu_screen_close(&c.scr);
-
- aki_common_close();
-
- return EXIT_SUCCESS;
-err:
- aki_common_close();
- return EXIT_FAILURE;
-}