|
Packit Service |
b98cfc |
/*
|
|
Packit Service |
b98cfc |
* qlo10k1 - GUI frontend for ld10k1
|
|
Packit Service |
b98cfc |
*
|
|
Packit Service |
b98cfc |
* Copyright (c) 2004 by Peter Zubaj
|
|
Packit Service |
b98cfc |
*
|
|
Packit Service |
b98cfc |
* This program is free software; you can redistribute it and/or modify
|
|
Packit Service |
b98cfc |
* it under the terms of the GNU General Public License as published by
|
|
Packit Service |
b98cfc |
* the Free Software Foundation; either version 2 of the License, or
|
|
Packit Service |
b98cfc |
* (at your option) any later version.
|
|
Packit Service |
b98cfc |
*
|
|
Packit Service |
b98cfc |
* This program is distributed in the hope that it will be useful,
|
|
Packit Service |
b98cfc |
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
Packit Service |
b98cfc |
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
Packit Service |
b98cfc |
* GNU General Public License for more details.
|
|
Packit Service |
b98cfc |
*
|
|
Packit Service |
b98cfc |
* You should have received a copy of the GNU General Public License
|
|
Packit Service |
b98cfc |
* along with this program; if not, write to the Free Software
|
|
Packit Service |
b98cfc |
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
|
Packit Service |
b98cfc |
*
|
|
Packit Service |
b98cfc |
*/
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
#include <qlineedit.h>
|
|
Packit Service |
b98cfc |
#include <qlistbox.h>
|
|
Packit Service |
b98cfc |
#include <qpushbutton.h>
|
|
Packit Service |
b98cfc |
#include <qinputdialog.h>
|
|
Packit Service |
b98cfc |
#include <qvaluelist.h>
|
|
Packit Service |
b98cfc |
#include <qmessagebox.h>
|
|
Packit Service |
b98cfc |
#include <qlabel.h>
|
|
Packit Service |
b98cfc |
#include <qcheckbox.h>
|
|
Packit Service |
b98cfc |
#include <qbuttongroup.h>
|
|
Packit Service |
b98cfc |
#include <qradiobutton.h>
|
|
Packit Service |
b98cfc |
#include <qcombobox.h>
|
|
Packit Service |
b98cfc |
#include <qmap.h>
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
#include "app_global.h"
|
|
Packit Service |
b98cfc |
#include "transformpatchdialog.h"
|
|
Packit Service |
b98cfc |
#include "structure_patch.h"
|
|
Packit Service |
b98cfc |
#include "structure_io.h"
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
TransformPatchDlg::TransformPatchDlg(QString efileName, EMU10k1File *efile)
|
|
Packit Service |
b98cfc |
: TransformPatchBase()
|
|
Packit Service |
b98cfc |
{
|
|
Packit Service |
b98cfc |
fileName = efileName;
|
|
Packit Service |
b98cfc |
file = efile;
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
leFileName->setText(fileName);
|
|
Packit Service |
b98cfc |
lePatchName->setText(file->getPatchName());
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
// load controls list
|
|
Packit Service |
b98cfc |
int i;
|
|
Packit Service |
b98cfc |
for (i = 0; i < file->getCtrlCount(); i++)
|
|
Packit Service |
b98cfc |
{
|
|
Packit Service |
b98cfc |
QString text = getName(i);
|
|
Packit Service |
b98cfc |
lbFileCtrl->insertItem(text);
|
|
Packit Service |
b98cfc |
ctrlFileList.append(i);
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
// set default in names
|
|
Packit Service |
b98cfc |
switch (file->getInCount())
|
|
Packit Service |
b98cfc |
{
|
|
Packit Service |
b98cfc |
case 1:
|
|
Packit Service |
b98cfc |
inputNames.append("I");
|
|
Packit Service |
b98cfc |
break;
|
|
Packit Service |
b98cfc |
case 2:
|
|
Packit Service |
b98cfc |
inputNames.append("IL");
|
|
Packit Service |
b98cfc |
inputNames.append("IR");
|
|
Packit Service |
b98cfc |
break;
|
|
Packit Service |
b98cfc |
case 4:
|
|
Packit Service |
b98cfc |
inputNames.append("IL");
|
|
Packit Service |
b98cfc |
inputNames.append("IR");
|
|
Packit Service |
b98cfc |
inputNames.append("IRL");
|
|
Packit Service |
b98cfc |
inputNames.append("IRR");
|
|
Packit Service |
b98cfc |
break;
|
|
Packit Service |
b98cfc |
case 6:
|
|
Packit Service |
b98cfc |
inputNames.append("IL");
|
|
Packit Service |
b98cfc |
inputNames.append("IR");
|
|
Packit Service |
b98cfc |
inputNames.append("IRL");
|
|
Packit Service |
b98cfc |
inputNames.append("IRR");
|
|
Packit Service |
b98cfc |
inputNames.append("IC");
|
|
Packit Service |
b98cfc |
inputNames.append("ILFE");
|
|
Packit Service |
b98cfc |
break;
|
|
Packit Service |
b98cfc |
default:
|
|
Packit Service |
b98cfc |
for (i = 0; i < file->getInCount(); i++)
|
|
Packit Service |
b98cfc |
inputNames.append("");
|
|
Packit Service |
b98cfc |
break;
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
// set default out names
|
|
Packit Service |
b98cfc |
switch (file->getOutCount())
|
|
Packit Service |
b98cfc |
{
|
|
Packit Service |
b98cfc |
case 1:
|
|
Packit Service |
b98cfc |
outputNames.append("O");
|
|
Packit Service |
b98cfc |
break;
|
|
Packit Service |
b98cfc |
case 2:
|
|
Packit Service |
b98cfc |
outputNames.append("OL");
|
|
Packit Service |
b98cfc |
outputNames.append("OR");
|
|
Packit Service |
b98cfc |
break;
|
|
Packit Service |
b98cfc |
case 4:
|
|
Packit Service |
b98cfc |
outputNames.append("OL");
|
|
Packit Service |
b98cfc |
outputNames.append("OR");
|
|
Packit Service |
b98cfc |
outputNames.append("ORL");
|
|
Packit Service |
b98cfc |
outputNames.append("ORR");
|
|
Packit Service |
b98cfc |
break;
|
|
Packit Service |
b98cfc |
case 6:
|
|
Packit Service |
b98cfc |
outputNames.append("OL");
|
|
Packit Service |
b98cfc |
outputNames.append("OR");
|
|
Packit Service |
b98cfc |
outputNames.append("ORL");
|
|
Packit Service |
b98cfc |
outputNames.append("ORR");
|
|
Packit Service |
b98cfc |
outputNames.append("OC");
|
|
Packit Service |
b98cfc |
outputNames.append("OLFE");
|
|
Packit Service |
b98cfc |
break;
|
|
Packit Service |
b98cfc |
default:
|
|
Packit Service |
b98cfc |
for (i = 0; i < file->getOutCount(); i++)
|
|
Packit Service |
b98cfc |
outputNames.append("");
|
|
Packit Service |
b98cfc |
break;
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
for (i = 0; i < file->getInCount(); i++)
|
|
Packit Service |
b98cfc |
lbInputs->insertItem(inputNames[i]);
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
for (i = 0; i < file->getOutCount(); i++)
|
|
Packit Service |
b98cfc |
lbOutputs->insertItem(outputNames[i]);
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
connect(pbOK, SIGNAL(clicked()), this, SLOT(okClicked()));
|
|
Packit Service |
b98cfc |
connect(pbCancel, SIGNAL(clicked()), this, SLOT(cancelClicked()));
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
connect(lbInputs, SIGNAL(doubleClicked(QListBoxItem *)), this, SLOT(inputsDoubleClicked(QListBoxItem *)));
|
|
Packit Service |
b98cfc |
connect(lbOutputs, SIGNAL(doubleClicked(QListBoxItem *)), this, SLOT(outputsDoubleClicked(QListBoxItem *)));
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
connect(pbCtrlAdd, SIGNAL(clicked()), this, SLOT(ctrlAddClicked()));
|
|
Packit Service |
b98cfc |
connect(pbCtrlDel, SIGNAL(clicked()), this, SLOT(ctrlDelClicked()));
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
connect(lbLoadedCtrl, SIGNAL(doubleClicked(QListBoxItem *)), this, SLOT(loadedDoubleClicked(QListBoxItem *)));
|
|
Packit Service |
b98cfc |
connect(lbFileCtrl, SIGNAL(doubleClicked(QListBoxItem *)), this, SLOT(fileDoubleClicked(QListBoxItem *)));
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
QString TransformPatchDlg::getName(int i)
|
|
Packit Service |
b98cfc |
{
|
|
Packit Service |
b98cfc |
EMU10k1Ctrl ctrl;
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
file->getCtrl(i, &ctrl);
|
|
Packit Service |
b98cfc |
QString name = QString(ctrl.name) + " - " + QString().setNum(ctrl.value) +
|
|
Packit Service |
b98cfc |
" (" + QString().setNum(ctrl.min) + "," + + QString().setNum(ctrl.max) + ")";
|
|
Packit Service |
b98cfc |
return name;
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
void TransformPatchDlg::okClicked()
|
|
Packit Service |
b98cfc |
{
|
|
Packit Service |
b98cfc |
// load patch
|
|
Packit Service |
b98cfc |
done(Accepted);
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
void TransformPatchDlg::cancelClicked()
|
|
Packit Service |
b98cfc |
{
|
|
Packit Service |
b98cfc |
done(Rejected);
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
void TransformPatchDlg::inputsDoubleClicked(QListBoxItem *item)
|
|
Packit Service |
b98cfc |
{
|
|
Packit Service |
b98cfc |
bool ok;
|
|
Packit Service |
b98cfc |
int idx = lbInputs->index(item);
|
|
Packit Service |
b98cfc |
QString text = inputNames[idx];
|
|
Packit Service |
b98cfc |
text = QInputDialog::getText(
|
|
Packit Service |
b98cfc |
APP_NAME, "Input name:", QLineEdit::Normal,
|
|
Packit Service |
b98cfc |
text, &ok, this );
|
|
Packit Service |
b98cfc |
if (ok && !text.isEmpty())
|
|
Packit Service |
b98cfc |
{
|
|
Packit Service |
b98cfc |
inputNames[idx] = text;
|
|
Packit Service |
b98cfc |
lbInputs->changeItem(text, idx);
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
void TransformPatchDlg::outputsDoubleClicked(QListBoxItem *item)
|
|
Packit Service |
b98cfc |
{
|
|
Packit Service |
b98cfc |
bool ok;
|
|
Packit Service |
b98cfc |
int idx = lbOutputs->index(item);
|
|
Packit Service |
b98cfc |
QString text = outputNames[idx];
|
|
Packit Service |
b98cfc |
text = QInputDialog::getText(
|
|
Packit Service |
b98cfc |
APP_NAME, "Output name:", QLineEdit::Normal,
|
|
Packit Service |
b98cfc |
text, &ok, this );
|
|
Packit Service |
b98cfc |
if (ok && !text.isEmpty())
|
|
Packit Service |
b98cfc |
{
|
|
Packit Service |
b98cfc |
outputNames[idx] = text;
|
|
Packit Service |
b98cfc |
lbOutputs->changeItem(text, idx);
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
void TransformPatchDlg::ctrlAddClicked()
|
|
Packit Service |
b98cfc |
{
|
|
Packit Service |
b98cfc |
QValueList <int> selectedCtrl, *tmpList;
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
int i;
|
|
Packit Service |
b98cfc |
unsigned int min = 0;
|
|
Packit Service |
b98cfc |
unsigned int max = 0;
|
|
Packit Service |
b98cfc |
bool first = true;
|
|
Packit Service |
b98cfc |
for (i = 0; i < (int)lbFileCtrl->count(); i++)
|
|
Packit Service |
b98cfc |
{
|
|
Packit Service |
b98cfc |
if (lbFileCtrl->isSelected(i))
|
|
Packit Service |
b98cfc |
{
|
|
Packit Service |
b98cfc |
selectedCtrl.append(ctrlFileList[i]);
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
EMU10k1Ctrl ctrl;
|
|
Packit Service |
b98cfc |
file->getCtrl(ctrlFileList[i], &ctrl);
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
if (first)
|
|
Packit Service |
b98cfc |
{
|
|
Packit Service |
b98cfc |
min = ctrl.min;
|
|
Packit Service |
b98cfc |
max = ctrl.max;
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
else
|
|
Packit Service |
b98cfc |
{
|
|
Packit Service |
b98cfc |
if (min != ctrl.min ||
|
|
Packit Service |
b98cfc |
max != ctrl.max)
|
|
Packit Service |
b98cfc |
{
|
|
Packit Service |
b98cfc |
QMessageBox::critical(0, APP_NAME,
|
|
Packit Service |
b98cfc |
QString("Wrong range for control %1").arg(ctrl.name));
|
|
Packit Service |
b98cfc |
return;
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
first = false;
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
if (selectedCtrl.count() > 0)
|
|
Packit Service |
b98cfc |
{
|
|
Packit Service |
b98cfc |
TranslatedCtrl ctrl;
|
|
Packit Service |
b98cfc |
tmpList = &selectedCtrl;
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
for (;;)
|
|
Packit Service |
b98cfc |
{
|
|
Packit Service |
b98cfc |
FileControlDlg d(tmpList, file, &ctrl);
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
if (d.exec() == QDialog::Accepted)
|
|
Packit Service |
b98cfc |
{
|
|
Packit Service |
b98cfc |
bool found = false;
|
|
Packit Service |
b98cfc |
// check name - in translated
|
|
Packit Service |
b98cfc |
for (i = 0; i < (int)translatedList.count(); i++)
|
|
Packit Service |
b98cfc |
{
|
|
Packit Service |
b98cfc |
if (translatedList[i].name == ctrl.name)
|
|
Packit Service |
b98cfc |
{
|
|
Packit Service |
b98cfc |
found = true;
|
|
Packit Service |
b98cfc |
break;
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
// check in other
|
|
Packit Service |
b98cfc |
for (i = 0; i < (int)ctrlFileList.count(); i++)
|
|
Packit Service |
b98cfc |
{
|
|
Packit Service |
b98cfc |
EMU10k1Ctrl ctrl1;
|
|
Packit Service |
b98cfc |
file->getCtrl(ctrlFileList[i], &ctrl1);
|
|
Packit Service |
b98cfc |
if (selectedCtrl.findIndex(ctrlFileList[i]) < 0 && ctrl1.name == ctrl.name)
|
|
Packit Service |
b98cfc |
{
|
|
Packit Service |
b98cfc |
found = true;
|
|
Packit Service |
b98cfc |
break;
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
if (found)
|
|
Packit Service |
b98cfc |
{
|
|
Packit Service |
b98cfc |
QMessageBox::critical( 0, APP_NAME,
|
|
Packit Service |
b98cfc |
QString("There already is control with this name %1").arg(ctrl.name));
|
|
Packit Service |
b98cfc |
tmpList = NULL;
|
|
Packit Service |
b98cfc |
continue;
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
else
|
|
Packit Service |
b98cfc |
{
|
|
Packit Service |
b98cfc |
// add to translated
|
|
Packit Service |
b98cfc |
translatedList.append(ctrl);
|
|
Packit Service |
b98cfc |
// remove selected controls from ctrlList
|
|
Packit Service |
b98cfc |
for (i = 0; i < (int)selectedCtrl.count(); i++)
|
|
Packit Service |
b98cfc |
{
|
|
Packit Service |
b98cfc |
int fidx = ctrlFileList.findIndex(selectedCtrl[i]);
|
|
Packit Service |
b98cfc |
if (fidx >= 0)
|
|
Packit Service |
b98cfc |
{
|
|
Packit Service |
b98cfc |
ctrlFileList.remove(selectedCtrl[i]);
|
|
Packit Service |
b98cfc |
lbFileCtrl->removeItem(fidx);
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
lbLoadedCtrl->insertItem(ctrl.name);
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
break;
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
else
|
|
Packit Service |
b98cfc |
break;
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
void TransformPatchDlg::ctrlDelClicked()
|
|
Packit Service |
b98cfc |
{
|
|
Packit Service |
b98cfc |
QValueList <int> selectedCtrl;
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
int i, j;
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
for (i = 0; i < (int)lbLoadedCtrl->count(); i++)
|
|
Packit Service |
b98cfc |
{
|
|
Packit Service |
b98cfc |
if (lbLoadedCtrl->isSelected(i))
|
|
Packit Service |
b98cfc |
{
|
|
Packit Service |
b98cfc |
selectedCtrl.append(i);
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
if (selectedCtrl.count() > 0)
|
|
Packit Service |
b98cfc |
{
|
|
Packit Service |
b98cfc |
// add controls to FileList
|
|
Packit Service |
b98cfc |
for (i = 0; i < (int)selectedCtrl.count(); i++)
|
|
Packit Service |
b98cfc |
{
|
|
Packit Service |
b98cfc |
TranslatedCtrl ctrl = translatedList[selectedCtrl[i]];
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
for (j = 0; j < (int)ctrl.fileCtrlIdx.count(); j++)
|
|
Packit Service |
b98cfc |
{
|
|
Packit Service |
b98cfc |
lbFileCtrl->insertItem(getName(ctrl.fileCtrlIdx[j]));
|
|
Packit Service |
b98cfc |
ctrlFileList.append(ctrl.fileCtrlIdx[j]);
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
// delete selected
|
|
Packit Service |
b98cfc |
for (i = 0; i < (int)selectedCtrl.count(); i++)
|
|
Packit Service |
b98cfc |
{
|
|
Packit Service |
b98cfc |
translatedList.remove(translatedList.at(selectedCtrl[i]));
|
|
Packit Service |
b98cfc |
lbLoadedCtrl->removeItem(selectedCtrl[i]);
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
void TransformPatchDlg::loadedDoubleClicked(QListBoxItem *item)
|
|
Packit Service |
b98cfc |
{
|
|
Packit Service |
b98cfc |
int idx = lbLoadedCtrl->index(item);
|
|
Packit Service |
b98cfc |
int i;
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
TranslatedCtrl ctrl = translatedList[idx];
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
for (;;)
|
|
Packit Service |
b98cfc |
{
|
|
Packit Service |
b98cfc |
FileControlDlg d(NULL, file, &ctrl);
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
if (d.exec() == QDialog::Accepted)
|
|
Packit Service |
b98cfc |
{
|
|
Packit Service |
b98cfc |
bool found = false;
|
|
Packit Service |
b98cfc |
// check name - in translated
|
|
Packit Service |
b98cfc |
for (i = 0; i < (int)translatedList.count(); i++)
|
|
Packit Service |
b98cfc |
{
|
|
Packit Service |
b98cfc |
if (i != idx && translatedList[i].name == ctrl.name)
|
|
Packit Service |
b98cfc |
{
|
|
Packit Service |
b98cfc |
found = true;
|
|
Packit Service |
b98cfc |
break;
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
// check in other
|
|
Packit Service |
b98cfc |
for (i = 0; i < (int)ctrlFileList.count(); i++)
|
|
Packit Service |
b98cfc |
{
|
|
Packit Service |
b98cfc |
EMU10k1Ctrl ctrl1;
|
|
Packit Service |
b98cfc |
file->getCtrl(ctrlFileList[i], &ctrl1);
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
if (ctrl.name == ctrl.name)
|
|
Packit Service |
b98cfc |
{
|
|
Packit Service |
b98cfc |
found = true;
|
|
Packit Service |
b98cfc |
break;
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
if (found)
|
|
Packit Service |
b98cfc |
{
|
|
Packit Service |
b98cfc |
QMessageBox::critical( 0, APP_NAME,
|
|
Packit Service |
b98cfc |
QString("There already is control with this name %1").arg(ctrl.name));
|
|
Packit Service |
b98cfc |
continue;
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
else
|
|
Packit Service |
b98cfc |
{
|
|
Packit Service |
b98cfc |
// update name
|
|
Packit Service |
b98cfc |
lbLoadedCtrl->changeItem(ctrl.name, idx);
|
|
Packit Service |
b98cfc |
translatedList[idx] = ctrl;
|
|
Packit Service |
b98cfc |
break;
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
else
|
|
Packit Service |
b98cfc |
break;
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
void TransformPatchDlg::fileDoubleClicked(QListBoxItem *item)
|
|
Packit Service |
b98cfc |
{
|
|
Packit Service |
b98cfc |
bool ok;
|
|
Packit Service |
b98cfc |
int idx = lbFileCtrl->index(item);
|
|
Packit Service |
b98cfc |
EMU10k1Ctrl ctrl;
|
|
Packit Service |
b98cfc |
file->getCtrl(ctrlFileList[idx], &ctrl);
|
|
Packit Service |
b98cfc |
QString text = ctrl.name;
|
|
Packit Service |
b98cfc |
text = QInputDialog::getText(
|
|
Packit Service |
b98cfc |
APP_NAME, "Control name:", QLineEdit::Normal,
|
|
Packit Service |
b98cfc |
text, &ok, this );
|
|
Packit Service |
b98cfc |
if (ok && !text.isEmpty())
|
|
Packit Service |
b98cfc |
{
|
|
Packit Service |
b98cfc |
ctrl.name= text;
|
|
Packit Service |
b98cfc |
file->setCtrl(ctrlFileList[idx], &ctrl);
|
|
Packit Service |
b98cfc |
lbFileCtrl->changeItem(getName(idx), idx);
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
int TransformPatchDlg::transformFile(LD10k1File **outFile)
|
|
Packit Service |
b98cfc |
{
|
|
Packit Service |
b98cfc |
// controls - translated
|
|
Packit Service |
b98cfc |
int i, j, err;
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
LD10k1File *of = NULL;
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
LD10k1FileTransfCtl translCtls[32];
|
|
Packit Service |
b98cfc |
for (i = 0; i < (int)translatedList.count(); i++)
|
|
Packit Service |
b98cfc |
{
|
|
Packit Service |
b98cfc |
TranslatedCtrl tctrl = translatedList[i];
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
translCtls[i].emu_ctl_count = (int)tctrl.fileCtrlIdx.count();
|
|
Packit Service |
b98cfc |
for (j = 0; j < translCtls[i].emu_ctl_count; j++)
|
|
Packit Service |
b98cfc |
translCtls[i].emu_ctls[j] = tctrl.fileCtrlIdx[j];
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
translCtls[i].ctl_name = tctrl.name;
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
if ((err = LD10k1File::transformFromEmuFile(file, translCtls, (int)translatedList.count(), outFile)) < 0)
|
|
Packit Service |
b98cfc |
return err;
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
of = *outFile;
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
// rename inputs
|
|
Packit Service |
b98cfc |
for (i = 0; i < of->getIOCount(false); i++)
|
|
Packit Service |
b98cfc |
of->setIOName(false, i, inputNames[i]);
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
// rename output
|
|
Packit Service |
b98cfc |
for (i = 0; i < of->getIOCount(true); i++)
|
|
Packit Service |
b98cfc |
of->setIOName(true, i, outputNames[i]);
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
// set others parameters for patch controls
|
|
Packit Service |
b98cfc |
for (i = 0; i < (int)translatedList.count(); i++)
|
|
Packit Service |
b98cfc |
{
|
|
Packit Service |
b98cfc |
TranslatedCtrl tctrl = translatedList[i];
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
switch (tctrl.translation)
|
|
Packit Service |
b98cfc |
{
|
|
Packit Service |
b98cfc |
case TranslatedCtrl::None:
|
|
Packit Service |
b98cfc |
of->setCtlTranslation(i, LD10k1File::None);
|
|
Packit Service |
b98cfc |
break;
|
|
Packit Service |
b98cfc |
case TranslatedCtrl::Table100:
|
|
Packit Service |
b98cfc |
of->setCtlTranslation(i, LD10k1File::Table100);
|
|
Packit Service |
b98cfc |
break;
|
|
Packit Service |
b98cfc |
case TranslatedCtrl::Bass:
|
|
Packit Service |
b98cfc |
of->setCtlTranslation(i, LD10k1File::Bass);
|
|
Packit Service |
b98cfc |
break;
|
|
Packit Service |
b98cfc |
case TranslatedCtrl::Treble:
|
|
Packit Service |
b98cfc |
of->setCtlTranslation(i, LD10k1File::Treble);
|
|
Packit Service |
b98cfc |
break;
|
|
Packit Service |
b98cfc |
case TranslatedCtrl::OnOff:
|
|
Packit Service |
b98cfc |
of->setCtlTranslation(i, LD10k1File::OnOff);
|
|
Packit Service |
b98cfc |
break;
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
of->setCtlValVCount(i, tctrl.visible);
|
|
Packit Service |
b98cfc |
for (j = 0; j < (int)tctrl.values.count(); j++)
|
|
Packit Service |
b98cfc |
of->setCtlVal(i, j, tctrl.values[j]);
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
return 0;
|
|
Packit Service |
b98cfc |
}
|