summaryrefslogtreecommitdiff
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
parent0936f0e39b1775c1a9df1f5dc3433ebe58b669ef (diff)
Branch up to date with metadata_v1 branch.
-rw-r--r--plugingui/Makefile.am2
-rw-r--r--plugingui/Makefile.am.plugingui1
-rw-r--r--plugingui/plugingui.cc67
-rw-r--r--plugingui/plugingui.h3
-rw-r--r--src/drumgizmo.cc7
-rw-r--r--src/drumkit.h12
-rw-r--r--src/drumkitparser.h12
-rw-r--r--src/message.h10
8 files changed, 89 insertions, 25 deletions
diff --git a/plugingui/Makefile.am b/plugingui/Makefile.am
index bdb11cb..29e51ae 100644
--- a/plugingui/Makefile.am
+++ b/plugingui/Makefile.am
@@ -37,6 +37,7 @@ EXTRA_DIST = \
label.h \
led.h \
lineedit.h \
+ textedit.h \
listbox.h \
listboxbasic.h \
listboxthin.h \
@@ -57,4 +58,3 @@ EXTRA_DIST = \
widget.h \
window.h \
lodepng/lodepng.h
-
diff --git a/plugingui/Makefile.am.plugingui b/plugingui/Makefile.am.plugingui
index b1698e4..cb9b6f0 100644
--- a/plugingui/Makefile.am.plugingui
+++ b/plugingui/Makefile.am.plugingui
@@ -26,6 +26,7 @@ PLUGIN_GUI_SOURCES = \
$(top_srcdir)/plugingui/listboxthin.cc \
$(top_srcdir)/plugingui/listboxbasic.cc \
$(top_srcdir)/plugingui/knob.cc \
+ $(top_srcdir)/plugingui/textedit.cc \
$(top_srcdir)/plugingui/filebrowser.cc \
$(top_srcdir)/plugingui/directory.cc \
$(top_srcdir)/plugingui/pluginconfig.cc \
diff --git a/plugingui/plugingui.cc b/plugingui/plugingui.cc
index 5408334..71ee37a 100644
--- a/plugingui/plugingui.cc
+++ b/plugingui/plugingui.cc
@@ -203,7 +203,6 @@ void PluginGUI::stopThread()
}
}
-
void PluginGUI::handleMessage(Message *msg)
{
GUI::Painter p(window);// Make sure we only redraw buffer one time.
@@ -230,6 +229,51 @@ void PluginGUI::handleMessage(Message *msg)
}
}
break;
+ case Message::DrumkitInfoMessage:
+ {
+ DrumkitInfoMessage *dim = (DrumkitInfoMessage*)msg;
+ MetaData m = dim->metadata;
+
+ std::string metadatatext;
+ metadatatext.append(m.name + " v. " + m.version + "\n");
+ metadatatext.append(m.author + "\n");
+ metadatatext.append(m.email + "\n");
+ metadatatext.append(m.website + "\n\n");
+
+ metadatatext.append(m.description + "\n");
+ metadatatext.append(m.notes + "\n\n");
+
+ metadatatext.append("Channels:\n");
+ std::vector<std::pair< std::string, std::string> >::iterator channels_it;
+
+ int count = 1;
+ for(channels_it = m.channels.begin(); channels_it != m.channels.end();
+ channels_it++) {
+ std::string name = channels_it->first;
+ std::string microphone = channels_it->second;
+
+ char buf[4];
+ snprintf(buf, 4, "%d", count);
+ std::string count_str(buf);
+
+ metadatatext.append("\t"+ count_str + ". " + name + ": " + microphone + "\n");
+ count++;
+ }
+
+ metadatatext.append("\n\n");
+
+ metadatatext.append("Instruments:\n");
+ std::vector<std::pair< std::string, std::string> >::iterator instruments_it;
+ for(instruments_it = m.instruments.begin(); instruments_it != m.instruments.end();
+ instruments_it++) {
+ std::string name = instruments_it->first;
+ std::string microphone = instruments_it->second;
+ metadatatext.append("\t" + name + ": " + microphone + "\n");
+ }
+
+ drumkitinfo->setText(metadatatext);
+ }
+ break;
case Message::EngineSettingsMessage:
{
EngineSettingsMessage *settings = (EngineSettingsMessage *)msg;
@@ -310,7 +354,9 @@ void PluginGUI::init()
window->eventHandler()->registerCloseHandler(closeEventHandler,
(void*)&closing);
- window->setFixedSize(370, 330);
+#define WINDOWXSIZE 670
+#define WINDOWYSIZE 330
+ window->setFixedSize(WINDOWXSIZE, WINDOWYSIZE);
window->setCaption("DrumGizmo v"VERSION);
GUI::Label *lbl_title = new GUI::Label(window);
@@ -320,7 +366,7 @@ void PluginGUI::init()
GUI::VerticalLine *l1 = new GUI::VerticalLine(window);
l1->move(20, 30);
- l1->resize(window->width() - 40, 2);
+ l1->resize(window->width() - 300 - 40, 2);
#define OFFSET1 17
#define OFFSET2 38
@@ -440,15 +486,12 @@ void PluginGUI::init()
lbl_version->setText(".::. v"VERSION" .::. http://www.drumgizmo.org .::. GPLv3 .::.");
lbl_version->move(16, 300);
lbl_version->resize(window->width(), 20);
- /*
- {
- GUI::ComboBox *cmb = new GUI::ComboBox(window);
- cmb->addItem("Foo", "Bar");
- cmb->addItem("Hello", "World");
- cmb->move(10,10);
- cmb->resize(70, 30);
- }
- */
+
+ drumkitinfo = new GUI::TextEdit(window);
+ drumkitinfo->move(370, 25);
+ drumkitinfo->resize(288, 292);
+ drumkitinfo->setText("Hello World\ten\tto\ttre fire fem seks syv otte ni ti elleve tolv tretten\n\nHej med dig jeg har lavet dette widget og det opfører sig egentlig ganske fint\n\n\nni \n\nti elleve tolv \n\nTEST TEST TEST@\n\ntretten fjorten femten \n\nseksten sytten atten nitten \nHello World\nHello World\naaaaaaa\nbbbbbbbbb\ncccccccccc\ndddddddd\neeeeeeeee\nfffffffffff\nggggggggg\nasdasdasdasd\nasd\n");
+
// Create filebrowser
filebrowser = new GUI::FileBrowser(window);
filebrowser->move(0, 0);
diff --git a/plugingui/plugingui.h b/plugingui/plugingui.h
index 39643e1..506cc68 100644
--- a/plugingui/plugingui.h
+++ b/plugingui/plugingui.h
@@ -37,6 +37,7 @@
#include "knob.h"
#include "progressbar.h"
#include "pluginconfig.h"
+#include "textedit.h"
#include "filebrowser.h"
@@ -81,6 +82,8 @@ public:
GUI::LineEdit *lineedit2;
GUI::ProgressBar *progress2;
+ GUI::TextEdit *drumkitinfo;
+
Config *config;
void (*windowClosedHandler)(void *);
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; }