pulse: add SPA_EXPORT

This commit is contained in:
Wim Taymans 2019-02-06 13:23:43 +01:00
parent 6cd1104d0c
commit 5f9200d9ee
28 changed files with 397 additions and 1 deletions

View file

@ -159,6 +159,7 @@ const char *const pretty_table[PA_CHANNEL_POSITION_MAX] = {
[PA_CHANNEL_POSITION_TOP_REAR_RIGHT] = N_("Top Rear Right")
};
SPA_EXPORT
pa_channel_map* pa_channel_map_init(pa_channel_map *m) {
unsigned c;
pa_assert(m);
@ -171,6 +172,7 @@ pa_channel_map* pa_channel_map_init(pa_channel_map *m) {
return m;
}
SPA_EXPORT
pa_channel_map* pa_channel_map_init_mono(pa_channel_map *m) {
pa_assert(m);
@ -181,6 +183,7 @@ pa_channel_map* pa_channel_map_init_mono(pa_channel_map *m) {
return m;
}
SPA_EXPORT
pa_channel_map* pa_channel_map_init_stereo(pa_channel_map *m) {
pa_assert(m);
@ -192,6 +195,7 @@ pa_channel_map* pa_channel_map_init_stereo(pa_channel_map *m) {
return m;
}
SPA_EXPORT
pa_channel_map* pa_channel_map_init_auto(pa_channel_map *m, unsigned channels, pa_channel_map_def_t def) {
pa_assert(m);
pa_assert(pa_channels_valid(channels));
@ -391,6 +395,7 @@ pa_channel_map* pa_channel_map_init_auto(pa_channel_map *m, unsigned channels, p
}
}
SPA_EXPORT
pa_channel_map* pa_channel_map_init_extend(pa_channel_map *m, unsigned channels, pa_channel_map_def_t def) {
unsigned c;
@ -420,6 +425,7 @@ pa_channel_map* pa_channel_map_init_extend(pa_channel_map *m, unsigned channels,
return NULL;
}
SPA_EXPORT
const char* pa_channel_position_to_string(pa_channel_position_t pos) {
if (pos < 0 || pos >= PA_CHANNEL_POSITION_MAX)
@ -428,6 +434,7 @@ const char* pa_channel_position_to_string(pa_channel_position_t pos) {
return table[pos];
}
SPA_EXPORT
const char* pa_channel_position_to_pretty_string(pa_channel_position_t pos) {
if (pos < 0 || pos >= PA_CHANNEL_POSITION_MAX)
@ -438,6 +445,7 @@ const char* pa_channel_position_to_pretty_string(pa_channel_position_t pos) {
return _(pretty_table[pos]);
}
SPA_EXPORT
int pa_channel_map_equal(const pa_channel_map *a, const pa_channel_map *b) {
unsigned c;
@ -461,6 +469,7 @@ int pa_channel_map_equal(const pa_channel_map *a, const pa_channel_map *b) {
return 1;
}
SPA_EXPORT
char* pa_channel_map_snprint(char *s, size_t l, const pa_channel_map *map) {
unsigned channel;
bool first = true;
@ -491,6 +500,7 @@ char* pa_channel_map_snprint(char *s, size_t l, const pa_channel_map *map) {
return s;
}
SPA_EXPORT
pa_channel_position_t pa_channel_position_from_string(const char *p) {
pa_channel_position_t i;
pa_assert(p);
@ -512,6 +522,7 @@ pa_channel_position_t pa_channel_position_from_string(const char *p) {
return PA_CHANNEL_POSITION_INVALID;
}
SPA_EXPORT
pa_channel_map *pa_channel_map_parse(pa_channel_map *rmap, const char *s) {
pa_channel_map map;
char **tokens;
@ -611,6 +622,7 @@ finish:
return rmap;
}
SPA_EXPORT
int pa_channel_map_valid(const pa_channel_map *map) {
unsigned c;
@ -626,6 +638,7 @@ int pa_channel_map_valid(const pa_channel_map *map) {
return 1;
}
SPA_EXPORT
int pa_channel_map_compatible(const pa_channel_map *map, const pa_sample_spec *ss) {
pa_assert(map);
pa_assert(ss);
@ -636,6 +649,7 @@ int pa_channel_map_compatible(const pa_channel_map *map, const pa_sample_spec *s
return map->channels == ss->channels;
}
SPA_EXPORT
int pa_channel_map_superset(const pa_channel_map *a, const pa_channel_map *b) {
pa_channel_position_mask_t am, bm;
@ -655,6 +669,7 @@ int pa_channel_map_superset(const pa_channel_map *a, const pa_channel_map *b) {
return (bm & am) == bm;
}
SPA_EXPORT
int pa_channel_map_can_balance(const pa_channel_map *map) {
pa_channel_position_mask_t m;
@ -668,6 +683,7 @@ int pa_channel_map_can_balance(const pa_channel_map *map) {
(PA_CHANNEL_POSITION_MASK_RIGHT & m);
}
SPA_EXPORT
int pa_channel_map_can_fade(const pa_channel_map *map) {
pa_channel_position_mask_t m;
@ -681,6 +697,7 @@ int pa_channel_map_can_fade(const pa_channel_map *map) {
(PA_CHANNEL_POSITION_MASK_REAR & m);
}
SPA_EXPORT
int pa_channel_map_can_lfe_balance(const pa_channel_map *map) {
pa_channel_position_mask_t m;
@ -694,6 +711,7 @@ int pa_channel_map_can_lfe_balance(const pa_channel_map *map) {
(PA_CHANNEL_POSITION_MASK_HFE & m);
}
SPA_EXPORT
const char* pa_channel_map_to_name(const pa_channel_map *map) {
pa_bitset_t in_map[PA_BITSET_ELEMENTS(PA_CHANNEL_POSITION_MAX)];
unsigned c;
@ -748,6 +766,7 @@ const char* pa_channel_map_to_name(const pa_channel_map *map) {
return NULL;
}
SPA_EXPORT
const char* pa_channel_map_to_pretty_name(const pa_channel_map *map) {
pa_bitset_t in_map[PA_BITSET_ELEMENTS(PA_CHANNEL_POSITION_MAX)];
unsigned c;
@ -804,6 +823,7 @@ const char* pa_channel_map_to_pretty_name(const pa_channel_map *map) {
return NULL;
}
SPA_EXPORT
int pa_channel_map_has_position(const pa_channel_map *map, pa_channel_position_t p) {
unsigned c;
@ -817,6 +837,7 @@ int pa_channel_map_has_position(const pa_channel_map *map, pa_channel_position_t
return 0;
}
SPA_EXPORT
pa_channel_position_mask_t pa_channel_map_mask(const pa_channel_map *map) {
unsigned c;
pa_channel_position_mask_t r = 0;

View file

@ -98,6 +98,7 @@ static void context_fail(pa_context *c, int error) {
pa_context_set_state(c, PA_CONTEXT_FAILED);
}
SPA_EXPORT
pa_context *pa_context_new(pa_mainloop_api *mainloop, const char *name)
{
return pa_context_new_with_proplist(mainloop, name, NULL);
@ -419,6 +420,7 @@ static const struct pw_remote_events remote_events = {
.state_changed = remote_state_changed,
};
SPA_EXPORT
pa_context *pa_context_new_with_proplist(pa_mainloop_api *mainloop, const char *name, pa_proplist *p)
{
struct pw_core *core;
@ -483,6 +485,7 @@ static void context_free(pa_context *c)
pw_core_destroy(c->core);
}
SPA_EXPORT
void pa_context_unref(pa_context *c)
{
pa_assert(c);
@ -492,6 +495,7 @@ void pa_context_unref(pa_context *c)
context_free(c);
}
SPA_EXPORT
pa_context* pa_context_ref(pa_context *c)
{
pa_assert(c);
@ -500,6 +504,7 @@ pa_context* pa_context_ref(pa_context *c)
return c;
}
SPA_EXPORT
void pa_context_set_state_callback(pa_context *c, pa_context_notify_cb_t cb, void *userdata)
{
pa_assert(c);
@ -512,6 +517,7 @@ void pa_context_set_state_callback(pa_context *c, pa_context_notify_cb_t cb, voi
c->state_userdata = userdata;
}
SPA_EXPORT
void pa_context_set_event_callback(pa_context *c, pa_context_event_cb_t cb, void *userdata)
{
pa_assert(c);
@ -524,6 +530,7 @@ void pa_context_set_event_callback(pa_context *c, pa_context_event_cb_t cb, void
c->event_userdata = userdata;
}
SPA_EXPORT
int pa_context_errno(pa_context *c)
{
if (!c)
@ -534,6 +541,7 @@ int pa_context_errno(pa_context *c)
return c->error;
}
SPA_EXPORT
int pa_context_is_pending(pa_context *c)
{
pa_assert(c);
@ -544,6 +552,7 @@ int pa_context_is_pending(pa_context *c)
return !spa_list_is_empty(&c->operations);
}
SPA_EXPORT
pa_context_state_t pa_context_get_state(pa_context *c)
{
pa_assert(c);
@ -551,6 +560,7 @@ pa_context_state_t pa_context_get_state(pa_context *c)
return c->state;
}
SPA_EXPORT
int pa_context_connect(pa_context *c, const char *server, pa_context_flags_t flags, const pa_spawn_api *api)
{
int res;
@ -573,6 +583,7 @@ int pa_context_connect(pa_context *c, const char *server, pa_context_flags_t fla
return res;
}
SPA_EXPORT
void pa_context_disconnect(pa_context *c)
{
pa_assert(c);
@ -598,6 +609,7 @@ static void on_notify(pa_operation *o, void *userdata)
d->cb(c, d->userdata);
}
SPA_EXPORT
pa_operation* pa_context_drain(pa_context *c, pa_context_notify_cb_t cb, void *userdata)
{
pa_operation *o;
@ -627,6 +639,7 @@ static void on_success(pa_operation *o, void *userdata)
d->cb(c, d->ret, d->userdata);
}
SPA_EXPORT
pa_operation* pa_context_exit_daemon(pa_context *c, pa_context_success_cb_t cb, void *userdata)
{
pa_operation *o;
@ -641,18 +654,21 @@ pa_operation* pa_context_exit_daemon(pa_context *c, pa_context_success_cb_t cb,
return o;
}
SPA_EXPORT
pa_operation* pa_context_set_default_sink(pa_context *c, const char *name, pa_context_success_cb_t cb, void *userdata)
{
pw_log_warn("Not Implemented");
return NULL;
}
SPA_EXPORT
pa_operation* pa_context_set_default_source(pa_context *c, const char *name, pa_context_success_cb_t cb, void *userdata)
{
pw_log_warn("Not Implemented");
return NULL;
}
SPA_EXPORT
int pa_context_is_local(pa_context *c)
{
pa_assert(c);
@ -663,6 +679,7 @@ int pa_context_is_local(pa_context *c)
return 1;
}
SPA_EXPORT
pa_operation* pa_context_set_name(pa_context *c, const char *name, pa_context_success_cb_t cb, void *userdata)
{
struct spa_dict dict;
@ -689,6 +706,7 @@ pa_operation* pa_context_set_name(pa_context *c, const char *name, pa_context_su
return o;
}
SPA_EXPORT
const char* pa_context_get_server(pa_context *c)
{
const struct pw_core_info *info;
@ -702,11 +720,13 @@ const char* pa_context_get_server(pa_context *c)
return info->name;
}
SPA_EXPORT
uint32_t pa_context_get_protocol_version(pa_context *c)
{
return PA_PROTOCOL_VERSION;
}
SPA_EXPORT
uint32_t pa_context_get_server_protocol_version(pa_context *c)
{
pa_assert(c);
@ -717,6 +737,7 @@ uint32_t pa_context_get_server_protocol_version(pa_context *c)
return PA_PROTOCOL_VERSION;
}
SPA_EXPORT
pa_operation *pa_context_proplist_update(pa_context *c, pa_update_mode_t mode, pa_proplist *p, pa_context_success_cb_t cb, void *userdata)
{
pa_operation *o;
@ -739,6 +760,7 @@ pa_operation *pa_context_proplist_update(pa_context *c, pa_update_mode_t mode, p
return o;
}
SPA_EXPORT
pa_operation *pa_context_proplist_remove(pa_context *c, const char *const keys[], pa_context_success_cb_t cb, void *userdata)
{
pa_operation *o;
@ -760,11 +782,13 @@ pa_operation *pa_context_proplist_remove(pa_context *c, const char *const keys[]
return o;
}
SPA_EXPORT
uint32_t pa_context_get_index(pa_context *c)
{
return c->client_index;
}
SPA_EXPORT
pa_time_event* pa_context_rttime_new(pa_context *c, pa_usec_t usec, pa_time_event_cb_t cb, void *userdata)
{
struct timeval tv;
@ -781,6 +805,7 @@ pa_time_event* pa_context_rttime_new(pa_context *c, pa_usec_t usec, pa_time_even
return c->mainloop->time_new(c->mainloop, &tv, cb, userdata);
}
SPA_EXPORT
void pa_context_rttime_restart(pa_context *c, pa_time_event *e, pa_usec_t usec)
{
struct timeval tv;
@ -797,6 +822,7 @@ void pa_context_rttime_restart(pa_context *c, pa_time_event *e, pa_usec_t usec)
}
}
SPA_EXPORT
size_t pa_context_get_tile_size(pa_context *c, const pa_sample_spec *ss)
{
size_t fs, mbs;
@ -811,6 +837,7 @@ size_t pa_context_get_tile_size(pa_context *c, const pa_sample_spec *ss)
return PA_MAX(mbs, fs);
}
SPA_EXPORT
int pa_context_load_cookie_from_file(pa_context *c, const char *cookie_file_path)
{
return 0;

View file

@ -26,6 +26,7 @@
#include "internal.h"
SPA_EXPORT
int pa_format_info_get_sample_format(const pa_format_info *f, pa_sample_format_t *sf) {
int r;
char *sf_str;
@ -51,6 +52,7 @@ int pa_format_info_get_sample_format(const pa_format_info *f, pa_sample_format_t
return 0;
}
SPA_EXPORT
int pa_format_info_get_rate(const pa_format_info *f, uint32_t *rate) {
int r;
int rate_local;
@ -72,6 +74,7 @@ int pa_format_info_get_rate(const pa_format_info *f, uint32_t *rate) {
return 0;
}
SPA_EXPORT
int pa_format_info_get_channels(const pa_format_info *f, uint8_t *channels) {
int r;
int channels_local;
@ -93,6 +96,7 @@ int pa_format_info_get_channels(const pa_format_info *f, uint8_t *channels) {
return 0;
}
SPA_EXPORT
int pa_format_info_get_channel_map(const pa_format_info *f, pa_channel_map *map) {
int r;
char *map_str;
@ -115,6 +119,7 @@ int pa_format_info_get_channel_map(const pa_format_info *f, pa_channel_map *map)
return 0;
}
SPA_EXPORT
pa_format_info *pa_format_info_from_sample_spec2(const pa_sample_spec *ss, const pa_channel_map *map, bool set_format,
bool set_rate, bool set_channels) {
pa_format_info *format = NULL;
@ -152,6 +157,7 @@ fail:
return NULL;
}
SPA_EXPORT
int pa_format_info_to_sample_spec2(const pa_format_info *f, pa_sample_spec *ss, pa_channel_map *map,
const pa_sample_spec *fallback_ss, const pa_channel_map *fallback_map) {
int r, r2;
@ -216,6 +222,7 @@ int pa_format_info_to_sample_spec2(const pa_format_info *f, pa_sample_spec *ss,
return 0;
}
SPA_EXPORT
int pa_format_info_to_sample_spec_fake(const pa_format_info *f, pa_sample_spec *ss, pa_channel_map *map) {
int rate;

View file

@ -19,11 +19,13 @@
#include <errno.h>
#include <spa/utils/defs.h>
#include <pulse/direction.h>
#define pa_init_i18n()
#define _(String) (String)
SPA_EXPORT
int pa_direction_valid(pa_direction_t direction)
{
if (direction != PA_DIRECTION_INPUT
@ -33,6 +35,7 @@ int pa_direction_valid(pa_direction_t direction)
return 1;
}
SPA_EXPORT
const char *pa_direction_to_string(pa_direction_t direction) {
pa_init_i18n();

View file

@ -29,6 +29,7 @@
#define _(String) (String)
#define pa_init_i18n()
SPA_EXPORT
const char*pa_strerror(int error)
{
static const char* const errortab[PA_ERR_MAX] = {

View file

@ -26,6 +26,7 @@
#include "internal.h"
SPA_EXPORT
pa_operation *pa_ext_device_manager_test(
pa_context *c,
pa_ext_device_manager_test_cb_t cb,
@ -35,6 +36,7 @@ pa_operation *pa_ext_device_manager_test(
return NULL;
}
SPA_EXPORT
pa_operation *pa_ext_device_manager_read(
pa_context *c,
pa_ext_device_manager_read_cb_t cb,
@ -44,6 +46,7 @@ pa_operation *pa_ext_device_manager_read(
return NULL;
}
SPA_EXPORT
pa_operation *pa_ext_device_manager_set_device_description(
pa_context *c,
const char* device,
@ -55,6 +58,7 @@ pa_operation *pa_ext_device_manager_set_device_description(
return NULL;
}
SPA_EXPORT
pa_operation *pa_ext_device_manager_delete(
pa_context *c,
const char *const s[],
@ -65,6 +69,7 @@ pa_operation *pa_ext_device_manager_delete(
return NULL;
}
SPA_EXPORT
pa_operation *pa_ext_device_manager_enable_role_device_priority_routing(
pa_context *c,
int enable,
@ -75,6 +80,7 @@ pa_operation *pa_ext_device_manager_enable_role_device_priority_routing(
return NULL;
}
SPA_EXPORT
pa_operation *pa_ext_device_manager_reorder_devices_for_role(
pa_context *c,
const char* role,
@ -86,6 +92,7 @@ pa_operation *pa_ext_device_manager_reorder_devices_for_role(
return NULL;
}
SPA_EXPORT
pa_operation *pa_ext_device_manager_subscribe(
pa_context *c,
int enable,
@ -96,6 +103,7 @@ pa_operation *pa_ext_device_manager_subscribe(
return NULL;
}
SPA_EXPORT
void pa_ext_device_manager_set_subscribe_cb(
pa_context *c,
pa_ext_device_manager_subscribe_cb_t cb,

View file

@ -41,6 +41,7 @@ static void restore_test(pa_operation *o, void *userdata)
pa_operation_done(o);
}
SPA_EXPORT
pa_operation *pa_ext_device_restore_test(
pa_context *c,
pa_ext_device_restore_test_cb_t cb,
@ -72,6 +73,7 @@ static void on_success(pa_operation *o, void *userdata)
pa_operation_done(o);
}
SPA_EXPORT
pa_operation *pa_ext_device_restore_subscribe(
pa_context *c,
int enable,
@ -96,6 +98,7 @@ pa_operation *pa_ext_device_restore_subscribe(
return o;
}
SPA_EXPORT
void pa_ext_device_restore_set_subscribe_cb(
pa_context *c,
pa_ext_device_restore_subscribe_cb_t cb,
@ -112,6 +115,7 @@ static void read_formats(pa_operation *o, void *userdata)
pa_operation_done(o);
}
SPA_EXPORT
pa_operation *pa_ext_device_restore_read_formats_all(
pa_context *c,
pa_ext_device_restore_read_device_formats_cb_t cb,
@ -135,6 +139,7 @@ pa_operation *pa_ext_device_restore_read_formats_all(
return o;
}
SPA_EXPORT
pa_operation *pa_ext_device_restore_read_formats(
pa_context *c,
pa_device_type_t type,
@ -160,6 +165,7 @@ pa_operation *pa_ext_device_restore_read_formats(
return o;
}
SPA_EXPORT
pa_operation *pa_ext_device_restore_save_formats(
pa_context *c,
pa_device_type_t type,

View file

@ -43,6 +43,7 @@ static void restore_test(pa_operation *o, void *userdata)
pa_operation_done(o);
}
SPA_EXPORT
pa_operation *pa_ext_stream_restore_test(
pa_context *c,
pa_ext_stream_restore_test_cb_t cb,
@ -76,6 +77,7 @@ static void restore_read(pa_operation *o, void *userdata)
pa_operation_done(o);
}
SPA_EXPORT
pa_operation *pa_ext_stream_restore_read(
pa_context *c,
pa_ext_stream_restore_read_cb_t cb,
@ -107,6 +109,7 @@ static void on_success(pa_operation *o, void *userdata)
pa_operation_done(o);
}
SPA_EXPORT
pa_operation *pa_ext_stream_restore_write(
pa_context *c,
pa_update_mode_t mode,
@ -135,6 +138,7 @@ pa_operation *pa_ext_stream_restore_write(
}
/** Delete entries from the stream database. \since 0.9.12 */
SPA_EXPORT
pa_operation *pa_ext_stream_restore_delete(
pa_context *c,
const char *const s[],
@ -160,6 +164,7 @@ pa_operation *pa_ext_stream_restore_delete(
}
/** Subscribe to changes in the stream database. \since 0.9.12 */
SPA_EXPORT
pa_operation *pa_ext_stream_restore_subscribe(
pa_context *c,
int enable,
@ -186,6 +191,7 @@ pa_operation *pa_ext_stream_restore_subscribe(
/** Set the subscription callback that is called when
* pa_ext_stream_restore_subscribe() was called. \since 0.9.12 */
SPA_EXPORT
void pa_ext_stream_restore_set_subscribe_cb(
pa_context *c,
pa_ext_stream_restore_subscribe_cb_t cb,

View file

@ -46,6 +46,7 @@ static const char* const _encoding_str_table[]= {
[PA_ENCODING_ANY] = "any",
};
SPA_EXPORT
const char *pa_encoding_to_string(pa_encoding_t e) {
if (e < 0 || e >= PA_ENCODING_MAX)
return NULL;
@ -53,6 +54,7 @@ const char *pa_encoding_to_string(pa_encoding_t e) {
return _encoding_str_table[e];
}
SPA_EXPORT
pa_encoding_t pa_encoding_from_string(const char *encoding) {
pa_encoding_t e;
@ -63,6 +65,7 @@ pa_encoding_t pa_encoding_from_string(const char *encoding) {
return PA_ENCODING_INVALID;
}
SPA_EXPORT
pa_format_info* pa_format_info_new(void) {
pa_format_info *f = pa_xnew(pa_format_info, 1);
@ -72,6 +75,7 @@ pa_format_info* pa_format_info_new(void) {
return f;
}
SPA_EXPORT
pa_format_info* pa_format_info_copy(const pa_format_info *src) {
pa_format_info *dest;
@ -89,6 +93,7 @@ pa_format_info* pa_format_info_copy(const pa_format_info *src) {
return dest;
}
SPA_EXPORT
void pa_format_info_free(pa_format_info *f) {
pa_assert(f);
@ -96,14 +101,17 @@ void pa_format_info_free(pa_format_info *f) {
pa_xfree(f);
}
SPA_EXPORT
int pa_format_info_valid(const pa_format_info *f) {
return (f->encoding >= 0 && f->encoding < PA_ENCODING_MAX && f->plist != NULL);
}
SPA_EXPORT
int pa_format_info_is_pcm(const pa_format_info *f) {
return f->encoding == PA_ENCODING_PCM;
}
SPA_EXPORT
char *pa_format_info_snprint(char *s, size_t l, const pa_format_info *f) {
char *tmp;
@ -127,6 +135,7 @@ char *pa_format_info_snprint(char *s, size_t l, const pa_format_info *f) {
return s;
}
SPA_EXPORT
pa_format_info* pa_format_info_from_string(const char *str) {
pa_format_info *f = pa_format_info_new();
char *encoding = NULL, *properties = NULL;
@ -165,6 +174,7 @@ error:
goto out;
}
SPA_EXPORT
int pa_format_info_is_compatible(const pa_format_info *first, const pa_format_info *second) {
const char *key;
void *state = NULL;
@ -188,6 +198,7 @@ int pa_format_info_is_compatible(const pa_format_info *first, const pa_format_in
return true;
}
SPA_EXPORT
pa_format_info* pa_format_info_from_sample_spec(const pa_sample_spec *ss, const pa_channel_map *map) {
char cm[PA_CHANNEL_MAP_SNPRINT_MAX];
pa_format_info *f;
@ -211,6 +222,7 @@ pa_format_info* pa_format_info_from_sample_spec(const pa_sample_spec *ss, const
}
/* For PCM streams */
SPA_EXPORT
int pa_format_info_to_sample_spec(const pa_format_info *f, pa_sample_spec *ss, pa_channel_map *map) {
pa_assert(f);
pa_assert(ss);
@ -230,6 +242,7 @@ int pa_format_info_to_sample_spec(const pa_format_info *f, pa_sample_spec *ss, p
return 0;
}
SPA_EXPORT
pa_prop_type_t pa_format_info_get_prop_type(const pa_format_info *f, const char *key) {
const char *str;
pa_json_object *o;
@ -300,6 +313,7 @@ pa_prop_type_t pa_format_info_get_prop_type(const pa_format_info *f, const char
return type;
}
SPA_EXPORT
int pa_format_info_get_prop_int(const pa_format_info *f, const char *key, int *v) {
const char *str;
pa_json_object *o;
@ -330,6 +344,7 @@ int pa_format_info_get_prop_int(const pa_format_info *f, const char *key, int *v
return 0;
}
SPA_EXPORT
int pa_format_info_get_prop_int_range(const pa_format_info *f, const char *key, int *min, int *max) {
const char *str;
pa_json_object *o;
@ -376,6 +391,7 @@ out:
return ret;
}
SPA_EXPORT
int pa_format_info_get_prop_int_array(const pa_format_info *f, const char *key, int **values, int *n_values) {
const char *str;
pa_json_object *o;
@ -423,6 +439,7 @@ out:
return ret;
}
SPA_EXPORT
int pa_format_info_get_prop_string(const pa_format_info *f, const char *key, char **v) {
const char *str = NULL;
pa_json_object *o;
@ -453,6 +470,7 @@ int pa_format_info_get_prop_string(const pa_format_info *f, const char *key, cha
return 0;
}
SPA_EXPORT
int pa_format_info_get_prop_string_array(const pa_format_info *f, const char *key, char ***values, int *n_values) {
const char *str;
pa_json_object *o;
@ -500,6 +518,7 @@ out:
return ret;
}
SPA_EXPORT
void pa_format_info_free_string_array(char **values, int n_values) {
int i;
@ -509,18 +528,22 @@ void pa_format_info_free_string_array(char **values, int n_values) {
pa_xfree(values);
}
SPA_EXPORT
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));
}
SPA_EXPORT
void pa_format_info_set_rate(pa_format_info *f, int rate) {
pa_format_info_set_prop_int(f, PA_PROP_FORMAT_RATE, rate);
}
SPA_EXPORT
void pa_format_info_set_channels(pa_format_info *f, int channels) {
pa_format_info_set_prop_int(f, PA_PROP_FORMAT_CHANNELS, channels);
}
SPA_EXPORT
void pa_format_info_set_channel_map(pa_format_info *f, const pa_channel_map *map) {
char map_str[PA_CHANNEL_MAP_SNPRINT_MAX];
@ -529,6 +552,7 @@ void pa_format_info_set_channel_map(pa_format_info *f, const pa_channel_map *map
pa_format_info_set_prop_string(f, PA_PROP_FORMAT_CHANNEL_MAP, map_str);
}
SPA_EXPORT
void pa_format_info_set_prop_int(pa_format_info *f, const char *key, int value) {
pa_assert(f);
pa_assert(key);
@ -536,6 +560,7 @@ void pa_format_info_set_prop_int(pa_format_info *f, const char *key, int value)
pa_proplist_setf(f->plist, key, "%d", value);
}
SPA_EXPORT
void pa_format_info_set_prop_int_array(pa_format_info *f, const char *key, const int *values, int n_values) {
pa_strbuf *buf;
char *str;
@ -559,6 +584,7 @@ void pa_format_info_set_prop_int_array(pa_format_info *f, const char *key, const
pa_xfree (str);
}
SPA_EXPORT
void pa_format_info_set_prop_int_range(pa_format_info *f, const char *key, int min, int max) {
pa_assert(f);
pa_assert(key);
@ -567,6 +593,7 @@ void pa_format_info_set_prop_int_range(pa_format_info *f, const char *key, int m
min, max);
}
SPA_EXPORT
void pa_format_info_set_prop_string(pa_format_info *f, const char *key, const char *value) {
pa_assert(f);
pa_assert(key);
@ -574,6 +601,7 @@ void pa_format_info_set_prop_string(pa_format_info *f, const char *key, const ch
pa_proplist_setf(f->plist, key, "\"%s\"", value);
}
SPA_EXPORT
void pa_format_info_set_prop_string_array(pa_format_info *f, const char *key, const char **values, int n_values) {
pa_strbuf *buf;
char *str;

View file

@ -379,6 +379,7 @@ static void sink_info(pa_operation *o, void *userdata)
pa_operation_done(o);
}
SPA_EXPORT
pa_operation* pa_context_get_sink_info_by_name(pa_context *c, const char *name, pa_sink_info_cb_t cb, void *userdata)
{
pa_operation *o;
@ -407,6 +408,7 @@ pa_operation* pa_context_get_sink_info_by_name(pa_context *c, const char *name,
return o;
}
SPA_EXPORT
pa_operation* pa_context_get_sink_info_by_index(pa_context *c, uint32_t idx, pa_sink_info_cb_t cb, void *userdata)
{
pa_operation *o;
@ -453,6 +455,7 @@ static void sink_info_list(pa_operation *o, void *userdata)
pa_operation_done(o);
}
SPA_EXPORT
pa_operation* pa_context_get_sink_info_list(pa_context *c, pa_sink_info_cb_t cb, void *userdata)
{
pa_operation *o;
@ -507,6 +510,7 @@ static void set_node_mute(pa_context *c, struct global *g, bool mute)
}
SPA_EXPORT
pa_operation* pa_context_set_sink_volume_by_index(pa_context *c, uint32_t idx, const pa_cvolume *volume, pa_context_success_cb_t cb, void *userdata)
{
pa_operation *o;
@ -537,6 +541,7 @@ pa_operation* pa_context_set_sink_volume_by_index(pa_context *c, uint32_t idx, c
return o;
}
SPA_EXPORT
pa_operation* pa_context_set_sink_volume_by_name(pa_context *c, const char *name, const pa_cvolume *volume, pa_context_success_cb_t cb, void *userdata)
{
pa_operation *o;
@ -565,6 +570,7 @@ pa_operation* pa_context_set_sink_volume_by_name(pa_context *c, const char *name
return o;
}
SPA_EXPORT
pa_operation* pa_context_set_sink_mute_by_index(pa_context *c, uint32_t idx, int mute, pa_context_success_cb_t cb, void *userdata)
{
pa_operation *o;
@ -594,6 +600,7 @@ pa_operation* pa_context_set_sink_mute_by_index(pa_context *c, uint32_t idx, int
return o;
}
SPA_EXPORT
pa_operation* pa_context_set_sink_mute_by_name(pa_context *c, const char *name, int mute, pa_context_success_cb_t cb, void *userdata)
{
pa_operation *o;
@ -621,24 +628,28 @@ pa_operation* pa_context_set_sink_mute_by_name(pa_context *c, const char *name,
return o;
}
SPA_EXPORT
pa_operation* pa_context_suspend_sink_by_name(pa_context *c, const char *sink_name, int suspend, pa_context_success_cb_t cb, void* userdata)
{
pw_log_warn("Not Implemented");
return NULL;
}
SPA_EXPORT
pa_operation* pa_context_suspend_sink_by_index(pa_context *c, uint32_t idx, int suspend, pa_context_success_cb_t cb, void* userdata)
{
pw_log_warn("Not Implemented");
return NULL;
}
SPA_EXPORT
pa_operation* pa_context_set_sink_port_by_index(pa_context *c, uint32_t idx, const char*port, pa_context_success_cb_t cb, void *userdata)
{
pw_log_warn("Not Implemented");
return NULL;
}
SPA_EXPORT
pa_operation* pa_context_set_sink_port_by_name(pa_context *c, const char*name, const char*port, pa_context_success_cb_t cb, void *userdata)
{
pw_log_warn("Not Implemented");
@ -731,6 +742,7 @@ static void source_info(pa_operation *o, void *userdata)
pa_operation_done(o);
}
SPA_EXPORT
pa_operation* pa_context_get_source_info_by_name(pa_context *c, const char *name, pa_source_info_cb_t cb, void *userdata)
{
pa_operation *o;
@ -759,6 +771,7 @@ pa_operation* pa_context_get_source_info_by_name(pa_context *c, const char *name
return o;
}
SPA_EXPORT
pa_operation* pa_context_get_source_info_by_index(pa_context *c, uint32_t idx, pa_source_info_cb_t cb, void *userdata)
{
pa_operation *o;
@ -804,6 +817,7 @@ static void source_info_list(pa_operation *o, void *userdata)
pa_operation_done(o);
}
SPA_EXPORT
pa_operation* pa_context_get_source_info_list(pa_context *c, pa_source_info_cb_t cb, void *userdata)
{
pa_operation *o;
@ -826,6 +840,7 @@ pa_operation* pa_context_get_source_info_list(pa_context *c, pa_source_info_cb_t
return o;
}
SPA_EXPORT
pa_operation* pa_context_set_source_volume_by_index(pa_context *c, uint32_t idx, const pa_cvolume *volume, pa_context_success_cb_t cb, void *userdata)
{
pa_operation *o;
@ -856,6 +871,7 @@ pa_operation* pa_context_set_source_volume_by_index(pa_context *c, uint32_t idx,
return o;
}
SPA_EXPORT
pa_operation* pa_context_set_source_volume_by_name(pa_context *c, const char *name, const pa_cvolume *volume, pa_context_success_cb_t cb, void *userdata)
{
pa_operation *o;
@ -884,6 +900,7 @@ pa_operation* pa_context_set_source_volume_by_name(pa_context *c, const char *na
return o;
}
SPA_EXPORT
pa_operation* pa_context_set_source_mute_by_index(pa_context *c, uint32_t idx, int mute, pa_context_success_cb_t cb, void *userdata)
{
pa_operation *o;
@ -913,6 +930,7 @@ pa_operation* pa_context_set_source_mute_by_index(pa_context *c, uint32_t idx, i
return o;
}
SPA_EXPORT
pa_operation* pa_context_set_source_mute_by_name(pa_context *c, const char *name, int mute, pa_context_success_cb_t cb, void *userdata)
{
pa_operation *o;
@ -940,24 +958,28 @@ pa_operation* pa_context_set_source_mute_by_name(pa_context *c, const char *name
return o;
}
SPA_EXPORT
pa_operation* pa_context_suspend_source_by_name(pa_context *c, const char *source_name, int suspend, pa_context_success_cb_t cb, void* userdata)
{
pw_log_warn("Not Implemented");
return NULL;
}
SPA_EXPORT
pa_operation* pa_context_suspend_source_by_index(pa_context *c, uint32_t idx, int suspend, pa_context_success_cb_t cb, void* userdata)
{
pw_log_warn("Not Implemented");
return NULL;
}
SPA_EXPORT
pa_operation* pa_context_set_source_port_by_index(pa_context *c, uint32_t idx, const char*port, pa_context_success_cb_t cb, void *userdata)
{
pw_log_warn("Not Implemented");
return NULL;
}
SPA_EXPORT
pa_operation* pa_context_set_source_port_by_name(pa_context *c, const char*name, const char*port, pa_context_success_cb_t cb, void *userdata)
{
pw_log_warn("Not Implemented");
@ -999,6 +1021,7 @@ static void server_info(pa_operation *o, void *userdata)
pa_operation_done(o);
}
SPA_EXPORT
pa_operation* pa_context_get_server_info(pa_context *c, pa_server_info_cb_t cb, void *userdata)
{
pa_operation *o;
@ -1039,6 +1062,7 @@ static void module_info(pa_operation *o, void *userdata)
pa_operation_done(o);
}
SPA_EXPORT
pa_operation* pa_context_get_module_info(pa_context *c, uint32_t idx, pa_module_info_cb_t cb, void *userdata)
{
pa_operation *o;
@ -1085,6 +1109,7 @@ static void module_info_list(pa_operation *o, void *userdata)
pa_operation_done(o);
}
SPA_EXPORT
pa_operation* pa_context_get_module_info_list(pa_context *c, pa_module_info_cb_t cb, void *userdata)
{
pa_operation *o;
@ -1107,12 +1132,14 @@ pa_operation* pa_context_get_module_info_list(pa_context *c, pa_module_info_cb_t
return o;
}
SPA_EXPORT
pa_operation* pa_context_load_module(pa_context *c, const char*name, const char *argument, pa_context_index_cb_t cb, void *userdata)
{
pw_log_warn("Not Implemented");
return NULL;
}
SPA_EXPORT
pa_operation* pa_context_unload_module(pa_context *c, uint32_t idx, pa_context_success_cb_t cb, void *userdata)
{
pw_log_warn("Not Implemented");
@ -1140,6 +1167,7 @@ static void client_info(pa_operation *o, void *userdata)
pa_operation_done(o);
}
SPA_EXPORT
pa_operation* pa_context_get_client_info(pa_context *c, uint32_t idx, pa_client_info_cb_t cb, void *userdata)
{
pa_operation *o;
@ -1186,6 +1214,7 @@ static void client_info_list(pa_operation *o, void *userdata)
pa_operation_done(o);
}
SPA_EXPORT
pa_operation* pa_context_get_client_info_list(pa_context *c, pa_client_info_cb_t cb, void *userdata)
{
pa_operation *o;
@ -1208,6 +1237,7 @@ pa_operation* pa_context_get_client_info_list(pa_context *c, pa_client_info_cb_t
return o;
}
SPA_EXPORT
pa_operation* pa_context_kill_client(pa_context *c, uint32_t idx, pa_context_success_cb_t cb, void *userdata)
{
struct global *g;
@ -1298,6 +1328,7 @@ static void card_info(pa_operation *o, void *userdata)
pa_operation_done(o);
}
SPA_EXPORT
pa_operation* pa_context_get_card_info_by_index(pa_context *c, uint32_t idx, pa_card_info_cb_t cb, void *userdata)
{
pa_operation *o;
@ -1328,6 +1359,7 @@ pa_operation* pa_context_get_card_info_by_index(pa_context *c, uint32_t idx, pa_
return o;
}
SPA_EXPORT
pa_operation* pa_context_get_card_info_by_name(pa_context *c, const char *name, pa_card_info_cb_t cb, void *userdata)
{
pa_operation *o;
@ -1372,6 +1404,7 @@ static void card_info_list(pa_operation *o, void *userdata)
pa_operation_done(o);
}
SPA_EXPORT
pa_operation* pa_context_get_card_info_list(pa_context *c, pa_card_info_cb_t cb, void *userdata)
{
pa_operation *o;
@ -1441,6 +1474,7 @@ done:
free(d->profile);
}
SPA_EXPORT
pa_operation* pa_context_set_card_profile_by_index(pa_context *c, uint32_t idx, const char*profile, pa_context_success_cb_t cb, void *userdata)
{
pa_operation *o;
@ -1474,6 +1508,7 @@ pa_operation* pa_context_set_card_profile_by_index(pa_context *c, uint32_t idx,
return o;
}
SPA_EXPORT
pa_operation* pa_context_set_card_profile_by_name(pa_context *c, const char*name, const char*profile, pa_context_success_cb_t cb, void *userdata)
{
pa_operation *o;
@ -1505,6 +1540,7 @@ pa_operation* pa_context_set_card_profile_by_name(pa_context *c, const char*name
return o;
}
SPA_EXPORT
pa_operation* pa_context_set_port_latency_offset(pa_context *c, const char *card_name, const char *port_name, int64_t offset, pa_context_success_cb_t cb, void *userdata)
{
pw_log_warn("Not Implemented");
@ -1610,6 +1646,7 @@ static void sink_input_info(pa_operation *o, void *userdata)
pa_operation_done(o);
}
SPA_EXPORT
pa_operation* pa_context_get_sink_input_info(pa_context *c, uint32_t idx, pa_sink_input_info_cb_t cb, void *userdata)
{
pa_operation *o;
@ -1657,6 +1694,7 @@ static void sink_input_info_list(pa_operation *o, void *userdata)
pa_operation_done(o);
}
SPA_EXPORT
pa_operation* pa_context_get_sink_input_info_list(pa_context *c, pa_sink_input_info_cb_t cb, void *userdata)
{
pa_operation *o;
@ -1680,18 +1718,21 @@ pa_operation* pa_context_get_sink_input_info_list(pa_context *c, pa_sink_input_i
return o;
}
SPA_EXPORT
pa_operation* pa_context_move_sink_input_by_name(pa_context *c, uint32_t idx, const char *sink_name, pa_context_success_cb_t cb, void* userdata)
{
pw_log_warn("Not Implemented");
return NULL;
}
SPA_EXPORT
pa_operation* pa_context_move_sink_input_by_index(pa_context *c, uint32_t idx, uint32_t sink_idx, pa_context_success_cb_t cb, void* userdata)
{
pw_log_warn("Not Implemented");
return NULL;
}
SPA_EXPORT
pa_operation* pa_context_set_sink_input_volume(pa_context *c, uint32_t idx, const pa_cvolume *volume, pa_context_success_cb_t cb, void *userdata)
{
pa_stream *s;
@ -1724,6 +1765,7 @@ pa_operation* pa_context_set_sink_input_volume(pa_context *c, uint32_t idx, cons
return o;
}
SPA_EXPORT
pa_operation* pa_context_set_sink_input_mute(pa_context *c, uint32_t idx, int mute, pa_context_success_cb_t cb, void *userdata)
{
pa_stream *s;
@ -1754,6 +1796,7 @@ pa_operation* pa_context_set_sink_input_mute(pa_context *c, uint32_t idx, int mu
return o;
}
SPA_EXPORT
pa_operation* pa_context_kill_sink_input(pa_context *c, uint32_t idx, pa_context_success_cb_t cb, void *userdata)
{
pa_stream *s;
@ -1873,6 +1916,7 @@ static void source_output_info(pa_operation *o, void *userdata)
pa_operation_done(o);
}
SPA_EXPORT
pa_operation* pa_context_get_source_output_info(pa_context *c, uint32_t idx, pa_source_output_info_cb_t cb, void *userdata)
{
pa_operation *o;
@ -1919,6 +1963,7 @@ static void source_output_info_list(pa_operation *o, void *userdata)
pa_operation_done(o);
}
SPA_EXPORT
pa_operation* pa_context_get_source_output_info_list(pa_context *c, pa_source_output_info_cb_t cb, void *userdata)
{
pa_operation *o;
@ -1941,18 +1986,21 @@ pa_operation* pa_context_get_source_output_info_list(pa_context *c, pa_source_ou
return o;
}
SPA_EXPORT
pa_operation* pa_context_move_source_output_by_name(pa_context *c, uint32_t idx, const char *source_name, pa_context_success_cb_t cb, void* userdata)
{
pw_log_warn("Not Implemented");
return NULL;
}
SPA_EXPORT
pa_operation* pa_context_move_source_output_by_index(pa_context *c, uint32_t idx, uint32_t source_idx, pa_context_success_cb_t cb, void* userdata)
{
pw_log_warn("Not Implemented");
return NULL;
}
SPA_EXPORT
pa_operation* pa_context_set_source_output_volume(pa_context *c, uint32_t idx, const pa_cvolume *volume, pa_context_success_cb_t cb, void *userdata)
{
pa_stream *s;
@ -1985,6 +2033,7 @@ pa_operation* pa_context_set_source_output_volume(pa_context *c, uint32_t idx, c
return o;
}
SPA_EXPORT
pa_operation* pa_context_set_source_output_mute(pa_context *c, uint32_t idx, int mute, pa_context_success_cb_t cb, void *userdata)
{
pa_stream *s;
@ -2015,6 +2064,7 @@ pa_operation* pa_context_set_source_output_mute(pa_context *c, uint32_t idx, int
return o;
}
SPA_EXPORT
pa_operation* pa_context_kill_source_output(pa_context *c, uint32_t idx, pa_context_success_cb_t cb, void *userdata)
{
pa_stream *s;
@ -2044,60 +2094,70 @@ pa_operation* pa_context_kill_source_output(pa_context *c, uint32_t idx, pa_cont
return o;
}
SPA_EXPORT
pa_operation* pa_context_stat(pa_context *c, pa_stat_info_cb_t cb, void *userdata)
{
pw_log_warn("Not Implemented");
return NULL;
}
SPA_EXPORT
pa_operation* pa_context_get_sample_info_by_name(pa_context *c, const char *name, pa_sample_info_cb_t cb, void *userdata)
{
pw_log_warn("Not Implemented");
return NULL;
}
SPA_EXPORT
pa_operation* pa_context_get_sample_info_by_index(pa_context *c, uint32_t idx, pa_sample_info_cb_t cb, void *userdata)
{
pw_log_warn("Not Implemented");
return NULL;
}
SPA_EXPORT
pa_operation* pa_context_get_sample_info_list(pa_context *c, pa_sample_info_cb_t cb, void *userdata)
{
pw_log_warn("Not Implemented");
return NULL;
}
SPA_EXPORT
pa_operation* pa_context_get_autoload_info_by_name(pa_context *c, const char *name, pa_autoload_type_t type, pa_autoload_info_cb_t cb, void *userdata)
{
pw_log_warn("Deprecated: Not Implemented");
return NULL;
}
SPA_EXPORT
pa_operation* pa_context_get_autoload_info_by_index(pa_context *c, uint32_t idx, pa_autoload_info_cb_t cb, void *userdata)
{
pw_log_warn("Deprecated: Not Implemented");
return NULL;
}
SPA_EXPORT
pa_operation* pa_context_get_autoload_info_list(pa_context *c, pa_autoload_info_cb_t cb, void *userdata)
{
pw_log_warn("Deprecated: Not Implemented");
return NULL;
}
SPA_EXPORT
pa_operation* pa_context_add_autoload(pa_context *c, const char *name, pa_autoload_type_t type, const char *module, const char*argument, pa_context_index_cb_t cb, void* userdata)
{
pw_log_warn("Deprecated: Not Implemented");
return NULL;
}
SPA_EXPORT
pa_operation* pa_context_remove_autoload_by_name(pa_context *c, const char *name, pa_autoload_type_t type, pa_context_success_cb_t cb, void* userdata)
{
pw_log_warn("Deprecated: Not Implemented");
return NULL;
}
SPA_EXPORT
pa_operation* pa_context_remove_autoload_by_index(pa_context *c, uint32_t idx, pa_context_success_cb_t cb, void* userdata)
{
pw_log_warn("Deprecated: Not Implemented");

View file

@ -499,6 +499,7 @@ error:
}
SPA_EXPORT
pa_json_object* pa_json_parse(const char *str) {
pa_json_object *obj;
@ -518,10 +519,12 @@ pa_json_object* pa_json_parse(const char *str) {
return obj;
}
SPA_EXPORT
pa_json_type pa_json_object_get_type(const pa_json_object *obj) {
return obj->type;
}
SPA_EXPORT
void pa_json_object_free(pa_json_object *obj) {
switch (pa_json_object_get_type(obj)) {
@ -551,26 +554,31 @@ void pa_json_object_free(pa_json_object *obj) {
pa_xfree(obj);
}
SPA_EXPORT
int pa_json_object_get_int(const pa_json_object *o) {
pa_assert(pa_json_object_get_type(o) == PA_JSON_TYPE_INT);
return o->int_value;
}
SPA_EXPORT
double pa_json_object_get_double(const pa_json_object *o) {
pa_assert(pa_json_object_get_type(o) == PA_JSON_TYPE_DOUBLE);
return o->double_value;
}
SPA_EXPORT
bool pa_json_object_get_bool(const pa_json_object *o) {
pa_assert(pa_json_object_get_type(o) == PA_JSON_TYPE_BOOL);
return o->bool_value;
}
SPA_EXPORT
const char* pa_json_object_get_string(const pa_json_object *o) {
pa_assert(pa_json_object_get_type(o) == PA_JSON_TYPE_STRING);
return o->string_value;
}
SPA_EXPORT
const pa_json_object* pa_json_object_get_object_member(const pa_json_object *o, const char *name) {
pa_json_item *item;
pa_assert(pa_json_object_get_type(o) == PA_JSON_TYPE_OBJECT);
@ -581,17 +589,20 @@ const pa_json_object* pa_json_object_get_object_member(const pa_json_object *o,
return NULL;
}
SPA_EXPORT
int pa_json_object_get_array_length(const pa_json_object *o) {
pa_assert(pa_json_object_get_type(o) == PA_JSON_TYPE_ARRAY);
return pw_array_get_len(&o->values, const pa_json_object*);
}
SPA_EXPORT
const pa_json_object* pa_json_object_get_array_member(const pa_json_object *o, int index) {
pa_assert(pa_json_object_get_type(o) == PA_JSON_TYPE_ARRAY);
return pw_array_get_unchecked_s(&o->values, index, sizeof(pa_json_object*),
const pa_json_object);
}
SPA_EXPORT
bool pa_json_object_equal(const pa_json_object *o1, const pa_json_object *o2) {
int i;

View file

@ -70,6 +70,7 @@ static GSourceFuncs source_funcs =
NULL,
};
SPA_EXPORT
pa_glib_mainloop *pa_glib_mainloop_new(GMainContext *c)
{
@ -102,6 +103,7 @@ pa_glib_mainloop *pa_glib_mainloop_new(GMainContext *c)
}
SPA_EXPORT
void pa_glib_mainloop_free(pa_glib_mainloop* g)
{
g_source_destroy(&g->source->base);
@ -109,6 +111,7 @@ void pa_glib_mainloop_free(pa_glib_mainloop* g)
free(g);
}
SPA_EXPORT
pa_mainloop_api* pa_glib_mainloop_get_api(pa_glib_mainloop *g)
{
return pa_mainloop_get_api(g->loop);

View file

@ -42,6 +42,7 @@ struct pa_signal_event {
void *userdata;
};
SPA_EXPORT
int pa_signal_init(pa_mainloop_api *a)
{
pa_assert(a);
@ -54,6 +55,7 @@ int pa_signal_init(pa_mainloop_api *a)
return 0;
}
SPA_EXPORT
void pa_signal_done(void)
{
pa_signal_event *ev, *t;
@ -74,6 +76,7 @@ static void source_signal_func (void *data, int signal_number)
ev->callback(api, ev, signal_number, ev->userdata);
}
SPA_EXPORT
pa_signal_event* pa_signal_new(int sig, pa_signal_cb_t callback, void *userdata)
{
pa_signal_event *ev;
@ -91,6 +94,7 @@ pa_signal_event* pa_signal_new(int sig, pa_signal_cb_t callback, void *userdata)
return ev;
}
SPA_EXPORT
void pa_signal_free(pa_signal_event *e)
{
pa_assert(e);
@ -102,6 +106,7 @@ void pa_signal_free(pa_signal_event *e)
free(e);
}
SPA_EXPORT
void pa_signal_set_destroy(pa_signal_event *e, pa_signal_destroy_cb_t callback)
{
pa_assert(e);

View file

@ -240,6 +240,7 @@ static const pa_mainloop_api api =
.quit = api_quit,
};
SPA_EXPORT
pa_mainloop *pa_mainloop_new(void)
{
pa_mainloop *loop;
@ -263,12 +264,14 @@ pa_mainloop *pa_mainloop_new(void)
return NULL;
}
SPA_EXPORT
void pa_mainloop_free(pa_mainloop* m)
{
pw_loop_destroy(m->loop);
free(m);
}
SPA_EXPORT
int pa_mainloop_prepare(pa_mainloop *m, int timeout)
{
if (m->quit)
@ -279,6 +282,7 @@ int pa_mainloop_prepare(pa_mainloop *m, int timeout)
}
/** Execute the previously prepared poll. Returns a negative value on error.*/
SPA_EXPORT
int pa_mainloop_poll(pa_mainloop *m)
{
if (m->quit)
@ -287,6 +291,7 @@ int pa_mainloop_poll(pa_mainloop *m)
return m->n_events = pw_loop_iterate(m->loop, m->timeout);
}
SPA_EXPORT
int pa_mainloop_dispatch(pa_mainloop *m)
{
if (m->quit)
@ -295,6 +300,7 @@ int pa_mainloop_dispatch(pa_mainloop *m)
return m->n_events;
}
SPA_EXPORT
int pa_mainloop_get_retval(pa_mainloop *m)
{
return m->retval;
@ -306,6 +312,7 @@ Returns a negative value on error or exit request. If block is nonzero,
block for events if none are queued. Optionally return the return value as
specified with the main loop's quit() routine in the integer variable retval points
to. On success returns the number of sources dispatched in this iteration. */
SPA_EXPORT
int pa_mainloop_iterate(pa_mainloop *m, int block, int *retval)
{
int r;
@ -328,6 +335,7 @@ int pa_mainloop_iterate(pa_mainloop *m, int block, int *retval)
return r;
}
SPA_EXPORT
int pa_mainloop_run(pa_mainloop *m, int *retval)
{
int r;
@ -342,24 +350,28 @@ int pa_mainloop_run(pa_mainloop *m, int *retval)
}
SPA_EXPORT
pa_mainloop_api* pa_mainloop_get_api(pa_mainloop *m)
{
pa_assert(m);
return &m->api;
}
SPA_EXPORT
void pa_mainloop_quit(pa_mainloop *m, int retval)
{
pa_assert(m);
m->api.quit(&m->api, retval);
}
SPA_EXPORT
void pa_mainloop_wakeup(pa_mainloop *m)
{
pa_assert(m);
pw_loop_signal_event(m->loop, m->event);
}
SPA_EXPORT
void pa_mainloop_set_poll_func(pa_mainloop *m, pa_poll_func poll_func, void *userdata)
{
pw_log_warn("Not Implemented");

View file

@ -58,6 +58,7 @@ int pa_operation_sync(pa_operation *o)
return 0;
}
SPA_EXPORT
pa_operation *pa_operation_ref(pa_operation *o)
{
pa_assert(o);
@ -96,6 +97,7 @@ static void operation_unlink(pa_operation *o) {
}
SPA_EXPORT
void pa_operation_unref(pa_operation *o)
{
pa_assert(o);
@ -126,6 +128,7 @@ static void operation_set_state(pa_operation *o, pa_operation_state_t st) {
}
SPA_EXPORT
void pa_operation_cancel(pa_operation *o)
{
pa_assert(o);
@ -141,6 +144,7 @@ void pa_operation_done(pa_operation *o) {
}
SPA_EXPORT
pa_operation_state_t pa_operation_get_state(pa_operation *o)
{
pa_assert(o);
@ -148,6 +152,7 @@ pa_operation_state_t pa_operation_get_state(pa_operation *o)
return o->state;
}
SPA_EXPORT
void pa_operation_set_state_callback(pa_operation *o, pa_operation_notify_cb_t cb, void *userdata)
{
pa_assert(o);

View file

@ -49,6 +49,7 @@ pa_proplist* pa_proplist_new_props(struct pw_properties *props)
return pa_proplist_new_dict(&props->dict);
}
SPA_EXPORT
pa_proplist* pa_proplist_new(void)
{
return pa_proplist_new_dict(NULL);
@ -60,12 +61,14 @@ int pa_proplist_update_dict(pa_proplist *p, struct spa_dict *dict)
}
SPA_EXPORT
void pa_proplist_free(pa_proplist* p)
{
pw_properties_free(p->props);
free(p);
}
SPA_EXPORT
int pa_proplist_key_valid(const char *key)
{
const char *p;
@ -79,6 +82,7 @@ int pa_proplist_key_valid(const char *key)
return 1;
}
SPA_EXPORT
int pa_proplist_sets(pa_proplist *p, const char *key, const char *value)
{
pa_assert(p);
@ -92,6 +96,7 @@ int pa_proplist_sets(pa_proplist *p, const char *key, const char *value)
return 0;
}
SPA_EXPORT
int pa_proplist_setp(pa_proplist *p, const char *pair)
{
const char *t;
@ -113,6 +118,7 @@ int pa_proplist_setp(pa_proplist *p, const char *pair)
return 0;
}
SPA_EXPORT
int pa_proplist_setf(pa_proplist *p, const char *key, const char *format, ...)
{
va_list varargs;
@ -124,6 +130,7 @@ int pa_proplist_setf(pa_proplist *p, const char *key, const char *format, ...)
return 0;
}
SPA_EXPORT
int pa_proplist_set(pa_proplist *p, const char *key, const void *data, size_t nbytes)
{
pa_assert(p);
@ -137,11 +144,13 @@ int pa_proplist_set(pa_proplist *p, const char *key, const void *data, size_t nb
return 0;
}
SPA_EXPORT
const char *pa_proplist_gets(pa_proplist *p, const char *key)
{
return pw_properties_get(p->props, key);
}
SPA_EXPORT
int pa_proplist_get(pa_proplist *p, const char *key, const void **data, size_t *nbytes)
{
const char *val;
@ -156,6 +165,7 @@ int pa_proplist_get(pa_proplist *p, const char *key, const void **data, size_t *
return 0;
}
SPA_EXPORT
void pa_proplist_update(pa_proplist *p, pa_update_mode_t mode, const pa_proplist *other)
{
uint32_t i;
@ -181,6 +191,7 @@ void pa_proplist_update(pa_proplist *p, pa_update_mode_t mode, const pa_proplist
}
}
SPA_EXPORT
int pa_proplist_unset(pa_proplist *p, const char *key)
{
spa_assert(p);
@ -192,6 +203,7 @@ int pa_proplist_unset(pa_proplist *p, const char *key)
return pw_properties_set(p->props, key, NULL);
}
SPA_EXPORT
int pa_proplist_unset_many(pa_proplist *p, const char * const keys[])
{
const char * const * k;
@ -210,6 +222,7 @@ int pa_proplist_unset_many(pa_proplist *p, const char * const keys[])
return n;
}
SPA_EXPORT
const char *pa_proplist_iterate(pa_proplist *p, void **state)
{
spa_assert(p);
@ -217,12 +230,14 @@ const char *pa_proplist_iterate(pa_proplist *p, void **state)
return pw_properties_iterate(p->props, state);
}
SPA_EXPORT
char *pa_proplist_to_string(pa_proplist *p)
{
spa_assert(p);
return pa_proplist_to_string_sep(p, ",");
}
SPA_EXPORT
char *pa_proplist_to_string_sep(pa_proplist *p, const char *sep)
{
const char *key;
@ -269,6 +284,7 @@ char *pa_proplist_to_string_sep(pa_proplist *p, const char *sep)
return pa_strbuf_to_string_free(buf);
}
SPA_EXPORT
pa_proplist *pa_proplist_from_string(const char *str)
{
spa_assert(str);
@ -276,6 +292,7 @@ pa_proplist *pa_proplist_from_string(const char *str)
return NULL;
}
SPA_EXPORT
int pa_proplist_contains(pa_proplist *p, const char *key)
{
spa_assert(p);
@ -290,12 +307,14 @@ int pa_proplist_contains(pa_proplist *p, const char *key)
return 1;
}
SPA_EXPORT
void pa_proplist_clear(pa_proplist *p)
{
spa_assert(p);
pw_properties_clear(p->props);
}
SPA_EXPORT
pa_proplist* pa_proplist_copy(const pa_proplist *p)
{
pa_proplist *c;
@ -310,18 +329,21 @@ pa_proplist* pa_proplist_copy(const pa_proplist *p)
return c;
}
SPA_EXPORT
unsigned pa_proplist_size(pa_proplist *p)
{
spa_assert(p);
return p->props->dict.n_items;
}
SPA_EXPORT
int pa_proplist_isempty(pa_proplist *p)
{
spa_assert(p);
return p->props->dict.n_items == 0 ? 1 : 0;
}
SPA_EXPORT
int pa_proplist_equal(pa_proplist *a, pa_proplist *b)
{
uint32_t i;

View file

@ -25,6 +25,7 @@
#include <pulse/rtclock.h>
SPA_EXPORT
pa_usec_t pa_rtclock_now(void)
{
struct timespec ts;

View file

@ -50,6 +50,7 @@ static const size_t size_table[] = {
[PA_SAMPLE_S24_32BE] = 4
};
SPA_EXPORT
size_t pa_sample_size_of_format(pa_sample_format_t f)
{
spa_assert(pa_sample_format_valid(f));
@ -57,6 +58,7 @@ size_t pa_sample_size_of_format(pa_sample_format_t f)
return size_table[f];
}
SPA_EXPORT
size_t pa_sample_size(const pa_sample_spec * spec)
{
spa_assert(spec);
@ -65,6 +67,7 @@ size_t pa_sample_size(const pa_sample_spec * spec)
return size_table[spec->format];
}
SPA_EXPORT
size_t pa_frame_size(const pa_sample_spec * spec)
{
spa_assert(spec);
@ -73,6 +76,7 @@ size_t pa_frame_size(const pa_sample_spec * spec)
return size_table[spec->format] * spec->channels;
}
SPA_EXPORT
size_t pa_bytes_per_second(const pa_sample_spec * spec)
{
spa_assert(spec);
@ -81,6 +85,7 @@ size_t pa_bytes_per_second(const pa_sample_spec * spec)
return spec->rate * size_table[spec->format] * spec->channels;
}
SPA_EXPORT
pa_usec_t pa_bytes_to_usec(uint64_t length, const pa_sample_spec * spec)
{
spa_assert(spec);
@ -91,6 +96,7 @@ pa_usec_t pa_bytes_to_usec(uint64_t length, const pa_sample_spec * spec)
* PA_USEC_PER_SEC) / spec->rate);
}
SPA_EXPORT
size_t pa_usec_to_bytes(pa_usec_t t, const pa_sample_spec * spec)
{
spa_assert(spec);
@ -100,6 +106,7 @@ size_t pa_usec_to_bytes(pa_usec_t t, const pa_sample_spec * spec)
(size_table[spec->format] * spec->channels);
}
SPA_EXPORT
pa_sample_spec *pa_sample_spec_init(pa_sample_spec * spec)
{
spa_assert(spec);
@ -111,11 +118,13 @@ pa_sample_spec *pa_sample_spec_init(pa_sample_spec * spec)
return spec;
}
SPA_EXPORT
int pa_sample_format_valid(unsigned format)
{
return format < PA_SAMPLE_MAX;
}
SPA_EXPORT
int pa_sample_rate_valid(uint32_t rate)
{
/* The extra 1% is due to module-loopback: it temporarily sets
@ -124,11 +133,13 @@ int pa_sample_rate_valid(uint32_t rate)
return rate > 0 && rate <= PA_RATE_MAX * 101 / 100;
}
SPA_EXPORT
int pa_channels_valid(uint8_t channels)
{
return channels > 0 && channels <= PA_CHANNELS_MAX;
}
SPA_EXPORT
int pa_sample_spec_valid(const pa_sample_spec * spec)
{
spa_assert(spec);
@ -141,6 +152,7 @@ int pa_sample_spec_valid(const pa_sample_spec * spec)
return 1;
}
SPA_EXPORT
int pa_sample_spec_equal(const pa_sample_spec * a, const pa_sample_spec * b)
{
spa_assert(a);
@ -158,6 +170,7 @@ int pa_sample_spec_equal(const pa_sample_spec * a, const pa_sample_spec * b)
(a->rate == b->rate) && (a->channels == b->channels);
}
SPA_EXPORT
const char *pa_sample_format_to_string(pa_sample_format_t f)
{
static const char *const table[] = {
@ -182,6 +195,7 @@ const char *pa_sample_format_to_string(pa_sample_format_t f)
return table[f];
}
SPA_EXPORT
char *pa_sample_spec_snprint(char *s, size_t l, const pa_sample_spec * spec)
{
spa_assert(s);
@ -200,6 +214,7 @@ char *pa_sample_spec_snprint(char *s, size_t l, const pa_sample_spec * spec)
return s;
}
SPA_EXPORT
char *pa_bytes_snprint(char *s, size_t l, unsigned v)
{
spa_assert(s);
@ -220,6 +235,7 @@ char *pa_bytes_snprint(char *s, size_t l, unsigned v)
return s;
}
SPA_EXPORT
pa_sample_format_t pa_parse_sample_format(const char *format)
{
spa_assert(format);
@ -284,6 +300,7 @@ pa_sample_format_t pa_parse_sample_format(const char *format)
return PA_SAMPLE_INVALID;
}
SPA_EXPORT
int pa_sample_format_is_le(pa_sample_format_t f)
{
spa_assert(pa_sample_format_valid(f));
@ -308,6 +325,7 @@ int pa_sample_format_is_le(pa_sample_format_t f)
}
}
SPA_EXPORT
int pa_sample_format_is_be(pa_sample_format_t f)
{
int r;

View file

@ -23,24 +23,28 @@
#include "internal.h"
SPA_EXPORT
int pa_stream_connect_upload(pa_stream *s, size_t length)
{
pw_log_warn("Not Implemented");
return 0;
}
SPA_EXPORT
int pa_stream_finish_upload(pa_stream *s)
{
pw_log_warn("Not Implemented");
return 0;
}
SPA_EXPORT
pa_operation* pa_context_remove_sample(pa_context *c, const char *name, pa_context_success_cb_t cb, void *userdata)
{
pw_log_warn("Not Implemented");
return NULL;
}
SPA_EXPORT
pa_operation* pa_context_play_sample(pa_context *c, const char *name, const char *dev,
pa_volume_t volume, pa_context_success_cb_t cb, void *userdata)
{
@ -48,6 +52,7 @@ pa_operation* pa_context_play_sample(pa_context *c, const char *name, const char
return NULL;
}
SPA_EXPORT
pa_operation* pa_context_play_sample_with_proplist(pa_context *c, const char *name,
const char *dev, pa_volume_t volume, pa_proplist *proplist,
pa_context_play_sample_cb_t cb, void *userdata)

View file

@ -495,7 +495,7 @@ static const struct pw_stream_events stream_events =
.process = stream_process,
};
pa_stream* stream_new(pa_context *c, const char *name,
static pa_stream* stream_new(pa_context *c, const char *name,
const pa_sample_spec *ss, const pa_channel_map *map,
pa_format_info * const * formats, unsigned int n_formats,
pa_proplist *p)
@ -590,12 +590,14 @@ pa_stream* stream_new(pa_context *c, const char *name,
return s;
}
SPA_EXPORT
pa_stream* pa_stream_new(pa_context *c, const char *name, const pa_sample_spec *ss,
const pa_channel_map *map)
{
return stream_new(c, name, ss, map, NULL, 0, NULL);
}
SPA_EXPORT
pa_stream* pa_stream_new_with_proplist(pa_context *c, const char *name,
const pa_sample_spec *ss, const pa_channel_map *map, pa_proplist *p)
{
@ -607,6 +609,7 @@ pa_stream* pa_stream_new_with_proplist(pa_context *c, const char *name,
return stream_new(c, name, ss, map, NULL, 0, p);
}
SPA_EXPORT
pa_stream *pa_stream_new_extended(pa_context *c, const char *name,
pa_format_info * const * formats, unsigned int n_formats, pa_proplist *p)
{
@ -658,6 +661,7 @@ static void stream_free(pa_stream *s)
free(s);
}
SPA_EXPORT
void pa_stream_unref(pa_stream *s)
{
spa_assert(s);
@ -667,6 +671,7 @@ void pa_stream_unref(pa_stream *s)
stream_free(s);
}
SPA_EXPORT
pa_stream *pa_stream_ref(pa_stream *s)
{
spa_assert(s);
@ -676,6 +681,7 @@ pa_stream *pa_stream_ref(pa_stream *s)
return s;
}
SPA_EXPORT
pa_stream_state_t pa_stream_get_state(pa_stream *s)
{
spa_assert(s);
@ -683,6 +689,7 @@ pa_stream_state_t pa_stream_get_state(pa_stream *s)
return s->state;
}
SPA_EXPORT
pa_context* pa_stream_get_context(pa_stream *s)
{
spa_assert(s);
@ -690,6 +697,7 @@ pa_context* pa_stream_get_context(pa_stream *s)
return s->context;
}
SPA_EXPORT
uint32_t pa_stream_get_index(pa_stream *s)
{
spa_assert(s);
@ -720,6 +728,7 @@ void pa_stream_set_state(pa_stream *s, pa_stream_state_t st) {
}
SPA_EXPORT
uint32_t pa_stream_get_device_index(pa_stream *s)
{
spa_assert(s);
@ -736,6 +745,7 @@ uint32_t pa_stream_get_device_index(pa_stream *s)
return s->device_index;
}
SPA_EXPORT
const char *pa_stream_get_device_name(pa_stream *s)
{
spa_assert(s);
@ -748,6 +758,7 @@ const char *pa_stream_get_device_name(pa_stream *s)
return s->device_name;
}
SPA_EXPORT
int pa_stream_is_suspended(pa_stream *s)
{
spa_assert(s);
@ -759,6 +770,7 @@ int pa_stream_is_suspended(pa_stream *s)
return s->suspended;
}
SPA_EXPORT
int pa_stream_is_corked(pa_stream *s)
{
spa_assert(s);
@ -942,6 +954,7 @@ static int create_stream(pa_stream_direction_t direction,
return res;
}
SPA_EXPORT
int pa_stream_connect_playback(
pa_stream *s,
const char *dev,
@ -953,6 +966,7 @@ int pa_stream_connect_playback(
return create_stream(PA_STREAM_PLAYBACK, s, dev, attr, flags, volume, sync_stream);
}
SPA_EXPORT
int pa_stream_connect_record(
pa_stream *s,
const char *dev,
@ -967,6 +981,7 @@ static void on_disconnected(pa_operation *o, void *userdata)
pa_stream_set_state(o->stream, PA_STREAM_TERMINATED);
}
SPA_EXPORT
int pa_stream_disconnect(pa_stream *s)
{
pa_operation *o;
@ -1036,6 +1051,7 @@ int queue_buffer(pa_stream *s)
return 0;
}
SPA_EXPORT
int pa_stream_begin_write(
pa_stream *s,
void **data,
@ -1066,6 +1082,7 @@ int pa_stream_begin_write(
return 0;
}
SPA_EXPORT
int pa_stream_cancel_write(pa_stream *s)
{
spa_assert(s);
@ -1081,6 +1098,7 @@ int pa_stream_cancel_write(pa_stream *s)
return 0;
}
SPA_EXPORT
int pa_stream_write(pa_stream *s,
const void *data,
size_t nbytes,
@ -1091,6 +1109,7 @@ int pa_stream_write(pa_stream *s,
return pa_stream_write_ext_free(s, data, nbytes, free_cb, (void*) data, offset, seek);
}
SPA_EXPORT
int pa_stream_write_ext_free(pa_stream *s,
const void *data,
size_t nbytes,
@ -1160,6 +1179,7 @@ int pa_stream_write_ext_free(pa_stream *s,
return 0;
}
SPA_EXPORT
int pa_stream_peek(pa_stream *s,
const void **data,
size_t *nbytes)
@ -1185,6 +1205,7 @@ int pa_stream_peek(pa_stream *s,
return 0;
}
SPA_EXPORT
int pa_stream_drop(pa_stream *s)
{
spa_assert(s);
@ -1200,6 +1221,7 @@ int pa_stream_drop(pa_stream *s)
return 0;
}
SPA_EXPORT
size_t pa_stream_writable_size(pa_stream *s)
{
spa_assert(s);
@ -1214,6 +1236,7 @@ size_t pa_stream_writable_size(pa_stream *s)
return s->dequeued_size;
}
SPA_EXPORT
size_t pa_stream_readable_size(pa_stream *s)
{
spa_assert(s);
@ -1241,6 +1264,7 @@ static void on_success(pa_operation *o, void *userdata)
d->cb(s, 1, d->userdata);
}
SPA_EXPORT
pa_operation* pa_stream_drain(pa_stream *s, pa_stream_success_cb_t cb, void *userdata)
{
pa_operation *o;
@ -1276,6 +1300,7 @@ static void on_timing_success(pa_operation *o, void *userdata)
d->cb(s, s->timing_info_valid, d->userdata);
}
SPA_EXPORT
pa_operation* pa_stream_update_timing_info(pa_stream *s, pa_stream_success_cb_t cb, void *userdata)
{
pa_operation *o;
@ -1296,6 +1321,7 @@ pa_operation* pa_stream_update_timing_info(pa_stream *s, pa_stream_success_cb_t
return o;
}
SPA_EXPORT
void pa_stream_set_state_callback(pa_stream *s, pa_stream_notify_cb_t cb, void *userdata)
{
spa_assert(s);
@ -1308,6 +1334,7 @@ void pa_stream_set_state_callback(pa_stream *s, pa_stream_notify_cb_t cb, void *
s->state_userdata = userdata;
}
SPA_EXPORT
void pa_stream_set_write_callback(pa_stream *s, pa_stream_request_cb_t cb, void *userdata)
{
spa_assert(s);
@ -1320,6 +1347,7 @@ void pa_stream_set_write_callback(pa_stream *s, pa_stream_request_cb_t cb, void
s->write_userdata = userdata;
}
SPA_EXPORT
void pa_stream_set_read_callback(pa_stream *s, pa_stream_request_cb_t cb, void *userdata)
{
spa_assert(s);
@ -1332,6 +1360,7 @@ void pa_stream_set_read_callback(pa_stream *s, pa_stream_request_cb_t cb, void *
s->read_userdata = userdata;
}
SPA_EXPORT
void pa_stream_set_overflow_callback(pa_stream *s, pa_stream_notify_cb_t cb, void *userdata)
{
spa_assert(s);
@ -1344,12 +1373,14 @@ void pa_stream_set_overflow_callback(pa_stream *s, pa_stream_notify_cb_t cb, voi
s->overflow_userdata = userdata;
}
SPA_EXPORT
int64_t pa_stream_get_underflow_index(pa_stream *s)
{
pw_log_warn("Not Implemented");
return 0;
}
SPA_EXPORT
void pa_stream_set_underflow_callback(pa_stream *s, pa_stream_notify_cb_t cb, void *userdata)
{
spa_assert(s);
@ -1362,6 +1393,7 @@ void pa_stream_set_underflow_callback(pa_stream *s, pa_stream_notify_cb_t cb, vo
s->underflow_userdata = userdata;
}
SPA_EXPORT
void pa_stream_set_started_callback(pa_stream *s, pa_stream_notify_cb_t cb, void *userdata)
{
spa_assert(s);
@ -1374,6 +1406,7 @@ void pa_stream_set_started_callback(pa_stream *s, pa_stream_notify_cb_t cb, void
s->started_userdata = userdata;
}
SPA_EXPORT
void pa_stream_set_latency_update_callback(pa_stream *s, pa_stream_notify_cb_t cb, void *userdata)
{
spa_assert(s);
@ -1386,6 +1419,7 @@ void pa_stream_set_latency_update_callback(pa_stream *s, pa_stream_notify_cb_t c
s->latency_update_userdata = userdata;
}
SPA_EXPORT
void pa_stream_set_moved_callback(pa_stream *s, pa_stream_notify_cb_t cb, void *userdata)
{
spa_assert(s);
@ -1398,6 +1432,7 @@ void pa_stream_set_moved_callback(pa_stream *s, pa_stream_notify_cb_t cb, void *
s->moved_userdata = userdata;
}
SPA_EXPORT
void pa_stream_set_suspended_callback(pa_stream *s, pa_stream_notify_cb_t cb, void *userdata)
{
spa_assert(s);
@ -1410,6 +1445,7 @@ void pa_stream_set_suspended_callback(pa_stream *s, pa_stream_notify_cb_t cb, vo
s->suspended_userdata = userdata;
}
SPA_EXPORT
void pa_stream_set_event_callback(pa_stream *s, pa_stream_event_cb_t cb, void *userdata)
{
spa_assert(s);
@ -1422,6 +1458,7 @@ void pa_stream_set_event_callback(pa_stream *s, pa_stream_event_cb_t cb, void *u
s->event_userdata = userdata;
}
SPA_EXPORT
void pa_stream_set_buffer_attr_callback(pa_stream *s, pa_stream_notify_cb_t cb, void *userdata)
{
spa_assert(s);
@ -1434,6 +1471,7 @@ void pa_stream_set_buffer_attr_callback(pa_stream *s, pa_stream_notify_cb_t cb,
s->buffer_attr_userdata = userdata;
}
SPA_EXPORT
pa_operation* pa_stream_cork(pa_stream *s, int b, pa_stream_success_cb_t cb, void *userdata)
{
pa_operation *o;
@ -1457,6 +1495,7 @@ pa_operation* pa_stream_cork(pa_stream *s, int b, pa_stream_success_cb_t cb, voi
return o;
}
SPA_EXPORT
pa_operation* pa_stream_flush(pa_stream *s, pa_stream_success_cb_t cb, void *userdata)
{
pa_operation *o;
@ -1479,6 +1518,7 @@ pa_operation* pa_stream_flush(pa_stream *s, pa_stream_success_cb_t cb, void *use
return o;
}
SPA_EXPORT
pa_operation* pa_stream_prebuf(pa_stream *s, pa_stream_success_cb_t cb, void *userdata)
{
pa_operation *o;
@ -1501,6 +1541,7 @@ pa_operation* pa_stream_prebuf(pa_stream *s, pa_stream_success_cb_t cb, void *us
return o;
}
SPA_EXPORT
pa_operation* pa_stream_trigger(pa_stream *s, pa_stream_success_cb_t cb, void *userdata)
{
pa_operation *o;
@ -1523,6 +1564,7 @@ pa_operation* pa_stream_trigger(pa_stream *s, pa_stream_success_cb_t cb, void *u
return o;
}
SPA_EXPORT
pa_operation* pa_stream_set_name(pa_stream *s, const char *name, pa_stream_success_cb_t cb, void *userdata)
{
pa_operation *o;
@ -1550,6 +1592,7 @@ pa_operation* pa_stream_set_name(pa_stream *s, const char *name, pa_stream_succe
return o;
}
SPA_EXPORT
int pa_stream_get_time(pa_stream *s, pa_usec_t *r_usec)
{
pa_usec_t res;
@ -1602,6 +1645,7 @@ static pa_usec_t time_counter_diff(const pa_stream *s, pa_usec_t a, pa_usec_t b,
}
}
SPA_EXPORT
int pa_stream_get_latency(pa_stream *s, pa_usec_t *r_usec, int *negative)
{
pa_usec_t t, c;
@ -1635,6 +1679,7 @@ int pa_stream_get_latency(pa_stream *s, pa_usec_t *r_usec, int *negative)
return 0;
}
SPA_EXPORT
const pa_timing_info* pa_stream_get_timing_info(pa_stream *s)
{
spa_assert(s);
@ -1651,6 +1696,7 @@ const pa_timing_info* pa_stream_get_timing_info(pa_stream *s)
return &s->timing_info;
}
SPA_EXPORT
const pa_sample_spec* pa_stream_get_sample_spec(pa_stream *s)
{
spa_assert(s);
@ -1658,6 +1704,7 @@ const pa_sample_spec* pa_stream_get_sample_spec(pa_stream *s)
return &s->sample_spec;
}
SPA_EXPORT
const pa_channel_map* pa_stream_get_channel_map(pa_stream *s)
{
spa_assert(s);
@ -1665,6 +1712,7 @@ const pa_channel_map* pa_stream_get_channel_map(pa_stream *s)
return &s->channel_map;
}
SPA_EXPORT
const pa_format_info* pa_stream_get_format_info(pa_stream *s)
{
spa_assert(s);
@ -1675,6 +1723,7 @@ const pa_format_info* pa_stream_get_format_info(pa_stream *s)
return s->format;
}
SPA_EXPORT
const pa_buffer_attr* pa_stream_get_buffer_attr(pa_stream *s)
{
spa_assert(s);
@ -1686,6 +1735,7 @@ const pa_buffer_attr* pa_stream_get_buffer_attr(pa_stream *s)
return &s->buffer_attr;
}
SPA_EXPORT
pa_operation *pa_stream_set_buffer_attr(pa_stream *s, const pa_buffer_attr *attr, pa_stream_success_cb_t cb, void *userdata)
{
pa_operation *o;
@ -1707,6 +1757,7 @@ pa_operation *pa_stream_set_buffer_attr(pa_stream *s, const pa_buffer_attr *attr
return o;
}
SPA_EXPORT
pa_operation *pa_stream_update_sample_rate(pa_stream *s, uint32_t rate, pa_stream_success_cb_t cb, void *userdata)
{
pa_operation *o;
@ -1729,6 +1780,7 @@ pa_operation *pa_stream_update_sample_rate(pa_stream *s, uint32_t rate, pa_strea
return o;
}
SPA_EXPORT
pa_operation *pa_stream_proplist_update(pa_stream *s, pa_update_mode_t mode, pa_proplist *p, pa_stream_success_cb_t cb, void *userdata)
{
pa_operation *o;
@ -1752,6 +1804,7 @@ pa_operation *pa_stream_proplist_update(pa_stream *s, pa_update_mode_t mode, pa_
return o;
}
SPA_EXPORT
pa_operation *pa_stream_proplist_remove(pa_stream *s, const char *const keys[], pa_stream_success_cb_t cb, void *userdata)
{
pa_operation *o;
@ -1773,6 +1826,7 @@ pa_operation *pa_stream_proplist_remove(pa_stream *s, const char *const keys[],
return o;
}
SPA_EXPORT
int pa_stream_set_monitor_stream(pa_stream *s, uint32_t sink_input_idx)
{
spa_assert(s);
@ -1787,6 +1841,7 @@ int pa_stream_set_monitor_stream(pa_stream *s, uint32_t sink_input_idx)
return 0;
}
SPA_EXPORT
uint32_t pa_stream_get_monitor_stream(pa_stream *s)
{
spa_assert(s);

View file

@ -36,6 +36,7 @@ static void on_subscribed(pa_operation *o, void *userdata)
d->cb(o->context, PA_OK, d->userdata);
}
SPA_EXPORT
pa_operation* pa_context_subscribe(pa_context *c, pa_subscription_mask_t m, pa_context_success_cb_t cb, void *userdata)
{
pa_operation *o;
@ -54,6 +55,7 @@ pa_operation* pa_context_subscribe(pa_context *c, pa_subscription_mask_t m, pa_c
return o;
}
SPA_EXPORT
void pa_context_set_subscribe_callback(pa_context *c, pa_context_subscribe_cb_t cb, void *userdata)
{
pa_assert(c);

View file

@ -31,6 +31,7 @@ struct pa_threaded_mainloop
struct pw_thread_loop *tloop;
};
SPA_EXPORT
pa_threaded_mainloop *pa_threaded_mainloop_new(void)
{
pa_threaded_mainloop *m;
@ -56,6 +57,7 @@ pa_threaded_mainloop *pa_threaded_mainloop_new(void)
return NULL;
}
SPA_EXPORT
void pa_threaded_mainloop_free(pa_threaded_mainloop* m)
{
pw_thread_loop_destroy(m->tloop);
@ -63,56 +65,67 @@ void pa_threaded_mainloop_free(pa_threaded_mainloop* m)
free(m);
}
SPA_EXPORT
int pa_threaded_mainloop_start(pa_threaded_mainloop *m)
{
return pw_thread_loop_start(m->tloop);
}
SPA_EXPORT
void pa_threaded_mainloop_stop(pa_threaded_mainloop *m)
{
pw_thread_loop_stop(m->tloop);
}
SPA_EXPORT
void pa_threaded_mainloop_lock(pa_threaded_mainloop *m)
{
pw_thread_loop_lock(m->tloop);
}
SPA_EXPORT
void pa_threaded_mainloop_unlock(pa_threaded_mainloop *m)
{
pw_thread_loop_unlock(m->tloop);
}
SPA_EXPORT
void pa_threaded_mainloop_wait(pa_threaded_mainloop *m)
{
pw_thread_loop_wait(m->tloop);
}
SPA_EXPORT
void pa_threaded_mainloop_signal(pa_threaded_mainloop *m, int wait_for_accept)
{
pw_thread_loop_signal(m->tloop, wait_for_accept);
}
SPA_EXPORT
void pa_threaded_mainloop_accept(pa_threaded_mainloop *m)
{
pw_thread_loop_accept(m->tloop);
}
SPA_EXPORT
int pa_threaded_mainloop_get_retval(pa_threaded_mainloop *m)
{
return pa_mainloop_get_retval(m->loop);
}
SPA_EXPORT
pa_mainloop_api* pa_threaded_mainloop_get_api(pa_threaded_mainloop*m)
{
return pa_mainloop_get_api(m->loop);
}
SPA_EXPORT
int pa_threaded_mainloop_in_thread(pa_threaded_mainloop *m)
{
return pw_thread_loop_in_thread(m->tloop);
}
SPA_EXPORT
void pa_threaded_mainloop_set_name(pa_threaded_mainloop *m, const char *name)
{
}

View file

@ -35,6 +35,7 @@
#define HAVE_GETTIMEOFDAY
SPA_EXPORT
struct timeval *pa_gettimeofday(struct timeval *tv) {
pa_assert(tv);
@ -71,6 +72,7 @@ struct timeval *pa_gettimeofday(struct timeval *tv) {
return tv;
}
SPA_EXPORT
pa_usec_t pa_timeval_diff(const struct timeval *a, const struct timeval *b) {
pa_usec_t r;
@ -97,6 +99,7 @@ pa_usec_t pa_timeval_diff(const struct timeval *a, const struct timeval *b) {
return r;
}
SPA_EXPORT
int pa_timeval_cmp(const struct timeval *a, const struct timeval *b) {
pa_assert(a);
pa_assert(b);
@ -116,6 +119,7 @@ int pa_timeval_cmp(const struct timeval *a, const struct timeval *b) {
return 0;
}
SPA_EXPORT
pa_usec_t pa_timeval_age(const struct timeval *tv) {
struct timeval now;
pa_assert(tv);
@ -123,6 +127,7 @@ pa_usec_t pa_timeval_age(const struct timeval *tv) {
return pa_timeval_diff(pa_gettimeofday(&now), tv);
}
SPA_EXPORT
struct timeval* pa_timeval_add(struct timeval *tv, pa_usec_t v) {
time_t secs;
pa_assert(tv);
@ -154,6 +159,7 @@ overflow:
return tv;
}
SPA_EXPORT
struct timeval* pa_timeval_sub(struct timeval *tv, pa_usec_t v) {
time_t secs;
pa_assert(tv);
@ -185,6 +191,7 @@ underflow:
return tv;
}
SPA_EXPORT
struct timeval* pa_timeval_store(struct timeval *tv, pa_usec_t v) {
pa_assert(tv);
@ -201,6 +208,7 @@ struct timeval* pa_timeval_store(struct timeval *tv, pa_usec_t v) {
return tv;
}
SPA_EXPORT
pa_usec_t pa_timeval_load(const struct timeval *tv) {
if (PA_UNLIKELY(!tv))

View file

@ -172,10 +172,12 @@ failure:
return NULL;
}
SPA_EXPORT
char* pa_utf8_valid (const char *str) {
return utf8_validate(str, NULL);
}
SPA_EXPORT
char* pa_utf8_filter (const char *str) {
char *new_str;
@ -233,22 +235,26 @@ static char* iconv_simple(const char *str, const char *to, const char *from) {
return new_str;
}
SPA_EXPORT
char* pa_utf8_to_locale (const char *str) {
return iconv_simple(str, "", "UTF-8");
}
SPA_EXPORT
char* pa_locale_to_utf8 (const char *str) {
return iconv_simple(str, "UTF-8", "");
}
#else
SPA_EXPORT
char* pa_utf8_to_locale (const char *str) {
pa_assert(str);
return pa_ascii_filter(str);
}
SPA_EXPORT
char* pa_locale_to_utf8 (const char *str) {
pa_assert(str);
@ -260,6 +266,7 @@ char* pa_locale_to_utf8 (const char *str) {
#endif
SPA_EXPORT
char *pa_ascii_valid(const char *str) {
const char *p;
pa_assert(str);
@ -271,6 +278,7 @@ char *pa_ascii_valid(const char *str) {
return (char*) str;
}
SPA_EXPORT
char *pa_ascii_filter(const char *str) {
char *r, *s, *d;
pa_assert(str);

View file

@ -26,33 +26,39 @@
#define PA_PATH_SEP_CHAR '/'
SPA_EXPORT
char *pa_get_user_name(char *s, size_t l)
{
return strncpy(s, pw_get_user_name(), l);
}
SPA_EXPORT
char *pa_get_host_name(char *s, size_t l)
{
return strncpy(s, pw_get_host_name(), l);
}
SPA_EXPORT
char *pa_get_fqdn(char *s, size_t l)
{
return strncpy(s, pw_get_host_name(), l);
}
SPA_EXPORT
char *pa_get_home_dir(char *s, size_t l)
{
pw_log_warn("Not Implemented");
return NULL;
}
SPA_EXPORT
char *pa_get_binary_name(char *s, size_t l)
{
return strncpy(s, pw_get_prgname(), l);
}
SPA_EXPORT
char *pa_path_get_filename(const char *p)
{
char *fn;
@ -66,6 +72,7 @@ char *pa_path_get_filename(const char *p)
return (char*) p;
}
SPA_EXPORT
int pa_msleep(unsigned long t)
{
struct timespec ts;

View file

@ -17,8 +17,11 @@
* Boston, MA 02110-1301, USA.
*/
#include <spa/utils/defs.h>
#include <pulse/version.h>
SPA_EXPORT
const char* pa_get_library_version(void)
{
return pa_get_headers_version();

View file

@ -30,6 +30,7 @@
#include "internal.h"
#include "sample-util.h"
SPA_EXPORT
int pa_cvolume_equal(const pa_cvolume *a, const pa_cvolume *b) {
int i;
pa_assert(a);
@ -52,6 +53,7 @@ int pa_cvolume_equal(const pa_cvolume *a, const pa_cvolume *b) {
return 1;
}
SPA_EXPORT
pa_cvolume* pa_cvolume_init(pa_cvolume *a) {
unsigned c;
@ -65,6 +67,7 @@ pa_cvolume* pa_cvolume_init(pa_cvolume *a) {
return a;
}
SPA_EXPORT
pa_cvolume* pa_cvolume_set(pa_cvolume *a, unsigned channels, pa_volume_t v) {
int i;
@ -81,6 +84,7 @@ pa_cvolume* pa_cvolume_set(pa_cvolume *a, unsigned channels, pa_volume_t v) {
return a;
}
SPA_EXPORT
pa_volume_t pa_cvolume_avg(const pa_cvolume *a) {
uint64_t sum = 0;
unsigned c;
@ -96,6 +100,7 @@ pa_volume_t pa_cvolume_avg(const pa_cvolume *a) {
return (pa_volume_t) sum;
}
SPA_EXPORT
pa_volume_t pa_cvolume_avg_mask(const pa_cvolume *a, const pa_channel_map *cm, pa_channel_position_mask_t mask) {
uint64_t sum = 0;
unsigned c, n;
@ -122,6 +127,7 @@ pa_volume_t pa_cvolume_avg_mask(const pa_cvolume *a, const pa_channel_map *cm, p
return (pa_volume_t) sum;
}
SPA_EXPORT
pa_volume_t pa_cvolume_max(const pa_cvolume *a) {
pa_volume_t m = PA_VOLUME_MUTED;
unsigned c;
@ -136,6 +142,7 @@ pa_volume_t pa_cvolume_max(const pa_cvolume *a) {
return m;
}
SPA_EXPORT
pa_volume_t pa_cvolume_min(const pa_cvolume *a) {
pa_volume_t m = PA_VOLUME_MAX;
unsigned c;
@ -150,6 +157,7 @@ pa_volume_t pa_cvolume_min(const pa_cvolume *a) {
return m;
}
SPA_EXPORT
pa_volume_t pa_cvolume_max_mask(const pa_cvolume *a, const pa_channel_map *cm, pa_channel_position_mask_t mask) {
pa_volume_t m = PA_VOLUME_MUTED;
unsigned c;
@ -173,6 +181,7 @@ pa_volume_t pa_cvolume_max_mask(const pa_cvolume *a, const pa_channel_map *cm, p
return m;
}
SPA_EXPORT
pa_volume_t pa_cvolume_min_mask(const pa_cvolume *a, const pa_channel_map *cm, pa_channel_position_mask_t mask) {
pa_volume_t m = PA_VOLUME_MAX;
unsigned c;
@ -196,6 +205,7 @@ pa_volume_t pa_cvolume_min_mask(const pa_cvolume *a, const pa_channel_map *cm, p
return m;
}
SPA_EXPORT
pa_volume_t pa_sw_volume_multiply(pa_volume_t a, pa_volume_t b) {
uint64_t result;
@ -212,6 +222,7 @@ pa_volume_t pa_sw_volume_multiply(pa_volume_t a, pa_volume_t b) {
return (pa_volume_t) PA_CLAMP_VOLUME(result);
}
SPA_EXPORT
pa_volume_t pa_sw_volume_divide(pa_volume_t a, pa_volume_t b) {
uint64_t result;
@ -238,6 +249,7 @@ static double dB_to_linear(double v) {
return pow(10.0, v / 20.0);
}
SPA_EXPORT
pa_volume_t pa_sw_volume_from_dB(double dB) {
if (isinf(dB) < 0 || dB <= PA_DECIBEL_MININFTY)
return PA_VOLUME_MUTED;
@ -245,6 +257,7 @@ pa_volume_t pa_sw_volume_from_dB(double dB) {
return pa_sw_volume_from_linear(dB_to_linear(dB));
}
SPA_EXPORT
double pa_sw_volume_to_dB(pa_volume_t v) {
pa_return_val_if_fail(PA_VOLUME_IS_VALID(v), PA_DECIBEL_MININFTY);
@ -255,6 +268,7 @@ double pa_sw_volume_to_dB(pa_volume_t v) {
return linear_to_dB(pa_sw_volume_to_linear(v));
}
SPA_EXPORT
pa_volume_t pa_sw_volume_from_linear(double v) {
if (v <= 0.0)
@ -273,6 +287,7 @@ pa_volume_t pa_sw_volume_from_linear(double v) {
return (pa_volume_t) PA_CLAMP_VOLUME((uint64_t) lround(cbrt(v) * PA_VOLUME_NORM));
}
SPA_EXPORT
double pa_sw_volume_to_linear(pa_volume_t v) {
double f;
@ -289,6 +304,7 @@ double pa_sw_volume_to_linear(pa_volume_t v) {
return f*f*f;
}
SPA_EXPORT
char *pa_cvolume_snprint(char *s, size_t l, const pa_cvolume *c) {
unsigned channel;
bool first = true;
@ -320,6 +336,7 @@ char *pa_cvolume_snprint(char *s, size_t l, const pa_cvolume *c) {
return s;
}
SPA_EXPORT
char *pa_volume_snprint(char *s, size_t l, pa_volume_t v) {
pa_assert(s);
pa_assert(l > 0);
@ -335,6 +352,7 @@ char *pa_volume_snprint(char *s, size_t l, pa_volume_t v) {
return s;
}
SPA_EXPORT
char *pa_sw_cvolume_snprint_dB(char *s, size_t l, const pa_cvolume *c) {
unsigned channel;
bool first = true;
@ -368,6 +386,7 @@ char *pa_sw_cvolume_snprint_dB(char *s, size_t l, const pa_cvolume *c) {
return s;
}
SPA_EXPORT
char *pa_cvolume_snprint_verbose(char *s, size_t l, const pa_cvolume *c, const pa_channel_map *map, int print_dB) {
char *current = s;
bool first = true;
@ -410,6 +429,7 @@ char *pa_cvolume_snprint_verbose(char *s, size_t l, const pa_cvolume *c, const p
return s;
}
SPA_EXPORT
char *pa_sw_volume_snprint_dB(char *s, size_t l, pa_volume_t v) {
double f;
@ -429,6 +449,7 @@ char *pa_sw_volume_snprint_dB(char *s, size_t l, pa_volume_t v) {
return s;
}
SPA_EXPORT
char *pa_volume_snprint_verbose(char *s, size_t l, pa_volume_t v, int print_dB) {
char dB[PA_SW_VOLUME_SNPRINT_DB_MAX];
@ -451,6 +472,7 @@ char *pa_volume_snprint_verbose(char *s, size_t l, pa_volume_t v, int print_dB)
return s;
}
SPA_EXPORT
int pa_cvolume_channels_equal_to(const pa_cvolume *a, pa_volume_t v) {
unsigned c;
pa_assert(a);
@ -465,6 +487,7 @@ int pa_cvolume_channels_equal_to(const pa_cvolume *a, pa_volume_t v) {
return 1;
}
SPA_EXPORT
pa_cvolume *pa_sw_cvolume_multiply(pa_cvolume *dest, const pa_cvolume *a, const pa_cvolume *b) {
unsigned i;
@ -483,6 +506,7 @@ pa_cvolume *pa_sw_cvolume_multiply(pa_cvolume *dest, const pa_cvolume *a, const
return dest;
}
SPA_EXPORT
pa_cvolume *pa_sw_cvolume_multiply_scalar(pa_cvolume *dest, const pa_cvolume *a, pa_volume_t b) {
unsigned i;
@ -500,6 +524,7 @@ pa_cvolume *pa_sw_cvolume_multiply_scalar(pa_cvolume *dest, const pa_cvolume *a,
return dest;
}
SPA_EXPORT
pa_cvolume *pa_sw_cvolume_divide(pa_cvolume *dest, const pa_cvolume *a, const pa_cvolume *b) {
unsigned i;
@ -518,6 +543,7 @@ pa_cvolume *pa_sw_cvolume_divide(pa_cvolume *dest, const pa_cvolume *a, const pa
return dest;
}
SPA_EXPORT
pa_cvolume *pa_sw_cvolume_divide_scalar(pa_cvolume *dest, const pa_cvolume *a, pa_volume_t b) {
unsigned i;
@ -535,6 +561,7 @@ pa_cvolume *pa_sw_cvolume_divide_scalar(pa_cvolume *dest, const pa_cvolume *a, p
return dest;
}
SPA_EXPORT
int pa_cvolume_valid(const pa_cvolume *v) {
unsigned c;
@ -578,6 +605,7 @@ static bool on_rear(pa_channel_position_t p) {
return !!(PA_CHANNEL_POSITION_MASK(p) & PA_CHANNEL_POSITION_MASK_REAR);
}
SPA_EXPORT
pa_cvolume *pa_cvolume_remap(pa_cvolume *v, const pa_channel_map *from, const pa_channel_map *to) {
int a, b;
pa_cvolume result;
@ -628,6 +656,7 @@ pa_cvolume *pa_cvolume_remap(pa_cvolume *v, const pa_channel_map *from, const pa
return v;
}
SPA_EXPORT
int pa_cvolume_compatible(const pa_cvolume *v, const pa_sample_spec *ss) {
pa_assert(v);
@ -639,6 +668,7 @@ int pa_cvolume_compatible(const pa_cvolume *v, const pa_sample_spec *ss) {
return v->channels == ss->channels;
}
SPA_EXPORT
int pa_cvolume_compatible_with_channel_map(const pa_cvolume *v, const pa_channel_map *cm) {
pa_assert(v);
pa_assert(cm);
@ -686,6 +716,7 @@ static void get_avg(const pa_channel_map *map, const pa_cvolume *v, pa_volume_t
*r = right / n_right;
}
SPA_EXPORT
float pa_cvolume_get_balance(const pa_cvolume *v, const pa_channel_map *map) {
pa_volume_t left, right;
@ -753,6 +784,7 @@ static pa_cvolume* set_balance(pa_cvolume *v, const pa_channel_map *map, float n
}
SPA_EXPORT
pa_cvolume* pa_cvolume_set_balance(pa_cvolume *v, const pa_channel_map *map, float new_balance) {
pa_assert(map);
pa_assert(v);
@ -767,6 +799,7 @@ pa_cvolume* pa_cvolume_set_balance(pa_cvolume *v, const pa_channel_map *map, flo
return set_balance(v, map, new_balance, on_left, on_right);
}
SPA_EXPORT
pa_cvolume* pa_cvolume_scale(pa_cvolume *v, pa_volume_t max) {
unsigned c;
pa_volume_t t = 0;
@ -787,6 +820,7 @@ pa_cvolume* pa_cvolume_scale(pa_cvolume *v, pa_volume_t max) {
return v;
}
SPA_EXPORT
#if PA_CHECK_VERSION(12, 0, 0)
pa_cvolume* pa_cvolume_scale_mask(pa_cvolume *v, pa_volume_t max, const pa_channel_map *cm, pa_channel_position_mask_t mask) {
#else
@ -815,6 +849,7 @@ pa_cvolume* pa_cvolume_scale_mask(pa_cvolume *v, pa_volume_t max, pa_channel_map
return v;
}
SPA_EXPORT
float pa_cvolume_get_fade(const pa_cvolume *v, const pa_channel_map *map) {
pa_volume_t rear, front;
@ -837,6 +872,7 @@ float pa_cvolume_get_fade(const pa_cvolume *v, const pa_channel_map *map) {
return 1.0f - ((float) rear / (float) front);
}
SPA_EXPORT
pa_cvolume* pa_cvolume_set_fade(pa_cvolume *v, const pa_channel_map *map, float new_fade) {
pa_assert(map);
pa_assert(v);
@ -851,6 +887,7 @@ pa_cvolume* pa_cvolume_set_fade(pa_cvolume *v, const pa_channel_map *map, float
return set_balance(v, map, new_fade, on_rear, on_front);
}
SPA_EXPORT
float pa_cvolume_get_lfe_balance(const pa_cvolume *v, const pa_channel_map *map) {
pa_volume_t hfe, lfe;
@ -873,6 +910,7 @@ float pa_cvolume_get_lfe_balance(const pa_cvolume *v, const pa_channel_map *map)
return 1.0f - ((float) hfe / (float) lfe);
}
SPA_EXPORT
pa_cvolume* pa_cvolume_set_lfe_balance(pa_cvolume *v, const pa_channel_map *map, float new_balance) {
pa_assert(map);
pa_assert(v);
@ -887,6 +925,7 @@ pa_cvolume* pa_cvolume_set_lfe_balance(pa_cvolume *v, const pa_channel_map *map,
return set_balance(v, map, new_balance, on_hfe, on_lfe);
}
SPA_EXPORT
pa_cvolume* pa_cvolume_set_position(
pa_cvolume *cv,
const pa_channel_map *map,
@ -912,6 +951,7 @@ pa_cvolume* pa_cvolume_set_position(
return good ? cv : NULL;
}
SPA_EXPORT
pa_volume_t pa_cvolume_get_position(
pa_cvolume *cv,
const pa_channel_map *map,
@ -934,6 +974,7 @@ pa_volume_t pa_cvolume_get_position(
return v;
}
SPA_EXPORT
pa_cvolume* pa_cvolume_merge(pa_cvolume *dest, const pa_cvolume *a, const pa_cvolume *b) {
unsigned i;
@ -952,6 +993,7 @@ pa_cvolume* pa_cvolume_merge(pa_cvolume *dest, const pa_cvolume *a, const pa_cvo
return dest;
}
SPA_EXPORT
pa_cvolume* pa_cvolume_inc_clamp(pa_cvolume *v, pa_volume_t inc, pa_volume_t limit) {
pa_volume_t m;
@ -970,10 +1012,12 @@ pa_cvolume* pa_cvolume_inc_clamp(pa_cvolume *v, pa_volume_t inc, pa_volume_t lim
return pa_cvolume_scale(v, m);
}
SPA_EXPORT
pa_cvolume* pa_cvolume_inc(pa_cvolume *v, pa_volume_t inc) {
return pa_cvolume_inc_clamp(v, inc, PA_VOLUME_MAX);
}
SPA_EXPORT
pa_cvolume* pa_cvolume_dec(pa_cvolume *v, pa_volume_t dec) {
pa_volume_t m;

View file

@ -35,6 +35,7 @@ static void oom(void) {
_exit(1);
}
SPA_EXPORT
void* pa_xmalloc(size_t l)
{
void *p;
@ -47,6 +48,7 @@ void* pa_xmalloc(size_t l)
return p;
}
SPA_EXPORT
void *pa_xmalloc0(size_t l)
{
void *p;
@ -59,6 +61,7 @@ void *pa_xmalloc0(size_t l)
return p;
}
SPA_EXPORT
void *pa_xrealloc(void *ptr, size_t size)
{
void *p;
@ -70,6 +73,7 @@ void *pa_xrealloc(void *ptr, size_t size)
return p;
}
SPA_EXPORT
void pa_xfree(void *p)
{
int saved_errno;
@ -80,6 +84,7 @@ void pa_xfree(void *p)
errno = saved_errno;
}
SPA_EXPORT
char *pa_xstrdup(const char *s)
{
if (!s)
@ -87,6 +92,7 @@ char *pa_xstrdup(const char *s)
return pa_xmemdup(s, strlen(s)+1);
}
SPA_EXPORT
char *pa_xstrndup(const char *s, size_t l)
{
char *e, *r;
@ -103,6 +109,7 @@ char *pa_xstrndup(const char *s, size_t l)
return r;
}
SPA_EXPORT
void* pa_xmemdup(const void *p, size_t l)
{
if (!p)