#ifndef _INLINE_CDDB_H
#define _INLINE_CDDB_H

#ifndef __INLINE_MACROS_H
#include <inline/macros.h>
#endif

#ifndef CDDB_BASE_NAME
#define CDDB_BASE_NAME CDDBBase
#endif

#define CDDB_GetTagList(cdinfo, tags) \
	LP2(0x1e, LONG, CDDB_GetTagList, struct CDDB_CDInfo *, cdinfo, a0, struct TagItem *, tags, a1, \
	, CDDB_BASE_NAME)

#ifndef NO_INLINE_STDARG
#define CDDB_GetTags(cdinfo, tags...) \
	({uint32 _tags[] = {tags}; CDDB_GetTagList((cdinfo), (struct TagItem *) _tags);})
#endif

#define CDDB_LoadKnownCD(discID, cd) \
	LP2(0x24, BOOL, CDDB_LoadKnownCD, LONG, discID, d0, struct CDDB_KnownCD *, cd, a0, \
	, CDDB_BASE_NAME)

#define CDDB_CalcDiscID(cdi) \
	LP1NR(0x2a, CDDB_CalcDiscID, struct CDDB_CDInfo *, cdi, a0, \
	, CDDB_BASE_NAME)

#define CDDB_ErrorStr(err) \
	LP1(0x30, STRPTR, CDDB_ErrorStr, ULONG, err, d0, \
	, CDDB_BASE_NAME)

#endif /*  _INLINE_CDDB_H  */
