[pulseaudio-discuss] [PATCH] optimize set_state_in_io_thread() callbacks
Raman Shyshniou
rommer at ibuffed.com
Tue Mar 20 13:26:20 UTC 2018
Source and sink are passed in arguments to set_state_in_io_thread()
callbacks. There is optimal to access them directly.
---
src/modules/alsa/alsa-sink.c | 6 +++---
src/modules/alsa/alsa-source.c | 6 +++---
src/modules/bluetooth/module-bluez4-device.c | 8 ++++----
src/modules/bluetooth/module-bluez5-device.c | 8 ++++----
src/modules/echo-cancel/module-echo-cancel.c | 2 +-
src/modules/module-equalizer-sink.c | 2 +-
src/modules/module-esound-sink.c | 4 ++--
src/modules/module-ladspa-sink.c | 2 +-
src/modules/module-null-sink.c | 2 +-
src/modules/module-pipe-sink.c | 4 ++--
src/modules/module-remap-sink.c | 2 +-
src/modules/module-solaris.c | 16 ++++++++--------
src/modules/module-virtual-sink.c | 2 +-
src/modules/module-virtual-surround-sink.c | 2 +-
src/modules/oss/module-oss.c | 12 ++++++------
src/modules/raop/raop-sink.c | 4 ++--
16 files changed, 41 insertions(+), 41 deletions(-)
diff --git a/src/modules/alsa/alsa-sink.c b/src/modules/alsa/alsa-sink.c
index afdf813..5f10546 100644
--- a/src/modules/alsa/alsa-sink.c
+++ b/src/modules/alsa/alsa-sink.c
@@ -1291,7 +1291,7 @@ static int sink_set_state_in_io_thread_cb(pa_sink *s, pa_sink_state_t new_state,
switch (new_state) {
case PA_SINK_SUSPENDED: {
- pa_assert(PA_SINK_IS_OPENED(u->sink->thread_info.state));
+ pa_assert(PA_SINK_IS_OPENED(s->thread_info.state));
suspend(u);
@@ -1302,7 +1302,7 @@ static int sink_set_state_in_io_thread_cb(pa_sink *s, pa_sink_state_t new_state,
case PA_SINK_RUNNING: {
int r;
- if (u->sink->thread_info.state == PA_SINK_INIT) {
+ if (s->thread_info.state == PA_SINK_INIT) {
if (build_pollfd(u) < 0)
/* FIXME: This will cause an assertion failure, because
* with the current design pa_sink_put() is not allowed
@@ -1312,7 +1312,7 @@ static int sink_set_state_in_io_thread_cb(pa_sink *s, pa_sink_state_t new_state,
return -PA_ERR_IO;
}
- if (u->sink->thread_info.state == PA_SINK_SUSPENDED) {
+ if (s->thread_info.state == PA_SINK_SUSPENDED) {
if ((r = unsuspend(u)) < 0)
return r;
}
diff --git a/src/modules/alsa/alsa-source.c b/src/modules/alsa/alsa-source.c
index 73c2a25..d6e9bf0 100644
--- a/src/modules/alsa/alsa-source.c
+++ b/src/modules/alsa/alsa-source.c
@@ -1146,7 +1146,7 @@ static int source_set_state_in_io_thread_cb(pa_source *s, pa_source_state_t new_
switch (new_state) {
case PA_SOURCE_SUSPENDED: {
- pa_assert(PA_SOURCE_IS_OPENED(u->source->thread_info.state));
+ pa_assert(PA_SOURCE_IS_OPENED(s->thread_info.state));
suspend(u);
@@ -1157,7 +1157,7 @@ static int source_set_state_in_io_thread_cb(pa_source *s, pa_source_state_t new_
case PA_SOURCE_RUNNING: {
int r;
- if (u->source->thread_info.state == PA_SOURCE_INIT) {
+ if (s->thread_info.state == PA_SOURCE_INIT) {
if (build_pollfd(u) < 0)
/* FIXME: This will cause an assertion failure, because
* with the current design pa_source_put() is not allowed
@@ -1167,7 +1167,7 @@ static int source_set_state_in_io_thread_cb(pa_source *s, pa_source_state_t new_
return -PA_ERR_IO;
}
- if (u->source->thread_info.state == PA_SOURCE_SUSPENDED) {
+ if (s->thread_info.state == PA_SOURCE_SUSPENDED) {
if ((r = unsuspend(u)) < 0)
return r;
}
diff --git a/src/modules/bluetooth/module-bluez4-device.c b/src/modules/bluetooth/module-bluez4-device.c
index 79d75c1..8759283 100644
--- a/src/modules/bluetooth/module-bluez4-device.c
+++ b/src/modules/bluetooth/module-bluez4-device.c
@@ -423,7 +423,7 @@ static int sink_set_state_in_io_thread_cb(pa_sink *s, pa_sink_state_t new_state,
case PA_SINK_SUSPENDED:
/* Ignore if transition is PA_SINK_INIT->PA_SINK_SUSPENDED */
- if (!PA_SINK_IS_OPENED(u->sink->thread_info.state))
+ if (!PA_SINK_IS_OPENED(s->thread_info.state))
break;
/* Stop the device if the source is suspended as well */
@@ -437,7 +437,7 @@ static int sink_set_state_in_io_thread_cb(pa_sink *s, pa_sink_state_t new_state,
case PA_SINK_IDLE:
case PA_SINK_RUNNING:
- if (u->sink->thread_info.state != PA_SINK_SUSPENDED)
+ if (s->thread_info.state != PA_SINK_SUSPENDED)
break;
/* Resume the device if the source was suspended as well */
@@ -497,7 +497,7 @@ static int source_set_state_in_io_thread_cb(pa_source *s, pa_source_state_t new_
case PA_SOURCE_SUSPENDED:
/* Ignore if transition is PA_SOURCE_INIT->PA_SOURCE_SUSPENDED */
- if (!PA_SOURCE_IS_OPENED(u->source->thread_info.state))
+ if (!PA_SOURCE_IS_OPENED(s->thread_info.state))
break;
/* Stop the device if the sink is suspended as well */
@@ -510,7 +510,7 @@ static int source_set_state_in_io_thread_cb(pa_source *s, pa_source_state_t new_
case PA_SOURCE_IDLE:
case PA_SOURCE_RUNNING:
- if (u->source->thread_info.state != PA_SOURCE_SUSPENDED)
+ if (s->thread_info.state != PA_SOURCE_SUSPENDED)
break;
/* Resume the device if the sink was suspended as well */
diff --git a/src/modules/bluetooth/module-bluez5-device.c b/src/modules/bluetooth/module-bluez5-device.c
index c3acc1d..dfae682 100644
--- a/src/modules/bluetooth/module-bluez5-device.c
+++ b/src/modules/bluetooth/module-bluez5-device.c
@@ -925,7 +925,7 @@ static int source_set_state_in_io_thread_cb(pa_source *s, pa_source_state_t new_
case PA_SOURCE_SUSPENDED:
/* Ignore if transition is PA_SOURCE_INIT->PA_SOURCE_SUSPENDED */
- if (!PA_SOURCE_IS_OPENED(u->source->thread_info.state))
+ if (!PA_SOURCE_IS_OPENED(s->thread_info.state))
break;
/* Stop the device if the sink is suspended as well */
@@ -939,7 +939,7 @@ static int source_set_state_in_io_thread_cb(pa_source *s, pa_source_state_t new_
case PA_SOURCE_IDLE:
case PA_SOURCE_RUNNING:
- if (u->source->thread_info.state != PA_SOURCE_SUSPENDED)
+ if (s->thread_info.state != PA_SOURCE_SUSPENDED)
break;
/* Resume the device if the sink was suspended as well */
@@ -1102,7 +1102,7 @@ static int sink_set_state_in_io_thread_cb(pa_sink *s, pa_sink_state_t new_state,
case PA_SINK_SUSPENDED:
/* Ignore if transition is PA_SINK_INIT->PA_SINK_SUSPENDED */
- if (!PA_SINK_IS_OPENED(u->sink->thread_info.state))
+ if (!PA_SINK_IS_OPENED(s->thread_info.state))
break;
/* Stop the device if the source is suspended as well */
@@ -1116,7 +1116,7 @@ static int sink_set_state_in_io_thread_cb(pa_sink *s, pa_sink_state_t new_state,
case PA_SINK_IDLE:
case PA_SINK_RUNNING:
- if (u->sink->thread_info.state != PA_SINK_SUSPENDED)
+ if (s->thread_info.state != PA_SINK_SUSPENDED)
break;
/* Resume the device if the source was suspended as well */
diff --git a/src/modules/echo-cancel/module-echo-cancel.c b/src/modules/echo-cancel/module-echo-cancel.c
index c8065d8..0f4af44 100644
--- a/src/modules/echo-cancel/module-echo-cancel.c
+++ b/src/modules/echo-cancel/module-echo-cancel.c
@@ -522,7 +522,7 @@ static int sink_set_state_in_io_thread_cb(pa_sink *s, pa_sink_state_t new_state,
/* When set to running or idle for the first time, request a rewind
* of the master sink to make sure we are heard immediately */
- if ((new_state == PA_SINK_IDLE || new_state == PA_SINK_RUNNING) && u->sink->thread_info.state == PA_SINK_INIT) {
+ if (PA_SINK_IS_OPENED(new_state) && s->thread_info.state == PA_SINK_INIT) {
pa_log_debug("Requesting rewind due to state change.");
pa_sink_input_request_rewind(u->sink_input, 0, false, true, true);
}
diff --git a/src/modules/module-equalizer-sink.c b/src/modules/module-equalizer-sink.c
index 4337599..681f44d 100644
--- a/src/modules/module-equalizer-sink.c
+++ b/src/modules/module-equalizer-sink.c
@@ -296,7 +296,7 @@ static int sink_set_state_in_io_thread_cb(pa_sink *s, pa_sink_state_t new_state,
/* When set to running or idle for the first time, request a rewind
* of the master sink to make sure we are heard immediately */
- if ((new_state == PA_SINK_IDLE || new_state == PA_SINK_RUNNING) && u->sink->thread_info.state == PA_SINK_INIT) {
+ if (PA_SINK_IS_OPENED(new_state) && s->thread_info.state == PA_SINK_INIT) {
pa_log_debug("Requesting rewind due to state change.");
pa_sink_input_request_rewind(u->sink_input, 0, false, true, true);
}
diff --git a/src/modules/module-esound-sink.c b/src/modules/module-esound-sink.c
index 3f6b811..5ff0451 100644
--- a/src/modules/module-esound-sink.c
+++ b/src/modules/module-esound-sink.c
@@ -183,7 +183,7 @@ static int sink_set_state_in_io_thread_cb(pa_sink *s, pa_sink_state_t new_state,
switch (new_state) {
case PA_SINK_SUSPENDED:
- pa_assert(PA_SINK_IS_OPENED(u->sink->thread_info.state));
+ pa_assert(PA_SINK_IS_OPENED(s->thread_info.state));
pa_smoother_pause(u->smoother, pa_rtclock_now());
break;
@@ -191,7 +191,7 @@ static int sink_set_state_in_io_thread_cb(pa_sink *s, pa_sink_state_t new_state,
case PA_SINK_IDLE:
case PA_SINK_RUNNING:
- if (u->sink->thread_info.state == PA_SINK_SUSPENDED)
+ if (s->thread_info.state == PA_SINK_SUSPENDED)
pa_smoother_resume(u->smoother, pa_rtclock_now(), true);
break;
diff --git a/src/modules/module-ladspa-sink.c b/src/modules/module-ladspa-sink.c
index d677381..c30c7b2 100644
--- a/src/modules/module-ladspa-sink.c
+++ b/src/modules/module-ladspa-sink.c
@@ -403,7 +403,7 @@ static int sink_set_state_in_io_thread_cb(pa_sink *s, pa_sink_state_t new_state,
/* When set to running or idle for the first time, request a rewind
* of the master sink to make sure we are heard immediately */
- if ((new_state == PA_SINK_IDLE || new_state == PA_SINK_RUNNING) && u->sink->thread_info.state == PA_SINK_INIT) {
+ if (PA_SINK_IS_OPENED(new_state) && s->thread_info.state == PA_SINK_INIT) {
pa_log_debug("Requesting rewind due to state change.");
pa_sink_input_request_rewind(u->sink_input, 0, false, true, true);
}
diff --git a/src/modules/module-null-sink.c b/src/modules/module-null-sink.c
index baaf064..6cbe588 100644
--- a/src/modules/module-null-sink.c
+++ b/src/modules/module-null-sink.c
@@ -109,7 +109,7 @@ static int sink_set_state_in_io_thread_cb(pa_sink *s, pa_sink_state_t new_state,
pa_assert(s);
pa_assert_se(u = s->userdata);
- if (u->sink->thread_info.state == PA_SINK_SUSPENDED || u->sink->thread_info.state == PA_SINK_INIT) {
+ if (s->thread_info.state == PA_SINK_SUSPENDED || s->thread_info.state == PA_SINK_INIT) {
if (PA_SINK_IS_OPENED(new_state))
u->timestamp = pa_rtclock_now();
}
diff --git a/src/modules/module-pipe-sink.c b/src/modules/module-pipe-sink.c
index fc01206..765e751 100644
--- a/src/modules/module-pipe-sink.c
+++ b/src/modules/module-pipe-sink.c
@@ -142,10 +142,10 @@ static int sink_set_state_in_io_thread_cb(pa_sink *s, pa_sink_state_t new_state,
pa_assert(s);
pa_assert_se(u = s->userdata);
- if (u->sink->thread_info.state == PA_SINK_SUSPENDED || u->sink->thread_info.state == PA_SINK_INIT) {
+ if (s->thread_info.state == PA_SINK_SUSPENDED || s->thread_info.state == PA_SINK_INIT) {
if (PA_SINK_IS_OPENED(new_state))
u->timestamp = pa_rtclock_now();
- } else if (u->sink->thread_info.state == PA_SINK_RUNNING || u->sink->thread_info.state == PA_SINK_IDLE) {
+ } else if (PA_SINK_IS_OPENED(s->thread_info.state)) {
if (new_state == PA_SINK_SUSPENDED) {
/* Clear potential FIFO error flag */
u->fifo_error = false;
diff --git a/src/modules/module-remap-sink.c b/src/modules/module-remap-sink.c
index f53b6b1..503fcf5 100644
--- a/src/modules/module-remap-sink.c
+++ b/src/modules/module-remap-sink.c
@@ -123,7 +123,7 @@ static int sink_set_state_in_io_thread_cb(pa_sink *s, pa_sink_state_t new_state,
/* When set to running or idle for the first time, request a rewind
* of the master sink to make sure we are heard immediately */
- if ((new_state == PA_SINK_IDLE || new_state == PA_SINK_RUNNING) && u->sink->thread_info.state == PA_SINK_INIT) {
+ if (PA_SINK_IS_OPENED(new_state) && s->thread_info.state == PA_SINK_INIT) {
pa_log_debug("Requesting rewind due to state change.");
pa_sink_input_request_rewind(u->sink_input, 0, false, true, true);
}
diff --git a/src/modules/module-solaris.c b/src/modules/module-solaris.c
index ef42b3d..240ed85 100644
--- a/src/modules/module-solaris.c
+++ b/src/modules/module-solaris.c
@@ -411,7 +411,7 @@ static int sink_set_state_in_io_thread_cb(pa_sink *s, pa_sink_state_t new_state,
case PA_SINK_SUSPENDED:
- pa_assert(PA_SINK_IS_OPENED(u->sink->thread_info.state));
+ pa_assert(PA_SINK_IS_OPENED(s->thread_info.state));
pa_smoother_pause(u->smoother, pa_rtclock_now());
@@ -424,16 +424,16 @@ static int sink_set_state_in_io_thread_cb(pa_sink *s, pa_sink_state_t new_state,
case PA_SINK_IDLE:
case PA_SINK_RUNNING:
- if (u->sink->thread_info.state == PA_SINK_SUSPENDED) {
+ if (s->thread_info.state == PA_SINK_SUSPENDED) {
pa_smoother_resume(u->smoother, pa_rtclock_now(), true);
if (!u->source || u->source_suspended) {
bool mute;
if (unsuspend(u) < 0)
return -1;
- u->sink->get_volume(u->sink);
- if (u->sink->get_mute(u->sink, &mute) >= 0)
- pa_sink_set_mute(u->sink, mute, false);
+ s->get_volume(s);
+ if (s->get_mute(s, &mute) >= 0)
+ pa_sink_set_mute(s, mute, false);
}
u->sink_suspended = false;
}
@@ -477,7 +477,7 @@ static int source_set_state_in_io_thread_cb(pa_source *s, pa_source_state_t new_
case PA_SOURCE_SUSPENDED:
- pa_assert(PA_SOURCE_IS_OPENED(u->source->thread_info.state));
+ pa_assert(PA_SOURCE_IS_OPENED(s->thread_info.state));
if (!u->sink || u->sink_suspended)
suspend(u);
@@ -488,11 +488,11 @@ static int source_set_state_in_io_thread_cb(pa_source *s, pa_source_state_t new_
case PA_SOURCE_IDLE:
case PA_SOURCE_RUNNING:
- if (u->source->thread_info.state == PA_SOURCE_SUSPENDED) {
+ if (s->thread_info.state == PA_SOURCE_SUSPENDED) {
if (!u->sink || u->sink_suspended) {
if (unsuspend(u) < 0)
return -1;
- u->source->get_volume(u->source);
+ s->get_volume(s);
}
u->source_suspended = false;
}
diff --git a/src/modules/module-virtual-sink.c b/src/modules/module-virtual-sink.c
index e134552..3a81822 100644
--- a/src/modules/module-virtual-sink.c
+++ b/src/modules/module-virtual-sink.c
@@ -135,7 +135,7 @@ static int sink_set_state_in_io_thread_cb(pa_sink *s, pa_sink_state_t new_state,
/* When set to running or idle for the first time, request a rewind
* of the master sink to make sure we are heard immediately */
- if ((new_state == PA_SINK_IDLE || new_state == PA_SINK_RUNNING) && u->sink->thread_info.state == PA_SINK_INIT) {
+ if (PA_SINK_IS_OPENED(new_state) && s->thread_info.state == PA_SINK_INIT) {
pa_log_debug("Requesting rewind due to state change.");
pa_sink_input_request_rewind(u->sink_input, 0, false, true, true);
}
diff --git a/src/modules/module-virtual-surround-sink.c b/src/modules/module-virtual-surround-sink.c
index 2c3d54b..f14f137 100644
--- a/src/modules/module-virtual-surround-sink.c
+++ b/src/modules/module-virtual-surround-sink.c
@@ -163,7 +163,7 @@ static int sink_set_state_in_io_thread_cb(pa_sink *s, pa_sink_state_t new_state,
/* When set to running or idle for the first time, request a rewind
* of the master sink to make sure we are heard immediately */
- if ((new_state == PA_SINK_IDLE || new_state == PA_SINK_RUNNING) && u->sink->thread_info.state == PA_SINK_INIT) {
+ if (PA_SINK_IS_OPENED(new_state) && s->thread_info.state == PA_SINK_INIT) {
pa_log_debug("Requesting rewind due to state change.");
pa_sink_input_request_rewind(u->sink_input, 0, false, true, true);
}
diff --git a/src/modules/oss/module-oss.c b/src/modules/oss/module-oss.c
index 42a6e3b..6a70f9a 100644
--- a/src/modules/oss/module-oss.c
+++ b/src/modules/oss/module-oss.c
@@ -682,7 +682,7 @@ static int sink_set_state_in_io_thread_cb(pa_sink *s, pa_sink_state_t new_state,
switch (new_state) {
case PA_SINK_SUSPENDED:
- pa_assert(PA_SINK_IS_OPENED(u->sink->thread_info.state));
+ pa_assert(PA_SINK_IS_OPENED(s->thread_info.state));
if (!u->source || u->source_suspended)
suspend(u);
@@ -695,12 +695,12 @@ static int sink_set_state_in_io_thread_cb(pa_sink *s, pa_sink_state_t new_state,
case PA_SINK_IDLE:
case PA_SINK_RUNNING:
- if (u->sink->thread_info.state == PA_SINK_INIT) {
+ if (s->thread_info.state == PA_SINK_INIT) {
do_trigger = true;
quick = u->source && PA_SOURCE_IS_OPENED(u->source->thread_info.state);
}
- if (u->sink->thread_info.state == PA_SINK_SUSPENDED) {
+ if (s->thread_info.state == PA_SINK_SUSPENDED) {
if (!u->source || u->source_suspended) {
if (unsuspend(u) < 0)
@@ -770,7 +770,7 @@ static int source_set_state_in_io_thread_cb(pa_source *s, pa_source_state_t new_
switch (new_state) {
case PA_SOURCE_SUSPENDED:
- pa_assert(PA_SOURCE_IS_OPENED(u->source->thread_info.state));
+ pa_assert(PA_SOURCE_IS_OPENED(s->thread_info.state));
if (!u->sink || u->sink_suspended)
suspend(u);
@@ -783,12 +783,12 @@ static int source_set_state_in_io_thread_cb(pa_source *s, pa_source_state_t new_
case PA_SOURCE_IDLE:
case PA_SOURCE_RUNNING:
- if (u->source->thread_info.state == PA_SOURCE_INIT) {
+ if (s->thread_info.state == PA_SOURCE_INIT) {
do_trigger = true;
quick = u->sink && PA_SINK_IS_OPENED(u->sink->thread_info.state);
}
- if (u->source->thread_info.state == PA_SOURCE_SUSPENDED) {
+ if (s->thread_info.state == PA_SOURCE_SUSPENDED) {
if (!u->sink || u->sink_suspended) {
if (unsuspend(u) < 0)
diff --git a/src/modules/raop/raop-sink.c b/src/modules/raop/raop-sink.c
index 818cdfe..ec6f826 100644
--- a/src/modules/raop/raop-sink.c
+++ b/src/modules/raop/raop-sink.c
@@ -236,7 +236,7 @@ static int sink_set_state_in_io_thread_cb(pa_sink *s, pa_sink_state_t new_state,
case PA_SINK_SUSPENDED:
pa_log_debug("RAOP: SUSPENDED");
- pa_assert(PA_SINK_IS_OPENED(u->sink->thread_info.state));
+ pa_assert(PA_SINK_IS_OPENED(s->thread_info.state));
/* Issue a TEARDOWN if we are still connected */
if (pa_raop_client_is_alive(u->raop)) {
@@ -249,7 +249,7 @@ static int sink_set_state_in_io_thread_cb(pa_sink *s, pa_sink_state_t new_state,
pa_log_debug("RAOP: IDLE");
/* Issue a FLUSH if we're comming from running state */
- if (u->sink->thread_info.state == PA_SINK_RUNNING) {
+ if (s->thread_info.state == PA_SINK_RUNNING) {
pa_rtpoll_set_timer_disabled(u->rtpoll);
pa_raop_client_flush(u->raop);
}
--
1.8.3.1
More information about the pulseaudio-discuss
mailing list