Blame qlo10k1/src/patchdialog.cpp

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
Packit Service b98cfc
#include "patchdialog.h"
Packit Service b98cfc
#include "structure_patch.h"
Packit Service b98cfc
Packit Service b98cfc
PatchDlg::PatchDlg(StrGlobal *glob, StrPatch *p)
Packit Service b98cfc
	: PatchDialogBase()
Packit Service b98cfc
{
Packit Service b98cfc
	global = glob;
Packit Service b98cfc
	patch = p;
Packit Service b98cfc
Packit Service b98cfc
	lePatchName->setText(p->name());
Packit Service b98cfc
Packit Service b98cfc
	// load controls list
Packit Service b98cfc
	/*
Packit Service b98cfc
	FIXME
Packit Service b98cfc
	int i;
Packit Service b98cfc
	for (i = 0; i < file->ctrl_count; 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
	/* FIXME
Packit Service b98cfc
	switch (file->in_count)
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->in_count; 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->out_count)
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->out_count; i++)
Packit Service b98cfc
				outputNames.append("");
Packit Service b98cfc
			break;
Packit Service b98cfc
	}
Packit Service b98cfc
Packit Service b98cfc
	for (i = 0; i < file->in_count; i++)
Packit Service b98cfc
	{
Packit Service b98cfc
		lbInputs->insertItem(inputNames[i]);
Packit Service b98cfc
Packit Service b98cfc
		RouteInfo r;
Packit Service b98cfc
		inRoutes.append(r);
Packit Service b98cfc
Packit Service b98cfc
		lbConnInputs->insertItem(getRouteName(false, i));
Packit Service b98cfc
	}
Packit Service b98cfc
Packit Service b98cfc
	for (i = 0; i < file->out_count; i++)
Packit Service b98cfc
	{
Packit Service b98cfc
		lbOutputs->insertItem(outputNames[i]);
Packit Service b98cfc
Packit Service b98cfc
		RouteInfo r;
Packit Service b98cfc
		outRoutes.append(r);
Packit Service b98cfc
Packit Service b98cfc
		lbConnOutputs->insertItem(getRouteName(true, i));
Packit Service b98cfc
	}
Packit Service b98cfc
	*/
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
	connect(lbConnInputs, SIGNAL(doubleClicked(QListBoxItem *)), this, SLOT(connInputsDoubleClicked(QListBoxItem *)));
Packit Service b98cfc
	connect(lbConnOutputs, SIGNAL(doubleClicked(QListBoxItem *)), this, SLOT(connOutputsDoubleClicked(QListBoxItem *)));
Packit Service b98cfc
/*
Packit Service b98cfc
	connect(cbInsertInRep, SIGNAL(stateChanged(int)), this, SLOT(insertInRepStateChanged(int)));
Packit Service b98cfc
Packit Service b98cfc
	connect(rbArchBoth, SIGNAL(clicked()), this, SLOT(archBothClicked()));
Packit Service b98cfc
	connect(rbArchEmu10k1, SIGNAL(clicked()), this, SLOT(archEmu10k1Clicked()));
Packit Service b98cfc
	connect(rbArchEmu10k2, SIGNAL(clicked()), this, SLOT(archEmu10k2Clicked()));
Packit Service b98cfc
Packit Service b98cfc
	tabRepository2->setEnabled(false);*/
Packit Service b98cfc
}
Packit Service b98cfc
Packit Service b98cfc
/*QString LoadPatchDlg::getName(int i)
Packit Service b98cfc
{
Packit Service b98cfc
	EMU10k1CtrlReg *ctrl;
Packit Service b98cfc
Packit Service b98cfc
	ctrl = &(file->ctrls[i]);
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
/*QString LoadPatchDlg::getRouteName(bool output, int i)
Packit Service b98cfc
{
Packit Service b98cfc
	QString name;
Packit Service b98cfc
	RouteInfo ri;
Packit Service b98cfc
Packit Service b98cfc
	if (output)
Packit Service b98cfc
	{
Packit Service b98cfc
		name = outputNames[i];
Packit Service b98cfc
		ri = outRoutes[i];
Packit Service b98cfc
	}
Packit Service b98cfc
	else
Packit Service b98cfc
	{
Packit Service b98cfc
		name = inputNames[i];
Packit Service b98cfc
		ri = inRoutes[i];
Packit Service b98cfc
	}
Packit Service b98cfc
Packit Service b98cfc
	switch (ri.io)
Packit Service b98cfc
	{
Packit Service b98cfc
		case RouteInfo::None:
Packit Service b98cfc
			break;
Packit Service b98cfc
		case RouteInfo::FX:
Packit Service b98cfc
			name += QString(" -> FX:") + global->Registers.at(ri.reg)->name();
Packit Service b98cfc
			break;
Packit Service b98cfc
		case RouteInfo::In:
Packit Service b98cfc
			name += QString(" -> In:") + global->Registers.at(ri.reg)->name();
Packit Service b98cfc
			break;
Packit Service b98cfc
		case RouteInfo::Out:
Packit Service b98cfc
			name += QString(" -> Out:") + global->Registers.at(ri.reg)->name();
Packit Service b98cfc
			break;
Packit Service b98cfc
		case RouteInfo::PatchIn:
Packit Service b98cfc
		case RouteInfo::PatchOut:
Packit Service b98cfc
			StrPatch *patch = global->Patches.at(ri.patch);
Packit Service b98cfc
			if (ri.io == RouteInfo::PatchIn)
Packit Service b98cfc
				name += QString(" -> In:") + patch->name() + "-" + patch->Registers.at(ri.reg)->name();
Packit Service b98cfc
			else
Packit Service b98cfc
				name += QString(" -> Out:") + patch->name() + "-" + patch->Registers.at(ri.reg)->name();
Packit Service b98cfc
			break;
Packit Service b98cfc
	}
Packit Service b98cfc
Packit Service b98cfc
	return name;
Packit Service b98cfc
}*/
Packit Service b98cfc
Packit Service b98cfc
void PatchDlg::okClicked()
Packit Service b98cfc
{
Packit Service b98cfc
	// update routing and rename patch
Packit Service b98cfc
	done(Accepted);
Packit Service b98cfc
}
Packit Service b98cfc
Packit Service b98cfc
void PatchDlg::cancelClicked()
Packit Service b98cfc
{
Packit Service b98cfc
	done(Rejected);
Packit Service b98cfc
}
Packit Service b98cfc
Packit Service b98cfc
void PatchDlg::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
		lbConnInputs->changeItem(getRouteName(false, idx), idx);
