summaryrefslogtreecommitdiff
path: root/src/libsink
diff options
context:
space:
mode:
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){