#ifndef DEFINES_MYSTICVIEW_PROTOS_H
#define DEFINES_MYSTICVIEW_PROTOS_H

/*
    *** Automatically generated from 'mysticview.conf'. Edits will be lost. ***
    Copyright © 1995-2008, The AROS Development Team. All rights reserved.
*/

/*
    Desc: Defines for mysticview
*/

#include <aros/libcall.h>
#include <exec/types.h>
#include <aros/preprocessor/variadic/cast2iptr.hpp>


#define __MV_CreateA_WB(__MysticBase, __arg1, __arg2, __arg3) \
        AROS_LC3(APTR, MV_CreateA, \
                  AROS_LCA(struct Screen *,(__arg1),A0), \
                  AROS_LCA(struct RastPort *,(__arg2),A1), \
                  AROS_LCA(struct TagItem *,(__arg3),A2), \
        struct Library *, (__MysticBase), 5, MysticView)

#define MV_CreateA(arg1, arg2, arg3) \
    __MV_CreateA_WB(MysticBase, (arg1), (arg2), (arg3))

#if !defined(NO_INLINE_STDARG) && !defined(MYSTICVIEW_NO_INLINE_STDARG)
#define MV_Create(arg1, arg2, ...) \
({ \
    IPTR __args[] = { AROS_PP_VARIADIC_CAST2IPTR(__VA_ARGS__) }; \
    MV_CreateA((arg1), (arg2), (struct TagItem *)__args); \
})
#endif /* !NO_INLINE_STDARG */

#define __MV_Delete_WB(__MysticBase, __arg1) \
        AROS_LC1NR(void, MV_Delete, \
                  AROS_LCA(APTR,(__arg1),A0), \
        struct Library *, (__MysticBase), 6, MysticView)

#define MV_Delete(arg1) \
    __MV_Delete_WB(MysticBase, (arg1))

#define __MV_SetAttrsA_WB(__MysticBase, __arg1, __arg2) \
        AROS_LC2NR(void, MV_SetAttrsA, \
                  AROS_LCA(APTR,(__arg1),A0), \
                  AROS_LCA(struct TagItem *,(__arg2),A1), \
        struct Library *, (__MysticBase), 7, MysticView)

#define MV_SetAttrsA(arg1, arg2) \
    __MV_SetAttrsA_WB(MysticBase, (arg1), (arg2))

#if !defined(NO_INLINE_STDARG) && !defined(MYSTICVIEW_NO_INLINE_STDARG)
#define MV_SetAttrs(arg1, ...) \
({ \
    IPTR __args[] = { AROS_PP_VARIADIC_CAST2IPTR(__VA_ARGS__) }; \
    MV_SetAttrsA((arg1), (struct TagItem *)__args); \
})
#endif /* !NO_INLINE_STDARG */

#define __MV_DrawOn_WB(__MysticBase, __arg1) \
        AROS_LC1(BOOL, MV_DrawOn, \
                  AROS_LCA(APTR,(__arg1),A0), \
        struct Library *, (__MysticBase), 8, MysticView)

#define MV_DrawOn(arg1) \
    __MV_DrawOn_WB(MysticBase, (arg1))

#define __MV_DrawOff_WB(__MysticBase, __arg1) \
        AROS_LC1NR(void, MV_DrawOff, \
                  AROS_LCA(APTR,(__arg1),A0), \
        struct Library *, (__MysticBase), 9, MysticView)

#define MV_DrawOff(arg1) \
    __MV_DrawOff_WB(MysticBase, (arg1))

#define __MV_Refresh_WB(__MysticBase, __arg1) \
        AROS_LC1NR(void, MV_Refresh, \
                  AROS_LCA(APTR,(__arg1),A0), \
        struct Library *, (__MysticBase), 10, MysticView)

#define MV_Refresh(arg1) \
    __MV_Refresh_WB(MysticBase, (arg1))

#define __MV_GetAttrsA_WB(__MysticBase, __arg1, __arg2) \
        AROS_LC2NR(void, MV_GetAttrsA, \
                  AROS_LCA(APTR,(__arg1),A0), \
                  AROS_LCA(struct TagItem *,(__arg2),A1), \
        struct Library *, (__MysticBase), 11, MysticView)

#define MV_GetAttrsA(arg1, arg2) \
    __MV_GetAttrsA_WB(MysticBase, (arg1), (arg2))

#if !defined(NO_INLINE_STDARG) && !defined(MYSTICVIEW_NO_INLINE_STDARG)
#define MV_GetAttrs(arg1, ...) \
({ \
    IPTR __args[] = { AROS_PP_VARIADIC_CAST2IPTR(__VA_ARGS__) }; \
    MV_GetAttrsA((arg1), (struct TagItem *)__args); \
})
#endif /* !NO_INLINE_STDARG */

#define __MV_SetViewStart_WB(__MysticBase, __arg1, __arg2, __arg3) \
        AROS_LC3NR(void, MV_SetViewStart, \
                  AROS_LCA(APTR,(__arg1),A0), \
                  AROS_LCA(LONG,(__arg2),D0), \
                  AROS_LCA(LONG,(__arg3),D1), \
        struct Library *, (__MysticBase), 12, MysticView)

#define MV_SetViewStart(arg1, arg2, arg3) \
    __MV_SetViewStart_WB(MysticBase, (arg1), (arg2), (arg3))

#define __MV_SetViewRelative_WB(__MysticBase, __arg1, __arg2, __arg3) \
        AROS_LC3NR(void, MV_SetViewRelative, \
                  AROS_LCA(APTR,(__arg1),A0), \
                  AROS_LCA(LONG,(__arg2),D0), \
                  AROS_LCA(LONG,(__arg3),D1), \
        struct Library *, (__MysticBase), 13, MysticView)

#define MV_SetViewRelative(arg1, arg2, arg3) \
    __MV_SetViewRelative_WB(MysticBase, (arg1), (arg2), (arg3))

#define __MV_Lock_WB(__MysticBase, __arg1, __arg2) \
        AROS_LC2NR(void, MV_Lock, \
                  AROS_LCA(APTR,(__arg1),A0), \
                  AROS_LCA(BOOL,(__arg2),D0), \
        struct Library *, (__MysticBase), 14, MysticView)

#define MV_Lock(arg1, arg2) \
    __MV_Lock_WB(MysticBase, (arg1), (arg2))

#endif /* DEFINES_MYSTICVIEW_PROTOS_H*/
