322 lines
		
	
	
		
			5.7 KiB
		
	
	
	
		
			C
		
	
	
	
			
		
		
	
	
			322 lines
		
	
	
		
			5.7 KiB
		
	
	
	
		
			C
		
	
	
	
#ifndef __WIN_CONFIG_H__
 | 
						|
#define __WIN_CONFIG_H__
 | 
						|
/*
 | 
						|
 *Copyright (C) 1994-2000 The XFree86 Project, Inc. All Rights Reserved.
 | 
						|
 *
 | 
						|
 *Permission is hereby granted, free of charge, to any person obtaining
 | 
						|
 * a copy of this software and associated documentation files (the
 | 
						|
 *"Software"), to deal in the Software without restriction, including
 | 
						|
 *without limitation the rights to use, copy, modify, merge, publish,
 | 
						|
 *distribute, sublicense, and/or sell copies of the Software, and to
 | 
						|
 *permit persons to whom the Software is furnished to do so, subject to
 | 
						|
 *the following conditions:
 | 
						|
 *
 | 
						|
 *The above copyright notice and this permission notice shall be
 | 
						|
 *included in all copies or substantial portions of the Software.
 | 
						|
 *
 | 
						|
 *THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
 | 
						|
 *EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
 | 
						|
 *MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
 | 
						|
 *NONINFRINGEMENT. IN NO EVENT SHALL THE XFREE86 PROJECT BE LIABLE FOR
 | 
						|
 *ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
 | 
						|
 *CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
 | 
						|
 *WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 | 
						|
 *
 | 
						|
 *Except as contained in this notice, the name of the XFree86 Project
 | 
						|
 *shall not be used in advertising or otherwise to promote the sale, use
 | 
						|
 *or other dealings in this Software without prior written authorization
 | 
						|
 *from the XFree86 Project.
 | 
						|
 *
 | 
						|
 * Authors: Alexander Gottwald	
 | 
						|
 */
 | 
						|
 | 
						|
#include "win.h"
 | 
						|
#ifdef XWIN_XF86CONFIG
 | 
						|
#include "../xfree86/parser/xf86Parser.h"
 | 
						|
#endif
 | 
						|
 | 
						|
 | 
						|
/* These are taken from hw/xfree86/common/xf86str.h */
 | 
						|
 | 
						|
typedef struct
 | 
						|
{
 | 
						|
  CARD32 red, green, blue;
 | 
						|
}
 | 
						|
rgb;
 | 
						|
 | 
						|
 | 
						|
typedef struct
 | 
						|
{
 | 
						|
  float red, green, blue;
 | 
						|
}
 | 
						|
Gamma;
 | 
						|
 | 
						|
 | 
						|
typedef struct
 | 
						|
{
 | 
						|
  char *identifier;
 | 
						|
  char *vendor;
 | 
						|
  char *board;
 | 
						|
  char *chipset;
 | 
						|
  char *ramdac;
 | 
						|
  char *driver;
 | 
						|
  struct _confscreenrec *myScreenSection;
 | 
						|
  Bool claimed;
 | 
						|
  Bool active;
 | 
						|
  Bool inUse;
 | 
						|
  int videoRam;
 | 
						|
  int textClockFreq;
 | 
						|
  pointer options;
 | 
						|
  int screen;			/* For multi-CRTC cards */
 | 
						|
}
 | 
						|
GDevRec, *GDevPtr;
 | 
						|
 | 
						|
 | 
						|
typedef struct
 | 
						|
{
 | 
						|
  char *identifier;
 | 
						|
  char *driver;
 | 
						|
  pointer commonOptions;
 | 
						|
  pointer extraOptions;
 | 
						|
}
 | 
						|
IDevRec, *IDevPtr;
 | 
						|
 | 
						|
 | 
						|
typedef struct
 | 
						|
{
 | 
						|
  int frameX0;
 | 
						|
  int frameY0;
 | 
						|
  int virtualX;
 | 
						|
  int virtualY;
 | 
						|
  int depth;
 | 
						|
  int fbbpp;
 | 
						|
  rgb weight;
 | 
						|
  rgb blackColour;
 | 
						|
  rgb whiteColour;
 | 
						|
  int defaultVisual;
 | 
						|
  char **modes;
 | 
						|
  pointer options;
 | 
						|
}
 | 
						|
