summaryrefslogtreecommitdiff
path: root/src/resource-factory.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/resource-factory.cpp')
-rw-r--r--src/resource-factory.cpp26
1 files changed, 26 insertions, 0 deletions
diff --git a/src/resource-factory.cpp b/src/resource-factory.cpp
new file mode 100644
index 0000000..03566e2
--- /dev/null
+++ b/src/resource-factory.cpp
@@ -0,0 +1,26 @@
+#include "resource-factory.h"
+#include "libplayback-wrapper.h"
+
+ResourceFactory::ResourceFactory(QObject *parent)
+ : QObject(parent), sessionBusConnection(QDBusConnection::sessionBus())
+{
+}
+
+ResourceFactory::~ResourceFactory()
+{
+}
+
+Resource * ResourceFactory::createResource(enum ResourceClass type, quint16 usageFlags)
+{
+ Resource *resource = new Resource(type, usageFlags, this);
+ ResourceLibrary *libPlayback = new LibPlaybackWrapper(resource);
+
+ bool resourceProperlyInitialized = resource->initialize(libPlayback);
+ if(resourceProperlyInitialized) {
+ return resource;
+ }
+ else {
+ delete resource;
+ return NULL;
+ }
+}