summaryrefslogtreecommitdiff
path: root/src/libsink
diff options
context:
space:
mode:
Diffstat (limited to 'src/libsink')
-rw-r--r--src/libsink/desktop.c17
-rw-r--r--src/libsink/sink.c23
2 files changed, 22 insertions, 18 deletions
diff --git a/src/libsink/desktop.c b/src/libsink/desktop.c
index 2bbe906..a2d02c9 100644
--- a/src/libsink/desktop.c
+++ b/src/libsink/desktop.c
@@ -8,8 +8,8 @@
#else
#include "../mixer/audio_miniaudio.h"
#endif
-#if defined CAMU_RENDERER_TIGER
-#include "../render/renderer_tiger.h"
+#if defined CAMU_RENDERER_MOMO
+#include "../render/renderer_momo.h"
#elif defined CAMU_RENDERER_LIBPLACEBO
#include "../render/renderer_libplacebo.h"
#endif
@@ -111,8 +111,9 @@ static u8 sink_callback(void *userdata, u8 op, u8 type, void *opaque)
}
static char status[64];
-static void log_playback_pos(struct camu_sink *sink)
+static void log_sink_status(struct camu_desktop *c)
{
+ struct camu_sink *sink = &c->sink;
struct camu_sink_entry *current = camu_sink_get_current(sink);
if (!current) {
camu_sink_return_current(sink);
@@ -140,10 +141,10 @@ static void log_playback_pos(struct camu_sink *sink)
offset += al_snprintf(status + offset, sizeof(status) - offset, "]");
status[offset] = '\0';
- log_info("%s", status);
+ log_info("%s, window size: %ux%u", status, c->scr.width, c->scr.height);
return;
notplaying:
- log_info("Not playing.");
+ log_info("Not playing, window size: %ux%u", c->scr.width, c->scr.height);
}
static void screen_callback(void *userdata, u8 op, void *opaque)
@@ -175,7 +176,7 @@ static void screen_callback(void *userdata, u8 op, void *opaque)
camu_sink_shuffle(&c->sink);
break;
case CAMU_SCREEN_STATUS:
- log_playback_pos(&c->sink);
+ log_sink_status(c);
break;
#ifdef CAMU_SCREEN_DEBUG_KEY
case CAMU_SCREEN_DEBUG:
@@ -199,8 +200,8 @@ bool camu_desktop_open(struct camu_desktop *c, const char *window_name)
if (!camu_screen_init(&c->scr) || !camu_screen_create_window(&c->scr, window_name)) {
return false;
}
-#if defined CAMU_RENDERER_TIGER
- c->renderer = camu_renderer_tiger_create();
+#if defined CAMU_RENDERER_MOMO
+ c->renderer = camu_renderer_momo_create();
#elif defined CAMU_RENDERER_LIBPLACEBO
c->renderer = camu_renderer_lp_create();
#endif
diff --git a/src/libsink/sink.c b/src/libsink/sink.c
index 07bb604..56be556 100644
--- a/src/libsink/sink.c
+++ b/src/libsink/sink.c
@@ -468,18 +468,17 @@ static void mixer_callback(void *userdata, u8 op)
struct camu_sink *sink = (struct camu_sink *)userdata;
if (op == CAMU_MIXER_EMPTY) {
log_info("Mixer empty.");
-#ifndef LIANA_LIST_SCUFFED_LOOP
// We need to sync with do_add_entry() because the order of
// the START/STOP's in the queue matters.
nn_mutex_lock(&sink->lock);
- queue_cmd(sink, (struct camu_sink_cmd){
- .op = STOP,
- .value.i = CAMU_SINK_AUDIO
- });
+ // This feels a bit too loose.
+ if (!(sink->current && AUDIO_STATE(sink->current) == BUFFER_ADDED)) {
+ queue_cmd(sink, (struct camu_sink_cmd){
+ .op = STOP,
+ .value.i = CAMU_SINK_AUDIO
+ });
+ }
nn_mutex_unlock(&sink->lock);
-#else
- (void)sink;
-#endif
}
}
@@ -1526,11 +1525,15 @@ static struct nn_rpc_command commands[] = {
{ .op = CAMU_SINK_SEEK, .callback = seek_command_callback, .userdata = NULL }
};
+// @TODO: Send sink id from list.
static void identify_callback(void *userdata, struct nn_rpc_connection *conn, struct nn_packet *packet)
{
struct camu_sink *sink = (struct camu_sink *)userdata;
- (void)sink;
- // @TODO: Send sink id from list.
+ if (sink->type == NNWT_SOCKET_UNIX) {
+ log_info("Sink connected to %.*s.", al_str_x(&sink->addr));
+ } else {
+ log_info("Sink connected to %.*s:%hu.", al_str_x(&sink->addr), sink->port);
+ }
nn_packet_stream_return_packet(conn->stream, packet);
}