/*
** $VER: constdata.c 1.0 (25 Apr 1996)
**
** (C) Copyright 1996 Marius Gröger
**     All Rights Reserved
**
** $HISTORY:
**
** 25 Mar 1996 : 001.000 :  created
*/

/*F*/ /* includes */
#include <gtlayout/gtlayout.h>
#include <exec/libraries.h>
#include <exec/devices.h>
#include <exec/memory.h>
#include <exec/io.h>
#include <workbench/startup.h>
#include <utility/tagitem.h>
#include <netinclude:devices/sana2.h>
#include "compiler.h"
#include "debug.h"
#define CATCOMP_NUMBERS
#include "locale.h"
#include "sana2meter.h"
#include <stddef.h>
/*E*/

/*F*/ /* revision */
PRIVATE const UBYTE version[]=VERSTAG;
/*E*/

/*F*/ /* CPU */
const UBYTE CPUTXT[] =
#if (_M68040 == 1)
"68040+";
#elif (_M68030 == 1) || (_M68020 == 1)
"68020+";
#else
"68000+";
#endif

/*E*/

/*F*/ /* watches */

PUBLIC const ULONG ttmaskflags[] =
{
   TTF_INITIAL_OPACKETS,
   TTF_INITIAL_IPACKETS,
   TTF_INITIAL_OBYTES,
   TTF_INITIAL_IBYTES,
   TTF_INITIAL_DPACKETS,
   TTF_INITIAL_OCPS,
   TTF_INITIAL_ICPS
};

/***************************************************************************/

#define OFF_S2DQ(member) offsetof(struct Sana2DeviceQuery, member)
#define OFF_S2DS(member) offsetof(struct Sana2DeviceStats, member)
#define OFF_S2PTS(member) offsetof(struct TrackType, member)

PUBLIC const struct NewWatch ttwatches[] =
{
 { MEMBER_TRACKTYPE,   NULL,   NULL,        TXT_TTOPACKETS, OFF_S2PTS(tt_Stats.PacketsSent),    WF_ACTIVE },
 { MEMBER_TRACKTYPE,   NULL,   NULL,        TXT_TTIPACKETS, OFF_S2PTS(tt_Stats.PacketsReceived),WF_ACTIVE },
 { MEMBER_TRACKTYPE,   NULL,   NULL,        TXT_TTOBYTES,   OFF_S2PTS(tt_Stats.BytesSent),      WF_ACTIVE },
 { MEMBER_TRACKTYPE,   NULL,   NULL,        TXT_TTIBYTES,   OFF_S2PTS(tt_Stats.BytesReceived),  WF_ACTIVE },
 { MEMBER_TRACKTYPE,   NULL,   NULL,        TXT_TTDPACKETS, OFF_S2PTS(tt_Stats.PacketsDropped), WF_ACTIVE },
 { MEMBER_TRACKTYPE,   NULL,   NULL,        TXT_TTOCPS,     OFF_S2PTS(tt_OCPS),                 WF_ACTIVE },
 { MEMBER_TRACKTYPE,   NULL,   NULL,        TXT_TTICPS,     OFF_S2PTS(tt_ICPS),                 WF_ACTIVE },
 { MEMBER_NONE }
};

