Package VisionEgg :: Package PyroApps :: Module ColorCalServer
[frames] | no frames]

Source Code for Module VisionEgg.PyroApps.ColorCalServer

 1  #!/usr/bin/env python 
 2  # 
 3  # The Vision Egg: ColorCalServer 
 4  # 
 5  # Copyright (C) 2001-2003 Andrew Straw. 
 6  # Author: Andrew Straw <astraw@users.sourceforge.net> 
 7  # URL: <http://www.visionegg.org/> 
 8  # 
 9  # Distributed under the terms of the GNU Lesser General Public License 
10  # (LGPL). See LICENSE.TXT that came with this file. 
11  # 
12  # $Id$ 
13   
14  """Handle luminance and color calibration stimulus (server-side)""" 
15   
16  import VisionEgg, string 
17  __version__ = VisionEgg.release_name 
18  __cvs__ = string.split('$Revision$')[1] 
19  __date__ = string.join(string.split('$Date$')[1:3], ' ') 
20  __author__ = 'Andrew Straw <astraw@users.sourceforge.net>' 
21   
22  import sys, os, math 
23  import VisionEgg.Core 
24  import VisionEgg.FlowControl 
25  import VisionEgg.PyroHelpers 
26  import Pyro.core 
27  import pygame, pygame.locals 
28   
29  from VisionEgg.PyroApps.ColorCalGUI import ColorCalMetaParameters 
30   
31 -class ColorCalMetaController( Pyro.core.ObjBase ):
32 - def __init__(self,screen,presentation,stimuli):
33 Pyro.core.ObjBase.__init__(self) 34 self.meta_params = ColorCalMetaParameters() 35 if not isinstance(screen,VisionEgg.Core.Screen): 36 raise ValueError("Expecting instance of VisionEgg.Core.Screen") 37 if not isinstance(presentation,VisionEgg.FlowControl.Presentation): 38 raise ValueError("Expecting instance of VisionEgg.FlowControl.Presentation") 39 40 self.screen = screen 41 self.p = presentation 42 43 self.update() # set stimulus parameters to initial defaults
44
45 - def get_parameters(self):
46 return self.meta_params
47
48 - def set_parameters(self, new_parameters):
49 if isinstance(new_parameters, ColorCalMetaParameters): 50 self.meta_params = new_parameters 51 else: 52 raise ValueError("Argument to set_parameters must be instance of ColorCalMetaParameters") 53 self.update()
54
55 - def update(self):
56 self.screen.parameters.bgcolor = self.meta_params.color
57
58 - def go(self):
59 pass
60
61 - def quit_server(self):
62 self.p.parameters.quit = 1
63
64 -def get_meta_controller_class():
65 return ColorCalMetaController
66
67 -def make_stimuli():
68 return []
69
70 -def get_meta_controller_stimkey():
71 return "color_cal_server"
72 73 # Don't do anything unless this script is being run 74 if __name__ == '__main__': 75 76 pyro_server = VisionEgg.PyroHelpers.PyroServer() 77 78 screen = VisionEgg.Core.Screen.create_default() 79 80 # get Vision Egg stimulus ready to go 81 p = VisionEgg.FlowControl.Presentation() 82 83 stimuli = make_stimuli() 84 85 # now hand over control of grating and mask to FlatGratingExperimentMetaController 86 meta_controller = ColorCalMetaController(screen,p,stimuli) 87 pyro_server.connect(meta_controller,get_meta_controller_stimkey()) 88 89 # get listener controller and register it 90 p.add_controller(None,None, pyro_server.create_listener_controller()) 91 92 # enter endless loop 93 p.run_forever() 94