b9a21c3c91c47e090316e28d759194e46628ed49vboxsync * Copyright 2002 Red Hat Inc., Durham, North Carolina.
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync * All Rights Reserved.
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync * Permission is hereby granted, free of charge, to any person obtaining
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync * a copy of this software and associated documentation files (the
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync * "Software"), to deal in the Software without restriction, including
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync * without limitation on the rights to use, copy, modify, merge,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync * publish, distribute, sublicense, and/or sell copies of the Software,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync * and to permit persons to whom the Software is furnished to do so,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync * subject to the following conditions:
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync * The above copyright notice and this permission notice (including the
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync * next paragraph) shall be included in all copies or substantial
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync * portions of the Software.
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync * NON-INFRINGEMENT. IN NO EVENT SHALL RED HAT AND/OR THEIR SUPPLIERS
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync * SOFTWARE.
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync * Rickard E. (Rik) Faith <faith@redhat.com>
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync * Interface to DMX configuration file parser. \see dmxparse.c */
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync/** Stores tokens not stored in other structures (e.g., keywords and ;) */
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync/** Stores parsed strings. */
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync/** Stores parsed numbers. */
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync/** Stores parsed pairs (e.g., x y) */
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync/** Stores parsed comments not stored with a token. */
b9a21c3c91c47e090316e28d759194e46628ed49vboxsynctypedef enum {
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync/** Stores a geometry specification. */
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync/** Stores a pair of geometry specifications. */
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync/** Stores parsed display information. */
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync /* Summary information */
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync /* Screen Window Geometry */
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync /* Root Window Geometry */
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync /* Origin in global space */
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync /* Raw configuration information */
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync/** Stores parsed wall information. */
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync /* Summary information */
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync int xwall, ywall; /* dimensions of wall, in tiles */
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync /* Raw configuration informaiton */
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync/** Stores parsed option information. */
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync /* Summary information */
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync /* Raw configuration informaiton */
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync/** Stores parsed param information. */
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync DMXConfigTokenPtr end; /* Either open/close OR end */
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync/** Stores options under an entry (subentry). */
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync/** Stores parsed virtual information. */
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync /* Summary information */
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync /* Raw configuration information */
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync/** Heads entry storage. */
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern int yylex(void);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync unsigned long orig_bytes,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync unsigned long bytes);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern const char *dmxConfigCopyString(const char *string,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern DMXConfigTokenPtr dmxConfigCreateToken(int token, int line,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync const char *comment);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern void dmxConfigFreeToken(DMXConfigTokenPtr p);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern DMXConfigStringPtr dmxConfigCreateString(int token, int line,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync const char *comment,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync const char *string);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern void dmxConfigFreeString(DMXConfigStringPtr p);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern DMXConfigNumberPtr dmxConfigCreateNumber(int token, int line,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync const char *comment,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern void dmxConfigFreeNumber(DMXConfigNumberPtr p);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern DMXConfigPairPtr dmxConfigCreatePair(int token, int line,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync const char *comment,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync int x, int y,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern DMXConfigCommentPtr dmxConfigCreateComment(int token, int line,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync const char *comment);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern void dmxConfigFreeComment(DMXConfigCommentPtr p);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern DMXConfigPartDimPtr dmxConfigCreatePartDim(DMXConfigPairPtr pDim,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern void dmxConfigFreePartDim(DMXConfigPartDimPtr p);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern DMXConfigFullDimPtr dmxConfigCreateFullDim(DMXConfigPartDimPtr pScrn,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern void dmxConfigFreeFullDim(DMXConfigFullDimPtr p);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern DMXConfigDisplayPtr dmxConfigCreateDisplay(DMXConfigTokenPtr pStart,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern void dmxConfigFreeDisplay(DMXConfigDisplayPtr p);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern DMXConfigWallPtr dmxConfigCreateWall(DMXConfigTokenPtr pStart,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern DMXConfigOptionPtr dmxConfigCreateOption(DMXConfigTokenPtr pStart,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern void dmxConfigFreeOption(DMXConfigOptionPtr p);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern DMXConfigParamPtr dmxConfigCreateParam(DMXConfigTokenPtr pStart,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern void dmxConfigFreeParam(DMXConfigParamPtr p);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern const char **dmxConfigLookupParam(DMXConfigParamPtr p,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync const char *key,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern DMXConfigSubPtr dmxConfigCreateSub(DMXConfigType type,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern DMXConfigSubPtr dmxConfigSubComment(DMXConfigCommentPtr comment);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern DMXConfigSubPtr dmxConfigSubDisplay(DMXConfigDisplayPtr display);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern DMXConfigSubPtr dmxConfigSubWall(DMXConfigWallPtr wall);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern DMXConfigSubPtr dmxConfigSubOption(DMXConfigOptionPtr option);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern DMXConfigSubPtr dmxConfigSubParam(DMXConfigParamPtr param);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern DMXConfigSubPtr dmxConfigAddSub(DMXConfigSubPtr head,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern DMXConfigVirtualPtr dmxConfigCreateVirtual(DMXConfigTokenPtr pStart,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern void dmxConfigFreeVirtual(DMXConfigVirtualPtr virtual);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern DMXConfigEntryPtr dmxConfigCreateEntry(DMXConfigType type,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern void dmxConfigFreeEntry(DMXConfigEntryPtr entry);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern DMXConfigEntryPtr dmxConfigAddEntry(DMXConfigEntryPtr head,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern DMXConfigEntryPtr dmxConfigEntryComment(DMXConfigCommentPtr comment);