linuxdcpp-team team mailing list archive
-
linuxdcpp-team team
-
Mailing list archive
-
Message #06275
[Branch ~dcplusplus-team/dcplusplus/trunk] Rev 3132: update the test plugin
------------------------------------------------------------
revno: 3132
committer: poy <poy@xxxxxxxxxx>
branch nick: trunk
timestamp: Sun 2012-11-11 18:07:47 +0100
message:
update the test plugin
modified:
plugins/Test/Plugin.cpp
plugins/Test/Plugin.h
plugins/Test/pluginsdk.cpp
--
lp:dcplusplus
https://code.launchpad.net/~dcplusplus-team/dcplusplus/trunk
Your team Dcplusplus-team is subscribed to branch lp:dcplusplus.
To unsubscribe from this branch go to https://code.launchpad.net/~dcplusplus-team/dcplusplus/trunk/+edit-subscription
=== modified file 'plugins/Test/Plugin.cpp'
--- plugins/Test/Plugin.cpp 2012-11-08 12:41:54 +0000
+++ plugins/Test/Plugin.cpp 2012-11-11 17:07:47 +0000
@@ -21,34 +21,36 @@
#include <pluginsdk/Config.h>
#include <pluginsdk/Core.h>
+#include <pluginsdk/Hooks.h>
#include <pluginsdk/Logger.h>
+#include <pluginsdk/Tagger.h>
+#include <pluginsdk/UI.h>
#include <pluginsdk/Util.h>
using dcapi::Config;
using dcapi::Core;
+using dcapi::Hooks;
using dcapi::Logger;
+using dcapi::Tagger;
+using dcapi::UI;
using dcapi::Util;
-Plugin* Plugin::instance = nullptr;
-
Plugin::Plugin() {
}
Plugin::~Plugin() {
- for(auto& i: events)
- hooks->release_hook(i.second);
- events.clear();
+ Hooks::clear();
}
Bool DCAPI Plugin::main(PluginState state, DCCorePtr core, dcptr_t) {
+ static Plugin* instance;
+
switch(state) {
case ON_INSTALL:
case ON_LOAD:
{
- Bool res = True;
instance = new Plugin();
- instance->onLoad(core, (state == ON_INSTALL), res);
- return res;
+ return instance->onLoad(core, state == ON_INSTALL) ? True : False;
}
case ON_UNINSTALL:
@@ -66,17 +68,11 @@
}
}
-void Plugin::onLoad(DCCorePtr core, bool install, Bool& loadRes) {
- hooks = reinterpret_cast<DCHooksPtr>(core->query_interface(DCINTF_HOOKS, DCINTF_HOOKS_VER));
-
- tagger = reinterpret_cast<DCTaggerPtr>(core->query_interface(DCINTF_DCPP_TAGGER, DCINTF_DCPP_TAGGER_VER));
- ui = reinterpret_cast<DCUIPtr>(core->query_interface(DCINTF_DCPP_UI, DCINTF_DCPP_UI_VER));
-
- if(!Util::init(core) || !Config::init(core) || !Logger::init(core) || !hooks || !tagger || !ui) {
- loadRes = False;
- return;
- }
+bool Plugin::onLoad(DCCorePtr core, bool install) {
Core::init(core);
+ if(!Config::init() || !Hooks::init() || !Logger::init() || !Tagger::init() || !UI::init() || !Util::init()) {
+ return false;
+ }
if(install) {
Logger::log("The test plugin has been installed.");
@@ -84,23 +80,22 @@
Logger::log("Test plugin loaded, watch out!");
- events[HOOK_TIMER_SECOND] = hooks->bind_hook(HOOK_TIMER_SECOND, [](dcptr_t, dcptr_t pData, dcptr_t, Bool*) {
- return instance->onSecond(*reinterpret_cast<uint64_t*>(pData)); }, nullptr);
+ Hooks::Timer::onSecond([this](uint64_t tick, bool&) { return onSecond(tick); });
+ Hooks::UI::onChatTags([this](UserDataPtr, TagDataPtr tags, bool&) { return onUiChatTags(tags); });
- events[HOOK_UI_CHAT_TAGS] = hooks->bind_hook(HOOK_UI_CHAT_TAGS, [](dcptr_t, dcptr_t pData, dcptr_t, Bool*) {
- return instance->onUiChatTags(reinterpret_cast<TagDataPtr>(pData)); }, nullptr);
+ return true;
}
-Bool Plugin::onSecond(uint64_t tick) {
+bool Plugin::onSecond(uint64_t tick) {
static uint64_t prevTick = 0;
if(tick - prevTick >= 10*1000) {
prevTick = tick;
- ui->play_sound("Media\\tada.wav");
+ UI::handle()->play_sound("Media\\tada.wav");
}
- return False;
+ return false;
}
-Bool Plugin::onUiChatTags(TagDataPtr tags) {
+bool Plugin::onUiChatTags(TagDataPtr tags) {
// look for the pattern and make it bold.
const string pattern = "ABC DEF";
@@ -108,7 +103,7 @@
size_t start, end = 0;
while((start = text.find(pattern, end)) != string::npos) {
end = start + pattern.size();
- tagger->add_tag(tags, start, end, "b", "");
+ Tagger::handle()->add_tag(tags, start, end, "b", "");
}
- return False;
+ return false;
}
=== modified file 'plugins/Test/Plugin.h'
--- plugins/Test/Plugin.h 2012-11-05 20:39:11 +0000
+++ plugins/Test/Plugin.h 2012-11-11 17:07:47 +0000
@@ -16,8 +16,8 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
-#ifndef PLUGINS_DEV_PLUGIN_H
-#define PLUGINS_DEV_PLUGIN_H
+#ifndef PLUGINS_TEST_PLUGIN_H
+#define PLUGINS_TEST_PLUGIN_H
#include <map>
@@ -33,20 +33,9 @@
Plugin();
~Plugin();
- void onLoad(DCCorePtr core, bool install, Bool& loadRes);
- Bool onSecond(uint64_t tick);
- Bool onUiChatTags(TagDataPtr tags);
-
- map<string, subsHandle> events;
-
- DCHooksPtr hooks;
-
- DCTaggerPtr tagger;
- DCUIPtr ui;
-
- /** @todo switch to dcpp::Singleton when <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51494>
- is fixed */
- static Plugin* instance;
+ bool onLoad(DCCorePtr core, bool install);
+ bool onSecond(uint64_t tick);
+ bool onUiChatTags(TagDataPtr tags);
};
#endif
=== modified file 'plugins/Test/pluginsdk.cpp'
--- plugins/Test/pluginsdk.cpp 2012-11-04 19:15:24 +0000
+++ plugins/Test/pluginsdk.cpp 2012-11-11 17:07:47 +0000
@@ -5,5 +5,8 @@
#include <pluginsdk/Core.cpp>
#include <pluginsdk/Config.cpp>
+#include <pluginsdk/Hooks.cpp>
#include <pluginsdk/Logger.cpp>
+#include <pluginsdk/Tagger.cpp>
+#include <pluginsdk/UI.cpp>
#include <pluginsdk/Util.cpp>