From 738867c0f32c023a63abbd605c3e5e479242ff94 Mon Sep 17 00:00:00 2001 From: "W. Trevor King" Date: Sun, 15 Aug 2010 07:52:01 -0400 Subject: [PATCH] Cleanups to playlist name handling in 'load playlist'. Also: * push new curves to outqueue during 'glob curves to playlist'. * 'new playlist' transitioned to a subclass of PlaylistAddingCommand. --- hooke/plugin/playlist.py | 10 +++++----- hooke/plugin/playlists.py | 20 ++++++++++---------- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/hooke/plugin/playlist.py b/hooke/plugin/playlist.py index 69cc562..912d21c 100644 --- a/hooke/plugin/playlist.py +++ b/hooke/plugin/playlist.py @@ -248,8 +248,8 @@ Drivers for loading curves. p = FilePlaylist(drivers=params['drivers'], path=params['input']) p.load(hooke=hooke) playlist_names = [playlist.name for playlist in hooke.playlists] - if p.name not in playlist_names: - params['output playlist'] = p.name # HACK: override input name. How to tell if it is callback-generated? + if p.name in playlist_names: + p.name = params['output playlist'] # HACK: override input name. How to tell if it is callback-generated? self._set_playlist(hooke, params, p) outqueue.put(p) @@ -300,10 +300,10 @@ Additional information for the input :class:`hooke.curve.Curve`. help=self.__doc__, plugin=plugin) def _run(self, hooke, inqueue, outqueue, params): + p = self._playlist(hooke, params) for path in sorted(glob.glob(params['input'])): - self._playlist(hooke, params).append_curve_by_path( - path, params['info'], hooke=hooke) - + p.append_curve_by_path(path, params['info'], hooke=hooke) + outqueue.put(p[-1]) class RemoveCommand (PlaylistCommand): """Remove a curve from a playlist. diff --git a/hooke/plugin/playlists.py b/hooke/plugin/playlists.py index c04f0ba..2194b04 100644 --- a/hooke/plugin/playlists.py +++ b/hooke/plugin/playlists.py @@ -24,7 +24,7 @@ lists of :class:`hooke.playlist.Playlist` classes. from ..command import Command, Argument, Failure from ..playlist import FilePlaylist from . import Builtin -from .playlist import PlaylistNameArgument +from .playlist import PlaylistNameArgument, PlaylistAddingCommand class PlaylistsPlugin (Builtin): @@ -100,14 +100,13 @@ class PlaylistListCommand (Command): outqueue.put(list(hooke.playlists)) -class NewCommand (Command): +class NewCommand (PlaylistAddingCommand): """Create a new playlist. """ def __init__(self, plugin): super(NewCommand, self).__init__( name='new playlist', arguments=[ - PlaylistNameArgument, Argument(name='file', type='file', optional=True, help=""" Default filename for future saves. @@ -116,10 +115,11 @@ Default filename for future saves. help=self.__doc__, plugin=plugin) def _run(self, hooke, inqueue, outqueue, params): - print 'PP', params['name'] - hooke.playlists.append( - FilePlaylist( - drivers=hooke.drivers, - name=params['name'], - path=params['file'], - )) + p = FilePlaylist( + drivers=hooke.drivers, + path=params['file'], + ) + playlist_names = [playlist.name for playlist in hooke.playlists] + if p.name in playlist_names: + p.name = params['output playlist'] # HACK: override input name. How to tell if it is callback-generated? + hooke.playlists.append(p) -- 2.26.2