[SCM] qsynth/master: Remove useless patch.
alessio at users.alioth.debian.org
alessio at users.alioth.debian.org
Sun Jul 10 09:31:25 UTC 2011
The following commit has been merged in the master branch:
commit a105a534a590864f7e928a6684dd09ecab7f979b
Author: Alessio Treglia <alessio at debian.org>
Date: Sun Jul 10 11:31:48 2011 +0200
Remove useless patch.
diff --git a/debian/patches/debian-changes-0.3.5-1 b/debian/patches/debian-changes-0.3.5-1
deleted file mode 100644
index 0cc95cf..0000000
--- a/debian/patches/debian-changes-0.3.5-1
+++ /dev/null
@@ -1,993 +0,0 @@
-Description: Upstream changes introduced in version 0.3.5-1
- This patch has been created by dpkg-source during the package build.
- Here's the last changelog entry, hopefully it gives details on why
- those changes were made:
- .
- qsynth (0.3.5-1) unstable; urgency=low
- .
- * New Upstream release.
- * Fix FTBFS with binutils-gold (Closes: #556306), add binutils-gold.patch.
- * Fix soundfont selection (Closes: #567565)
- - Add fluid-soundfont-gm as Recommend.
- - Add sounfont_dir_default.patch, let soundfont selection start in
- /usr/share/sound/sf2/.
- * Refresh desktop_categories.patch.
- .
- The person named in the Author field signed this changelog entry.
-Author: Xavier Oswald <xoswald at debian.org>
-Bug-Debian: http://bugs.debian.org/556306
-Bug-Debian: http://bugs.debian.org/567565
-
----
-The information above should follow the Patch Tagging Guidelines, please
-checkout http://dep.debian.net/deps/dep3/ to learn about the format. Here
-are templates for supplementary fields that you might want to add:
-
-Origin: <vendor|upstream|other>, <url of original patch>
-Bug: <url in upstream bugtracker>
-Bug-Debian: http://bugs.debian.org/<bugnumber>
-Forwarded: <no|not-needed|url proving that it has been forwarded>
-Reviewed-By: <name and email of someone who approved the patch>
-Last-Update: <YYYY-MM-DD>
-
---- /dev/null
-+++ qsynth-0.3.5/src/qsynthSetupForm.cpp.dpkg-orig
-@@ -0,0 +1,958 @@
-+// qsynthSetupForm.cpp
-+//
-+/****************************************************************************
-+ Copyright (C) 2003-2010, rncbc aka Rui Nuno Capela. All rights reserved.
-+
-+ This program is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU General Public License
-+ as published by the Free Software Foundation; either version 2
-+ of the License, or (at your option) any later version.
-+
-+ This program is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-+ GNU General Public License for more details.
-+
-+ You should have received a copy of the GNU General Public License along
-+ with this program; if not, write to the Free Software Foundation, Inc.,
-+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-+
-+*****************************************************************************/
-+
-+#include "qsynthAbout.h"
-+#include "qsynthSetupForm.h"
-+
-+#include "qsynthEngine.h"
-+
-+#include <QValidator>
-+#include <QHeaderView>
-+#include <QMessageBox>
-+#include <QFileDialog>
-+#include <QFontDialog>
-+#include <QFileInfo>
-+#include <QPixmap>
-+#include <QMenu>
-+
-+
-+// Our local parameter data struct.
-+struct qsynth_settings_data
-+{
-+ qsynthSetup *pSetup;
-+ QTreeWidget *pListView;
-+ QTreeWidgetItem *pListItem;
-+ QStringList options;
-+};
-+
-+static void qsynth_settings_foreach_option ( void *pvData, char *, char *pszOption )
-+{
-+ qsynth_settings_data *pData = (qsynth_settings_data *) pvData;
-+
-+ pData->options.append(pszOption);
-+}
-+
-+static void qsynth_settings_foreach ( void *pvData, char *pszName, int iType )
-+{
-+ qsynth_settings_data *pData = (qsynth_settings_data *) pvData;
-+ fluid_settings_t *pFluidSettings = (pData->pSetup)->fluid_settings();
-+
-+ // Add the new list item.
-+ int iCol = 0;
-+ pData->pListItem = new QTreeWidgetItem(pData->pListView, pData->pListItem);
-+ (pData->pListItem)->setText(iCol++, pszName);
-+
-+ // Check for type...
-+ QString qsType = "?";
-+ switch (iType) {
-+ case FLUID_NUM_TYPE: qsType = "num"; break;
-+ case FLUID_INT_TYPE: qsType = "int"; break;
-+ case FLUID_STR_TYPE: qsType = "str"; break;
-+ case FLUID_SET_TYPE: qsType = "set"; break;
-+ }
-+ (pData->pListItem)->setText(iCol++, qsType);
-+/*
-+ // Check for hints...
-+ int iHints = ::fluid_settings_get_hints(pFluidSettings, pszName);
-+ QString sHints = "";
-+ if (iHints & FLUID_HINT_BOUNDED_BELOW)
-+ sHints += " BOUNDED_BELOW ";
-+ if (iHints & FLUID_HINT_BOUNDED_ABOVE)
-+ sHints += " BOUNDED_ABOVE ";
-+ if (iHints & FLUID_HINT_TOGGLED)
-+ sHints += " TOGGLED ";
-+ if (iHints & FLUID_HINT_SAMPLE_RATE)
-+ sHints += " SAMPLE_RATE ";
-+ if (iHints & FLUID_HINT_LOGARITHMIC)
-+ sHints += " LOGARITHMIC ";
-+ if (iHints & FLUID_HINT_LOGARITHMIC)
-+ sHints += " INTEGER ";
-+ if (iHints & FLUID_HINT_FILENAME)
-+ sHints += " FILENAME ";
-+ if (iHints & FLUID_HINT_OPTIONLIST)
-+ sHints += " OPTIONLIST ";
-+*/
-+ bool bRealtime = (bool) ::fluid_settings_is_realtime(pFluidSettings, pszName);
-+ (pData->pListItem)->setText(iCol++, (bRealtime ? "yes" : "no"));
-+
-+ switch (iType) {
-+
-+ case FLUID_NUM_TYPE:
-+ {
-+ double fDefault = ::fluid_settings_getnum_default(pFluidSettings, pszName);
-+ double fCurrent = 0.0;
-+ double fRangeMin = 0.0;
-+ double fRangeMax = 0.0;
-+ ::fluid_settings_getnum(pFluidSettings, pszName, &fCurrent);
-+ ::fluid_settings_getnum_range(pFluidSettings, pszName, &fRangeMin, &fRangeMax);
-+ (pData->pListItem)->setText(iCol++, QString::number(fCurrent));
-+ (pData->pListItem)->setText(iCol++, QString::number(fDefault));
-+ (pData->pListItem)->setText(iCol++, QString::number(fRangeMin));
-+ (pData->pListItem)->setText(iCol++, QString::number(fRangeMax));
-+ break;
-+ }
-+
-+ case FLUID_INT_TYPE:
-+ {
-+ int iDefault = ::fluid_settings_getint_default(pFluidSettings, pszName);
-+ int iCurrent = 0;
-+ int iRangeMin = 0;
-+ int iRangeMax = 0;
-+ ::fluid_settings_getint(pFluidSettings, pszName, &iCurrent);
-+ ::fluid_settings_getint_range(pFluidSettings, pszName, &iRangeMin, &iRangeMax);
-+ if (iRangeMin + iRangeMax < 2) {
-+ iRangeMin = 0;
-+ iRangeMax = 1;
-+ }
-+ (pData->pListItem)->setText(iCol++, QString::number(iCurrent));
-+ (pData->pListItem)->setText(iCol++, QString::number(iDefault));
-+ (pData->pListItem)->setText(iCol++, QString::number(iRangeMin));
-+ (pData->pListItem)->setText(iCol++, QString::number(iRangeMax));
-+ break;
-+ }
-+
-+ case FLUID_STR_TYPE:
-+ {
-+ char *pszDefault = ::fluid_settings_getstr_default(pFluidSettings, pszName);
-+ char *pszCurrent = NULL;
-+ ::fluid_settings_getstr(pFluidSettings, pszName, &pszCurrent);
-+ (pData->pListItem)->setText(iCol++, pszCurrent);
-+ (pData->pListItem)->setText(iCol++, pszDefault);
-+ (pData->pListItem)->setText(iCol++, QString::null);
-+ (pData->pListItem)->setText(iCol++, QString::null);
-+ break;
-+ }
-+ }
-+
-+ // Check for options.
-+ pData->options.clear();
-+ ::fluid_settings_foreach_option(pFluidSettings, pszName, pvData, qsynth_settings_foreach_option);
-+ (pData->pListItem)->setText(iCol++, pData->options.join(" "));
-+}
-+
-+
-+//----------------------------------------------------------------------------
-+// qsynthSetupForm -- UI wrapper form.
-+
-+// Constructor.
-+qsynthSetupForm::qsynthSetupForm (
-+ QWidget *pParent, Qt::WindowFlags wflags )
-+ : QDialog(pParent, wflags)
-+{
-+ // Setup UI struct...
-+ m_ui.setupUi(this);
-+
-+ // No settings descriptor initially (the caller will set it).
-+ m_pSetup = NULL;
-+ m_pOptions = NULL;
-+
-+ // Initialize dirty control state.
-+ m_iDirtySetup = 0;
-+ m_iDirtyCount = 0;
-+
-+ // Check for pixmaps.
-+ m_pXpmSoundFont = new QPixmap(":/images/sfont1.png");
-+
-+ // Set dialog validators...
-+ QRegExp rx("[\\w-]+");
-+ m_ui.DisplayNameLineEdit->setValidator(new QRegExpValidator(rx, m_ui.DisplayNameLineEdit));
-+ m_ui.SampleRateComboBox->setValidator(new QIntValidator(m_ui.SampleRateComboBox));
-+ m_ui.AudioBufSizeComboBox->setValidator(new QIntValidator(m_ui.AudioBufSizeComboBox));
-+ m_ui.AudioBufCountComboBox->setValidator(new QIntValidator(m_ui.AudioBufCountComboBox));
-+ m_ui.JackNameComboBox->setValidator(new QRegExpValidator(rx, m_ui.JackNameComboBox));
-+ m_ui.AlsaNameComboBox->setValidator(new QRegExpValidator(rx, m_ui.AlsaNameComboBox));
-+
-+ // No sorting on soundfont stack list.
-+ //m_ui.SoundFontListView->setSorting(-1);
-+
-+ // Soundfonts list view...
-+ QHeaderView *pHeader = m_ui.SoundFontListView->header();
-+// pHeader->setResizeMode(QHeaderView::Custom);
-+ pHeader->setDefaultAlignment(Qt::AlignLeft);
-+// pHeader->setDefaultSectionSize(300);
-+ pHeader->setMovable(false);
-+ pHeader->setStretchLastSection(true);
-+
-+ m_ui.SoundFontListView->resizeColumnToContents(0); // SFID.
-+ pHeader->resizeSection(1, 300); // Name.
-+ m_ui.SoundFontListView->resizeColumnToContents(2); // Offset.
-+
-+ // Settings list view...
-+ pHeader = m_ui.SettingsListView->header();
-+// pHeader->setResizeMode(QHeaderView::Custom);
-+ pHeader->setDefaultAlignment(Qt::AlignLeft);
-+// pHeader->setDefaultSectionSize(160);
-+ pHeader->setMovable(false);
-+ pHeader->setStretchLastSection(true);
-+
-+ pHeader->resizeSection(0, 160); // Name.
-+ m_ui.SettingsListView->resizeColumnToContents(1); // Type.
-+ m_ui.SettingsListView->resizeColumnToContents(2); // Realtime.
-+// m_ui.SettingsListView->resizeColumnToContents(3); // Current.
-+// m_ui.SettingsListView->resizeColumnToContents(4); // Default.
-+ m_ui.SettingsListView->resizeColumnToContents(5); // Min.
-+ m_ui.SettingsListView->resizeColumnToContents(6); // Max.
-+ m_ui.SettingsListView->resizeColumnToContents(7); // Options.
-+
-+ // Try to restore old window positioning.
-+ adjustSize();
-+
-+ // UI connections...
-+ QObject::connect(m_ui.DisplayNameLineEdit,
-+ SIGNAL(textChanged(const QString&)),
-+ SLOT(nameChanged(const QString&)));
-+ QObject::connect(m_ui.MidiInCheckBox,
-+ SIGNAL(stateChanged(int)),
-+ SLOT(settingsChanged()));
-+ QObject::connect(m_ui.MidiDriverComboBox,
-+ SIGNAL(activated(const QString&)),
-+ SLOT(midiDriverChanged(const QString&)));
-+ QObject::connect(m_ui.MidiDeviceComboBox,
-+ SIGNAL(editTextChanged(const QString&)),
-+ SLOT(settingsChanged()));
-+ QObject::connect(m_ui.MidiChannelsSpinBox,
-+ SIGNAL(valueChanged(int)),
-+ SLOT(settingsChanged()));
-+ QObject::connect(m_ui.VerboseCheckBox,
-+ SIGNAL(stateChanged(int)),
-+ SLOT(settingsChanged()));
-+ QObject::connect(m_ui.MidiDumpCheckBox,
-+ SIGNAL(stateChanged(int)),
-+ SLOT(settingsChanged()));
-+ QObject::connect(m_ui.AlsaNameComboBox,
-+ SIGNAL(editTextChanged(const QString&)),
-+ SLOT(settingsChanged()));
-+ QObject::connect(m_ui.AudioDriverComboBox,
-+ SIGNAL(activated(const QString&)),
-+ SLOT(audioDriverChanged(const QString&)));
-+ QObject::connect(m_ui.AudioDeviceComboBox,
-+ SIGNAL(editTextChanged(const QString&)),
-+ SLOT(settingsChanged()));
-+ QObject::connect(m_ui.SampleFormatComboBox,
-+ SIGNAL(activated(int)),
-+ SLOT(settingsChanged()));
-+ QObject::connect(m_ui.SampleRateComboBox,
-+ SIGNAL(editTextChanged(const QString&)),
-+ SLOT(settingsChanged()));
-+ QObject::connect(m_ui.AudioBufSizeComboBox,
-+ SIGNAL(editTextChanged(const QString&)),
-+ SLOT(settingsChanged()));
-+ QObject::connect(m_ui.AudioBufCountComboBox,
-+ SIGNAL(editTextChanged(const QString&)),
-+ SLOT(settingsChanged()));
-+ QObject::connect(m_ui.AudioChannelsSpinBox,
-+ SIGNAL(valueChanged(int)),
-+ SLOT(settingsChanged()));
-+ QObject::connect(m_ui.AudioGroupsSpinBox,
-+ SIGNAL(valueChanged(int)),
-+ SLOT(settingsChanged()));
-+ QObject::connect(m_ui.PolyphonySpinBox,
-+ SIGNAL(valueChanged(int)),
-+ SLOT(settingsChanged()));
-+ QObject::connect(m_ui.JackAutoConnectCheckBox,
-+ SIGNAL(stateChanged(int)),
-+ SLOT(settingsChanged()));
-+ QObject::connect(m_ui.JackMultiCheckBox,
-+ SIGNAL(stateChanged(int)),
-+ SLOT(settingsChanged()));
-+ QObject::connect(m_ui.JackNameComboBox,
-+ SIGNAL(editTextChanged(const QString&)),
-+ SLOT(settingsChanged()));
-+ QObject::connect(m_ui.SoundFontListView,
-+ SIGNAL(customContextMenuRequested(const QPoint&)),
-+ SLOT(contextMenuRequested(const QPoint&)));
-+ QObject::connect(m_ui.SoundFontListView,
-+ SIGNAL(currentItemChanged(QTreeWidgetItem*,QTreeWidgetItem*)),
-+ SLOT(stabilizeForm()));
-+ QObject::connect(m_ui.SoundFontOpenPushButton,
-+ SIGNAL(clicked()),
-+ SLOT(openSoundFont()));
-+ QObject::connect(m_ui.SoundFontRemovePushButton,
-+ SIGNAL(clicked()),
-+ SLOT(removeSoundFont()));
-+ QObject::connect(m_ui.SoundFontEditPushButton,
-+ SIGNAL(clicked()),
-+ SLOT(editSoundFont()));
-+ QObject::connect(m_ui.SoundFontMoveUpPushButton,
-+ SIGNAL(clicked()),
-+ SLOT(moveUpSoundFont()));
-+ QObject::connect(m_ui.SoundFontMoveDownPushButton,
-+ SIGNAL(clicked()),
-+ SLOT(moveDownSoundFont()));
-+ QObject::connect(m_ui.SoundFontListView->itemDelegate(),
-+ SIGNAL(commitData(QWidget*)),
-+ SLOT(itemRenamed()));
-+ QObject::connect(m_ui.OkPushButton,
-+ SIGNAL(clicked()),
-+ SLOT(accept()));
-+ QObject::connect(m_ui.CancelPushButton,
-+ SIGNAL(clicked()),
-+ SLOT(reject()));
-+}
-+
-+
-+// Destructor.
-+qsynthSetupForm::~qsynthSetupForm (void)
-+{
-+ // Delete pixmaps.
-+ delete m_pXpmSoundFont;
-+}
-+
-+
-+// A combo-box text item setter helper.
-+void qsynthSetupForm::setComboBoxCurrentText (
-+ QComboBox *pComboBox, const QString& sText ) const
-+{
-+ if (pComboBox->isEditable()) {
-+ pComboBox->setEditText(sText);
-+ } else {
-+ int iIndex = pComboBox->findText(sText);
-+ if (iIndex < 0) {
-+ iIndex = 0;
-+ if (!sText.isEmpty())
-+ pComboBox->insertItem(0, sText);
-+ }
-+ pComboBox->setCurrentIndex(iIndex);
-+ }
-+}
-+
-+
-+// Populate (setup) dialog controls from settings descriptors.
-+void qsynthSetupForm::setup ( qsynthOptions *pOptions, qsynthEngine *pEngine, bool bNew )
-+{
-+ // Check this first.
-+ if (pOptions == NULL || pEngine == NULL)
-+ return;
-+
-+ // Set reference descriptors.
-+ m_pOptions = pOptions;
-+ m_pSetup = pEngine->setup();
-+
-+ // Update caption.
-+ setWindowTitle(QSYNTH_TITLE ": " + tr("Setup") + " [" + pEngine->name() + "]");
-+
-+ // Start clean?
-+ m_iDirtyCount = 0;
-+ if (bNew) {
-+ m_pSetup->realize();
-+ m_iDirtyCount++;
-+ }
-+ // Avoid nested changes.
-+ m_iDirtySetup++;
-+
-+ // Display name.
-+ m_ui.DisplayNameLineEdit->setText(m_pSetup->sDisplayName);
-+
-+ // Load Setttings view...
-+ qsynth_settings_data data;
-+ // Set data context.
-+ data.pSetup = m_pSetup;
-+ data.pListView = m_ui.SettingsListView;
-+ data.pListItem = NULL;
-+ // And start filling it in...
-+ ::fluid_settings_foreach(m_pSetup->fluid_settings(), &data, qsynth_settings_foreach);
-+
-+ // Midi Driver combobox options;
-+ // check if intended MIDI driver is available.
-+ data.options.clear();
-+ char midi_driver[] = "midi.driver";
-+ ::fluid_settings_foreach_option(m_pSetup->fluid_settings(),
-+ midi_driver, &data, qsynth_settings_foreach_option);
-+ m_ui.MidiDriverComboBox->clear();
-+ if (!data.options.contains(m_pSetup->sMidiDriver))
-+ data.options.append(m_pSetup->sMidiDriver);
-+ m_ui.MidiDriverComboBox->addItems(data.options);
-+
-+ // Audio Driver combobox options.
-+ // check if intended Audio driver is available.
-+ data.options.clear();
-+ char audio_driver[] = "audio.driver";
-+ ::fluid_settings_foreach_option(m_pSetup->fluid_settings(),
-+ audio_driver, &data, qsynth_settings_foreach_option);
-+ m_ui.AudioDriverComboBox->clear();
-+ if (!data.options.contains(m_pSetup->sAudioDriver))
-+ data.options.append(m_pSetup->sAudioDriver);
-+ m_ui.AudioDriverComboBox->addItems(data.options);
-+
-+ // Sample Format combobox options.
-+ data.options.clear();
-+ char audio_sample_fmt[] = "audio.sample-format";
-+ ::fluid_settings_foreach_option(m_pSetup->fluid_settings(),
-+ audio_sample_fmt, &data, qsynth_settings_foreach_option);
-+ m_ui.SampleFormatComboBox->clear();
-+ m_ui.SampleFormatComboBox->addItems(data.options);
-+
-+ // Midi settings...
-+ m_ui.MidiInCheckBox->setChecked(m_pSetup->bMidiIn);
-+ setComboBoxCurrentText(m_ui.MidiDriverComboBox,
-+ m_pSetup->sMidiDriver);
-+ updateMidiDevices(m_pSetup->sMidiDriver);
-+
-+ setComboBoxCurrentText(m_ui.MidiDeviceComboBox,
-+ m_pSetup->sMidiDevice);
-+ m_ui.MidiChannelsSpinBox->setValue(m_pSetup->iMidiChannels);
-+ m_ui.MidiDumpCheckBox->setChecked(m_pSetup->bMidiDump);
-+ m_ui.VerboseCheckBox->setChecked(m_pSetup->bVerbose);
-+ // ALSA client identifier.
-+ m_ui.AlsaNameComboBox->addItem(m_pSetup->sDisplayName);
-+ setComboBoxCurrentText(m_ui.AlsaNameComboBox,
-+ bNew ? m_pSetup->sDisplayName : m_pSetup->sAlsaName);
-+
-+ // Audio settings...
-+ setComboBoxCurrentText(m_ui.AudioDriverComboBox,
-+ m_pSetup->sAudioDriver);
-+ updateAudioDevices(m_pSetup->sAudioDriver);
-+
-+ setComboBoxCurrentText(m_ui.AudioDeviceComboBox,
-+ m_pSetup->sAudioDevice);
-+ setComboBoxCurrentText(m_ui.SampleFormatComboBox,
-+ m_pSetup->sSampleFormat);
-+ setComboBoxCurrentText(m_ui.SampleRateComboBox,
-+ QString::number(m_pSetup->fSampleRate));
-+ setComboBoxCurrentText(m_ui.AudioBufSizeComboBox,
-+ QString::number(m_pSetup->iAudioBufSize));
-+ setComboBoxCurrentText(m_ui.AudioBufCountComboBox,
-+ QString::number(m_pSetup->iAudioBufCount));
-+ m_ui.AudioChannelsSpinBox->setValue(m_pSetup->iAudioChannels);
-+ m_ui.AudioGroupsSpinBox->setValue(m_pSetup->iAudioGroups);
-+ m_ui.PolyphonySpinBox->setValue(m_pSetup->iPolyphony);
-+ m_ui.JackMultiCheckBox->setChecked(m_pSetup->bJackMulti);
-+ m_ui.JackAutoConnectCheckBox->setChecked(m_pSetup->bJackAutoConnect);
-+ // JACK client name...
-+ QString sJackName;
-+ if (!m_pSetup->sDisplayName.contains(QSYNTH_TITLE))
-+ sJackName += QSYNTH_TITLE "_";
-+ sJackName += m_pSetup->sDisplayName;
-+ m_ui.JackNameComboBox->addItem(sJackName);
-+ setComboBoxCurrentText(m_ui.JackNameComboBox,
-+ bNew ? sJackName : m_pSetup->sJackName);
-+
-+ // Load the soundfonts view.
-+ m_ui.SoundFontListView->clear();
-+ m_ui.SoundFontListView->setUpdatesEnabled(false);
-+ QTreeWidgetItem *pItem = NULL;
-+ if (pEngine->pSynth) {
-+ // Load soundfont view from actual synth stack...
-+ int cSoundFonts = ::fluid_synth_sfcount(pEngine->pSynth);
-+ for (int i = cSoundFonts - 1; i >= 0; i--) {
-+ fluid_sfont_t *pSoundFont = ::fluid_synth_get_sfont(pEngine->pSynth, i);
-+ if (pSoundFont) {
-+ pItem = new QTreeWidgetItem(m_ui.SoundFontListView, pItem);
-+ if (pItem) {
-+ pItem->setIcon(0, *m_pXpmSoundFont);
-+ pItem->setText(0, QString::number(pSoundFont->id));
-+ pItem->setText(1, pSoundFont->get_name(pSoundFont));
-+#ifdef CONFIG_FLUID_BANK_OFFSET
-+ pItem->setText(2, QString::number(::fluid_synth_get_bank_offset(pEngine->pSynth, pSoundFont->id)));
-+ pItem->setFlags(pItem->flags() | Qt::ItemIsEditable);
-+#endif
-+ }
-+ }
-+ }
-+ } else {
-+ // Load soundfont view from configuration setup list...
-+ int i = 0;
-+ QStringListIterator iter(m_pSetup->soundfonts);
-+ while (iter.hasNext()) {
-+ pItem = new QTreeWidgetItem(m_ui.SoundFontListView, pItem);
-+ if (pItem) {
-+ pItem->setIcon(0, *m_pXpmSoundFont);
-+ pItem->setText(0, QString::number(i));
-+ pItem->setText(1, iter.next());
-+#ifdef CONFIG_FLUID_BANK_OFFSET
-+ pItem->setText(2, m_pSetup->bankoffsets[i]);
-+ pItem->setFlags(pItem->flags() | Qt::ItemIsEditable);
-+#endif
-+ }
-+ i++;
-+ }
-+ }
-+ m_ui.SoundFontListView->setUpdatesEnabled(true);
-+ m_ui.SoundFontListView->update();
-+
-+ // Done.
-+ m_iDirtySetup--;
-+ stabilizeForm();
-+}
-+
-+
-+// Accept settings (OK button slot).
-+void qsynthSetupForm::accept (void)
-+{
-+ if (m_iDirtyCount > 0) {
-+ // Save the soundfont view.
-+ m_pSetup->soundfonts.clear();
-+ m_pSetup->bankoffsets.clear();
-+ int iItemCount = m_ui.SoundFontListView->topLevelItemCount();
-+ for (int i = 0; i < iItemCount; ++i) {
-+ QTreeWidgetItem *pItem = m_ui.SoundFontListView->topLevelItem(i);
-+ m_pSetup->soundfonts.append(pItem->text(1));
-+ m_pSetup->bankoffsets.append(pItem->text(2));
-+ }
-+ // Will we have a setup renaming?
-+ m_pSetup->sDisplayName = m_ui.DisplayNameLineEdit->text();
-+ // Midi settings...
-+ m_pSetup->bMidiIn = m_ui.MidiInCheckBox->isChecked();
-+ m_pSetup->sMidiDriver = m_ui.MidiDriverComboBox->currentText();
-+ m_pSetup->sMidiDevice = m_ui.MidiDeviceComboBox->currentText();
-+ m_pSetup->iMidiChannels = m_ui.MidiChannelsSpinBox->value();
-+ m_pSetup->bMidiDump = m_ui.MidiDumpCheckBox->isChecked();
-+ m_pSetup->bVerbose = m_ui.VerboseCheckBox->isChecked();
-+ m_pSetup->sAlsaName = m_ui.AlsaNameComboBox->currentText();
-+ // Audio settings...
-+ m_pSetup->sAudioDriver = m_ui.AudioDriverComboBox->currentText();
-+ m_pSetup->sAudioDevice = m_ui.AudioDeviceComboBox->currentText();
-+ m_pSetup->sSampleFormat = m_ui.SampleFormatComboBox->currentText();
-+ m_pSetup->fSampleRate = m_ui.SampleRateComboBox->currentText().toDouble();
-+ m_pSetup->iAudioBufSize = m_ui.AudioBufSizeComboBox->currentText().toInt();
-+ m_pSetup->iAudioBufCount = m_ui.AudioBufCountComboBox->currentText().toInt();
-+ m_pSetup->iAudioChannels = m_ui.AudioChannelsSpinBox->value();
-+ m_pSetup->iAudioGroups = m_ui.AudioGroupsSpinBox->value();
-+ m_pSetup->iPolyphony = m_ui.PolyphonySpinBox->value();
-+ m_pSetup->bJackMulti = m_ui.JackMultiCheckBox->isChecked();
-+ m_pSetup->bJackAutoConnect = m_ui.JackAutoConnectCheckBox->isChecked();
-+ m_pSetup->sJackName = m_ui.JackNameComboBox->currentText();
-+ // Reset dirty flag.
-+ m_iDirtyCount = 0;
-+ }
-+
-+ // Just go with dialog acceptance.
-+ QDialog::accept();
-+}
-+
-+
-+// Reject settings (Cancel button slot).
-+void qsynthSetupForm::reject (void)
-+{
-+ bool bReject = true;
-+
-+ // Check if there's any pending changes...
-+ if (m_iDirtyCount > 0) {
-+ switch (QMessageBox::warning(this,
-+ QSYNTH_TITLE ": " + tr("Warning"),
-+ tr("Some settings have been changed.") + "\n\n" +
-+ tr("Do you want to apply the changes?"),
-+ QMessageBox::Apply | QMessageBox::Discard | QMessageBox::Cancel)) {
-+ case QMessageBox::Apply:
-+ accept();
-+ return;
-+ case QMessageBox::Discard:
-+ break;
-+ default: // Cancel.
-+ bReject = false;
-+ }
-+ }
-+
-+ if (bReject)
-+ QDialog::reject();
-+}
-+
-+
-+// Dirty up engine display name.
-+void qsynthSetupForm::nameChanged ( const QString& )
-+{
-+ if (m_iDirtySetup > 0)
-+ return;
-+
-+ int iItem;
-+ const QString& sDisplayName = m_ui.DisplayNameLineEdit->text();
-+
-+ iItem = m_ui.AlsaNameComboBox->findText(sDisplayName);
-+ if (iItem >= 0) {
-+ m_ui.AlsaNameComboBox->removeItem(iItem);
-+ m_ui.AlsaNameComboBox->insertItem(0, sDisplayName);
-+ }
-+
-+ iItem = m_ui.JackNameComboBox->findText(sDisplayName);
-+ if (iItem >= 0) {
-+ m_ui.JackNameComboBox->removeItem(iItem);
-+ m_ui.JackNameComboBox->insertItem(0, sDisplayName);
-+ }
-+
-+ settingsChanged();
-+}
-+
-+
-+// Fill MIDI device options.
-+void qsynthSetupForm::updateMidiDevices ( const QString& sMidiDriver )
-+{
-+ qsynth_settings_data data;
-+ data.pSetup = m_pSetup;
-+ data.pListView = NULL;
-+ data.pListItem = NULL;
-+
-+ // MIDI Device combobox options;
-+ QString sOldText = m_ui.MidiDeviceComboBox->currentText();
-+ m_ui.MidiDeviceComboBox->clear();
-+ QString sName = "midi." + sMidiDriver + ".device";
-+ data.options.clear();
-+ ::fluid_settings_foreach_option(m_pSetup->fluid_settings(),
-+ sName.toLocal8Bit().data(), &data, qsynth_settings_foreach_option);
-+
-+ m_ui.MidiDeviceComboBox->addItems(data.options);
-+}
-+
-+void qsynthSetupForm::midiDriverChanged ( const QString& sMidiDriver )
-+{
-+ if (m_iDirtySetup > 0)
-+ return;
-+
-+ QString sMidiDevice = m_ui.MidiDeviceComboBox->currentText();
-+ updateMidiDevices(sMidiDriver);
-+ setComboBoxCurrentText(m_ui.MidiDeviceComboBox, sMidiDevice);
-+
-+ settingsChanged();
-+}
-+
-+
-+// Fill audio device options.
-+void qsynthSetupForm::updateAudioDevices ( const QString& sAudioDriver )
-+{
-+ qsynth_settings_data data;
-+ data.pSetup = m_pSetup;
-+ data.pListView = NULL;
-+ data.pListItem = NULL;
-+
-+ // Audio Device combobox options;
-+ QString sOldText = m_ui.AudioDeviceComboBox->currentText();
-+ m_ui.AudioDeviceComboBox->clear();
-+ QString sName = "audio." + sAudioDriver + ".device";
-+ data.options.clear();
-+ ::fluid_settings_foreach_option(m_pSetup->fluid_settings(),
-+ sName.toLocal8Bit().data(), &data, qsynth_settings_foreach_option);
-+
-+ m_ui.AudioDeviceComboBox->addItems(data.options);
-+}
-+
-+void qsynthSetupForm::audioDriverChanged ( const QString& sAudioDriver )
-+{
-+ if (m_iDirtySetup > 0)
-+ return;
-+
-+ QString sAudioDevice = m_ui.AudioDeviceComboBox->currentText();
-+ updateAudioDevices(sAudioDriver);
-+ setComboBoxCurrentText(m_ui.AudioDeviceComboBox, sAudioDevice);
-+
-+ settingsChanged();
-+}
-+
-+
-+// Dirty up settings.
-+void qsynthSetupForm::settingsChanged (void)
-+{
-+ if (m_iDirtySetup > 0)
-+ return;
-+
-+ m_iDirtyCount++;
-+ stabilizeForm();
-+}
-+
-+
-+// Stabilize current form state.
-+void qsynthSetupForm::stabilizeForm (void)
-+{
-+ bool bEnabled = m_ui.MidiInCheckBox->isChecked();
-+
-+ bool bAlsaEnabled = (m_ui.MidiDriverComboBox->currentText() == "alsa_seq");
-+ m_ui.MidiDriverTextLabel->setEnabled(bEnabled);
-+ m_ui.MidiDriverComboBox->setEnabled(bEnabled);
-+ m_ui.MidiDeviceTextLabel->setEnabled(bEnabled && !bAlsaEnabled);
-+ m_ui.MidiDeviceComboBox->setEnabled(bEnabled && !bAlsaEnabled);
-+ m_ui.MidiChannelsTextLabel->setEnabled(bEnabled);
-+ m_ui.MidiChannelsSpinBox->setEnabled(bEnabled);
-+ m_ui.MidiDumpCheckBox->setEnabled(bEnabled);
-+ m_ui.VerboseCheckBox->setEnabled(bEnabled);
-+
-+ m_ui.AlsaNameTextLabel->setEnabled(bEnabled && bAlsaEnabled);
-+ m_ui.AlsaNameComboBox->setEnabled(bEnabled && bAlsaEnabled);
-+
-+ bool bJackEnabled = (m_ui.AudioDriverComboBox->currentText() == "jack");
-+ m_ui.AudioDeviceTextLabel->setEnabled(!bJackEnabled);
-+ m_ui.AudioDeviceComboBox->setEnabled(!bJackEnabled);
-+ m_ui.JackMultiCheckBox->setEnabled(bJackEnabled);
-+ m_ui.JackAutoConnectCheckBox->setEnabled(bJackEnabled);
-+ m_ui.JackNameTextLabel->setEnabled(bJackEnabled);
-+ m_ui.JackNameComboBox->setEnabled(bJackEnabled);
-+
-+ m_ui.SoundFontOpenPushButton->setEnabled(true);
-+ QTreeWidgetItem *pSelectedItem = m_ui.SoundFontListView->currentItem();
-+ if (pSelectedItem) {
-+ int iItem = m_ui.SoundFontListView->indexOfTopLevelItem(pSelectedItem);
-+ int iItemCount = m_ui.SoundFontListView->topLevelItemCount();
-+ m_ui.SoundFontEditPushButton->setEnabled(
-+ pSelectedItem->flags() & Qt::ItemIsEditable);
-+ m_ui.SoundFontRemovePushButton->setEnabled(true);
-+ m_ui.SoundFontMoveUpPushButton->setEnabled(iItem > 0);
-+ m_ui.SoundFontMoveDownPushButton->setEnabled(iItem < iItemCount - 1);
-+ } else {
-+ m_ui.SoundFontRemovePushButton->setEnabled(false);
-+ m_ui.SoundFontEditPushButton->setEnabled(false);
-+ m_ui.SoundFontMoveUpPushButton->setEnabled(false);
-+ m_ui.SoundFontMoveDownPushButton->setEnabled(false);
-+ }
-+
-+ bEnabled = (m_iDirtyCount > 0);
-+ if (bEnabled && m_pSetup) {
-+ const QString& sDisplayName = m_ui.DisplayNameLineEdit->text();
-+ if (sDisplayName != m_pSetup->sDisplayName) {
-+ bEnabled = (!m_pOptions->engines.contains(sDisplayName));
-+ if (bEnabled)
-+ bEnabled = (sDisplayName != (m_pOptions->defaultSetup())->sDisplayName);
-+ }
-+ }
-+ m_ui.OkPushButton->setEnabled(bEnabled);
-+}
-+
-+
-+// Soundfont view context menu handler.
-+void qsynthSetupForm::contextMenuRequested ( const QPoint& pos )
-+{
-+ int iItem = 0;
-+ int iItemCount = 0;
-+ QTreeWidgetItem *pItem = m_ui.SoundFontListView->itemAt(pos);
-+ if (pItem == NULL)
-+ pItem = m_ui.SoundFontListView->currentItem();
-+ if (pItem) {
-+ iItem = m_ui.SoundFontListView->indexOfTopLevelItem(pItem);
-+ iItemCount = m_ui.SoundFontListView->topLevelItemCount();
-+ }
-+
-+ // Build the soundfont context menu...
-+ QMenu menu(this);
-+ QAction *pAction;
-+
-+ pAction = menu.addAction(
-+ QIcon(":/images/open1.png"),
-+ tr("Open..."), this, SLOT(openSoundFont()));
-+ menu.addSeparator();
-+ bool bEnabled = (pItem != NULL);
-+ pAction = menu.addAction(
-+ QIcon(":/images/edit1.png"),
-+ tr("Edit"), this, SLOT(editSoundFont()));
-+ pAction->setEnabled(
-+ (bEnabled && (pItem->flags() & Qt::ItemIsEditable)));
-+ pAction = menu.addAction(
-+ QIcon(":/images/remove1.png"),
-+ tr("Remove"), this, SLOT(removeSoundFont()));
-+ pAction->setEnabled(bEnabled);
-+ menu.addSeparator();
-+ pAction = menu.addAction(
-+ QIcon(":/images/up1.png"),
-+ tr("Move Up"), this, SLOT(moveUpSoundFont()));
-+ pAction->setEnabled(bEnabled && iItem > 0);
-+ pAction = menu.addAction(
-+ QIcon(":/images/down1.png"),
-+ tr("Move Down"), this, SLOT(moveDownSoundFont()));
-+ pAction->setEnabled(bEnabled && iItem < iItemCount - 1);
-+
-+ menu.exec((m_ui.SoundFontListView->viewport())->mapToGlobal(pos));
-+}
-+
-+
-+// Refresh the soundfont view ids.
-+void qsynthSetupForm::refreshSoundFonts (void)
-+{
-+ m_ui.SoundFontListView->setUpdatesEnabled(false);
-+ int iItemCount = m_ui.SoundFontListView->topLevelItemCount();
-+ for (int i = 0; i < iItemCount; ++i) {
-+ QTreeWidgetItem *pItem = m_ui.SoundFontListView->topLevelItem(i);
-+ pItem->setText(0, QString::number(i + 1));
-+ }
-+ m_ui.SoundFontListView->setUpdatesEnabled(true);
-+ m_ui.SoundFontListView->update();
-+}
-+
-+
-+// Browse for a soundfont file on the filesystem.
-+void qsynthSetupForm::openSoundFont (void)
-+{
-+ QStringList soundfonts = QFileDialog::getOpenFileNames(
-+ this, // Parent
-+ QSYNTH_TITLE ": " + tr("Soundfont files"), // Caption.
-+ m_pOptions->sSoundFontDir, // Start here.
-+ tr("Soundfont files") + " (*.sf2 *.SF2)" // Filter (SF2 files)
-+ );
-+
-+ QTreeWidgetItem *pItem = NULL;
-+
-+ // For avery selected soundfont to load...
-+ QStringListIterator iter(soundfonts);
-+ while (iter.hasNext()) {
-+ const QString& sSoundFont = iter.next();
-+ char *pszFilename = sSoundFont.toLocal8Bit().data();
-+ // Is it a soundfont file...
-+ if (::fluid_is_soundfont(pszFilename)) {
-+ // Check if not already there...
-+ if (!m_ui.SoundFontListView->findItems(sSoundFont,
-+ Qt::MatchExactly, 1).isEmpty() &&
-+ QMessageBox::warning(this,
-+ QSYNTH_TITLE ": " + tr("Warning"),
-+ tr("Soundfont file already on list") + ":\n\n" +
-+ "\"" + sSoundFont + "\"\n\n" +
-+ tr("Add anyway?"),
-+ QMessageBox::Ok | QMessageBox::Cancel)
-+ == QMessageBox::Cancel) {
-+ continue;
-+ }
-+ // Start inserting in the current selected or last item...
-+ if (pItem == NULL) {
-+ pItem = m_ui.SoundFontListView->currentItem();
-+ if (pItem)
-+#if QT_VERSION >= 0x040200
-+ pItem->setSelected(false);
-+#else
-+ m_ui.SoundFontListView->setItemSelected(pItem, false);
-+#endif
-+ }
-+ // New item on the block :-)
-+ pItem = new QTreeWidgetItem(m_ui.SoundFontListView, pItem);
-+ if (pItem) {
-+ pItem->setIcon(0, *m_pXpmSoundFont);
-+ pItem->setText(1, sSoundFont);
-+#ifdef CONFIG_FLUID_BANK_OFFSET
-+ pItem->setText(2, "0");
-+ pItem->setFlags(pItem->flags() | Qt::ItemIsEditable);
-+#endif
-+#if QT_VERSION >= 0x040200
-+ pItem->setSelected(true);
-+#else
-+ m_ui.SoundFontListView->setItemSelected(pItem, true);
-+#endif
-+ m_ui.SoundFontListView->setCurrentItem(pItem);
-+ m_pOptions->sSoundFontDir = QFileInfo(sSoundFont).dir().absolutePath();
-+ m_iDirtyCount++;
-+ }
-+ }
-+ else {
-+ QMessageBox::critical(this,
-+ QSYNTH_TITLE ": " + tr("Error"),
-+ tr("Failed to add soundfont file") + ":\n\n" +
-+ "\"" + sSoundFont + "\"\n\n" +
-+ tr("Please, check for a valid soundfont file."),
-+ QMessageBox::Cancel);
-+ }
-+ }
-+
-+ refreshSoundFonts();
-+ stabilizeForm();
-+}
-+
-+
-+// Edit current selected soundfont.
-+void qsynthSetupForm::editSoundFont (void)
-+{
-+ QTreeWidgetItem *pItem = m_ui.SoundFontListView->currentItem();
-+ if (pItem)
-+ m_ui.SoundFontListView->editItem(pItem, 2);
-+
-+ stabilizeForm();
-+}
-+
-+
-+// Remove current selected soundfont.
-+void qsynthSetupForm::removeSoundFont (void)
-+{
-+ QTreeWidgetItem *pItem = m_ui.SoundFontListView->currentItem();
-+ if (pItem) {
-+ m_iDirtyCount++;
-+ delete pItem;
-+ }
-+
-+ refreshSoundFonts();
-+ stabilizeForm();
-+}
-+
-+
-+// Move current selected soundfont one position up.
-+void qsynthSetupForm::moveUpSoundFont (void)
-+{
-+ QTreeWidgetItem *pItem = m_ui.SoundFontListView->currentItem();
-+ if (pItem) {
-+ int iItem = m_ui.SoundFontListView->indexOfTopLevelItem(pItem);
-+ if (iItem > 0) {
-+#if QT_VERSION >= 0x040200
-+ pItem->setSelected(false);
-+#else
-+ m_ui.SoundFontListView->setItemSelected(pItem, false);
-+#endif
-+ pItem = m_ui.SoundFontListView->takeTopLevelItem(iItem);
-+ m_ui.SoundFontListView->insertTopLevelItem(iItem - 1, pItem);
-+#if QT_VERSION >= 0x040200
-+ pItem->setSelected(true);
-+#else
-+ m_ui.SoundFontListView->setItemSelected(pItem, true);
-+#endif
-+ m_ui.SoundFontListView->setCurrentItem(pItem);
-+ m_iDirtyCount++;
-+ }
-+ }
-+
-+ refreshSoundFonts();
-+ stabilizeForm();
-+}
-+
-+
-+// Move current selected soundfont one position down.
-+void qsynthSetupForm::moveDownSoundFont (void)
-+{
-+ QTreeWidgetItem *pItem = m_ui.SoundFontListView->currentItem();
-+ if (pItem) {
-+ int iItem = m_ui.SoundFontListView->indexOfTopLevelItem(pItem);
-+ int iItemCount = m_ui.SoundFontListView->topLevelItemCount();
-+ if (iItem < iItemCount - 1) {
-+#if QT_VERSION >= 0x040200
-+ pItem->setSelected(false);
-+#else
-+ m_ui.SoundFontListView->setItemSelected(pItem, false);
-+#endif
-+ pItem = m_ui.SoundFontListView->takeTopLevelItem(iItem);
-+ m_ui.SoundFontListView->insertTopLevelItem(iItem + 1, pItem);
-+#if QT_VERSION >= 0x040200
-+ pItem->setSelected(true);
-+#else
-+ m_ui.SoundFontListView->setItemSelected(pItem, true);
-+#endif
-+ m_ui.SoundFontListView->setCurrentItem(pItem);
-+ m_iDirtyCount++;
-+ }
-+ }
-+
-+ refreshSoundFonts();
-+ stabilizeForm();
-+}
-+
-+
-+// Check soundfont bank offset edit.
-+void qsynthSetupForm::itemRenamed (void)
-+{
-+ QTreeWidgetItem *pItem = m_ui.SoundFontListView->currentItem();
-+ if (pItem) {
-+ int iBankOffset = pItem->text(2).toInt();
-+ if (iBankOffset < 0 || iBankOffset > 128)
-+ pItem->setText(2, QString::number(0));
-+ m_iDirtyCount++;
-+ }
-+
-+ stabilizeForm();
-+}
-+
-+
-+// end of qsynthSetupForm.cpp
diff --git a/debian/patches/series b/debian/patches/series
index 82cba25..1afe1f6 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1,4 +1,3 @@
desktop_categories.patch
binutils-gold.patch
soundfont_default_dir.patch
-debian-changes-0.3.5-1
--
qsynth packaging
More information about the pkg-multimedia-commits
mailing list