Blame qlo10k1/src/transformpatchdialog.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
#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
}