コード例 #1
0
ファイル: WinRawInput.cpp プロジェクト: johndragon/ld3d
	bool WinRawInput::Initialize(void* app_handle, EmitEvent ee)
	{
		_emit_event = ee;
		memset(&m_mouseState, 0, sizeof(m_mouseState));
		memset(&m_keyState, 0, sizeof(m_keyState));

		m_pMouseStateEvent	= alloc_object<Event_MouseState>();
		m_pKeyStateEvent	= alloc_object<Event_KeyboardState>();
		m_pCharEvent		= alloc_object<Event_Char>(0);
		m_inputBufferBytes					= 0;
		m_inputBuffer						= nullptr;

		RegisterDevices();

		POINT p;
		p.x = 0;
		p.y = 0;

		RECT rc;
		GetClientRect((HWND)app_handle, &rc);

		p.x = (rc.right - rc.left) / 2;
		p.y = (rc.bottom - rc.top) / 2;

		ClientToScreen((HWND)app_handle, &p);

		SetCursorPos(p.x, p.y);
		return true;
	}
コード例 #2
0
ファイル: dllmain.cpp プロジェクト: BlackMoon/undrealdk
BOOL APIENTRY DllMain( HMODULE hModule, DWORD  ul_reason_for_call, LPVOID lpReserved )
{
	DWORD dwMscs;
	switch (ul_reason_for_call)
	{
	case DLL_PROCESS_ATTACH: 
		RegisterDevices();
		COMPortOpen();
		InitializeCriticalSection(&objCriticalSection);
		bThreadWorking = true;
		_beginthread(ThreadFunction, 0, NULL);
		break;
	case DLL_PROCESS_DETACH:
		bThreadWorking = false;
		dwMscs = 0;
		while (!bThreadEnded && (dwMscs < 2000))
		{
			dwMscs += 20;
			Sleep(20);
		}
		DeleteCriticalSection(&objCriticalSection);
		COMPortClose();

		// очистка Calibration
		ClearRegistrations();
		break;
	}
	return TRUE;
}
コード例 #3
0
ファイル: VBoxMouse.cpp プロジェクト: jbremer/virtualbox
status_t VBoxMouse::InitCheck()
{
    int rc = VbglR3Init();
    if (!RT_SUCCESS(rc))
        return ENXIO;

    input_device_ref device = { (char *)"VBoxMouse", B_POINTING_DEVICE, (void *)this };
    input_device_ref *deviceList[2] = { &device, NULL };
    RegisterDevices(deviceList);

    return B_OK;
}
コード例 #4
0
//==============================================================================
TAsstPasteSender::TAsstPasteSender()
		: SUPER()
{
	input_device_ref	aKeyboard = { DEVICE_NAME_ASST_SENDER, B_KEYBOARD_DEVICE, NULL };
	input_device_ref*	aDevRef[2];

//	DBEXP("TAsstPasteSender::TAsstPasteSender()", "");
	// 初期化
	mThread = NULL;
	// 登録
	aDevRef[0] = &aKeyboard;
	aDevRef[1] = NULL;
	RegisterDevices(aDevRef);
}
コード例 #5
0
ファイル: main.c プロジェクト: audiohacked/sneek
int _main( int argc, char *argv[] )
{
    int fres=0;
    s32 ret=0;
    struct IPCMessage *CMessage=NULL;

    thread_set_priority( 0, 0x58 );

#ifdef DEBUG
    dbgprintf("$IOSVersion: FFS-SD: %s %s 64M DEBUG$\n", __DATE__, __TIME__ );
#else
    dbgprintf("$IOSVersion: FFS-SD: %s %s 64M Release$\n", __DATE__, __TIME__ );
#endif

    //dbgprintf("FFS:Heap Init...");
    HeapID = heap_create(Heap, sizeof Heap);
    QueueSpace = heap_alloc(HeapID, 0x20);
    //dbgprintf("ok\n");

    QueueID = RegisterDevices();
    if( QueueID < 0 )
    {
        ThreadCancel( 0, 0x77 );
    }

    sdhc_init();

    //dbgprintf("FFS:Mounting SD...\n");
    fres = f_mount(0, &fatfs);
    //dbgprintf("FFS:f_mount():%d\n", fres);

    if(fres != FR_OK)
    {
        //dbgprintf("FFS:Error %d while trying to mount SD\n", fres);
        ThreadCancel( 0, 0x77 );
    }

    //dbgprintf("FFS:Clean up...");

    //clean up folders
    FS_Delete("/tmp");
    FS_Delete("/import");

    f_mkdir("/tmp");
    f_mkdir("/import");

    thread_set_priority( 0, 0x0B );

    //dbgprintf("ok\n");

    while (1)
    {
        ret = mqueue_recv(QueueID, (void *)&CMessage, 0);
        if( ret != 0 )
        {
            //dbgprintf("FFS:mqueue_recv(%d) FAILED:%d\n", QueueID, ret);
            continue;
        }

        //dbgprintf("FFS:Cmd:%d\n", CMessage->command );

        switch( CMessage->command )
        {
        case IOS_OPEN:
        {
            ret = FS_Open( CMessage->open.device, CMessage->open.mode );
#ifdef DEBUG
            if( ret != FS_NO_DEVICE )
                dbgprintf("FFS:IOS_Open(\"%s\", %d):%d\n", CMessage->open.device, CMessage->open.mode, ret );
#endif
            mqueue_ack( (void *)CMessage, ret);

        }
        break;

        case IOS_CLOSE:
        {
#ifdef DEBUG
            dbgprintf("FFS:IOS_Close(%d):", CMessage->fd);
#endif
            ret = FS_Close( CMessage->fd );
#ifdef DEBUG
            dbgprintf("%d\n", ret );
#endif
            mqueue_ack( (void *)CMessage, ret);
        }
        break;

        case IOS_READ:
        {

#ifdef DEBUG
            dbgprintf("FFS:IOS_Read(%d, 0x%p, %u):", CMessage->fd, CMessage->read.data, CMessage->read.length );
#endif
            ret = FS_Read( CMessage->fd, CMessage->read.data, CMessage->read.length );

#ifdef DEBUG
            dbgprintf("%d\n", ret );
#endif
            mqueue_ack( (void *)CMessage, ret );

        }
        break;
        case IOS_WRITE:
        {
#ifdef DEBUG
            dbgprintf("FFS:IOS_Write(%d, 0x%p, %u)", CMessage->fd, CMessage->write.data, CMessage->write.length );
#endif
            ret = FS_Write( CMessage->fd, CMessage->write.data, CMessage->write.length );

#ifdef DEBUG
            dbgprintf(":%d\n", ret );
#endif
            mqueue_ack( (void *)CMessage, ret );
        }
        break;
        case IOS_SEEK:
        {
#ifdef DEBUG
            dbgprintf("FFS:IOS_Seek(%d, %x, %d):", CMessage->fd, CMessage->seek.offset, CMessage->seek.origin );
#endif
            ret = FS_Seek( CMessage->fd, CMessage->seek.offset, CMessage->seek.origin );

#ifdef DEBUG
            dbgprintf("%d\n", ret );
#endif
            mqueue_ack( (void *)CMessage, ret );

        }
        break;

        case IOS_IOCTL:
            FFS_Ioctl(CMessage);
            break;

        case IOS_IOCTLV:
            FFS_Ioctlv(CMessage);
            break;
#ifdef EDEBUG
        default:
            dbgprintf("FFS:unimplemented/invalid msg: %08x\n", CMessage->command);
            mqueue_ack( (void *)CMessage, -1017);
#endif
        }
    }

    return 0;
}