summaryrefslogtreecommitdiff
path: root/src/libsink
diff options
context:
space:
mode:
authorAndrew Opalach <andrew@akon.city> 2024-12-27 11:02:38 -0500
committerAndrew Opalach <andrew@akon.city> 2024-12-27 11:02:38 -0500
commit4af2d16c06a8a67ab225caa61ccd94df3c572bdc (patch)
tree6f5b364ea409c93aa9f0b795f252ac78c7d833f9 /src/libsink
parent9026e7f49f11e920eac666bd4159ec459b979623 (diff)
downloadcamu-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/libsink')
-rw-r--r--src/libsink/common.h1
-rw-r--r--src/libsink/sink.c13
2 files changed, 12 insertions, 2 deletions
diff --git a/src/libsink/common.h b/src/libsink/common.h
index 0bb3ded..dc0b207 100644
--- a/src/libsink/common.h
+++ b/src/libsink/common.h
@@ -1,6 +1,7 @@
#pragma once
#define CAMU_SINK_LOCAL
+//#define CAMU_SINK_SCUFFED_LOOP
enum {
CAMU_SINK_SET = 0,
diff --git a/src/libsink/sink.c b/src/libsink/sink.c
index 9b5c05e..12b8bca 100644
--- a/src/libsink/sink.c
+++ b/src/libsink/sink.c
@@ -433,12 +433,12 @@ static void maybe_add_to_previous(struct camu_sink *sink, struct camu_sink_entry
}
}
- // If neither the entries audio or video buffer is ADDED, we don't care about adding it
+ // If neither of the entries audio or video buffer is ADDED, we don't care about adding it
// to previous (waiting for the next added entry to remove it).
#ifndef CAMU_SINK_NO_VIDEO
if (!(previous->audio.state == BUFFER_ADDED || previous->video.state == BUFFER_ADDED) || target->ended) {
#else
- if (!(previous->audio.state == BUFFER_ADDED) || target->ended)
+ if (!(previous->audio.state == BUFFER_ADDED) || target->ended) {
#endif
remove_entry_buffers(sink, previous);
return;
@@ -629,6 +629,15 @@ static void pause_and_swap_to(struct camu_sink *sink, struct camu_sink_entry *ta
static bool end_entry_and_advance_queue(struct camu_sink *sink, struct camu_sink_entry *entry)
{
+#ifdef CAMU_SINK_SCUFFED_LOOP
+ al_log_info("sink", "Looping.");
+ queue_cmd(sink, (struct camu_sink_cmd){
+ .op = SEEK,
+ .value.f = 0.0,
+ .opaque = entry
+ });
+ return true;
+#endif
al_log_info("sink", "Entry ended.");
entry->ended = true;
queue_cmd(sink, (struct camu_sink_cmd){