1692f60a7Smrg/********************************************************************** 2692f60a7SmrgCopyright 2002 by Shigehiro Nomura. 3692f60a7Smrg 4692f60a7Smrg All Rights Reserved 5692f60a7Smrg 6692f60a7SmrgPermission to use, copy, modify, distribute, and sell this software and 7692f60a7Smrgits documentation for any purpose is hereby granted without fee, 8692f60a7Smrgprovided that the above copyright notice appear in all copies and that 9692f60a7Smrgboth that copyright notice and this permission notice appear in 10692f60a7Smrgsupporting documentation, and that the name of Shigehiro Nomura not be 11692f60a7Smrgused in advertising or publicity pertaining to distribution of the 12692f60a7Smrgsoftware without specific, written prior permission. Shigehiro Nomura 13692f60a7Smrgand its suppliers make no representations about the suitability of this 14692f60a7Smrgsoftware for any purpose. It is provided "as is" without express or 15692f60a7Smrgimplied warranty. 16692f60a7Smrg 17692f60a7SmrgSHIGEHIRO NOMURA DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, 18692f60a7SmrgINCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO 19692f60a7SmrgEVENT SHALL SHIGEHIRO NOMURA AND/OR ITS SUPPLIERS BE LIABLE FOR ANY 20692f60a7SmrgSPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER 21692f60a7SmrgRESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF 22692f60a7SmrgCONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN 23692f60a7SmrgCONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 24692f60a7Smrg**********************************************************************/ 25692f60a7Smrg 26692f60a7Smrg#ifndef _NEO_VIDEO_H 27692f60a7Smrg#define _NEO_VIDEO_H 28692f60a7Smrg 29692f60a7Smrg#define ACC_MMIO 30692f60a7Smrg 31692f60a7Smrg#include "vgaHW.h" 32692f60a7Smrg#include "fourcc.h" 33692f60a7Smrg#include <X11/extensions/Xv.h> 34692f60a7Smrg 35692f60a7Smrg#define NEO_VIDEO_VIDEO 0 36692f60a7Smrg#define NEO_VIDEO_IMAGE 1 37692f60a7Smrg 38692f60a7Smrg#define FOURCC_RV15 0x35315652 39692f60a7Smrg#define FOURCC_RV16 0x36315652 40692f60a7Smrg 41692f60a7Smrg#define OFF_DELAY 200 /* milliseconds */ 42692f60a7Smrg#define FREE_DELAY 60000 /* milliseconds */ 43692f60a7Smrg 44692f60a7Smrg#define OFF_TIMER 0x01 45692f60a7Smrg#define FREE_TIMER 0x02 46692f60a7Smrg#define CLIENT_VIDEO_ON 0x04 47692f60a7Smrg#define TIMER_MASK (OFF_TIMER | FREE_TIMER) 48692f60a7Smrg 49692f60a7Smrgtypedef struct 50692f60a7Smrg{ 51692f60a7Smrg FBLinearPtr linear; 52692f60a7Smrg RegionRec clip; 53692f60a7Smrg CARD32 colorKey; 54692f60a7Smrg CARD32 interlace; 55692f60a7Smrg CARD32 brightness; 56692f60a7Smrg CARD32 videoStatus; 57692f60a7Smrg Time offTime; 58692f60a7Smrg Time freeTime; 59692f60a7Smrg} NEOPortRec, *NEOPortPtr; 60692f60a7Smrg 61692f60a7Smrgtypedef struct 62692f60a7Smrg{ 63692f60a7Smrg FBLinearPtr linear; 64692f60a7Smrg Bool isOn; 65692f60a7Smrg} NEOOffscreenRec, *NEOOffscreenPtr; 66692f60a7Smrg 67692f60a7Smrg/* I/O Functions */ 68692f60a7Smrg# define OUTGR(idx,dat) \ 69692f60a7Smrg if (nPtr->NeoMMIOBase2) \ 70692f60a7Smrg (*(unsigned short *)(nPtr->NeoMMIOBase2+VGA_GRAPH_INDEX)\ 71692f60a7Smrg =(idx)|((dat)<<8));\ 72692f60a7Smrg else \ 73692f60a7Smrg VGAwGR((idx),(dat)); 74692f60a7Smrg 75692f60a7Smrg# define OUTSR(idx,dat) \ 76692f60a7Smrgif (nPtr->NeoMMIOBase2) \ 77692f60a7Smrg (*(unsigned short *)(nPtr->NeoMMIOBase2+VGA_SEQ_INDEX)=(idx)|((dat)<<8));\ 78692f60a7Smrgelse \ 79692f60a7Smrg VGAwSR((idx),(dat)); 80692f60a7Smrg 81692f60a7Smrg# define VGA_HWP(x) vgaHWPtr hwp = VGAHWPTR(x) 82692f60a7Smrg 83692f60a7Smrg#endif /* _NEO_VIDEO_H */ 84