
#!/bin/sh exec python /usr/local/phone_recorder/python/phone_recorder.py
import gtk
import hildon
import time
import pygst
pygst.require("0.10")
import gst
import os
class Recorder(hildon.Program):
def __init__(self):
self.done=0
if self.done>1:
gtk.main_quit
hildon.Program.__init__(self)
gtk.set_application_name("Phone call record")
self.program = hildon.Program.get_instance()
self.window=hildon.StackableWindow()
self.window.set_title("recorder")
self.program.add_window(self.window)
self.start=time.time()
button=hildon.Button(gtk.HILDON_SIZE_AUTO, hildon.BUTTON_ARRANGEMENT_VERTICAL,"Recording...\nClick to stop")
ts = time.strftime("%Y%m%d_%H%M%S")
self.fileName = "/home/user/MyDocs/record/Rec_%s.flac" % time.strftime("%Y%m%d_%H%M%S")
self.player = gst.parse_launch ("adder name=theAdder ! flacenc ! filesink location=%s. pulsesrc device=sink.hw0.monitor ! queue ! theAdder. pulsesrc device=source.hw0 ! queue ! theAdder." % self.fileName)
self.player.set_state(gst.STATE_PLAYING)
button.connect("clicked", self.do_stop)
self.window.add(button)
self.done+1
def select_event(self,tool,val):
if val==0:
gtk.main_quit()
elif val==1:
os.unlink(self.fileName)
elif val==2:
player = gst.parse_launch ("filesrc location=%s ! flacdec ! pulsesink" % self.fileName)
player.set_state(gst.STATE_PLAYING)
return 1
gtk.main_quit()
def do_stop(self,widget):
self.done=1
self.player.set_state(gst.STATE_NULL)
now=time.time()
window=hildon.StackableWindow()
label=gtk.Label("Recording complete\nCreated file: %(fn)s\nrecorded total: %(sec)d sec" % {"fn": self.fileName,"sec" : (now-self.start)})
window.add(label)
label.show()
toolbar = gtk.Toolbar()
toolitem = gtk.ToolButton(gtk.image_new_from_stock(gtk.STOCK_CLOSE,gtk.ICON_SIZE_LARGE_TOOLBAR),"Exit")
toolitem.connect("clicked", self.select_event, 0)
toolbar.insert(toolitem, 0)
toolitem = gtk.ToolButton(gtk.image_new_from_stock(gtk.STOCK_DELETE,gtk.ICON_SIZE_LARGE_TOOLBAR),"Delete")
toolitem.connect("clicked", self.select_event, 1)
toolbar.insert(toolitem, 1)
toolitem = gtk.ToolButton(gtk.image_new_from_stock(gtk.STOCK_MEDIA_PLAY,gtk.ICON_SIZE_LARGE_TOOLBAR),"Play")
toolitem.connect("clicked", self.select_event, 2)
toolbar.insert(toolitem, 2)
window.add_toolbar(toolbar)
window.connect("delete_event", gtk.main_quit, None)
window.show_all()
def run(self):
self.window.show_all()
gtk.main()
prog=Recorder()
prog.run()
[D-BUS Service] Name=com.misc.phone_recorder Exec=/usr/local/phone_recorder/bin/phone_recorder
<menuitem priority="750" name="Record">
<callback service="com.misc.phone_recorder" path="/com/misc/phone_recorder"
interface="com.misc.phone_recorder" method="record" bus="session"
autostart="true">
<argument type="boolean">true</argument>
</callback>
</menuitem>
| The Following 4 Users Say Thank You to spawn For This Useful Post: | ||
| The Following User Says Thank You to qwerty12 For This Useful Post: | ||
| The Following User Says Thank You to sxg75 For This Useful Post: | ||
It looks to me like the FLAC encoder is new since PR1.1, at least I didn't see it before.
| The Following User Says Thank You to twaelti For This Useful Post: | ||
| The Following User Says Thank You to daperl For This Useful Post: | ||