Lines Matching defs:sink

33 #include <pulsecore/sink.h>
50 PA_MODULE_DESCRIPTION(_("Virtual LADSPA sink"));
54 _("sink_name=<name for the sink> "
55 "sink_properties=<properties for the sink> "
56 "sink_input_properties=<properties for the sink input> "
57 "master=<name of sink to filter> "
58 "sink_master=<name of sink to filter> "
79 pa_sink *sink;
233 pa_asyncmsgq_send(u->sink->asyncmsgq, PA_MSGOBJECT(u->sink), LADSPA_SINK_MESSAGE_UPDATE_PARAMETERS, NULL, 0, NULL);
315 u->dbus_protocol = pa_dbus_protocol_get(u->sink->core);
316 u->dbus_path = pa_sprintf_malloc("/org/pulseaudio/core1/sink%d", u->sink->index);
347 /* The sink is _put() before the sink input is, so let's
349 * sink input is first shut down, the sink second. */
350 if (!PA_SINK_IS_LINKED(u->sink->thread_info.state) ||
358 /* Get the latency of the master sink */
359 pa_sink_get_latency_within_thread(u->sink_input->sink, true) +
361 /* Add the latency internal to our sink input on top */
362 pa_bytes_to_usec(pa_memblockq_get_length(u->sink_input->thread_info.render_memblockq), &u->sink_input->sink->sample_spec);
374 pa_sink_request_rewind(u->sink, -1);
376 /* change the sink parameters */
408 * of the master sink to make sure we are heard immediately */
424 if (!PA_SINK_IS_LINKED(u->sink->thread_info.state) ||
428 /* Just hand this one over to the master sink */
441 if (!PA_SINK_IS_LINKED(u->sink->thread_info.state) ||
445 /* Just hand this one over to the master sink */
477 if (!PA_SINK_IS_LINKED(u->sink->thread_info.state))
481 pa_sink_process_rewind(u->sink, 0);
486 pa_sink_render(u->sink, nbytes, &nchunk);
501 chunk->memblock = pa_memblock_new(i->sink->core->mempool, chunk->length);
532 /* If the sink is not yet linked, there is nothing to rewind */
533 if (!PA_SINK_IS_LINKED(u->sink->thread_info.state))
536 if (u->sink->thread_info.rewind_nbytes > 0) {
540 amount = PA_MIN(u->sink->thread_info.rewind_nbytes, max_rewrite);
541 u->sink->thread_info.rewind_nbytes = 0;
560 pa_sink_process_rewind(u->sink, amount);
574 pa_sink_set_max_rewind_within_thread(u->sink, nbytes);
584 pa_sink_set_max_request_within_thread(u->sink, nbytes);
594 pa_sink_set_latency_range_within_thread(u->sink, i->sink->thread_info.min_latency, i->sink->thread_info.max_latency);
604 pa_sink_set_fixed_latency_within_thread(u->sink, i->sink->thread_info.fixed_latency);
614 if (PA_SINK_IS_LINKED(u->sink->thread_info.state))
615 pa_sink_detach_within_thread(u->sink);
617 pa_sink_set_rtpoll(u->sink, NULL);
627 pa_sink_set_rtpoll(u->sink, i->sink->thread_info.rtpoll);
628 pa_sink_set_latency_range_within_thread(u->sink, i->sink->thread_info.min_latency, i->sink->thread_info.max_latency);
629 pa_sink_set_fixed_latency_within_thread(u->sink, i->sink->thread_info.fixed_latency);
630 pa_sink_set_max_request_within_thread(u->sink, pa_sink_input_get_max_request(i));
634 pa_sink_set_max_rewind_within_thread(u->sink, pa_sink_input_get_max_rewind(i));
636 if (PA_SINK_IS_LINKED(u->sink->thread_info.state))
637 pa_sink_attach_within_thread(u->sink);
647 /* The order here matters! We first kill the sink so that streams
648 * can properly be moved away while the sink input is still connected
651 pa_sink_unlink(u->sink);
657 pa_sink_unref(u->sink);
658 u->sink = NULL;
673 return u->sink != dest;
684 pa_sink_set_asyncmsgq(u->sink, dest->asyncmsgq);
685 pa_sink_update_flags(u->sink, PA_SINK_LATENCY|PA_SINK_DYNAMIC_LATENCY, dest->flags);
687 pa_sink_set_asyncmsgq(u->sink, NULL);
696 pa_proplist_gets(u->sink->proplist, "device.ladspa.name"), z ? z : dest->name);
698 pa_sink_update_proplist(u->sink, PA_UPDATE_REPLACE, pl);
710 pa_sink_mute_changed(u->sink, i->muted);
720 if (!PA_SINK_IS_LINKED(u->sink->state))
723 if (i->sink->state != PA_SINK_SUSPENDED || i->sink->suspend_cause == PA_SUSPEND_IDLE)
724 pa_sink_suspend(u->sink, false, PA_SUSPEND_UNAVAILABLE);
726 pa_sink_suspend(u->sink, true, PA_SUSPEND_UNAVAILABLE);
1032 pa_log("Master sink not found.");
1276 /* Create sink */
1312 u->sink = pa_sink_new(m->core, &sink_data,
1316 if (!u->sink) {
1317 pa_log("Failed to create sink.");
1321 u->sink->parent.process_msg = sink_process_msg_cb;
1322 u->sink->set_state_in_main_thread = sink_set_state_in_main_thread_cb;
1323 u->sink->set_state_in_io_thread = sink_set_state_in_io_thread_cb;
1324 u->sink->update_requested_latency = sink_update_requested_latency_cb;
1325 u->sink->request_rewind = sink_request_rewind_cb;
1326 pa_sink_set_set_mute_callback(u->sink, sink_set_mute_cb);
1327 u->sink->userdata = u;
1329 pa_sink_set_asyncmsgq(u->sink, master->asyncmsgq);
1331 /* Create sink input */
1336 sink_input_data.origin_sink = u->sink;
1371 u->sink->input_to_master = u->sink_input;
1374 u->memblockq = pa_memblockq_new("module-ladspa-sink memblockq", 0, MEMBLOCKQ_MAXLENGTH, 0, &ss, 1, 1, 0, &silence);
1378 * otherwise streams might attach to the sink before the sink
1381 pa_sink_put(u->sink);
1407 return pa_sink_linked_by(u->sink);
1429 if (u->sink)
1430 pa_sink_unlink(u->sink);
1437 if (u->sink)
1438 pa_sink_unref(u->sink);