aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/accounts-service-user.vala39
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);
+ }
}