/*
** Preferences Header
*/

#include <sys/types.h>

#include "include/mui.h"

#ifndef AMSTER_PREFS_H
#define AMSTER_PREFS_H

extern struct prefsdata *prf;

struct prefsdata {
	/* user */
	char *user;
	char *pass;
	char *dlpath;
	char *email;
	int link;
	int regflag;
	/* options */
	int clrlist;
	int fullpath;
	int autocon;
	int askfile;
	int autoadd;
	int autosave;
	int NameLength;
	/* arexx */
	char *scripts[8];
	char *sounds[8];
	/* advanced */
	char *mainserver;
	char *server;
	char *napvers;
	int port;
	int DownloadQueueLimit;
	int DownloadTaskPri;
	int UploadQueueLimit;
	int UploadTaskPri;
	int QueueRetries;
	int QueueDelay;
	/* startup */
	int noiconpanel;
	int lamps;
	int ServerList;
	/* search */
	int speedqual, speedval;
	int bitratequal, bitrateval;
	int freqqual, freqval;
	int max;
};

enum {
	PRFE_STARTUP,
	PRFE_EXIT,
	PRFE_CONNECT,
	PRFE_DISCONNECT,
	PRFE_DLFINISH,
	PRFE_ULFINISH,
	PRFE_DLERROR,
	PRFE_PLAYMP3
};

struct prfdata {
	u_long *UserString, *PasswordString, *EMailString, *DownloadPathString, *LinkSpeedCycle;
	u_long *ClearListToggle, *AutoConnectToggle, *AskFileToggle, *AutoAddToggle, *AutoSaveToggle, *CM_ServerList;
	u_long *CY_ServerList, *LampCycle, *ST_NameLength;
	u_long *EventList, *EventScriptString, *EventSoundString;
	u_long *MetaServerString, *ServerString, *PortString, *FirewallToggle;
	u_long *DownloadQueueSlider, *UploadQueueSlider;
	u_long *DownloadPriSlider, *UploadPriSlider;
	u_long *ST_QueueRetries, *ST_QueueDelay;
/*	u_long *VersionString;*/
	int lastitem;
};

struct QueueData
{
	char buf[21];
};

MUIF prf_dispatch(REG(a0) struct IClass *cl,REG(a2) Object *obj,REG(a1) Msg msg);

#define PRF_OPEN       0x2001
#define PRF_CANCEL     0x2002
#define PRF_USE        0x2003
#define PRF_SAVE       0x2004
#define PRF_UPDATE     0x2005
#define PRF_SAVEALL    0x2006
#define PRF_TESTSND    0x2007
#define PRF_FIREWALL   0x2008
#define PRF_ENTRY      0x2009
#define PRF_LASTSAVED  0x2010
#define PRF_VALIDDELAY 0x2011

extern BOOL prf_load(char *fname);
extern void prf_save(char *fname);
extern void prf_setup(int argc, char *argv[]);
extern void prf_event(int no);

#define PRF_DEFAULT_PORT 6699


#endif	/* AMSTER_PREFS_H */
