From b96572e7933c03fdd51529e6dd71e87c72bd062a Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Tue, 11 Feb 2014 16:29:54 -0600 Subject: Build up to getting our settings proxy in the account manager --- src/accounts-service-user.vala | 39 ++++++++++++++++++++++++++++++++++++++- 1 file changed, 38 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/accounts-service-user.vala b/src/accounts-service-user.vala index 33fb6e9..c476033 100644 --- a/src/accounts-service-user.vala +++ b/src/accounts-service-user.vala @@ -17,16 +17,53 @@ * Ted Gould */ +[DBus (name = "com.canonical.indicator.sound.AccountsService")] +public interface AccountsServiceSoundSettings : Object { + // properties + public abstract bool playing{owned get; set;} +} public class AccountsServiceUser : Object { Act.UserManager accounts_manager = Act.UserManager.get_default(); Act.User? user = null; + AccountsServiceSoundSettings? proxy = null; + MediaPlayer? _player = null; - public MediaPlayer? player = null; + public MediaPlayer? player { + set { + this._player = value; + } + get { + return this._player; + } + } public AccountsServiceUser () { user = accounts_manager.get_user(GLib.Environment.get_user_name()); + user.notify["is-loaded"].connect(() => { + debug("User loaded"); + + this.proxy = null; + + Bus.get_proxy.begin ( + BusType.SYSTEM, + "org.freedesktop.AccountsService", + user.get_object_path(), + DBusProxyFlags.GET_INVALIDATED_PROPERTIES, + null, + new_proxy); + }); + + } + void new_proxy (GLib.Object? obj, AsyncResult res) { + try { + this.proxy = Bus.get_proxy.end (res); + //this.player = _player; + } catch (Error e) { + this.proxy = null; + warning("Unable to get proxy to user sound settings: %s", e.message); + } } -- cgit v1.2.3