summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJonas Suhr Christensen <jsc@umbraculum.org>2015-03-14 14:50:22 +0100
committerJonas Suhr Christensen <jsc@umbraculum.org>2015-03-14 14:50:22 +0100
commit56ff045cd148c3b8b09f154d1b0fd7bfc95606ac (patch)
tree0055a6fe61ae018ea4448bb2217e5229de739e37 /src
parent0936f0e39b1775c1a9df1f5dc3433ebe58b669ef (diff)
Branch up to date with metadata_v1 branch.
Diffstat (limited to 'src')
-rw-r--r--src/drumgizmo.cc7
-rw-r--r--src/drumkit.h12
-rw-r--r--src/drumkitparser.h12
-rw-r--r--src/message.h10
4 files changed, 29 insertions, 12 deletions
diff --git a/src/drumgizmo.cc b/src/drumgizmo.cc
index 6fd454e..279b0b7 100644
--- a/src/drumgizmo.cc
+++ b/src/drumgizmo.cc
@@ -38,6 +38,7 @@
#include <config.h>
+#include "drumkit.h"
#include "drumkitparser.h"
#include "audioinputenginemidi.h"
#include "configuration.h"
@@ -74,6 +75,12 @@ bool DrumGizmo::loadkit(std::string file)
return false;
}
+ loader.metadata = parser.getMetaData();
+
+ DrumkitInfoMessage *msg = new DrumkitInfoMessage();
+ msg->metadata = loader.metadata;
+ msghandler.sendMessage(MSGRCV_UI, msg);
+
loader.loadKit(&kit);
#ifdef WITH_RESAMPLER
diff --git a/src/drumkit.h b/src/drumkit.h
index 04b2c56..c5015b9 100644
--- a/src/drumkit.h
+++ b/src/drumkit.h
@@ -34,6 +34,18 @@
#include "instrument.h"
#include "versionstr.h"
+struct MetaData {
+ std::string version;
+ std::string name;
+ std::string description;
+ std::string notes;
+ std::string author;
+ std::string email;
+ std::string website;
+ std::vector<std::pair< std::string, std::string> > channels; // name, microphone
+ std::vector<std::pair< std::string, std::string> > instruments; // name, microphone
+};
+
class DrumKitParser;
class DrumKit {
friend class DrumKitParser;
diff --git a/src/drumkitparser.h b/src/drumkitparser.h
index 8237cd5..20e1cdb 100644
--- a/src/drumkitparser.h
+++ b/src/drumkitparser.h
@@ -30,18 +30,6 @@
#include "saxparser.h"
#include "drumkit.h"
-struct MetaData {
- std::string version;
- std::string title;
- std::string description;
- std::string notes;
- std::string author;
- std::string email;
- std::string website;
- std::vector<std::pair< std::string, std::string> > channels; // title, microphone
- std::vector<std::pair< std::string, std::string> > instruments; // title, microphone
-};
-
class DrumKitParser : public SAXParser {
public:
DrumKitParser(const std::string &kitfile, DrumKit &kit);
diff --git a/src/message.h b/src/message.h
index 07b0300..b9d05f9 100644
--- a/src/message.h
+++ b/src/message.h
@@ -29,6 +29,8 @@
#include <string>
+#include "drumkit.h"
+
class MessageHandler;
class Message {
@@ -43,6 +45,7 @@ public:
LoadMidimap, // Signal engine to load midimap.
EngineSettingsMessage, // Request or receive engine settings.
ChangeSettingMessage, // Update named setting in engine.
+ DrumkitInfoMessage // Drumkit meta data
} type_t;
typedef enum {
@@ -83,6 +86,13 @@ public:
std::string midimapfile;
};
+class DrumkitInfoMessage : public Message {
+ public:
+ type_t type() { return Message::DrumkitInfoMessage; }
+ MetaData metadata;
+};
+
+
class EngineSettingsMessage : public Message {
public:
type_t type() { return Message::EngineSettingsMessage; }