[pulseaudio-discuss] [PATCH v2 1/2] direction: Add a couple of direction helper functions

David Henningsson david.henningsson at canonical.com
Wed Mar 26 21:14:01 PDT 2014


On 03/26/2014 10:52 AM, Tanu Kaskinen wrote:
> ---
>  doxygen/doxygen.conf.in |  1 +
>  src/Makefile.am         |  2 ++
>  src/map-file            |  2 ++
>  src/pulse/direction.c   | 46 ++++++++++++++++++++++++++++++++++++++++++++++
>  src/pulse/direction.h   | 37 +++++++++++++++++++++++++++++++++++++
>  src/pulse/pulseaudio.h  |  5 +++--
>  6 files changed, 91 insertions(+), 2 deletions(-)
>  create mode 100644 src/pulse/direction.c
>  create mode 100644 src/pulse/direction.h
> 
> diff --git a/doxygen/doxygen.conf.in b/doxygen/doxygen.conf.in
> index fc6850d..43380e9 100644
> --- a/doxygen/doxygen.conf.in
> +++ b/doxygen/doxygen.conf.in
> @@ -671,6 +671,7 @@ WARN_LOGFILE           =
>  INPUT                  = @srcdir@/../src/pulse/channelmap.h \
>                           @srcdir@/../src/pulse/context.h \
>                           @srcdir@/../src/pulse/def.h \
> +                         @srcdir@/../src/pulse/direction.h \
>                           @srcdir@/../src/pulse/error.h \
>                           @srcdir@/../src/pulse/ext-stream-restore.h \
>                           @srcdir@/../src/pulse/ext-device-manager.h \
> diff --git a/src/Makefile.am b/src/Makefile.am
> index 99d76ce..5c2d5bc 100644
> --- a/src/Makefile.am
> +++ b/src/Makefile.am
> @@ -746,6 +746,7 @@ pulseinclude_HEADERS = \
>  		pulse/channelmap.h \
>  		pulse/context.h \
>  		pulse/def.h \
> +		pulse/direction.h \
>  		pulse/error.h \
>  		pulse/ext-device-manager.h \
>  		pulse/ext-device-restore.h \
> @@ -791,6 +792,7 @@ libpulse_la_SOURCES = \
>  		pulse/channelmap.c pulse/channelmap.h \
>  		pulse/context.c pulse/context.h \
>  		pulse/def.h \
> +		pulse/direction.c pulse/direction.h \
>  		pulse/error.c pulse/error.h \
>  		pulse/ext-device-manager.c pulse/ext-device-manager.h \
>  		pulse/ext-device-restore.c pulse/ext-device-restore.h \
> diff --git a/src/map-file b/src/map-file
> index fbad1a4..dc36fdc 100644
> --- a/src/map-file
> +++ b/src/map-file
> @@ -146,6 +146,8 @@ pa_cvolume_set_position;
>  pa_cvolume_snprint;
>  pa_cvolume_snprint_verbose;
>  pa_cvolume_valid;
> +pa_direction_to_string;
> +pa_direction_valid;
>  pa_encoding_to_string;
>  pa_ext_device_manager_delete;
>  pa_ext_device_manager_enable_role_device_priority_routing;
> diff --git a/src/pulse/direction.c b/src/pulse/direction.c
> new file mode 100644
> index 0000000..95f5e00
> --- /dev/null
> +++ b/src/pulse/direction.c
> @@ -0,0 +1,46 @@
> +/***
> +  This file is part of PulseAudio.
> +
> +  Copyright 2014 Intel Corporation
> +
> +  PulseAudio is free software; you can redistribute it and/or modify
> +  it under the terms of the GNU Lesser General Public License as published
> +  by the Free Software Foundation; either version 2.1 of the License,
> +  or (at your option) any later version.
> +
> +  PulseAudio is distributed in the hope that it will be useful, but
> +  WITHOUT ANY WARRANTY; without even the implied warranty of
> +  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
> +  General Public License for more details.
> +
> +  You should have received a copy of the GNU Lesser General Public License
> +  along with PulseAudio; if not, write to the Free Software
> +  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
> +  USA.
> +***/
> +
> +#include "direction.h"
> +
> +#include <pulsecore/i18n.h>
> +
> +int pa_direction_valid(pa_direction_t direction) {
> +    if (direction != PA_DIRECTION_INPUT
> +            && direction != PA_DIRECTION_OUTPUT
> +            && direction != (PA_DIRECTION_INPUT | PA_DIRECTION_OUTPUT))
> +        return 0;
> +
> +    return 1;
> +}
> +
> +const char *pa_direction_to_string(pa_direction_t direction) {
> +    pa_init_i18n();

Are pa_init_i18n and _() both declared with PA_GCC_PURE (or equivalent)?
No side effects?

Both acked otherwise. I would probably not have started a separate file
just for two functions, but it does not matter much.

> +
> +    if (direction == PA_DIRECTION_INPUT)
> +        return _("input");
> +    if (direction == PA_DIRECTION_OUTPUT)
> +        return _("output");
> +    if (direction == (PA_DIRECTION_INPUT | PA_DIRECTION_OUTPUT))
> +        return _("bidirectional");
> +
> +    return _("invalid");
> +}
> diff --git a/src/pulse/direction.h b/src/pulse/direction.h
> new file mode 100644
> index 0000000..eca6a51
> --- /dev/null
> +++ b/src/pulse/direction.h
> @@ -0,0 +1,37 @@
> +#ifndef foodirectionhfoo
> +#define foodirectionhfoo
> +
> +/***
> +  This file is part of PulseAudio.
> +
> +  Copyright 2014 Intel Corporation
> +
> +  PulseAudio is free software; you can redistribute it and/or modify
> +  it under the terms of the GNU Lesser General Public License as published
> +  by the Free Software Foundation; either version 2.1 of the License,
> +  or (at your option) any later version.
> +
> +  PulseAudio is distributed in the hope that it will be useful, but
> +  WITHOUT ANY WARRANTY; without even the implied warranty of
> +  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
> +  General Public License for more details.
> +
> +  You should have received a copy of the GNU Lesser General Public License
> +  along with PulseAudio; if not, write to the Free Software
> +  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
> +  USA.
> +***/
> +
> +#include <pulse/def.h>
> +
> +/** \file
> + * Utility functions for \ref pa_direction_t. */
> +
> +/** Return non-zero if the given value is a valid direction (either input,
> + * output or bidirectional). \since 6.0 */
> +int pa_direction_valid(pa_direction_t direction) PA_GCC_CONST;
> +
> +/** Return a textual representation of the direction. \since 6.0 */
> +const char *pa_direction_to_string(pa_direction_t direction) PA_GCC_PURE;
> +
> +#endif
> diff --git a/src/pulse/pulseaudio.h b/src/pulse/pulseaudio.h
> index 21b7213..2e270dd 100644
> --- a/src/pulse/pulseaudio.h
> +++ b/src/pulse/pulseaudio.h
> @@ -23,6 +23,7 @@
>    USA.
>  ***/
>  
> +#include <pulse/direction.h>
>  #include <pulse/mainloop-api.h>
>  #include <pulse/sample.h>
>  #include <pulse/format.h>
> @@ -49,8 +50,8 @@
>  
>  /** \file
>   * Include all libpulse header files at once. The following files are
> - * included: \ref mainloop-api.h, \ref sample.h, \ref def.h, \ref
> - * context.h, \ref stream.h, \ref introspect.h, \ref subscribe.h, \ref
> + * included: \ref direction.h, \ref mainloop-api.h, \ref sample.h, \ref def.h,
> + * \ref context.h, \ref stream.h, \ref introspect.h, \ref subscribe.h, \ref
>   * scache.h, \ref version.h, \ref error.h, \ref channelmap.h, \ref
>   * operation.h,\ref volume.h, \ref xmalloc.h, \ref utf8.h, \ref
>   * thread-mainloop.h, \ref mainloop.h, \ref util.h, \ref proplist.h,
> 



-- 
David Henningsson, Canonical Ltd.
https://launchpad.net/~diwic


More information about the pulseaudio-discuss mailing list