1
0
mirror of https://github.com/VCMP-SqMod/SqMod.git synced 2024-11-08 16:57:16 +01:00
SqMod/modules/irc/Common.hpp
2018-01-28 23:13:41 +02:00

99 lines
3.1 KiB
C++

#ifndef _SQIRC_COMMON_HPP_
#define _SQIRC_COMMON_HPP_
// ------------------------------------------------------------------------------------------------
#include "Base/Utility.hpp"
// ------------------------------------------------------------------------------------------------
#include <libircclient.h>
#include <libirc_rfcnumeric.h>
// ------------------------------------------------------------------------------------------------
namespace SqMod {
/* ------------------------------------------------------------------------------------------------
* SOFTWARE INFORMATION
*/
#define SQIRC_NAME "Squirrel IRC Module"
#define SQIRC_AUTHOR "Sandu Liviu Catalin (S.L.C)"
#define SQIRC_COPYRIGHT "Copyright (C) 2018 Sandu Liviu Catalin"
#define SQIRC_HOST_NAME "SqModIRCHost"
#define SQIRC_VERSION 001
#define SQIRC_VERSION_STR "0.0.1"
#define SQIRC_VERSION_MAJOR 0
#define SQIRC_VERSION_MINOR 0
#define SQIRC_VERSION_PATCH 1
/* ------------------------------------------------------------------------------------------------
* Types of events that the session emits.
*/
enum SessionEvent
{
SET_CONNECT = 0,
SET_NICK,
SET_QUIT,
SET_JOIN,
SET_PART,
SET_MODE,
SET_UMODE,
SET_TOPIC,
SET_KICK,
SET_CHANNEL,
SET_PRIVMSG,
SET_NOTICE,
SET_CHANNELNOTICE,
SET_INVITE,
SET_CTCPREQ,
SET_CTCPREP,
SET_CTCPACTION,
SET_UNKNOWN,
SET_NUMERIC,
SET_DCCCHATREQ,
SET_DCCSENDREQ,
SET_MAX
};
/* ------------------------------------------------------------------------------------------------
* Forward declarations.
*/
class Session;
/* ------------------------------------------------------------------------------------------------
* Used by IRC as proxy to allocate memory if the requested size is larger than the common buffer.
*/
void * IrcAllocMem(size_t n);
/* ------------------------------------------------------------------------------------------------
* Release memory previously allocated with IrcAllocMem, only if necessary. Nasty but we'll try.
*/
void IrcFreeMem(void * p);
/* ------------------------------------------------------------------------------------------------
* Extract the name from the specified origin.
*/
SQInteger GetNick(HSQUIRRELVM vm);
/* ------------------------------------------------------------------------------------------------
* Extract the host from the specified origin.
*/
SQInteger GetHost(HSQUIRRELVM vm);
/* ------------------------------------------------------------------------------------------------
* Returns a new plain text message with stripped mIRC color codes.
*/
SQInteger StripColorFromMIRC(HSQUIRRELVM vm);
/* ------------------------------------------------------------------------------------------------
* Returns a new message with converted mIRC color codes and format options.
*/
SQInteger ConvertColorFromMIRC(HSQUIRRELVM vm);
/* ------------------------------------------------------------------------------------------------
* Returns a new message with converted color codes and format options.
*/
SQInteger ConvertColorToMIRC(HSQUIRRELVM vm);
} // Namespace:: SqMod
#endif // _SQIRC_COMMON_HPP_