Patch from pkgsrc by Jonathan Perkin (Joyent). --- src/modules/module-solaris.c | 12 +++++++++--- src/utils/padsp.c | 2 ++ 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/src/modules/module-solaris.c b/src/modules/module-solaris.c index c79918a..2fa0bff 100644 --- a/src/modules/module-solaris.c +++ b/src/modules/module-solaris.c @@ -412,10 +412,12 @@ static int sink_process_msg(pa_msgobject *o, int code, void *data, int64_t offse 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); - u->sink->get_mute(u->sink); + if (u->sink->get_mute(u->sink, &mute) >= 0) + pa_sink_set_mute(u->sink, mute, false); } u->sink_suspended = false; } @@ -1033,8 +1035,12 @@ int pa__init(pa_module *m) { if (sink_new_data.muted_is_set) u->sink->set_mute(u->sink); - else - u->sink->get_mute(u->sink); + else { + bool mute; + + if (u->sink->get_mute(u->sink, &mute) >= 0) + pa_sink_set_mute(u->sink, mute, false); + } pa_sink_put(u->sink); } diff --git a/src/utils/padsp.c b/src/utils/padsp.c index 5e336bb..2eff0f0 100644 --- a/src/utils/padsp.c +++ b/src/utils/padsp.c @@ -2278,6 +2278,7 @@ static int dsp_ioctl(fd_info *i, unsigned long request, void*argp, int *_errno) break; } +#ifndef __sun case SOUND_PCM_READ_RATE: debug(DEBUG_LEVEL_NORMAL, __FILE__": SOUND_PCM_READ_RATE\n"); @@ -2301,6 +2302,7 @@ static int dsp_ioctl(fd_info *i, unsigned long request, void*argp, int *_errno) *(int*) argp = pa_sample_size(&i->sample_spec)*8; pa_threaded_mainloop_unlock(i->mainloop); break; +#endif case SNDCTL_DSP_GETOPTR: { count_info *info; -- 2.6.3