Packit Service b98cfc
	}*/
Packit Service b98cfc
}
Packit Service b98cfc
Packit Service b98cfc
void PatchDlg::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
		lbConnOutputs->changeItem(getRouteName(false, idx), idx);
Packit Service b98cfc
	}*/
Packit Service b98cfc
}
Packit Service b98cfc
Packit Service b98cfc
Packit Service b98cfc
void PatchDlg::connInputsDoubleClicked(QListBoxItem *item)
Packit Service b98cfc
{
Packit Service b98cfc
	/*int idx = lbConnInputs->index(item);
Packit Service b98cfc
	RouteInfo ri = inRoutes[idx];
Packit Service b98cfc
Packit Service b98cfc
	ConnectionWizard d(false, global, &ri);
Packit Service b98cfc
Packit Service b98cfc
	if (d.exec() == QDialog::Accepted)
Packit Service b98cfc
	{
Packit Service b98cfc
		inRoutes[idx] = ri;
Packit Service b98cfc
		lbConnInputs->changeItem(getRouteName(false, idx), idx);
Packit Service b98cfc
	}
Packit Service b98cfc
	*/
Packit Service b98cfc
}
Packit Service b98cfc
Packit Service b98cfc
void PatchDlg::connOutputsDoubleClicked(QListBoxItem *item)
Packit Service b98cfc
{
Packit Service b98cfc
	/*int idx = lbConnOutputs->index(item);
Packit Service b98cfc
	RouteInfo ri = outRoutes[idx];
Packit Service b98cfc
Packit Service b98cfc
	ConnectionWizard d(true, global, &ri);
Packit Service b98cfc
Packit Service b98cfc
	if (d.exec() == QDialog::Accepted)
Packit Service b98cfc
	{
Packit Service b98cfc
		outRoutes[idx] = ri;
Packit Service b98cfc
		lbConnOutputs->changeItem(getRouteName(true, idx), idx);
Packit Service b98cfc
	}*/
Packit Service b98cfc
}
Packit Service b98cfc
Packit Service b98cfc
Packit Service b98cfc
/*LD10k1Route LoadPatchDlg::getRoute(bool out, int idx)
Packit Service b98cfc
{
Packit Service b98cfc
	RouteInfo *route;
Packit Service b98cfc
	if (out)
Packit Service b98cfc
		route = &(outRoutes[idx]);
Packit Service b98cfc
	else
Packit Service b98cfc
		route = &(inRoutes[idx]);
Packit Service b98cfc
Packit Service b98cfc
	LD10k1Route nroute;
Packit Service b98cfc
Packit Service b98cfc
	nroute.PatchTo = route->patch;
Packit Service b98cfc
	nroute.Multi = route->multi;
Packit Service b98cfc
Packit Service b98cfc
	if (route->patch >= 0 && route->reg >= 0)
Packit Service b98cfc
	{
Packit Service b98cfc
		StrPatch *patch = global->Patches.at(route->patch);
Packit Service b98cfc
		StrRegister *reg = patch->Registers.at(route->reg);
Packit Service b98cfc
		nroute.RegTo = reg->idx();
Packit Service b98cfc
	}
Packit Service b98cfc
	else if (route->reg >= 0)
Packit Service b98cfc
	{
Packit Service b98cfc
		StrRegister *reg = global->Registers.at(route->reg);
Packit Service b98cfc
		nroute.RegTo = reg->phIdx();
Packit Service b98cfc
	}
Packit Service b98cfc
	else
Packit Service b98cfc
	{
Packit Service b98cfc
		nroute.RegTo = -1;
Packit Service b98cfc
	}
Packit Service b98cfc
Packit Service b98cfc
	return nroute;
Packit Service b98cfc
}
Packit Service b98cfc
*/