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