-# Copyright (C) 2010 W. Trevor King <wking@drexel.edu>
+# Copyright (C) 2010-2012 W. Trevor King <wking@drexel.edu>
#
# This file is part of Hooke.
#
from ..command import Command, Argument, Failure
from . import Builtin
from .curve import current_curve_callback
-
+from .playlist import FilterCommand
class NotePlugin (Builtin):
def __init__(self):
super(NotePlugin, self).__init__(name='note')
self._commands = [
- SetNoteCommand(self), GetNoteCommand(self)]
+ SetNoteCommand(self), GetNoteCommand(self),
+ NoteFilterCommand(self),
+ ]
class SetNoteCommand (Command):
help=self.__doc__, plugin=plugin)
def _run(self, hooke, inqueue, outqueue, params):
- outqueue.put(params['target'].info['note'])
+ outqueue.put(params['target'].info.get('note', None))
+
+
+class NoteFilterCommand (FilterCommand):
+ """Create a subset playlist of curves with `.info['note'] != None`.
+ """
+ def __init__(self, plugin):
+ super(NoteFilterCommand, self).__init__(
+ plugin, name='note filter playlist', load_curves=False)
+
+ def filter(self, curve, hooke, inqueue, outqueue, params):
+ return 'note' in curve.info and curve.info['note'] != None