Esempio n. 1
0
Scheme_Object* scheme_initialize( Scheme_Env * env )
{
	DWORD threadID;
	Scheme_Env * menv;
	Scheme_Small_Object * hotkey_event;
	
	g_native_semaphore = CreateSemaphore( NULL, 0, 500, SEMA_NAME );
	
	CreateThread( NULL, 0, ThreadProc, NULL, 0, &threadID );
	
	menv = scheme_primitive_module( scheme_module_name(), env );

	g_hotkey_event_type 		= scheme_make_type("<system-event>");	
	hotkey_event 				= (Scheme_Small_Object*) scheme_malloc( sizeof(Scheme_Small_Object) );
	hotkey_event->iso.so.type	= g_hotkey_event_type;
	hotkey_event->u.int_val 	= (long)g_native_semaphore;	

	scheme_register_extension_global( hotkey_event, sizeof(Scheme_Small_Object) );
	
	scheme_add_evt( g_hotkey_event_type,
			(Scheme_Ready_Fun) scheme_hotkey_inactive,
			(Scheme_Needs_Wakeup_Fun) scheme_hotkey_needs_wakeup,
			NULL, 0);
	
	scheme_add_global( "system-events-event", (Scheme_Object*) hotkey_event, menv );
				 
	scheme_add_global( "last-system-event",  
	                  scheme_make_prim_w_arity( scm_last_system_event, "last-system-event", 0, 0 ),
	                  menv );
	
	scheme_finish_primitive_module( menv );

	return scheme_void;
}
Esempio n. 2
0
/*========================================================================*/
void scheme_init_place(Scheme_Env *env)
{
  Scheme_Env *plenv;

#ifdef MZ_PRECISE_GC
  register_traversers();
#endif
  
  plenv = scheme_primitive_module(scheme_intern_symbol("#%place"), env);

  GLOBAL_PRIM_W_ARITY("place-enabled?",    scheme_place_enabled,   0, 0, plenv);
  GLOBAL_PRIM_W_ARITY("place-shared?",     scheme_place_shared,    1, 1, plenv);
  PLACE_PRIM_W_ARITY("place",              scheme_place,           2, 2, plenv);
  PLACE_PRIM_W_ARITY("place-sleep",        scheme_place_sleep,     1, 1, plenv);
  PLACE_PRIM_W_ARITY("place-wait",         scheme_place_wait,      1, 1, plenv);
  PLACE_PRIM_W_ARITY("place?",             scheme_place_p,         1, 1, plenv);
  PLACE_PRIM_W_ARITY("place-channel",      scheme_place_channel,   0, 0, plenv);
  PLACE_PRIM_W_ARITY("place-channel-send", scheme_place_send,      1, 2, plenv);
  PLACE_PRIM_W_ARITY("place-channel-recv", scheme_place_recv,      1, 1, plenv);
  PLACE_PRIM_W_ARITY("place-channel?",     scheme_place_channel_p, 1, 1, plenv);

#ifdef MZ_USE_PLACES
  REGISTER_SO(scheme_def_place_exit_proc);
  scheme_def_place_exit_proc = scheme_make_prim_w_arity(def_place_exit_handler_proc, "default-place-exit-handler", 1, 1);
#endif
  scheme_finish_primitive_module(plenv);

}
Esempio n. 3
0
Scheme_Object *
scheme_reload (Scheme_Env *env)
{
  Scheme_Env *menv = NULL;      // The module's environment

  // Annotations for the garbage collector
  MZ_GC_DECL_REG (2);
  MZ_GC_VAR_IN_REG (0, env);
  MZ_GC_VAR_IN_REG (1, menv);
  MZ_GC_REG ();

  // Build the module environment.
  menv = scheme_primitive_module (scheme_intern_symbol ("loudbus"),
                                  env);

  // Build the procedures
  register_function (loudbus_call,        "loudbus-call",        2, -1, menv);
  register_function (loudbus_import,      "loudbus-import",      3,  3, menv);
  register_function (loudbus_init,        "loudbus-init",        1,  1, menv);
  register_function (loudbus_method_info, "loudbus-method-info", 2,  2, menv);
  register_function (loudbus_methods,     "loudbus-methods",     1,  1, menv);
  register_function (loudbus_objects,     "loudbus-objects",     1,  1, menv);
  register_function (loudbus_proxy,       "loudbus-proxy",       3,  3, menv);
  register_function (loudbus_services,    "loudbus-services",    0,  0, menv);

  // And we're done.
  scheme_finish_primitive_module (menv);
  MZ_GC_UNREG ();

  return scheme_void;
} // scheme_reload
Esempio n. 4
0
Scheme_Object *scheme_reload(Scheme_Env *env)
{
Scheme_Object *proc;
Scheme_Env *mod_env;
mod_env = scheme_primitive_module(scheme_intern_symbol("midi_extension"),env);

  // make sure we start with a clean slate
  midi_io.finalise();

  proc=scheme_make_prim_w_arity(list_devices,"list-midi-devices",0,0);
  scheme_add_global("list-midi-devices",proc,mod_env);
  proc=scheme_make_prim_w_arity(set_input_device,"set-midi-input",1,1);
  scheme_add_global("set-midi-input",proc,mod_env);
  proc=scheme_make_prim_w_arity(set_output_device,"set-midi-output",1,1);
  scheme_add_global("set-midi-output",proc,mod_env);
  proc=scheme_make_prim_w_arity(startmidi,"start-midi-io",0,0);
  scheme_add_global("start-midi-io",proc,mod_env);
  proc=scheme_make_prim_w_arity(stopmidi,"stop-midi-io",0,0);
  scheme_add_global("stop-midi-io",proc,mod_env);
  proc=scheme_make_prim_w_arity(note_on,"note-on",3,3);
  scheme_add_global("note-on",proc,mod_env);
  proc=scheme_make_prim_w_arity(note_off,"note-off",3,3);
  scheme_add_global("note-off",proc,mod_env);
  proc=scheme_make_prim_w_arity(read_event,"read-midi-event",0,0);
  scheme_add_global("read-midi-event",proc,mod_env);

  scheme_finish_primitive_module(mod_env);

  return scheme_void;
} // scheme_reload()
Esempio n. 5
0
Scheme_Object *scheme_reload(Scheme_Env *env)
{
  Scheme_Env *menv;

  menv = scheme_primitive_module(scheme_intern_symbol("embed-me8"),
				 env);

  scheme_add_global("ex", scheme_make_prim_w_arity(ex, "ex", 0, 0), menv);

  scheme_finish_primitive_module(menv);

  return scheme_void;
}
Esempio n. 6
0
Scheme_Object *scheme_reload(Scheme_Env *env)
{
    Scheme_Env *mod_env;

    mod_env = scheme_primitive_module(scheme_intern_symbol("make-gl-info-helper"), env);
    scheme_add_global("gl-byte-size",
                      scheme_make_integer_value(sizeof(GLbyte)),
                      mod_env);
    scheme_add_global("gl-ubyte-size",
                      scheme_make_integer_value(sizeof(GLubyte)),
                      mod_env);
    scheme_add_global("gl-short-size",
                      scheme_make_integer_value(sizeof(GLshort)),
                      mod_env);
    scheme_add_global("gl-ushort-size",
                      scheme_make_integer_value(sizeof(GLushort)),
                      mod_env);
    scheme_add_global("gl-int-size",
                      scheme_make_integer_value(sizeof(GLint)),
                      mod_env);
    scheme_add_global("gl-uint-size",
                      scheme_make_integer_value(sizeof(GLuint)),
                      mod_env);
    scheme_add_global("gl-float-size",
                      scheme_make_integer_value(sizeof(GLfloat)),
                      mod_env);
    scheme_add_global("gl-double-size",
                      scheme_make_integer_value(sizeof(GLdouble)),
                      mod_env);
    scheme_add_global("gl-boolean-size",
                      scheme_make_integer_value(sizeof(GLboolean)),
                      mod_env);
    scheme_add_global("gl-sizei-size",
                      scheme_make_integer_value(sizeof(GLsizei)),
                      mod_env);
    scheme_add_global("gl-clampf-size",
                      scheme_make_integer_value(sizeof(GLclampf)),
                      mod_env);
    scheme_add_global("gl-clampd-size",
                      scheme_make_integer_value(sizeof(GLclampd)),
                      mod_env);
    scheme_add_global("gl-enum-size",
                      scheme_make_integer_value(sizeof(GLenum)),
                      mod_env);
    scheme_add_global("gl-bitfield-size",
                      scheme_make_integer_value(sizeof(GLbitfield)),
                      mod_env);
    scheme_finish_primitive_module(mod_env);

    return scheme_void;
}
Esempio n. 7
0
Scheme_Object* scheme_initialize(Scheme_Env *env)
{
  Scheme_Env* menv;

  menv = scheme_primitive_module(scheme_intern_symbol("ext"), env);

  scheme_add_global("EAGAIN", scheme_make_integer(EAGAIN), menv);

  scheme_add_global("zmq_poll*",
                    scheme_make_prim_w_arity(zpoll, "zmq_poll*", 3, 3), menv);

  scheme_finish_primitive_module(menv);

  return scheme_void;
}
Esempio n. 8
0
Scheme_Object *
scheme_reload (Scheme_Env *env)
{
  Scheme_Env *menv = NULL;      // The module's environment
  Scheme_Object *proc = NULL;   // A Procedure we're adding

  // Annotations for the garbage collector
  MZ_GC_DECL_REG (2);
  MZ_GC_VAR_IN_REG (0, env);
  MZ_GC_VAR_IN_REG (1, menv);
  MZ_GC_REG ();

  // Build the module environment.
  menv = scheme_primitive_module (scheme_intern_symbol ("loudbus"),
                                  env);

  // Build the procedures
  proc = scheme_make_prim_w_arity (loudbus_call, "loudbus-call", 2, -1);
  scheme_add_global ("loudbus-call", proc, menv);

  proc = scheme_make_prim_w_arity (loudbus_import, "loudbus-import", 3, 3),
  scheme_add_global ("loudbus-import", proc, menv);

  proc = scheme_make_prim_w_arity (loudbus_init, "loudbus-init", 1, 1),
  scheme_add_global ("loudbus-init", proc, menv);

  proc = scheme_make_prim_w_arity (loudbus_methods, "loudbus-methods", 1, 1),
  scheme_add_global ("loudbus-methods", proc, menv);

  proc = scheme_make_prim_w_arity (loudbus_proxy, "loudbus-proxy", 3, 3),
  scheme_add_global ("loudbus-proxy", proc, menv);

  // And we're done.
  scheme_finish_primitive_module (menv);
  MZ_GC_UNREG ();

  return scheme_void;
} // scheme_reload
Esempio n. 9
0
Scheme_Object *
scheme_reload (Scheme_Env *env)
{
  Scheme_Env *menv = NULL;      // The module's environment.
  Scheme_Object *proc = NULL;      // A procedure that we're adding.

  // Annotations for the garbage collector
  MZ_GC_DECL_REG (2);
  MZ_GC_VAR_IN_REG (0, env);
  MZ_GC_VAR_IN_REG (1, menv);
  MZ_GC_REG ();

  // Build the module environment
  menv = scheme_primitive_module (scheme_intern_symbol ("irgb"), env);

  // Add the procedures
  proc = scheme_make_prim_w_arity (irgb_alpha, "irgb-alpha", 1, 1);
  scheme_add_global ("irgb-alpha", proc, menv);
  proc = scheme_make_prim_w_arity (irgb_blue, "irgb-blue", 1, 1);
  scheme_add_global ("irgb-blue", proc, menv);
  proc = scheme_make_prim_w_arity (irgb_green, "irgb-green", 1, 1);
  scheme_add_global ("irgb-green", proc, menv);
  proc = scheme_make_prim_w_arity (irgb_new, "irgb-new", 3, 3);
  scheme_add_global ("irgb-new", proc, menv);
  proc = scheme_make_prim_w_arity (irgb_red, "irgb-red", 1, 1);
  scheme_add_global ("irgb-red", proc, menv);
  proc = scheme_make_prim_w_arity (irgba_new, "irgba-new", 4, 4);
  scheme_add_global ("irgba-new", proc, menv);

  // Clean up
  scheme_finish_primitive_module (menv);
  MZ_GC_UNREG ();

  // And we're done
  return scheme_void;
} // scheme_reload