/* * qlo10k1 - GUI frontend for ld10k1 * * Copyright (c) 2004 by Peter Zubaj * * 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 * */ #ifndef LD10K1FILE_H #define LD10K1FILE_H #include #include #include #include "structure.h" class EMU10k1FilePrivate; class LD10k1File; struct EMU10k1Ctrl { unsigned int value; unsigned int min; unsigned int max; QString name; }; class EMU10k1File { EMU10k1FilePrivate *privData; public: EMU10k1File(); ~EMU10k1File(); static int LoadFromFile(QString file, EMU10k1File **ef); int getInCount(); int getOutCount(); int getCtrlCount(); void getCtrl(unsigned int i, EMU10k1Ctrl *ctrl); void setCtrl(unsigned int i, EMU10k1Ctrl *ctrl); QString getPatchName(); friend class LD10k1File; }; class LD10k1FilePrivate; class LD10k1FileTransfCtl { public: int emu_ctls[32]; int emu_ctl_count; QString ctl_name; }; class LD10k1File { LD10k1FilePrivate *privData; QString fileName; QString fileDesc; QString fileCreater; QString fileAuthor; QString fileCopyright; QString fileLicense; public: enum TranslationType {None, Table100, Bass, Treble, OnOff}; LD10k1File(); ~LD10k1File(); QString getPatchName(); void setPatchName(QString name); int getIOCount(bool out); QString getIOName(bool out, unsigned int i); void setIOName(bool out, unsigned int i, QString name); int getCtlCount(); QString getCtlName(unsigned int i); void setCtlName(unsigned int i, QString name); TranslationType getCtlTranslation(unsigned int i); void setCtlTranslation(unsigned int i, TranslationType t); int getCtlValCount(unsigned int i); unsigned int getCtlMin(unsigned int i); unsigned int getCtlMax(unsigned int i); int getCtlValVCount(unsigned int i); void setCtlValVCount(unsigned int i, unsigned int cnt); unsigned int getCtlVal(unsigned int i, unsigned int vi); void setCtlVal(unsigned int i, unsigned int vi, unsigned int val); static int transformFromEmuFile(EMU10k1File *ef, LD10k1FileTransfCtl *tc, int tc_count, LD10k1File **lf); liblo10k1_dsp_patch_t *getLD10k1Format(); void setLD10k1Format(liblo10k1_dsp_patch_t *patch); static int LoadFromFile(QString file, LD10k1File **lf); int SaveToFile(QString file); }; class LD10k1DspFilePrivate; class CardParam; class LD10k1DspFile { LD10k1DspFilePrivate *privData; QString fileName; QString fileDesc; QString fileCreater; QString fileAuthor; QString fileCopyright; QString fileLicense; public: LD10k1DspFile(); ~LD10k1DspFile(); liblo10k1_file_dsp_setup_t *getLD10k1DspFormat(); void setLD10k1DspFormat(liblo10k1_file_dsp_setup_t *setup); static int LoadFromFile(QString file, LD10k1DspFile **lf); int SaveToFile(QString file); friend class CardParam; }; #endif // LD10K1FILE_H