import os.path import time from gettext import gettext as _ import gtk import zavai class AudioNotes(gtk.ToggleAction): states = [_("Start recording audio"), _("Stop recording audio")] def __init__(self, registry, **kw): self.state = 0 super(AudioNotes, self).__init__("menu.main.notes.audio", self.states[self.state], None, None) self.registry = registry self.recorder = zavai.Recorder(registry) self.set_active(False) self.connect("toggled", self.on_toggle) def shutdown(self): self.recorder.stop() super(AudioNotes, self).shutdown() def on_toggle(self, *args): self.state = (self.state + 1) % len(self.states) self.set_property("label", self.states[self.state]) if self.get_active(): self.start() else: self.stop() def start(self): zavai.info("Audio note started") name = time.strftime("%Y-%m-%d-%H-%M-%S", time.localtime()) os.path.join(self.registry.resource("conf").homedir, name + ".wav") self.recorder.start(name) def stop(self): self.recorder.stop() def init(conf = None, registry = None, **kw): registry.register(AudioNotes(registry))