def __init__(self, experiment, osc="sine", freq=440, length=100, attack=0, decay=5): if experiment.debug: print "synth.__init__(): morphing into openexp._synth.%s" % experiment.synth_backend exec("import openexp._synth.%s" % experiment.synth_backend) self.__class__ = eval( "openexp._synth.%s.%s" % (experiment.synth_backend, experiment.synth_backend)) else: try: exec("import openexp._synth.%s" % experiment.synth_backend) self.__class__ = eval( "openexp._synth.%s.%s" % (experiment.synth_backend, experiment.synth_backend)) except Exception as e: raise exceptions.canvas_error( "Failed to import 'openexp._synth.%s' as synth backend.<br /><br />Error: %s" % (experiment.backend, e)) exec( "openexp._synth.%s.%s.__init__(self, experiment, osc, freq, length, attack, decay)" % (experiment.synth_backend, experiment.synth_backend))
def __init__(self, experiment, buttonlist = None, timeout = None, visible = False): if experiment.debug: print "mouse.__init__(): morphing into openexp._mouse.%s" % experiment.mouse_backend exec("import openexp._mouse.%s" % experiment.mouse_backend) self.__class__ = eval("openexp._mouse.%s.%s" % (experiment.mouse_backend, experiment.mouse_backend)) else: try: exec("import openexp._mouse.%s" % experiment.mouse_backend) self.__class__ = eval("openexp._mouse.%s.%s" % (experiment.mouse_backend, experiment.mouse_backend)) except Exception as e: raise exceptions.canvas_error("Failed to import 'openexp._mouse.%s' as mouse backend.<br /><br />Error: %s" % (experiment.backend, e)) exec("openexp._mouse.%s.%s.__init__(self, experiment, buttonlist, timeout, visible)" % (experiment.mouse_backend, experiment.mouse_backend))
def __init__(self, experiment, osc = "sine", freq = 440, length = 100, attack = 0, decay = 5): if experiment.debug: print "synth.__init__(): morphing into openexp._synth.%s" % experiment.synth_backend exec("import openexp._synth.%s" % experiment.synth_backend) self.__class__ = eval("openexp._synth.%s.%s" % (experiment.synth_backend, experiment.synth_backend)) else: try: exec("import openexp._synth.%s" % experiment.synth_backend) self.__class__ = eval("openexp._synth.%s.%s" % (experiment.synth_backend, experiment.synth_backend)) except Exception as e: raise exceptions.canvas_error("Failed to import 'openexp._synth.%s' as synth backend.<br /><br />Error: %s" % (experiment.backend, e)) exec("openexp._synth.%s.%s.__init__(self, experiment, osc, freq, length, attack, decay)" % (experiment.synth_backend, experiment.synth_backend))
def __init__(self, experiment, keylist = None, timeout = None): if experiment.debug: print "keyboard.__init__(): morphing into openexp._keyboard.%s" % experiment.keyboard_backend exec("import openexp._keyboard.%s" % experiment.keyboard_backend) self.__class__ = eval("openexp._keyboard.%s.%s" % (experiment.keyboard_backend, experiment.keyboard_backend)) else: try: exec("import openexp._keyboard.%s" % experiment.keyboard_backend) self.__class__ = eval("openexp._keyboard.%s.%s" % (experiment.keyboard_backend, experiment.keyboard_backend)) except Exception as e: raise exceptions.canvas_error("Failed to import 'openexp._keyboard.%s' as keyboard backend.<br /><br />Error: %s" % (experiment.backend, e)) exec("openexp._keyboard.%s.%s.__init__(self, experiment, keylist, timeout)" % (experiment.keyboard_backend, experiment.keyboard_backend))
def init_display(experiment): """See openexp._canvas.legacy""" if experiment.resolution() != resolution: raise canvas_error( \ 'The droid back-end requires a resolution of %d x %d. Your display will be scaled automatically to fit devices with different resolutions.' \ % resolution) # Intialize PyGame if not pygame.display.get_init(): pygame.init() experiment.window = pygame.display.set_mode(resolution) experiment.surface = pygame.display.get_surface() # Set the time functions to use pygame experiment._time_func = pygame.time.get_ticks experiment._sleep_func = pygame.time.delay experiment.time = experiment._time_func experiment.sleep = experiment._sleep_func # Initialze the Android device if necessary if android != None: android.init() android.map_key(android.KEYCODE_BACK, pygame.K_ESCAPE) dpi = android.get_dpi() else: # A dummy dpi if we are not on Android dpi = 96 # Log the device characteristics info = pygame.display.Info() diag = hypot(info.current_w, info.current_h) / dpi if diag < 6: # 6" is the minimum size to be considered a tablet is_tablet = 'yes' else: is_tablet = 'no' experiment.set('device_resolution_width', info.current_w) experiment.set('device_resolution_height', info.current_h) experiment.set('device_dpi', dpi) experiment.set('device_screen_diag', diag) experiment.set('device_is_tablet', is_tablet) # Start with a splash screen splash = pygame.image.load(experiment.resource('android-splash.jpg')) x = resolution[0]/2 - splash.get_width()/2 y = resolution[1]/2 - splash.get_height()/2 experiment.surface.blit(splash, (x,y)) for i in range(10): pygame.display.flip() pygame.time.delay(100) if android != None and android.check_pause(): android.wait_for_resume()
def init_display(experiment): """See openexp._canvas.legacy""" if experiment.resolution() != resolution: raise canvas_error( \ 'The droid back-end requires a resolution of %d x %d. Your display will be scaled automatically to fit devices with different resolutions.' \ % resolution) # Intialize PyGame if not pygame.display.get_init(): pygame.init() experiment.window = pygame.display.set_mode(resolution) experiment.surface = pygame.display.get_surface() # Set the time functions to use pygame experiment._time_func = pygame.time.get_ticks experiment._sleep_func = pygame.time.delay experiment.time = experiment._time_func experiment.sleep = experiment._sleep_func # Initialze the Android device if necessary if android != None: android.init() android.map_key(android.KEYCODE_BACK, pygame.K_ESCAPE) dpi = android.get_dpi() else: # A dummy dpi if we are not on Android dpi = 96 # Log the device characteristics info = pygame.display.Info() diag = hypot(info.current_w, info.current_h) / dpi if diag < 6: # 6" is the minimum size to be considered a tablet is_tablet = 'yes' else: is_tablet = 'no' experiment.set('device_resolution_width', info.current_w) experiment.set('device_resolution_height', info.current_h) experiment.set('device_dpi', dpi) experiment.set('device_screen_diag', diag) experiment.set('device_is_tablet', is_tablet) # Start with a splash screen splash = pygame.image.load(experiment.resource('android-splash.jpg')) x = resolution[0] / 2 - splash.get_width() / 2 y = resolution[1] / 2 - splash.get_height() / 2 experiment.surface.blit(splash, (x, y)) for i in range(10): pygame.display.flip() pygame.time.delay(100) if android != None and android.check_pause(): android.wait_for_resume()
def __init__(self, experiment, keylist=None, timeout=None): if experiment.debug: print "keyboard.__init__(): morphing into openexp._keyboard.%s" % experiment.keyboard_backend exec("import openexp._keyboard.%s" % experiment.keyboard_backend) self.__class__ = eval( "openexp._keyboard.%s.%s" % (experiment.keyboard_backend, experiment.keyboard_backend)) else: try: exec("import openexp._keyboard.%s" % experiment.keyboard_backend) self.__class__ = eval( "openexp._keyboard.%s.%s" % (experiment.keyboard_backend, experiment.keyboard_backend)) except Exception as e: raise exceptions.canvas_error( "Failed to import 'openexp._keyboard.%s' as keyboard backend.<br /><br />Error: %s" % (experiment.backend, e)) exec( "openexp._keyboard.%s.%s.__init__(self, experiment, keylist, timeout)" % (experiment.keyboard_backend, experiment.keyboard_backend))