summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/pulsecore/source.c19
-rw-r--r--src/pulsecore/source.h4
2 files changed, 22 insertions, 1 deletions
diff --git a/src/pulsecore/source.c b/src/pulsecore/source.c
index c767abcf..9425193d 100644
--- a/src/pulsecore/source.c
+++ b/src/pulsecore/source.c
@@ -786,4 +786,23 @@ void pa_source_invalidate_requested_latency(pa_source *s) {
if (s->update_requested_latency)
s->update_requested_latency(s);
+
+ if (s->monitor_of)
+ pa_sink_invalidate_requested_latency(s->monitor_of);
+}
+
+void pa_source_set_latency_range(pa_source *s, pa_usec_t min_latency, pa_usec_t max_latency) {
+ pa_source_assert_ref(s);
+
+ if (min_latency == (pa_usec_t) -1)
+ min_latency = DEFAULT_MIN_LATENCY;
+
+ if (max_latency == (pa_usec_t) -1)
+ max_latency = min_latency;
+
+ pa_assert(!min_latency || !max_latency ||
+ min_latency <= max_latency);
+
+ s->min_latency = min_latency;
+ s->max_latency = max_latency;
}
diff --git a/src/pulsecore/source.h b/src/pulsecore/source.h
index f9c9cbf9..d12659d7 100644
--- a/src/pulsecore/source.h
+++ b/src/pulsecore/source.h
@@ -111,7 +111,7 @@ struct pa_source {
pa_bool_t soft_muted;
pa_bool_t requested_latency_valid;
- size_t requested_latency;
+ pa_usec_t requested_latency;
/* Then number of bytes this source will be rewound for at
* max */
@@ -180,6 +180,8 @@ void pa_source_set_description(pa_source *s, const char *description);
void pa_source_set_asyncmsgq(pa_source *s, pa_asyncmsgq *q);
void pa_source_set_rtpoll(pa_source *s, pa_rtpoll *p);
+void pa_source_set_latency_range(pa_source *s, pa_usec_t min_latency, pa_usec_t max_latency);
+
void pa_source_detach(pa_source *s);
void pa_source_attach(pa_source *s);