/*
** Upload Header
*/

#include <sys/types.h>
#include <libraries/dos.h>

#include "include/napster.h"
#include "include/thread.h"

#ifndef AMSTER_UPLOAD_H
#define AMSTER_UPLOAD_H

extern int ul_count;

#define UPLOAD_OPEN       0x1301
#define UPLOAD_CLOSE      0x1302
#define UPLOAD_UPDATE     0x1303
#define UPLOAD_CPS        0x1304
#define UPLOAD_ADD        0x1305
#define UPLOAD_START      0x1306
#define UPLOAD_ABORT      0x1308
#define UPLOAD_INFO       0x1309
#define UPLOAD_CLEANUP    0x1310

/* Public */

extern MUIF ul_dispatch(REG(a0) struct IClass *cl,REG(a2) Object *obj,REG(a1) Msg msg);
extern void ul_addq(song s);
extern void ul_startq(char *title, char *user, u_long ip, int port, int link);

/* Private */

void ul_startq2(struct TransferData *data, char *title, char *user, u_long ip, int port);
void ul_abort(struct TransferData *data);
void ul_handlemsg(thread t, int com, APTR data);
__asm __saveds void UploadThread(void);


#endif	/* AMSTER_UPLOAD_H */
