/*
 *      $VER: codecbase.h 1.0 (24.1.99)
 *
 *      definition of ClassBase
 *
 *      (C) Copyright 1999 Marcel de Wit
 *      All Rights Reserved.
 */

#ifndef LIBRARIES_CODECS_H
#define LIBRARIES_CODECS_H

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

#ifndef DOS_DOS_H
#include <dos/dos.h>
#endif

#ifndef INTUITION_CLASSES_H
#include <intuition/classes.h>
#endif

#ifndef CODECS_CODEC_H
#include <codecs/codec.h>
#endif

#define CODECS_NAME "codecs.library"

typedef struct {

    Object                   *cd_CodecObject;
    struct CodecClassLibrary *cd_CodecClassBase;

} Codec;

#define TAG_CODECS     0x40000000L

/* General codec attributes */
#define CA_SRC_HANDLE  (TAG_USER + TAG_CODECS + 0)
#define CA_DST_HANDLE  (TAG_USER + TAG_CODECS + 1)
#define CA_SRC_TYPE    (TAG_USER + TAG_CODECS + 0)
#define CA_DST_TYPE    (TAG_USER + TAG_CODECS + 1)
#define CA_SRC_SIZE    (TAG_USER + TAG_CODECS + 2)
#define CA_DST_SIZE    (TAG_USER + TAG_CODECS + 3)

/* Image codec specific */
#define CA_IMAGEWIDTH  (TAG_USER + TAG_CODECS + 100)
#define CA_IMAGEHEIGHT (TAG_USER + TAG_CODECS + 101)
#define CA_IMAGEDEPTH  (TAG_USER + TAG_CODECS + 102)

/* Codec source/destination types */
#define TYPE_RAM       (0)
#define TYPE_DOSHANDLE (1) /* Not supported yet */
#define TYPE_IFFHANDLE (2) /* Not supported yet */
#define TYPE_BUFFER    (3) /* Not supported yet */
#define TYPE_HOOK      (4) /* Not supported yet */
#define TYPE_BITMAP    (5)


#endif /* LIBRARIES_CODECS_H */
