Lines Matching defs:source
45 #include <pulsecore/source-output.h>
237 * well as after the source output has been activated using
260 * mechanism to tell the source how often we want it to send us
261 * data. The next best thing we can do is to set the source's
270 * what the source can provide. We set the source to whatever
325 * well as after the source output has been activated using
342 pa_source *source,
378 if (source)
379 pa_source_output_new_data_set_source(&data, source, false, true);
1560 s->current_monitor_latency = o->source->monitor_of ? pa_sink_get_latency_within_thread(o->source->monitor_of, false) : 0;
1561 s->current_source_latency = pa_source_get_latency_within_thread(o->source, false);
1637 if (old_state == o->source->state)
1640 suspend = (o->source->state == PA_SOURCE_SUSPENDED);
2057 pa_source *source = NULL;
2164 /* For newer client versions (with per-source-output volumes), we try
2217 if (!(source = pa_idxset_get_by_index(c->protocol->core->sources, source_index))) {
2224 if (!(source = pa_namereg_get(c->protocol->core, source_name, PA_NAMEREG_SOURCE))) {
2251 s = record_stream_new(c, source, &ss, &map, formats, &attr, volume_set ? &volume : NULL, muted, muted_set, flags, p, adjust_latency, early_requests, relative_volume, peak_detect, direct_on_input, &ret);
2277 pa_tagstruct_putu32(reply, s->source_output->source->index);
2278 pa_tagstruct_puts(reply, s->source_output->source->name);
2280 pa_tagstruct_put_boolean(reply, s->source_output->source->state == PA_SOURCE_SUSPENDED);
2678 pa_source *source;
2680 if ((source = pa_namereg_get(c->protocol->core, name, PA_NAMEREG_SOURCE)))
2681 idx = source->index;
2811 pa_assert_se(pa_asyncmsgq_send(s->source_output->source->asyncmsgq, PA_MSGOBJECT(s->source_output), SOURCE_OUTPUT_MESSAGE_UPDATE_LATENCY, s, 0, NULL) == 0);
2819 s->source_output->source->state == PA_SOURCE_RUNNING &&
3105 static void source_fill_tagstruct(pa_native_connection *c, pa_tagstruct *t, pa_source *source) {
3109 pa_source_assert_ref(source);
3111 fixup_sample_spec(c, &fixed_ss, &source->sample_spec);
3115 PA_TAG_U32, source->index,
3116 PA_TAG_STRING, source->name,
3117 PA_TAG_STRING, pa_strnull(pa_proplist_gets(source->proplist, PA_PROP_DEVICE_DESCRIPTION)),
3119 PA_TAG_CHANNEL_MAP, &source->channel_map,
3120 PA_TAG_U32, source->module ? source->module->index : PA_INVALID_INDEX,
3121 PA_TAG_CVOLUME, pa_source_get_volume(source, false),
3122 PA_TAG_BOOLEAN, pa_source_get_mute(source, false),
3123 PA_TAG_U32, source->monitor_of ? source->monitor_of->index : PA_INVALID_INDEX,
3124 PA_TAG_STRING, source->monitor_of ? source->monitor_of->name : NULL,
3125 PA_TAG_USEC, pa_source_get_latency(source),
3126 PA_TAG_STRING, source->driver,
3127 PA_TAG_U32, source->flags & PA_SOURCE_CLIENT_FLAGS_MASK,
3131 pa_tagstruct_put_proplist(t, source->proplist);
3132 pa_tagstruct_put_usec(t, pa_source_get_requested_latency(source));
3136 pa_tagstruct_put_volume(t, source->base_volume);
3137 if (PA_UNLIKELY(source->state == PA_SOURCE_INVALID_STATE))
3138 pa_log_error("Internal source state is invalid.");
3139 pa_tagstruct_putu32(t, source->state);
3140 pa_tagstruct_putu32(t, source->n_volume_steps);
3141 pa_tagstruct_putu32(t, source->card ? source->card->index : PA_INVALID_INDEX);
3148 pa_tagstruct_putu32(t, pa_hashmap_size(source->ports));
3150 PA_HASHMAP_FOREACH(p, source->ports, state) {
3163 pa_tagstruct_puts(t, source->active_port ? source->active_port->name : NULL);
3169 pa_idxset *formats = pa_source_get_formats(source);
3332 pa_tagstruct_putu32(t, s->source->index);
3388 pa_source *source = NULL;
3431 source = pa_idxset_get_by_index(c->protocol->core->sources, idx);
3433 source = pa_namereg_get(c->protocol->core, name, PA_NAMEREG_SOURCE);
3455 if (!sink && !source && !client && !card && !module && !si && !so && !sce) {
3463 else if (source)
3464 source_fill_tagstruct(c, reply, source);
3642 pa_source *source = NULL;
3676 source = pa_idxset_get_by_index(c->protocol->core->sources, idx);
3678 source = pa_namereg_get(c->protocol->core, name, PA_NAMEREG_SOURCE);
3693 CHECK_VALIDITY(c->pstream, si || so || sink || source, tag, PA_ERR_NOENTITY);
3702 } else if (source) {
3703 CHECK_VALIDITY(c->pstream, volume.channels == 1 || pa_cvolume_compatible(&volume, &source->sample_spec), tag, PA_ERR_INVALID);
3705 pa_log_debug("Client %s changes volume of source %s.", client_name, source->name);
3706 pa_source_set_volume(source, &volume, true, true);
3719 pa_log_debug("Client %s changes volume of source output %s.",
3739 pa_source *source = NULL;
3772 source = pa_idxset_get_by_index(c->protocol->core->sources, idx);
3774 source = pa_namereg_get(c->protocol->core, name, PA_NAMEREG_SOURCE);
3790 CHECK_VALIDITY(c->pstream, si || so || sink || source, tag, PA_ERR_NOENTITY);
3797 } else if (source) {
3798 pa_log_debug("Client %s changes mute of source %s.", client_name, source->name);
3799 pa_source_set_mute(source, mute, true);
3806 pa_log_debug("Client %s changes mute of source output %s.",
4251 pa_source *source;
4253 source = pa_namereg_get(c->protocol->core, s, PA_NAMEREG_SOURCE);
4254 CHECK_VALIDITY(c->pstream, source, tag, PA_ERR_NOENTITY);
4256 pa_core_set_configured_default_source(c->protocol->core, source->name);
4451 pa_source *source;
4458 source = pa_idxset_get_by_index(c->protocol->core->sources, idx_device);
4460 source = pa_namereg_get(c->protocol->core, name_device, PA_NAMEREG_SOURCE);
4462 CHECK_VALIDITY(c->pstream, so && source, tag, PA_ERR_NOENTITY);
4464 if (pa_source_output_move_to(so, source, true) < 0) {
4536 pa_source *source;
4539 source = pa_idxset_get_by_index(c->protocol->core->sources, idx);
4541 source = pa_namereg_get(c->protocol->core, name, PA_NAMEREG_SOURCE);
4543 CHECK_VALIDITY(c->pstream, source, tag, PA_ERR_NOENTITY);
4545 pa_log_debug("%s of source %s requested by client %" PRIu32 ".",
4546 b ? "Suspending" : "Resuming", source->name, c->client->index);
4548 if (pa_source_suspend(source, b, PA_SUSPEND_USER) < 0) {
4729 pa_source *source;
4734 source = pa_idxset_get_by_index(c->protocol->core->sources, idx);
4736 source = pa_namereg_get(c->protocol->core, name, PA_NAMEREG_SOURCE);
4738 CHECK_VALIDITY(c->pstream, source, tag, PA_ERR_NOENTITY);
4740 if ((ret = pa_source_set_port(source, port, true)) < 0) {