]> code.delx.au - pulseaudio/commitdiff
format: Add some convenience API for setting properties
authorArun Raghavan <arun.raghavan@collabora.co.uk>
Wed, 13 Apr 2011 10:07:25 +0000 (15:37 +0530)
committerArun Raghavan <arun.raghavan@collabora.co.uk>
Sun, 15 May 2011 04:39:35 +0000 (10:09 +0530)
Adds functions to set sample format, rate, channels and channel map on a
format to make life easier for users of the API.

src/map-file
src/pulse/format.c
src/pulse/format.h

index a12f30d1227985e68f6289195ba2ecf3d4fbf34d..026ac10f4afa60afa02e0f00ff7ff69472720274 100644 (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;
index 1cb804ef0be149910c456054a4197486b6e9f344..a1a0981b767b233ed777e5b1831b8c3fa9a33a2a 100644 (file)
@@ -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;
index 0498e68ada8912839806399c9f505eaa2529aadc..06e1fe6277d204a2533f213daff5fb39fdd0f82d 100644 (file)
@@ -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