#ifndef  CLIB_XADMASTER_PROTOS_H
#define  CLIB_XADMASTER_PROTOS_H

/*
**	$VER: clib/xadmaster_protos.h 1.0 (07.09.1998)
**	xadmaster.library function prototypes
**
**	Copyright © 1998 by Dirk Stöcker
**	All Rights Reserved.
*/

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

#ifndef UTILITY_TAGITEM_H
#include <utility/tagitem.h>
#endif

#ifndef LIBRARIES_XADMASTER_H
#include <libraries/xadmaster.h>
#endif

APTR xadAllocObjectA(LONG type, struct TagItem *tags);
APTR xadAllocObject(LONG type, Tag tag1, ...);

void xadFreeObjectA(APTR object, struct TagItem *tags);
void xadFreeObject(APTR object, Tag tag1, ...);

struct xadClient *xadRecogFileA(ULONG size, APTR memory,
	struct TagItem *tags);
struct xadClient *xadRecogFile(ULONG size, APTR memory, Tag tag1, ...);

LONG xadGetInfoA(struct xadArchiveInfo *ai, struct TagItem *tags);
LONG xadGetInfo(struct xadArchiveInfo *ai, Tag tag1, ...);

void xadFreeInfo(struct xadArchiveInfo *ai);

LONG xadFileUnArcA(struct xadArchiveInfo *ai, struct TagItem *tags);
LONG xadFileUnArc(struct xadArchiveInfo *ai, Tag tag1, ...);

LONG xadDiskUnArcA(struct xadArchiveInfo *ai, struct TagItem *tags);
LONG xadDiskUnArc(struct xadArchiveInfo *ai, Tag tag1, ...);

STRPTR xadGetErrorText(ULONG errnum);

struct xadClient *xadGetClientInfo(void);

/* this function can be called from client functions only! */
LONG xadHookAccess(ULONG command, LONG data, APTR buffer,
	struct xadArchiveInfo *ai);

LONG xadConvertDatesA(struct TagItem *tags);
LONG xadConvertDates(Tag tag1, ...);

#endif	/* CLIB_XADMASTER_PROTOS_H */
