Hi,
I've just uploaded PyTone 2.2.2 to the usual place:
http://www.luga.de/pytone/download/PyTone-2.2.2.tar.gz
This release adds the oft-requested support for seeking in the song (many
thanks to Tomas Menzl for providing a patch). Some other new features are: The
complete contents of the playlist are now being kept after a restart of PyTone.
When for a given artist only songs of a single album are registered, PyTone can
now optionally skip the album selection directory. Directly jumping to the
album of the currently selected song in the playlist window has been
implemented (the default keybinding for this is KEY_RIGHT). Changes to the
database are now better reflected in the database view. Database checkpointing
works again and a couple of other bugs have been fixed.
For more details, see the attached portion of the ChangeLog.
Enjoy,
Jörg
2005-03-12 Jörg Lehmann <joerg(a)luga.de>
* services/players/mpg123.py: Implement seeking.
2005-03-08 Jörg Lehmann <joerg(a)luga.de>
* events.py: Make checkpointdb a dbevent in order to let the
songdbmanager pass it to the databases (many thanks to Tomas Menzl
<xmenzl at aldebaran dot feld dot cvut dot cz> for pointing out
this problem).
* services/songdbs/local.py: Send sendeventin event to global hub
instead of to songdbhub to make it actually work. Use repeat
interval instead of sending every time a new sendeventin event.
* item.py: Add new item method getid, which returns a unique
id for the item in the current context (used in slist.set method)
* services/playlist.py: Add getid method to playlistitem (for
use in slist.set method).
* slist.py: Use getid method to identify the previously selected
item in set method.
* services/playlist.py: Cleanup variable names: song -> item.
2005-03-07 Jörg Lehmann <joerg(a)luga.de>
* services/player.py: Process incoming events twice to be able
to rely on block argument of channel. Also block when waiting
for a new song to appear in the playlist, since any arbitrary
events unblocks the player.
* services/songdbs/local.py: Use active transaction as an indication
for a busy db.
* filelist.py: Also react on new playlists.
2005-03-06 Jörg Lehmann <joerg(a)luga.de>
* services/songdbs/local.py: Delete log files when checkpointing
dbenv preventing huge disk space usage during song registering
(Ochsenschlegel bugfix).
2005-03-03 Jörg Lehmann <joerg(a)luga.de>
* services/players/internal.py. Also request new song when not
crossfading to make autoplay == False work in this case
(thanks to Tomas Menzl <xmenzl at aldebaran dot feld dot cvut dot
cz> for providing a patch).
* events, services/playlist.py: New event playlistplaysong which
allows one to tell the playlist to immediately play a specific song.
* playlist.py: Use playlistplaysong instead of playlistaddsongstop
when the user requests the immediate playback of a song in the
playlist (as suggested by Tomas Menzl <xmenzl at aldebaran dot
feld dot cvut dot cz>), leading to a more mainstream behaviour of
PyTone in that regard. ;-)
* playlist.py: playlistaddsongstop now correctly updates the information
about the currently playing song.
* playlist.py: Keep information about played songs after
restarting PyTone.
* helper.py: Write exception to stdout since we have closed stderr.
* services/timer.py: Do not daemonize and switch to new timeout option
of channel.process.
* services/players/internal.py: Do not daemonize bufferedaudiodev buf
shut it down properly.
2005-03-01 Jörg Lehmann <joerg(a)luga.de>
* hub.py: Add optional timeout to process method of channel.
* services/player.py: Make use of new timeout option.
* event.py: Renamed playerforward -> playernext
* decoder.py, services/player.py, services/players/internal.py:
Enable seeking in songs (many thanks to Tomas Menzl <xmenzl at
aldebaran dot feld dot cvut dot cz> for providing a patch).
* requests.py: Add sort member variable to getsongsinplaylists
request, fixing a crash when rescanning, querying a random
selection, etc. of all songs in playlists (thanks to Tomas Menzl
<xmenzl at aldebaran dot feld dot cvut dot cz> for reporting this
problem).
2005-02-27 Jörg Lehmann <joerg(a)luga.de>
* filelist.py: Some cleanups.
* playlist.py: Ditto.
* events.py: New event filelistjumptosong, which directs the filelist
to jump to a given song in the directory hierarchy.
* config.py. New keybinding "filelistjumptoselectedsong" for
playlistwindow (by default KEY_RIGHT is used).
* config.py: New option "skipsinglealbums" in filelistwindow
section, which when turned on, tells PyTone to skip the album and
go directly to the songs when there is only one album of a given
artist.
2005-02-26 Jörg Lehmann <joerg(a)luga.de>
* dbitem.py: Remove __class__ comparison from __cmp__ method of dbitem
class
* services/songdb.py: Avoid repeated songs when randomly selecting
songs out of a short list.
2005-02-12 Jörg Lehmann <joerg(a)luga.de>
* services/playlist.py: Cleanup and fix some minor bugs.
2005-02-09 Jörg Lehmann <joerg(a)luga.de>
* setup.py: (Ab-)use scripts directive for installing pytone
and pytonectl shell scripts.
* log.py: Make debugfile initialization manual to allow the use of
the log module in the config module (thanks to Brian Lenihan
<brian_l at mac dot com> for proposing this).
* config.py: Fix --rebuild command line switch.
* services/players/mpg123.py: Be more relaxed when initializing
the player and when parsing the "@F" lines to make mpg123 work
again (thanks to Brian Lenihan <brian_l at mac dot com> for
providing a patch).
* conf/pytonerc: Add sample command line for mpg123 player.
* dbitem.py: Do not assume that all exceptions derive from the
Exception base class (fixing the scanning problems reported by
Alexander Wirt <formorer at formorer dot de> and Jack Bakeman
<jbakeman at indra dot com>).
2005-02-08 Jörg Lehmann <joerg(a)luga.de>
* config.py: Use correct copyright date when printing usage
summary.
Hi! Still using and loving Pytone. I recently started developing a
few applications with sqlite and I'm *loving* it. I was wondering
if you have any interest in changing pytone's backend to use sqlite
instead of gnu-db or whatever it's using now...