cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync/*
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync * Copyright (c) 2003 by The XFree86 Project, Inc.
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync *
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync * Permission is hereby granted, free of charge, to any person obtaining a
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync * copy of this software and associated documentation files (the "Software"),
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync * to deal in the Software without restriction, including without limitation
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync * the rights to use, copy, modify, merge, publish, distribute, sublicense,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync * and/or sell copies of the Software, and to permit persons to whom the
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync * Software is furnished to do so, subject to the following conditions:
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync *
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync * The above copyright notice and this permission notice shall be included in
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync * all copies or substantial portions of the Software.
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync *
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync * OTHER DEALINGS IN THE SOFTWARE.
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync *
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync * Except as contained in this notice, the name of the copyright holder(s)
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync * and author(s) shall not be used in advertising or otherwise to promote
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync * the sale, use or other dealings in this Software without prior written
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync * authorization from the copyright holder(s) and author(s).
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync */
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#ifndef _XF86XVPRIV_H_
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#define _XF86XVPRIV_H_
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#include "xf86xv.h"
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#include "privates.h"
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync/*** These are DDX layer privates ***/
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern _X_EXPORT DevPrivateKey XF86XvScreenKey;
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsynctypedef struct {
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync DestroyWindowProcPtr DestroyWindow;
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync ClipNotifyProcPtr ClipNotify;
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync WindowExposuresProcPtr WindowExposures;
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync void (*AdjustFrame)(int, int, int, int);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync Bool (*EnterVT)(int, int);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync void (*LeaveVT)(int, int);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync GCPtr videoGC;
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync} XF86XVScreenRec, *XF86XVScreenPtr;
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsynctypedef struct {
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync int flags;
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync PutVideoFuncPtr PutVideo;
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync PutStillFuncPtr PutStill;
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync GetVideoFuncPtr GetVideo;
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync GetStillFuncPtr GetStill;
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync StopVideoFuncPtr StopVideo;
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync SetPortAttributeFuncPtr SetPortAttribute;
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync GetPortAttributeFuncPtr GetPortAttribute;
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync QueryBestSizeFuncPtr QueryBestSize;
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync PutImageFuncPtr PutImage;
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync ReputImageFuncPtr ReputImage;
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync QueryImageAttributesFuncPtr QueryImageAttributes;
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync ClipNotifyFuncPtr ClipNotify;
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync} XvAdaptorRecPrivate, *XvAdaptorRecPrivatePtr;
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsynctypedef struct {
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync ScrnInfoPtr pScrn;
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync DrawablePtr pDraw;
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync unsigned char type;
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync unsigned int subWindowMode;
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync DDXPointRec clipOrg;
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync RegionPtr clientClip;
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync RegionPtr pCompositeClip;
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync Bool FreeCompositeClip;
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync XvAdaptorRecPrivatePtr AdaptorRec;
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync XvStatus isOn;
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync Bool moved;
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync int vid_x, vid_y, vid_w, vid_h;
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync int drw_x, drw_y, drw_w, drw_h;
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync DevUnion DevPriv;
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync} XvPortRecPrivate, *XvPortRecPrivatePtr;
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsynctypedef struct _XF86XVWindowRec{
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync XvPortRecPrivatePtr PortRec;
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync struct _XF86XVWindowRec *next;
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync GCPtr pGC;
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync} XF86XVWindowRec, *XF86XVWindowPtr;
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#endif /* _XF86XVPRIV_H_ */