b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync/* $Xorg: Oid.h,v 1.3 2000/08/17 19:48:06 cpqbld Exp $ */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync/*
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync(c) Copyright 1996 Hewlett-Packard Company
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync(c) Copyright 1996 International Business Machines Corp.
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync(c) Copyright 1996 Sun Microsystems, Inc.
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync(c) Copyright 1996 Novell, Inc.
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync(c) Copyright 1996 Digital Equipment Corp.
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync(c) Copyright 1996 Fujitsu Limited
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync(c) Copyright 1996 Hitachi, Ltd.
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncPermission is hereby granted, free of charge, to any person obtaining a copy
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncof this software and associated documentation files (the "Software"), to deal
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncin the Software without restriction, including without limitation the rights
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncto use, copy, modify, merge, publish, distribute, sublicense, and/or sell
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsynccopies of the Software, and to permit persons to whom the Software is
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncfurnished to do so, subject to the following conditions:
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncThe above copyright notice and this permission notice shall be included in
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncall copies or substantial portions of the Software.
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncTHE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncCOPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncIN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncCONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncExcept as contained in this notice, the names of the copyright holders shall
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncnot be used in advertising or otherwise to promote the sale, use or other
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncdealings in this Software without prior written authorization from said
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsynccopyright holders.
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync*/
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#ifdef HAVE_DIX_CONFIG_H
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#include <dix-config.h>
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#endif
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#ifndef _Xp_Oid_h
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define _Xp_Oid_h
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#include <X11/Xproto.h>
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync/*
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * include the auto-generated XpOid enum definition
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#include "OidDefs.h"
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync/*
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * messages
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define XPMSG_WARN_MSS "Syntax error parsing medium-source-sizes"
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define XPMSG_WARN_ITM "Syntax error parsing input-trays-medium"
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define XPMSG_WARN_DOC_FMT "Syntax error parsing document format"
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define XPMSG_WARN_DOCFMT_LIST "Syntax error parsing document format list"
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define XPMSG_WARN_CARD_LIST "Syntax error parsing cardinal list"
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync/*
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * macros for memory allocation
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define XpOidMalloc(size) ((char*)Xalloc((unsigned long)(size)))
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define XpOidCalloc(count, size) \
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync ((char*)Xcalloc((unsigned long)((count)*(size))))
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define XpOidFree(mem) (Xfree((unsigned long*)(mem)))
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync/*
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * list of object identifiers
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsynctypedef struct _XpOidList
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync{
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync XpOid* list;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int count;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync} XpOidList;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync/*
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * linked list of object identifiers
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsynctypedef struct XpOidNodeStruct
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync{
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync XpOid oid;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync struct XpOidNodeStruct* next;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync} *XpOidNode;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsynctypedef struct _XpOidLinkedList
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync{
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync XpOidNode head;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync XpOidNode tail;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync XpOidNode current;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int count;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync} XpOidLinkedList;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync/*
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * XpOidMediumSourceSize and related definitions
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsynctypedef struct
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync{
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync float minimum_x;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync float maximum_x;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync float minimum_y;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync float maximum_y;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync} XpOidArea;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsynctypedef struct
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync{
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync float lower_bound;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync float upper_bound;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync} XpOidRealRange;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsynctypedef struct
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync{
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync XpOidRealRange range_across_feed;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync float increment_across_feed;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync XpOidRealRange range_in_feed;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync float increment_in_feed;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync BOOL long_edge_feeds;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync XpOidArea assured_reproduction_area;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync} XpOidMediumContinuousSize;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsynctypedef struct
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync{
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync XpOid page_size;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync BOOL long_edge_feeds;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync XpOidArea assured_reproduction_area;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync} XpOidMediumDiscreteSize;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsynctypedef struct
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync{
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync XpOidMediumDiscreteSize* list;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int count;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync} XpOidMediumDiscreteSizeList;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsynctypedef struct
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync{
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync XpOid input_tray; /* may be set to xpoid_none or xpoid_unspecified */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync enum { XpOidMediumSS_DISCRETE, XpOidMediumSS_CONTINUOUS } mstag;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync union
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync {
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync XpOidMediumDiscreteSizeList* discrete;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync XpOidMediumContinuousSize* continuous_size;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync } ms; /* "ms" is short for medium-size */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync} XpOidMediumSourceSize;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsynctypedef struct
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync{
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync XpOidMediumSourceSize* mss;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int count;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync} XpOidMediumSS;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsynctypedef struct
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync{
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync XpOid input_tray; /* may be set to xpoid_none */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync XpOid medium;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync} XpOidTrayMedium;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsynctypedef struct
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync{
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync XpOidTrayMedium* list;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int count;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync} XpOidTrayMediumList;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsynctypedef enum {
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync XPOID_NOTIFY_UNSUPPORTED,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync XPOID_NOTIFY_NONE,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync XPOID_NOTIFY_EMAIL
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync} XpOidNotify;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsynctypedef struct
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync{
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync unsigned long *list;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int count;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync} XpOidCardList;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsynctypedef struct
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync{
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync char* format;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync char* variant;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync char* version;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync} XpOidDocFmt;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsynctypedef struct
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync{
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync XpOidDocFmt* list;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int count;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync} XpOidDocFmtList;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync/*
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * XpOid public methods
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncconst char* XpOidString(XpOid);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncint XpOidStringLength(XpOid);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncXpOid XpOidFromString(const char* value);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncBOOL XpOidTrayMediumListHasTray(const XpOidTrayMediumList* list, XpOid tray);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync/*
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * XpOidList public methods
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncXpOidList* XpOidListNew(const char* value_string,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync const XpOidList* valid_oids);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define XpOidListInit(l, a, c) { (l)->list = (a); (l)->count = (c); }
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncvoid XpOidListDelete(XpOidList*);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define XpOidListCount(l) ((l) ? (l)->count : 0)
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define XpOidListGetOid(l, i) ((l) ? (l)->list[(i)] : xpoid_none)
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncint XpOidListGetIndex(const XpOidList* list, XpOid oid);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncBOOL XpOidListHasOid(const XpOidList* list, XpOid oid);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncchar* XpOidListString(const XpOidList*);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync/*
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * XpOidLinkedList public methods
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncXpOidLinkedList* XpOidLinkedListNew();
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncvoid XpOidLinkedListDelete(XpOidLinkedList*);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define XpOidLinkedListCount(l) ((l) ? (l)->count : 0)
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncXpOid XpOidLinkedListGetOid(XpOidLinkedList* list, int i);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncvoid XpOidLinkedListAddOid(XpOidLinkedList* list, XpOid oid);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncint XpOidLinkedListGetIndex(XpOidLinkedList* list, XpOid oid);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncBOOL XpOidLinkedListHasOid(XpOidLinkedList* list,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync XpOid oid);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncXpOid XpOidLinkedListFirstOid(XpOidLinkedList* list);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncXpOid XpOidLinkedListNextOid(XpOidLinkedList* list);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync/*
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * XpOidMediumSourceSize public methods
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncXpOidMediumSS* XpOidMediumSSNew(const char* value_string,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync const XpOidList* valid_trays,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync const XpOidList* valid_medium_sizes);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncvoid XpOidMediumSSDelete(XpOidMediumSS*);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define XpOidMediumSSCount(me) ((me) ? (me)->count : 0)
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncBOOL XpOidMediumSSHasSize(XpOidMediumSS*, XpOid medium_size);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncchar* XpOidMediumSSString(const XpOidMediumSS*);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync/*
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * XpOidTrayMediumList public methods
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncXpOidTrayMediumList* XpOidTrayMediumListNew(const char* value_string,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync const XpOidList* valid_trays,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync const XpOidMediumSS* msss);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncvoid XpOidTrayMediumListDelete(XpOidTrayMediumList* me);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define XpOidTrayMediumListCount(me) ((me) ? (me)->count : 0)
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define XpOidTrayMediumListTray(me, i) \
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync ((me) ? (me)->list[(i)].input_tray : xpoid_none)
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define XpOidTrayMediumListMedium(me, i) \
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync ((me) ? (me)->list[(i)].medium : xpoid_none)
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncchar* XpOidTrayMediumListString(const XpOidTrayMediumList*);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync/*
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * XpOidNotify public methods
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncXpOidNotify XpOidNotifyParse(const char* value_string);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncconst char* XpOidNotifyString(XpOidNotify notify);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync/*
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * XpOidDocFmt public methods
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncXpOidDocFmt* XpOidDocFmtNew(const char* value_string);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncvoid XpOidDocFmtDelete(XpOidDocFmt*);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncchar* XpOidDocFmtString(XpOidDocFmt*);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync/*
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * XpOidDocFmtList public methods
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncXpOidDocFmtList* XpOidDocFmtListNew(const char* value_string,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync const XpOidDocFmtList* valid_fmts);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncvoid XpOidDocFmtListDelete(XpOidDocFmtList*);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncchar* XpOidDocFmtListString(const XpOidDocFmtList*);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define XpOidDocFmtListCount(me) ((me) ? (me)->count : 0)
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define XpOidDocFmtListGetDocFmt(me, i) \
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync ((me) ? &(me)->list[(i)] : (XpDocFmt*)NULL)
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncBOOL XpOidDocFmtListHasFmt(const XpOidDocFmtList* list,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync const XpOidDocFmt* fmt);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync/*
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * XpOidCardList public methods
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncXpOidCardList* XpOidCardListNew(const char* value_string,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync const XpOidCardList* valid_cards);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define XpOidCardListInit(l, a, c) { (l)->list = (a); (l)->count = (c); }
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncvoid XpOidCardListDelete(XpOidCardList*);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncchar* XpOidCardListString(const XpOidCardList*);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define XpOidCardListCount(me) ((me) ? (me)->count : 0)
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define XpOidCardListGetCard(me, i) ((me) ? (me)->list[(i)] : 0)
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncBOOL XpOidCardListHasCard(const XpOidCardList*, unsigned long);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync/*
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * misc parsing functions
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncBOOL XpOidParseUnsignedValue(const char* value_string,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync const char** ptr_return,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync unsigned long* unsigned_return);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#endif /* _Xp_Oid_h - don't add anything after this line */