mirror of
https://gitlab.freedesktop.org/pulseaudio/pulseaudio.git
synced 2025-10-29 05:40:23 -04:00
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.
This commit is contained in:
parent
8d076d0990
commit
1404db3d47
3 changed files with 38 additions and 3 deletions
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue