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

📄 xf86vmode.c

📁 网络MPEG4IP流媒体开发源代码
💻 C
📖 第 1 页 / 共 3 页
字号:
	fprintf(stderr, "XF86VidModeSwitchToMode: Warning: Xserver is"		"running an old version (%d.%d)\n", majorVersion,		minorVersion);#endif    }        LockDisplay(dpy);    if (majorVersion < 2) {	GetOldReq(XF86VidModeSwitchToMode, XF86OldVidModeSwitchToMode, oldreq);	oldreq->reqType = info->codes->major_opcode;	oldreq->xf86vidmodeReqType = X_XF86VidModeSwitchToMode;	oldreq->screen = screen;	oldreq->dotclock =	modeline->dotclock;	oldreq->hdisplay =	modeline->hdisplay;	oldreq->hsyncstart =	modeline->hsyncstart;	oldreq->hsyncend =	modeline->hsyncend;	oldreq->htotal =	modeline->htotal;	oldreq->vdisplay =	modeline->vdisplay;	oldreq->vsyncstart =	modeline->vsyncstart;	oldreq->vsyncend =	modeline->vsyncend;	oldreq->vtotal =	modeline->vtotal;	oldreq->flags =	modeline->flags;	if (protocolBug) {	    oldreq->privsize = 0;	} else {	    oldreq->privsize =	modeline->privsize;	    if (modeline->privsize) {		oldreq->length += modeline->privsize;		Data32(dpy, (long *) modeline->private,	           modeline->privsize * sizeof(INT32));	    }	}    } else {	GetReq(XF86VidModeSwitchToMode, req);	req->reqType = info->codes->major_opcode;	req->xf86vidmodeReqType = X_XF86VidModeSwitchToMode;	req->screen = screen;	req->dotclock =	modeline->dotclock;	req->hdisplay =	modeline->hdisplay;	req->hsyncstart =	modeline->hsyncstart;	req->hsyncend =	modeline->hsyncend;	req->htotal =	modeline->htotal;	req->hskew =	modeline->hskew;	req->vdisplay =	modeline->vdisplay;	req->vsyncstart =	modeline->vsyncstart;	req->vsyncend =	modeline->vsyncend;	req->vtotal =	modeline->vtotal;	req->flags =	modeline->flags;	if (protocolBug) {	    req->privsize = 0;	} else {	    req->privsize =	modeline->privsize;	    if (modeline->privsize) {		req->length += modeline->privsize;		Data32(dpy, (long *) modeline->private,	           modeline->privsize * sizeof(INT32));	    }	}    }    UnlockDisplay(dpy);    SyncHandle();    return True;}    BoolSDL_NAME(XF86VidModeLockModeSwitch)(dpy, screen, lock)    Display* dpy;    int screen;    int lock;{    XExtDisplayInfo *info = find_display (dpy);    xXF86VidModeLockModeSwitchReq *req;    XF86VidModeCheckExtension (dpy, info, False);    LockDisplay(dpy);    GetReq(XF86VidModeLockModeSwitch, req);    req->reqType = info->codes->major_opcode;    req->xf86vidmodeReqType = X_XF86VidModeLockModeSwitch;    req->screen = screen;    req->lock = lock;    UnlockDisplay(dpy);    SyncHandle();    return True;}    BoolSDL_NAME(XF86VidModeGetMonitor)(dpy, screen, monitor)    Display* dpy;    int screen;    SDL_NAME(XF86VidModeMonitor)* monitor;{    XExtDisplayInfo *info = find_display (dpy);    xXF86VidModeGetMonitorReply rep;    xXF86VidModeGetMonitorReq *req;    CARD32 syncrange;    int i;    XF86VidModeCheckExtension (dpy, info, False);    LockDisplay(dpy);    GetReq(XF86VidModeGetMonitor, req);    req->reqType = info->codes->major_opcode;    req->xf86vidmodeReqType = X_XF86VidModeGetMonitor;    req->screen = screen;    if (!_XReply(dpy, (xReply *)&rep, 0, xFalse)) {	UnlockDisplay(dpy);	SyncHandle();	return False;    }    monitor->nhsync = rep.nhsync;    monitor->nvsync = rep.nvsync;#if 0    monitor->bandwidth = (float)rep.bandwidth / 1e6;#endif    if (rep.vendorLength) {	if (!(monitor->vendor = (char *)Xcalloc(rep.vendorLength + 1, 1))) {	    _XEatData(dpy, (rep.nhsync + rep.nvsync) * 4 +		      ((rep.vendorLength+3) & ~3) + ((rep.modelLength+3) & ~3));	    return False;	}    } else {	monitor->vendor = NULL;    }    if (rep.modelLength) {	if (!(monitor->model = Xcalloc(rep.modelLength + 1, 1))) {	    _XEatData(dpy, (rep.nhsync + rep.nvsync) * 4 +		      ((rep.vendorLength+3) & ~3) + ((rep.modelLength+3) & ~3));	    if (monitor->vendor)		Xfree(monitor->vendor);	    return False;	}    } else {	monitor->model = NULL;    }    if (!(monitor->hsync = Xcalloc(rep.nhsync, sizeof(SDL_NAME(XF86VidModeSyncRange))))) {	_XEatData(dpy, (rep.nhsync + rep.nvsync) * 4 +		  ((rep.vendorLength+3) & ~3) + ((rep.modelLength+3) & ~3));		if (monitor->vendor)	    Xfree(monitor->vendor);	if (monitor->model)	    Xfree(monitor->model);	return False;    }    if (!(monitor->vsync = Xcalloc(rep.nvsync, sizeof(SDL_NAME(XF86VidModeSyncRange))))) {	_XEatData(dpy, (rep.nhsync + rep.nvsync) * 4 +		  ((rep.vendorLength+3) & ~3) + ((rep.modelLength+3) & ~3));	if (monitor->vendor)	    Xfree(monitor->vendor);	if (monitor->model)	    Xfree(monitor->model);	Xfree(monitor->hsync);	return False;    }    for (i = 0; i < rep.nhsync; i++) {	_XRead(dpy, (char *)&syncrange, 4);	monitor->hsync[i].lo = (float)(syncrange & 0xFFFF) / 100.0;	monitor->hsync[i].hi = (float)(syncrange >> 16) / 100.0;    }    for (i = 0; i < rep.nvsync; i++) {	_XRead(dpy, (char *)&syncrange, 4);	monitor->vsync[i].lo = (float)(syncrange & 0xFFFF) / 100.0;	monitor->vsync[i].hi = (float)(syncrange >> 16) / 100.0;    }    if (rep.vendorLength)	_XReadPad(dpy, monitor->vendor, rep.vendorLength);    else	monitor->vendor = "";    if (rep.modelLength)	_XReadPad(dpy, monitor->model, rep.modelLength);    else	monitor->model = "";	    UnlockDisplay(dpy);    SyncHandle();    return True;}BoolSDL_NAME(XF86VidModeGetViewPort)(dpy, screen, x, y)    Display* dpy;    int screen;    int *x, *y;{    XExtDisplayInfo *info = find_display (dpy);    xXF86VidModeGetViewPortReply rep;    xXF86VidModeGetViewPortReq *req;    int majorVersion, minorVersion;    Bool protocolBug = False;    XF86VidModeCheckExtension (dpy, info, False);    /*     * Note: There was a bug in the protocol implementation in versions     * 0.x with x < 8 (no reply was sent, so the client would hang)     * Check the server's version, and don't wait for a reply with older     * versions.     */    SDL_NAME(XF86VidModeQueryVersion)(dpy, &majorVersion, &minorVersion);    if (majorVersion == 0 && minorVersion < 8) {	protocolBug = True;#ifdef DEBUG	fprintf(stderr, "XF86VidModeGetViewPort: Warning: Xserver is"		"running an old version (%d.%d)\n", majorVersion,		minorVersion);#endif    }    LockDisplay(dpy);    GetReq(XF86VidModeGetViewPort, req);    req->reqType = info->codes->major_opcode;    req->xf86vidmodeReqType = X_XF86VidModeGetViewPort;    req->screen = screen;    if (protocolBug) {	*x = 0;	*y = 0;    } else {	if (!_XReply(dpy, (xReply *)&rep, 0, xFalse)) {	    UnlockDisplay(dpy);	    SyncHandle();	    return False;	}	*x = rep.x;	*y = rep.y;    }    UnlockDisplay(dpy);    SyncHandle();    return True;}BoolSDL_NAME(XF86VidModeSetViewPort)(dpy, screen, x, y)    Display* dpy;    int screen;    int x, y;{    XExtDisplayInfo *info = find_display (dpy);    xXF86VidModeSetViewPortReq *req;    XF86VidModeCheckExtension (dpy, info, False);    LockDisplay(dpy);    GetReq(XF86VidModeSetViewPort, req);    req->reqType = info->codes->major_opcode;    req->xf86vidmodeReqType = X_XF86VidModeSetViewPort;    req->screen = screen;    req->x = x;    req->y = y;    UnlockDisplay(dpy);    SyncHandle();    return True;}BoolSDL_NAME(XF86VidModeGetDotClocks)(dpy, screen,	    flagsPtr, numclocksPtr, maxclocksPtr, clocksPtr)    Display* dpy;    int screen;    int *flagsPtr, *numclocksPtr, *maxclocksPtr, *clocksPtr[]; {    XExtDisplayInfo *info = find_display (dpy);    xXF86VidModeGetDotClocksReply rep;    xXF86VidModeGetDotClocksReq *req;    int i, *dotclocks;    CARD32 dotclk;    XF86VidModeCheckExtension (dpy, info, False);    LockDisplay(dpy);    GetReq(XF86VidModeGetDotClocks, req);    req->reqType = info->codes->major_opcode;    req->xf86vidmodeReqType = X_XF86VidModeGetDotClocks;    req->screen = screen;    if (!_XReply(dpy, (xReply *)&rep,         (SIZEOF(xXF86VidModeGetDotClocksReply) - SIZEOF(xReply)) >> 2, xFalse))    {        UnlockDisplay(dpy);        SyncHandle();        return False;    }    *numclocksPtr = rep.clocks;    *maxclocksPtr = rep.maxclocks;    *flagsPtr     = rep.flags;    if (!(dotclocks = (int*) Xcalloc(rep.clocks, sizeof(int)))) {        _XEatData(dpy, (rep.clocks) * 4);        Xfree(dotclocks);        return False;    }    for (i = 0; i < rep.clocks; i++) {        _XRead(dpy, (char*)&dotclk, 4);	dotclocks[i] = dotclk;    }    *clocksPtr = dotclocks;    UnlockDisplay(dpy);    SyncHandle();    return True;}BoolSDL_NAME(XF86VidModeSetGammaRamp) (    Display *dpy,    int screen,    int size,    unsigned short *red,    unsigned short *green,    unsigned short *blue){    int length = (size + 1) & ~1;    XExtDisplayInfo *info = find_display (dpy);    xXF86VidModeSetGammaRampReq *req;    XF86VidModeCheckExtension (dpy, info, False);    LockDisplay(dpy);    GetReq(XF86VidModeSetGammaRamp, req);    req->reqType = info->codes->major_opcode;    req->xf86vidmodeReqType = X_XF86VidModeSetGammaRamp;    req->screen = screen;    req->length += (length >> 1) * 3;    req->size = size;    _XSend(dpy, (char*)red, size * 2);    _XSend(dpy, (char*)green, size * 2);    _XSend(dpy, (char*)blue, size * 2);    UnlockDisplay(dpy);    SyncHandle();    return True;}BoolSDL_NAME(XF86VidModeGetGammaRamp) (    Display *dpy,    int screen,    int size,    unsigned short *red,    unsigned short *green,    unsigned short *blue){    XExtDisplayInfo *info = find_display (dpy);    xXF86VidModeGetGammaRampReq *req;    xXF86VidModeGetGammaRampReply rep;      XF86VidModeCheckExtension (dpy, info, False);    LockDisplay(dpy);    GetReq(XF86VidModeGetGammaRamp, req);    req->reqType = info->codes->major_opcode;    req->xf86vidmodeReqType = X_XF86VidModeGetGammaRamp;    req->screen = screen;    req->size = size;    if (!_XReply (dpy, (xReply *) &rep, 0, xFalse)) {        UnlockDisplay (dpy);        SyncHandle ();        return False;    }    if(rep.size) {	_XRead(dpy, (char*)red, rep.size << 1);	_XRead(dpy, (char*)green, rep.size << 1);	_XRead(dpy, (char*)blue, rep.size << 1);    }    UnlockDisplay(dpy);    SyncHandle();    return True;}Bool SDL_NAME(XF86VidModeGetGammaRampSize)(    Display *dpy,    int screen,    int *size){    XExtDisplayInfo *info = find_display (dpy);    xXF86VidModeGetGammaRampSizeReq *req;    xXF86VidModeGetGammaRampSizeReply rep;      *size = 0;    XF86VidModeCheckExtension (dpy, info, False);    LockDisplay(dpy);    GetReq(XF86VidModeGetGammaRampSize, req);    req->reqType = info->codes->major_opcode;    req->xf86vidmodeReqType = X_XF86VidModeGetGammaRampSize;    req->screen = screen;    if (!_XReply (dpy, (xReply *) &rep, 0, xTrue)) {        UnlockDisplay (dpy);        SyncHandle ();        return False;     }    *size = rep.size;    UnlockDisplay(dpy);    SyncHandle();    return True;}

⌨️ 快捷键说明

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