]> git.parisson.com Git - timeside.git/commitdiff
Implement Parameters by subclassing Processor
authorThomas Fillon <thomas@parisson.com>
Wed, 21 May 2014 16:17:47 +0000 (18:17 +0200)
committerThomas Fillon <thomas@parisson.com>
Wed, 21 May 2014 16:17:47 +0000 (18:17 +0200)
timeside/analyzer/spectrogram.py
timeside/component.py
timeside/core.py

index d30c2e8b313fe96dd7413b4ae39a53645667e701..01fa6a8b51ce05957e71fae6241f1c1fe2ad362a 100644 (file)
@@ -23,6 +23,9 @@ from timeside.core import implements, interfacedoc
 from timeside.analyzer.core import Analyzer
 from timeside.api import IAnalyzer
 from timeside.analyzer.preprocessors import downmix_to_mono, frames_adapter
+from ..tools.parameters import Unicode, Int, HasTraits
+
+
 import numpy as np
 
 
@@ -31,6 +34,10 @@ class Spectrogram(Analyzer):
     """Spectrogram analyzer"""
     implements(IAnalyzer)
 
+    # Define Parameters
+    class _Param(HasTraits):
+        FFT_SIZE = Int()
+
     def __init__(self, blocksize=2048, stepsize=None, fft_size=None):
         super(Spectrogram, self).__init__()
 
index a92ae1676bb68ff79feb40ce99fb586c376a7c27..dfbb43ddd1115778143681e83d9978e6e621066e 100644 (file)
@@ -92,7 +92,7 @@ class MetaComponent(type):
     abstract = False
 
     def __new__(cls, name, bases, d):
-        new_class = type.__new__(cls, name, bases, d)
+        new_class = super(MetaComponent, cls).__new__(cls, name, bases, d)
 
         # Register implementations
         if MetaComponent.implements:
@@ -129,6 +129,9 @@ class Component(object):
     """Base class of all components"""
     __metaclass__ = MetaComponent
 
+    def __init__(self):
+        super(Component, self).__init__()
+
 
 def extend_unique(list1, list2):
     """Extend list1 with list2 as list.extend(), but doesn't append duplicates
index d821225405d99e7457874a789273edd32aaf882d..22034509ac04d457a07d6428f2f783fd02dc9f16 100644 (file)
@@ -22,6 +22,7 @@ from .component import Component, MetaComponent, abstract
 from .component import implements, implementations, interfacedoc
 from .api import IProcessor
 from .exceptions import Error, PIDError, ApiError
+from .tools.parameters import HasParam
 
 import re
 import numpy
@@ -44,7 +45,7 @@ class MetaProcessor(MetaComponent):
     valid_id = re.compile("^[a-z][_a-z0-9]*$")
 
     def __new__(cls, name, bases, d):
-        new_class = MetaComponent.__new__(cls, name, bases, d)
+        new_class = super(MetaProcessor, cls).__new__(cls, name, bases, d)
         if new_class in implementations(IProcessor):
             id = str(new_class.id())
             if id in _processors:
@@ -67,7 +68,7 @@ class MetaProcessor(MetaComponent):
         return new_class
 
 
-class Processor(Component):
+class Processor(Component, HasParam):
 
     """Base component class of all processors