mirror of
https://gitlab.freedesktop.org/pulseaudio/pulseaudio.git
synced 2025-11-10 13:29:58 -05:00
drop the PA_SOURCE_CAN_SUSPEND and PA_SINK_CAN_SUSPEND flags, since they were a bad idea in the first place. All sinks/sources are now *required* to handle suspending in one way or another. Luckily all current sink/source implementations handle it fine anyway.
git-svn-id: file:///home/lennart/svn/public/pulseaudio/branches/lennart@1894 fefdeb5f-60dc-0310-8127-8f9354f1896f
This commit is contained in:
parent
77ed60ce4c
commit
ba322a49e1
12 changed files with 196 additions and 214 deletions
|
|
@ -841,7 +841,7 @@ int pa__init(pa_module*m) {
|
|||
use_mmap ? " via DMA" : ""));
|
||||
pa_xfree(t);
|
||||
|
||||
u->sink->flags = PA_SINK_HARDWARE|PA_SINK_CAN_SUSPEND|PA_SINK_HW_VOLUME_CTRL|PA_SINK_LATENCY;
|
||||
u->sink->flags = PA_SINK_HARDWARE|PA_SINK_HW_VOLUME_CTRL|PA_SINK_LATENCY;
|
||||
|
||||
u->frame_size = frame_size;
|
||||
u->fragment_size = frag_size = period_size * frame_size;
|
||||
|
|
@ -963,4 +963,3 @@ void pa__done(pa_module*m) {
|
|||
|
||||
snd_config_update_free_global();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -821,7 +821,7 @@ int pa__init(pa_module*m) {
|
|||
use_mmap ? " via DMA" : ""));
|
||||
pa_xfree(t);
|
||||
|
||||
u->source->flags = PA_SOURCE_HARDWARE|PA_SOURCE_CAN_SUSPEND|PA_SOURCE_LATENCY|PA_SOURCE_HW_VOLUME_CTRL;
|
||||
u->source->flags = PA_SOURCE_HARDWARE|PA_SOURCE_LATENCY|PA_SOURCE_HW_VOLUME_CTRL;
|
||||
|
||||
u->frame_size = frame_size;
|
||||
u->fragment_size = frag_size = period_size * frame_size;
|
||||
|
|
@ -934,4 +934,3 @@ void pa__done(pa_module*m) {
|
|||
|
||||
snd_config_update_free_global();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1134,7 +1134,7 @@ int pa__init(pa_module*m) {
|
|||
u->sink->set_state = sink_set_state;
|
||||
u->sink->userdata = u;
|
||||
|
||||
u->sink->flags = PA_SINK_CAN_SUSPEND|PA_SINK_LATENCY;
|
||||
u->sink->flags = PA_SINK_LATENCY;
|
||||
pa_sink_set_module(u->sink, m);
|
||||
pa_sink_set_description(u->sink, "Simultaneous output");
|
||||
|
||||
|
|
|
|||
|
|
@ -568,7 +568,7 @@ int pa__init(pa_module*m) {
|
|||
u->sink->parent.process_msg = sink_process_msg;
|
||||
u->sink->set_state = sink_set_state;
|
||||
u->sink->userdata = u;
|
||||
u->sink->flags = PA_SINK_LATENCY|PA_SINK_CAN_SUSPEND;
|
||||
u->sink->flags = PA_SINK_LATENCY;
|
||||
|
||||
pa_sink_set_module(u->sink, m);
|
||||
pa_sink_set_description(u->sink, t = pa_sprintf_malloc("LADSPA plugin '%s' on '%s'", label, master->description));
|
||||
|
|
|
|||
|
|
@ -1243,7 +1243,7 @@ int pa__init(pa_module*m) {
|
|||
hwdesc[0] ? ")" : "",
|
||||
use_mmap ? " via DMA" : ""));
|
||||
pa_xfree(t);
|
||||
u->source->flags = PA_SOURCE_HARDWARE|PA_SOURCE_CAN_SUSPEND|PA_SOURCE_LATENCY;
|
||||
u->source->flags = PA_SOURCE_HARDWARE|PA_SOURCE_LATENCY;
|
||||
u->source->refresh_volume = 1;
|
||||
|
||||
if (use_mmap)
|
||||
|
|
@ -1298,7 +1298,7 @@ int pa__init(pa_module*m) {
|
|||
hwdesc[0] ? ")" : "",
|
||||
use_mmap ? " via DMA" : ""));
|
||||
pa_xfree(t);
|
||||
u->sink->flags = PA_SINK_HARDWARE|PA_SINK_CAN_SUSPEND|PA_SINK_LATENCY;
|
||||
u->sink->flags = PA_SINK_HARDWARE|PA_SINK_LATENCY;
|
||||
u->sink->refresh_volume = 1;
|
||||
|
||||
if (use_mmap)
|
||||
|
|
|
|||
|
|
@ -262,7 +262,7 @@ int pa__init(pa_module*m) {
|
|||
u->sink->parent.process_msg = sink_process_msg;
|
||||
u->sink->set_state = sink_set_state;
|
||||
u->sink->userdata = u;
|
||||
u->sink->flags = PA_SINK_LATENCY|PA_SINK_CAN_SUSPEND;
|
||||
u->sink->flags = PA_SINK_LATENCY;
|
||||
|
||||
pa_sink_set_module(u->sink, m);
|
||||
pa_sink_set_description(u->sink, t = pa_sprintf_malloc("Remapped %s", master->description));
|
||||
|
|
|
|||
|
|
@ -253,12 +253,6 @@ static pa_hook_result_t device_new_hook_cb(pa_core *c, pa_object *o, struct user
|
|||
|
||||
pa_assert(source || sink);
|
||||
|
||||
if (source && !(source->flags & PA_SOURCE_CAN_SUSPEND))
|
||||
return PA_HOOK_OK;
|
||||
|
||||
if (sink && !(sink->flags & PA_SINK_CAN_SUSPEND))
|
||||
return PA_HOOK_OK;
|
||||
|
||||
d = pa_xnew(struct device_info, 1);
|
||||
d->userdata = u;
|
||||
d->source = source ? pa_source_ref(source) : NULL;
|
||||
|
|
|
|||
|
|
@ -300,16 +300,14 @@ typedef enum pa_seek_mode {
|
|||
typedef enum pa_sink_flags {
|
||||
PA_SINK_HW_VOLUME_CTRL = 1, /**< Supports hardware volume control */
|
||||
PA_SINK_LATENCY = 2, /**< Supports latency querying */
|
||||
PA_SINK_HARDWARE = 4, /**< Is a hardware sink of some kind, in contrast to "virtual"/software sinks \since 0.9.3 */
|
||||
PA_SINK_CAN_SUSPEND = 8 /**< Can suspend \since 0.9.7 */
|
||||
PA_SINK_HARDWARE = 4 /**< Is a hardware sink of some kind, in contrast to "virtual"/software sinks \since 0.9.3 */
|
||||
} pa_sink_flags_t;
|
||||
|
||||
/** Special source flags. \since 0.8 */
|
||||
typedef enum pa_source_flags {
|
||||
PA_SOURCE_HW_VOLUME_CTRL = 1, /**< Supports hardware volume control */
|
||||
PA_SOURCE_LATENCY = 2, /**< Supports latency querying */
|
||||
PA_SOURCE_HARDWARE = 4, /**< Is a hardware source of some kind, in contrast to "virtual"/software source \since 0.9.3 */
|
||||
PA_SOURCE_CAN_SUSPEND = 8 /**< Can suspend \since 0.9.7 */
|
||||
PA_SOURCE_HARDWARE = 4 /**< Is a hardware source of some kind, in contrast to "virtual"/software source \since 0.9.3 */
|
||||
} pa_source_flags_t;
|
||||
|
||||
/** A generic free() like callback prototype */
|
||||
|
|
|
|||
|
|
@ -540,12 +540,12 @@ static int create_stream(
|
|||
if (attr)
|
||||
s->buffer_attr = *attr;
|
||||
else {
|
||||
/* half a second */
|
||||
/* half a second, with minimum request of 10 ms */
|
||||
s->buffer_attr.tlength = pa_bytes_per_second(&s->sample_spec)/2;
|
||||
s->buffer_attr.maxlength = (s->buffer_attr.tlength*3)/2;
|
||||
s->buffer_attr.minreq = s->buffer_attr.tlength/100;
|
||||
s->buffer_attr.minreq = s->buffer_attr.tlength/50;
|
||||
s->buffer_attr.prebuf = s->buffer_attr.tlength - s->buffer_attr.minreq;
|
||||
s->buffer_attr.fragsize = s->buffer_attr.tlength/100;
|
||||
s->buffer_attr.fragsize = s->buffer_attr.tlength/50;
|
||||
}
|
||||
|
||||
if (!dev)
|
||||
|
|
|
|||
|
|
@ -111,7 +111,7 @@ char *pa_sink_list_to_string(pa_core *c) {
|
|||
" %c index: %u\n"
|
||||
"\tname: <%s>\n"
|
||||
"\tdriver: <%s>\n"
|
||||
"\tflags: %s%s%s%s\n"
|
||||
"\tflags: %s%s%s\n"
|
||||
"\tstate: %s\n"
|
||||
"\tvolume: <%s>\n"
|
||||
"\tmute: <%i>\n"
|
||||
|
|
@ -127,7 +127,6 @@ char *pa_sink_list_to_string(pa_core *c) {
|
|||
sink->flags & PA_SINK_HW_VOLUME_CTRL ? "HW_VOLUME_CTRL " : "",
|
||||
sink->flags & PA_SINK_LATENCY ? "LATENCY " : "",
|
||||
sink->flags & PA_SINK_HARDWARE ? "HARDWARE " : "",
|
||||
sink->flags & PA_SINK_CAN_SUSPEND ? "CAN_SUSPEND " : "",
|
||||
state_table[pa_sink_get_state(sink)],
|
||||
pa_cvolume_snprint(cv, sizeof(cv), pa_sink_get_volume(sink)),
|
||||
!!pa_sink_get_mute(sink),
|
||||
|
|
@ -171,7 +170,7 @@ char *pa_source_list_to_string(pa_core *c) {
|
|||
" %c index: %u\n"
|
||||
"\tname: <%s>\n"
|
||||
"\tdriver: <%s>\n"
|
||||
"\tflags: %s%s%s%s\n"
|
||||
"\tflags: %s%s%s\n"
|
||||
"\tstate: %s\n"
|
||||
"\tvolume: <%s>\n"
|
||||
"\tmute: <%u>\n"
|
||||
|
|
@ -186,7 +185,6 @@ char *pa_source_list_to_string(pa_core *c) {
|
|||
source->flags & PA_SOURCE_HW_VOLUME_CTRL ? "HW_VOLUME_CTRL " : "",
|
||||
source->flags & PA_SOURCE_LATENCY ? "LATENCY " : "",
|
||||
source->flags & PA_SOURCE_HARDWARE ? "HARDWARE " : "",
|
||||
source->flags & PA_SOURCE_CAN_SUSPEND ? "CAN_SUSPEND " : "",
|
||||
state_table[pa_source_get_state(source)],
|
||||
pa_cvolume_snprint(cv, sizeof(cv), pa_source_get_volume(source)),
|
||||
!!pa_source_get_mute(source),
|
||||
|
|
|
|||
|
|
@ -170,9 +170,6 @@ static int sink_set_state(pa_sink *s, pa_sink_state_t state) {
|
|||
if (s->state == state)
|
||||
return 0;
|
||||
|
||||
if (state == PA_SINK_SUSPENDED && !(s->flags & PA_SINK_CAN_SUSPEND))
|
||||
return -1;
|
||||
|
||||
if ((s->state == PA_SINK_SUSPENDED && PA_SINK_OPENED(state)) ||
|
||||
(PA_SINK_OPENED(s->state) && state == PA_SINK_SUSPENDED)) {
|
||||
pa_sink_input *i;
|
||||
|
|
|
|||
|
|
@ -145,9 +145,6 @@ static int source_set_state(pa_source *s, pa_source_state_t state) {
|
|||
if (s->state == state)
|
||||
return 0;
|
||||
|
||||
if (state == PA_SOURCE_SUSPENDED && !(s->flags & PA_SOURCE_CAN_SUSPEND))
|
||||
return -1;
|
||||
|
||||
if ((s->state == PA_SOURCE_SUSPENDED && PA_SOURCE_OPENED(state)) ||
|
||||
(PA_SOURCE_OPENED(s->state) && state == PA_SOURCE_SUSPENDED)) {
|
||||
pa_source_output *o;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue