FSO ringtones
From Openmoko
Monkeypanic (Talk | contribs) |
(Add use of playbin to make ringtone format agnostic) |
||
Line 31: | Line 31: | ||
filesrc.set_property( "location", "/usr/share/sounds/ringtone" ) | filesrc.set_property( "location", "/usr/share/sounds/ringtone" ) | ||
+ | |||
+ | If you would like to play most formats of audio file (including ogg), change the play() function | ||
+ | to this | ||
+ | |||
+ | def _play( self ): | ||
+ | self.player = pipeline = gst.Pipeline( "oeventd-pipeline" ) | ||
+ | sink = gst.element_factory_make( "alsasink", "sink" ) | ||
+ | playbin = gst.element_factory_make( "playbin", "playbin" ) | ||
+ | playbin.set_property( "uri", "file:///usr/share/sounds/ringtone" ) | ||
+ | playbin.set_property("audio-sink", sink) | ||
+ | pipeline.add(playbin) | ||
+ | |||
+ | bus = self.player.get_bus() | ||
+ | bus.add_signal_watch() | ||
+ | bus.connect( "message", self._onMessage ) | ||
+ | pipeline.set_state(gst.STATE_PLAYING) | ||
+ | logger.info( 'playing ringtone' ) | ||
+ | self.ringing = True | ||
+ | |||
+ | There does seem to be a lag of a few vibrations before the sound starts but that might desirable. (I didn't compare against the original code). The code to specifically handle formats, (oggs for example) can be a little complicated and makes things messy. | ||
+ | Since, it seems like this code is changing in FSO, I'm leaving it for the moment. | ||
Then | Then | ||
Line 52: | Line 73: | ||
/etc/init.d/xserver-nodm restart | /etc/init.d/xserver-nodm restart | ||
− | Now you can link /usr/share/sounds/ringtone to any mp3 and that will be your ringtone | + | Now you can link /usr/share/sounds/ringtone to any mp3 (or other sound file if you took the second option) and that will be your ringtone |
[[Category:Add-on data]] | [[Category:Add-on data]] |
Revision as of 12:24, 3 September 2008
Key pages on: FSO |
|
---|
The ringtone in milestone 2 is stored here:
/usr/share/sounds/Arkanoid_PSID.sid
Now to change it is a little bit of fun.
first change directory to
/usr/lib/python2.5/site-packages/framework/subsystems/oeventd/
and open the file receiver.py
- this will be /var/lib/python-support/python2.5/framework/subsystems/oeventd/receiver.py if you are using FSO under Debian
Change the line that reads:
decoder = gst.element_factory_make( "siddec", "decoder" )
to
decoder = gst.element_factory_make( "mad", "decoder" )
and change the line that reads:
filesrc.set_property( "location", "/usr/share/sounds/Arkanoid_PSID.sid" )
to
filesrc.set_property( "location", "/usr/share/sounds/ringtone" )
If you would like to play most formats of audio file (including ogg), change the play() function to this
def _play( self ): self.player = pipeline = gst.Pipeline( "oeventd-pipeline" ) sink = gst.element_factory_make( "alsasink", "sink" ) playbin = gst.element_factory_make( "playbin", "playbin" ) playbin.set_property( "uri", "file:///usr/share/sounds/ringtone" ) playbin.set_property("audio-sink", sink) pipeline.add(playbin) bus = self.player.get_bus() bus.add_signal_watch() bus.connect( "message", self._onMessage ) pipeline.set_state(gst.STATE_PLAYING) logger.info( 'playing ringtone' ) self.ringing = True
There does seem to be a lag of a few vibrations before the sound starts but that might desirable. (I didn't compare against the original code). The code to specifically handle formats, (oggs for example) can be a little complicated and makes things messy. Since, it seems like this code is changing in FSO, I'm leaving it for the moment.
Then
mv receiver.pyo /home/root
- receiver.pyo will be receiver.pyc in FSO under Debian
python >>> import py_compile >>> py_compile.compile("receiver.py") >>> quit()
- You may not have the py_compile module. You can install them like this:
opkg install python-compile
/etc/init.d/fso-frameworkd restart && /etc/init.d/zhone-session stop && sleep 2 && /etc/init.d/zhone-session start
- I've only run the above restart commands in Debian so I'm not sure if they are the same in the default FSO image
- the default zhone-session file doesn't have a working restart command, hence the stop->sleep 2->start
zhone for FSO seems to be launched by Xsession.d so maybe try:
/etc/init.d/xserver-nodm restart
Now you can link /usr/share/sounds/ringtone to any mp3 (or other sound file if you took the second option) and that will be your ringtone