[pulseaudio-discuss] [PATCH] SunOS: Catch up with newer API and blacklist SOUND_PCM_* on SunOS

Arun Raghavan arun at accosted.net
Tue Dec 15 22:02:09 PST 2015


On Fri, 2015-12-11 at 05:30 +0100, Kamil Rytarowski wrote:
> Patch from pkgsrc by Jonathan Perkin (Joyent).
> ---

The two patches should be separated, since they are unrelated.

>  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;

Is this really not supported on Solaris? Do you have a bug report or
some other reference for this (which would ideally go into the commit
message after splitting this off separately).

-- Arun


More information about the pulseaudio-discuss mailing list