summaryrefslogtreecommitdiff
path: root/libresourceqt
diff options
context:
space:
mode:
Diffstat (limited to 'libresourceqt')
-rw-r--r--libresourceqt/libresourceqt.pro2
-rw-r--r--libresourceqt/libresourceqt1.pc2
-rw-r--r--libresourceqt/src/resource-engine.cpp9
-rw-r--r--libresourceqt/src/resource-engine.h3
-rw-r--r--libresourceqt/src/resource-set.cpp2
5 files changed, 13 insertions, 5 deletions
diff --git a/libresourceqt/libresourceqt.pro b/libresourceqt/libresourceqt.pro
index f8ef8d8..01cbca5 100644
--- a/libresourceqt/libresourceqt.pro
+++ b/libresourceqt/libresourceqt.pro
@@ -23,7 +23,7 @@ QMAKE_CXXFLAGS += -Wall
LIBS += -L$${LIBDBUSQEVENTLOOP}/build -ldbus-qeventloop
OBJECTS_DIR = build
-MOC_DIR = build
+MOC_DIR = moc
CONFIG += qt link_pkgconfig dll
QT = core
diff --git a/libresourceqt/libresourceqt1.pc b/libresourceqt/libresourceqt1.pc
index 9ebe09a..e99b543 100644
--- a/libresourceqt/libresourceqt1.pc
+++ b/libresourceqt/libresourceqt1.pc
@@ -5,7 +5,7 @@ includedir=${prefix}/include/resource/qt4
Name: libresourceqt1
Description: Maemo resource management Qt API
-Version: 1.2
+Version: 1.6
Libs: -L${libdir} -lresourceqt
Cflags: -I${includedir}
Requires: dbus-1 libdbus-qeventloop1
diff --git a/libresourceqt/src/resource-engine.cpp b/libresourceqt/src/resource-engine.cpp
index 929db17..93df853 100644
--- a/libresourceqt/src/resource-engine.cpp
+++ b/libresourceqt/src/resource-engine.cpp
@@ -4,6 +4,7 @@
using namespace ResourcePolicy;
resconn_t *ResourceEngine::libresourceConnection = NULL;
+quint32 ResourceEngine::libresourceUsers = 0;
static inline quint32 allResourcesToBitmask(const ResourceSet *resourceSet);
static inline quint32 optionalResourcesToBitmask(const ResourceSet *resourceSet);
@@ -29,8 +30,10 @@ ResourceEngine::ResourceEngine(ResourceSet *resourceSet)
ResourceEngine::~ResourceEngine()
{
- if (libresourceSet != NULL)
+ libresourceUsers--;
+ if (libresourceUsers == 0) {
libresourceSet->userdata = NULL;
+ }
//need to destroy all libresource structures, but how?
}
@@ -56,10 +59,14 @@ bool ResourceEngine::initialize()
if (ResourceEngine::libresourceConnection == NULL) {
return NULL;
}
+ ResourceEngine::libresourceUsers = 1;
resproto_set_handler(ResourceEngine::libresourceConnection, RESMSG_UNREGISTER, handleUnregisterMessage);
resproto_set_handler(ResourceEngine::libresourceConnection, RESMSG_GRANT, handleGrantMessage);
resproto_set_handler(ResourceEngine::libresourceConnection, RESMSG_ADVICE, handleAdviceMessage);
}
+ else {
+ ResourceEngine::libresourceUsers += 1;
+ }
qDebug("ResourceEngine (%p) is now initialized.", this);
return true;
diff --git a/libresourceqt/src/resource-engine.h b/libresourceqt/src/resource-engine.h
index 8c27a45..c7c9090 100644
--- a/libresourceqt/src/resource-engine.h
+++ b/libresourceqt/src/resource-engine.h
@@ -48,7 +48,6 @@ public:
void handleError(quint32 requestNo, qint32 code, const char *message);
quint32 id();
- static resconn_t *libresourceConnection;
signals:
void resourcesBecameAvailable(quint32 bitmaskOfAvailableResources);
@@ -68,6 +67,8 @@ private:
quint32 requestId;
QMap<quint32, resmsg_type_t> messageMap;
quint32 connectionMode;
+ static quint32 libresourceUsers;
+ static resconn_t *libresourceConnection;
};
}
diff --git a/libresourceqt/src/resource-set.cpp b/libresourceqt/src/resource-set.cpp
index b7a302b..d28eb79 100644
--- a/libresourceqt/src/resource-set.cpp
+++ b/libresourceqt/src/resource-set.cpp
@@ -20,7 +20,7 @@ ResourceSet::~ResourceSet()
}
if(resourceEngine != NULL) {
resourceEngine->disconnect(this);
- //resourceEngine->disconnectFromManager();
+ resourceEngine->disconnectFromManager();
delete resourceEngine;
}
}