⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 event.c

📁 超强的嵌入式GUI系统
💻 C
字号:
/***************************************************************************    begin                : Thu Sep 22 2005    copyright            : (C) 2005 - 2007 by Alper Akcan    email                : distchx@yahoo.com ***************************************************************************//*************************************************************************** *                                                                         * *   This program is free software; you can redistribute it and/or modify  * *   it under the terms of the GNU Lesser General Public License as        * *   published by the Free Software Foundation; either version 2.1 of the  * *   License, or (at your option) any later version.                       * *                                                                         * ***************************************************************************/#if defined(VIDEO_PSPDEV)#include "../../../lib/xynth_.h"#include "server.h"#include "pspdev.h"#define MOUSE_ACCELL	3static const enum PspCtrlButtons s_video_pspdev_btns[] = {	PSP_CTRL_TRIANGLE,	PSP_CTRL_CIRCLE,	PSP_CTRL_CROSS,	PSP_CTRL_SQUARE,	PSP_CTRL_LTRIGGER,	PSP_CTRL_RTRIGGER,	PSP_CTRL_DOWN,	PSP_CTRL_LEFT,	PSP_CTRL_UP,	PSP_CTRL_RIGHT,	PSP_CTRL_SELECT,	PSP_CTRL_START,	PSP_CTRL_HOME,	PSP_CTRL_HOLD};void * s_video_pspdev_event_parse (void *arg){	int axisx;	int axisy;	SceCtrlData pad;	s_video_input_data_mouse_t pad_send;	enum PspCtrlButtons pad_old;	enum PspCtrlButtons changed;	s_video_pspdev_data_t *priv = (s_video_pspdev_data_t *) server->driver->driver_data;	while (server->window->running != 1) {		usleep(20000);	}		pad_old = 0;	while (server->window->running) {		sceCtrlReadBufferPositive(&pad, 1);		changed = pad_old ^ pad.Buttons;		pad_old = pad.Buttons;		axisx = s_mouse_getx();		axisy = s_mouse_gety();		if (pad.Buttons & PSP_CTRL_LEFT) {			axisx -= MOUSE_ACCELL;		} else if (pad.Buttons & PSP_CTRL_RIGHT) {			axisx += MOUSE_ACCELL;		}		if (pad.Buttons & PSP_CTRL_UP) {			axisy -= MOUSE_ACCELL;		} else if (pad.Buttons & PSP_CTRL_DOWN) {			axisy += MOUSE_ACCELL;		}		if (pad.Lx < 30) {         axisx -= MOUSE_ACCELL + 2;		} else if (pad.Lx < 60) {  axisx -= MOUSE_ACCELL + 1;		} else if (pad.Lx < 90) {  axisx -= MOUSE_ACCELL;		} else if (pad.Lx > 225) { axisx += MOUSE_ACCELL + 2;		} else if (pad.Lx > 195) { axisx += MOUSE_ACCELL + 1;		} else if (pad.Lx > 165) { axisx += MOUSE_ACCELL;		}		if (pad.Ly < 30) {         axisy -= MOUSE_ACCELL + 2;		} else if (pad.Ly < 60) {  axisy -= MOUSE_ACCELL + 1;		} else if (pad.Ly < 90) {  axisy -= MOUSE_ACCELL;		} else if (pad.Ly > 225) { axisy += MOUSE_ACCELL + 2;		} else if (pad.Ly > 195) { axisy += MOUSE_ACCELL + 1;		} else if (pad.Ly > 165) { axisy += MOUSE_ACCELL;		}				axisx = MAX(axisx, server->mouse_rangex[0]);		axisx = MIN(axisx, server->mouse_rangex[1]);		axisy = MAX(axisy, server->mouse_rangey[0]);		axisy = MIN(axisy, server->mouse_rangey[1]);		if ((changed & (PSP_CTRL_CROSS | PSP_CTRL_CIRCLE)) ||		    (axisx - s_mouse_getx()) ||		    (axisy - s_mouse_gety())) {			pad_send.x = axisx;			pad_send.y = axisy;			pad_send.buttons = pad.Buttons & (PSP_CTRL_CROSS | PSP_CTRL_CIRCLE);			if (priv->mouse_fd[1] != -1) {				s_pipe_api_write(priv->mouse_fd[1], &pad_send, sizeof(s_video_input_data_mouse_t));			}		}		usleep(30000);	}	return NULL;}#endif /* VIDEO_PSPDEV */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -