home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Geek Gadgets 1
/
ADE-1.bin
/
ade-dist
/
at-inc-bin.lha
/
os-include
/
datatypes
/
datatypes.h
< prev
next >
Wrap
C/C++ Source or Header
|
1993-10-15
|
7KB
|
227 lines
#ifndef DATATYPES_DATATYPES_H
#define DATATYPES_DATATYPES_H
/*
** $VER: datatypes.h 39.6 (22.4.93)
** Includes Release 40.15
**
** (C) Copyright 1991-1993 Commodore-Amiga, Inc.
** All Rights Reserved
*/
/*****************************************************************************/
#ifndef EXEC_TYPES_H
#include <exec/types.h>
#endif
#ifndef EXEC_LISTS_H
#include <exec/lists.h>
#endif
#ifndef EXEC_NODES_H
#include <exec/nodes.h>
#endif
#ifndef EXEC_LIBRARIES_H
#include <exec/libraries.h>
#endif
#ifndef LIBRARIES_IFFPARSE_H
#include <libraries/iffparse.h>
#endif
#ifndef DOS_DOS_H
#include <dos/dos.h>
#endif
/*****************************************************************************/
#define ID_DTYP MAKE_ID('D','T','Y','P')
/*****************************************************************************/
#define ID_DTHD MAKE_ID('D','T','H','D')
struct DataTypeHeader
{
STRPTR dth_Name; /* Descriptive name of the data type */
STRPTR dth_BaseName; /* Base name of the data type */
STRPTR dth_Pattern; /* Match pattern for file name. */
WORD *dth_Mask; /* Comparision mask */
ULONG dth_GroupID; /* Group that the DataType is in */
ULONG dth_ID; /* ID for DataType (same as IFF FORM type) */
WORD dth_MaskLen; /* Length of comparision mask */
WORD dth_Pad; /* Unused at present (must be 0) */
UWORD dth_Flags; /* Flags */
UWORD dth_Priority; /* Priority */
};
#define DTHSIZE sizeof(struct DataTypeHeader)
/*****************************************************************************/
/* Basic type */
#define DTF_TYPE_MASK 0x000F
#define DTF_BINARY 0x0000
#define DTF_ASCII 0x0001
#define DTF_IFF 0x0002
#define DTF_MISC 0x0003
/* Set if case is important */
#define DTF_CASE 0x0010
/* Reserved for system use */
#define DTF_SYSTEM1 0x1000
/*****************************************************************************
*
* GROUP ID and ID
*
* This is used for filtering out objects that you don't want. For
* example, you could make a filter for the ASL file requester so
* that it only showed the files that were pictures, or even to
* narrow it down to only show files that were ILBM pictures.
*
* Note that the Group ID's are in lower case, and always the first
* four characters of the word.
*
* For ID's; If it is an IFF file, then the ID is the same as the
* FORM type. If it isn't an IFF file, then the ID would be the
* first four characters of name for the file type.
*
*****************************************************************************/
/* System file, such as; directory, executable, library, device, font, etc. */
#define GID_SYSTEM MAKE_ID ('s','y','s','t')
/* Formatted or unformatted text */
#define GID_TEXT MAKE_ID ('t','e','x','t')
/* Formatted text with graphics or other DataTypes */
#define GID_DOCUMENT MAKE_ID ('d','o','c','u')
/* Sound */
#define GID_SOUND MAKE_ID ('s','o','u','n')
/* Musical instruments used for musical scores */
#define GID_INSTRUMENT MAKE_ID ('i','n','s','t')
/* Musical score */
#define GID_MUSIC MAKE_ID ('m','u','s','i')
/* Still picture */
#define GID_PICTURE MAKE_ID ('p','i','c','t')
/* Animated picture */
#define GID_ANIMATION MAKE_ID ('a','n','i','m')
/* Animation with audio track */
#define GID_MOVIE MAKE_ID ('m','o','v','i')
/*****************************************************************************/
/* A code chunk contains an embedded executable that can be loaded
* with InternalLoadSeg. */
#define ID_CODE MAKE_ID('D','T','C','D')
/* DataTypes comparision hook context (Read-Only). This is the
* argument that is passed to a custom comparision routine. */
struct DTHookContext
{
/* Libraries that are already opened for your use */
struct Library *dthc_SysBase;
struct Library *dthc_DOSBase;
struct Library *dthc_IFFParseBase;
struct Library *dthc_UtilityBase;
/* File context */
BPTR dthc_Lock; /* Lock on the file */
struct FileInfoBlock *dthc_FIB; /* Pointer to a FileInfoBlock */
BPTR dthc_FileHandle; /* Pointer to the file handle (may be NULL) */
struct IFFHandle *dthc_IFF; /* Pointer to an IFFHandle (may be NULL) */
STRPTR dthc_Buffer; /* Buffer */
ULONG dthc_BufferLength; /* Length of the buffer */
};
/*****************************************************************************/
#define ID_TOOL MAKE_ID('D','T','T','L')
struct Tool
{
UWORD tn_Which; /* Which tool is this */
UWORD tn_Flags; /* Flags */
STRPTR tn_Program; /* Application to use */
};
#define TSIZE sizeof(struct Tool)
/* defines for tn_Which */
#define TW_INFO 1
#define TW_BROWSE 2
#define TW_EDIT 3
#define TW_PRINT 4
#define TW_MAIL 5
/* defines for tn_Flags */
#define TF_LAUNCH_MASK 0x000F
#define TF_SHELL 0x0001
#define TF_WORKBENCH 0x0002
#define TF_RX 0x0003
/*****************************************************************************/
#define ID_TAGS MAKE_ID('D','T','T','G')
/*****************************************************************************/
#ifndef DATATYPE
#define DATATYPE
struct DataType
{
struct Node dtn_Node1; /* Reserved for system use */
struct Node dtn_Node2; /* Reserved for system use */
struct DataTypeHeader *dtn_Header; /* Pointer to the DataTypeHeader */
struct List dtn_ToolList; /* List of tool nodes */
STRPTR dtn_FunctionName; /* Name of comparision routine */
struct TagItem *dtn_AttrList; /* Object creation tags */
ULONG dtn_Length; /* Length of the memory block */
};
#endif
#define DTNSIZE sizeof(struct DataType)
/*****************************************************************************/
struct ToolNode
{
struct Node tn_Node; /* Embedded node */
struct Tool tn_Tool; /* Embedded tool */
ULONG tn_Length; /* Length of the memory block */
};
#define TNSIZE sizeof(struct ToolNode)
/*****************************************************************************/
#ifndef ID_NAME
#define ID_NAME MAKE_ID('N','A','M','E')
#endif
/*****************************************************************************/
/* text ID's */
#define DTERROR_UNKNOWN_DATATYPE 2000
#define DTERROR_COULDNT_SAVE 2001
#define DTERROR_COULDNT_OPEN 2002
#define DTERROR_COULDNT_SEND_MESSAGE 2003
/* new for V40 */
#define DTERROR_COULDNT_OPEN_CLIPBOARD 2004
#define DTERROR_Reserved 2005
#define DTERROR_UNKNOWN_COMPRESSION 2006
#define DTERROR_NOT_ENOUGH_DATA 2007
#define DTERROR_INVALID_DATA 2008
/* Offset for types */
#define DTMSG_TYPE_OFFSET 2100
/*****************************************************************************/
#endif /* DATATYPES_DATATYPES_H */