aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/pipe.c21
-rw-r--r--src/pipe.h9
2 files changed, 30 insertions, 0 deletions
diff --git a/src/pipe.c b/src/pipe.c
index fe011f3c2..d0eaf9871 100644
--- a/src/pipe.c
+++ b/src/pipe.c
@@ -70,6 +70,7 @@ music_pipe_free(struct music_pipe *mp)
}
#ifndef NDEBUG
+
bool
music_pipe_check_format(const struct music_pipe *pipe,
const struct audio_format *audio_format)
@@ -80,6 +81,26 @@ music_pipe_check_format(const struct music_pipe *pipe,
return !audio_format_defined(&pipe->audio_format) ||
audio_format_equals(&pipe->audio_format, audio_format);
}
+
+bool
+music_pipe_contains(const struct music_pipe *mp,
+ const struct music_chunk *chunk)
+{
+ g_mutex_lock(mp->mutex);
+
+ for (const struct music_chunk *i = mp->head;
+ i != NULL; i = i->next) {
+ if (i == chunk) {
+ g_mutex_unlock(mp->mutex);
+ return true;
+ }
+ }
+
+ g_mutex_unlock(mp->mutex);
+
+ return false;
+}
+
#endif
const struct music_chunk *
diff --git a/src/pipe.h b/src/pipe.h
index dd97ce820..8b7b457a5 100644
--- a/src/pipe.h
+++ b/src/pipe.h
@@ -47,6 +47,7 @@ void
music_pipe_free(struct music_pipe *mp);
#ifndef NDEBUG
+
/**
* Checks if the audio format if the chunk is equal to the specified
* audio_format.
@@ -54,6 +55,14 @@ music_pipe_free(struct music_pipe *mp);
bool
music_pipe_check_format(const struct music_pipe *pipe,
const struct audio_format *audio_format);
+
+/**
+ * Checks if the specified chunk is enqueued in the music pipe.
+ */
+bool
+music_pipe_contains(const struct music_pipe *mp,
+ const struct music_chunk *chunk);
+
#endif
/**