Added AIM Protocol login / logout notifications, patch from Jeremiah Holt, Thanks\!.
This commit is contained in:
parent
c5f730a8b3
commit
267bc512a6
|
@ -61,6 +61,42 @@ AIMProtocol::Shutdown()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void
|
||||||
|
AIMProtocol::_NotifyProgress(const char* title, const char* message, float progress)
|
||||||
|
{
|
||||||
|
BMessage msg(IM_MESSAGE);
|
||||||
|
msg.AddInt32("im_what", IM_PROGRESS);
|
||||||
|
msg.AddString("title", title);
|
||||||
|
msg.AddString("message", message);
|
||||||
|
msg.AddFloat("progress", progress);
|
||||||
|
_SendMessage(&msg);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void
|
||||||
|
AIMProtocol::_Notify(notification_type type, const char* title, const char* message)
|
||||||
|
{
|
||||||
|
BMessage msg(IM_MESSAGE);
|
||||||
|
msg.AddInt32("im_what", IM_NOTIFICATION);
|
||||||
|
msg.AddInt32("type", (int32)type);
|
||||||
|
msg.AddString("title", title);
|
||||||
|
msg.AddString("message", message);
|
||||||
|
_SendMessage(&msg);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void
|
||||||
|
AIMProtocol::_SendMessage(BMessage* msg)
|
||||||
|
{
|
||||||
|
// Skip invalid messages
|
||||||
|
if (!msg)
|
||||||
|
return;
|
||||||
|
|
||||||
|
msg->AddString("protocol", kProtocolSignature);
|
||||||
|
gServerMsgr->SendMessage(msg);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
status_t
|
status_t
|
||||||
AIMProtocol::Process(BMessage* msg)
|
AIMProtocol::Process(BMessage* msg)
|
||||||
{
|
{
|
||||||
|
@ -257,6 +293,11 @@ AIMProtocol::A_LogOn()
|
||||||
B_LOW_PRIORITY, this);
|
B_LOW_PRIORITY, this);
|
||||||
resume_thread(fIMCommThread);
|
resume_thread(fIMCommThread);
|
||||||
|
|
||||||
|
BString content(fUsername);
|
||||||
|
content << " has logged in!";
|
||||||
|
_Notify(B_INFORMATION_NOTIFICATION, "Connected",
|
||||||
|
content.String());
|
||||||
|
|
||||||
fOnline = true;
|
fOnline = true;
|
||||||
|
|
||||||
return B_OK;
|
return B_OK;
|
||||||
|
@ -271,6 +312,10 @@ AIMProtocol::LogOff()
|
||||||
{
|
{
|
||||||
fOnline = false;
|
fOnline = false;
|
||||||
imcomm_delete_handle_now(fIMCommHandle);
|
imcomm_delete_handle_now(fIMCommHandle);
|
||||||
|
BString content(fUsername);
|
||||||
|
content << " has logged out!";
|
||||||
|
_Notify(B_INFORMATION_NOTIFICATION, "Disconnected",
|
||||||
|
content.String());
|
||||||
|
|
||||||
return B_OK;
|
return B_OK;
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,6 +8,7 @@
|
||||||
#include <List.h>
|
#include <List.h>
|
||||||
#include <Messenger.h>
|
#include <Messenger.h>
|
||||||
#include <String.h>
|
#include <String.h>
|
||||||
|
#include <Notification.h>
|
||||||
|
|
||||||
#include "CayaProtocol.h"
|
#include "CayaProtocol.h"
|
||||||
#include "CayaConstants.h"
|
#include "CayaConstants.h"
|
||||||
|
@ -59,6 +60,12 @@ private:
|
||||||
bool fOnline;
|
bool fOnline;
|
||||||
thread_id fIMCommThread;
|
thread_id fIMCommThread;
|
||||||
void* fIMCommHandle;
|
void* fIMCommHandle;
|
||||||
|
void _NotifyProgress(const char* title,
|
||||||
|
const char* message, float progress);
|
||||||
|
void _Notify(notification_type type,
|
||||||
|
const char* title, const char* message);
|
||||||
|
void _SendMessage(BMessage* msg);
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
extern const char* kProtocolSignature;
|
extern const char* kProtocolSignature;
|
||||||
|
|
Ŝarĝante…
Reference in New Issue