deb4998ba50060c48cce222fd18a8eed053918d7vboxsync/***********************************************************
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncCopyright 1991 by Digital Equipment Corporation, Maynard, Massachusetts,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncand the Massachusetts Institute of Technology, Cambridge, Massachusetts.
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync All Rights Reserved
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncPermission to use, copy, modify, and distribute this software and its
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncdocumentation for any purpose and without fee is hereby granted,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncprovided that the above copyright notice appear in all copies and that
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncboth that copyright notice and this permission notice appear in
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncsupporting documentation, and that the names of Digital or MIT not be
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncused in advertising or publicity pertaining to distribution of the
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncsoftware without specific, written prior permission.
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncDIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncDIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncWHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncSOFTWARE.
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync******************************************************************/
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#ifndef XVDIX_H
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define XVDIX_H
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync/*
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync** File:
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync**
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync** xvdix.h --- Xv device independent header file
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync**
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync** Author:
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync**
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync** David Carver (Digital Workstation Engineering/Project Athena)
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync**
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync** Revisions:
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync**
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync** 29.08.91 Carver
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync** - removed UnrealizeWindow wrapper unrealizing windows no longer
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync** preempts video
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync**
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync** 11.06.91 Carver
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync** - changed SetPortControl to SetPortAttribute
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync** - changed GetPortControl to GetPortAttribute
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync** - changed QueryBestSize
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync**
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync** 15.05.91 Carver
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync** - version 2.0 upgrade
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync**
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync** 24.01.91 Carver
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync** - version 1.4 upgrade
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync**
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync*/
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#include "scrnintstr.h"
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#include <X11/extensions/Xvproto.h>
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern int XvScreenIndex;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern unsigned long XvExtensionGeneration;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern unsigned long XvScreenGeneration;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern unsigned long XvResourceGeneration;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern int XvReqCode;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern int XvEventBase;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern int XvErrorBase;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern unsigned long XvRTPort;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern unsigned long XvRTEncoding;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern unsigned long XvRTGrab;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern unsigned long XvRTVideoNotify;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern unsigned long XvRTVideoNotifyList;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern unsigned long XvRTPortNotify;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynctypedef struct {
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int numerator;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int denominator;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync} XvRationalRec, *XvRationalPtr;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynctypedef struct {
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync char depth;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync unsigned long visual;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync} XvFormatRec, *XvFormatPtr;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynctypedef struct {
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync unsigned long id;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync ClientPtr client;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync} XvGrabRec, *XvGrabPtr;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynctypedef struct _XvVideoNotifyRec {
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync struct _XvVideoNotifyRec *next;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync ClientPtr client;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync unsigned long id;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync unsigned long mask;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync} XvVideoNotifyRec, *XvVideoNotifyPtr;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynctypedef struct _XvPortNotifyRec {
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync struct _XvPortNotifyRec *next;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync ClientPtr client;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync unsigned long id;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync} XvPortNotifyRec, *XvPortNotifyPtr;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynctypedef struct {
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int id;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync ScreenPtr pScreen;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync char *name;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync unsigned short width, height;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync XvRationalRec rate;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync} XvEncodingRec, *XvEncodingPtr;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynctypedef struct _XvAttributeRec {
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int flags;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int min_value;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int max_value;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync char *name;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync} XvAttributeRec, *XvAttributePtr;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynctypedef struct {
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int id;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int type;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int byte_order;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync char guid[16];
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int bits_per_pixel;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int format;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int num_planes;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync /* for RGB formats only */
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int depth;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync unsigned int red_mask;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync unsigned int green_mask;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync unsigned int blue_mask;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync /* for YUV formats only */
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync unsigned int y_sample_bits;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync unsigned int u_sample_bits;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync unsigned int v_sample_bits;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync unsigned int horz_y_period;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync unsigned int horz_u_period;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync unsigned int horz_v_period;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync unsigned int vert_y_period;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync unsigned int vert_u_period;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync unsigned int vert_v_period;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync char component_order[32];
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int scanline_order;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync} XvImageRec, *XvImagePtr;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynctypedef struct {
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync unsigned long base_id;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync unsigned char type;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync char *name;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int nEncodings;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync XvEncodingPtr pEncodings;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int nFormats;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync XvFormatPtr pFormats;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int nAttributes;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync XvAttributePtr pAttributes;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int nImages;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync XvImagePtr pImages;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int nPorts;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync struct _XvPortRec *pPorts;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync ScreenPtr pScreen;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int (* ddAllocatePort)(unsigned long, struct _XvPortRec*,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync struct _XvPortRec**);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int (* ddFreePort)(struct _XvPortRec*);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int (* ddPutVideo)(ClientPtr, DrawablePtr,struct _XvPortRec*, GCPtr,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync INT16, INT16, CARD16, CARD16,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync INT16, INT16, CARD16, CARD16);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int (* ddPutStill)(ClientPtr, DrawablePtr,struct _XvPortRec*, GCPtr,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync INT16, INT16, CARD16, CARD16,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync INT16, INT16, CARD16, CARD16);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int (* ddGetVideo)(ClientPtr, DrawablePtr,struct _XvPortRec*, GCPtr,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync INT16, INT16, CARD16, CARD16,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync INT16, INT16, CARD16, CARD16);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int (* ddGetStill)(ClientPtr, DrawablePtr,struct _XvPortRec*, GCPtr,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync INT16, INT16, CARD16, CARD16,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync INT16, INT16, CARD16, CARD16);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int (* ddStopVideo)(ClientPtr, struct _XvPortRec*, DrawablePtr);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int (* ddSetPortAttribute)(ClientPtr, struct _XvPortRec*, Atom, INT32);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int (* ddGetPortAttribute)(ClientPtr, struct _XvPortRec*, Atom, INT32*);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int (* ddQueryBestSize)(ClientPtr, struct _XvPortRec*, CARD8,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync CARD16, CARD16,CARD16, CARD16,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync unsigned int*, unsigned int*);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int (* ddPutImage)(ClientPtr, DrawablePtr, struct _XvPortRec*, GCPtr,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync INT16, INT16, CARD16, CARD16,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync INT16, INT16, CARD16, CARD16,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync XvImagePtr, unsigned char*, Bool,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync CARD16, CARD16);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int (* ddQueryImageAttributes)(ClientPtr, struct _XvPortRec*, XvImagePtr,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync CARD16*, CARD16*, int*, int*);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync DevUnion devPriv;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync} XvAdaptorRec, *XvAdaptorPtr;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynctypedef struct _XvPortRec {
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync unsigned long id;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync XvAdaptorPtr pAdaptor;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync XvPortNotifyPtr pNotify;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync DrawablePtr pDraw;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync ClientPtr client;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync XvGrabRec grab;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync TimeStamp time;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync DevUnion devPriv;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync} XvPortRec, *XvPortPtr;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define LOOKUP_PORT(_id, client)\
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync ((XvPortPtr)LookupIDByType(_id, XvRTPort))
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define LOOKUP_ENCODING(_id, client)\
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync ((XvEncodingPtr)LookupIDByType(_id, XvRTEncoding))
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define LOOKUP_VIDEONOTIFY_LIST(_id, client)\
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync ((XvVideoNotifyPtr)LookupIDByType(_id, XvRTVideoNotifyList))
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define LOOKUP_PORTNOTIFY_LIST(_id, client)\
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync ((XvPortNotifyPtr)LookupIDByType(_id, XvRTPortNotifyList))
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynctypedef struct {
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int version, revision;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int nAdaptors;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync XvAdaptorPtr pAdaptors;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync DestroyWindowProcPtr DestroyWindow;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync DestroyPixmapProcPtr DestroyPixmap;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync CloseScreenProcPtr CloseScreen;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync Bool (* ddCloseScreen)(int, ScreenPtr);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int (* ddQueryAdaptors)(ScreenPtr, XvAdaptorPtr*, int*);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync DevUnion devPriv;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync} XvScreenRec, *XvScreenPtr;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define SCREEN_PROLOGUE(pScreen, field)\
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync ((pScreen)->field = \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync ((XvScreenPtr) \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync (pScreen)->devPrivates[XvScreenIndex].ptr)->field)
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define SCREEN_EPILOGUE(pScreen, field, wrapper)\
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync ((pScreen)->field = wrapper)
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync/* Errors */
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define _XvBadPort (XvBadPort+XvErrorBase)
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define _XvBadEncoding (XvBadEncoding+XvErrorBase)
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern int ProcXvDispatch(ClientPtr);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern int SProcXvDispatch(ClientPtr);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern void XvExtensionInit(void);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern int XvScreenInit(ScreenPtr);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern int XvGetScreenIndex(void);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern unsigned long XvGetRTPort(void);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern int XvdiSendPortNotify(XvPortPtr, Atom, INT32);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern int XvdiVideoStopped(XvPortPtr, int);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern int XvdiPutVideo(ClientPtr, DrawablePtr, XvPortPtr, GCPtr,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync INT16, INT16, CARD16, CARD16,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync INT16, INT16, CARD16, CARD16);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern int XvdiPutStill(ClientPtr, DrawablePtr, XvPortPtr, GCPtr,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync INT16, INT16, CARD16, CARD16,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync INT16, INT16, CARD16, CARD16);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern int XvdiGetVideo(ClientPtr, DrawablePtr, XvPortPtr, GCPtr,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync INT16, INT16, CARD16, CARD16,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync INT16, INT16, CARD16, CARD16);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern int XvdiGetStill(ClientPtr, DrawablePtr, XvPortPtr, GCPtr,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync INT16, INT16, CARD16, CARD16,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync INT16, INT16, CARD16, CARD16);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern int XvdiPutImage(ClientPtr, DrawablePtr, XvPortPtr, GCPtr,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync INT16, INT16, CARD16, CARD16,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync INT16, INT16, CARD16, CARD16,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync XvImagePtr, unsigned char*, Bool,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync CARD16, CARD16);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern int XvdiSelectVideoNotify(ClientPtr, DrawablePtr, BOOL);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern int XvdiSelectPortNotify(ClientPtr, XvPortPtr, BOOL);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern int XvdiSetPortAttribute(ClientPtr, XvPortPtr, Atom, INT32);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern int XvdiGetPortAttribute(ClientPtr, XvPortPtr, Atom, INT32*);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern int XvdiStopVideo(ClientPtr, XvPortPtr, DrawablePtr);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern int XvdiPreemptVideo(ClientPtr, XvPortPtr, DrawablePtr);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern int XvdiMatchPort(XvPortPtr, DrawablePtr);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern int XvdiGrabPort(ClientPtr, XvPortPtr, Time, int *);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern int XvdiUngrabPort( ClientPtr, XvPortPtr, Time);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#if !defined(UNIXCPP)
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define XVCALL(name) Xv##name
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#else
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define XVCALL(name) Xv/**/name
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#endif
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#endif /* XVDIX_H */
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync