FSO ringtones
From Openmoko
(Updated to milestone 3) |
|||
Line 1: | Line 1: | ||
{{FSO}} | {{FSO}} | ||
+ | ==The milestone 3 way== | ||
+ | FSO milestone 3 introduces some configuration files for Zhone. It is now possible to define as many ringtone profiles as we want. Each profile is a YAML configuration file located in : | ||
+ | /etc/freesmartphone/opreferences/conf/phone | ||
+ | The default profile is defined in the default.yaml file : | ||
+ | ring-tone: "Arkanoid_PSID.sid" | ||
+ | ring-volume: 10 | ||
+ | |||
+ | To change this default ringtone : | ||
+ | # copy the sound file into /usr/share/sounds/ | ||
+ | # edit the "ringtone" field to match your sound filename. | ||
+ | |||
+ | ====Note==== | ||
+ | Not sure I'm doing this the Right Way, but I had to patch '''/usr/share/python-support/fso-frameworkd/framework/subsystems/oeventsd/fso_actions.py''' this way : | ||
+ | --- fso_actions.py.orig 2008-09-21 14:38:03.000000000 +0200 | ||
+ | +++ fso_actions.py 2008-09-13 00:49:37.000000000 +0200 | ||
+ | @@ -143,7 +143,7 @@ | ||
+ | phone_prefs = prefs.GetService( "phone" ) | ||
+ | ring_tone = phone_prefs.GetValue( "ring-tone" ) | ||
+ | ring_volume = phone_prefs.GetValue( "ring-volume" ) | ||
+ | - sound_path = os.path.join( installprefix, "share/sounds/", ring_tone ) | ||
+ | + sound_path = os.path.join( installprefix, "usr/share/sounds/", ring_tone ) | ||
+ | |||
+ | if self.cmd == "play": | ||
+ | logger.info( "Start ringing : tone=%s, volume=%s", ring_tone, ring_volume ) | ||
+ | @@ -180,7 +180,7 @@ | ||
+ | phone_prefs = prefs.GetService( "phone" ) | ||
+ | tone = phone_prefs.GetValue( "message-tone" ) | ||
+ | volume = phone_prefs.GetValue( "message-volume" ) | ||
+ | - sound_path = os.path.join( installprefix, "share/sounds/", tone ) | ||
+ | + sound_path = os.path.join( installprefix, "usr/share/sounds/", tone ) | ||
+ | |||
+ | if self.cmd == "play": | ||
+ | logger.info( "Start ringing : tone=%s, volume=%s", tone, volume ) | ||
+ | |||
+ | ==The milestone 2 way== | ||
The ringtone in milestone 2 is stored here: | The ringtone in milestone 2 is stored here: | ||
Revision as of 14:42, 21 September 2008
Key pages on: FSO |
|
---|
The milestone 3 way
FSO milestone 3 introduces some configuration files for Zhone. It is now possible to define as many ringtone profiles as we want. Each profile is a YAML configuration file located in :
/etc/freesmartphone/opreferences/conf/phone
The default profile is defined in the default.yaml file :
ring-tone: "Arkanoid_PSID.sid" ring-volume: 10
To change this default ringtone :
- copy the sound file into /usr/share/sounds/
- edit the "ringtone" field to match your sound filename.
Note
Not sure I'm doing this the Right Way, but I had to patch /usr/share/python-support/fso-frameworkd/framework/subsystems/oeventsd/fso_actions.py this way :
--- fso_actions.py.orig 2008-09-21 14:38:03.000000000 +0200 +++ fso_actions.py 2008-09-13 00:49:37.000000000 +0200 @@ -143,7 +143,7 @@ phone_prefs = prefs.GetService( "phone" ) ring_tone = phone_prefs.GetValue( "ring-tone" ) ring_volume = phone_prefs.GetValue( "ring-volume" ) - sound_path = os.path.join( installprefix, "share/sounds/", ring_tone ) + sound_path = os.path.join( installprefix, "usr/share/sounds/", ring_tone ) if self.cmd == "play": logger.info( "Start ringing : tone=%s, volume=%s", ring_tone, ring_volume ) @@ -180,7 +180,7 @@ phone_prefs = prefs.GetService( "phone" ) tone = phone_prefs.GetValue( "message-tone" ) volume = phone_prefs.GetValue( "message-volume" ) - sound_path = os.path.join( installprefix, "share/sounds/", tone ) + sound_path = os.path.join( installprefix, "usr/share/sounds/", tone ) if self.cmd == "play": logger.info( "Start ringing : tone=%s, volume=%s", tone, volume )
The milestone 2 way
The ringtone in milestone 2 is stored here:
/usr/share/sounds/Arkanoid_PSID.sid
Fun fact : according to the gstreamer documentation, .sid files are in fact small Commodore 64 programs that are executed on an emulated 6502 CPU and a MOS 6581 sound chip.
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 parser.py
- this will be /var/lib/python-support/python2.5/framework/subsystems/oeventd/parser.py if you are using FSO under Debian
Search for PlaySound. Edit the 2 lines to point to your wav or mp3 file.
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("parser.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