61a1f0baf1
Now an add-on can contain multiple protocols, and the protocol API has changed. An add-on must now export protocol_count() and protocol_at(), with the latter replacing protocol(). protocol_count() returning the amount of protocols in a given add-on, and protocol_at(i) giving a new CayaProtocol* "at" the given index. CayaProtocol has also been changed, adding Signature(), FriendlySignature(), Icon(), Path(), and SetPath(). The reasoning is that different protocols (even within a single add-on) will have different signatures and icons, so this data should be accessible from the protocol itself. CayaProtocolAddOn now has CountProtocols() and ProtocolAt(i), allowing the accessing of multiple protocols. A CayaProtocolAddOn can be given a default protocol index in the constructor, whose protocol will be returned with Protocol(). Version() was also moved from CayaProtocol to CayaProtocolAddOn.
66 lines
989 B
C++
66 lines
989 B
C++
/*
|
|
* Copyright 2010, Pier Luigi Fiorini. All rights reserved.
|
|
* Distributed under the terms of the GPL v2 License.
|
|
*
|
|
* Authors:
|
|
* Pier Luigi Fiorini, pierluigi.fiorini@gmail.com
|
|
*/
|
|
|
|
#include <BeBuild.h>
|
|
|
|
#include "FacebookProtocol.h"
|
|
#include "GoogleTalkProtocol.h"
|
|
#include "JabberProtocol.h"
|
|
|
|
|
|
extern "C" _EXPORT CayaProtocol* protocol_at(int32 i);
|
|
extern "C" _EXPORT int32 protocol_count();
|
|
extern "C" _EXPORT const char* signature();
|
|
extern "C" _EXPORT const char* friendly_signature();
|
|
extern "C" _EXPORT uint32 version();
|
|
|
|
|
|
CayaProtocol*
|
|
protocol_at(int32 i)
|
|
{
|
|
switch(i) {
|
|
case 0:
|
|
return (CayaProtocol*)new JabberProtocol();
|
|
case 1:
|
|
return (CayaProtocol*)new FacebookProtocol();
|
|
case 2:
|
|
return (CayaProtocol*)new GoogleTalkProtocol();
|
|
}
|
|
return NULL;
|
|
}
|
|
|
|
|
|
int32
|
|
protocol_count()
|
|
{
|
|
return 3;
|
|
}
|
|
|
|
|
|
const char*
|
|
signature()
|
|
{
|
|
return "jabber";
|
|
}
|
|
|
|
|
|
const char*
|
|
friendly_signature()
|
|
{
|
|
return "Jabber";
|
|
}
|
|
|
|
|
|
uint32
|
|
version()
|
|
{
|
|
return CAYA_VERSION_1_PRE_ALPHA_1;
|
|
}
|
|
|
|
|