PUBLIC const struct NewWatch stdwatches[] =
{
 { MEMBER_GLOBALSTATS,  "op",  "opackets",  TXT_OPACKETS,   OFF_S2DS(PacketsSent),          WF_ACTIVE             },
 { MEMBER_GLOBALSTATS,  "ip",  "ipackets",  TXT_IPACKETS,   OFF_S2DS(PacketsReceived),      WF_ACTIVE             },
 { MEMBER_GLOBALSTATS,  "bad", "baddata",   TXT_BADDATA,    OFF_S2DS(BadData),              WF_ACTIVE             },
 { MEMBER_GLOBALSTATS,  "ovr", "overruns",  TXT_OVERRUNS,   OFF_S2DS(Overruns),             WF_ACTIVE             },
 { MEMBER_GLOBALSTATS,  "uwn", "unknown",   TXT_UNKNOWN,    OFF_S2DS(UnknownTypesReceived), WF_ACTIVE             },
 { MEMBER_GLOBALSTATS,  "rcf", "reconfigs", TXT_RECONFIGS,  OFF_S2DS(Reconfigurations),     0                     },
 { MEMBER_DEVICEQUERY,  "mtu", "mtu",       TXT_MTU,        OFF_S2DQ(MTU),                  WF_ACTIVE | WF_STATIC },
 { MEMBER_DEVICEQUERY,  "bps", "bps",       TXT_BPS,        OFF_S2DQ(BPS),                  WF_ACTIVE | WF_STATIC },
 { MEMBER_DEVICEQUERY,  "hw",  "hwtype",    TXT_HWTYPE,     OFF_S2DQ(HardwareType),         WF_ACTIVE | WF_STATIC },
 { MEMBER_SPECIALSTATS, "s1",  "special1",  0,              0,                              WF_NOLABEL            },
 { MEMBER_SPECIALSTATS, "s2",  "special2",  0,              0,                              WF_NOLABEL            },
 { MEMBER_SPECIALSTATS, "s3",  "special3",  0,              0,                              WF_NOLABEL            },
 { MEMBER_SPECIALSTATS, "s4",  "special4",  0,              0,                              WF_NOLABEL            },
 { MEMBER_SPECIALSTATS, "s5",  "special5",  0,              0,                              WF_NOLABEL            },
 { MEMBER_SPECIALSTATS, "s6",  "special6",  0,              0,                              WF_NOLABEL            },
 { MEMBER_SPECIALSTATS, "s7",  "special7",  0,              0,                              WF_NOLABEL            },
 { MEMBER_SPECIALSTATS, "s8",  "special8",  0,              0,                              WF_NOLABEL            },
 { MEMBER_SPECIALSTATS, "s9",  "special9",  0,              0,                              WF_NOLABEL            },
 { MEMBER_SPECIALSTATS, "s10", "special10", 0,              0,                              WF_NOLABEL            },
 { MEMBER_SPECIALSTATS, "s11", "special11", 0,              0,                              WF_NOLABEL            },
 { MEMBER_SPECIALSTATS, "s12", "special12", 0,              0,                              WF_NOLABEL            },
 { MEMBER_SPECIALSTATS, "s13", "special13", 0,              0,                              WF_NOLABEL            },
 { MEMBER_SPECIALSTATS, "s14", "special14", 0,              0,                              WF_NOLABEL            },
 { MEMBER_SPECIALSTATS, "s15", "special15", 0,              0,                              WF_NOLABEL            },
 { MEMBER_SPECIALSTATS, "s16", "special16", 0,              0,                              WF_NOLABEL            },
 { MEMBER_SPECIALSTATS, "s17", "special17", 0,              0,                              WF_NOLABEL            },
 { MEMBER_SPECIALSTATS, "s18", "special18", 0,              0,                              WF_NOLABEL            },
 { MEMBER_SPECIALSTATS, "s19", "special19", 0,              0,                              WF_NOLABEL            },
 { MEMBER_SPECIALSTATS, "s20", "special20", 0,              0,                              WF_NOLABEL            },
 { MEMBER_NONE }
};
/*E*/

/*F*/ /* commandline parsing */
PRIVATE const UBYTE TEMPLATE[] = "DEV=DEVICE,"            \
                                 "U=UNIT/K/N,"            \
                                 "S=SHOW/K,"              \
                                 "TT=TRACKTYPE/K,"        \
                                 "FORCE/S,"               \
                                 "OFF/S,"                 \
                                 "FROM/K,"                \
                                 "RF=REFRESH/K/N,"        \
                                 "L=LIST/S,"              \
                                 "FONT=FONTNAME/K,"       \
                                 "FONTSIZE/K/N,"          \
                                 "TOP/K/N,"               \
                                 "LEFT/K/N,"              \
                                 "SCREEN=PUBSCREEN/K,"    \
                                 "NA=NOACTIVATE/S,"       \
                                 "W2B=WINDOWTOBACK/S,"    \
                                 "WINDOW/K";              \

enum
{
   ARG_DEVICE,
   ARG_UNIT,
   ARG_SHOW,
   ARG_TRACKTYPE,
   ARG_FORCE,
   ARG_OFF,
   ARG_FROM,
   ARG_REFRESH,
   ARG_LIST,
   ARG_FONT,
   ARG_FONTSIZE,
   ARG_TOP,
   ARG_LEFT,
   ARG_PUBSCREEN,
   ARG_NOACTIVATE,
   ARG_WINDOWTOBACK,
   ARG_WINDOW,
   ARG_COUNT
};

PUBLIC const UBYTE DEF_CONSOLE[] = "CON:0/0/400/200/SANA-II Meter Tool Output/AUTO/WAIT/CLOSE";
PUBLIC const UBYTE EMAIL_AUTHOR[] = "mag@sysgo.de";
/*E*/


