xserver

xserver with xephyr scale patch
git clone https://git.neptards.moe/u3shit/xserver.git
Log | Files | Refs | README | LICENSE

winconfig.h (6208B)


      1 #ifndef __WIN_CONFIG_H__
      2 #define __WIN_CONFIG_H__
      3 /*
      4  *Copyright (C) 1994-2000 The XFree86 Project, Inc. All Rights Reserved.
      5  *
      6  *Permission is hereby granted, free of charge, to any person obtaining
      7  * a copy of this software and associated documentation files (the
      8  *"Software"), to deal in the Software without restriction, including
      9  *without limitation the rights to use, copy, modify, merge, publish,
     10  *distribute, sublicense, and/or sell copies of the Software, and to
     11  *permit persons to whom the Software is furnished to do so, subject to
     12  *the following conditions:
     13  *
     14  *The above copyright notice and this permission notice shall be
     15  *included in all copies or substantial portions of the Software.
     16  *
     17  *THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
     18  *EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
     19  *MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
     20  *NONINFRINGEMENT. IN NO EVENT SHALL THE XFREE86 PROJECT BE LIABLE FOR
     21  *ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
     22  *CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
     23  *WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
     24  *
     25  *Except as contained in this notice, the name of the XFree86 Project
     26  *shall not be used in advertising or otherwise to promote the sale, use
     27  *or other dealings in this Software without prior written authorization
     28  *from the XFree86 Project.
     29  *
     30  * Authors: Alexander Gottwald	
     31  */
     32 
     33 #include "win.h"
     34 #ifdef XWIN_XF86CONFIG
     35 #include "../xfree86/parser/xf86Parser.h"
     36 #endif
     37 
     38 /* These are taken from hw/xfree86/common/xf86str.h */
     39 
     40 typedef struct {
     41     CARD32 red, green, blue;
     42 } rgb;
     43 
     44 typedef struct {
     45     float red, green, blue;
     46 } Gamma;
     47 
     48 typedef struct {
     49     char *identifier;
     50     char *vendor;
     51     char *board;
     52     char *chipset;
     53     char *ramdac;
     54     char *driver;
     55     struct _confscreenrec *myScreenSection;
     56     Bool claimed;
     57     Bool active;
     58     Bool inUse;
     59     int videoRam;
     60     void *options;
     61     int screen;                 /* For multi-CRTC cards */
     62 } GDevRec, *GDevPtr;
     63 
     64 typedef struct {
     65     char *identifier;
     66     char *driver;
     67     void *commonOptions;
     68     void *extraOptions;
     69 } IDevRec, *IDevPtr;
     70 
     71 typedef struct {
     72     int frameX0;
     73     int frameY0;
     74     int virtualX;
     75     int virtualY;
     76     int depth;
     77     int fbbpp;
     78     rgb weight;
     79     rgb blackColour;
     80     rgb whiteColour;
     81     int defaultVisual;
     82     char **modes;
     83     void *options;
     84 } DispRec, *DispPtr;
     85 
     86 typedef struct _confxvportrec {
     87     char *identifier;
     88     void *options;
     89 } confXvPortRec, *confXvPortPtr;
     90 
     91 typedef struct _confxvadaptrec {
     92     char *identifier;
     93     int numports;
     94     confXvPortPtr ports;
     95     void *options;
     96 } confXvAdaptorRec, *confXvAdaptorPtr;
     97 
     98 typedef struct _confscreenrec {
     99     char *id;
    100     int screennum;
    101     int defaultdepth;
    102     int defaultbpp;
    103     int defaultfbbpp;
    104     GDevPtr device;
    105     int numdisplays;
    106     DispPtr displays;
    107     int numxvadaptors;
    108     confXvAdaptorPtr xvadaptors;
    109     void *options;
    110 } confScreenRec, *confScreenPtr;
    111 
    112 typedef enum {
    113     PosObsolete = -1,
    114     PosAbsolute = 0,
    115     PosRightOf,
    116     PosLeftOf,
    117     PosAbove,
    118     PosBelow,
    119     PosRelative
    120 } PositionType;
    121 
    122 typedef struct _screenlayoutrec {
    123     confScreenPtr screen;
    124     char *topname;
    125     confScreenPtr top;
    126     char *bottomname;
    127     confScreenPtr bottom;
    128     char *leftname;
    129     confScreenPtr left;
    130     char *rightname;
    131     confScreenPtr right;
    132     PositionType where;
    133     int x;
    134     int y;
    135     char *refname;
    136     confScreenPtr refscreen;
    137 } screenLayoutRec, *screenLayoutPtr;
    138 
    139 typedef struct _serverlayoutrec {
    140     char *id;
    141     screenLayoutPtr screens;
    142     GDevPtr inactives;
    143     IDevPtr inputs;
    144     void *options;
    145 } serverLayoutRec, *serverLayoutPtr;
    146 
    147 /*
    148  * winconfig.c
    149  */
    150 
    151 typedef struct {
    152     /* Files */
    153 #ifdef XWIN_XF86CONFIG
    154     char *configFile;
    155     char *configDir;
    156 #endif
    157     char *fontPath;
    158     /* input devices - keyboard */
    159 #ifdef XWIN_XF86CONFIG
    160     char *keyboard;
    161 #endif
    162     char *xkbRules;
    163     char *xkbModel;
    164     char *xkbLayout;
    165     char *xkbVariant;
    166     char *xkbOptions;
    167     /* layout */
    168     char *screenname;
    169     /* mouse settings */
    170     char *mouse;
    171     Bool emulate3buttons;
    172     long emulate3timeout;
    173 } WinCmdlineRec, *WinCmdlinePtr;
    174 
    175 extern WinCmdlineRec g_cmdline;
    176 
    177 #ifdef XWIN_XF86CONFIG
    178 extern XF86ConfigPtr g_xf86configptr;
    179 #endif
    180 extern serverLayoutRec g_winConfigLayout;
    181 
    182 /*
    183  * Function prototypes
    184  */
    185 
    186 Bool winReadConfigfile(void);
    187 Bool winConfigFiles(void);
    188 Bool winConfigOptions(void);
    189 Bool winConfigScreens(void);
    190 Bool winConfigKeyboard(DeviceIntPtr pDevice);
    191 Bool winConfigMouse(DeviceIntPtr pDevice);
    192 
    193 typedef struct {
    194     double freq;
    195     int units;
    196 } OptFrequency;
    197 
    198 typedef union {
    199     unsigned long num;
    200     char *str;
    201     double realnum;
    202     Bool boolean;
    203     OptFrequency freq;
    204 } ValueUnion;
    205 
    206 typedef enum {
    207     OPTV_NONE = 0,
    208     OPTV_INTEGER,
    209     OPTV_STRING,                /* a non-empty string */
    210     OPTV_ANYSTR,                /* Any string, including an empty one */
    211     OPTV_REAL,
    212     OPTV_BOOLEAN,
    213     OPTV_PERCENT,
    214     OPTV_FREQ
    215 } OptionValueType;
    216 
    217 typedef enum {
    218     OPTUNITS_HZ = 1,
    219     OPTUNITS_KHZ,
    220     OPTUNITS_MHZ
    221 } OptFreqUnits;
    222 
    223 typedef struct {
    224     int token;
    225     const char *name;
    226     OptionValueType type;
    227     ValueUnion value;
    228     Bool found;
    229 } OptionInfoRec, *OptionInfoPtr;
    230 
    231 /*
    232  * Function prototypes
    233  */
    234 
    235 char *winSetStrOption(void *optlist, const char *name, char *deflt);
    236 int winSetBoolOption(void *optlist, const char *name, int deflt);
    237 int winSetIntOption(void *optlist, const char *name, int deflt);
    238 double winSetRealOption(void *optlist, const char *name, double deflt);
    239 double winSetPercentOption(void *optlist, const char *name, double deflt);
    240 
    241 #ifdef XWIN_XF86CONFIG
    242 XF86OptionPtr winFindOption(XF86OptionPtr list, const char *name);
    243 char *winFindOptionValue(XF86OptionPtr list, const char *name);
    244 #endif
    245 int winNameCompare(const char *s1, const char *s2);
    246 char *winNormalizeName(const char *s);
    247 
    248 typedef struct {
    249     struct {
    250         long leds;
    251         long delay;
    252         long rate;
    253     } keyboard;
    254     XkbRMLVOSet xkb;
    255     struct {
    256         Bool emulate3Buttons;
    257         long emulate3Timeout;
    258     } pointer;
    259 } winInfoRec, *winInfoPtr;
    260 
    261 extern winInfoRec g_winInfo;
    262 
    263 #endif