/*
Copyright (C) 2009-2012 Mark Olsen

This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  

See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
*/

#include <X11/Xlib.h>

struct xf86vmmode
{
	unsigned int dotclock;
	unsigned short hdisplay;
	unsigned short hsyncstart;
	unsigned short hsyncend;
	unsigned short htotal;
	unsigned short hskew;
	unsigned short vdisplay;
	unsigned short vsyncstart;
	unsigned short vsyncend;
	unsigned short vtotal;
	unsigned int flags;
};

int xf86vm_init(void);
void xf86vm_shutdown(void);
int modeline_to_xf86vmmode(const char *modeline, struct xf86vmmode *x11mode);
int xf86vm_getcurrentmode(Display *d, struct xf86vmmode *oldmode, char *usedmodebuf, unsigned int usedmodelen);
int xf86vm_switch(Display *d, const struct xf86vmmode *newmode, struct xf86vmmode *oldmode, char *usedmodebuf, unsigned int usedmodelen);

const char * const *xf86vm_GetModeList(void);
const char *xf86vm_GetModeDescription(const char *mode);
