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); +            } +      } + | 
