------------------------------------------------------------ revno: 3132 committer: poy <p...@123gen.com> 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>
_______________________________________________ Mailing list: https://launchpad.net/~linuxdcpp-team Post to : linuxdcpp-team@lists.launchpad.net Unsubscribe : https://launchpad.net/~linuxdcpp-team More help : https://help.launchpad.net/ListHelp