/*
** Verwaltung der Briefliste
**
** Copyright (C) 1996 by Stefan Scherer.
**
** Permission to use, copy, modify, and distribute this software and its
** documentation for non-commerical use and without fee is hereby granted,
** provided that the above copyright notice appear in all copies and that
** both that copyright notice and this permission notice appear in
** supporting documentation.  This software is provided "as is" without
** express or implied warranty.
*/

#ifndef BRIEFLISTE_H
#define BRIEFLISTE_H

#include <exec/types.h>
#include "Briefe.h"

/* o-functions */

int ConstructLetterList (void);
void DestructLetterList (void);

int LL_SetYear (UWORD year);

int LL_NewLetter (struct MinLetter *item);
int LL_DelLetter (void);
int LL_ChangeLetter (struct MinLetter *item);
int LL_SetCurrentLetterNumber (UWORD number);

int LL_LoadLetter (struct MinLetter *minletter);
int LL_SaveLetter (struct MinLetter *minletter);


/* v-functions */

UWORD LL_GetLetterCount (void);
int LL_GetCurrentLetterNumber (void);
int LL_GetLetter (UWORD number, struct MinLetter *item);
int LL_GetCurrentLetter (struct MinLetter *item);

int LL_GetYear (UWORD num, UWORD * year);
UWORD LL_GetCurrentYear (void);
UWORD LL_GetCurrentYearNumber (void);
UWORD LL_GetYearCount (void);
UWORD LL_GetNextLetterNumber (void);
STRPTR LL_GetErrorMsg (void);


/* Fehlermeldungen */

enum
  {
    ERR_LL_OK,			/* alles in Ordnung */
    ERR_LL_YEAR,		/* Jahresnummer außerhalb der Grenzen */
    ERR_LL_LISTEMPTY,		/* Liste ist leer */
    ERR_LL_NOITEM,		/* Eintrag nicht in Liste vorhanden */
    ERR_LL_NOMEM,		/* kein Speicher */
    ERR_LL_NOPOOL,		/* kein Memory-Pool */
    ERR_LL_NOPATH,		/* Fehler bei Verzeichnispfad */
    ERR_LL_EXALL,		/* Fehler bei ExAll() */
    ERR_LL_LETTER,		/* Fehler bei Brief -> L_GetErrorMsg() */
    ERR_LL_CANTCREATEFILE,	/* konnte File nicht erzeugen */
    ERR_LL_SAVE,		/* Fehler beim speichern */
  };

#endif /* BRIEFLISTE_H */