DispRec, *DispPtr;
 | 
						|
 | 
						|
 | 
						|
typedef struct _confxvportrec
 | 
						|
{
 | 
						|
  char *identifier;
 | 
						|
  pointer options;
 | 
						|
}
 | 
						|
confXvPortRec, *confXvPortPtr;
 | 
						|
 | 
						|
 | 
						|
typedef struct _confxvadaptrec
 | 
						|
{
 | 
						|
  char *identifier;
 | 
						|
  int numports;
 | 
						|
  confXvPortPtr ports;
 | 
						|
  pointer options;
 | 
						|
}
 | 
						|
confXvAdaptorRec, *confXvAdaptorPtr;
 | 
						|
 | 
						|
 | 
						|
typedef struct _confscreenrec
 | 
						|
{
 | 
						|
  char *id;
 | 
						|
  int screennum;
 | 
						|
  int defaultdepth;
 | 
						|
  int defaultbpp;
 | 
						|
  int defaultfbbpp;
 | 
						|
  GDevPtr device;
 | 
						|
  int numdisplays;
 | 
						|
  DispPtr displays;
 | 
						|
  int numxvadaptors;
 | 
						|
  confXvAdaptorPtr xvadaptors;
 | 
						|
  pointer options;
 | 
						|
}
 | 
						|
confScreenRec, *confScreenPtr;
 | 
						|
 | 
						|
 | 
						|
typedef enum
 | 
						|
{
 | 
						|
  PosObsolete = -1,
 | 
						|
  PosAbsolute = 0,
 | 
						|
  PosRightOf,
 | 
						|
  PosLeftOf,
 | 
						|
  PosAbove,
 | 
						|
  PosBelow,
 | 
						|
  PosRelative
 | 
						|
}
 | 
						|
PositionType;
 | 
						|
 | 
						|
 | 
						|
typedef struct _screenlayoutrec
 | 
						|
{
 | 
						|
  confScreenPtr screen;
 | 
						|
  char *topname;
 | 
						|
  confScreenPtr top;
 | 
						|
  char *bottomname;
 | 
						|
  confScreenPtr bottom;
 | 
						|
  char *leftname;
 | 
						|
  confScreenPtr left;
 | 
						|
  char *rightname;
 | 
						|
  confScreenPtr right;
 | 
						|
  PositionType where;
 | 
						|
  int x;
 | 
						|
  int y;
 | 
						|
  char *refname;
 | 
						|
  confScreenPtr refscreen;
 | 
						|
}
 | 
						|
screenLayoutRec, *screenLayoutPtr;
 | 
						|
 | 
						|
 | 
						|
typedef struct _serverlayoutrec
 | 
						|
{
 | 
						|
  char *id;
 | 
						|
  screenLayoutPtr screens;
 | 
						|
  GDevPtr inactives;
 | 
						|
  IDevPtr inputs;
 | 
						|
  pointer options;
 | 
						|
}
 | 
						|
serverLayoutRec, *serverLayoutPtr;
 | 
						|
 | 
						|
 | 
						|
/*
 | 
						|
 * winconfig.c
 | 
						|
 */
 | 
						|
 | 
						|
typedef struct
 | 
						|
{
 | 
						|
  /* Files */
 | 
						|
#ifdef XWIN_XF86CONFIG
 | 
						|
  char *configFile;
 | 
						|
#endif
 | 
						|
  char *fontPath;
 | 
						|
  /* input devices - keyboard */
 | 
						|
#ifdef XWIN_XF86CONFIG
 | 
						|
  char *keyboard;
 | 
						|
#endif
 | 
						|
  char *xkbRules; 
 | 
						|
  char *xkbModel;
 | 
						|
  char *xkbLayout;
 | 
						|
  char *xkbVariant;
 | 
						|
  char *xkbOptions;
 | 
						|
  /* layout */
 | 
						|
  char *screenname;
 | 
						|
  /* mouse settings */
 | 
						|
  char *mouse;
 | 
						|
  Bool emulate3buttons;
 | 
						|
  long emulate3timeout;
 | 
						|
}
 | 
						|
WinCmdlineRec, *WinCmdlinePtr;
 | 
						|
 | 
						|
 | 
						|
extern WinCmdlineRec g_cmdline;
 | 
						|
