From 56ff045cd148c3b8b09f154d1b0fd7bfc95606ac Mon Sep 17 00:00:00 2001 From: Jonas Suhr Christensen Date: Sat, 14 Mar 2015 14:50:22 +0100 Subject: Branch up to date with metadata_v1 branch. --- src/drumgizmo.cc | 7 +++++++ src/drumkit.h | 12 ++++++++++++ src/drumkitparser.h | 12 ------------ src/message.h | 10 ++++++++++ 4 files changed, 29 insertions(+), 12 deletions(-) (limited to 'src') 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 +#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 > channels; // name, microphone + std::vector > 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 > channels; // title, microphone - std::vector > 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 +#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; } -- cgit v1.2.3