#ifndef LIBRARIES_KONWERSJA_H
#define LIBRARIES_KONWERSJA_H

/*
   **   $FileName: libraries/konwersja.h $
   **   $Release: 2.04 $
   **   $Revision: 2.0 $
   **
   **   konwersja.library definicje
   **
   **   (C) Copyright 1999 Grzegorz Królik
   **   All Rights Reserved
 */

#ifndef EXEC_TYPES_H
#include <exec/types.h>
#endif

#ifndef EXEC_LISTS_H
#include <exec/lists.h>
#endif

#ifndef EXEC_LIBRARIES_H
#include <exec/libraries.h>
#endif

#ifndef LIBRARIES_DOS_H
#include <libraries/dos.h>
#endif

#define KONNAME "konwersja.library"
#define KONVERSION 2L

struct KonBase
  {
    struct Library kon_LibNode;
    BPTR kon_SegList;			/* SegList tej biblioteki */
    struct ExecBase *kon_SysBase;	/* Kopia ExecBase */
    struct DosLibrary *kon_DOSBase;	/* Kopia DOSBase */
    struct MinList kon_Standardy;	/* Lista ze standardami */
  };

struct Standard
  {
    struct MinNode stan_Node;
    WORD stan_Numer;		/* Numer dla tego standardu */
    UBYTE stan_Flagi;		/* Flagi dla standardu */
    UBYTE stan_Nazwa[9];	/* Nazwa standardu */
    UBYTE stan_Kody[20];	/* Kody kolejnych znaków */
  };

/* Flagi dla standardu */
#define STANB_MAZL 0		/* Standard posiada znak '¤' (zl) */
#define STANF_MAZL (1<<0)
#define STANB_WBUD 7		/* NIE UŪYWAŹ!!! */
#define STANF_WBUD (1<<7)
/* Flaga ustawiana od V2 */
#define STANB_NPOL 1		/* Standard nie zawiera polskich znaków */
#define STANF_NPOL (1<<1)

/* Struktura dla funkcji AnalizujBufor(). Dostėpna w V2 lub wyūszej */
struct BuforInfo
  {
    BYTE bi_Wersja;		/* Naleūy ustawiź na BI_WERSJA */
    WORD bi_StanNumer;		/* Numer rozpoznanego standardu */
    STRPTR bi_StanNazwa;	/* Nazwa tego standardu */
    UBYTE bi_RodzajEOL;		/* Rodzaj znaku koļca linii (patrz niūej) */
    UBYTE bi_ZnakEOF;		/* Jeōli <> 0, zbiór posiada znak koļca pliku */
    ULONG bi_IloscPolLit;	/* Iloōź polskich znaków */
    ULONG bi_IloscBinarnych;	/* Iloōź znaków binarnych */
  };

/* Staīa dla pola BuforInfo.bi_Wersja */
#define BI_WERSJA 1

/* Flagi dla pola BuforInfo.bi_RodzajEOL */
#define BIEOLB_AMIGA 0		/* Dla zakoļczeļ linii z Amigi (LF) */
#define BIEOLF_AMIGA (1<<0)
#define BIEOLB_IBMPC 1		/* Dla zakoļczeļ linii z IBM PC (CR+LF) */
#define BIEOLF_IBMPC (1<<1)

/* Flagi dla funkcji Konwertuj() */
#define KONWB_ZMIENNL  0
#define KONWF_ZMIENNL  (1<<0)
#define KONWB_DODAJEOF 1
#define KONWF_DODAJEOF (1<<1)

/* Flagi dostėpne od V2 */
#define KONWB_WSTAW_CR  2
#define KONWF_WSTAW_CR  (1<<2)
#define KONWB_USUN_CR   3
#define KONWF_USUN_CR   (1<<3)
#define KONWB_WSTAW_EOF 4
#define KONWF_WSTAW_EOF (1<<4)
#define KONWB_USUN_EOF  5
#define KONWF_USUN_EOF  (1<<5)

/* Numery bīėdów dla funkcji Konwertuj() */
#define KONBLAD_OK			0L
#define KONBLAD_KONWERSJA_PRZERWANA	-1L
#define KONBLAD_STANDARD_NIE_ISTNIEJE	-2L
#define KONBLAD_BRAK_PAMIECI		-3L

/* Numery bīėdów dla funkcji AnalizujBufor(). Dostėpna w V2 lub wyūszej */
#define KONBLAD_ANALIZA_PRZERWANA	KONBLAD_KONWERSJA_PRZERWANA

#endif /* LIBRARIES_KONWERSJA_H */
