diff options
Diffstat (limited to 'timer-applet/src/timerapplet/controllers/TimerService.py')
-rw-r--r-- | timer-applet/src/timerapplet/controllers/TimerService.py | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/timer-applet/src/timerapplet/controllers/TimerService.py b/timer-applet/src/timerapplet/controllers/TimerService.py new file mode 100644 index 00000000..02976101 --- /dev/null +++ b/timer-applet/src/timerapplet/controllers/TimerService.py @@ -0,0 +1,49 @@ +# Copyright (C) 2008 Jimmy Do <[email protected]> +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +import dbus +import dbus.service +from timerapplet import core +from timerapplet import utils + +DBUS_INTERFACE_NAMESPACE = 'net.launchpad.timerapplet.TimerApplet.Timer' + +class TimerService(dbus.service.Object): + def __init__(self, bus_name, object_path, timer): + dbus.service.Object.__init__(self, + dbus.service.BusName(bus_name, bus=dbus.SessionBus()), + object_path) + self._timer = timer + + @dbus.service.method(dbus_interface=DBUS_INTERFACE_NAMESPACE, in_signature='siii') + def Start(self, name, hours, minutes, seconds): + if self._timer.get_state() != core.Timer.STATE_IDLE: + self._timer.reset() + self._timer.set_duration(utils.hms_to_seconds(hours, minutes, seconds)) + self._timer.set_name(name) + self._timer.start() + + @dbus.service.method(dbus_interface=DBUS_INTERFACE_NAMESPACE) + def Stop(self): + if self._timer.get_state() != core.Timer.STATE_IDLE: + self._timer.reset() + + @dbus.service.method(dbus_interface=DBUS_INTERFACE_NAMESPACE) + def PauseContinue(self): + if self._timer.get_state() == core.Timer.STATE_RUNNING: + self._timer.stop() + elif self._timer.get_state() == core.Timer.STATE_PAUSED: + self._timer.start() |