From 5accd01ee1111bbe0bf8af9854ebceda7e29ba30 Mon Sep 17 00:00:00 2001 From: Maciek Borzecki Date: Tue, 6 Jun 2017 22:26:49 +0200 Subject: [PATCH] battery-proxy: DBus interface for battery packet handler --- Makefile.am | 1 + src/mconnect/battery-proxy.vala | 54 +++++++++++++++++++++++++++++++++ 2 files changed, 55 insertions(+) create mode 100644 src/mconnect/battery-proxy.vala diff --git a/Makefile.am b/Makefile.am index c77837a..23961d7 100644 --- a/Makefile.am +++ b/Makefile.am @@ -68,6 +68,7 @@ mconnect_SOURCES = \ src/mconnect/packethandlers.vala \ src/mconnect/notification.vala \ src/mconnect/battery.vala \ + src/mconnect/battery-proxy.vala \ src/mconnect/telephony.vala \ src/mconnect/mousepad.vala \ src/mconnect/ping.vala \ diff --git a/src/mconnect/battery-proxy.vala b/src/mconnect/battery-proxy.vala new file mode 100644 index 0000000..8abcfd3 --- /dev/null +++ b/src/mconnect/battery-proxy.vala @@ -0,0 +1,54 @@ +/* ex:ts=4:sw=4:sts=4:et */ +/* -*- tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*- */ +/** + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * + * AUTHORS + * Maciek Borzecki + */ + +[DBus (name = "org.mconnect.Device.Battery")] +class BatteryHandlerProxy : Object, PacketHandlerInterfaceProxy { + + private Device device = null; + private BatteryHandler battery_handler = null; + + public BatteryHandlerProxy.for_device_handler(Device dev, + PacketHandlerInterface iface) { + this.device = dev; + + this.battery_handler = (BatteryHandler) iface; + + this.battery_handler.battery.connect(this.battery_change); + } + + private void battery_change(Device dev, uint level, bool charging) { + if (this.device != dev) + return; + + battery(level, charging); + } + + [DBus (visible = false)] + public void bus_register(DBusConnection conn, string path) throws IOError { + conn.register_object(path, this); + } + + [DBus (visible = false)] + public void bus_unregister(DBusConnection conn) throws IOError { + //conn.unregister_object(this); + } + + public signal void battery(uint level, bool charging); +} \ No newline at end of file