#ifdef XWIN_XF86CONFIG
 | 
						|
extern XF86ConfigPtr g_xf86configptr;
 | 
						|
#endif
 | 
						|
extern serverLayoutRec g_winConfigLayout;
 | 
						|
 | 
						|
 | 
						|
/*
 | 
						|
 * Function prototypes
 | 
						|
 */
 | 
						|
 | 
						|
Bool winReadConfigfile (void);
 | 
						|
Bool winConfigFiles (void);
 | 
						|
Bool winConfigOptions (void);
 | 
						|
Bool winConfigScreens (void);
 | 
						|
Bool winConfigKeyboard (DeviceIntPtr pDevice);
 | 
						|
Bool winConfigMouse (DeviceIntPtr pDevice);
 | 
						|
 | 
						|
 | 
						|
typedef struct
 | 
						|
{
 | 
						|
  double freq;
 | 
						|
  int units;
 | 
						|
}
 | 
						|
OptFrequency;
 | 
						|
 | 
						|
 | 
						|
typedef union
 | 
						|
{
 | 
						|
  unsigned long num;
 | 
						|
  char *str;
 | 
						|
  double realnum;
 | 
						|
  Bool bool;
 | 
						|
  OptFrequency freq;
 | 
						|
}
 | 
						|
ValueUnion;
 | 
						|
 | 
						|
 | 
						|
typedef enum
 | 
						|
{
 | 
						|
  OPTV_NONE = 0,
 | 
						|
  OPTV_INTEGER,
 | 
						|
  OPTV_STRING,			/* a non-empty string */
 | 
						|
  OPTV_ANYSTR,			/* Any string, including an empty one */
 | 
						|
  OPTV_REAL,
 | 
						|
  OPTV_BOOLEAN,
 | 
						|
  OPTV_FREQ
 | 
						|
}
 | 
						|
OptionValueType;
 | 
						|
 | 
						|
 | 
						|
typedef enum
 | 
						|
{
 | 
						|
  OPTUNITS_HZ = 1,
 | 
						|
  OPTUNITS_KHZ,
 | 
						|
  OPTUNITS_MHZ
 | 
						|
}
 | 
						|
OptFreqUnits;
 | 
						|
 | 
						|
 | 
						|
typedef struct
 | 
						|
{
 | 
						|
  int token;
 | 
						|
  const char *name;
 | 
						|
  OptionValueType type;
 | 
						|
  ValueUnion value;
 | 
						|
  Bool found;
 | 
						|
}
 | 
						|
OptionInfoRec, *OptionInfoPtr;
 | 
						|
 | 
						|
 | 
						|
/*
 | 
						|
 * Function prototypes
 | 
						|
 */
 | 
						|
 | 
						|
char *winSetStrOption (pointer optlist, const char *name, char *deflt);
 | 
						|
int winSetBoolOption (pointer optlist, const char *name, int deflt);
 | 
						|
int winSetIntOption (pointer optlist, const char *name, int deflt);
 | 
						|
double winSetRealOption (pointer optlist, const char *name, double deflt);
 | 
						|
#ifdef XWIN_XF86CONFIG
 | 
						|
XF86OptionPtr winFindOption (XF86OptionPtr list, const char *name);
 | 
						|
char *winFindOptionValue (XF86OptionPtr list, const char *name);
 | 
						|
#endif
 | 
						|
int winNameCompare (const char *s1, const char *s2);
 | 
						|
char *winNormalizeName (const char *s);
 | 
						|
 | 
						|
 | 
						|
typedef struct
 | 
						|
{
 | 
						|
  struct
 | 
						|
  {
 | 
						|
    long leds;
 | 
						|
    long delay;
 | 
						|
    long rate;
 | 
						|
  }
 | 
						|
  keyboard;
 | 
						|
  XkbRMLVOSet xkb;
 | 
						|
  struct
 | 
						|
  {
 | 
						|
    Bool emulate3Buttons;
 | 
						|
    long emulate3Timeout;
 | 
						|
  }
 | 
						|
  pointer;
 | 
						|
}
 | 
						|
winInfoRec, *winInfoPtr;
 | 
						|
 | 
						|
 | 
						|
extern winInfoRec g_winInfo;
 | 
						|
 | 
						|
#endif
 |