summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorArun Raghavan <arun.raghavan@collabora.co.uk>2011-04-13 15:37:25 +0530
committerArun Raghavan <arun.raghavan@collabora.co.uk>2011-05-15 10:09:35 +0530
commit1404db3d47c77ef3a360feed4ae8932cc8e443a0 (patch)
treec45b8378c27865ada0ef586d0cc17a03ef25f742 /src
parent8d076d09902fe618e69f3d71e42299bffe2af437 (diff)
format: Add some convenience API for setting properties
Adds functions to set sample format, rate, channels and channel map on a format to make life easier for users of the API.
Diffstat (limited to 'src')
-rw-r--r--src/map-file4
-rw-r--r--src/pulse/format.c26
-rw-r--r--src/pulse/format.h11
3 files changed, 38 insertions, 3 deletions
diff --git a/src/map-file b/src/map-file
index a12f30d1..026ac10f 100644
--- a/src/map-file
+++ b/src/map-file
@@ -166,11 +166,15 @@ pa_format_info_free;
pa_format_info_is_compatible;
pa_format_info_is_pcm;
pa_format_info_new;
+pa_format_info_set_channel_map;
+pa_format_info_set_channels;
pa_format_info_set_prop_int;
pa_format_info_set_prop_int_array;
pa_format_info_set_prop_int_range;
pa_format_info_set_prop_string;
pa_format_info_set_prop_string_array;
+pa_format_info_set_rate;
+pa_format_info_set_sample_format;
pa_format_info_snprint;
pa_format_info_valid;
pa_frame_size;
diff --git a/src/pulse/format.c b/src/pulse/format.c
index 1cb804ef..a1a0981b 100644
--- a/src/pulse/format.c
+++ b/src/pulse/format.c
@@ -155,9 +155,9 @@ pa_format_info* pa_format_info_from_sample_spec(pa_sample_spec *ss, pa_channel_m
f = pa_format_info_new();
f->encoding = PA_ENCODING_PCM;
- pa_format_info_set_prop_string(f, PA_PROP_FORMAT_SAMPLE_FORMAT, pa_sample_format_to_string(ss->format));
- pa_format_info_set_prop_int(f, PA_PROP_FORMAT_RATE, ss->rate);
- pa_format_info_set_prop_int(f, PA_PROP_FORMAT_CHANNELS, ss->channels);
+ pa_format_info_set_sample_format(f, ss->format);
+ pa_format_info_set_rate(f, ss->rate);
+ pa_format_info_set_channels(f, ss->channels);
if (map) {
pa_channel_map_snprint(cm, sizeof(cm), map);
@@ -231,6 +231,26 @@ pa_bool_t pa_format_info_to_sample_spec_fake(pa_format_info *f, pa_sample_spec *
return TRUE;
}
+void pa_format_info_set_sample_format(pa_format_info *f, pa_sample_format_t sf) {
+ pa_format_info_set_prop_string(f, PA_PROP_FORMAT_SAMPLE_FORMAT, pa_sample_format_to_string(sf));
+}
+
+void pa_format_info_set_rate(pa_format_info *f, int rate) {
+ pa_format_info_set_prop_int(f, PA_PROP_FORMAT_RATE, rate);
+}
+
+void pa_format_info_set_channels(pa_format_info *f, int channels) {
+ pa_format_info_set_prop_int(f, PA_PROP_FORMAT_CHANNELS, channels);
+}
+
+void pa_format_info_set_channel_map(pa_format_info *f, const pa_channel_map *map) {
+ char map_str[PA_CHANNEL_MAP_SNPRINT_MAX];
+
+ pa_channel_map_snprint(map_str, sizeof(map_str), map);
+
+ pa_format_info_set_prop_string(f, PA_PROP_FORMAT_CHANNEL_MAP, map_str);
+}
+
pa_bool_t pa_format_info_get_prop_int(pa_format_info *f, const char *key, int *v) {
const char *str;
json_object *o;
diff --git a/src/pulse/format.h b/src/pulse/format.h
index 0498e68a..06e1fe62 100644
--- a/src/pulse/format.h
+++ b/src/pulse/format.h
@@ -26,6 +26,8 @@
#include <pulse/cdecl.h>
#include <pulse/proplist.h>
+#include <pulse/sample.h>
+#include <pulse/channelmap.h>
PA_C_DECL_BEGIN
@@ -113,6 +115,15 @@ void pa_format_info_set_prop_string(pa_format_info *f, const char *key, const ch
/** Sets a property with a list of string values on the given format info */
void pa_format_info_set_prop_string_array(pa_format_info *f, const char *key, const char **values, int n_values);
+/** Convenience method to set the sample format as a property on the given format */
+void pa_format_info_set_sample_format(pa_format_info *f, pa_sample_format_t sf);
+/** Convenience method to set the sampling rate as a property on the given format */
+void pa_format_info_set_rate(pa_format_info *f, int rate);
+/** Convenience method to set the number of channels as a property on the given format */
+void pa_format_info_set_channels(pa_format_info *f, int channels);
+/** Convenience method to set the channel map as a property on the given format */
+void pa_format_info_set_channel_map(pa_format_info *f, const pa_channel_map *map);
+
PA_C_DECL_END
#endif