//----------------------------------------------
// globale Variablen und Konstanten fuer Messie
//----------------------------------------------

// sorry, english comments were inserted much later...

#include <stdlib.h>
#include <stdio.h>

extern char thisis[]; // string with version, messiemain.cc

const int MAXMESSAGES = 10000;
const int DATASAVER_BUFFERSIZE = 480;

const int MAXCHANNELS = 8; // of hardware
const int MAXVALUE = 4095; 

inline void *MEMALLOC(size_t size) {return malloc(size);}
inline void FREEMEM(void *addr){free(addr);}

enum StringID {
 MSG_NULL=0, MSG_DATEPROBLEM,  MSG_DIRPROBLEM,  MSG_DATAFILENAME,  MSG_COMMENTFILENAME,
 MSG_FILENAMEPROBLEM,  MSG_HEADERTEXT,  MSG_CANTWRITETOFILE,  MSG_CANTOPENMISC,
 MSG_CANTGETIOREQ,  MSG_WINPROBLEM,  MSG_SETINTERVAL,  MSG_CANTGETMSGPORT,
 MSG_CANTOPENTIMER,  MSG_ALREADYACTIVE,  MSG_SUBTASKPROBLEM,  MSG_COULDNOTMAKESUBTASK,
 MSG_MSGOVERFLOW,  MSG_CHANNELSTOPPED,  MSG_CHANNELSTARTED,  MSG_COMMENT,  MSG_SLIDER_GAD,
 MSG_START_GAD,  MSG_STOP_GAD,  MSG_SECS_GAD,  MSG_GADGETPROBLEM,  MSG_CANTGETHANDSHAKES
};

//*******************************************************
// Parameterblock für gemessene Daten und Steuerkommandos
// Programmteile ausserhalb der Klassen sollten nur
// Datenblöcke mit Zeit zu sehen bekommen
//*******************************************************

struct Mess_Param {
 ULONG Command;
 LONG Channel;
 ULONG Day;  // nur zur internen Verwendung (seit 1.1.1978) // system date format
 ULONG Time; // Sekunden seit Mitternacht // seconds since midnight
 LONG  Value;
};

void PrintString(StringID);
STRPTR GetString(StringID);
void PrintString(char *);
