#ifndef LIBRARIES_AML_H
#define LIBRARIES_AML_H
/*
** $VER: aml.h 44.1 (19.10.1999)
** Includes Release 44.1
**
** AML library structures and constants
**
** (C) Copyright 1999 Amiga, Inc.
** All Rights Reserved
*/
/*****************************************************************************/
#ifndef EXEC_TYPES_H
#include <exec/types.h>
#endif
#ifndef EXEC_NODES_H
#include <exec/nodes.h>
#endif
#ifndef UTILITY_TAGITEM_H
#include <utility/tagitem.h>
#endif
/*****************************************************************************/
#define AmlName "aml.library"
#define AML_TB (TAG_USER+0x80000)
/*****************************************************************************/
/* Server Attribute Tags
*/
#define SERVERA_Dummy (TAG_USER+0x100)
#define SERVERA_HostName (SERVERA_Dummy+0)
#define SERVERA_HostPort (SERVERA_Dummy+1)
#define SERVERA_Directory (SERVERA_Dummy+2)
#define SERVERA_UserName (SERVERA_Dummy+3)
#define SERVERA_PassWord (SERVERA_Dummy+4)
#define SERVERA_Type (SERVERA_Dummy+5)
#define SERVERA_Flags (SERVERA_Dummy+6)
#define SERVERA_Socket (SERVERA_Dummy+7)
#define SERVERA_UserData (SERVERA_Dummy+8)
#define SERVERA_ProgressHook (SERVERA_Dummy+9)
#define SERVERA_SpoolFile (SERVERA_Dummy+10)
#define SERVERA_NewsGroup (SERVERA_Dummy+11)
#define SERVERA_LogFile (SERVERA_Dummy+12)
#define SERVERA_MaxSize (SERVERA_Dummy+13)
#define SERVERA_MaxLines (SERVERA_Dummy+14)
#define SERVERA_MaxWarning (SERVERA_Dummy+15)
/* Values for SERVERA_Type
*/
#define SVRTYPE_SMTP (0) /* sending data via smtp */
#define SVRTYPE_POP3 (1) /* pop retrieval and local folders */
#define SVRTYPE_IMAP (2) /* unsupported */
#define SVRTYPE_NNTP (3) /* unsupported */
#define SVRTYPE_LDAP (4) /* unsupported */
#define SVRTYPE_FILE (5) /* For address/file "servers" */
/* Structure used for progress callbacks.
*/
struct ServerProgressData
{
ULONG spd_Type;
ULONG spd_Action;
ULONG spd_Flags;
/* X of Y progress */
ULONG spd_Current;
ULONG spd_Total;
/* (sub) progress on each of X thru Y */
ULONG spd_CSize;
ULONG spd_TSize;
};
/* Values for spd_Type
*/
#define SPDT_SERVER (0)
#define SPDT_FOLDER (1)
#define SPDT_ARTICLE (2)
#define SPDT_PART (3)
#define SPDT_ADDRESS (4)
#define SPDT_DECODER (5)
/* Values for spd_Action
*/
#define SPDA_ERROR (~0)
#define SPDA_NONE (0)
#define SPDA_SCANINDEX (1)
#define SPDA_EDITINDEX (2)
#define SPDA_DELETE (3)
#define SPDA_PARSING (4)
#define SPDA_POPGET (5)
#define SPDA_SMTPSEND (6)
#define SPDA_DECODING (7)
#define SPDA_CONNECT (8)
#define SPDA_DISCONNECT (9)
#define SPDA_SENDPASS (10)
#define SPDA_SENDUSER (11)
/* Flags for spd_Flags
*/
#define SPDF_INITIAL (1 << 0)
#define SPDF_UPDATE (1 << 1)
#define SPDF_END (1 << 2)
#define SPDF_STATUS (1 << 3)
/* Structure for article retrieval folder routing callback.
*/
struct ArticleDisposition
{
APTR ad_Article;
APTR ad_Folder;
ULONG ad_MsgSize;
ULONG ad_MsgNumber;
ULONG ad_MsgTotal;
};
/* Flags for GetServerArticles()
*/
#define GSAF_DELETE (1)
#define GSAF_SPOOL (2)
#define GSAF_STATUS (4)
/*****************************************************************************/
/* Folder Attribute Tags
*/
#define FOLDERA_Dummy (TAG_USER+0x200)
#define FOLDERA_Path (FOLDERA_Dummy+0)
#define FOLDERA_Name (FOLDERA_Dummy+1)
#define FOLDERA_DefaultName (FOLDERA_Dummy+2)
#define FOLDERA_SpoolFile (FOLDERA_Dummy+3)
#define FOLDERA_MsgCount (FOLDERA_Dummy+4)
#define FOLDERA_Flags (FOLDERA_Dummy+5)
#define FOLDERA_Accessed (FOLDERA_Dummy+6)
#define FOLDERA_Created (FOLDERA_Dummy+7)
#define FOLDERA_UserData (FOLDERA_Dummy+8)
#define FOLDERA_FirstMsgID (FOLDERA_Dummy+9)
#define FOLDERA_LastMsgID (FOLDERA_Dummy+10)
#define FOLDERA_LastRead (FOLDERA_Dummy+11)
#define FOLDERA_NumRead (FOLDERA_Dummy+12)
/* Values for FOLDERA_DefaultName
*/
#define FOLDER_DEF_INBOX (0)
#define FOLDER_DEF_OUTBOX (1)
#define FOLDER_DEF_TRASH (2)
#define FOLDER_DEF_DRAFTS (3)
#define FOLDER_DEF_SAVED (4)
#define FOLDER_DEF_SPOOL (5)
/* Folder indexing public data structure.
*/
struct FolderIndex
{
ULONG fi_Number;
ULONG fi_Status;
ULONG fi_Size;
ULONG fi_Date;
UBYTE fi_From[64];
UBYTE fi_To[64];
UBYTE fi_Subject[128];
};
/* Flags for FolderIndex.fi_Status and ARTICLEA_Status
*/
#define STATUS_UNREAD (1L << 1)
#define STATUS_REPLIED (1L << 2)
#define STATUS_EDITED (1L << 3)
#define STATUS_FORWARD (1L << 4)
#define STATUS_DELETED (1L << 5)
#define STATUS_SAVED (1L << 6)
#define STATUS_NEW (1L << 7)
#define STATUS_MARKED (1L << 8)
#define STATUS_MUNREAD (1L << 9)
#define STATUS_UUCODE (1L << 10)
#define STATUS_SECURE (1L << 11)
#define STATUS_AUTH (1L << 12)
#define STATUS_BOUNCED (1L << 13)
/* Field Identifiers for SortFolderIndex()
*/
#define FIELD_NUMBER 0
#define FIELD_TO 1
#define FIELD_SUBJECT 2
#define FIELD_FROM 3
#define FIELD_SIZE 4
#define FIELD_DATE 5
#define FIELD_THREAD 6
/*****************************************************************************/
/* Article Attribute Tags
*/
#define ARTICLEA_Dummy (TAG_USER+0x300)
#define ARTICLEA_To (ARTICLEA_Dummy+0)
#define ARTICLEA_Cc (ARTICLEA_Dummy+1)
#define ARTICLEA_Bcc (ARTICLEA_Dummy+2)
#define ARTICLEA_From (ARTICLEA_Dummy+3)
#define ARTICLEA_ReplyTo (ARTICLEA_Dummy+4)
#define ARTICLEA_Date (ARTICLEA_Dummy+5)
#define ARTICLEA_DateVal (ARTICLEA_Dummy+6)
#define ARTICLEA_Subject (ARTICLEA_Dummy+7)
#define ARTICLEA_ContentEncoding (ARTICLEA_Dummy+8)
#define ARTICLEA_ContentType (ARTICLEA_Dummy+9)
#define ARTICLEA_ContentSubType (ARTICLEA_Dummy+10)
#define ARTICLEA_ContentTypeParams (ARTICLEA_Dummy+11)
#define ARTICLEA_Flags (ARTICLEA_Dummy+12)
#define ARTICLEA_Status ARTICLEA_Flags
#define ARTICLEA_XFace (ARTICLEA_Dummy+13)
#define ARTICLEA_MessageID (ARTICLEA_Dummy+14)
#define ARTICLEA_Reference (ARTICLEA_Dummy+15)
#define ARTICLEA_Groups (ARTICLEA_Dummy+16) /* NNTP NEWS ONLY */
#define ARTICLEA_UserData (ARTICLEA_Dummy+17)
#define ARTICLEA_ReturnReceipt (ARTICLEA_Dummy+18)
#define ARTICLEA_SigFile (ARTICLEA_Dummy+19)
#define ARTICLEA_CustomHeaders (ARTICLEA_Dummy+20)
#define ARTICLEA_NumParts (ARTICLEA_Dummy+21)
#define ARTICLEA_Organization (ARTICLEA_Dummy+22)
#define ARTICLEA_Number (ARTICLEA_Dummy+23)
#define PARTA_Name (ARTICLEA_Dummy+50)
#define PARTA_ContentType (ARTICLEA_Dummy+51)
#define PARTA_ContentSubType (ARTICLEA_Dummy+52)
#define PARTA_ContentTypeParams (ARTICLEA_Dummy+53)
#define PARTA_Flags (ARTICLEA_Dummy+54)
#define PARTA_ContentEncoding (ARTICLEA_Dummy+55)
#define PARTA_DataFilename (ARTICLEA_Dummy+56)
#define PARTA_DataFile (ARTICLEA_Dummy+57)
#define PARTA_DataString (ARTICLEA_Dummy+58)
#define PARTA_DataBuffer (ARTICLEA_Dummy+59)
#define PARTA_DataLength (ARTICLEA_Dummy+60)
#define PARTA_ContentDesc (ARTICLEA_Dummy+61)
/* Values for AddFolderArticle(..., type, ...);
*/
#define ARTICLE_TYPE_FILE (0)
#define ARTICLE_TYPE_ARTICLE (1)
#define ARTICLE_TYPE_BUFFER (2)
/*****************************************************************************/
/* Address Attribute Tags
*/
#define ADDRESSA_Dummy (TAG_USER+0x400)
#define ADDRESSA_Name (ADDRESSA_Dummy+0)
#define ADDRESSA_Address (ADDRESSA_Dummy+1)
#define ADDRESSA_City (ADDRESSA_Dummy+2)
#define ADDRESSA_State (ADDRESSA_Dummy+3)
#define ADDRESSA_Zip (ADDRESSA_Dummy+4)
#define ADDRESSA_Country (ADDRESSA_Dummy+5)
#define ADDRESSA_Phone (ADDRESSA_Dummy+6)
#define ADDRESSA_Fax (ADDRESSA_Dummy+7)
#define ADDRESSA_Comments (ADDRESSA_Dummy+8)
#define ADDRESSA_Group (ADDRESSA_Dummy+9)
#define ADDRESSA_Flags (ADDRESSA_Dummy+10)
#define ADDRESSA_URL (ADDRESSA_Dummy+11)
#define ADDRESSA_EMail (ADDRESSA_Dummy+12)
#define ADDRESSA_UserData (ADDRESSA_Dummy+13)
#define ADDRESSA_PartialMatch (ADDRESSA_Dummy+14)
#define ADDRESSA_ICQ (ADDRESSA_Dummy+15)
#define ADDRESSA_FTP (ADDRESSA_Dummy+16)
#define ADDRESSA_Company (ADDRESSA_Dummy+17)
#define ADDRESSA_JobTitle (ADDRESSA_Dummy+18)
#define ADDRESSA_MobilePhone (ADDRESSA_Dummy+19)
#define ADDRESSA_ImageFile (ADDRESSA_Dummy+20)
#define ADDRESSA_EntryType (ADDRESSA_Dummy+21)
#define ADDRESSA_EntryID (ADDRESSA_Dummy+22)
#define ADDRESSA_EntryGeneration (ADDRESSA_Dummy+23)
/* ADDRESSA_EntryType (defaults to ENTRY_USER)
*/
#define ENTRY_USER (1)
#define ENTRY_WWW (2)
#define ENTRY_FTP (3)
#define ENTRY_CHAT (4)
#define ENTRY_GROUP (5)
/*****************************************************************************/
/* Decoder tags
*/
#define DECODERA_Dummy (TAG_USER+0x500)
#define DECODERA_SourceFile (DECODERA_Dummy+1)
#define DECODERA_SourceHandle (DECODERA_Dummy+3)
#define DECODERA_SourceBuffer (DECODERA_Dummy+5)
#define DECODERA_SourceLen (DECODERA_Dummy+7)
#define DECODERA_DestFile (DECODERA_Dummy+2)
#define DECODERA_DestHandle (DECODERA_Dummy+4)
#define DECODERA_DestBuffer (DECODERA_Dummy+6)
#define DECODERA_DestLen (DECODERA_Dummy+8)
#define DECODERA_Lines (DECODERA_Dummy+9)
#define DECODERA_Flags (DECODERA_Dummy+10)
#define DECODERA_Boundary (DECODERA_Dummy+11)
/* Values for DECODERA_Flags
*/
#define DECF_USEBOUNDARY (1L << 0)
/* En/decoding type values.
*/
#define DECODE_ERROR (-1)
#define DECODE_COPY (0)
#define DECODE_QP (1)
#define DECODE_B64 (2)
#define DECODE_UU (3)
#define DECODE_HEX (6)
#define DECODE_ROT (7)
#define ENCODE_ERROR (-1)
#define ENCODE_COPY (0)
#define ENCODE_QP (1)
#define ENCODE_B64 (2)
#define ENCODE_UU (3)
#define ENCODE_8BIT (4)
#define ENCODE_7BIT (5)
#define ENCODE_HEX (6)
#define ENCODE_ROT (7)
/*****************************************************************************/
#endif /* LIBRARIES_AML_H */