Cleaned up hooke.playlist.load() and its use in `load playlist`.
[hooke.git] / hooke / plugin / playlist.py
index fbd30fa28da62e0da12892eae8382c4f14c359a7..36993017a4344113c9a61c6261c190eef021ffe7 100644 (file)
@@ -27,7 +27,7 @@ import os.path
 
 from ..command import Command, Argument, Failure
 from ..curve import NotRecognized
-from ..playlist import FilePlaylist
+from ..playlist import load
 from ..util.itertools import reverse_enumerate
 from . import Builtin
 
@@ -250,8 +250,7 @@ Drivers for loading curves.
             help=self.__doc__, plugin=plugin)
 
     def _run(self, hooke, inqueue, outqueue, params):
-        p = FilePlaylist(drivers=params['drivers'], path=params['input'])
-        p.load(hooke=hooke)
+        p = load(path=params['input'], drivers=params['drivers'])
         self._set_playlist(hooke, params, p)
        outqueue.put(p)
 
@@ -393,9 +392,10 @@ class FilterCommand (PlaylistAddingCommand, PlaylistCommand):
     method of their subclass.  See, for example,
     :meth:`NoteFilterCommand.filter`.
     """
-    def __init__(self, plugin, name='filter playlist'):
+    def __init__(self, plugin, name='filter playlist', load_curves=True):
         super(FilterCommand, self).__init__(
             name=name, help=self.__doc__, plugin=plugin)
+        self._load_curves = load_curves
         if not hasattr(self, 'filter'):
             self.arguments.append(
                 Argument(name='filter', type='function', optional=False,
@@ -409,7 +409,8 @@ Function returning `True` for "good" curves.
             filter_fn = params['filter']
         else:
             filter_fn = self.filter
-        p = self._playlist(hooke, params).filter(filter_fn,
+        p = self._playlist(hooke, params).filter(
+            filter_fn, load_curves=self._load_curves,
             hooke=hooke, inqueue=inqueue, outqueue=outqueue, params=params)
         self._set_playlist(hooke, params, p)
         if hasattr(p, 'path') and p.path != None: