示例#1
0
/* This extension is not dynamically loaded, instead it's linked statically,
   which is why we shouldn't use the unspecific 'Jim_OnLoad' name */
int Jim_EventLoopOnLoad(Jim_Interp *interp)
{
    Jim_EventLoop *eventLoop;

    Jim_InitExtension(interp);
    if (Jim_PackageProvide(interp, "eventloop", "1.0", JIM_ERRMSG) != JIM_OK)
        return JIM_ERR;

    eventLoop = Jim_Alloc(sizeof(*eventLoop));
    eventLoop->fileEventHead = NULL;
    eventLoop->timeEventHead = NULL;
    eventLoop->timeEventNextId = 1;
    Jim_SetAssocData(interp, "eventloop", JimELAssocDataDeleProc, eventLoop);

    Jim_CreateCommand(interp, "vwait", JimELVwaitCommand, NULL, NULL);
    Jim_CreateCommand(interp, "after", JimELAfterCommand, NULL, NULL);

    /* Export events API */
    Jim_RegisterApi(interp, "Jim_CreateFileHandler", Jim_CreateFileHandler);
    Jim_RegisterApi(interp, "Jim_DeleteFileHandler", Jim_DeleteFileHandler);
    Jim_RegisterApi(interp, "Jim_CreateTimeHandler", Jim_CreateTimeHandler);
    Jim_RegisterApi(interp, "Jim_DeleteTimeHandler", Jim_DeleteTimeHandler);
    Jim_RegisterApi(interp, "Jim_ProcessEvents", Jim_ProcessEvents);
    return JIM_OK;
}
示例#2
0
int Jim_OnLoad(Jim_Interp *interp)
{
    Jim_InitExtension(interp);
    if (Jim_PackageProvide(interp, "readdir", "1.0", JIM_ERRMSG) != JIM_OK) {
        return JIM_ERR;
    }
    Jim_CreateCommand(interp, "readdir", Jim_ReaddirCmd, NULL, NULL);
    return JIM_OK;
}
int Jim_AioInit(Jim_Interp *interp)
#endif
{
#ifndef JIM_STATICEXT
    Jim_InitExtension(interp);
#endif
    if (Jim_PackageProvide(interp, "aio", "1.0", JIM_ERRMSG) != JIM_OK)
        return JIM_ERR;
    Jim_CreateCommand(interp, "aio.open", JimAioOpenCommand, NULL, NULL);
    return JIM_OK;
}
示例#4
0
文件: jim-aio.c 项目: Johnicholas/Jim
Jim_AioInit(Jim_Interp *interp)
#endif
{
#ifndef JIM_STATICEXT
    Jim_InitExtension(interp);
    // Jim_ImportEventloopAPI(interp); // Johnicholas comments this out
#endif
    if (Jim_PackageProvide(interp, "aio", "1.0", JIM_ERRMSG) != JIM_OK)
        return JIM_ERR;
    Jim_CreateCommand(interp, "aio.open", JimAioOpenCommand, NULL, NULL);
    Jim_CreateCommand(interp, "aio.socket", JimAioSockCommand, NULL, NULL);
    return JIM_OK;
}
示例#5
0
int Jim_OnLoad(Jim_Interp *interp)
{
    Jim_InitExtension(interp);
    if (Jim_PackageProvide(interp, "sdl", "1.0", JIM_ERRMSG) != JIM_OK)
        return JIM_ERR;
    if (SDL_Init(SDL_INIT_VIDEO) < 0) {
        JimSdlSetError(interp);
        return JIM_ERR;
    }
    atexit(SDL_Quit);
    Jim_CreateCommand(interp, "sdl.screen", JimSdlSurfaceCommand, NULL, NULL);
    return JIM_OK;
}
示例#6
0
// end added 
int Jim_OnLoad(Jim_Interp *interp)
{
    Jim_InitExtension(interp);
    if (Jim_PackageProvide(interp, "posix", "1.0", JIM_ERRMSG) != JIM_OK)
        return JIM_ERR;
    Jim_CreateCommand(interp, "os.fork", Jim_PosixForkCommand, NULL, NULL);
    Jim_CreateCommand(interp, "os.sleep", Jim_PosixSleepCommand, NULL, NULL);
    Jim_CreateCommand(interp, "os.getids", Jim_PosixGetidsCommand, NULL, NULL);
    Jim_CreateCommand(interp, "os.gethostname", Jim_PosixGethostnameCommand, NULL, NULL);
    Jim_CreateCommand(interp, "os.sethostname", Jim_PosixSethostnameCommand, NULL, NULL);
    Jim_CreateCommand(interp, "os.usleep", Jim_LinuxUSleepCommand, NULL, NULL);
    Jim_CreateCommand(interp, "os.signal", Jim_PosixSignalCommand, NULL, NULL);
    Jim_CreateCommand(interp, "pit",   Jim_PointInTimeCommand, NULL, NULL);
    Jim_CreateCommand(interp, "Jpit",   Jim_PointInTimeJulianCommand, NULL, NULL);
    return JIM_OK;
}
示例#7
0
DLLEXPORT int
Jim_OnLoad(Jim_Interp *interp)
{
    HMODULE hLib;

    Jim_InitExtension(interp);
    if (Jim_PackageProvide(interp, "win32", "1.0", JIM_ERRMSG) != JIM_OK)
        return JIM_ERR;

#define CMD(name) \
    Jim_CreateCommand(interp, "win32." #name , Win32_ ## name , NULL, NULL)

    CMD(ShellExecute);
    CMD(RegisterClass);
    CMD(CreateWindow);
    CMD(FindWindow);
    CMD(CloseWindow);
    CMD(ShowWindow);
    CMD(MoveWindow);
    CMD(UpdateWindow);
    CMD(DestroyWindow);
    CMD(GetActiveWindow);
    CMD(SetActiveWindow);
    CMD(SetForegroundWindow);
    CMD(GetCursorPos);
    CMD(SetCursorPos);
    CMD(GetCursor);
    CMD(SetCursor);
    CMD(LoadCursor);
    CMD(Beep);
    CMD(GetComputerName);
    CMD(SetComputerName);
    CMD(GetUserName);
    CMD(GetModuleFileName);
    CMD(GetVersion);
    CMD(GetTickCount);
    CMD(GetSystemTime);
    CMD(GetSystemInfo);
    CMD(GetModuleHandle);
    CMD(LoadLibrary);
    CMD(FreeLibrary);
    CMD(CreateDirectory);
    CMD(RemoveDirectory);

#if WINVER >= 0x0500
    CMD(GetCursorInfo);
    CMD(AnimateWindow);
#endif

    /* Check that this DLL is available before creating the command. */
    hLib = LoadLibrary(_T("psapi"));
    if (hLib != NULL) {
        Jim_CreateCommand(interp, "win32.GetPerformanceInfo",
            Win32_GetPerformanceInfo, hLib, Win32_ReleasePrivLib);
    }
#if WINVER >= 0x0500
    hLib = LoadLibrary(_T("user32"));
    if (hLib != NULL) {
        Jim_CreateCommand(interp, "win32.GetLastInputInfo",
            Win32_GetLastInputInfo, hLib, Win32_ReleasePrivLib);
    }
#endif /* WINVER >= 0x0500 */

    return JIM_OK;
}