30
36
// inputs | synthis | tracks | groups | master
31
37
//---------------------------------------------------------
33
AudioMixerApp::AudioMixerApp(QWidget* parent)
39
//AudioMixerApp::AudioMixerApp(QWidget* parent)
40
AudioMixerApp::AudioMixerApp(QWidget* parent, MixerConfig* c)
34
41
: QMainWindow(parent, "mixer")
38
setCaption(tr("MusE: Mixer"));
46
//setCaption(tr("MusE: Mixer"));
49
//printf("AudioMixerApp::AudioMixerApp setting caption:%s\n", cfg->name.latin1());
50
setCaption(cfg->name);
40
52
QPopupMenu* menuConfig = new QPopupMenu(this);
41
53
menuBar()->insertItem(tr("&Create"), menuConfig);
45
57
menuBar()->insertItem(tr("&View"), menuView);
46
58
routingId = menuView->insertItem(tr("Routing"), this, SLOT(toggleRouteDialog()));
60
menuView->insertSeparator();
62
QActionGroup* actionItems = new QActionGroup(this, "actionItems", false);
65
showMidiTracksId = new QAction(tr("Show Midi Tracks"), 0, menuView);
66
showDrumTracksId = new QAction(tr("Show Drum Tracks"), 0, menuView);
67
showWaveTracksId = new QAction(tr("Show Wave Tracks"), 0, menuView);
69
showMidiTracksId = new QAction(tr("Show Midi Tracks"), 0, actionItems);
70
showDrumTracksId = new QAction(tr("Show Drum Tracks"), 0, actionItems);
71
showWaveTracksId = new QAction(tr("Show Wave Tracks"), 0, actionItems);
72
//showMidiTracksId->addTo(menuView);
73
//showDrumTracksId->addTo(menuView);
74
//showWaveTracksId->addTo(menuView);
76
//menuView->insertSeparator();
77
actionItems->addSeparator();
80
showInputTracksId= new QAction(tr("Show Inputs"), 0, menuView);
81
showOutputTracksId = new QAction(tr("Show Outputs"), 0, menuView);
82
showGroupTracksId = new QAction(tr("Show Groups"), 0, menuView);
83
showAuxTracksId = new QAction(tr("Show Auxs"), 0, menuView);
84
showSyntiTracksId = new QAction(tr("Show Synthesizers"), 0, menuView);
86
showInputTracksId = new QAction(tr("Show Inputs"), 0, actionItems);
87
showOutputTracksId = new QAction(tr("Show Outputs"), 0, actionItems);
88
showGroupTracksId = new QAction(tr("Show Groups"), 0, actionItems);
89
showAuxTracksId = new QAction(tr("Show Auxs"), 0, actionItems);
90
showSyntiTracksId = new QAction(tr("Show Synthesizers"), 0, actionItems);
91
//showInputTracksId->addTo(menuView);
92
//showOutputTracksId->addTo(menuView);
93
//showGroupTracksId->addTo(menuView);
94
//showAuxTracksId->addTo(menuView);
95
//showSyntiTracksId->addTo(menuView);
97
showMidiTracksId->setToggleAction(true);
98
showDrumTracksId->setToggleAction(true);
99
showWaveTracksId->setToggleAction(true);
100
showInputTracksId->setToggleAction(true);
101
showOutputTracksId->setToggleAction(true);
102
showGroupTracksId->setToggleAction(true);
103
showAuxTracksId->setToggleAction(true);
104
showSyntiTracksId->setToggleAction(true);
106
//connect(menuView, SIGNAL(triggered(QAction*)), SLOT(showTracksChanged(QAction*)));
107
//connect(actionItems, SIGNAL(selected(QAction*)), this, SLOT(showTracksChanged(QAction*)));
108
connect(showMidiTracksId, SIGNAL(toggled(bool)), SLOT(showMidiTracksChanged(bool)));
109
connect(showDrumTracksId, SIGNAL(toggled(bool)), SLOT(showDrumTracksChanged(bool)));
110
connect(showWaveTracksId, SIGNAL(toggled(bool)), SLOT(showWaveTracksChanged(bool)));
111
connect(showInputTracksId, SIGNAL(toggled(bool)), SLOT(showInputTracksChanged(bool)));
112
connect(showOutputTracksId, SIGNAL(toggled(bool)), SLOT(showOutputTracksChanged(bool)));
113
connect(showGroupTracksId, SIGNAL(toggled(bool)), SLOT(showGroupTracksChanged(bool)));
114
connect(showAuxTracksId, SIGNAL(toggled(bool)), SLOT(showAuxTracksChanged(bool)));
115
connect(showSyntiTracksId, SIGNAL(toggled(bool)), SLOT(showSyntiTracksChanged(bool)));
117
actionItems->addTo(menuView);
48
118
view = new QScrollView(this);
49
119
setCentralWidget(view);
50
120
central = new QWidget(view);
114
184
void AudioMixerApp::updateMixer(UpdateAction action)
186
//printf("AudioMixerApp::updateMixer action:%d\n", action);
190
setCaption(cfg->name);
192
showMidiTracksId->setOn(cfg->showMidiTracks);
193
showDrumTracksId->setOn(cfg->showDrumTracks);
194
showInputTracksId->setOn(cfg->showInputTracks);
195
showOutputTracksId->setOn(cfg->showOutputTracks);
196
showWaveTracksId->setOn(cfg->showWaveTracks);
197
showGroupTracksId->setOn(cfg->showGroupTracks);
198
showAuxTracksId->setOn(cfg->showAuxTracks);
199
showSyntiTracksId->setOn(cfg->showSyntiTracks);
116
201
int auxsSize = song->auxs()->size();
117
202
if ((action == UPDATE_ALL) || (auxsSize != oldAuxsSize)) {
208
295
// generate Input Strips
209
296
//---------------------------------------------------
211
InputList* itl = song->inputs();
212
for (iAudioInput i = itl->begin(); i != itl->end(); ++i)
298
if(cfg->showInputTracks)
300
InputList* itl = song->inputs();
301
for (iAudioInput i = itl->begin(); i != itl->end(); ++i)
213
302
addStrip(*i, idx++);
215
305
//---------------------------------------------------
216
306
// Synthesizer Strips
217
307
//---------------------------------------------------
219
SynthIList* sl = song->syntis();
220
for (iSynthI i = sl->begin(); i != sl->end(); ++i)
309
if(cfg->showSyntiTracks)
311
SynthIList* sl = song->syntis();
312
for (iSynthI i = sl->begin(); i != sl->end(); ++i)
221
313
addStrip(*i, idx++);
223
316
//---------------------------------------------------
224
317
// generate Wave Track Strips
225
318
//---------------------------------------------------
227
WaveTrackList* wtl = song->waves();
228
for (iWaveTrack i = wtl->begin(); i != wtl->end(); ++i)
320
if(cfg->showWaveTracks)
322
WaveTrackList* wtl = song->waves();
323
for (iWaveTrack i = wtl->begin(); i != wtl->end(); ++i)
229
324
addStrip(*i, idx++);
231
327
//---------------------------------------------------
232
328
// generate Midi channel/port Strips
233
329
//---------------------------------------------------
250
346
MidiTrackList* mtl = song->midis();
251
347
for (iMidiTrack i = mtl->begin(); i != mtl->end(); ++i)
350
if((mt->type() == Track::MIDI && cfg->showMidiTracks) || (mt->type() == Track::DRUM && cfg->showDrumTracks))
256
354
//---------------------------------------------------
258
356
//---------------------------------------------------
260
GroupList* gtl = song->groups();
261
for (iAudioGroup i = gtl->begin(); i != gtl->end(); ++i)
358
if(cfg->showGroupTracks)
360
GroupList* gtl = song->groups();
361
for (iAudioGroup i = gtl->begin(); i != gtl->end(); ++i)
262
362
addStrip(*i, idx++);
264
365
//---------------------------------------------------
266
367
//---------------------------------------------------
268
AuxList* al = song->auxs();
269
for (iAudioAux i = al->begin(); i != al->end(); ++i)
369
if(cfg->showAuxTracks)
371
AuxList* al = song->auxs();
372
for (iAudioAux i = al->begin(); i != al->end(); ++i)
270
373
addStrip(*i, idx++);
272
376
//---------------------------------------------------
274
378
//---------------------------------------------------
276
OutputList* otl = song->outputs();
277
for (iAudioOutput i = otl->begin(); i != otl->end(); ++i)
380
if(cfg->showOutputTracks)
382
OutputList* otl = song->outputs();
383
for (iAudioOutput i = otl->begin(); i != otl->end(); ++i)
278
384
addStrip(*i, idx++);
280
setMaximumWidth(STRIP_WIDTH * idx);
387
//printf("AudioMixerApp::updateMixer setting maximum width:%d\n", STRIP_WIDTH * idx + __WIDTH_COMPENSATION);
388
setMaximumWidth(STRIP_WIDTH * idx + __WIDTH_COMPENSATION);
282
view->setMinimumWidth(idx * STRIP_WIDTH);
391
//printf("AudioMixerApp::updateMixer setting minimum width:%d\n", idx * STRIP_WIDTH + __WIDTH_COMPENSATION);
392
view->setMinimumWidth(idx * STRIP_WIDTH + __WIDTH_COMPENSATION);
285
396
//---------------------------------------------------------
367
477
menuView->setItemChecked(routingId, false);
480
//---------------------------------------------------------
482
//---------------------------------------------------------
485
void AudioMixerApp::showTracksChanged(QAction* id)
487
bool val = id->isOn();
488
if (id == showMidiTracksId)
489
cfg->showMidiTracks = val;
490
else if (id == showDrumTracksId)
491
cfg->showDrumTracks = val;
492
else if (id == showInputTracksId)
493
cfg->showInputTracks = val;
494
else if (id == showOutputTracksId)
495
cfg->showOutputTracks = val;
496
else if (id == showWaveTracksId)
497
cfg->showWaveTracks = val;
498
else if (id == showGroupTracksId)
499
cfg->showGroupTracks = val;
500
else if (id == showAuxTracksId)
501
cfg->showAuxTracks = val;
502
else if (id == showSyntiTracksId)
503
cfg->showSyntiTracks = val;
504
updateMixer(UPDATE_ALL);
508
void AudioMixerApp::showMidiTracksChanged(bool v)
510
cfg->showMidiTracks = v;
511
updateMixer(UPDATE_ALL);
514
void AudioMixerApp::showDrumTracksChanged(bool v)
516
cfg->showDrumTracks = v;
517
updateMixer(UPDATE_ALL);
520
void AudioMixerApp::showWaveTracksChanged(bool v)
522
cfg->showWaveTracks = v;
523
updateMixer(UPDATE_ALL);
526
void AudioMixerApp::showInputTracksChanged(bool v)
528
cfg->showInputTracks = v;
529
updateMixer(UPDATE_ALL);
532
void AudioMixerApp::showOutputTracksChanged(bool v)
534
cfg->showOutputTracks = v;
535
updateMixer(UPDATE_ALL);
538
void AudioMixerApp::showGroupTracksChanged(bool v)
540
cfg->showGroupTracks = v;
541
updateMixer(UPDATE_ALL);
544
void AudioMixerApp::showAuxTracksChanged(bool v)
546
cfg->showAuxTracks = v;
547
updateMixer(UPDATE_ALL);
550
void AudioMixerApp::showSyntiTracksChanged(bool v)
552
cfg->showSyntiTracks = v;
553
updateMixer(UPDATE_ALL);
556
//---------------------------------------------------------
558
//---------------------------------------------------------
560
//void AudioMixerApp::write(Xml& xml, const char* name)
561
void AudioMixerApp::write(int level, Xml& xml)
562
//void AudioMixerApp::write(int level, Xml& xml, const char* name)
564
//xml.stag(QString(name));
565
//xml.tag(level++, name.latin1());
566
xml.tag(level++, "Mixer");
568
xml.strTag(level, "name", cfg->name);
570
//xml.tag("geometry", geometry());
571
xml.qrectTag(level, "geometry", geometry());
573
xml.intTag(level, "showMidiTracks", cfg->showMidiTracks);
574
xml.intTag(level, "showDrumTracks", cfg->showDrumTracks);
575
xml.intTag(level, "showInputTracks", cfg->showInputTracks);
576
xml.intTag(level, "showOutputTracks", cfg->showOutputTracks);
577
xml.intTag(level, "showWaveTracks", cfg->showWaveTracks);
578
xml.intTag(level, "showGroupTracks", cfg->showGroupTracks);
579
xml.intTag(level, "showAuxTracks", cfg->showAuxTracks);
580
xml.intTag(level, "showSyntiTracks", cfg->showSyntiTracks);
583
//xml.etag(level, name.latin1());
584
xml.etag(level, "Mixer");