mirror of
https://gitlab.freedesktop.org/pulseaudio/pulseaudio.git
synced 2025-11-10 13:29:58 -05:00
set request/rewind sizes only via accessor functions
This commit is contained in:
parent
aa92ff408c
commit
2f9a784167
9 changed files with 52 additions and 17 deletions
|
|
@ -1616,6 +1616,16 @@ int pa_sink_process_msg(pa_msgobject *o, int code, void *userdata, int64_t offse
|
|||
*((size_t*) userdata) = s->thread_info.max_request;
|
||||
return 0;
|
||||
|
||||
case PA_SINK_MESSAGE_SET_MAX_REWIND:
|
||||
|
||||
pa_sink_set_max_rewind_within_thread(s, (size_t) offset);
|
||||
return 0;
|
||||
|
||||
case PA_SINK_MESSAGE_SET_MAX_REQUEST:
|
||||
|
||||
pa_sink_set_max_request_within_thread(s, (size_t) offset);
|
||||
return 0;
|
||||
|
||||
case PA_SINK_MESSAGE_GET_LATENCY:
|
||||
case PA_SINK_MESSAGE_MAX:
|
||||
;
|
||||
|
|
@ -1767,7 +1777,7 @@ pa_usec_t pa_sink_get_requested_latency(pa_sink *s) {
|
|||
}
|
||||
|
||||
/* Called from IO as well as the main thread -- the latter only before the IO thread started up */
|
||||
void pa_sink_set_max_rewind(pa_sink *s, size_t max_rewind) {
|
||||
void pa_sink_set_max_rewind_within_thread(pa_sink *s, size_t max_rewind) {
|
||||
pa_sink_input *i;
|
||||
void *state = NULL;
|
||||
|
||||
|
|
@ -1787,8 +1797,18 @@ void pa_sink_set_max_rewind(pa_sink *s, size_t max_rewind) {
|
|||
pa_source_set_max_rewind(s->monitor_source, s->thread_info.max_rewind);
|
||||
}
|
||||
|
||||
/* Called from main thread */
|
||||
void pa_sink_set_max_rewind(pa_sink *s, size_t max_rewind) {
|
||||
pa_sink_assert_ref(s);
|
||||
|
||||
if (PA_SINK_IS_LINKED(s->state))
|
||||
pa_assert_se(pa_asyncmsgq_send(s->asyncmsgq, PA_MSGOBJECT(s), PA_SINK_MESSAGE_SET_MAX_REWIND, NULL, max_rewind, NULL) == 0);
|
||||
else
|
||||
pa_sink_set_max_rewind_within_thread(s, max_rewind);
|
||||
}
|
||||
|
||||
/* Called from IO as well as the main thread -- the latter only before the IO thread started up */
|
||||
void pa_sink_set_max_request(pa_sink *s, size_t max_request) {
|
||||
void pa_sink_set_max_request_within_thread(pa_sink *s, size_t max_request) {
|
||||
void *state = NULL;
|
||||
|
||||
pa_sink_assert_ref(s);
|
||||
|
|
@ -1806,6 +1826,16 @@ void pa_sink_set_max_request(pa_sink *s, size_t max_request) {
|
|||
}
|
||||
}
|
||||
|
||||
/* Called from main thread */
|
||||
void pa_sink_set_max_request(pa_sink *s, size_t max_request) {
|
||||
pa_sink_assert_ref(s);
|
||||
|
||||
if (PA_SINK_IS_LINKED(s->state))
|
||||
pa_assert_se(pa_asyncmsgq_send(s->asyncmsgq, PA_MSGOBJECT(s), PA_SINK_MESSAGE_SET_MAX_REQUEST, NULL, max_request, NULL) == 0);
|
||||
else
|
||||
pa_sink_set_max_request_within_thread(s, max_request);
|
||||
}
|
||||
|
||||
/* Called from IO thread */
|
||||
void pa_sink_invalidate_requested_latency(pa_sink *s) {
|
||||
pa_sink_input *i;
|
||||
|
|
|
|||
|
|
@ -172,6 +172,8 @@ typedef enum pa_sink_message {
|
|||
PA_SINK_MESSAGE_GET_LATENCY_RANGE,
|
||||
PA_SINK_MESSAGE_GET_MAX_REWIND,
|
||||
PA_SINK_MESSAGE_GET_MAX_REQUEST,
|
||||
PA_SINK_MESSAGE_SET_MAX_REWIND,
|
||||
PA_SINK_MESSAGE_SET_MAX_REQUEST,
|
||||
PA_SINK_MESSAGE_MAX
|
||||
} pa_sink_message_t;
|
||||
|
||||
|
|
@ -217,6 +219,8 @@ void pa_sink_unlink(pa_sink* s);
|
|||
void pa_sink_set_description(pa_sink *s, const char *description);
|
||||
void pa_sink_set_asyncmsgq(pa_sink *s, pa_asyncmsgq *q);
|
||||
void pa_sink_set_rtpoll(pa_sink *s, pa_rtpoll *p);
|
||||
void pa_sink_set_max_rewind(pa_sink *s, size_t max_rewind);
|
||||
void pa_sink_set_max_request(pa_sink *s, size_t max_request);
|
||||
|
||||
void pa_sink_set_latency_range(pa_sink *s, pa_usec_t min_latency, pa_usec_t max_latency);
|
||||
|
||||
|
|
@ -280,8 +284,8 @@ void pa_sink_detach_within_thread(pa_sink *s);
|
|||
|
||||
pa_usec_t pa_sink_get_requested_latency_within_thread(pa_sink *s);
|
||||
|
||||
void pa_sink_set_max_rewind(pa_sink *s, size_t max_rewind);
|
||||
void pa_sink_set_max_request(pa_sink *s, size_t max_request);
|
||||
void pa_sink_set_max_rewind_within_thread(pa_sink *s, size_t max_rewind);
|
||||
void pa_sink_set_max_request_within_thread(pa_sink *s, size_t max_request);
|
||||
|
||||
void pa_sink_set_latency_range_within_thread(pa_sink *s, pa_usec_t min_latency, pa_usec_t max_latency);
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue