Skip to content

Commit

Permalink
Use trait defaults instead of __init__
Browse files Browse the repository at this point in the history
  • Loading branch information
ptomato committed Jun 29, 2012
1 parent 931cfdb commit 63d391e
Show file tree
Hide file tree
Showing 4 changed files with 27 additions and 32 deletions.
3 changes: 0 additions & 3 deletions src/Camera.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,6 @@ class Camera(HasTraits):
frame_rate = Range(1, 500, 30)
frame = Array()

def __init__(self, **traits):
super(Camera, self).__init__(**traits)

def __enter__(self):
self.open()
return self
Expand Down
9 changes: 4 additions & 5 deletions src/DummyGaussian.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,12 +23,11 @@ class DummyGaussian(Camera):
Item('noise_amplitude'),
title='Dummy Gaussian Plugin')

def __init__(self, *args, **kwargs):
super(DummyGaussian, self).__init__(*args, **kwargs)

def __init__(self, **traits):
super(DummyGaussian, self).__init__(resolution=(320, 240),
id_string='Dummy Gaussian Plugin',
**traits)
self._supported_resolutions = [(320, 240), (640, 480)]
self.resolution = (320, 240)
self.id_string = 'Dummy Gaussian Plugin'

def open(self):
pass
Expand Down
40 changes: 19 additions & 21 deletions src/MainWindow.py
Original file line number Diff line number Diff line change
Expand Up @@ -35,15 +35,15 @@ class MainWindow(HasTraits):
resolution = DelegatesTo('camera')
frame_rate = DelegatesTo('camera')
status = Str()
screen = Instance(CameraImage)
screen = Instance(CameraImage, args=())
cmap = DelegatesTo('screen')
display_frame_rate = Range(1, 60, 15)
transform_plugins = List(Instance(TransformPlugin))
display_plugins = List(Instance(DisplayPlugin))
acquisition_thread = Instance(AcquisitionThread)
processing_thread = Instance(ProcessingThread)
processing_queue = Instance(queue.Queue)
cameras_dialog = Instance(CameraDialog)
acquisition_thread = Instance(AcquisitionThread) # default: None
processing_thread = Instance(ProcessingThread) # default: None
processing_queue = Instance(queue.Queue, kw={'maxsize': MAX_QUEUE_SIZE})
cameras_dialog = Instance(CameraDialog, args=())

# Actions
about = Action(
Expand Down Expand Up @@ -157,26 +157,26 @@ def _find_resolution_fired(self):
def _display_frame_rate_changed(self, value):
self.processing_thread.update_frequency = value

def _transform_plugins_default(self):
plugins = []
for name in ['Rotator', 'BackgroundSubtract']:
module = __import__(name, globals(), locals(), [name])
plugins.append(getattr(module, name)())
return plugins

def _display_plugins_default(self):
plugins = []
for name in ['BeamProfiler', 'MinMaxDisplay', 'DeltaDetector']:
module = __import__(name, globals(), locals(), [name])
plugins.append(getattr(module, name)(screen=self.screen))
return plugins

def __init__(self, **traits):
super(MainWindow, self).__init__(**traits)

self.screen = CameraImage()

# Build the camera selection dialog box
self.cameras_dialog = CameraDialog()
self.cameras_dialog.on_trait_change(self.on_cameras_response, 'closed')

# Build the plugin components
self.camera_plugins = []
self.transform_plugins = []
self.display_plugins = []
for name in ['Rotator', 'BackgroundSubtract']:
module = __import__(name, globals(), locals(), [name])
self.transform_plugins.append(getattr(module, name)())
for name in ['BeamProfiler', 'MinMaxDisplay', 'DeltaDetector']:
module = __import__(name, globals(), locals(), [name])
self.display_plugins.append(getattr(module, name)(screen=self.screen))

# Open the default plugin
info = self.cameras_dialog.get_plugin_info()
try:
Expand All @@ -187,8 +187,6 @@ def __init__(self, **traits):
info = self.cameras_dialog.get_plugin_info()
self.select_plugin(*info)

self.processing_queue = queue.Queue(maxsize=MAX_QUEUE_SIZE)
self.acquisition_thread = None
self.processing_thread = ProcessingThread(self, self.processing_queue, self.display_frame_rate)
self.processing_thread.start()

Expand Down
7 changes: 4 additions & 3 deletions src/Webcam.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,9 +27,10 @@ def ipl2array(im):


class Webcam(Camera):
def __init__(self, *args, **kwargs):
super(Webcam, self).__init__(self, *args, **kwargs)
self.id_string = 'OpenCV driver, unknown camera'
def __init__(self, **traits):
super(Webcam, self).__init__(
id_string='OpenCV driver, unknown camera',
**traits)
self._capture = None

def open(self):
Expand Down

0 comments on commit 63d391e

Please sign in to comment.