SUBCOMMAND_EVENT
};
-
/* Forward declarations */
#ifdef DUMP_DATABASE
static void dump_database(struct userdata *);
#endif
static void notify_subscribers(struct userdata *);
-
static void save_time_callback(pa_mainloop_api*a, pa_time_event* e, const struct timeval *t, void *userdata) {
struct userdata *u = userdata;
goto fail;
}
+ if (e->user_set_description && !description) {
+ pa_log("Entry has user_set_description set, but the description is NULL.");
+ goto fail;
+ }
+
e->description = pa_xstrdup(description);
e->icon = pa_xstrdup(icon);
}
}
-
static void route_sink_input(struct userdata *u, pa_sink_input *si) {
const char *role;
uint32_t role_index, device_index;
return PA_HOOK_OK;
}
-
static pa_hook_result_t sink_put_hook_callback(pa_core *c, PA_GCC_UNUSED pa_sink *sink, struct userdata *u) {
pa_assert(c);
pa_assert(u);
return route_source_outputs(u, source);
}
-
static void apply_entry(struct userdata *u, const char *name, struct entry *e) {
uint32_t idx;
char *n;
}
}
-
#define EXT_VERSION 1
static int extension_cb(pa_native_protocol *p, pa_module *m, pa_native_connection *c, uint32_t tag, pa_tagstruct *t) {
for (uint32_t j = 0; j < i; ++j)
subscribe_callback(m->core, PA_SUBSCRIPTION_EVENT_SINK|PA_SUBSCRIPTION_EVENT_NEW, p_i[j].index, u);
-
/* We cycle over all the available sources so that they are added to our database if they are not in it yet */
i = 0;
PA_IDXSET_FOREACH(source, m->core->sources, idx) {