|
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 <stdlib.h>
|
|
Packit Service |
b98cfc |
#include "ld10k1file.h"
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
class EMU10k1FilePrivate
|
|
Packit Service |
b98cfc |
{
|
|
Packit Service |
b98cfc |
liblo10k1_emu_patch_t *ep;
|
|
Packit Service |
b98cfc |
public:
|
|
Packit Service |
b98cfc |
EMU10k1FilePrivate()
|
|
Packit Service |
b98cfc |
{
|
|
Packit Service |
b98cfc |
ep = liblo10k1_emu_new_patch();
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
~EMU10k1FilePrivate()
|
|
Packit Service |
b98cfc |
{
|
|
Packit Service |
b98cfc |
if (ep)
|
|
Packit Service |
b98cfc |
liblo10k1_emu_free_patch(ep);
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
void setNativeStruct(liblo10k1_emu_patch_t *ns)
|
|
Packit Service |
b98cfc |
{
|
|
Packit Service |
b98cfc |
if (ep)
|
|
Packit Service |
b98cfc |
liblo10k1_emu_free_patch(ep);
|
|
Packit Service |
b98cfc |
ep = ns;
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
liblo10k1_emu_patch_t *getNativeStruct()
|
|
Packit Service |
b98cfc |
{
|
|
Packit Service |
b98cfc |
return ep;
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
};
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
EMU10k1File::EMU10k1File()
|
|
Packit Service |
b98cfc |
{
|
|
Packit Service |
b98cfc |
privData = new EMU10k1FilePrivate();
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
EMU10k1File::~EMU10k1File()
|
|
Packit Service |
b98cfc |
{
|
|
Packit Service |
b98cfc |
if (privData)
|
|
Packit Service |
b98cfc |
delete (privData);
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
int EMU10k1File::LoadFromFile(QString file, EMU10k1File **ef)
|
|
Packit Service |
b98cfc |
{
|
|
Packit Service |
b98cfc |
liblo10k1_emu_patch_t *nf;
|
|
Packit Service |
b98cfc |
char fn[1000]; // FIXME file name length
|
|
Packit Service |
b98cfc |
int err;
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
strncpy(fn, file.local8Bit(), 999);
|
|
Packit Service |
b98cfc |
fn[999] = '\0';
|
|
Packit Service |
b98cfc |
if ((err = liblo10k1_emu_load_patch(fn, &nf)) < 0)
|
|
Packit Service |
b98cfc |
return err;
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
EMU10k1File *efi = new EMU10k1File();
|
|
Packit Service |
b98cfc |
efi->privData->setNativeStruct(nf);
|
|
Packit Service |
b98cfc |
*ef = efi;
|
|
Packit Service |
b98cfc |
return 0;
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
void EMU10k1File::getCtrl(unsigned int i, EMU10k1Ctrl *ctrl)
|
|
Packit Service |
b98cfc |
{
|
|
Packit Service |
b98cfc |
liblo10k1_emu_patch_t *nf = privData->getNativeStruct();
|
|
Packit Service |
b98cfc |
liblo10k1_emu_ctl_t *ctl;
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
if (i >= nf->ctl_count)
|
|
Packit Service |
b98cfc |
return;
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
ctl = &(nf->ctls[i]);
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
ctrl->value = ctl->ctl_val;
|
|
Packit Service |
b98cfc |
ctrl->min = ctl->ctl_val_min;
|
|
Packit Service |
b98cfc |
ctrl->max = ctl->ctl_val_max;
|
|
Packit Service |
b98cfc |
ctrl->name = ctl->ctl_name;
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
void EMU10k1File::setCtrl(unsigned int i, EMU10k1Ctrl *ctrl)
|
|
Packit Service |
b98cfc |
{
|
|
Packit Service |
b98cfc |
liblo10k1_emu_patch_t *nf = privData->getNativeStruct();
|
|
Packit Service |
b98cfc |
liblo10k1_emu_ctl_t *ctl;
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
if (i >= nf->ctl_count)
|
|
Packit Service |
b98cfc |
return;
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
ctl = &(nf->ctls[i]);
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
ctl->ctl_val = ctrl->value;
|
|
Packit Service |
b98cfc |
ctl->ctl_val_min = ctrl->min;
|
|
Packit Service |
b98cfc |
ctl->ctl_val_max = ctrl->max;
|
|
Packit Service |
b98cfc |
strcpy(ctl->ctl_name, ctrl->name.local8Bit());
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
QString EMU10k1File::getPatchName()
|
|
Packit Service |
b98cfc |
{
|
|
Packit Service |
b98cfc |
liblo10k1_emu_patch_t *nf = privData->getNativeStruct();
|
|
Packit Service |
b98cfc |
return QString(nf->patch_name);
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
int EMU10k1File::getCtrlCount()
|
|
Packit Service |
b98cfc |
{
|
|
Packit Service |
b98cfc |
liblo10k1_emu_patch_t *nf = privData->getNativeStruct();
|
|
Packit Service |
b98cfc |
return nf->ctl_count;
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
int EMU10k1File::getInCount()
|
|
Packit Service |
b98cfc |
{
|
|
Packit Service |
b98cfc |
liblo10k1_emu_patch_t *nf = privData->getNativeStruct();
|
|
Packit Service |
b98cfc |
return nf->in_count;
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
int EMU10k1File::getOutCount()
|
|
Packit Service |
b98cfc |
{
|
|
Packit Service |
b98cfc |
liblo10k1_emu_patch_t *nf = privData->getNativeStruct();
|
|
Packit Service |
b98cfc |
return nf->out_count;
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
class LD10k1FilePrivate
|
|
Packit Service |
b98cfc |
{
|
|
Packit Service |
b98cfc |
liblo10k1_dsp_patch_t *lp;
|
|
Packit Service |
b98cfc |
public:
|
|
Packit Service |
b98cfc |
LD10k1FilePrivate()
|
|
Packit Service |
b98cfc |
{
|
|
Packit Service |
b98cfc |
lp = liblo10k1_patch_alloc(0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
~LD10k1FilePrivate()
|
|
Packit Service |
b98cfc |
{
|
|
Packit Service |
b98cfc |
if (lp)
|
|
Packit Service |
b98cfc |
liblo10k1_patch_free(lp);
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
void setNativeStruct(liblo10k1_dsp_patch_t *ns)
|
|
Packit Service |
b98cfc |
{
|
|
Packit Service |
b98cfc |
if (lp)
|
|
Packit Service |
b98cfc |
liblo10k1_patch_free(lp);
|
|
Packit Service |
b98cfc |
lp = ns;
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
liblo10k1_dsp_patch_t *getNativeStruct()
|
|
Packit Service |
b98cfc |
{
|
|
Packit Service |
b98cfc |
return lp;
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
};
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
LD10k1File::LD10k1File()
|
|
Packit Service |
b98cfc |
{
|
|
Packit Service |
b98cfc |
privData = new LD10k1FilePrivate();
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
LD10k1File::~LD10k1File()
|
|
Packit Service |
b98cfc |
{
|
|
Packit Service |
b98cfc |
if (privData)
|
|
Packit Service |
b98cfc |
delete (privData);
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
liblo10k1_dsp_patch_t *LD10k1File::getLD10k1Format()
|
|
Packit Service |
b98cfc |
{
|
|
Packit Service |
b98cfc |
return privData->getNativeStruct();
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
void LD10k1File::setLD10k1Format(liblo10k1_dsp_patch_t *patch)
|
|
Packit Service |
b98cfc |
{
|
|
Packit Service |
b98cfc |
privData->setNativeStruct(patch);
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
int LD10k1File::transformFromEmuFile(EMU10k1File *ef, LD10k1FileTransfCtl *tc, int tc_count, LD10k1File **lf)
|
|
Packit Service |
b98cfc |
{
|
|
Packit Service |
b98cfc |
liblo10k1_ctl_transform_t *ntc = (liblo10k1_ctl_transform_t *)malloc(sizeof(liblo10k1_ctl_transform_t) * tc_count);
|
|
Packit Service |
b98cfc |
if (!ntc)
|
|
Packit Service |
b98cfc |
return LD10K1_ERR_NO_MEM;
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
// copy tc to ntc
|
|
Packit Service |
b98cfc |
int i, j, err;
|
|
Packit Service |
b98cfc |
liblo10k1_dsp_patch_t *np = NULL;
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
for (i = 0; i < tc_count; i++)
|
|
Packit Service |
b98cfc |
{
|
|
Packit Service |
b98cfc |
for (j = 0; j < tc[i].emu_ctl_count; j++)
|
|
Packit Service |
b98cfc |
ntc[i].emu_ctls[j] = tc[i].emu_ctls[j];
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
ntc[i].emu_ctl_count = tc[i].emu_ctl_count;
|
|
Packit Service |
b98cfc |
strncpy(ntc[i].ctl_name, tc[i].ctl_name.local8Bit(), 43);
|
|
Packit Service |
b98cfc |
ntc[i].ctl_name[43] = '\0';
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
if ((err = liblo10k1_emu_transform_patch(ef->privData->getNativeStruct(), ntc, tc_count, &np)) < 0)
|
|
Packit Service |
b98cfc |
{
|
|
Packit Service |
b98cfc |
free(ntc);
|
|
Packit Service |
b98cfc |
return err;
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
free(ntc);
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
LD10k1File *nlf = new LD10k1File();
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
nlf->privData->setNativeStruct(np);
|
|
Packit Service |
b98cfc |
*lf = nlf;
|
|
Packit Service |
b98cfc |
return 0;
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
int LD10k1File::getIOCount(bool out)
|
|
Packit Service |
b98cfc |
{
|
|
Packit Service |
b98cfc |
liblo10k1_dsp_patch_t *nf = privData->getNativeStruct();
|
|
Packit Service |
b98cfc |
if (out)
|
|
Packit Service |
b98cfc |
return nf->out_count;
|
|
Packit Service |
b98cfc |
else
|
|
Packit Service |
b98cfc |
return nf->in_count;
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
QString LD10k1File::getIOName(bool out, unsigned int i)
|
|
Packit Service |
b98cfc |
{
|
|
Packit Service |
b98cfc |
liblo10k1_dsp_patch_t *nf = privData->getNativeStruct();
|
|
Packit Service |
b98cfc |
if (out)
|
|
Packit Service |
b98cfc |
{
|
|
Packit Service |
b98cfc |
if (i >= nf->out_count)
|
|
Packit Service |
b98cfc |
return "";
|
|
Packit Service |
b98cfc |
return QString(nf->outs[i].name);
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
else
|
|
Packit Service |
b98cfc |
{
|
|
Packit Service |
b98cfc |
if (i >= nf->in_count)
|
|
Packit Service |
b98cfc |
return "";
|
|
Packit Service |
b98cfc |
return QString(nf->ins[i].name);
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
void LD10k1File::setIOName(bool out, unsigned int i, QString name)
|
|
Packit Service |
b98cfc |
{
|
|
Packit Service |
b98cfc |
liblo10k1_dsp_patch_t *nf = privData->getNativeStruct();
|
|
Packit Service |
b98cfc |
if (out)
|
|
Packit Service |
b98cfc |
{
|
|
Packit Service |
b98cfc |
if (i >= nf->out_count)
|
|
Packit Service |
b98cfc |
return;
|
|
Packit Service |
b98cfc |
strncpy(nf->outs[i].name, name.local8Bit(), MAX_NAME_LEN - 1);
|
|
Packit Service |
b98cfc |
nf->outs[i].name[MAX_NAME_LEN - 1] = '\0';
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
else
|
|
Packit Service |
b98cfc |
{
|
|
Packit Service |
b98cfc |
if (i >= nf->in_count)
|
|
Packit Service |
b98cfc |
return;
|
|
Packit Service |
b98cfc |
strncpy(nf->ins[i].name, name.local8Bit(), MAX_NAME_LEN - 1);
|
|
Packit Service |
b98cfc |
nf->ins[i].name[MAX_NAME_LEN - 1] = '\0';
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
int LD10k1File::getCtlCount()
|
|
Packit Service |
b98cfc |
{
|
|
Packit Service |
b98cfc |
liblo10k1_dsp_patch_t *nf = privData->getNativeStruct();
|
|
Packit Service |
b98cfc |
return nf->ctl_count;
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
QString LD10k1File::getCtlName(unsigned int i)
|
|
Packit Service |
b98cfc |
{
|
|
Packit Service |
b98cfc |
liblo10k1_dsp_patch_t *nf = privData->getNativeStruct();
|
|
Packit Service |
b98cfc |
if (i >= nf->ctl_count)
|
|
Packit Service |
b98cfc |
return "";
|
|
Packit Service |
b98cfc |
return QString(nf->ctl[i].name);
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
void LD10k1File::setCtlName(unsigned int i, QString name)
|
|
Packit Service |
b98cfc |
{
|
|
Packit Service |
b98cfc |
liblo10k1_dsp_patch_t *nf = privData->getNativeStruct();
|
|
Packit Service |
b98cfc |
if (i >= nf->ctl_count)
|
|
Packit Service |
b98cfc |
return;
|
|
Packit Service |
b98cfc |
strncpy(nf->ctl[i].name, name.local8Bit(), 43);
|
|
Packit Service |
b98cfc |
nf->ctl[i].name[43] = '\0';
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
LD10k1File::TranslationType LD10k1File::getCtlTranslation(unsigned int i)
|
|
Packit Service |
b98cfc |
{
|
|
Packit Service |
b98cfc |
liblo10k1_dsp_patch_t *nf = privData->getNativeStruct();
|
|
Packit Service |
b98cfc |
if (i >= nf->ctl_count)
|
|
Packit Service |
b98cfc |
return None;
|
|
Packit Service |
b98cfc |
switch (nf->ctl[i].translation)
|
|
Packit Service |
b98cfc |
{
|
|
Packit Service |
b98cfc |
case EMU10K1_GPR_TRANSLATION_NONE:
|
|
Packit Service |
b98cfc |
return LD10k1File::None;
|
|
Packit Service |
b98cfc |
case EMU10K1_GPR_TRANSLATION_TABLE100:
|
|
Packit Service |
b98cfc |
return LD10k1File::Table100;
|
|
Packit Service |
b98cfc |
case EMU10K1_GPR_TRANSLATION_BASS:
|
|
Packit Service |
b98cfc |
return LD10k1File::Bass;
|
|
Packit Service |
b98cfc |
case EMU10K1_GPR_TRANSLATION_TREBLE:
|
|
Packit Service |
b98cfc |
return LD10k1File::Treble;
|
|
Packit Service |
b98cfc |
case EMU10K1_GPR_TRANSLATION_ONOFF:
|
|
Packit Service |
b98cfc |
return LD10k1File::OnOff;
|
|
Packit Service |
b98cfc |
default:
|
|
Packit Service |
b98cfc |
return LD10k1File::None;
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
void LD10k1File::setCtlTranslation(unsigned int i, LD10k1File::TranslationType t)
|
|
Packit Service |
b98cfc |
{
|
|
Packit Service |
b98cfc |
liblo10k1_dsp_patch_t *nf = privData->getNativeStruct();
|
|
Packit Service |
b98cfc |
if (i >= nf->ctl_count)
|
|
Packit Service |
b98cfc |
return;
|
|
Packit Service |
b98cfc |
switch (t)
|
|
Packit Service |
b98cfc |
{
|
|
Packit Service |
b98cfc |
case LD10k1File::None:
|
|
Packit Service |
b98cfc |
nf->ctl[i].translation = EMU10K1_GPR_TRANSLATION_NONE;
|
|
Packit Service |
b98cfc |
break;
|
|
Packit Service |
b98cfc |
case LD10k1File::Table100:
|
|
Packit Service |
b98cfc |
nf->ctl[i].translation = EMU10K1_GPR_TRANSLATION_TABLE100;
|
|
Packit Service |
b98cfc |
break;
|
|
Packit Service |
b98cfc |
case LD10k1File::Bass:
|
|
Packit Service |
b98cfc |
nf->ctl[i].translation = EMU10K1_GPR_TRANSLATION_BASS;
|
|
Packit Service |
b98cfc |
break;
|
|
Packit Service |
b98cfc |
case LD10k1File::Treble:
|
|
Packit Service |
b98cfc |
nf->ctl[i].translation = EMU10K1_GPR_TRANSLATION_TREBLE;
|
|
Packit Service |
b98cfc |
break;
|
|
Packit Service |
b98cfc |
case LD10k1File::OnOff:
|
|
Packit Service |
b98cfc |
nf->ctl[i].translation = EMU10K1_GPR_TRANSLATION_ONOFF;
|
|
Packit Service |
b98cfc |
break;
|
|
Packit Service |
b98cfc |
default:
|
|
Packit Service |
b98cfc |
break;
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
int LD10k1File::getCtlValCount(unsigned int i)
|
|
Packit Service |
b98cfc |
{
|
|
Packit Service |
b98cfc |
liblo10k1_dsp_patch_t *nf = privData->getNativeStruct();
|
|
Packit Service |
b98cfc |
if (i >= nf->ctl_count)
|
|
Packit Service |
b98cfc |
return 0;
|
|
Packit Service |
b98cfc |
return nf->ctl[i].count;
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
int LD10k1File::getCtlValVCount(unsigned int i)
|
|
Packit Service |
b98cfc |
{
|
|
Packit Service |
b98cfc |
liblo10k1_dsp_patch_t *nf = privData->getNativeStruct();
|
|
Packit Service |
b98cfc |
if (i >= nf->ctl_count)
|
|
Packit Service |
b98cfc |
return 0;
|
|
Packit Service |
b98cfc |
return nf->ctl[i].vcount;
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
void LD10k1File::setCtlValVCount(unsigned int i, unsigned int cnt)
|
|
Packit Service |
b98cfc |
{
|
|
Packit Service |
b98cfc |
liblo10k1_dsp_patch_t *nf = privData->getNativeStruct();
|
|
Packit Service |
b98cfc |
if (i >= nf->ctl_count)
|
|
Packit Service |
b98cfc |
return;
|
|
Packit Service |
b98cfc |
nf->ctl[i].vcount = cnt;
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
unsigned int LD10k1File::getCtlVal(unsigned int i, unsigned int vi)
|
|
Packit Service |
b98cfc |
{
|
|
Packit Service |
b98cfc |
liblo10k1_dsp_patch_t *nf = privData->getNativeStruct();
|
|
Packit Service |
b98cfc |
if (i >= nf->ctl_count)
|
|
Packit Service |
b98cfc |
return 0;
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
if (vi >= nf->ctl[i].vcount)
|
|
Packit Service |
b98cfc |
return 0;
|
|
Packit Service |
b98cfc |
return nf->ctl[i].value[vi];
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
void LD10k1File::setCtlVal(unsigned int i, unsigned int vi, unsigned int val)
|
|
Packit Service |
b98cfc |
{
|
|
Packit Service |
b98cfc |
liblo10k1_dsp_patch_t *nf = privData->getNativeStruct();
|
|
Packit Service |
b98cfc |
if (i >= nf->ctl_count)
|
|
Packit Service |
b98cfc |
return;
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
if (vi >= nf->ctl[i].vcount)
|
|
Packit Service |
b98cfc |
return;
|
|
Packit Service |
b98cfc |
nf->ctl[i].value[vi] = val;
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
QString LD10k1File::getPatchName()
|
|
Packit Service |
b98cfc |
{
|
|
Packit Service |
b98cfc |
liblo10k1_dsp_patch_t *nf = privData->getNativeStruct();
|
|
Packit Service |
b98cfc |
return nf->patch_name;
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
void LD10k1File::setPatchName(QString name)
|
|
Packit Service |
b98cfc |
{
|
|
Packit Service |
b98cfc |
liblo10k1_dsp_patch_t *nf = privData->getNativeStruct();
|
|
Packit Service |
b98cfc |
strncpy(nf->patch_name, name.local8Bit(), MAX_NAME_LEN - 1);
|
|
Packit Service |
b98cfc |
nf->patch_name[MAX_NAME_LEN - 1] = '\0';
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
int LD10k1File::LoadFromFile(QString file, LD10k1File **lf)
|
|
Packit Service |
b98cfc |
{
|
|
Packit Service |
b98cfc |
liblo10k1_dsp_patch_t *nf = NULL;
|
|
Packit Service |
b98cfc |
liblo10k1_file_info_t *fi = NULL;
|
|
Packit Service |
b98cfc |
char fn[1000]; // FIXME file name length
|
|
Packit Service |
b98cfc |
int err;
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
strncpy(fn, file.local8Bit(), 999);
|
|
Packit Service |
b98cfc |
fn[999] = '\0';
|
|
Packit Service |
b98cfc |
if ((err = liblo10k1lf_load_dsp_patch(&nf, fn, &fi)) < 0)
|
|
Packit Service |
b98cfc |
return err;
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
LD10k1File *lfi = new LD10k1File();
|
|
Packit Service |
b98cfc |
lfi->privData->setNativeStruct(nf);
|
|
Packit Service |
b98cfc |
*lf = lfi;
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
lfi->fileName = fi->name;
|
|
Packit Service |
b98cfc |
lfi->fileDesc = fi->desc;
|
|
Packit Service |
b98cfc |
lfi->fileCreater = fi->creater;
|
|
Packit Service |
b98cfc |
lfi->fileAuthor = fi->author;
|
|
Packit Service |
b98cfc |
lfi->fileCopyright = fi->copyright;
|
|
Packit Service |
b98cfc |
lfi->fileLicense = fi->license;
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
liblo10k1lf_file_info_free(fi);
|
|
Packit Service |
b98cfc |
return 0;
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
int LD10k1File::SaveToFile(QString file)
|
|
Packit Service |
b98cfc |
{
|
|
Packit Service |
b98cfc |
liblo10k1_dsp_patch_t *nf = privData->getNativeStruct();
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
liblo10k1_file_info_t *fi = liblo10k1lf_file_info_alloc();
|
|
Packit Service |
b98cfc |
char fn[1000]; // FIXME file name length
|
|
Packit Service |
b98cfc |
int err;
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
strncpy(fn, file.local8Bit(), 999);
|
|
Packit Service |
b98cfc |
fn[999] = '\0';
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
fi->name = strdup(fileName.local8Bit());
|
|
Packit Service |
b98cfc |
fi->desc = strdup(fileDesc.local8Bit());
|
|
Packit Service |
b98cfc |
fi->creater = strdup(fileCreater.local8Bit());
|
|
Packit Service |
b98cfc |
fi->author = strdup(fileAuthor.local8Bit());
|
|
Packit Service |
b98cfc |
fi->copyright = strdup(fileCopyright.local8Bit());
|
|
Packit Service |
b98cfc |
fi->license = strdup(fileLicense.local8Bit());
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
if ((err = liblo10k1lf_save_dsp_patch(nf, fn, fi)) < 0)
|
|
Packit Service |
b98cfc |
{
|
|
Packit Service |
b98cfc |
liblo10k1lf_file_info_free(fi);
|
|
Packit Service |
b98cfc |
return err;
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
liblo10k1lf_file_info_free(fi);
|
|
Packit Service |
b98cfc |
return 0;
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
unsigned int LD10k1File::getCtlMin(unsigned int i)
|
|
Packit Service |
b98cfc |
{
|
|
Packit Service |
b98cfc |
liblo10k1_dsp_patch_t *nf = privData->getNativeStruct();
|
|
Packit Service |
b98cfc |
if (i >= nf->ctl_count)
|
|
Packit Service |
b98cfc |
return 0;
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
return nf->ctl[i].min;
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
unsigned int LD10k1File::getCtlMax(unsigned int i)
|
|
Packit Service |
b98cfc |
{
|
|
Packit Service |
b98cfc |
liblo10k1_dsp_patch_t *nf = privData->getNativeStruct();
|
|
Packit Service |
b98cfc |
if (i >= nf->ctl_count)
|
|
Packit Service |
b98cfc |
return 0;
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
return nf->ctl[i].max;
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
class LD10k1DspFilePrivate
|
|
Packit Service |
b98cfc |
{
|
|
Packit Service |
b98cfc |
liblo10k1_file_dsp_setup_t *ls;
|
|
Packit Service |
b98cfc |
public:
|
|
Packit Service |
b98cfc |
LD10k1DspFilePrivate()
|
|
Packit Service |
b98cfc |
{
|
|
Packit Service |
b98cfc |
ls = liblo10k1lf_dsp_config_alloc();
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
~LD10k1DspFilePrivate()
|
|
Packit Service |
b98cfc |
{
|
|
Packit Service |
b98cfc |
if (ls)
|
|
Packit Service |
b98cfc |
liblo10k1lf_dsp_config_free(ls);
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
void setNativeStruct(liblo10k1_file_dsp_setup_t *ns)
|
|
Packit Service |
b98cfc |
{
|
|
Packit Service |
b98cfc |
if (ls)
|
|
Packit Service |
b98cfc |
liblo10k1lf_dsp_config_free(ls);
|
|
Packit Service |
b98cfc |
ls = ns;
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
liblo10k1_file_dsp_setup_t *getNativeStruct()
|
|
Packit Service |
b98cfc |
{
|
|
Packit Service |
b98cfc |
return ls;
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
};
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
LD10k1DspFile::LD10k1DspFile()
|
|
Packit Service |
b98cfc |
{
|
|
Packit Service |
b98cfc |
privData = new LD10k1DspFilePrivate();
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
LD10k1DspFile::~LD10k1DspFile()
|
|
Packit Service |
b98cfc |
{
|
|
Packit Service |
b98cfc |
if (privData)
|
|
Packit Service |
b98cfc |
delete (privData);
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
liblo10k1_file_dsp_setup_t *LD10k1DspFile::getLD10k1DspFormat()
|
|
Packit Service |
b98cfc |
{
|
|
Packit Service |
b98cfc |
return privData->getNativeStruct();
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
void LD10k1DspFile::setLD10k1DspFormat(liblo10k1_file_dsp_setup_t *setup)
|
|
Packit Service |
b98cfc |
{
|
|
Packit Service |
b98cfc |
privData->setNativeStruct(setup);
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
int LD10k1DspFile::LoadFromFile(QString file, LD10k1DspFile **lf)
|
|
Packit Service |
b98cfc |
{
|
|
Packit Service |
b98cfc |
liblo10k1_file_dsp_setup_t *nf = NULL;
|
|
Packit Service |
b98cfc |
liblo10k1_file_info_t *fi = NULL;
|
|
Packit Service |
b98cfc |
char fn[1000]; // FIXME file name length
|
|
Packit Service |
b98cfc |
int err;
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
strncpy(fn, file.local8Bit(), 999);
|
|
Packit Service |
b98cfc |
fn[999] = '\0';
|
|
Packit Service |
b98cfc |
if ((err = liblo10k1lf_load_dsp_config(&nf, fn, &fi)) < 0)
|
|
Packit Service |
b98cfc |
return err;
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
LD10k1DspFile *lfi = new LD10k1DspFile();
|
|
Packit Service |
b98cfc |
lfi->privData->setNativeStruct(nf);
|
|
Packit Service |
b98cfc |
*lf = lfi;
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
lfi->fileName = fi->name;
|
|
Packit Service |
b98cfc |
lfi->fileDesc = fi->desc;
|
|
Packit Service |
b98cfc |
lfi->fileCreater = fi->creater;
|
|
Packit Service |
b98cfc |
lfi->fileAuthor = fi->author;
|
|
Packit Service |
b98cfc |
lfi->fileCopyright = fi->copyright;
|
|
Packit Service |
b98cfc |
lfi->fileLicense = fi->license;
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
liblo10k1lf_file_info_free(fi);
|
|
Packit Service |
b98cfc |
return 0;
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
int LD10k1DspFile::SaveToFile(QString file)
|
|
Packit Service |
b98cfc |
{
|
|
Packit Service |
b98cfc |
liblo10k1_file_dsp_setup_t *nf = privData->getNativeStruct();
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
liblo10k1_file_info_t *fi = liblo10k1lf_file_info_alloc();
|
|
Packit Service |
b98cfc |
char fn[1000]; // FIXME file name length
|
|
Packit Service |
b98cfc |
int err;
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
strncpy(fn, file.local8Bit(), 999);
|
|
Packit Service |
b98cfc |
fn[999] = '\0';
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
fi->name = strdup(fileName.local8Bit());
|
|
Packit Service |
b98cfc |
fi->desc = strdup(fileDesc.local8Bit());
|
|
Packit Service |
b98cfc |
fi->creater = strdup(fileCreater.local8Bit());
|
|
Packit Service |
b98cfc |
fi->author = strdup(fileAuthor.local8Bit());
|
|
Packit Service |
b98cfc |
fi->copyright = strdup(fileCopyright.local8Bit());
|
|
Packit Service |
b98cfc |
fi->license = strdup(fileLicense.local8Bit());
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
if ((err = liblo10k1lf_save_dsp_config(nf, fn, fi)) < 0)
|
|
Packit Service |
b98cfc |
{
|
|
Packit Service |
b98cfc |
liblo10k1lf_file_info_free(fi);
|
|
Packit Service |
b98cfc |
return err;
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
liblo10k1lf_file_info_free(fi);
|
|
Packit Service |
b98cfc |
return 0;
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
|