summaryrefslogtreecommitdiffstats
path: root/src/pulsecore
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2008-05-17 09:12:45 +0000
committerLennart Poettering <lennart@poettering.net>2008-05-17 09:12:45 +0000
commit9b44665c08529081bc3960979e8f0ecace0059d5 (patch)
treec0b052158ea1a46b483988e085aa0f00893d8bb4 /src/pulsecore
parent2e71f4d015404e85079646940e73f20adec1c885 (diff)
add new function pa_source_set_latency_range(), fix type of requested_latency
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@2456 fefdeb5f-60dc-0310-8127-8f9354f1896f
Diffstat (limited to 'src/pulsecore')
-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);