linuxdcpp-team team mailing list archive
-
linuxdcpp-team team
-
Mailing list archive
-
Message #06224
[Branch ~dcplusplus-team/dcplusplus/trunk] Rev 3103: Plugins: fix abstraction problem in queue api and calling convention for DCUI.add_command callback
------------------------------------------------------------
revno: 3103
committer: crise <crise@xxxxxxxxxx>
branch nick: trunk
timestamp: Fri 2012-11-02 00:13:45 +0200
message:
Plugins: fix abstraction problem in queue api and calling convention for DCUI.add_command callback
modified:
dcpp/PluginApiImpl.cpp
dcpp/PluginApiImpl.h
dcpp/PluginDefs.h
win32/PluginApiImpl.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 'dcpp/PluginApiImpl.cpp'
--- dcpp/PluginApiImpl.cpp 2012-10-29 18:19:03 +0000
+++ dcpp/PluginApiImpl.cpp 2012-11-01 22:13:45 +0000
@@ -144,7 +144,9 @@
&PluginApiImpl::setPriority,
&PluginApiImpl::copyData,
- &PluginApiImpl::releaseData
+ &PluginApiImpl::releaseData,
+
+ &PluginApiImpl::pause
};
DCUtils PluginApiImpl::dcUtils = {
@@ -543,6 +545,14 @@
reinterpret_cast<QueueItem*>(qi->object)->setPriority(static_cast<QueueItem::Priority>(priority));
}
+Bool PluginApiImpl::pause(QueueDataPtr qi) {
+ auto item = reinterpret_cast<QueueItem*>(qi->object);
+ bool paused = (item->getPriority() == QueueItem::PAUSED);
+
+ item->setPriority(paused ? QueueItem::DEFAULT : QueueItem::PAUSED);
+ return (!paused ? True : False);
+}
+
QueueDataPtr PluginApiImpl::copyData(const QueueDataPtr qi) {
QueueDataPtr copy = (QueueDataPtr)malloc(sizeof(QueueData));
memcpy(copy, qi, sizeof(QueueData));
=== modified file 'dcpp/PluginApiImpl.h'
--- dcpp/PluginApiImpl.h 2012-10-29 18:19:03 +0000
+++ dcpp/PluginApiImpl.h 2012-11-01 22:13:45 +0000
@@ -94,7 +94,7 @@
static void DCAPI addTag(TagDataPtr hTags, size_t start, size_t end, const char* id, const char* attributes);
// Functions for DCUI - the host has to define these
- static void DCAPI addCommand(const char* name, void (*command)());
+ static void DCAPI addCommand(const char* name, DCCommandFunc command);
static void DCAPI removeCommand(const char* name);
static void DCAPI playSound(const char* path);
@@ -107,6 +107,8 @@
static void DCAPI setPriority(QueueDataPtr qi, QueuePrio priority);
+ static Bool DCAPI pause(QueueDataPtr qi);
+
// Functions for DCHub
static HubDataPtr DCAPI addHub(const char* url, const char* nick, const char* password);
static HubDataPtr DCAPI findHub(const char* url);
=== modified file 'dcpp/PluginDefs.h'
--- dcpp/PluginDefs.h 2012-10-29 18:19:03 +0000
+++ dcpp/PluginDefs.h 2012-11-01 22:13:45 +0000
@@ -63,7 +63,7 @@
#define DCINTF_DCPP_HUBS_VER 1
#define DCINTF_DCPP_QUEUE "dcpp.queue.DCQueue" /* Download Queue */
-#define DCINTF_DCPP_QUEUE_VER 1
+#define DCINTF_DCPP_QUEUE_VER 2
#define DCINTF_DCPP_UTILS "dcpp.utils.DCUtils" /* Utility and convenience functions */
#define DCINTF_DCPP_UTILS_VER 1
@@ -144,8 +144,7 @@
typedef enum tagQueuePrio {
PRIO_DEFAULT = -1,
- PRIO_PAUSED = 0,
- PRIO_LOWEST,
+ PRIO_LOWEST = 1,
PRIO_LOW,
PRIO_NORMAL,
PRIO_HIGH,
@@ -390,6 +389,9 @@
QueueDataPtr (DCAPI *copy) (const QueueDataPtr hItem);
void (DCAPI *release) (QueueDataPtr hCopy);
+
+ /* Version 2 functions */
+ Bool (DCAPI *pause) (QueueDataPtr hItem);
} DCQueue, *DCQueuePtr;
/* Utility and convenience functions */
@@ -416,11 +418,13 @@
} DCTagger, *DCTaggerPtr;
/* User interface */
+typedef void (DCAPI* DCCommandFunc) ();
+
typedef struct DCUI {
/* User interface API version */
uint32_t apiVersion;
- void (DCAPI *add_command) (const char* name, void (*command)());
+ void (DCAPI *add_command) (const char* name, DCCommandFunc command);
void (DCAPI *remove_command) (const char* name);
void (DCAPI *play_sound) (const char* path);
=== modified file 'win32/PluginApiImpl.cpp'
--- win32/PluginApiImpl.cpp 2012-10-29 18:19:03 +0000
+++ win32/PluginApiImpl.cpp 2012-11-01 22:13:45 +0000
@@ -30,7 +30,7 @@
namespace dcpp {
// Functions for DCUI
-void PluginApiImpl::addCommand(const char* name, void (*command)()) {
+void PluginApiImpl::addCommand(const char* name, DCCommandFunc command) {
MainWindow::addPluginCommand(Text::toT(name), command);
}