diff options
| -rw-r--r-- | src/modules/alsa/alsa-util.c | 2 | ||||
| -rw-r--r-- | src/modules/module-stream-restore.c | 2 | ||||
| -rw-r--r-- | src/modules/module-tunnel.c | 54 | ||||
| -rw-r--r-- | src/modules/reserve-wrap.c | 10 | ||||
| -rw-r--r-- | src/pulse/def.h | 11 | ||||
| -rw-r--r-- | src/pulsecore/sink-input.c | 8 | ||||
| -rw-r--r-- | src/pulsecore/source-output.c | 8 | ||||
| -rw-r--r-- | src/pulsecore/svolume_mmx.c | 4 | ||||
| -rw-r--r-- | src/pulsecore/svolume_sse.c | 4 | 
9 files changed, 88 insertions, 15 deletions
| diff --git a/src/modules/alsa/alsa-util.c b/src/modules/alsa/alsa-util.c index 56d60dfb..43a8e829 100644 --- a/src/modules/alsa/alsa-util.c +++ b/src/modules/alsa/alsa-util.c @@ -288,7 +288,7 @@ int pa_alsa_set_hw_params(          if ((ret = snd_pcm_hw_params_get_buffer_size_max(hwparams, &max_frames)) < 0)              pa_log_warn("snd_pcm_hw_params_get_buffer_size_max() failed: %s", pa_alsa_strerror(ret));          else -            pa_log_debug("Maximum hw buffer size is %lu ms", (long unsigned) max_frames * PA_MSEC_PER_SEC / _ss.rate); +            pa_log_debug("Maximum hw buffer size is %lu ms", (long unsigned) (max_frames * PA_MSEC_PER_SEC / _ss.rate));          /* Some ALSA drivers really don't like if we set the buffer           * size first and the number of periods second. (which would diff --git a/src/modules/module-stream-restore.c b/src/modules/module-stream-restore.c index d6e3c153..9b6f9143 100644 --- a/src/modules/module-stream-restore.c +++ b/src/modules/module-stream-restore.c @@ -593,7 +593,7 @@ static pa_hook_result_t source_put_hook_callback(pa_core *c, pa_source *source,          if (!so->source)              continue; -        /* It might happen that a stream and a sink are set up at the +        /* It might happen that a stream and a source are set up at the             same time, in which case we want to make sure we don't             interfere with that */          if (!PA_SOURCE_OUTPUT_IS_LINKED(pa_source_output_get_state(so))) diff --git a/src/modules/module-tunnel.c b/src/modules/module-tunnel.c index af4b8b2a..c97de3a1 100644 --- a/src/modules/module-tunnel.c +++ b/src/modules/module-tunnel.c @@ -1069,6 +1069,33 @@ static void sink_info_cb(pa_pdispatch *pd, uint32_t command,  uint32_t tag, pa_t          }      } +    if (u->version >= 16) { +        uint32_t n_ports; +        const char *s; + +        if (pa_tagstruct_getu32(t, &n_ports)) { +            pa_log("Parse failure"); +            goto fail; +        } + +        for (uint32_t j = 0; j < n_ports; j++) { +            uint32_t priority; + +            if (pa_tagstruct_gets(t, &s) < 0 || /* name */ +                pa_tagstruct_gets(t, &s) < 0 || /* description */ +                pa_tagstruct_getu32(t, &priority) < 0) { + +                pa_log("Parse failure"); +                goto fail; +            } +        } + +        if (pa_tagstruct_gets(t, &s) < 0) { /* active port */ +            pa_log("Parse failure"); +            goto fail; +        } +    } +      if (!pa_tagstruct_eof(t)) {          pa_log("Packet too long");          goto fail; @@ -1245,6 +1272,33 @@ static void source_info_cb(pa_pdispatch *pd, uint32_t command,  uint32_t tag, pa          }      } +    if (u->version >= 16) { +        uint32_t n_ports; +        const char *s; + +        if (pa_tagstruct_getu32(t, &n_ports)) { +            pa_log("Parse failure"); +            goto fail; +        } + +        for (uint32_t j = 0; j < n_ports; j++) { +            uint32_t priority; + +            if (pa_tagstruct_gets(t, &s) < 0 || /* name */ +                pa_tagstruct_gets(t, &s) < 0 || /* description */ +                pa_tagstruct_getu32(t, &priority) < 0) { + +                pa_log("Parse failure"); +                goto fail; +            } +        } + +        if (pa_tagstruct_gets(t, &s) < 0) { /* active port */ +            pa_log("Parse failure"); +            goto fail; +        } +    } +      if (!pa_tagstruct_eof(t)) {          pa_log("Packet too long");          goto fail; diff --git a/src/modules/reserve-wrap.c b/src/modules/reserve-wrap.c index 6086fc99..4be19c73 100644 --- a/src/modules/reserve-wrap.c +++ b/src/modules/reserve-wrap.c @@ -137,7 +137,7 @@ pa_reserve_wrapper* pa_reserve_wrapper_get(pa_core *c, const char *device_name)  #ifdef HAVE_DBUS      if (!(r->connection = pa_dbus_bus_get(c, DBUS_BUS_SESSION, &error)) || dbus_error_is_set(&error)) { -        pa_log_warn("Unable to contact D-Bus session bus: %s: %s", error.name, error.message); +        pa_log_debug("Unable to contact D-Bus session bus: %s: %s", error.name, error.message);          /* We don't treat this as error here because we want allow PA           * to run even when no session bus is available. */ @@ -154,10 +154,10 @@ pa_reserve_wrapper* pa_reserve_wrapper_get(pa_core *c, const char *device_name)                   NULL)) < 0) {          if (k == -EBUSY) { -            pa_log_error("Device '%s' already locked.", device_name); +            pa_log_debug("Device '%s' already locked.", device_name);              goto fail;          } else { -            pa_log_warn("Failed to acquire reservation lock on device '%s': %s", device_name, pa_cstrerror(-k)); +            pa_log_debug("Failed to acquire reservation lock on device '%s': %s", device_name, pa_cstrerror(-k));              return r;          }      } @@ -280,7 +280,7 @@ pa_reserve_monitor_wrapper* pa_reserve_monitor_wrapper_get(pa_core *c, const cha  #ifdef HAVE_DBUS      if (!(w->connection = pa_dbus_bus_get(c, DBUS_BUS_SESSION, &error)) || dbus_error_is_set(&error)) { -        pa_log_warn("Unable to contact D-Bus session bus: %s: %s", error.name, error.message); +        pa_log_debug("Unable to contact D-Bus session bus: %s: %s", error.name, error.message);          /* We don't treat this as error here because we want allow PA           * to run even when no session bus is available. */ @@ -294,7 +294,7 @@ pa_reserve_monitor_wrapper* pa_reserve_monitor_wrapper_get(pa_core *c, const cha                   change_cb,                   NULL)) < 0) { -        pa_log_warn("Failed to create watch on device '%s': %s", device_name, pa_cstrerror(-k)); +        pa_log_debug("Failed to create watch on device '%s': %s", device_name, pa_cstrerror(-k));          goto fail;      } diff --git a/src/pulse/def.h b/src/pulse/def.h index e839bd92..5d0a0b4b 100644 --- a/src/pulse/def.h +++ b/src/pulse/def.h @@ -110,6 +110,8 @@ typedef enum pa_operation_state {  /** Some special flags for contexts. */  typedef enum pa_context_flags { +    PA_CONTEXT_NOFLAGS = 0x0000U, +    /**< Flag to pass when no specific options are needed (used to avoid casting)  \since 0.9.19 */      PA_CONTEXT_NOAUTOSPAWN = 0x0001U,      /**< Disabled autospawning of the PulseAudio daemon if required */      PA_CONTEXT_NOFAIL = 0x0002U @@ -140,6 +142,9 @@ typedef enum pa_stream_direction {  /** Some special flags for stream connections. */  typedef enum pa_stream_flags { +    PA_STREAM_NOFLAGS = 0x0000U, +    /**< Flag to pass when no specific options are needed (used to avoid casting)  \since 0.9.19 */ +      PA_STREAM_START_CORKED = 0x0001U,      /**< Create the stream corked, requiring an explicit       * pa_stream_cork() call to uncork it. */ @@ -688,6 +693,9 @@ typedef enum pa_seek_mode {  /** Special sink flags. */  typedef enum pa_sink_flags { +    PA_SINK_NOFLAGS = 0x0000U, +    /**< Flag to pass when no specific options are needed (used to avoid casting)  \since 0.9.19 */ +      PA_SINK_HW_VOLUME_CTRL = 0x0001U,      /**< Supports hardware volume control */ @@ -775,6 +783,9 @@ static inline int PA_SINK_IS_OPENED(pa_sink_state_t x) {  /** Special source flags.  */  typedef enum pa_source_flags { +    PA_SOURCE_NOFLAGS = 0x0000U, +    /**< Flag to pass when no specific options are needed (used to avoid casting)  \since 0.9.19 */ +      PA_SOURCE_HW_VOLUME_CTRL = 0x0001U,      /**< Supports hardware volume control */ diff --git a/src/pulsecore/sink-input.c b/src/pulsecore/sink-input.c index 744c47ff..1af2823f 100644 --- a/src/pulsecore/sink-input.c +++ b/src/pulsecore/sink-input.c @@ -153,6 +153,7 @@ int pa_sink_input_new(      char st[PA_SAMPLE_SPEC_SNPRINT_MAX], cm[PA_CHANNEL_MAP_SNPRINT_MAX];      pa_channel_map original_cm;      int r; +    char *pt;      pa_assert(_i);      pa_assert(core); @@ -353,12 +354,15 @@ int pa_sink_input_new(      if (i->client)          pa_assert_se(pa_idxset_put(i->client->sink_inputs, i, NULL) >= 0); -    pa_log_info("Created input %u \"%s\" on %s with sample spec %s and channel map %s", +    pt = pa_proplist_to_string_sep(i->proplist, "\n    "); +    pa_log_info("Created input %u \"%s\" on %s with sample spec %s and channel map %s\n    %s",                  i->index,                  pa_strnull(pa_proplist_gets(i->proplist, PA_PROP_MEDIA_NAME)),                  i->sink->name,                  pa_sample_spec_snprint(st, sizeof(st), &i->sample_spec), -                pa_channel_map_snprint(cm, sizeof(cm), &i->channel_map)); +                pa_channel_map_snprint(cm, sizeof(cm), &i->channel_map), +                pt); +    pa_xfree(pt);      /* Don't forget to call pa_sink_input_put! */ diff --git a/src/pulsecore/source-output.c b/src/pulsecore/source-output.c index 1509807b..57ccc067 100644 --- a/src/pulsecore/source-output.c +++ b/src/pulsecore/source-output.c @@ -107,6 +107,7 @@ int pa_source_output_new(      pa_resampler *resampler = NULL;      char st[PA_SAMPLE_SPEC_SNPRINT_MAX], cm[PA_CHANNEL_MAP_SNPRINT_MAX];      int r; +    char *pt;      pa_assert(_o);      pa_assert(core); @@ -247,12 +248,15 @@ int pa_source_output_new(      if (o->direct_on_input)          pa_assert_se(pa_idxset_put(o->direct_on_input->direct_outputs, o, NULL) == 0); -    pa_log_info("Created output %u \"%s\" on %s with sample spec %s and channel map %s", +    pt = pa_proplist_to_string_sep(o->proplist, "\n    "); +    pa_log_info("Created output %u \"%s\" on %s with sample spec %s and channel map %s\n    %s",                  o->index,                  pa_strnull(pa_proplist_gets(o->proplist, PA_PROP_MEDIA_NAME)),                  o->source->name,                  pa_sample_spec_snprint(st, sizeof(st), &o->sample_spec), -                pa_channel_map_snprint(cm, sizeof(cm), &o->channel_map)); +                pa_channel_map_snprint(cm, sizeof(cm), &o->channel_map), +                pt); +    pa_xfree(pt);      /* Don't forget to call pa_source_output_put! */ diff --git a/src/pulsecore/svolume_mmx.c b/src/pulsecore/svolume_mmx.c index 62f3397e..1768eb50 100644 --- a/src/pulsecore/svolume_mmx.c +++ b/src/pulsecore/svolume_mmx.c @@ -152,7 +152,7 @@ pa_volume_s16ne_mmx (int16_t *samples, int32_t *volumes, unsigned channels, unsi          " emms                          \n\t"          : "+r" (samples), "+r" (volumes), "+r" (length), "=D" ((pa_reg_x86)channel), "=&r" (temp) -        : "r" ((pa_reg_x86)channels) +        : "X" ((pa_reg_x86)channels)          : "cc"      );  } @@ -228,7 +228,7 @@ pa_volume_s16re_mmx (int16_t *samples, int32_t *volumes, unsigned channels, unsi          " emms                          \n\t"          : "+r" (samples), "+r" (volumes), "+r" (length), "=D" ((pa_reg_x86)channel), "=&r" (temp) -        : "r" ((pa_reg_x86)channels) +        : "X" ((pa_reg_x86)channels)          : "cc"      );  } diff --git a/src/pulsecore/svolume_sse.c b/src/pulsecore/svolume_sse.c index 5276bda4..ab9394fb 100644 --- a/src/pulsecore/svolume_sse.c +++ b/src/pulsecore/svolume_sse.c @@ -149,7 +149,7 @@ pa_volume_s16ne_sse2 (int16_t *samples, int32_t *volumes, unsigned channels, uns          "8:                             \n\t"          : "+r" (samples), "+r" (volumes), "+r" (length), "=D" (channel), "=&r" (temp) -        : "r" ((pa_reg_x86)channels) +        : "X" ((pa_reg_x86)channels)          : "cc"      );  } @@ -237,7 +237,7 @@ pa_volume_s16re_sse2 (int16_t *samples, int32_t *volumes, unsigned channels, uns          "8:                             \n\t"          : "+r" (samples), "+r" (volumes), "+r" (length), "=D" (channel), "=&r" (temp) -        : "r" ((pa_reg_x86)channels) +        : "X" ((pa_reg_x86)channels)          : "cc"      );  } | 
