mirror of
https://github.com/openmoh/openmohaa.git
synced 2025-04-28 13:47:58 +03:00
210 lines
3.4 KiB
C
210 lines
3.4 KiB
C
/*
|
|
gpiTransfer.h
|
|
GameSpy Presence SDK
|
|
Dan "Mr. Pants" Schoenblum
|
|
|
|
Copyright 1999-2007 GameSpy Industries, Inc
|
|
|
|
devsupport@gamespy.com
|
|
|
|
***********************************************************************
|
|
Please see the GameSpy Presence SDK documentation for more information
|
|
**********************************************************************/
|
|
|
|
#ifndef _GPITRANSFER_H_
|
|
#define _GPITRANSFER_H_
|
|
|
|
//INCLUDES
|
|
//////////
|
|
#include "gpi.h"
|
|
|
|
//DEFINES
|
|
/////////
|
|
#define GPI_FILE_DIRECTORY (1 << 1)
|
|
#define GPI_FILE_SKIP (1 << 2)
|
|
#define GPI_FILE_FAILED (1 << 3)
|
|
#define GPI_FILE_COMPLETED (1 << 4)
|
|
#define GPI_FILE_CONFIRMING (1 << 5)
|
|
|
|
#define GPI_ACCEPTED 0
|
|
#define GPI_REJECTED 1
|
|
#define GPI_NOT_ACCEPTING 2
|
|
|
|
#define GPI_SKIP_READ_ERROR 0
|
|
#define GPI_SKIP_WRITE_ERROR 1
|
|
#define GPI_SKIP_USER_SKIP 2
|
|
|
|
//TYPES
|
|
///////
|
|
typedef enum
|
|
{
|
|
GPITransferPinging,
|
|
GPITransferWaiting,
|
|
GPITransferTransferring,
|
|
GPITransferComplete,
|
|
GPITransferCancelled,
|
|
GPITransferNoConnection
|
|
} GPITransferState;
|
|
|
|
typedef struct GPITransferID_s
|
|
{
|
|
int profileid;
|
|
unsigned int count;
|
|
unsigned int time;
|
|
} GPITransferID;
|
|
|
|
typedef struct
|
|
{
|
|
GPITransferState state;
|
|
DArray files;
|
|
GPITransferID transferID;
|
|
int localID;
|
|
GPIBool sender;
|
|
GPProfile profile;
|
|
GPIPeer * peer;
|
|
int currentFile;
|
|
int throttle;
|
|
char * baseDirectory;
|
|
unsigned long lastSend;
|
|
char * message;
|
|
int totalSize;
|
|
int progress;
|
|
void * userData;
|
|
} GPITransfer;
|
|
|
|
typedef struct
|
|
{
|
|
char * path;
|
|
char * name;
|
|
|
|
#ifdef GSI_UNICODE
|
|
unsigned short* name_W; // must have this since developers are given pointers to internal memory
|
|
unsigned short* path_W;
|
|
#endif
|
|
|
|
int progress;
|
|
int size;
|
|
int acknowledged;
|
|
FILE * file;
|
|
int flags;
|
|
gsi_time modTime;
|
|
MD5_CTX md5;
|
|
int reason;
|
|
} GPIFile;
|
|
|
|
//FUNCTIONS
|
|
///////////
|
|
#ifndef NOFILE
|
|
GPResult gpiInitTransfers(
|
|
GPConnection * connection
|
|
);
|
|
|
|
void gpiCleanupTransfers(
|
|
GPConnection * connection
|
|
);
|
|
|
|
GPResult gpiProcessTransfers
|
|
(
|
|
GPConnection * connection
|
|
);
|
|
|
|
GPResult gpiNewSenderTransfer
|
|
(
|
|
GPConnection * connection,
|
|
GPITransfer ** transfer,
|
|
GPProfile profile
|
|
);
|
|
|
|
void gpiFreeTransfer
|
|
(
|
|
GPConnection * connection,
|
|
GPITransfer * transfer
|
|
);
|
|
|
|
void gpiCancelTransfer
|
|
(
|
|
GPConnection * connection,
|
|
GPITransfer * transfer
|
|
);
|
|
|
|
void gpiTransferError
|
|
(
|
|
GPConnection * connection,
|
|
const GPITransfer * transfer
|
|
);
|
|
|
|
GPITransfer * gpiFindTransferByLocalID
|
|
(
|
|
GPConnection * connection,
|
|
int localID
|
|
);
|
|
|
|
int gpiGetTransferLocalIDByIndex
|
|
(
|
|
GPConnection * connection,
|
|
int index
|
|
);
|
|
|
|
GPIFile * gpiAddFileToTransfer
|
|
(
|
|
GPITransfer * transfer,
|
|
const char * path,
|
|
const char * name
|
|
);
|
|
|
|
void gpiSkipFile
|
|
(
|
|
GPConnection * connection,
|
|
GPITransfer * transfer,
|
|
int file,
|
|
int reason
|
|
);
|
|
|
|
void gpiSkipCurrentFile
|
|
(
|
|
GPConnection * connection,
|
|
GPITransfer * transfer,
|
|
int reason
|
|
);
|
|
|
|
GPIBool gpiGetTransferFileInfo
|
|
(
|
|
FILE * file,
|
|
int * size,
|
|
gsi_time * modTime
|
|
);
|
|
|
|
void gpiTransferPeerDestroyed
|
|
(
|
|
GPConnection * connection,
|
|
GPIPeer * peer
|
|
);
|
|
|
|
void gpiTransfersHandlePong
|
|
(
|
|
GPConnection * connection,
|
|
GPProfile profile,
|
|
GPIPeer * peer
|
|
);
|
|
#endif
|
|
|
|
GPResult gpiSendTransferReply
|
|
(
|
|
GPConnection * connection,
|
|
const GPITransferID * transferID,
|
|
GPIPeer * peer,
|
|
int result,
|
|
const char * message
|
|
);
|
|
|
|
void gpiHandleTransferMessage
|
|
(
|
|
GPConnection * connection,
|
|
GPIPeer * peer,
|
|
int type,
|
|
const char * headers,
|
|
const char * buffer,
|
|
int len
|
|
);
|
|
|
|
#endif
|