diff options
author | Arun Raghavan <arun.raghavan@collabora.co.uk> | 2011-02-25 12:35:14 +0530 |
---|---|---|
committer | Arun Raghavan <arun.raghavan@collabora.co.uk> | 2011-05-02 10:17:20 +0530 |
commit | c3839c76377ea7662f29364ae66718e8ac6233af (patch) | |
tree | 567b85df3a7e10a5710456231711b8f43f954eab /src/pulse/format.c | |
parent | 802c8b6fcc9349505d00c1f6f6132dd513904b68 (diff) |
core: Add a pa_format_info structure
This will be used to represent the format of data provided by the client
for both compressed and PCM formats in a new extended API.
Diffstat (limited to 'src/pulse/format.c')
-rw-r--r-- | src/pulse/format.c | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/src/pulse/format.c b/src/pulse/format.c new file mode 100644 index 00000000..372ae1c5 --- /dev/null +++ b/src/pulse/format.c @@ -0,0 +1,71 @@ +/*** + This file is part of PulseAudio. + + Copyright 2011 Intel Corporation + Copyright 2011 Collabora Multimedia + Copyright 2011 Arun Raghavan <arun.raghavan@collabora.co.uk> + + 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. +***/ + +#ifdef HAVE_CONFIG_H +#include <config.h> +#endif + +#include <pulse/internal.h> +#include <pulse/xmalloc.h> + +#include <pulsecore/core-util.h> +#include <pulsecore/macro.h> + +#include "format.h" + +pa_format_info* pa_format_info_new(void) { + pa_format_info *f = pa_xnew(pa_format_info, 1); + + f->encoding = PA_ENCODING_INVALID; + f->plist = pa_proplist_new(); + + return f; +} + +pa_format_info* pa_format_info_copy(const pa_format_info *src) { + pa_format_info *dest; + + pa_assert(src); + + dest = pa_xnew(pa_format_info, 1); + + dest->encoding = src->encoding; + + if (src->plist) + dest->plist = pa_proplist_copy(src->plist); + else + dest->plist = NULL; + + return dest; +} + +void pa_format_info_free(pa_format_info *f) { + pa_assert(f); + + pa_proplist_free(f->plist); + pa_xfree(f); +} + +int pa_format_info_valid(pa_format_info *f) { + return (f->encoding >= 0 && f->encoding < PA_ENCODING_MAX && f->plist != NULL); +} |