port missing modules to new pa_client_new() API

This commit is contained in:
Lennart Poettering 2009-01-15 18:21:57 +01:00
parent 5abda63a1f
commit a3695dd9eb
2 changed files with 28 additions and 11 deletions

View file

@ -63,6 +63,7 @@ struct session {
}; };
struct userdata { struct userdata {
pa_module *module;
pa_core *core; pa_core *core;
pa_dbus_connection *connection; pa_dbus_connection *connection;
pa_hashmap *sessions; pa_hashmap *sessions;
@ -73,7 +74,7 @@ static void add_session(struct userdata *u, const char *id) {
DBusMessage *m = NULL, *reply = NULL; DBusMessage *m = NULL, *reply = NULL;
uint32_t uid; uint32_t uid;
struct session *session; struct session *session;
char *t; pa_client_new_data data;
dbus_error_init (&error); dbus_error_init (&error);
@ -109,11 +110,19 @@ static void add_session(struct userdata *u, const char *id) {
session = pa_xnew(struct session, 1); session = pa_xnew(struct session, 1);
session->id = pa_xstrdup(id); session->id = pa_xstrdup(id);
t = pa_sprintf_malloc("ConsoleKit Session %s", id); pa_client_new_data_init(&data);
session->client = pa_client_new(u->core, __FILE__, t); data.module = u->module;
pa_xfree(t); data.driver = __FILE__;
pa_proplist_setf(data.proplist, PA_PROP_APPLICATION_NAME, "ConsoleKit Session %s", id);
pa_proplist_sets(data.proplist, "console-kit.session", id);
session->client = pa_client_new(u->core, &data);
pa_client_new_data_done(&data);
pa_proplist_sets(session->client->proplist, "console-kit.session", id); if (!session->client) {
pa_xfree(session->id);
pa_xfree(session);
goto fail;
}
pa_hashmap_put(u->sessions, session->id, session); pa_hashmap_put(u->sessions, session->id, session);
@ -295,6 +304,7 @@ int pa__init(pa_module*m) {
m->userdata = u = pa_xnew(struct userdata, 1); m->userdata = u = pa_xnew(struct userdata, 1);
u->core = m->core; u->core = m->core;
u->module = m;
u->connection = connection; u->connection = connection;
u->sessions = pa_hashmap_new(pa_idxset_string_hash_func, pa_idxset_string_compare_func); u->sessions = pa_hashmap_new(pa_idxset_string_hash_func, pa_idxset_string_compare_func);

View file

@ -117,13 +117,14 @@ static void new_ice_connection(IceConn connection, IcePointer client_data, Bool
int pa__init(pa_module*m) { int pa__init(pa_module*m) {
pa_modargs *ma = NULL; pa_modargs *ma = NULL;
char t[256], *vendor, *client_id, *k; char t[256], *vendor, *client_id;
SmcCallbacks callbacks; SmcCallbacks callbacks;
SmProp prop_program, prop_user; SmProp prop_program, prop_user;
SmProp *prop_list[2]; SmProp *prop_list[2];
SmPropValue val_program, val_user; SmPropValue val_program, val_user;
struct userdata *u; struct userdata *u;
const char *e; const char *e;
pa_client_new_data data;
pa_assert(m); pa_assert(m);
@ -198,16 +199,22 @@ int pa__init(pa_module*m) {
SmcSetProperties(u->connection, PA_ELEMENTSOF(prop_list), prop_list); SmcSetProperties(u->connection, PA_ELEMENTSOF(prop_list), prop_list);
pa_log_info("Connected to session manager '%s' as '%s'.", vendor = SmcVendor(u->connection), client_id); pa_log_info("Connected to session manager '%s' as '%s'.", vendor = SmcVendor(u->connection), client_id);
k = pa_sprintf_malloc("XSMP Session on %s as %s", vendor, client_id);
u->client = pa_client_new(u->core, __FILE__, k);
pa_xfree(k);
pa_proplist_sets(u->client->proplist, "xsmp.vendor", vendor); pa_client_new_data_init(&data);
pa_proplist_sets(u->client->proplist, "xsmp.client.id", client_id); data.module = m;
data.driver = __FILE__;
pa_proplist_setf(data.proplist, PA_PROP_APPLICATION_NAME, "XSMP Session on %s as %s", vendor, client_id);
pa_proplist_sets(data.proplist, "xsmp.vendor", vendor);
pa_proplist_sets(data.proplist, "xsmp.client.id", client_id);
u->client = pa_client_new(u->core, &data);
pa_client_new_data_done(&data);
free(vendor); free(vendor);
free(client_id); free(client_id);
if (!u->client)
goto fail;
pa_modargs_free(ma); pa_modargs_free(ma);
return 0; return 0;