From: Lennart Poettering Date: Tue, 11 Sep 2007 12:42:17 +0000 (+0000) Subject: port client libs to refcnt.h X-Git-Tag: 1.0_branch~2762^2~1^2~168 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=597a1c4e82f2bb84e983d0cbb9be7e79c5607c00;p=profile%2Fivi%2Fpulseaudio.git port client libs to refcnt.h git-svn-id: file:///home/lennart/svn/public/pulseaudio/branches/lennart@1802 fefdeb5f-60dc-0310-8127-8f9354f1896f --- diff --git a/src/pulse/context.c b/src/pulse/context.c index 8125c64..c168502 100644 --- a/src/pulse/context.c +++ b/src/pulse/context.c @@ -110,7 +110,7 @@ pa_context *pa_context_new(pa_mainloop_api *mainloop, const char *name) { assert(name); c = pa_xnew(pa_context, 1); - c->ref = 1; + PA_REFCNT_INIT(c); c->name = pa_xstrdup(name); c->mainloop = mainloop; c->client = NULL; @@ -207,23 +207,23 @@ static void context_free(pa_context *c) { pa_context* pa_context_ref(pa_context *c) { assert(c); - assert(c->ref >= 1); + assert(PA_REFCNT_VALUE(c) >= 1); - c->ref++; + PA_REFCNT_INC(c); return c; } void pa_context_unref(pa_context *c) { assert(c); - assert(c->ref >= 1); + assert(PA_REFCNT_VALUE(c) >= 1); - if (--c->ref <= 0) + if (PA_REFCNT_DEC(c) <= 0) context_free(c); } void pa_context_set_state(pa_context *c, pa_context_state_t st) { assert(c); - assert(c->ref >= 1); + assert(PA_REFCNT_VALUE(c) >= 1); if (c->state == st) return; @@ -265,7 +265,7 @@ void pa_context_set_state(pa_context *c, pa_context_state_t st) { void pa_context_fail(pa_context *c, int error) { assert(c); - assert(c->ref >= 1); + assert(PA_REFCNT_VALUE(c) >= 1); pa_context_set_error(c, error); pa_context_set_state(c, PA_CONTEXT_FAILED); @@ -314,7 +314,7 @@ static void pstream_memblock_callback(pa_pstream *p, uint32_t channel, int64_t o assert(chunk->memblock); assert(chunk->length); assert(c); - assert(c->ref >= 1); + assert(PA_REFCNT_VALUE(c) >= 1); pa_context_ref(c); @@ -338,7 +338,7 @@ static void pstream_memblock_callback(pa_pstream *p, uint32_t channel, int64_t o int pa_context_handle_error(pa_context *c, uint32_t command, pa_tagstruct *t) { assert(c); - assert(c->ref >= 1); + assert(PA_REFCNT_VALUE(c) >= 1); if (command == PA_COMMAND_ERROR) { assert(t); @@ -684,7 +684,7 @@ int pa_context_connect( int r = -1; assert(c); - assert(c->ref >= 1); + assert(PA_REFCNT_VALUE(c) >= 1); PA_CHECK_VALIDITY(c, c->state == PA_CONTEXT_UNCONNECTED, PA_ERR_BADSTATE); PA_CHECK_VALIDITY(c, !(flags & ~PA_CONTEXT_NOAUTOSPAWN), PA_ERR_INVALID); @@ -756,28 +756,28 @@ finish: void pa_context_disconnect(pa_context *c) { assert(c); - assert(c->ref >= 1); + assert(PA_REFCNT_VALUE(c) >= 1); pa_context_set_state(c, PA_CONTEXT_TERMINATED); } pa_context_state_t pa_context_get_state(pa_context *c) { assert(c); - assert(c->ref >= 1); + assert(PA_REFCNT_VALUE(c) >= 1); return c->state; } int pa_context_errno(pa_context *c) { assert(c); - assert(c->ref >= 1); + assert(PA_REFCNT_VALUE(c) >= 1); return c->error; } void pa_context_set_state_callback(pa_context *c, pa_context_notify_cb_t cb, void *userdata) { assert(c); - assert(c->ref >= 1); + assert(PA_REFCNT_VALUE(c) >= 1); c->state_callback = cb; c->state_userdata = userdata; @@ -785,7 +785,7 @@ void pa_context_set_state_callback(pa_context *c, pa_context_notify_cb_t cb, voi int pa_context_is_pending(pa_context *c) { assert(c); - assert(c->ref >= 1); + assert(PA_REFCNT_VALUE(c) >= 1); PA_CHECK_VALIDITY(c, c->state == PA_CONTEXT_CONNECTING || @@ -812,9 +812,9 @@ static void set_dispatch_callbacks(pa_operation *o) { int done = 1; assert(o); - assert(o->ref >= 1); + assert(PA_REFCNT_VALUE(o) >= 1); assert(o->context); - assert(o->context->ref >= 1); + assert(PA_REFCNT_VALUE(o->context) >= 1); assert(o->context->state == PA_CONTEXT_READY); pa_pstream_set_drain_callback(o->context->pstream, NULL, NULL); @@ -845,7 +845,7 @@ pa_operation* pa_context_drain(pa_context *c, pa_context_notify_cb_t cb, void *u pa_operation *o; assert(c); - assert(c->ref >= 1); + assert(PA_REFCNT_VALUE(c) >= 1); PA_CHECK_VALIDITY_RETURN_NULL(c, c->state == PA_CONTEXT_READY, PA_ERR_BADSTATE); PA_CHECK_VALIDITY_RETURN_NULL(c, pa_context_is_pending(c), PA_ERR_BADSTATE); @@ -862,7 +862,7 @@ void pa_context_simple_ack_callback(pa_pdispatch *pd, uint32_t command, PA_GCC_U assert(pd); assert(o); - assert(o->ref >= 1); + assert(PA_REFCNT_VALUE(o) >= 1); if (!o->context) goto finish; @@ -893,7 +893,7 @@ pa_operation* pa_context_exit_daemon(pa_context *c, pa_context_success_cb_t cb, uint32_t tag; assert(c); - assert(c->ref >= 1); + assert(PA_REFCNT_VALUE(c) >= 1); PA_CHECK_VALIDITY_RETURN_NULL(c, c->state == PA_CONTEXT_READY, PA_ERR_BADSTATE); @@ -912,7 +912,7 @@ pa_operation* pa_context_send_simple_command(pa_context *c, uint32_t command, pa uint32_t tag; assert(c); - assert(c->ref >= 1); + assert(PA_REFCNT_VALUE(c) >= 1); PA_CHECK_VALIDITY_RETURN_NULL(c, c->state == PA_CONTEXT_READY, PA_ERR_BADSTATE); @@ -931,7 +931,7 @@ pa_operation* pa_context_set_default_sink(pa_context *c, const char *name, pa_co uint32_t tag; assert(c); - assert(c->ref >= 1); + assert(PA_REFCNT_VALUE(c) >= 1); PA_CHECK_VALIDITY_RETURN_NULL(c, c->state == PA_CONTEXT_READY, PA_ERR_BADSTATE); @@ -951,7 +951,7 @@ pa_operation* pa_context_set_default_source(pa_context *c, const char *name, pa_ uint32_t tag; assert(c); - assert(c->ref >= 1); + assert(PA_REFCNT_VALUE(c) >= 1); PA_CHECK_VALIDITY_RETURN_NULL(c, c->state == PA_CONTEXT_READY, PA_ERR_BADSTATE); @@ -977,7 +977,7 @@ pa_operation* pa_context_set_name(pa_context *c, const char *name, pa_context_su uint32_t tag; assert(c); - assert(c->ref >= 1); + assert(PA_REFCNT_VALUE(c) >= 1); assert(name); PA_CHECK_VALIDITY_RETURN_NULL(c, c->state == PA_CONTEXT_READY, PA_ERR_BADSTATE); @@ -998,7 +998,7 @@ const char* pa_get_library_version(void) { const char* pa_context_get_server(pa_context *c) { assert(c); - assert(c->ref >= 1); + assert(PA_REFCNT_VALUE(c) >= 1); if (!c->server) return NULL; @@ -1017,7 +1017,7 @@ uint32_t pa_context_get_protocol_version(PA_GCC_UNUSED pa_context *c) { uint32_t pa_context_get_server_protocol_version(pa_context *c) { assert(c); - assert(c->ref >= 1); + assert(PA_REFCNT_VALUE(c) >= 1); return c->version; } diff --git a/src/pulse/internal.h b/src/pulse/internal.h index e5c9ef1..95593ad 100644 --- a/src/pulse/internal.h +++ b/src/pulse/internal.h @@ -41,13 +41,14 @@ #include #include #include +#include #include "client-conf.h" #define DEFAULT_TIMEOUT (30) struct pa_context { - int ref; + PA_REFCNT_DECLARE; char *name; pa_mainloop_api* mainloop; @@ -96,7 +97,7 @@ typedef struct pa_index_correction { } pa_index_correction; struct pa_stream { - int ref; + PA_REFCNT_DECLARE; pa_context *context; pa_mainloop_api *mainloop; PA_LLIST_FIELDS(pa_stream); @@ -161,7 +162,8 @@ struct pa_stream { typedef void (*pa_operation_cb_t)(void); struct pa_operation { - int ref; + PA_REFCNT_DECLARE; + pa_context *context; pa_stream *stream; diff --git a/src/pulse/introspect.c b/src/pulse/introspect.c index 568749d..1d2f52e 100644 --- a/src/pulse/introspect.c +++ b/src/pulse/introspect.c @@ -45,7 +45,7 @@ static void context_stat_callback(pa_pdispatch *pd, uint32_t command, PA_GCC_UNU assert(pd); assert(o); - assert(o->ref >= 1); + assert(PA_REFCNT_VALUE(o) >= 1); memset(&i, 0, sizeof(i)); @@ -88,7 +88,7 @@ static void context_get_server_info_callback(pa_pdispatch *pd, uint32_t command, assert(pd); assert(o); - assert(o->ref >= 1); + assert(PA_REFCNT_VALUE(o) >= 1); memset(&i, 0, sizeof(i)); @@ -135,7 +135,7 @@ static void context_get_sink_info_callback(pa_pdispatch *pd, uint32_t command, P assert(pd); assert(o); - assert(o->ref >= 1); + assert(PA_REFCNT_VALUE(o) >= 1); if (!o->context) goto finish; @@ -199,7 +199,7 @@ pa_operation* pa_context_get_sink_info_by_index(pa_context *c, uint32_t idx, pa_ uint32_t tag; assert(c); - assert(c->ref >= 1); + assert(PA_REFCNT_VALUE(c) >= 1); assert(cb); PA_CHECK_VALIDITY_RETURN_NULL(c, c->state == PA_CONTEXT_READY, PA_ERR_BADSTATE); @@ -221,7 +221,7 @@ pa_operation* pa_context_get_sink_info_by_name(pa_context *c, const char *name, uint32_t tag; assert(c); - assert(c->ref >= 1); + assert(PA_REFCNT_VALUE(c) >= 1); assert(cb); PA_CHECK_VALIDITY_RETURN_NULL(c, c->state == PA_CONTEXT_READY, PA_ERR_BADSTATE); @@ -246,7 +246,7 @@ static void context_get_source_info_callback(pa_pdispatch *pd, uint32_t command, assert(pd); assert(o); - assert(o->ref >= 1); + assert(PA_REFCNT_VALUE(o) >= 1); if (!o->context) goto finish; @@ -310,7 +310,7 @@ pa_operation* pa_context_get_source_info_by_index(pa_context *c, uint32_t idx, p uint32_t tag; assert(c); - assert(c->ref >= 1); + assert(PA_REFCNT_VALUE(c) >= 1); assert(cb); PA_CHECK_VALIDITY_RETURN_NULL(c, c->state == PA_CONTEXT_READY, PA_ERR_BADSTATE); @@ -332,7 +332,7 @@ pa_operation* pa_context_get_source_info_by_name(pa_context *c, const char *name uint32_t tag; assert(c); - assert(c->ref >= 1); + assert(PA_REFCNT_VALUE(c) >= 1); assert(cb); PA_CHECK_VALIDITY_RETURN_NULL(c, c->state == PA_CONTEXT_READY, PA_ERR_BADSTATE); @@ -357,7 +357,7 @@ static void context_get_client_info_callback(pa_pdispatch *pd, uint32_t command, assert(pd); assert(o); - assert(o->ref >= 1); + assert(PA_REFCNT_VALUE(o) >= 1); if (!o->context) goto finish; @@ -404,7 +404,7 @@ pa_operation* pa_context_get_client_info(pa_context *c, uint32_t idx, pa_client_ uint32_t tag; assert(c); - assert(c->ref >= 1); + assert(PA_REFCNT_VALUE(c) >= 1); assert(cb); PA_CHECK_VALIDITY_RETURN_NULL(c, c->state == PA_CONTEXT_READY, PA_ERR_BADSTATE); @@ -432,7 +432,7 @@ static void context_get_module_info_callback(pa_pdispatch *pd, uint32_t command, assert(pd); assert(o); - assert(o->ref >= 1); + assert(PA_REFCNT_VALUE(o) >= 1); if (!o->context) goto finish; @@ -480,7 +480,7 @@ pa_operation* pa_context_get_module_info(pa_context *c, uint32_t idx, pa_module_ uint32_t tag; assert(c); - assert(c->ref >= 1); + assert(PA_REFCNT_VALUE(c) >= 1); assert(cb); PA_CHECK_VALIDITY_RETURN_NULL(c, c->state == PA_CONTEXT_READY, PA_ERR_BADSTATE); @@ -508,7 +508,7 @@ static void context_get_sink_input_info_callback(pa_pdispatch *pd, uint32_t comm assert(pd); assert(o); - assert(o->ref >= 1); + assert(PA_REFCNT_VALUE(o) >= 1); if (!o->context) goto finish; @@ -565,7 +565,7 @@ pa_operation* pa_context_get_sink_input_info(pa_context *c, uint32_t idx, pa_sin uint32_t tag; assert(c); - assert(c->ref >= 1); + assert(PA_REFCNT_VALUE(c) >= 1); assert(cb); PA_CHECK_VALIDITY_RETURN_NULL(c, c->state == PA_CONTEXT_READY, PA_ERR_BADSTATE); @@ -593,7 +593,7 @@ static void context_get_source_output_info_callback(pa_pdispatch *pd, uint32_t c assert(pd); assert(o); - assert(o->ref >= 1); + assert(PA_REFCNT_VALUE(o) >= 1); if (!o->context) goto finish; @@ -649,7 +649,7 @@ pa_operation* pa_context_get_source_output_info(pa_context *c, uint32_t idx, pa_ uint32_t tag; assert(c); - assert(c->ref >= 1); + assert(PA_REFCNT_VALUE(c) >= 1); assert(cb); PA_CHECK_VALIDITY_RETURN_NULL(c, c->state == PA_CONTEXT_READY, PA_ERR_BADSTATE); @@ -677,7 +677,7 @@ pa_operation* pa_context_set_sink_volume_by_index(pa_context *c, uint32_t idx, c uint32_t tag; assert(c); - assert(c->ref >= 1); + assert(PA_REFCNT_VALUE(c) >= 1); assert(volume); PA_CHECK_VALIDITY_RETURN_NULL(c, c->state == PA_CONTEXT_READY, PA_ERR_BADSTATE); @@ -701,7 +701,7 @@ pa_operation* pa_context_set_sink_volume_by_name(pa_context *c, const char *name uint32_t tag; assert(c); - assert(c->ref >= 1); + assert(PA_REFCNT_VALUE(c) >= 1); assert(name); assert(volume); @@ -727,7 +727,7 @@ pa_operation* pa_context_set_sink_mute_by_index(pa_context *c, uint32_t idx, int uint32_t tag; assert(c); - assert(c->ref >= 1); + assert(PA_REFCNT_VALUE(c) >= 1); PA_CHECK_VALIDITY_RETURN_NULL(c, c->state == PA_CONTEXT_READY, PA_ERR_BADSTATE); @@ -749,7 +749,7 @@ pa_operation* pa_context_set_sink_mute_by_name(pa_context *c, const char *name, uint32_t tag; assert(c); - assert(c->ref >= 1); + assert(PA_REFCNT_VALUE(c) >= 1); assert(name); PA_CHECK_VALIDITY_RETURN_NULL(c, c->state == PA_CONTEXT_READY, PA_ERR_BADSTATE); @@ -773,7 +773,7 @@ pa_operation* pa_context_set_sink_input_volume(pa_context *c, uint32_t idx, cons uint32_t tag; assert(c); - assert(c->ref >= 1); + assert(PA_REFCNT_VALUE(c) >= 1); assert(volume); PA_CHECK_VALIDITY_RETURN_NULL(c, c->state == PA_CONTEXT_READY, PA_ERR_BADSTATE); @@ -797,7 +797,7 @@ pa_operation* pa_context_set_sink_input_mute(pa_context *c, uint32_t idx, int mu uint32_t tag; assert(c); - assert(c->ref >= 1); + assert(PA_REFCNT_VALUE(c) >= 1); PA_CHECK_VALIDITY_RETURN_NULL(c, c->state == PA_CONTEXT_READY, PA_ERR_BADSTATE); PA_CHECK_VALIDITY_RETURN_NULL(c, idx != PA_INVALID_INDEX, PA_ERR_INVALID); @@ -820,7 +820,7 @@ pa_operation* pa_context_set_source_volume_by_index(pa_context *c, uint32_t idx, uint32_t tag; assert(c); - assert(c->ref >= 1); + assert(PA_REFCNT_VALUE(c) >= 1); assert(volume); PA_CHECK_VALIDITY_RETURN_NULL(c, c->state == PA_CONTEXT_READY, PA_ERR_BADSTATE); @@ -844,7 +844,7 @@ pa_operation* pa_context_set_source_volume_by_name(pa_context *c, const char *na uint32_t tag; assert(c); - assert(c->ref >= 1); + assert(PA_REFCNT_VALUE(c) >= 1); assert(name); assert(volume); @@ -870,7 +870,7 @@ pa_operation* pa_context_set_source_mute_by_index(pa_context *c, uint32_t idx, i uint32_t tag; assert(c); - assert(c->ref >= 1); + assert(PA_REFCNT_VALUE(c) >= 1); PA_CHECK_VALIDITY_RETURN_NULL(c, c->state == PA_CONTEXT_READY, PA_ERR_BADSTATE); @@ -892,7 +892,7 @@ pa_operation* pa_context_set_source_mute_by_name(pa_context *c, const char *name uint32_t tag; assert(c); - assert(c->ref >= 1); + assert(PA_REFCNT_VALUE(c) >= 1); assert(name); PA_CHECK_VALIDITY_RETURN_NULL(c, c->state == PA_CONTEXT_READY, PA_ERR_BADSTATE); @@ -918,7 +918,7 @@ static void context_get_sample_info_callback(pa_pdispatch *pd, uint32_t command, assert(pd); assert(o); - assert(o->ref >= 1); + assert(PA_REFCNT_VALUE(o) >= 1); if (!o->context) goto finish; @@ -972,7 +972,7 @@ pa_operation* pa_context_get_sample_info_by_name(pa_context *c, const char *name uint32_t tag; assert(c); - assert(c->ref >= 1); + assert(PA_REFCNT_VALUE(c) >= 1); assert(cb); PA_CHECK_VALIDITY_RETURN_NULL(c, c->state == PA_CONTEXT_READY, PA_ERR_BADSTATE); @@ -995,7 +995,7 @@ pa_operation* pa_context_get_sample_info_by_index(pa_context *c, uint32_t idx, p uint32_t tag; assert(c); - assert(c->ref >= 1); + assert(PA_REFCNT_VALUE(c) >= 1); assert(cb); PA_CHECK_VALIDITY_RETURN_NULL(c, c->state == PA_CONTEXT_READY, PA_ERR_BADSTATE); @@ -1022,7 +1022,7 @@ static pa_operation* command_kill(pa_context *c, uint32_t command, uint32_t idx, uint32_t tag; assert(c); - assert(c->ref >= 1); + assert(PA_REFCNT_VALUE(c) >= 1); PA_CHECK_VALIDITY_RETURN_NULL(c, c->state == PA_CONTEXT_READY, PA_ERR_BADSTATE); PA_CHECK_VALIDITY_RETURN_NULL(c, idx != PA_INVALID_INDEX, PA_ERR_INVALID); @@ -1055,7 +1055,7 @@ static void context_index_callback(pa_pdispatch *pd, uint32_t command, PA_GCC_UN assert(pd); assert(o); - assert(o->ref >= 1); + assert(PA_REFCNT_VALUE(o) >= 1); if (!o->context) goto finish; @@ -1088,7 +1088,7 @@ pa_operation* pa_context_load_module(pa_context *c, const char*name, const char uint32_t tag; assert(c); - assert(c->ref >= 1); + assert(PA_REFCNT_VALUE(c) >= 1); PA_CHECK_VALIDITY_RETURN_NULL(c, c->state == PA_CONTEXT_READY, PA_ERR_BADSTATE); PA_CHECK_VALIDITY_RETURN_NULL(c, name && *name, PA_ERR_INVALID); @@ -1116,7 +1116,7 @@ static void context_get_autoload_info_callback(pa_pdispatch *pd, uint32_t comman assert(pd); assert(o); - assert(o->ref >= 1); + assert(PA_REFCNT_VALUE(o) >= 1); if (!o->context) goto finish; @@ -1165,7 +1165,7 @@ pa_operation* pa_context_get_autoload_info_by_name(pa_context *c, const char *na uint32_t tag; assert(c); - assert(c->ref >= 1); + assert(PA_REFCNT_VALUE(c) >= 1); assert(cb); PA_CHECK_VALIDITY_RETURN_NULL(c, c->state == PA_CONTEXT_READY, PA_ERR_BADSTATE); @@ -1189,7 +1189,7 @@ pa_operation* pa_context_get_autoload_info_by_index(pa_context *c, uint32_t idx, uint32_t tag; assert(c); - assert(c->ref >= 1); + assert(PA_REFCNT_VALUE(c) >= 1); assert(cb); PA_CHECK_VALIDITY_RETURN_NULL(c, c->state == PA_CONTEXT_READY, PA_ERR_BADSTATE); @@ -1215,7 +1215,7 @@ pa_operation* pa_context_add_autoload(pa_context *c, const char *name, pa_autolo uint32_t tag; assert(c); - assert(c->ref >= 1); + assert(PA_REFCNT_VALUE(c) >= 1); PA_CHECK_VALIDITY_RETURN_NULL(c, c->state == PA_CONTEXT_READY, PA_ERR_BADSTATE); PA_CHECK_VALIDITY_RETURN_NULL(c, name && *name, PA_ERR_INVALID); @@ -1241,7 +1241,7 @@ pa_operation* pa_context_remove_autoload_by_name(pa_context *c, const char *name uint32_t tag; assert(c); - assert(c->ref >= 1); + assert(PA_REFCNT_VALUE(c) >= 1); PA_CHECK_VALIDITY_RETURN_NULL(c, c->state == PA_CONTEXT_READY, PA_ERR_BADSTATE); PA_CHECK_VALIDITY_RETURN_NULL(c, name && *name, PA_ERR_INVALID); @@ -1264,7 +1264,7 @@ pa_operation* pa_context_remove_autoload_by_index(pa_context *c, uint32_t idx, p uint32_t tag; assert(c); - assert(c->ref >= 1); + assert(PA_REFCNT_VALUE(c) >= 1); PA_CHECK_VALIDITY_RETURN_NULL(c, c->state == PA_CONTEXT_READY, PA_ERR_BADSTATE); PA_CHECK_VALIDITY_RETURN_NULL(c, idx != PA_INVALID_INDEX, PA_ERR_INVALID); @@ -1285,7 +1285,7 @@ pa_operation* pa_context_move_sink_input_by_name(pa_context *c, uint32_t idx, ch uint32_t tag; assert(c); - assert(c->ref >= 1); + assert(PA_REFCNT_VALUE(c) >= 1); PA_CHECK_VALIDITY_RETURN_NULL(c, c->state == PA_CONTEXT_READY, PA_ERR_BADSTATE); PA_CHECK_VALIDITY_RETURN_NULL(c, c->version >= 10, PA_ERR_NOTSUPPORTED); @@ -1310,7 +1310,7 @@ pa_operation* pa_context_move_sink_input_by_index(pa_context *c, uint32_t idx, u uint32_t tag; assert(c); - assert(c->ref >= 1); + assert(PA_REFCNT_VALUE(c) >= 1); PA_CHECK_VALIDITY_RETURN_NULL(c, c->state == PA_CONTEXT_READY, PA_ERR_BADSTATE); PA_CHECK_VALIDITY_RETURN_NULL(c, c->version >= 10, PA_ERR_NOTSUPPORTED); @@ -1335,7 +1335,7 @@ pa_operation* pa_context_move_source_output_by_name(pa_context *c, uint32_t idx, uint32_t tag; assert(c); - assert(c->ref >= 1); + assert(PA_REFCNT_VALUE(c) >= 1); PA_CHECK_VALIDITY_RETURN_NULL(c, c->state == PA_CONTEXT_READY, PA_ERR_BADSTATE); PA_CHECK_VALIDITY_RETURN_NULL(c, c->version >= 10, PA_ERR_NOTSUPPORTED); @@ -1360,7 +1360,7 @@ pa_operation* pa_context_move_source_output_by_index(pa_context *c, uint32_t idx uint32_t tag; assert(c); - assert(c->ref >= 1); + assert(PA_REFCNT_VALUE(c) >= 1); PA_CHECK_VALIDITY_RETURN_NULL(c, c->state == PA_CONTEXT_READY, PA_ERR_BADSTATE); PA_CHECK_VALIDITY_RETURN_NULL(c, c->version >= 10, PA_ERR_NOTSUPPORTED); @@ -1385,7 +1385,7 @@ pa_operation* pa_context_suspend_sink_by_name(pa_context *c, char *sink_name, in uint32_t tag; assert(c); - assert(c->ref >= 1); + assert(PA_REFCNT_VALUE(c) >= 1); PA_CHECK_VALIDITY_RETURN_NULL(c, c->state == PA_CONTEXT_READY, PA_ERR_BADSTATE); PA_CHECK_VALIDITY_RETURN_NULL(c, c->version >= 11, PA_ERR_NOTSUPPORTED); @@ -1409,7 +1409,7 @@ pa_operation* pa_context_suspend_sink_by_index(pa_context *c, uint32_t idx, int uint32_t tag; assert(c); - assert(c->ref >= 1); + assert(PA_REFCNT_VALUE(c) >= 1); PA_CHECK_VALIDITY_RETURN_NULL(c, c->state == PA_CONTEXT_READY, PA_ERR_BADSTATE); PA_CHECK_VALIDITY_RETURN_NULL(c, c->version >= 11, PA_ERR_NOTSUPPORTED); @@ -1432,7 +1432,7 @@ pa_operation* pa_context_suspend_source_by_name(pa_context *c, char *source_name uint32_t tag; assert(c); - assert(c->ref >= 1); + assert(PA_REFCNT_VALUE(c) >= 1); PA_CHECK_VALIDITY_RETURN_NULL(c, c->state == PA_CONTEXT_READY, PA_ERR_BADSTATE); PA_CHECK_VALIDITY_RETURN_NULL(c, c->version >= 11, PA_ERR_NOTSUPPORTED); @@ -1456,7 +1456,7 @@ pa_operation* pa_context_suspend_source_by_index(pa_context *c, uint32_t idx, in uint32_t tag; assert(c); - assert(c->ref >= 1); + assert(PA_REFCNT_VALUE(c) >= 1); PA_CHECK_VALIDITY_RETURN_NULL(c, c->state == PA_CONTEXT_READY, PA_ERR_BADSTATE); PA_CHECK_VALIDITY_RETURN_NULL(c, c->version >= 11, PA_ERR_NOTSUPPORTED); diff --git a/src/pulse/operation.c b/src/pulse/operation.c index 9ea4e63..ed5eb4a 100644 --- a/src/pulse/operation.c +++ b/src/pulse/operation.c @@ -36,7 +36,7 @@ pa_operation *pa_operation_new(pa_context *c, pa_stream *s, pa_operation_cb_t cb pa_assert(c); o = pa_xnew(pa_operation, 1); - o->ref = 1; + PA_REFCNT_INIT(o); o->context = c; o->stream = s; @@ -53,17 +53,17 @@ pa_operation *pa_operation_new(pa_context *c, pa_stream *s, pa_operation_cb_t cb pa_operation *pa_operation_ref(pa_operation *o) { pa_assert(o); - pa_assert(o->ref >= 1); + pa_assert(PA_REFCNT_VALUE(o) >= 1); - o->ref++; + PA_REFCNT_INC(o); return o; } void pa_operation_unref(pa_operation *o) { pa_assert(o); - pa_assert(o->ref >= 1); + pa_assert(PA_REFCNT_VALUE(o) >= 1); - if ((--(o->ref)) == 0) { + if (PA_REFCNT_DEC(o) <= 0) { pa_assert(!o->context); pa_assert(!o->stream); pa_xfree(o); @@ -72,7 +72,7 @@ void pa_operation_unref(pa_operation *o) { static void operation_set_state(pa_operation *o, pa_operation_state_t st) { pa_assert(o); - pa_assert(o->ref >= 1); + pa_assert(PA_REFCNT_VALUE(o) >= 1); if (st == o->state) return; @@ -84,7 +84,7 @@ static void operation_set_state(pa_operation *o, pa_operation_state_t st) { if ((o->state == PA_OPERATION_DONE) || (o->state == PA_OPERATION_CANCELED)) { if (o->context) { - pa_assert(o->ref >= 2); + pa_assert(PA_REFCNT_VALUE(o) >= 2); PA_LLIST_REMOVE(pa_operation, o->context->operations, o); pa_operation_unref(o); @@ -101,21 +101,21 @@ static void operation_set_state(pa_operation *o, pa_operation_state_t st) { void pa_operation_cancel(pa_operation *o) { pa_assert(o); - pa_assert(o->ref >= 1); + pa_assert(PA_REFCNT_VALUE(o) >= 1); operation_set_state(o, PA_OPERATION_CANCELED); } void pa_operation_done(pa_operation *o) { pa_assert(o); - pa_assert(o->ref >= 1); + pa_assert(PA_REFCNT_VALUE(o) >= 1); operation_set_state(o, PA_OPERATION_DONE); } pa_operation_state_t pa_operation_get_state(pa_operation *o) { pa_assert(o); - pa_assert(o->ref >= 1); + pa_assert(PA_REFCNT_VALUE(o) >= 1); return o->state; } diff --git a/src/pulse/scache.c b/src/pulse/scache.c index 09bc107..1b8356b 100644 --- a/src/pulse/scache.c +++ b/src/pulse/scache.c @@ -88,7 +88,7 @@ pa_operation *pa_context_play_sample(pa_context *c, const char *name, const char uint32_t tag; assert(c); - assert(c->ref >= 1); + assert(PA_REFCNT_VALUE(c) >= 1); PA_CHECK_VALIDITY_RETURN_NULL(c, c->state == PA_CONTEXT_READY, PA_ERR_BADSTATE); PA_CHECK_VALIDITY_RETURN_NULL(c, name && *name, PA_ERR_INVALID); @@ -116,7 +116,7 @@ pa_operation* pa_context_remove_sample(pa_context *c, const char *name, pa_conte uint32_t tag; assert(c); - assert(c->ref >= 1); + assert(PA_REFCNT_VALUE(c) >= 1); PA_CHECK_VALIDITY_RETURN_NULL(c, c->state == PA_CONTEXT_READY, PA_ERR_BADSTATE); PA_CHECK_VALIDITY_RETURN_NULL(c, name && *name, PA_ERR_INVALID); diff --git a/src/pulse/stream.c b/src/pulse/stream.c index 07a041a..8f5aeb7 100644 --- a/src/pulse/stream.c +++ b/src/pulse/stream.c @@ -54,7 +54,7 @@ pa_stream *pa_stream_new(pa_context *c, const char *name, const pa_sample_spec * PA_CHECK_VALIDITY_RETURN_NULL(c, !map || (pa_channel_map_valid(map) && map->channels == ss->channels), PA_ERR_INVALID); s = pa_xnew(pa_stream, 1); - s->ref = 1; + PA_REFCNT_INIT(s); s->context = c; s->mainloop = c->mainloop; @@ -142,37 +142,37 @@ static void stream_free(pa_stream *s) { void pa_stream_unref(pa_stream *s) { assert(s); - assert(s->ref >= 1); + assert(PA_REFCNT_VALUE(s) >= 1); - if (--(s->ref) == 0) + if (PA_REFCNT_DEC(s) <= 0) stream_free(s); } pa_stream* pa_stream_ref(pa_stream *s) { assert(s); - assert(s->ref >= 1); + assert(PA_REFCNT_VALUE(s) >= 1); - s->ref++; + PA_REFCNT_INC(s); return s; } pa_stream_state_t pa_stream_get_state(pa_stream *s) { assert(s); - assert(s->ref >= 1); + assert(PA_REFCNT_VALUE(s) >= 1); return s->state; } pa_context* pa_stream_get_context(pa_stream *s) { assert(s); - assert(s->ref >= 1); + assert(PA_REFCNT_VALUE(s) >= 1); return s->context; } uint32_t pa_stream_get_index(pa_stream *s) { assert(s); - assert(s->ref >= 1); + assert(PA_REFCNT_VALUE(s) >= 1); PA_CHECK_VALIDITY_RETURN_ANY(s->context, s->state == PA_STREAM_READY, PA_ERR_BADSTATE, PA_INVALID_INDEX); @@ -181,7 +181,7 @@ uint32_t pa_stream_get_index(pa_stream *s) { void pa_stream_set_state(pa_stream *s, pa_stream_state_t st) { assert(s); - assert(s->ref >= 1); + assert(PA_REFCNT_VALUE(s) >= 1); if (s->state == st) return; @@ -506,7 +506,7 @@ static int create_stream( uint32_t tag; assert(s); - assert(s->ref >= 1); + assert(PA_REFCNT_VALUE(s) >= 1); PA_CHECK_VALIDITY(s->context, s->state == PA_STREAM_UNCONNECTED, PA_ERR_BADSTATE); PA_CHECK_VALIDITY(s->context, !(flags & ~((direction != PA_STREAM_UPLOAD ? @@ -591,7 +591,7 @@ int pa_stream_connect_playback( pa_stream *sync_stream) { assert(s); - assert(s->ref >= 1); + assert(PA_REFCNT_VALUE(s) >= 1); return create_stream(PA_STREAM_PLAYBACK, s, dev, attr, flags, volume, sync_stream); } @@ -603,7 +603,7 @@ int pa_stream_connect_record( pa_stream_flags_t flags) { assert(s); - assert(s->ref >= 1); + assert(PA_REFCNT_VALUE(s) >= 1); return create_stream(PA_STREAM_RECORD, s, dev, attr, flags, NULL, NULL); } @@ -619,7 +619,7 @@ int pa_stream_write( pa_memchunk chunk; assert(s); - assert(s->ref >= 1); + assert(PA_REFCNT_VALUE(s) >= 1); assert(data); PA_CHECK_VALIDITY(s->context, s->state == PA_STREAM_READY, PA_ERR_BADSTATE); @@ -689,7 +689,7 @@ int pa_stream_write( int pa_stream_peek(pa_stream *s, const void **data, size_t *length) { assert(s); - assert(s->ref >= 1); + assert(PA_REFCNT_VALUE(s) >= 1); assert(data); assert(length); @@ -715,7 +715,7 @@ int pa_stream_peek(pa_stream *s, const void **data, size_t *length) { int pa_stream_drop(pa_stream *s) { assert(s); - assert(s->ref >= 1); + assert(PA_REFCNT_VALUE(s) >= 1); PA_CHECK_VALIDITY(s->context, s->state == PA_STREAM_READY, PA_ERR_BADSTATE); PA_CHECK_VALIDITY(s->context, s->direction == PA_STREAM_RECORD, PA_ERR_BADSTATE); @@ -739,7 +739,7 @@ int pa_stream_drop(pa_stream *s) { size_t pa_stream_writable_size(pa_stream *s) { assert(s); - assert(s->ref >= 1); + assert(PA_REFCNT_VALUE(s) >= 1); PA_CHECK_VALIDITY_RETURN_ANY(s->context, s->state == PA_STREAM_READY, PA_ERR_BADSTATE, (size_t) -1); PA_CHECK_VALIDITY_RETURN_ANY(s->context, s->direction != PA_STREAM_RECORD, PA_ERR_BADSTATE, (size_t) -1); @@ -749,7 +749,7 @@ size_t pa_stream_writable_size(pa_stream *s) { size_t pa_stream_readable_size(pa_stream *s) { assert(s); - assert(s->ref >= 1); + assert(PA_REFCNT_VALUE(s) >= 1); PA_CHECK_VALIDITY_RETURN_ANY(s->context, s->state == PA_STREAM_READY, PA_ERR_BADSTATE, (size_t) -1); PA_CHECK_VALIDITY_RETURN_ANY(s->context, s->direction == PA_STREAM_RECORD, PA_ERR_BADSTATE, (size_t) -1); @@ -763,7 +763,7 @@ pa_operation * pa_stream_drain(pa_stream *s, pa_stream_success_cb_t cb, void *us uint32_t tag; assert(s); - assert(s->ref >= 1); + assert(PA_REFCNT_VALUE(s) >= 1); PA_CHECK_VALIDITY_RETURN_NULL(s->context, s->state == PA_STREAM_READY, PA_ERR_BADSTATE); PA_CHECK_VALIDITY_RETURN_NULL(s->context, s->direction == PA_STREAM_PLAYBACK, PA_ERR_BADSTATE); @@ -933,7 +933,7 @@ pa_operation* pa_stream_update_timing_info(pa_stream *s, pa_stream_success_cb_t int cidx = 0; assert(s); - assert(s->ref >= 1); + assert(PA_REFCNT_VALUE(s) >= 1); PA_CHECK_VALIDITY_RETURN_NULL(s->context, s->state == PA_STREAM_READY, PA_ERR_BADSTATE); PA_CHECK_VALIDITY_RETURN_NULL(s->context, s->direction != PA_STREAM_UPLOAD, PA_ERR_BADSTATE); @@ -977,7 +977,7 @@ void pa_stream_disconnect_callback(pa_pdispatch *pd, uint32_t command, PA_GCC_UN assert(pd); assert(s); - assert(s->ref >= 1); + assert(PA_REFCNT_VALUE(s) >= 1); pa_stream_ref(s); @@ -1003,7 +1003,7 @@ int pa_stream_disconnect(pa_stream *s) { uint32_t tag; assert(s); - assert(s->ref >= 1); + assert(PA_REFCNT_VALUE(s) >= 1); PA_CHECK_VALIDITY(s->context, s->channel_valid, PA_ERR_BADSTATE); PA_CHECK_VALIDITY(s->context, s->context->state == PA_CONTEXT_READY, PA_ERR_BADSTATE); @@ -1025,7 +1025,7 @@ int pa_stream_disconnect(pa_stream *s) { void pa_stream_set_read_callback(pa_stream *s, pa_stream_request_cb_t cb, void *userdata) { assert(s); - assert(s->ref >= 1); + assert(PA_REFCNT_VALUE(s) >= 1); s->read_callback = cb; s->read_userdata = userdata; @@ -1033,7 +1033,7 @@ void pa_stream_set_read_callback(pa_stream *s, pa_stream_request_cb_t cb, void * void pa_stream_set_write_callback(pa_stream *s, pa_stream_request_cb_t cb, void *userdata) { assert(s); - assert(s->ref >= 1); + assert(PA_REFCNT_VALUE(s) >= 1); s->write_callback = cb; s->write_userdata = userdata; @@ -1041,7 +1041,7 @@ void pa_stream_set_write_callback(pa_stream *s, pa_stream_request_cb_t cb, void void pa_stream_set_state_callback(pa_stream *s, pa_stream_notify_cb_t cb, void *userdata) { assert(s); - assert(s->ref >= 1); + assert(PA_REFCNT_VALUE(s) >= 1); s->state_callback = cb; s->state_userdata = userdata; @@ -1049,7 +1049,7 @@ void pa_stream_set_state_callback(pa_stream *s, pa_stream_notify_cb_t cb, void * void pa_stream_set_overflow_callback(pa_stream *s, pa_stream_notify_cb_t cb, void *userdata) { assert(s); - assert(s->ref >= 1); + assert(PA_REFCNT_VALUE(s) >= 1); s->overflow_callback = cb; s->overflow_userdata = userdata; @@ -1057,7 +1057,7 @@ void pa_stream_set_overflow_callback(pa_stream *s, pa_stream_notify_cb_t cb, voi void pa_stream_set_underflow_callback(pa_stream *s, pa_stream_notify_cb_t cb, void *userdata) { assert(s); - assert(s->ref >= 1); + assert(PA_REFCNT_VALUE(s) >= 1); s->underflow_callback = cb; s->underflow_userdata = userdata; @@ -1065,7 +1065,7 @@ void pa_stream_set_underflow_callback(pa_stream *s, pa_stream_notify_cb_t cb, vo void pa_stream_set_latency_update_callback(pa_stream *s, pa_stream_notify_cb_t cb, void *userdata) { assert(s); - assert(s->ref >= 1); + assert(PA_REFCNT_VALUE(s) >= 1); s->latency_update_callback = cb; s->latency_update_userdata = userdata; @@ -1077,7 +1077,7 @@ void pa_stream_simple_ack_callback(pa_pdispatch *pd, uint32_t command, PA_GCC_UN assert(pd); assert(o); - assert(o->ref >= 1); + assert(PA_REFCNT_VALUE(o) >= 1); if (!o->context) goto finish; @@ -1108,7 +1108,7 @@ pa_operation* pa_stream_cork(pa_stream *s, int b, pa_stream_success_cb_t cb, voi uint32_t tag; assert(s); - assert(s->ref >= 1); + assert(PA_REFCNT_VALUE(s) >= 1); PA_CHECK_VALIDITY_RETURN_NULL(s->context, s->state == PA_STREAM_READY, PA_ERR_BADSTATE); PA_CHECK_VALIDITY_RETURN_NULL(s->context, s->direction != PA_STREAM_UPLOAD, PA_ERR_BADSTATE); @@ -1138,7 +1138,7 @@ static pa_operation* stream_send_simple_command(pa_stream *s, uint32_t command, uint32_t tag; assert(s); - assert(s->ref >= 1); + assert(PA_REFCNT_VALUE(s) >= 1); PA_CHECK_VALIDITY_RETURN_NULL(s->context, s->state == PA_STREAM_READY, PA_ERR_BADSTATE); @@ -1207,7 +1207,7 @@ pa_operation* pa_stream_set_name(pa_stream *s, const char *name, pa_stream_succe uint32_t tag; assert(s); - assert(s->ref >= 1); + assert(PA_REFCNT_VALUE(s) >= 1); assert(name); PA_CHECK_VALIDITY_RETURN_NULL(s->context, s->state == PA_STREAM_READY, PA_ERR_BADSTATE); @@ -1231,7 +1231,7 @@ int pa_stream_get_time(pa_stream *s, pa_usec_t *r_usec) { pa_usec_t usec = 0; assert(s); - assert(s->ref >= 1); + assert(PA_REFCNT_VALUE(s) >= 1); PA_CHECK_VALIDITY(s->context, s->state == PA_STREAM_READY, PA_ERR_BADSTATE); PA_CHECK_VALIDITY(s->context, s->direction != PA_STREAM_UPLOAD, PA_ERR_BADSTATE); @@ -1315,7 +1315,7 @@ int pa_stream_get_time(pa_stream *s, pa_usec_t *r_usec) { static pa_usec_t time_counter_diff(pa_stream *s, pa_usec_t a, pa_usec_t b, int *negative) { assert(s); - assert(s->ref >= 1); + assert(PA_REFCNT_VALUE(s) >= 1); if (negative) *negative = 0; @@ -1337,7 +1337,7 @@ int pa_stream_get_latency(pa_stream *s, pa_usec_t *r_usec, int *negative) { int64_t cindex; assert(s); - assert(s->ref >= 1); + assert(PA_REFCNT_VALUE(s) >= 1); assert(r_usec); PA_CHECK_VALIDITY(s->context, s->state == PA_STREAM_READY, PA_ERR_BADSTATE); @@ -1369,7 +1369,7 @@ int pa_stream_get_latency(pa_stream *s, pa_usec_t *r_usec, int *negative) { const pa_timing_info* pa_stream_get_timing_info(pa_stream *s) { assert(s); - assert(s->ref >= 1); + assert(PA_REFCNT_VALUE(s) >= 1); PA_CHECK_VALIDITY_RETURN_NULL(s->context, s->state == PA_STREAM_READY, PA_ERR_BADSTATE); PA_CHECK_VALIDITY_RETURN_NULL(s->context, s->direction != PA_STREAM_UPLOAD, PA_ERR_BADSTATE); @@ -1380,21 +1380,21 @@ const pa_timing_info* pa_stream_get_timing_info(pa_stream *s) { const pa_sample_spec* pa_stream_get_sample_spec(pa_stream *s) { assert(s); - assert(s->ref >= 1); + assert(PA_REFCNT_VALUE(s) >= 1); return &s->sample_spec; } const pa_channel_map* pa_stream_get_channel_map(pa_stream *s) { assert(s); - assert(s->ref >= 1); + assert(PA_REFCNT_VALUE(s) >= 1); return &s->channel_map; } const pa_buffer_attr* pa_stream_get_buffer_attr(pa_stream *s) { assert(s); - assert(s->ref >= 1); + assert(PA_REFCNT_VALUE(s) >= 1); PA_CHECK_VALIDITY_RETURN_NULL(s->context, s->state == PA_STREAM_READY, PA_ERR_BADSTATE); PA_CHECK_VALIDITY_RETURN_NULL(s->context, s->direction != PA_STREAM_UPLOAD, PA_ERR_BADSTATE); diff --git a/src/pulse/subscribe.c b/src/pulse/subscribe.c index 5d8f125..76b9375 100644 --- a/src/pulse/subscribe.c +++ b/src/pulse/subscribe.c @@ -68,7 +68,7 @@ pa_operation* pa_context_subscribe(pa_context *c, pa_subscription_mask_t m, pa_c uint32_t tag; assert(c); - assert(c->ref >= 1); + assert(PA_REFCNT_VALUE(c) >= 1); PA_CHECK_VALIDITY_RETURN_NULL(c, c->state == PA_CONTEXT_READY, PA_ERR_BADSTATE); @@ -84,7 +84,7 @@ pa_operation* pa_context_subscribe(pa_context *c, pa_subscription_mask_t m, pa_c void pa_context_set_subscribe_callback(pa_context *c, pa_context_subscribe_cb_t cb, void *userdata) { assert(c); - assert(c->ref >= 1); + assert(PA_REFCNT_VALUE(c) >= 1); c->subscribe_callback = cb; c->subscribe_userdata = userdata;