diff options
author | Robert Jonsson <spamatica@gmail.com> | 2011-03-07 19:01:11 +0000 |
---|---|---|
committer | Robert Jonsson <spamatica@gmail.com> | 2011-03-07 19:01:11 +0000 |
commit | e40fc849149dd97c248866a4a1d026dda5e57b62 (patch) | |
tree | b12b358f3b3a0608001d30403358f8443118ec5f /attic/muse2-oom/muse2/synti/fluid/fluidgui.cpp | |
parent | 1bd4f2e8d9745cabb667b043171cad22c8577768 (diff) |
clean3
Diffstat (limited to 'attic/muse2-oom/muse2/synti/fluid/fluidgui.cpp')
-rw-r--r-- | attic/muse2-oom/muse2/synti/fluid/fluidgui.cpp | 81 |
1 files changed, 81 insertions, 0 deletions
diff --git a/attic/muse2-oom/muse2/synti/fluid/fluidgui.cpp b/attic/muse2-oom/muse2/synti/fluid/fluidgui.cpp new file mode 100644 index 00000000..3ba70aff --- /dev/null +++ b/attic/muse2-oom/muse2/synti/fluid/fluidgui.cpp @@ -0,0 +1,81 @@ +//========================================================= +// MusE +// Linux Music Editor +// $Id: fluidgui.cpp,v 1.6.2.1 2009/08/12 20:47:01 spamatica Exp $ +// +// This is a simple GUI implemented with QT for +// fluid software synthesizer. +// +// (C) Copyright 2001-2004 Werner Schweer (ws@seh.de) +//========================================================= + +#include <unistd.h> +#include <stdlib.h> + +#include <QFileDialog> +#include <QFileInfo> +#include <QMessageBox> + +#include "fluidgui.h" +#include "muse/midi.h" +#include "muse/icons.h" + +//--------------------------------------------------------- +// FLUIDGui +//--------------------------------------------------------- + +FLUIDGui::FLUIDGui() + : QDialog(0, Qt::Window), MessGui() + { + setupUi(this); + fdialogButton->setIcon(QIcon(*openIcon)); + connect(fdialogButton, SIGNAL(clicked()), SLOT(soundFontFileDialog())); + connect(loadButton, SIGNAL(clicked()), SLOT(loadFont())); + + // work around for probable QT/WM interaction bug. + // for certain window managers, e.g xfce, this window is + // is displayed although not specifically set to show(); + // bug: 2811156 Softsynth GUI unclosable with XFCE4 (and a few others) + show(); + hide(); + } + +//--------------------------------------------------------- +// loadFont +// sysex f0 lenH lenM lenL 7c 00 01 name +//--------------------------------------------------------- + +void FLUIDGui::loadFont() + { + if (pathEntry->text().isEmpty()) + return; + QFileInfo fi(pathEntry->text()); + if (!fi.exists()) { + QString s = QString("SoundFont ") + pathEntry->text() + QString(" does not exists"); + QMessageBox::critical(this, tr("FLUID: open Soundfile"), s); + return; + } + QByteArray ba = pathEntry->text().toLatin1(); + const char* path = ba.constData(); + int len = strlen(path) + 1 + 3; + unsigned char buffer[len]; + int k = 0; + buffer[k++] = 0x7c; + buffer[k++] = 0x00; // fluid + buffer[k++] = 0x01; // load sound font + strcpy((char*)(&buffer[k]), path); + sendSysex(buffer, len); + } + +//--------------------------------------------------------- +// soundFontFileDialog +//--------------------------------------------------------- + +void FLUIDGui::soundFontFileDialog() + { + QString s = QFileDialog::getOpenFileName(this, QString(), QString(), QString("*.[Ss][Ff]2")); + if (!s.isEmpty()) { + pathEntry->setText(s); + } + } + |