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

📄 xf86misc.c

📁 远程桌面连接工具
💻 C
📖 第 1 页 / 共 2 页
字号:
        msetype = MTYPE_XQUEUE;#endif#if defined(USE_OSMOUSE) || defined(OSMOUSE_ONLY)    if (xf86Info.mouseDev->mseProc == xf86OsMouseProc)        msetype = MTYPE_OSMOUSE;#endif    reopen     = 0;    if (stuff->mousetype != msetype)	if (stuff->mousetype == MTYPE_XQUEUE		|| stuff->mousetype == MTYPE_OSMOUSE		|| msetype == MTYPE_XQUEUE		|| msetype == MTYPE_OSMOUSE)	    return miscErrorBase + XF86MiscBadMouseProtocol;	else {	    reopen++;	    msetype = stuff->mousetype;	}    if (stuff->flags & MF_REOPEN) {	reopen++;	stuff->flags &= ~MF_REOPEN;    }    if (stuff->mousetype != MTYPE_OSMOUSE	    && stuff->mousetype != MTYPE_XQUEUE	    && stuff->mousetype != MTYPE_PS_2	    && stuff->mousetype != MTYPE_BUSMOUSE	    && stuff->mousetype != MTYPE_IMPS2	    && stuff->mousetype != MTYPE_THINKINGPS2	    && stuff->mousetype != MTYPE_MMANPLUSPS2	    && stuff->mousetype != MTYPE_GLIDEPOINTPS2	    && stuff->mousetype != MTYPE_NETPS2	    && stuff->mousetype != MTYPE_NETSCROLLPS2	    && stuff->mousetype != MTYPE_SYSMOUSE)    {        if (stuff->baudrate < 1200)	    return miscErrorBase + XF86MiscBadMouseBaudRate;        if (stuff->baudrate % 1200 != 0                || stuff->baudrate < 1200 || stuff->baudrate > 9600)	    return miscErrorBase + XF86MiscBadMouseBaudRate;	if (xf86Info.mouseDev->baudRate != stuff->baudrate) {		reopen++;		baudrate = stuff->baudrate;	}    }    if (stuff->flags & (MF_CLEAR_DTR|MF_CLEAR_RTS))	if (stuff->mousetype != MTYPE_MOUSESYS)	    return miscErrorBase + XF86MiscBadMouseFlags;	else if (xf86Info.mouseDev->mouseFlags != stuff->flags) {	    reopen++;            flags = stuff->flags;	}    if (stuff->mousetype != MTYPE_OSMOUSE	    && stuff->mousetype != MTYPE_XQUEUE	    && stuff->mousetype != MTYPE_BUSMOUSE)    {        if (stuff->samplerate < 0)	    return BadValue;		if (xf86Info.mouseDev->sampleRate != stuff->samplerate) {		reopen++;		samplerate = stuff->samplerate;	}    }    if (stuff->resolution < 0)	return BadValue;    if (xf86Info.mouseDev->resolution != stuff->resolution) {	reopen++;	resolution = stuff->resolution;    }#if 0    /* Ignore the buttons field */    if (xf86Info.mouseDev->buttons != stuff->buttons)	/* we cannot change this field on the fly... */	return BadValue;#endif    if (stuff->chordmiddle)        if (stuff->emulate3buttons		|| !(stuff->mousetype == MTYPE_MICROSOFT		     || stuff->mousetype == MTYPE_LOGIMAN) )	    return miscErrorBase + XF86MiscBadMouseCombo;    xf86Info.mouseDev->chordMiddle = stuff->chordmiddle!=0;    xf86Info.mouseDev->emulate3Buttons = stuff->emulate3buttons!=0;    xf86Info.mouseDev->emulate3Timeout = stuff->emulate3timeout;    if (reopen && msetype != MTYPE_OSMOUSE && msetype != MTYPE_XQUEUE) {        (xf86Info.mouseDev->mseProc)(xf86Info.pMouse, DEVICE_CLOSE);        xf86Info.mouseDev->mseType    = msetype;        xf86Info.mouseDev->mouseFlags = flags;        xf86Info.mouseDev->baudRate   = baudrate;        xf86Info.mouseDev->sampleRate = samplerate;	xf86Info.mouseDev->resolution = resolution;	xf86Info.pMouse->public.on = FALSE;	xf86AllowMouseOpenFail = TRUE;	xf86MouseInit(xf86Info.mouseDev);        (xf86Info.mouseDev->mseProc)(xf86Info.pMouse, DEVICE_ON);    }    if (xf86Verbose)	ErrorF("SetMouseSettings - Succeeded\n");    return (client->noClientException);}static intProcXF86MiscSetKbdSettings(client)    register ClientPtr client;{    REQUEST(xXF86MiscSetKbdSettingsReq);    REQUEST_SIZE_MATCH(xXF86MiscSetKbdSettingsReq);    if (xf86Verbose)	ErrorF("SetKbdSettings - type: %d rate: %d delay: %d snumlk: %d\n",		stuff->kbdtype, stuff->rate,		stuff->delay, stuff->servnumlock);    if (stuff->rate < 0)	return BadValue;    if (stuff->delay < 0)	return BadValue;    if (stuff->kbdtype < KTYPE_UNKNOWN || stuff->kbdtype > KTYPE_XQUEUE)	return miscErrorBase + XF86MiscBadKbdType;    if (xf86Info.kbdRate!=stuff->rate || xf86Info.kbdDelay!=stuff->delay) {	char rad;	xf86Info.kbdRate = stuff->rate;	xf86Info.kbdDelay = stuff->delay;        if      (xf86Info.kbdDelay <= 375) rad = 0x00;        else if (xf86Info.kbdDelay <= 625) rad = 0x20;        else if (xf86Info.kbdDelay <= 875) rad = 0x40;        else                               rad = 0x60;            if      (xf86Info.kbdRate <=  2)   rad |= 0x1F;        else if (xf86Info.kbdRate >= 30)   rad |= 0x00;        else                               rad |= ((58/xf86Info.kbdRate)-2);            xf86SetKbdRepeat(rad);    }#if 0	/* Not done yet */    xf86Info.kbdType = stuff->kbdtype;    xf86Info.serverNumLock = stuff->servnumlock!=0;#endif    if (xf86Verbose)	ErrorF("SetKbdSettings - Succeeded\n");    return (client->noClientException);}static intProcXF86MiscDispatch (client)    register ClientPtr	client;{    REQUEST(xReq);    switch (stuff->data)    {    case X_XF86MiscQueryVersion:	return ProcXF86MiscQueryVersion(client);    case X_XF86MiscGetSaver:	return ProcXF86MiscGetSaver(client);    case X_XF86MiscSetSaver:	return ProcXF86MiscSetSaver(client);    case X_XF86MiscGetMouseSettings:	return ProcXF86MiscGetMouseSettings(client);    case X_XF86MiscGetKbdSettings:	return ProcXF86MiscGetKbdSettings(client);    default:	if (!xf86MiscModInDevEnabled)	    return miscErrorBase + XF86MiscModInDevDisabled;	if (xf86MiscModInDevAllowNonLocal || LocalClient (client)) {	    switch (stuff->data) {	        case X_XF86MiscSetMouseSettings:		    return ProcXF86MiscSetMouseSettings(client);	        case X_XF86MiscSetKbdSettings:		    return ProcXF86MiscSetKbdSettings(client);	        default:		    return BadRequest;	    }	} else	    return miscErrorBase + XF86MiscModInDevClientNotLocal;    }}static intSProcXF86MiscQueryVersion(client)    register ClientPtr	client;{    register int n;    REQUEST(xXF86MiscQueryVersionReq);    swaps(&stuff->length, n);    return ProcXF86MiscQueryVersion(client);}static intSProcXF86MiscGetSaver(client)    ClientPtr client;{    register int n;    REQUEST(xXF86MiscGetSaverReq);    swaps(&stuff->length, n);    REQUEST_SIZE_MATCH(xXF86MiscGetSaverReq);    swaps(&stuff->screen, n);    return ProcXF86MiscGetSaver(client);}static intSProcXF86MiscSetSaver(client)    ClientPtr client;{    register int n;    REQUEST(xXF86MiscSetSaverReq);    swaps(&stuff->length, n);    REQUEST_SIZE_MATCH(xXF86MiscSetSaverReq);    swaps(&stuff->screen, n);    swapl(&stuff->suspendTime, n);    swapl(&stuff->offTime, n);    return ProcXF86MiscSetSaver(client);}static intSProcXF86MiscGetMouseSettings(client)    ClientPtr client;{    register int n;    REQUEST(xXF86MiscGetMouseSettingsReq);    swaps(&stuff->length, n);    REQUEST_SIZE_MATCH(xXF86MiscGetMouseSettingsReq);    return ProcXF86MiscGetMouseSettings(client);}static intSProcXF86MiscGetKbdSettings(client)    ClientPtr client;{    register int n;    REQUEST(xXF86MiscGetKbdSettingsReq);    swaps(&stuff->length, n);    REQUEST_SIZE_MATCH(xXF86MiscGetKbdSettingsReq);    return ProcXF86MiscGetKbdSettings(client);}static intSProcXF86MiscSetMouseSettings(client)    ClientPtr client;{    register int n;    REQUEST(xXF86MiscSetMouseSettingsReq);    swaps(&stuff->length, n);    REQUEST_SIZE_MATCH(xXF86MiscSetMouseSettingsReq);    swapl(&stuff->mousetype, n);    swapl(&stuff->baudrate, n);    swapl(&stuff->samplerate, n);    swapl(&stuff->resolution, n);    swapl(&stuff->buttons, n);    swapl(&stuff->emulate3timeout, n);    swapl(&stuff->flags, n);    return ProcXF86MiscSetMouseSettings(client);}static intSProcXF86MiscSetKbdSettings(client)    ClientPtr client;{    register int n;    REQUEST(xXF86MiscSetKbdSettingsReq);    swaps(&stuff->length, n);    REQUEST_SIZE_MATCH(xXF86MiscSetKbdSettingsReq);    swapl(&stuff->kbdtype, n);    swapl(&stuff->rate, n);    swapl(&stuff->delay, n);    return ProcXF86MiscSetKbdSettings(client);}static intSProcXF86MiscDispatch (client)    register ClientPtr	client;{    REQUEST(xReq);    switch (stuff->data)    {    case X_XF86MiscQueryVersion:	return SProcXF86MiscQueryVersion(client);    case X_XF86MiscGetSaver:	return SProcXF86MiscGetSaver(client);    case X_XF86MiscSetSaver:	return SProcXF86MiscSetSaver(client);    case X_XF86MiscGetMouseSettings:	return SProcXF86MiscGetMouseSettings(client);    case X_XF86MiscGetKbdSettings:	return SProcXF86MiscGetKbdSettings(client);    default:	if (!xf86MiscModInDevEnabled)	    return miscErrorBase + XF86MiscModInDevDisabled;	if (xf86MiscModInDevAllowNonLocal || LocalClient (client)) {	    switch (stuff->data) {	        case X_XF86MiscSetMouseSettings:		    return SProcXF86MiscSetMouseSettings(client);	        case X_XF86MiscSetKbdSettings:		    return SProcXF86MiscSetKbdSettings(client);	        default:		    return BadRequest;	    }	} else	    return miscErrorBase + XF86MiscModInDevClientNotLocal;    }}

⌨️ 快捷键说明

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