summaryrefslogtreecommitdiff
path: root/muse_qt4_evolution/muse/trackinfo.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'muse_qt4_evolution/muse/trackinfo.cpp')
-rw-r--r--muse_qt4_evolution/muse/trackinfo.cpp553
1 files changed, 0 insertions, 553 deletions
diff --git a/muse_qt4_evolution/muse/trackinfo.cpp b/muse_qt4_evolution/muse/trackinfo.cpp
deleted file mode 100644
index 1a62b1c0..00000000
--- a/muse_qt4_evolution/muse/trackinfo.cpp
+++ /dev/null
@@ -1,553 +0,0 @@
-//=============================================================================
-// MusE
-// Linux Music Editor
-// $Id:$
-//
-// Copyright (C) 2002-2006 by Werner Schweer and others
-//
-// This program is free software; you can redistribute it and/or modify
-// it under the terms of the GNU General Public License version 2.
-//
-// 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., 675 Mass Ave, Cambridge, MA 02139, USA.
-//=============================================================================
-
-#include "arranger.h"
-#include "widgets/outportcombo.h"
-#include "instruments/minstrument.h"
-#include "midiedit/drummap.h"
-#include "midictrl.h"
-#include "song.h"
-#include "trackinfo.h"
-#include "synth.h"
-#include "tllineedit.h"
-#include "audio.h"
-#include "gui.h"
-#include "midioutport.h"
-#include "midiinport.h"
-
-static QColor labelColor(140, 140, 255);
-
-//---------------------------------------------------------
-// createTrackInfo
-//---------------------------------------------------------
-
-TrackInfo* Arranger::createTrackInfo()
- {
- Track::TrackType t = _curTrack->type();
- switch (t) {
- case Track::MIDI: return new MidiTrackInfo();
- case Track::AUDIO_OUTPUT: return new AudioOutputInfo();
- case Track::AUDIO_GROUP: return new AudioGroupInfo();
- case Track::WAVE: return new WaveTrackInfo();
- case Track::AUDIO_INPUT: return new AudioInputInfo();
- case Track::AUDIO_SOFTSYNTH: return new SynthIInfo();
- case Track::MIDI_OUT: return new MidiOutPortInfo();
- case Track::MIDI_IN: return new MidiInPortInfo();
- case Track::MIDI_SYNTI: return new MidiSynthIInfo();
- default:
- printf("Arranger::createTrackInfo: type %d\n", t);
- abort();
- }
- }
-
-//---------------------------------------------------------
-// TrackInfo
-//---------------------------------------------------------
-
-TrackInfo::TrackInfo()
- : QWidget()
- {
- track = 0;
- label = new QLabel;
- label->setToolTip(tr("Track Type"));
- label->setLineWidth(2);
- label->setFrameStyle(QFrame::Panel | QFrame::Raised);
- label->setAutoFillBackground(true);
- QPalette p = label->palette();
- p.setColor(QPalette::Background, labelColor);
- label->setPalette(p);
-
- name = new TLLineEdit("");
- name->setToolTip(tr("Track Name"));
- name->setMaximumHeight(24);
-
- grid = new QGridLayout;
- grid->setMargin(0);
- grid->setSpacing(0);
- setLayout(grid);
-
- grid->addWidget(label, 0, 0, 1, 2);
- grid->addWidget(name, 1, 0, 1, 2);
- connect(name, SIGNAL(contentChanged(QString)), SLOT(nameChanged(QString)));
- connect(song, SIGNAL(songChanged(int)), SLOT(songChanged(int)));
-// resize(QSize(infoWidth, height()));
- }
-
-//---------------------------------------------------------
-// nameChanged
-//---------------------------------------------------------
-
-void TrackInfo::nameChanged(QString s)
- {
- song->changeTrackName(track, s);
- name->setCursorPosition(0);
- }
-
-//---------------------------------------------------------
-// init
-//---------------------------------------------------------
-
-void TrackInfo::init(Track* t)
- {
- track = t;
- if (t == 0)
- return;
- label->setText(track->clname());
- name->setText(track->name());
- connect(track, SIGNAL(nameChanged(const QString&)), name, SLOT(setText(const QString&)));
- }
-
-//---------------------------------------------------------
-// songChanged
-//---------------------------------------------------------
-
-void TrackInfo::songChanged(int val)
- {
- if ((val & SC_ROUTE) && track)
- init(track);
- }
-
-//---------------------------------------------------------
-// MidiTrackInfo
-//---------------------------------------------------------
-
-MidiTrackInfo::MidiTrackInfo()
- : TrackInfo()
- {
- QWidget* midiTrackInfo = new QWidget;
- mt.setupUi(midiTrackInfo);
-
- QWidget* midiPortInfo = new QWidget;
- mp.setupUi(midiPortInfo);
-
- grid->addWidget(midiTrackInfo, 2, 0, 1, 2);
-
- channel = new QComboBox;
- channel->setMaximumHeight(24);
- for (int ch = 0; ch < MIDI_CHANNELS; ++ch)
- channel->addItem(tr("Channel %1").arg(ch+1), ch);
- grid->addWidget(channel, 3, 0, 1, 2);
-
- QLabel* label = new QLabel;
- label->setText(tr("Midi Port"));
- label->setLineWidth(2);
- label->setFrameStyle(QFrame::Panel | QFrame::Raised);
- label->setAutoFillBackground(true);
- QPalette p = label->palette();
- p.setColor(QPalette::Background, labelColor);
- label->setPalette(p);
- grid->addWidget(label, 4, 0, 1, 2);
-
- port = new QComboBox;
- port->setMaximumHeight(24);
- grid->addWidget(port, 5, 0, 1, 2);
- grid->addWidget(midiPortInfo, 6, 0, 1, 2);
- grid->setRowStretch(grid->rowCount(), 100);
-
- pop = new QMenu(mt.patch);
-
- connect(mt.transposition, SIGNAL(valueChanged(int)), SLOT(transpositionChanged(int)));
- connect(mt.velocity, SIGNAL(valueChanged(int)), SLOT(velocityChanged(int)));
- connect(mt.delay, SIGNAL(valueChanged(int)), SLOT(delayChanged(int)));
- connect(mt.length, SIGNAL(valueChanged(int)), SLOT(lenChanged(int)));
- connect(mt.compression, SIGNAL(valueChanged(int)), SLOT(iKomprChanged(int)));
- connect(mt.patch, SIGNAL(clicked()), SLOT(patchClicked()));
- connect(port, SIGNAL(activated(int)), SLOT(portSelected(int)));
- connect(mp.instrument, SIGNAL(activated(int)), SLOT(instrumentSelected(int)));
- connect(mp.deviceId, SIGNAL(valueChanged(int)), SLOT(deviceIdChanged(int)));
- connect(song, SIGNAL(autoReadChanged(Track*,bool)), SLOT(autoChanged(Track*,bool)));
- connect(song, SIGNAL(autoWriteChanged(Track*,bool)), SLOT(autoChanged(Track*,bool)));
- }
-
-//---------------------------------------------------------
-// init
-//---------------------------------------------------------
-
-void MidiTrackInfo::init(Track* t)
- {
- MidiTrack* midiTrack = (MidiTrack*)&*t;
- if (t != track) {
- if (track) {
- disconnect(channel, 0, track, 0);
- disconnect(track, 0, channel, 0);
- }
- connect(channel, SIGNAL(activated(int)), midiTrack, SLOT(setChannel(int)));
- connect(midiTrack,SIGNAL(channelChanged(int)), channel, SLOT(setCurrentIndex(int)));
- }
-
- TrackInfo::init(t);
- mt.transposition->setValue(midiTrack->transposition());
- mt.delay->setValue(midiTrack->delay());
- mt.length->setValue(midiTrack->len());
- mt.velocity->setValue(midiTrack->velocity());
- mt.compression->setValue(midiTrack->compression());
-
- mp.instrument->clear();
- foreach(MidiInstrument* mi, midiInstruments)
- mp.instrument->addItem(mi->iname());
-
- RouteList* rl = track->outRoutes();
- Track* outputTrack = 0;
- if (!rl->isEmpty())
- outputTrack = (*rl)[0].dst.track;
-
- port->clear();
- port->addItem("---", QVariant::fromValue<void*>(0));
- foreach(MidiOutPort* mp, *(song->midiOutPorts()))
- port->addItem(mp->name(), QVariant::fromValue<void*>(mp));
- foreach(SynthI* s, *(song->syntis()))
- port->addItem(s->name(), QVariant::fromValue<void*>(s));
- if (outputTrack) {
- int idx = port->findText(outputTrack->name());
- port->setCurrentIndex(idx == -1 ? 0 : idx);
- }
-
- channel->setCurrentIndex(midiTrack->channelNo());
-
- connect(track, SIGNAL(controllerChanged(int)), SLOT(controllerChanged(int)));
- if (outputTrack && outputTrack->type() == Track::MIDI_OUT)
- connect(outputTrack, SIGNAL(instrumentChanged()), SLOT(instrumentChanged()));
-
- instrumentChanged(); // setup instrument
-
- // enable instrument selection only for tracks routed to a
- // midi out port:
- mp.instrument->setEnabled(outputTrack && (outputTrack->type() == Track::MIDI_OUT));
-
- if (!rl->isEmpty()) {
- mp.deviceId->setValue(midiTrack->deviceId());
- autoChanged(track, false); // update enable
- int val = midiTrack->ctrlVal(CTRL_PROGRAM).i;
- int channelno = midiTrack->channelNo();
- mt.patch->setText(midiTrack->instrument()->getPatchName(channelno, val));
- }
- else {
- channel->setCurrentIndex(0);
- port->setCurrentIndex(0);
- mp.instrument->addItem("--");
- mp.instrument->setCurrentIndex(0);
- mt.patch->setText("--");
- }
- }
-
-//---------------------------------------------------------
-// portSelected
-//---------------------------------------------------------
-
-void MidiTrackInfo::portSelected(int idx)
- {
- QVariant v(port->itemData(idx));
- Track* outputTrack = (Track*)v.value<void*>();
- if (outputTrack == 0)
- return;
- RouteList* rl = track->outRoutes();
- if (rl->isEmpty())
- return;
- Route r = (*rl)[0];
- audio->msgRemoveRoute(r);
- r.dst.track = outputTrack;
- audio->msgAddRoute(r);
- song->update(SC_ROUTE);
- }
-
-//---------------------------------------------------------
-// controllerChanged
-//---------------------------------------------------------
-
-void MidiTrackInfo::controllerChanged(int id)
- {
- if (id == CTRL_PROGRAM) {
- MidiInstrument* mi = track->instrument();
- int val = track->ctrlVal(id).i;
- mt.patch->setText(mi->getPatchName(((MidiTrack*)&*track)->channelNo(), val));
- }
- }
-
-//---------------------------------------------------------
-// instrumentChanged
-//---------------------------------------------------------
-
-void MidiTrackInfo::instrumentChanged()
- {
- MidiInstrument* mi = track->instrument();
- mp.instrument->setCurrentIndex(midiInstruments.indexOf(mi));
- }
-
-//---------------------------------------------------------
-// autoChanged
-//---------------------------------------------------------
-
-void MidiTrackInfo::autoChanged(Track* t, bool)
- {
- if (t != track)
- return;
- bool ar = t->autoRead();
- bool aw = t->autoWrite();
- bool en = !ar || (ar && aw);
- mt.patch->setEnabled(en);
- }
-
-//---------------------------------------------------------
-// transpositionChanged
-//---------------------------------------------------------
-
-void MidiTrackInfo::transpositionChanged(int val)
- {
- ((MidiTrack*)&*track)->setTransposition(val);
- }
-
-//---------------------------------------------------------
-// patchClicked
-//---------------------------------------------------------
-
-void MidiTrackInfo::patchClicked()
- {
- MidiInstrument* mi = track->instrument();
- mi->populatePatchPopup(pop, 0);
-
- QAction* rv = pop->exec(mt.patch->mapToGlobal(QPoint(10,5)));
- if (rv != 0) {
- CVal cval;
- cval.i = rv->data().toInt();
- song->setControllerVal(track, CTRL_PROGRAM, cval);
- }
- }
-
-//---------------------------------------------------------
-// instrumentSelected
-//---------------------------------------------------------
-
-void MidiTrackInfo::instrumentSelected(int n)
- {
- RouteList* rl = track->outRoutes();
- if (rl->isEmpty())
- return;
- Track* outTrack = (*rl)[0].dst.track;
- if (outTrack->type() == Track::MIDI_OUT)
- ((MidiOutPort*)outTrack)->setInstrument(midiInstruments[n]);
- }
-
-//---------------------------------------------------------
-// velocityChanged
-//---------------------------------------------------------
-
-void MidiTrackInfo::velocityChanged(int val)
- {
- ((MidiTrack*)&*track)->setVelocity(val);
- }
-
-//---------------------------------------------------------
-// delayChanged
-//---------------------------------------------------------
-
-void MidiTrackInfo::delayChanged(int val)
- {
- ((MidiTrack*)&*track)->setDelay(val);
- }
-
-//---------------------------------------------------------
-// lenChanged
-//---------------------------------------------------------
-
-void MidiTrackInfo::lenChanged(int val)
- {
- ((MidiTrack*)&*track)->setLen(val);
- }
-
-//---------------------------------------------------------
-// iKomprChanged
-//---------------------------------------------------------
-
-void MidiTrackInfo::iKomprChanged(int val)
- {
- ((MidiTrack*)&*track)->setCompression(val);
- }
-
-//---------------------------------------------------------
-// deviceIdChanged
-//---------------------------------------------------------
-
-void MidiTrackInfo::deviceIdChanged(int val)
- {
- ((MidiTrack*)&*track)->setDeviceId(val);
- }
-
-//---------------------------------------------------------
-// AudioOutputInfo
-//---------------------------------------------------------
-
-AudioOutputInfo::AudioOutputInfo()
- : TrackInfo()
- {
- grid->setRowStretch(grid->rowCount(), 100);
- }
-
-//---------------------------------------------------------
-// AudioInputInfo
-//---------------------------------------------------------
-
-AudioInputInfo::AudioInputInfo()
- : TrackInfo()
- {
- grid->setRowStretch(grid->rowCount(), 100);
- }
-
-//---------------------------------------------------------
-// AudioGroupInfo
-//---------------------------------------------------------
-
-AudioGroupInfo::AudioGroupInfo()
- : TrackInfo()
- {
- grid->setRowStretch(grid->rowCount(), 100);
- }
-
-//---------------------------------------------------------
-// AudioAuxInfo
-//---------------------------------------------------------
-
-AudioAuxInfo::AudioAuxInfo()
- : TrackInfo()
- {
- grid->setRowStretch(grid->rowCount(), 100);
- }
-
-//---------------------------------------------------------
-// WaveTrackInfo
-//---------------------------------------------------------
-
-WaveTrackInfo::WaveTrackInfo()
- : TrackInfo()
- {
- grid->setRowStretch(grid->rowCount(), 100);
- }
-
-//---------------------------------------------------------
-// SynthIInfo
-//---------------------------------------------------------
-
-SynthIInfo::SynthIInfo()
- : TrackInfo()
- {
- grid->setRowStretch(grid->rowCount(), 100);
- }
-
-//---------------------------------------------------------
-// MidiSynthIInfo
-//---------------------------------------------------------
-
-MidiSynthIInfo::MidiSynthIInfo()
- : TrackInfo()
- {
- grid->setRowStretch(grid->rowCount(), 100);
- }
-
-//---------------------------------------------------------
-// MidiOutPortInfo
-//---------------------------------------------------------
-
-MidiOutPortInfo::MidiOutPortInfo()
- : TrackInfo()
- {
- QWidget* midiPortInfo = new QWidget;
- mp.setupUi(midiPortInfo);
- grid->addWidget(midiPortInfo, 2, 0, 1, 2);
-
- grid->setRowStretch(grid->rowCount(), 100);
-
- connect(mp.instrument, SIGNAL(activated(int)), SLOT(instrumentSelected(int)));
- connect(mp.deviceId, SIGNAL(valueChanged(int)), SLOT(deviceIdChanged(int)));
- }
-
-//---------------------------------------------------------
-// init
-//---------------------------------------------------------
-
-void MidiOutPortInfo::init(Track* t)
- {
- TrackInfo::init(t);
-
- MidiOutPort* op = (MidiOutPort*)&*track;
- MidiInstrument* mi = op->instrument();
- int idx = 0;
- int curIdx = 0;
- mp.instrument->clear();
- for (iMidiInstrument i = midiInstruments.begin(); i != midiInstruments.end(); ++i, ++idx) {
- mp.instrument->addItem((*i)->iname());
- if ((*i)->iname() == mi->iname())
- curIdx = idx;
- }
- mp.instrument->setCurrentIndex(curIdx);
- mp.deviceId->setValue(op->deviceId());
- connect(t, SIGNAL(instrumentChanged()), SLOT(instrumentChanged()));
- }
-
-//---------------------------------------------------------
-// deviceIdChanged
-//---------------------------------------------------------
-
-void MidiOutPortInfo::deviceIdChanged(int val)
- {
- ((MidiOutPort*)&*track)->setDeviceId(val);
- }
-
-//---------------------------------------------------------
-// instrumentChanged
-//---------------------------------------------------------
-
-void MidiOutPortInfo::instrumentChanged()
- {
- MidiOutPort* op = (MidiOutPort*)&*track;
- MidiInstrument* mi = op->instrument();
- int idx = 0;
- for (iMidiInstrument i = midiInstruments.begin(); i != midiInstruments.end(); ++i, ++idx) {
- if (*i == mi) {
- mp.instrument->setCurrentIndex(idx);
- break;
- }
- }
- }
-
-//---------------------------------------------------------
-// instrumentSelected
-//---------------------------------------------------------
-
-void MidiOutPortInfo::instrumentSelected(int n)
- {
- MidiOutPort* op = (MidiOutPort*)&*track;
- int idx = 0;
- for (iMidiInstrument i = midiInstruments.begin(); i != midiInstruments.end(); ++i, ++idx) {
- if (idx == n) {
- op->setInstrument(*i);
- break;
- }
- }
- }
-
-//---------------------------------------------------------
-// MidiInPortInfo
-//---------------------------------------------------------
-
-MidiInPortInfo::MidiInPortInfo()
- : TrackInfo()
- {
- grid->setRowStretch(grid->rowCount(), 100);
- }
-