diff options
-rw-r--r-- | src/accounts-service-user.vala | 39 |
1 files changed, 38 insertions, 1 deletions
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 <ted@canonical.com> */ +[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<AccountsServiceSoundSettings> ( + 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); + } } |