/*================================================================ * Initialization */ void Scm_Init_libgauche_glut(void) { ScmModule *mod; SCM_INIT_EXTENSION(libgauche_glut); mod = SCM_MODULE(SCM_FIND_MODULE("gl.glut", TRUE)); Scm_Init_glut_lib(mod); /* Callback table */ ScmGlutCallbackTable = Scm_MakeHashTableSimple(SCM_HASH_EQV, 0); /* Glut built-in fonts */ #define DEFFONT(name) Scm_DefineConst(mod, SCM_SYMBOL(SCM_INTERN(#name)), makeGlutFont(name)) /* Stroke font constants (use these in GLUT program). */ DEFFONT(GLUT_STROKE_ROMAN); DEFFONT(GLUT_STROKE_MONO_ROMAN); /* Bitmap font constants (use these in GLUT program). */ DEFFONT(GLUT_BITMAP_9_BY_15); DEFFONT(GLUT_BITMAP_8_BY_13); DEFFONT(GLUT_BITMAP_TIMES_ROMAN_10); DEFFONT(GLUT_BITMAP_TIMES_ROMAN_24); #if (GLUT_API_VERSION >= 3) DEFFONT(GLUT_BITMAP_HELVETICA_10); DEFFONT(GLUT_BITMAP_HELVETICA_12); DEFFONT(GLUT_BITMAP_HELVETICA_18); #endif }
void Scm_Init_gauche__izc(void) { ScmModule *mod; /* Register this DSO to Gauche */ SCM_INIT_EXTENSION(izc); /* Create the module if it doesn't exist yet. */ mod = SCM_MODULE(SCM_FIND_MODULE("izc", TRUE)); /* Create the foreign pointer class <mqueue-cpp>. The flag SCM_FOREIGN_POINTER_KEEP_IDENTITY makes Gauche to keep one-to-one mapping between the foreign object pointer (MQueue*) and its wrapping ScmObj. With this flag, you can assume that when mqueue_cleanup is called, no other ScmForeignPointer object is pointing to the same MQueue*, thus you can delete it safely. */ CSintClass = Scm_MakeForeignPointerClass(mod, "<csint>", csint_print, csint_cleanup, SCM_FOREIGN_POINTER_KEEP_IDENTITY|SCM_FOREIGN_POINTER_MAP_NULL); CSintArrayClass = Scm_MakeForeignPointerClass(mod, "<csint-array>", csint_array_print, csint_array_cleanup, SCM_FOREIGN_POINTER_KEEP_IDENTITY|SCM_FOREIGN_POINTER_MAP_NULL); /* Register stub-generated procedures */ Scm_Init_izclib(mod); }
void Scm_Init_gauche_sdl_collide(void) { ScmModule *mod; SCM_INIT_EXTENSION(gauche_sdl_collide); mod = SCM_MODULE(SCM_FIND_MODULE("sdl.collide", TRUE)); Scm_Init_sdl_collidelib(mod); Scm_Init_collide_type(mod); }
void Scm_Init_gauche_rsvg(void) { ScmModule *mod; SCM_INIT_EXTENSION(gauche_rsvg); mod = SCM_MODULE(SCM_FIND_MODULE("cairo.rsvg", TRUE)); Scm_Init_rsvglib(mod); Scm_Init_rsvg_type(mod); }
SCM_EXTENSION_ENTRY void Scm_Init_os__windows(void) { ScmModule *mod; SCM_INIT_EXTENSION(os__windows); mod = SCM_FIND_MODULE("os.windows", SCM_FIND_MODULE_CREATE); Scm_Init_windows(mod); Scm_Init_console(mod); }
SCM_EXTENSION_ENTRY void Scm_Init_gauche__fcntl(void) { SCM_INIT_EXTENSION(gauche__fcntl); ScmModule *mod = SCM_FIND_MODULE("gauche.fcntl", SCM_FIND_MODULE_CREATE); Scm_InitStaticClass(&Scm_SysFlockClass, "<sys-flock>", mod, flock_slots, 0); Scm_Init_fcntlib(mod); #ifndef GAUCHE_WINDOWS Scm_AddFeature("gauche.sys.fcntl", NULL); #endif }
void Scm_Init_nnvector(void) { ScmModule *mod; /* Register this DSO to Gauche */ SCM_INIT_EXTENSION(gauche_nnvector); /* Create the module if it doesn't exist yet. */ mod = SCM_MODULE(SCM_FIND_MODULE("nnvector", TRUE)); /* Register stub-generated procedures */ Scm_Init_nnvector_lib(mod); Scm_Init_nnvector_type(mod); }
void Scm_Init_gauche_clipboard(void) { ScmModule *mod; /* Register this DSO to Gauche */ SCM_INIT_EXTENSION(gauche_clipboard); /* Create the module if it doesn't exist yet. */ mod = SCM_MODULE(SCM_FIND_MODULE("clipboard", TRUE)); /* Register stub-generated procedures */ Scm_Init_gauche_clipboardlib(mod); }
ScmObj Scm_Init_qnb(void) { ScmModule *mod; /* Register this DSO to Gauche */ SCM_INIT_EXTENSION(qnb); /* Create the module if it doesn't exist yet. */ mod = SCM_MODULE(SCM_FIND_MODULE("qnb", TRUE)); /* Register stub-generated procedures */ Scm_Init_qnblib(mod); }
void Scm_Init_gauche_cv_objdetect(void) { ScmModule *mod; /* Register this DSO to Gauche */ SCM_INIT_EXTENSION(gauche_cv_objdetect); /* Create the module if it doesn't exist yet. */ mod = SCM_MODULE(SCM_FIND_MODULE("cv.objdetect", TRUE)); /* Register stub-generated procedures */ Scm_Init_cv_objdetectlib(mod); Scm_Init_objdetect_type(mod); }
/*========================================================== * Initialization */ void Scm_Init_gauche_glgd(void) { ScmModule *mod; SCM_INIT_EXTENSION(gauche_glgd); mod = SCM_MODULE(SCM_FIND_MODULE("gtk.glgd", TRUE)); Scm_InitBuiltinClass(SCM_CLASS_GLGD_NODE, "<glgd-node>", NULL, sizeof(Scm_GLGDNode), mod); Scm_InitBuiltinClass(SCM_CLASS_GLGD_LINK, "<glgd-link>", NULL, sizeof(Scm_GLGDLink), mod); Scm_InitBuiltinClass(SCM_CLASS_GLGD_GRAPH, "<glgd-graph>", NULL, sizeof(Scm_GLGDGraph), mod); Scm_Init_glgdlib(mod); }
ScmObj Scm_Init_graphics_gd(void) { const char *module_name = "graphics.gd"; ScmModule *mod; SCM_INIT_EXTENSION(graphics_gd); mod = SCM_MODULE(SCM_FIND_MODULE(module_name, TRUE)); GraphicsGdImageClass = Scm_MakeForeignPointerClass(mod, "<gd-image>", NULL, graphicsGdImageCleanUp, SCM_FOREIGN_POINTER_KEEP_IDENTITY|SCM_FOREIGN_POINTER_MAP_NULL); GraphicsGdFontClass = Scm_MakeForeignPointerClass(mod, "<gd-font>", NULL, graphicsGdFontCleanUp, SCM_FOREIGN_POINTER_KEEP_IDENTITY|SCM_FOREIGN_POINTER_MAP_NULL); sym_destroyed = SCM_INTERN("destroyed?"); Scm_Init_graphics_gdlib(mod); /* the following feature identifiers are available *after* loading. */ #ifdef GD_XPM Scm_AddFeature("gauche.ext.graphics.gd.xpm", module_name); #endif /* GD_XPM */ #ifdef GD_PNG Scm_AddFeature("gauche.ext.graphics.gd.png", module_name); #endif /* GD_PNG */ #ifdef GD_JPEG Scm_AddFeature("gauche.ext.graphics.gd.jpeg", module_name); #endif /* GD_JPEG */ #ifdef GD_GIF Scm_AddFeature("gauche.ext.graphics.gd.gif", module_name); #endif /* GD_GIF */ #ifdef GD_FREETYPE Scm_AddFeature("gauche.ext.graphics.gd.freetype", module_name); #endif /* GD_FREETYPE */ #ifdef GD_FONTCONFIG Scm_AddFeature("gauche.ext.graphics.gd.fontconfig", module_name); #endif /* GD_FONTCONFIG */ }
SCM_EXTENSION_ENTRY void Scm_Init_libgauche_uvector(void) { SCM_INIT_EXTENSION(uvector); ScmModule *m = SCM_FIND_MODULE("gauche.uvector", SCM_FIND_MODULE_CREATE); Scm_InitStaticClassWithMeta(&Scm_UVectorClass, "<uvector>", m, NULL, SCM_NIL, NULL, 0); Scm_InitStaticClassWithMeta(&Scm_S8VectorClass, "<s8vector>", m, NULL, SCM_NIL, NULL, 0); Scm_InitStaticClassWithMeta(&Scm_U8VectorClass, "<u8vector>", m, NULL, SCM_NIL, NULL, 0); Scm_InitStaticClassWithMeta(&Scm_S16VectorClass, "<s16vector>", m, NULL, SCM_NIL, NULL, 0); Scm_InitStaticClassWithMeta(&Scm_U16VectorClass, "<u16vector>", m, NULL, SCM_NIL, NULL, 0); Scm_InitStaticClassWithMeta(&Scm_S32VectorClass, "<s32vector>", m, NULL, SCM_NIL, NULL, 0); Scm_InitStaticClassWithMeta(&Scm_U32VectorClass, "<u32vector>", m, NULL, SCM_NIL, NULL, 0); Scm_InitStaticClassWithMeta(&Scm_S64VectorClass, "<s64vector>", m, NULL, SCM_NIL, NULL, 0); Scm_InitStaticClassWithMeta(&Scm_U64VectorClass, "<u64vector>", m, NULL, SCM_NIL, NULL, 0); Scm_InitStaticClassWithMeta(&Scm_F16VectorClass, "<f16vector>", m, NULL, SCM_NIL, NULL, 0); Scm_InitStaticClassWithMeta(&Scm_F32VectorClass, "<f32vector>", m, NULL, SCM_NIL, NULL, 0); Scm_InitStaticClassWithMeta(&Scm_F64VectorClass, "<f64vector>", m, NULL, SCM_NIL, NULL, 0); Scm_Init_uvlib(m); Scm_Init_uvutil(); Scm__InstallReadUvectorHook(read_uvector); }
SCM_EXTENSION_ENTRY void Scm_Init_gauche__charconv(void) { SCM_INIT_EXTENSION(gauche__charconv); ScmModule *mod = SCM_FIND_MODULE("gauche.charconv", SCM_FIND_MODULE_CREATE); guess.procs = NULL; (void)SCM_INTERNAL_MUTEX_INIT(guess.mutex); #if defined(GAUCHE_CHAR_ENCODING_UTF_8) ucsconv.ucs2char = ucsconv.char2ucs = NULL; #elif defined(GAUCHE_CHAR_ENCODING_EUC_JP) ucsconv.ucs2char = jconv_open("EUCJP", "UTF-8"); ucsconv.char2ucs = jconv_open("UTF-8", "EUCJP"); #elif defined(GAUCHE_CHAR_ENCODING_SJIS) ucsconv.ucs2char = jconv_open("SJIS", "UTF-8"); ucsconv.char2ucs = jconv_open("UTF-8", "SJIS"); #else ucsconv.ucs2char = ucsconv.char2ucs = NULL; #endif (void)SCM_INTERNAL_MUTEX_INIT(ucsconv.mutex); Scm_Init_convguess(); Scm_Init_convaux(); Scm__InstallCharconvHooks(ucstochar, chartoucs); Scm__InstallCodingAwarePortHook(coding_aware_conv); }
SCM_EXTENSION_ENTRY void Scm_Init_binary__io(void) { ScmModule *mod_io = SCM_FIND_MODULE("binary.io", SCM_FIND_MODULE_CREATE); SCM_INIT_EXTENSION(binary__io); Scm_Init_binarylib(mod_io); }
SCM_EXTENSION_ENTRY void Scm_Init_gauche__termios(void) { ScmModule *mod; SCM_INIT_EXTENSION(gauche__termios); mod = SCM_FIND_MODULE("gauche.termios", SCM_FIND_MODULE_CREATE); Scm_Init_termiolib(mod); #if !defined(GAUCHE_WINDOWS) Scm_InitStaticClass(&Scm_SysTermiosClass, "<sys-termios>", mod, termios_slots, 0); /* Constants for termios. Non-POSIX symbols are guarded by #ifdef's */ #define DEFSYM(sym) \ SCM_DEFINE(mod, #sym, Scm_MakeIntegerFromUI(sym)) /* c_iflag masks */ DEFSYM(IGNBRK); DEFSYM(BRKINT); DEFSYM(IGNPAR); DEFSYM(PARMRK); DEFSYM(INPCK); DEFSYM(ISTRIP); DEFSYM(INLCR); DEFSYM(IGNCR); DEFSYM(ICRNL); DEFSYM(IXON); DEFSYM(IXOFF); #ifdef IXANY DEFSYM(IXANY); #endif #ifdef IUCLC DEFSYM(IUCLC); #endif #ifdef IMAXBEL DEFSYM(IMAXBEL); #endif /* c_oflag masks */ DEFSYM(OPOST); #ifdef OLCUC DEFSYM(OLCUC); #endif #ifdef ONLCR DEFSYM(ONLCR); #endif #ifdef OCRNL DEFSYM(OCRNL); #endif #ifdef ONOCR DEFSYM(ONOCR); #endif #ifdef ONLRET DEFSYM(ONLRET); #endif #ifdef OFILL DEFSYM(OFILL); #endif #ifdef OFDEL DEFSYM(OFDEL); #endif #ifdef NLDLY DEFSYM(NLDLY); #endif #ifdef NL0 DEFSYM(NL0); #endif #ifdef NL1 DEFSYM(NL1); #endif #ifdef CRDLY DEFSYM(CRDLY); #endif #ifdef CR0 DEFSYM(CR0); #endif #ifdef CR1 DEFSYM(CR1); #endif #ifdef CR2 DEFSYM(CR2); #endif #ifdef CR3 DEFSYM(CR3); #endif #ifdef BSDLY DEFSYM(BSDLY); #endif #ifdef BS0 DEFSYM(BS0); #endif #ifdef BS1 DEFSYM(BS1); #endif #ifdef VTDLY DEFSYM(VTDLY); #endif #ifdef VT0 DEFSYM(VT0); #endif #ifdef VT1 DEFSYM(VT1); #endif #ifdef FFDLY DEFSYM(FFDLY); #endif #ifdef FF0 DEFSYM(FF0); #endif #ifdef FF1 DEFSYM(FF1); #endif /* c_cflag masks */ DEFSYM(CLOCAL); DEFSYM(CREAD); DEFSYM(CSIZE); DEFSYM(CS5); DEFSYM(CS6); DEFSYM(CS7); DEFSYM(CS8); DEFSYM(CSTOPB); DEFSYM(HUPCL); DEFSYM(PARENB); DEFSYM(PARODD); #ifdef CIBAUD DEFSYM(CIBAUD); #endif #ifdef CRTSCTS DEFSYM(CRTSCTS); #endif /* c_lflag masks */ DEFSYM(ECHO); DEFSYM(ECHOE); DEFSYM(ECHOK); DEFSYM(ECHONL); DEFSYM(ICANON); DEFSYM(ISIG); DEFSYM(NOFLSH); DEFSYM(TOSTOP); DEFSYM(IEXTEN); #ifdef XCASE DEFSYM(XCASE); #endif #ifdef ECHOCTL DEFSYM(ECHOCTL); #endif #ifdef ECHOPRT DEFSYM(ECHOPRT); #endif #ifdef ECHOKE DEFSYM(ECHOKE); #endif #ifdef FLUSH0 DEFSYM(FLUSH0); #endif #ifdef PENDIN DEFSYM(PENDIN); #endif /* c_cc size */ DEFSYM(NCCS); /* disable character */ DEFSYM(_POSIX_VDISABLE); /* c_cc subscripts */ DEFSYM(VEOF); DEFSYM(VEOL); DEFSYM(VERASE); DEFSYM(VINTR); DEFSYM(VKILL); DEFSYM(VMIN); DEFSYM(VQUIT); DEFSYM(VSTART); DEFSYM(VSTOP); DEFSYM(VSUSP); DEFSYM(VTIME); #ifdef VDISCARD DEFSYM(VDISCARD); #endif #ifdef VDSUSP DEFSYM(VDSUSP); #endif #ifdef EOL2 DEFSYM(VEOL2); #endif #ifdef LNEXT DEFSYM(VLNEXT); #endif #ifdef VREPRINT DEFSYM(VREPRINT); #endif #ifdef VSTATUS DEFSYM(VSTATUS); #endif #ifdef WERASE DEFSYM(VWERASE); #endif #ifdef VSWTCH DEFSYM(VSWTCH); #endif #ifdef VSWTC DEFSYM(VSWTC); #endif /* extra baudrates. <= B38400 is defined in termiolib.stub */ #ifdef B57600 DEFSYM(B57600); #endif #ifdef B115200 DEFSYM(B115200); #endif #ifdef B230400 DEFSYM(B230400); #endif #endif /*!GAUCHE_WINDOWS*/ }