summaryrefslogtreecommitdiff
path: root/muse2/muse/mixer/mstrip.cpp
diff options
context:
space:
mode:
authorTim E. Real <termtech@rogers.com>2010-11-07 00:30:20 +0000
committerTim E. Real <termtech@rogers.com>2010-11-07 00:30:20 +0000
commit4ea1c4ed67ee6fd46dbe393d05b7d835e3a33299 (patch)
tree599bf37fa6965cfb4cb310a806c6f35f10a6e505 /muse2/muse/mixer/mstrip.cpp
parent13375b925494553cb3534ca769ad04e4f8cffb24 (diff)
All routing popups finished. Major cleanup of astrip + mstrip comments, code!
Diffstat (limited to 'muse2/muse/mixer/mstrip.cpp')
-rw-r--r--muse2/muse/mixer/mstrip.cpp219
1 files changed, 10 insertions, 209 deletions
diff --git a/muse2/muse/mixer/mstrip.cpp b/muse2/muse/mixer/mstrip.cpp
index 92d2d02f..6ec47f24 100644
--- a/muse2/muse/mixer/mstrip.cpp
+++ b/muse2/muse/mixer/mstrip.cpp
@@ -9,6 +9,7 @@
#include <fastlog.h>
#include <QLayout>
+#include <QAction>
#include <qapplication.h>
#include <qdialog.h>
#include <qtoolbutton.h>
@@ -965,11 +966,12 @@ void MidiStrip::updateOffState() // Ripped from AudioStrip, hehh(mg)
// routingPopupMenuActivated
//---------------------------------------------------------
-void MidiStrip::routingPopupMenuActivated(int n)
+void MidiStrip::routingPopupMenuActivated(QAction* act)
{
if(gRoutingPopupMenuMaster != this || !track || !track->isMidiTrack())
return;
- muse->routingPopupMenuActivated(track, n);
+
+ muse->routingPopupMenuActivated(track, act->data().toInt());
}
//---------------------------------------------------------
@@ -981,131 +983,15 @@ void MidiStrip::iRoutePressed()
if(!track || !track->isMidiTrack())
return;
- //song->chooseMidiRoutes(iR, (MidiTrack*)track, false);
PopupMenu* pup = muse->prepareRoutingPopupMenu(track, false);
if(!pup)
return;
- //pup->disconnect();
gRoutingPopupMenuMaster = this;
- connect(pup, SIGNAL(activated(int)), SLOT(routingPopupMenuActivated(int)));
+ connect(pup, SIGNAL(triggered(QAction*)), SLOT(routingPopupMenuActivated(QAction*)));
connect(pup, SIGNAL(aboutToHide()), muse, SLOT(routingPopupMenuAboutToHide()));
- pup->popup(QCursor::pos(), 0);
+ pup->popup(QCursor::pos());
iR->setDown(false);
- return;
-
- /*
- RouteList* irl = track->inRoutes();
- //Route dst(track, -1);
-
- QPopupMenu* pup = new QPopupMenu(iR);
- pup->setCheckable(true);
-
- int gid = 0;
-
- //MidiInPortList* tl = song->midiInPorts();
- //for(iMidiInPort i = tl->begin();i != tl->end(); ++i)
- for(int i = 0; i < MIDI_PORTS; ++i)
- {
- //MidiInPort* track = *i;
- // NOTE: Could possibly list all devices, bypassing ports, but no, let's stick wth ports.
- MidiPort* mp = &midiPorts[i];
- MidiDevice* md = mp->device();
- if(!md)
- continue;
-
- if(!(md->rwFlags() & 2))
- continue;
-
- //printf("MidiStrip::iRoutePressed adding submenu portnum:%d\n", i);
-
- //QMenu* m = menu->addMenu(track->name());
- QPopupMenu* subp = new QPopupMenu(iR);
-
- for(int ch = 0; ch < MIDI_CHANNELS; ++ch)
- {
- //QAction* a = m->addAction(QString("Channel %1").arg(ch+1));
- //subp->insertItem(QT_TR_NOOP(QString("Channel %1").arg(ch+1)), i * MIDI_CHANNELS + ch);
- gid = i * MIDI_CHANNELS + ch;
-
- //printf("MidiStrip::iRoutePressed inserting gid:%d\n", gid);
-
- subp->insertItem(QString("Channel %1").arg(ch+1), gid);
- //a->setCheckable(true);
- //Route src(track, ch, RouteNode::TRACK);
- //Route src(md, ch);
- //Route r = Route(src, dst);
- //a->setData(QVariant::fromValue(r));
- //a->setChecked(rl->indexOf(r) != -1);
- Route srcRoute(md, ch);
- for(iRoute ir = irl->begin(); ir != irl->end(); ++ir)
- {
- //if(*ir == dst)
- if(*ir == srcRoute)
- {
- subp->setItemChecked(gid, true);
- break;
- }
- }
- }
- pup->insertItem(QT_TR_NOOP(md->name()), subp);
- }
-
- int n = pup->exec(QCursor::pos());
- delete pup;
- if (n != -1)
- {
- int mdidx = n / MIDI_CHANNELS;
- int ch = n % MIDI_CHANNELS;
-
- //if(debugMsg)
- printf("MidiStrip::iRoutePressed mdidx:%d ch:%d\n", mdidx, ch);
-
- MidiPort* mp = &midiPorts[mdidx];
- MidiDevice* md = mp->device();
- if(!md)
- return;
-
- if(!(md->rwFlags() & 2))
- return;
-
-
- //QString s(pup->text(n));
- //QT_TR_NOOP(md->name())
-
- //Route srcRoute(s, false, -1);
- Route srcRoute(md, ch);
- //Route srcRoute(md, -1);
- //Route dstRoute(track, -1);
- Route dstRoute(track, ch);
-
- //if (track->type() == Track::AUDIO_INPUT)
- // srcRoute.channel = dstRoute.channel = n & 0xf;
- iRoute iir = irl->begin();
- for (; iir != irl->end(); ++iir) {
- if (*iir == srcRoute)
- break;
- }
- if (iir != irl->end()) {
- // disconnect
- printf("MidiStrip::iRoutePressed removing route src device name: %s dst track name: %s\n", md->name().latin1(), track->name().latin1());
- audio->msgRemoveRoute(srcRoute, dstRoute);
- }
- else {
- // connect
- printf("MidiStrip::iRoutePressed adding route src device name: %s dst track name: %s\n", md->name().latin1(), track->name().latin1());
- audio->msgAddRoute(srcRoute, dstRoute);
- }
- printf("MidiStrip::iRoutePressed calling msgUpdateSoloStates\n");
- audio->msgUpdateSoloStates();
- printf("MidiStrip::iRoutePressed calling song->update\n");
- song->update(SC_ROUTE);
- }
- //delete pup;
- iR->setDown(false); // pup->exec() catches mouse release event
- printf("MidiStrip::iRoutePressed end\n");
- */
-
}
//---------------------------------------------------------
@@ -1113,104 +999,19 @@ void MidiStrip::iRoutePressed()
//---------------------------------------------------------
void MidiStrip::oRoutePressed()
- {
+{
if(!track || !track->isMidiTrack())
return;
- //song->chooseMidiRoutes(oR, (MidiTrack*)track, true);
PopupMenu* pup = muse->prepareRoutingPopupMenu(track, true);
if(!pup)
return;
- //pup->disconnect();
gRoutingPopupMenuMaster = this;
- connect(pup, SIGNAL(activated(int)), SLOT(routingPopupMenuActivated(int)));
+ connect(pup, SIGNAL(triggered(QAction*)), SLOT(routingPopupMenuActivated(QAction*)));
connect(pup, SIGNAL(aboutToHide()), muse, SLOT(routingPopupMenuAboutToHide()));
- pup->popup(QCursor::pos(), 0);
+ pup->popup(QCursor::pos());
oR->setDown(false);
- return;
-
- /*
- QPopupMenu* pup = new QPopupMenu(oR);
- pup->setCheckable(true);
- AudioTrack* t = (AudioTrack*)track;
- RouteList* orl = t->outRoutes();
-
- switch(track->type()) {
- case Track::MIDI:
- case Track::DRUM:
- delete pup;
- return;
- case Track::AUDIO_OUTPUT:
- {
- int gid = 0;
- for (int i = 0; i < channel; ++i) {
- char buffer[128];
- snprintf(buffer, 128, "%s %d", tr("Channel").latin1(), i+1);
- MenuTitleItem* titel = new MenuTitleItem(QString(buffer));
- pup->insertItem(titel);
-
- if (!checkAudioDevice()) return;
- std::list<QString> ol = audioDevice->inputPorts();
- for (std::list<QString>::iterator ip = ol.begin(); ip != ol.end(); ++ip) {
- int id = pup->insertItem(*ip, (gid * 16) + i);
- Route dst(*ip, true, i);
- ++gid;
- for (iRoute ir = orl->begin(); ir != orl->end(); ++ir) {
- if (*ir == dst) {
- pup->setItemChecked(id, true);
- break;
- }
- }
- }
- if (i+1 != channel)
- pup->insertSeparator();
- }
- }
- break;
- case Track::AUDIO_INPUT:
- addWavePorts(t, pup, orl);
- case Track::WAVE:
- case Track::AUDIO_GROUP:
- case Track::AUDIO_SOFTSYNTH:
- addOutPorts(t, pup, orl);
- addGroupPorts(t, pup, orl);
- break;
- case Track::AUDIO_AUX:
- addOutPorts(t, pup, orl);
- break;
- }
- int n = pup->exec(QCursor::pos());
- if (n != -1) {
- QString s(pup->text(n));
- Route srcRoute(t, -1);
- Route dstRoute(s, true, -1);
-
- if (track->type() == Track::AUDIO_OUTPUT)
- srcRoute.channel = dstRoute.channel = n & 0xf;
-
- // check if route src->dst exists:
- iRoute iorl = orl->begin();
- for (; iorl != orl->end(); ++iorl) {
- if (*iorl == dstRoute)
- break;
- }
- if (iorl != orl->end()) {
- // disconnect if route exists
- audio->msgRemoveRoute(srcRoute, dstRoute);
- }
- else {
- // connect if route does not exist
- audio->msgAddRoute(srcRoute, dstRoute);
- }
- audio->msgUpdateSoloStates();
- song->update(SC_ROUTE);
- }
- delete pup;
- oR->setDown(false); // pup->exec() catches mouse release event
- */
-
-
- }
+}