diff -r 1b6a71cb9fbe trunk/dc-plugin-sdk/Examples/C++-Skeleton/projects/vs2012/Plugin.vcxproj --- a/trunk/dc-plugin-sdk/Examples/C++-Skeleton/projects/vs2012/Plugin.vcxproj Sat Feb 28 14:44:16 2015 +0100 +++ b/trunk/dc-plugin-sdk/Examples/C++-Skeleton/projects/vs2012/Plugin.vcxproj Sun May 03 14:56:13 2015 +0200 @@ -163,6 +163,7 @@ + @@ -178,6 +179,7 @@ + diff -r 1b6a71cb9fbe trunk/dc-plugin-sdk/Examples/C++-Skeleton/projects/vs2012/Plugin.vcxproj.filters --- a/trunk/dc-plugin-sdk/Examples/C++-Skeleton/projects/vs2012/Plugin.vcxproj.filters Sat Feb 28 14:44:16 2015 +0100 +++ b/trunk/dc-plugin-sdk/Examples/C++-Skeleton/projects/vs2012/Plugin.vcxproj.filters Sun May 03 14:56:13 2015 +0200 @@ -60,6 +60,9 @@ Source Files\Plugin SDK + + Source Files\Plugin SDK + @@ -107,6 +110,9 @@ Header Files\Plugin SDK + + Header Files\Plugin SDK + diff -r 1b6a71cb9fbe trunk/dc-plugin-sdk/Libraries/dcapi/Hooks.cpp --- a/trunk/dc-plugin-sdk/Libraries/dcapi/Hooks.cpp Sat Feb 28 14:44:16 2015 +0100 +++ b/trunk/dc-plugin-sdk/Libraries/dcapi/Hooks.cpp Sun May 03 14:56:13 2015 +0200 @@ -142,6 +142,12 @@ return f(reinterpret_cast(pObject), reinterpret_cast(pData), bBreak); }); } +void Hooks::DataAccessor::onHTTPFileNotification(function f) { + addEvent(HOOK_DATAACESSOR_HTTP_FILE_NOTIFICATION, [f](dcptr_t pFile, dcptr_t pData, bool& bBreak) { + return f(reinterpret_cast(pFile), reinterpret_cast(pData), bBreak); + }); +} + bool Hooks::empty() { return events.empty(); } diff -r 1b6a71cb9fbe trunk/dc-plugin-sdk/Libraries/dcapi/Hooks.hpp --- a/trunk/dc-plugin-sdk/Libraries/dcapi/Hooks.hpp Sat Feb 28 14:44:16 2015 +0100 +++ b/trunk/dc-plugin-sdk/Libraries/dcapi/Hooks.hpp Sun May 03 14:56:13 2015 +0200 @@ -97,6 +97,11 @@ static void onChatCommandPM(function f); }; + struct DataAccessor + { + static void onHTTPFileNotification(function f); + }; + static bool empty(); static void clear(); static void remove(const char* id); diff -r 1b6a71cb9fbe trunk/dc-plugin-sdk/Libraries/dcapi/PluginDefs.h --- a/trunk/dc-plugin-sdk/Libraries/dcapi/PluginDefs.h Sat Feb 28 14:44:16 2015 +0100 +++ b/trunk/dc-plugin-sdk/Libraries/dcapi/PluginDefs.h Sun May 03 14:56:13 2015 +0200 @@ -82,6 +82,9 @@ #define DCINTF_DCPP_UI "dcpp.ui.DCUI" /* User interface */ #define DCINTF_DCPP_UI_VER 1 +#define DCINTF_DCPP_DATAACCESSOR "dcpp.dataaccessor.DCDataAccess" /* Data access */ +#define DCINTF_DCPP_DATAACCESSOR_VER 1 + /* Hook GUID's for Hooks (events) system */ #define HOOK_CHAT_IN "dcpp.chat.onIncomingChat" /* Incoming chat from hub (obj: HubData) */ #define HOOK_CHAT_OUT "dcpp.chat.onOutgoingChat" /* Outgoing chat (obj: HubData) */ @@ -114,6 +117,8 @@ #define HOOK_UI_CHAT_COMMAND "dcpp.ui.onChatCommand" /* Client side commands in hub chat (obj: HubData; data: CommandData) */ #define HOOK_UI_CHAT_COMMAND_PM "dcpp.ui.onChatCommandPM" /* Client side commands in private chat (obj: UserData; data: CommandData) */ +#define HOOK_DATAACESSOR_HTTP_FILE_NOTIFICATION "dcpp.dataaccessor.onHTTPFileNotification" /* Notification that transfer has completed or failed */ + /* Main hook events (returned by pluginInit) */ typedef enum tagPluginState { ON_INSTALL = 0, /* Replaces ON_LOAD for the very first loading of the plugin */ @@ -291,6 +296,11 @@ uint32_t apiVersion; } DCInterface, *DCInterfacePtr; +typedef struct { + const void* pData; + uint64_t size; +} DataArray, *DataArrayPtr; + /* Core plugin system */ typedef struct tagDCCore { /* Core API version */ @@ -459,6 +469,16 @@ void (DCAPI *notify) (const char* title, const char* message); } DCUI, *DCUIPtr; +/* Data access */ +typedef struct DCDataAccess { + uint32_t apiVersion; + + void (DCAPI *get_http_file) (const char* uri, const char* localPath); + + DataArrayPtr (DCAPI *copy) (const DataArrayPtr hItem); + void (DCAPI *release) (DataArrayPtr hCopy); +} DCDataAcess, *DCDataAccessPtr; + #ifdef __cplusplus } #endif diff -r 1b6a71cb9fbe trunk/dc-plugin-sdk/Libraries/dcapi/projects/vs2012/dcapi.vcxproj --- a/trunk/dc-plugin-sdk/Libraries/dcapi/projects/vs2012/dcapi.vcxproj Sat Feb 28 14:44:16 2015 +0100 +++ b/trunk/dc-plugin-sdk/Libraries/dcapi/projects/vs2012/dcapi.vcxproj Sun May 03 14:56:13 2015 +0200 @@ -166,6 +166,7 @@ + @@ -178,6 +179,7 @@ + diff -r 1b6a71cb9fbe trunk/dc-plugin-sdk/Libraries/dcapi/projects/vs2012/dcapi.vcxproj.filters --- a/trunk/dc-plugin-sdk/Libraries/dcapi/projects/vs2012/dcapi.vcxproj.filters Sat Feb 28 14:44:16 2015 +0100 +++ b/trunk/dc-plugin-sdk/Libraries/dcapi/projects/vs2012/dcapi.vcxproj.filters Sun May 03 14:56:13 2015 +0200 @@ -45,6 +45,9 @@ Source Files + + Source Files + @@ -80,5 +83,8 @@ Header Files + + Header Files + \ No newline at end of file