summaryrefslogtreecommitdiff
path: root/muse2/muse/midiedit/drumedit.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'muse2/muse/midiedit/drumedit.cpp')
-rw-r--r--muse2/muse/midiedit/drumedit.cpp103
1 files changed, 59 insertions, 44 deletions
diff --git a/muse2/muse/midiedit/drumedit.cpp b/muse2/muse/midiedit/drumedit.cpp
index 1553ec2b..a9ba81ef 100644
--- a/muse2/muse/midiedit/drumedit.cpp
+++ b/muse2/muse/midiedit/drumedit.cpp
@@ -3,6 +3,21 @@
// Linux Music Editor
// $Id: drumedit.cpp,v 1.22.2.21 2009/11/16 11:29:33 lunar_shuttle Exp $
// (C) Copyright 1999 Werner Schweer (ws@seh.de)
+//
+// 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; 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.
+//
//=========================================================
#include <QAction>
@@ -67,7 +82,7 @@ int DrumEdit::_dcanvasWidthInit = 300;
static const int xscale = -10;
static const int yscale = 1;
-static const int drumeditTools = PointerTool | PencilTool | RubberTool | CursorTool | DrawTool;
+static const int drumeditTools = MusEWidget::PointerTool | MusEWidget::PencilTool | MusEWidget::RubberTool | MusEWidget::CursorTool | MusEWidget::DrawTool;
enum DrumColumn {
COL_MUTE = 0,
@@ -177,7 +192,7 @@ DrumEdit::DrumEdit(PartList* pl, QWidget* parent, const char* name, unsigned ini
signalMapper->setMapping(resetAction, DrumCanvas::CMD_RESET);
menuEdit = menuBar()->addMenu(tr("&Edit"));
- menuEdit->addActions(undoRedo->actions());
+ menuEdit->addActions(MusEGlobal::undoRedo->actions());
menuEdit->addSeparator();
cutAction = menuEdit->addAction(QIcon(*editcutIconSet), tr("Cut"));
@@ -291,7 +306,7 @@ DrumEdit::DrumEdit(PartList* pl, QWidget* parent, const char* name, unsigned ini
tools->addAction(QWhatsThis::createAction());
tools->addSeparator();
- tools->addActions(undoRedo->actions());
+ tools->addActions(MusEGlobal::undoRedo->actions());
tools->addSeparator();
srec = new QToolButton();
@@ -307,7 +322,7 @@ DrumEdit::DrumEdit(PartList* pl, QWidget* parent, const char* name, unsigned ini
tools->addWidget(midiin);
- tools2 = new EditToolBar(this, drumeditTools);
+ tools2 = new MusEWidget::EditToolBar(this, drumeditTools);
addToolBar(tools2);
QToolBar* cursorToolbar = addToolBar(tr("cursor tools"));
@@ -331,32 +346,32 @@ DrumEdit::DrumEdit(PartList* pl, QWidget* parent, const char* name, unsigned ini
QToolBar* panicToolbar = addToolBar(tr("panic"));
panicToolbar->setObjectName("panic");
- panicToolbar->addAction(panicAction);
+ panicToolbar->addAction(MusEGlobal::panicAction);
QToolBar* transport = addToolBar(tr("transport"));
transport->setObjectName("transport");
- transport->addActions(transportAction->actions());
+ transport->addActions(MusEGlobal::transportAction->actions());
addToolBarBreak();
// don't show pitch value in toolbar
- toolbar = new Toolbar1(this, _rasterInit, false);
+ toolbar = new MusEWidget::Toolbar1(this, _rasterInit, false);
addToolBar(toolbar);
addToolBarBreak();
- info = new NoteInfo(this);
+ info = new MusEWidget::NoteInfo(this);
addToolBar(info);
//---------------------------------------------------
// split
//---------------------------------------------------
- split1 = new Splitter(Qt::Vertical, mainw, "split1");
+ split1 = new MusEWidget::Splitter(Qt::Vertical, mainw, "split1");
QPushButton* ctrl = new QPushButton(tr("ctrl"), mainw);
ctrl->setObjectName("Ctrl");
- ctrl->setFont(config.fonts[3]);
- //hscroll = new ScrollScale(-25, -2, xscale, 20000, Qt::Horizontal, mainw);
+ ctrl->setFont(MusEConfig::config.fonts[3]);
+ //hscroll = new MusEWidget::ScrollScale(-25, -2, xscale, 20000, Qt::Horizontal, mainw);
// Increased scale to -1. To resolve/select/edit 1-tick-wide (controller graph) events. p4.0.18 Tim.
- hscroll = new ScrollScale(-25, -1, xscale, 20000, Qt::Horizontal, mainw);
+ hscroll = new MusEWidget::ScrollScale(-25, -1, xscale, 20000, Qt::Horizontal, mainw);
ctrl->setFixedSize(40, hscroll->sizeHint().height());
ctrl->setToolTip(tr("Add Controller View"));
@@ -373,7 +388,7 @@ DrumEdit::DrumEdit(PartList* pl, QWidget* parent, const char* name, unsigned ini
// mainGrid->addRowSpacing(1, hscroll->sizeHint().height());
// mainGrid->addItem(new QSpacerItem(0, hscroll->sizeHint().height()), 1, 0);
- split2 = new Splitter(Qt::Horizontal, split1, "split2");
+ split2 = new MusEWidget::Splitter(Qt::Horizontal, split1, "split2");
split1w1 = new QWidget(split2);
QWidget* split1w2 = new QWidget(split2);
QGridLayout* gridS1 = new QGridLayout(split1w1);
@@ -382,10 +397,10 @@ DrumEdit::DrumEdit(PartList* pl, QWidget* parent, const char* name, unsigned ini
gridS1->setSpacing(0);
gridS2->setContentsMargins(0, 0, 0, 0);
gridS2->setSpacing(0);
- time = new MTScale(&_raster, split1w2, xscale);
+ time = new MusEWidget::MTScale(&_raster, split1w2, xscale);
canvas = new DrumCanvas(this, split1w2, xscale, yscale);
- vscroll = new ScrollScale(-4, 1, yscale, DRUM_MAPSIZE*TH, Qt::Vertical, split1w2);
- int offset = -(config.division/4);
+ vscroll = new MusEWidget::ScrollScale(-4, 1, yscale, DRUM_MAPSIZE*TH, Qt::Vertical, split1w2);
+ int offset = -(MusEConfig::config.division/4);
canvas->setOrigin(offset, 0);
canvas->setCanvasTools(drumeditTools);
canvas->setFocus();
@@ -400,20 +415,20 @@ DrumEdit::DrumEdit(PartList* pl, QWidget* parent, const char* name, unsigned ini
split2->setSizes(mops);
// By T356. Not much choice but to disable this for now, to stop runaway resize bug.
// Can't seem to get the splitter to readjust when manually setting sizes.
- //split2->setResizeMode(split1w1, QSplitter::KeepSize);
+ //split2->setResizeMode(split1w1, QMusEWidget::Splitter::KeepSize);
gridS2->setRowStretch(1, 100);
gridS2->setColumnStretch(0, 100);
gridS2->addWidget(time, 0, 0, 1, 2);
- gridS2->addWidget(hLine(split1w2), 1, 0, 1, 2);
+ gridS2->addWidget(MusEUtil::hLine(split1w2), 1, 0, 1, 2);
gridS2->addWidget(canvas, 2, 0);
gridS2->addWidget(vscroll, 2, 1);
//
// Reihenfolge in dlist.c festgeschrieben ("Dcols")
//
- header = new Header(split1w1, "header");
+ header = new MusEWidget::Header(split1w1, "header");
header->setFixedHeight(31);
header->setColumnLabel(tr("M"), COL_MUTE, 20);
header->setColumnLabel(tr("Sound"), COL_NAME, 120);
@@ -480,7 +495,7 @@ DrumEdit::DrumEdit(PartList* pl, QWidget* parent, const char* name, unsigned ini
connect(time, SIGNAL(timeChanged(unsigned)), SLOT(setTime(unsigned)));
connect(toolbar, SIGNAL(rasterChanged(int)), SLOT(setRaster(int)));
connect(toolbar, SIGNAL(soloChanged(bool)), SLOT(soloChanged(bool)));
- connect(info, SIGNAL(valueChanged(NoteInfo::ValType, int)), SLOT(noteinfoChanged(NoteInfo::ValType, int)));
+ connect(info, SIGNAL(valueChanged(MusEWidget::NoteInfo::ValType, int)), SLOT(noteinfoChanged(MusEWidget::NoteInfo::ValType, int)));
connect(ctrl, SIGNAL(clicked()), SLOT(addCtrl()));
@@ -578,7 +593,7 @@ void DrumEdit::setTime(unsigned tick)
DrumEdit::~DrumEdit()
{
- //undoRedo->removeFrom(tools); // p4.0.6 Removed
+ //MusEGlobal::undoRedo->removeFrom(tools); // p4.0.6 Removed
}
//---------------------------------------------------------
@@ -627,7 +642,7 @@ void DrumEdit::setRaster(int val)
// edit currently selected Event
//---------------------------------------------------------
-void DrumEdit::noteinfoChanged(NoteInfo::ValType type, int val)
+void DrumEdit::noteinfoChanged(MusEWidget::NoteInfo::ValType type, int val)
{
if (selEvent.empty()) {
printf("noteinfoChanged while note is zero %d\n", type);
@@ -635,19 +650,19 @@ void DrumEdit::noteinfoChanged(NoteInfo::ValType type, int val)
}
Event event = selEvent.clone();
switch (type) {
- case NoteInfo::VAL_TIME:
+ case MusEWidget::NoteInfo::VAL_TIME:
event.setTick(val - selPart->tick());
break;
- case NoteInfo::VAL_LEN:
+ case MusEWidget::NoteInfo::VAL_LEN:
event.setLenTick(val);
break;
- case NoteInfo::VAL_VELON:
+ case MusEWidget::NoteInfo::VAL_VELON:
event.setVelo(val);
break;
- case NoteInfo::VAL_VELOFF:
+ case MusEWidget::NoteInfo::VAL_VELOFF:
event.setVeloOff(val);
break;
- case NoteInfo::VAL_PITCH:
+ case MusEWidget::NoteInfo::VAL_PITCH:
event.setPitch(val);
break;
}
@@ -799,13 +814,13 @@ void DrumEdit::writeConfiguration(int level, Xml& xml)
void DrumEdit::load()
{
- //QString fn = getOpenFileName("drummaps", map_file_pattern,
- QString fn = getOpenFileName("drummaps", drum_map_file_pattern,
+ //QString fn = MusEWidget::getOpenFileName("drummaps", map_file_pattern,
+ QString fn = MusEWidget::getOpenFileName("drummaps", MusEGlobal::drum_map_file_pattern,
this, tr("Muse: Load Drum Map"), 0);
if (fn.isEmpty())
return;
bool popenFlag;
- FILE* f = fileOpen(this, fn, QString(".map"), "r", popenFlag, true);
+ FILE* f = MusEWidget::fileOpen(this, fn, QString(".map"), "r", popenFlag, true);
if (f == 0)
return;
@@ -852,13 +867,13 @@ ende:
void DrumEdit::save()
{
- //QString fn = getSaveFileName(QString("drummaps"), map_file_pattern,
- QString fn = getSaveFileName(QString("drummaps"), drum_map_file_save_pattern,
+ //QString fn = MusEWidget::getSaveFileName(QString("drummaps"), map_file_pattern,
+ QString fn = MusEWidget::getSaveFileName(QString("drummaps"), MusEGlobal::drum_map_file_save_pattern,
this, tr("MusE: Store Drum Map"));
if (fn.isEmpty())
return;
bool popenFlag;
- FILE* f = fileOpen(this, fn, QString(".map"), "w", popenFlag, false, true);
+ FILE* f = MusEWidget::fileOpen(this, fn, QString(".map"), "w", popenFlag, false, true);
if (f == 0)
return;
Xml xml(f);
@@ -914,7 +929,7 @@ void DrumEdit::cmd(int cmd)
case DrumCanvas::CMD_QUANTIZE:
if (quantize_dialog->exec())
quantize_notes(partlist_to_set(parts()), quantize_dialog->range,
- (config.division*4)/(1<<quantize_dialog->raster_power2),
+ (MusEConfig::config.division*4)/(1<<quantize_dialog->raster_power2),
/* quant_len= */false, quantize_dialog->strength,
quantize_dialog->swing, quantize_dialog->threshold);
break;
@@ -1134,28 +1149,28 @@ void DrumEdit::keyPressEvent(QKeyEvent* event)
}
else if (key == shortcuts[SHRT_TOOL_POINTER].key) {
- tools2->set(PointerTool);
+ tools2->set(MusEWidget::PointerTool);
return;
}
else if (key == shortcuts[SHRT_TOOL_PENCIL].key) {
- tools2->set(PencilTool);
+ tools2->set(MusEWidget::PencilTool);
return;
}
else if (key == shortcuts[SHRT_TOOL_RUBBER].key) {
- tools2->set(RubberTool);
+ tools2->set(MusEWidget::RubberTool);
return;
}
else if (key == shortcuts[SHRT_TOOL_CURSOR].key) {
- tools2->set(CursorTool);
+ tools2->set(MusEWidget::CursorTool);
return;
}
else if (key == shortcuts[SHRT_ZOOM_IN].key) {
int mag = hscroll->mag();
- int zoomlvl = ScrollScale::getQuickZoomLevel(mag);
+ int zoomlvl = MusEWidget::ScrollScale::getQuickZoomLevel(mag);
if (zoomlvl < 23)
zoomlvl++;
- int newmag = ScrollScale::convertQuickZoomLevelToMag(zoomlvl);
+ int newmag = MusEWidget::ScrollScale::convertQuickZoomLevelToMag(zoomlvl);
hscroll->setMag(newmag);
//printf("mag = %d zoomlvl = %d newmag = %d\n", mag, zoomlvl, newmag);
@@ -1163,24 +1178,24 @@ void DrumEdit::keyPressEvent(QKeyEvent* event)
}
else if (key == shortcuts[SHRT_ZOOM_OUT].key) {
int mag = hscroll->mag();
- int zoomlvl = ScrollScale::getQuickZoomLevel(mag);
+ int zoomlvl = MusEWidget::ScrollScale::getQuickZoomLevel(mag);
if (zoomlvl > 1)
zoomlvl--;
- int newmag = ScrollScale::convertQuickZoomLevelToMag(zoomlvl);
+ int newmag = MusEWidget::ScrollScale::convertQuickZoomLevelToMag(zoomlvl);
hscroll->setMag(newmag);
//printf("mag = %d zoomlvl = %d newmag = %d\n", mag, zoomlvl, newmag);
return;
}
else if (key == shortcuts[SHRT_SCROLL_LEFT].key) {
- int pos = hscroll->pos() - config.division;
+ int pos = hscroll->pos() - MusEConfig::config.division;
if (pos < 0)
pos = 0;
hscroll->setPos(pos);
return;
}
else if (key == shortcuts[SHRT_SCROLL_RIGHT].key) {
- int pos = hscroll->pos() + config.division;
+ int pos = hscroll->pos() + MusEConfig::config.division;
hscroll->setPos(pos);
return;
}