summaryrefslogtreecommitdiff
path: root/attic/muse2-oom/muse2/muse/master
diff options
context:
space:
mode:
Diffstat (limited to 'attic/muse2-oom/muse2/muse/master')
-rw-r--r--attic/muse2-oom/muse2/muse/master/CMakeLists.txt81
-rw-r--r--attic/muse2-oom/muse2/muse/master/lmaster.cpp750
-rw-r--r--attic/muse2-oom/muse2/muse/master/lmaster.h146
-rw-r--r--attic/muse2-oom/muse2/muse/master/master.cpp338
-rw-r--r--attic/muse2-oom/muse2/muse/master/master.h68
-rw-r--r--attic/muse2-oom/muse2/muse/master/masteredit.cpp406
-rw-r--r--attic/muse2-oom/muse2/muse/master/masteredit.h86
-rw-r--r--attic/muse2-oom/muse2/muse/master/tscale.cpp61
-rw-r--r--attic/muse2-oom/muse2/muse/master/tscale.h35
9 files changed, 0 insertions, 1971 deletions
diff --git a/attic/muse2-oom/muse2/muse/master/CMakeLists.txt b/attic/muse2-oom/muse2/muse/master/CMakeLists.txt
deleted file mode 100644
index bf2cebb7..00000000
--- a/attic/muse2-oom/muse2/muse/master/CMakeLists.txt
+++ /dev/null
@@ -1,81 +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.
-#=============================================================================
-
-##
-## Expand Qt macros in source files
-##
-QT4_WRAP_CPP ( master_mocs
- lmaster.h
- masteredit.h
- master.h
- tscale.h
- )
-
-##
-## List of source files to compile
-##
-file (GLOB master_source_files
- lmaster.cpp
- masteredit.cpp
- master.cpp
- tscale.cpp
- )
-
-##
-## Define target
-##
-add_library ( master SHARED
- ${master_source_files}
- ${master_mocs}
- )
-
-##
-## Append to the list of translations
-##
-set (FILES_TO_TRANSLATE
- ${FILES_TO_TRANSLATE}
- ${master_source_files}
- CACHE INTERNAL ""
- )
-
-##
-## Compilation flags and target name
-##
-set_target_properties( master
- PROPERTIES COMPILE_FLAGS "-include ${PROJECT_BINARY_DIR}/all.h -fPIC"
- OUTPUT_NAME muse_master
- )
-
-##
-## Linkage
-##
-target_link_libraries ( master
- ${QT_LIBRARIES}
- al
- awl
- widgets
- )
-
-##
-## Install location
-##
-install(TARGETS master
- DESTINATION ${MusE_MODULES_DIR}
- )
diff --git a/attic/muse2-oom/muse2/muse/master/lmaster.cpp b/attic/muse2-oom/muse2/muse/master/lmaster.cpp
deleted file mode 100644
index 00a09d13..00000000
--- a/attic/muse2-oom/muse2/muse/master/lmaster.cpp
+++ /dev/null
@@ -1,750 +0,0 @@
-//=========================================================
-// MusE
-// Linux Music Editor
-// $Id: lmaster.cpp,v 1.2.2.8 2009/03/09 02:05:18 terminator356 Exp $
-// (C) Copyright 2000 Werner Schweer (ws@seh.de)
-//=========================================================
-
-#include "awl/posedit.h"
-#include "awl/sigedit.h"
-
-#include "lmaster.h"
-#include "xml.h"
-#include "song.h"
-#include "globals.h"
-#include "audio.h"
-///#include "posedit.h"
-///#include "sigedit.h"
-#include "shortcuts.h"
-#include "debug.h"
-
-#include <QCloseEvent>
-#include <QGridLayout>
-#include <QHeaderView>
-#include <QLineEdit>
-#include <QMenu>
-#include <QMenuBar>
-#include <QMessageBox>
-#include <QSignalMapper>
-#include <QStyle>
-#include <QToolBar>
-#include <QToolButton>
-#include <QTreeWidget>
-
-#define LMASTER_BEAT_COL 0
-#define LMASTER_TIME_COL 1
-#define LMASTER_TYPE_COL 2
-#define LMASTER_VAL_COL 3
-
-#define LMASTER_MSGBOX_STRING "MusE: List Editor"
-//---------------------------------------------------------
-// closeEvent
-//---------------------------------------------------------
-
-void LMaster::closeEvent(QCloseEvent* e)
- {
- emit deleted((unsigned long)this);
- e->accept();
- }
-
-//---------------------------------------------------------
-// songChanged
-//---------------------------------------------------------
-
-void LMaster::songChanged(int type)
- {
- if (type & (SC_SIG | SC_TEMPO))
- updateList();
- }
-
-//---------------------------------------------------------
-// LMaster
-//---------------------------------------------------------
-
-LMaster::LMaster()
- : MidiEditor(0, 0, 0)
- {
- pos_editor = 0;
- editor = 0;
- sig_editor = 0;
- editedItem = 0;
- editingNewItem = false;
- setWindowTitle(tr("MusE: Mastertrack"));
- setMinimumHeight(100);
- setFixedWidth(400);
-
- //---------Pulldown Menu----------------------------
- menuEdit = menuBar()->addMenu(tr("&Edit"));
- QSignalMapper *signalMapper = new QSignalMapper(this);
- menuEdit->addActions(undoRedo->actions());
- menuEdit->addSeparator();
- tempoAction = menuEdit->addAction(tr("Insert Tempo"));
- signAction = menuEdit->addAction(tr("Insert Signature"));
- posAction = menuEdit->addAction(tr("Edit Positon"));
- valAction = menuEdit->addAction(tr("Edit Value"));
- delAction = menuEdit->addAction(tr("Delete Event"));
- delAction->setShortcut(Qt::Key_Delete);
-
- connect(tempoAction, SIGNAL(triggered()), signalMapper, SLOT(map()));
- connect(signAction, SIGNAL(triggered()), signalMapper, SLOT(map()));
- connect(posAction, SIGNAL(triggered()), signalMapper, SLOT(map()));
- connect(valAction, SIGNAL(triggered()), signalMapper, SLOT(map()));
- connect(delAction, SIGNAL(triggered()), signalMapper, SLOT(map()));
-
- signalMapper->setMapping(tempoAction, CMD_INSERT_TEMPO);
- signalMapper->setMapping(signAction, CMD_INSERT_SIG);
- signalMapper->setMapping(posAction, CMD_EDIT_BEAT);
- signalMapper->setMapping(valAction, CMD_EDIT_VALUE);
- signalMapper->setMapping(delAction, CMD_DELETE);
-
- connect(signalMapper, SIGNAL(mapped(int)), SLOT(cmd(int)));
-
- //---------ToolBar----------------------------------
- tools = addToolBar(tr("Master tools"));
- tools->addActions(undoRedo->actions());
-
- //QToolBar* edit = new QToolBar(this, "edit tools");
- QToolBar* edit = addToolBar(tr("Edit tools"));
- //QToolButton* tempoButton = new QToolButton(edit);
- QToolButton* tempoButton = new QToolButton();
- //QToolButton* timeSigButton = new QToolButton(edit);
- QToolButton* timeSigButton = new QToolButton();
- tempoButton->setText(tr("Tempo"));
- timeSigButton->setText(tr("Timesig"));
- tempoButton->setToolTip(tr("new tempo"));
- timeSigButton->setToolTip(tr("new signature"));
- edit->addWidget(tempoButton);
- edit->addWidget(timeSigButton);
-
- ///Q3Accel* qa = new Q3Accel(this);
- ///qa->connectItem(qa->insertItem(Qt::CTRL+Qt::Key_Z), song, SLOT(undo()));
- ///qa->connectItem(qa->insertItem(Qt::CTRL+Qt::Key_Y), song, SLOT(redo()));
-
- //---------------------------------------------------
- // master
- //---------------------------------------------------
-
- view = new QTreeWidget;
- view->setAllColumnsShowFocus(true);
- view->setSelectionMode(QAbstractItemView::SingleSelection);
- QStringList columnnames;
- columnnames << tr("Meter")
- << tr("Time")
- << tr("Type")
- << tr("Value");
- view->setHeaderLabels(columnnames);
- view->setColumnWidth(2,80);
- view->header()->setStretchLastSection(true);
-
- //---------------------------------------------------
- // Rest
- //---------------------------------------------------
-
-// QSizeGrip* corner = new QSizeGrip(mainw);
-
- mainGrid->setRowStretch(0, 100);
- mainGrid->setColumnStretch(0, 100);
-
- mainGrid->addWidget(view, 0, 0);
-// mainGrid->addWidget(corner, 1, 1, AlignBottom | AlignRight);
- updateList();
-
- connect(view, SIGNAL(currentItemChanged(QTreeWidgetItem*, QTreeWidgetItem*)), SLOT(select(QTreeWidgetItem*, QTreeWidgetItem*)));
- connect(view, SIGNAL(itemPressed(QTreeWidgetItem*, int)), SLOT(itemPressed(QTreeWidgetItem*, int)));
- connect(view, SIGNAL(itemDoubleClicked(QTreeWidgetItem*, int)), SLOT(itemDoubleClicked(QTreeWidgetItem*)));
- connect(song, SIGNAL(songChanged(int)), SLOT(songChanged(int)));
- connect(tempoButton, SIGNAL(clicked()), SLOT(tempoButtonClicked()));
- connect(timeSigButton, SIGNAL(clicked()), SLOT(timeSigButtonClicked()));
-
- initShortcuts();
- }
-
-//---------------------------------------------------------
-// ~LMaster
-//---------------------------------------------------------
-
-LMaster::~LMaster()
- {
- //undoRedo->removeFrom(tools); // p4.0.6 Removed
- }
-
-//---------------------------------------------------------
-// insertSig
-//---------------------------------------------------------
-
-void LMaster::insertSig(const AL::SigEvent* ev)
- {
- new LMasterSigEventItem(view, ev);
- }
-
-//---------------------------------------------------------
-// insertTempo
-//---------------------------------------------------------
-
-void LMaster::insertTempo(const TEvent* ev)
- {
- new LMasterTempoItem(view, ev);
- }
-
-//---------------------------------------------------------
-// updateList
-//---------------------------------------------------------
-
-void LMaster::updateList()
- {
- LMasterLViewItem* selected = (LMasterLViewItem*) view->currentItem();
- LMASTER_LVTYPE type = LMASTER_TEMPO;
- unsigned tick = 0;
-
- if (selected) {
- type = selected->getType();
- tick = selected->tick();
- }
-
- view->clear();
- const TempoList* t = &tempomap;
- const AL::SigList* s = &AL::sigmap;
-
- criTEvent it = t->rbegin();
- AL::criSigEvent is = s->rbegin();
- for (;;) {
- if (it == t->rend()) {
- while(is != s->rend()) {
- insertSig(is->second);
- ++is;
- }
- break;
- }
- if (is == s->rend()) {
- while (it != t->rend()) {
- insertTempo(it->second);
- ++it;
- }
- break;
- }
- if (is->second->tick > it->second->tick) {
- insertSig(is->second);
- ++is;
- }
- else {
- insertTempo(it->second);
- ++it;
- }
- }
-
- // Try to reselect the previous selection:
- if(selected)
- {
- LMasterLViewItem* tmp = getItemAtPos(tick, type);
- if (tmp) {
- view->clearSelection();
- view->setCurrentItem(tmp);
- }
- }
- }
-
-//---------------------------------------------------------
-// readStatus
-//---------------------------------------------------------
-
-void LMaster::readStatus(Xml& xml)
- {
- for (;;) {
- Xml::Token token = xml.parse();
- const QString& tag = xml.s1();
- if (token == Xml::Error || token == Xml::End)
- break;
- switch (token) {
- case Xml::TagStart:
- if (tag == "midieditor")
- MidiEditor::readStatus(xml);
- else
- xml.unknown("LMaster");
- break;
- case Xml::TagEnd:
- if (tag == "lmaster")
- return;
- default:
- break;
- }
- }
- }
-
-//---------------------------------------------------------
-// writeStatus
-//---------------------------------------------------------
-
-void LMaster::writeStatus(int level, Xml& xml) const
- {
- xml.tag(level++, "lmaster");
- MidiEditor::writeStatus(level, xml);
- xml.tag(level, "/lmaster");
- }
-
-//---------------------------------------------------------
-// select
-//---------------------------------------------------------
-
-void LMaster::select(QTreeWidgetItem* /*item*/, QTreeWidgetItem* /*previous_item*/)
- {
-// printf("select %x\n", unsigned(item));
- }
-
-//---------------------------------------------------------
-// cmd
-//---------------------------------------------------------
-
-void LMaster::cmd(int cmd)
- {
- switch(cmd) {
- case CMD_DELETE: {
- LMasterLViewItem* l = (LMasterLViewItem*) view->currentItem();
- if (!l)
- return;
- // Delete item:
- if (l->tick() != 0) {
- if (l == view->topLevelItem(view->topLevelItemCount() - 1))
- view->setCurrentItem(view->itemAbove(l));
- else
- view->setCurrentItem(view->itemBelow(l));
-
- switch (l->getType()) {
- case LMASTER_TEMPO:
- {
- LMasterTempoItem* t = (LMasterTempoItem*) l;
- audio->msgDeleteTempo(t->tick(), t->tempo(), true);
- break;
- }
- case LMASTER_SIGEVENT:
- {
- LMasterSigEventItem* s = (LMasterSigEventItem*) l;
- audio->msgRemoveSig(s->tick(), s->z(), s->n());
- break;
- }
- default:
- M_ERROR("Default switch statement reached");
- break;
- }
- }
- break;
- }
- case CMD_INSERT_TEMPO:
- tempoButtonClicked();
- break;
- case CMD_INSERT_SIG:
- timeSigButtonClicked();
- break;
- case CMD_EDIT_BEAT:
- case CMD_EDIT_VALUE:
- cmd == CMD_EDIT_VALUE ? editorColumn = LMASTER_VAL_COL : editorColumn = LMASTER_BEAT_COL;
- if (view->currentItem() && !editedItem) {
- itemDoubleClicked(view->currentItem());
- }
- break;
- }
- }
-
-/*!
- \fn LMaster::itemPressed(QListViewItem* i, const QPoint& p, int column)
- */
-void LMaster::itemPressed(QTreeWidgetItem* i, int column)
- {
- //printf("itemPressed, column: %d\n", column);
- if (editedItem) {
- if (editorColumn != column || editedItem != i)
- returnPressed();
- }
- else
- editorColumn = column;
- }
-
-//---------------------------------------------------------
-// itemDoubleClicked(QListViewItem* item)
-//! Sets lmaster in edit mode, and opens editor for selected value
-//---------------------------------------------------------
-void LMaster::itemDoubleClicked(QTreeWidgetItem* i)
- {
- //printf("itemDoubleClicked\n");
-
- if (!editedItem && editorColumn == LMASTER_VAL_COL) {
- editedItem = (LMasterLViewItem*) i;
- QRect itemRect = view->visualItemRect(editedItem);
- int x1 = view->columnWidth(LMASTER_BEAT_COL) + view->columnWidth(LMASTER_TIME_COL)
- + view->columnWidth(LMASTER_TYPE_COL);
- itemRect.setX(x1);
- //Qt makes crazy things with itemRect if this is called directly..
- if (editingNewItem) {
- QFontMetrics fm(font());
- int fw = style()->pixelMetric(QStyle::PM_DefaultFrameWidth,0 , this); // ddskrjo 0
- int h = fm.height() + fw * 2;
- itemRect.setWidth(view->columnWidth(LMASTER_VAL_COL));
- itemRect.setY(1);
- itemRect.setHeight(h);
- }
-
-
- // Edit tempo value:
- if (editedItem->getType() == LMASTER_TEMPO) {
- if (!editor)
- editor = new QLineEdit(view->viewport());
- editor->setText(editedItem->text(LMASTER_VAL_COL));
- editor->setGeometry(itemRect);
- editor->show();
- editor->setFocus();
- editor->selectAll();
- connect(editor, SIGNAL(returnPressed()), SLOT(returnPressed()));
- }
- else { // Edit signatur value:
- if (!sig_editor)
- sig_editor = new SigEdit(view->viewport());
- sig_editor->setValue(editedItem->text(LMASTER_VAL_COL));
- sig_editor->setGeometry(itemRect);
- sig_editor->show();
- sig_editor->setFocus();
- connect(sig_editor, SIGNAL(returnPressed()), SLOT(returnPressed()));
- }
- }
- // Edit tempo or signal position:
- else if (!editedItem && editorColumn == LMASTER_BEAT_COL) {
- editedItem = (LMasterLViewItem*) i;
- // Don't allow movement of initial values:
- if (editedItem->tick() == 0) {
- QMessageBox::information(this, tr(LMASTER_MSGBOX_STRING),
- tr("Reposition of the initial tempo and signature events is not allowed") );
- editedItem = 0;
- }
- // Everything OK
- else {
- if (!pos_editor)
- ///pos_editor = new PosEdit(view->viewport());
- pos_editor = new Awl::PosEdit(view->viewport());
- pos_editor->setValue(editedItem->tick());
- QRect itemRect = view->visualItemRect(editedItem);
- itemRect.setX(0);
- itemRect.setWidth(view->columnWidth(LMASTER_BEAT_COL));
- pos_editor->setGeometry(itemRect);
- pos_editor->show();
- pos_editor->setFocus();
- connect(pos_editor, SIGNAL(returnPressed()), SLOT(returnPressed()));
- }
- }
- }
-
-//---------------------------------------------------------
-// returnPressed()
-//! called when editor is closed
-//---------------------------------------------------------
-
-void LMaster::returnPressed()
- {
- if (!editedItem)
- return;
-
- setFocus();
- // Tempo event:
- if (editedItem->getType() == LMASTER_TEMPO && editorColumn == LMASTER_VAL_COL) {
- QString input = editor->text();
- editor->hide();
- repaint();
- LMasterTempoItem* e = (LMasterTempoItem*) editedItem;
- const TEvent* t = e->getEvent();
- unsigned tick = t->tick;
- bool conversionOK;
- double dbl_input = input.toDouble(&conversionOK);
- if (conversionOK && dbl_input < 250.0) {
- int tempo = (int) ((1000000.0 * 60.0)/dbl_input);
-
- if (!editingNewItem) {
- song->startUndo();
- audio->msgDeleteTempo(tick, e->tempo(), false);
- audio->msgAddTempo(tick, tempo, false);
- song->endUndo(SC_TEMPO);
- }
- //
- // New item edited:
- //
- else {
- audio->msgAddTempo(tick, tempo, true);
- }
- }
- else {
- QMessageBox::warning(this, tr("MusE: List Editor"),
- tr("Input error, conversion not OK or value out of range"),
- QMessageBox::Ok, Qt::NoButton
- );
- }
- }
- //
- // Beat column, change position of a particular tempo or signature event
- //
- else if (editorColumn == LMASTER_BEAT_COL) {
- int oldtick = editedItem->tick();
- int newtick = pos_editor->pos().tick();
- if (newtick == 0) { // Do not allow change of position to beginning of song
- QMessageBox::warning(this, tr(LMASTER_MSGBOX_STRING),
- tr("Reposition of tempo and signature events to start position is not allowed!"),
- QMessageBox::Ok, Qt::NoButton
- );
- }
- else if (oldtick != newtick) { // Ignore if tick hasn't changed
- if (editedItem->getType() == LMASTER_TEMPO) {
- LMasterTempoItem* t = (LMasterTempoItem*) editedItem;
- int tempo = t->tempo();
- song->startUndo();
- audio->msgDeleteTempo(oldtick, tempo, false);
- audio->msgAddTempo(newtick, tempo, false);
- song->endUndo(SC_TEMPO);
- // Select the item:
- QTreeWidgetItem* newSelected = (QTreeWidgetItem*) getItemAtPos(newtick, LMASTER_TEMPO);
- if (newSelected) {
- view->clearSelection();
- view->setCurrentItem(newSelected);
- }
- }
- else if (editedItem->getType() == LMASTER_SIGEVENT) {
- LMasterSigEventItem* t = (LMasterSigEventItem*) editedItem;
- int z = t->z();
- int n = t->n();
- if (!editingNewItem) {
- song->startUndo();
- audio->msgRemoveSig(oldtick, z, n, false); //Delete first, in order to get sane tick-value
- newtick = pos_editor->pos().tick();
- audio->msgAddSig(newtick, z, n, false);
- song->endUndo(SC_SIG);
- }
- else
- audio->msgAddSig(newtick, z, n, false);
- //audio->msgAddSig(newtick, z, n, true);
-
- // Select the item:
- QTreeWidgetItem* newSelected = (QTreeWidgetItem*) getItemAtPos(newtick, LMASTER_SIGEVENT);
- if (newSelected) {
- view->clearSelection();
- view->setCurrentItem(newSelected);
- }
- }
-
- }
- pos_editor->hide();
- repaint();
- }
- //
- // SigEvent, value changed:
- //
- else if (editedItem->getType() == LMASTER_SIGEVENT && editorColumn == LMASTER_VAL_COL)
- {
- ///Sig newSig = sig_editor->sig();
- AL::TimeSignature newSig = sig_editor->sig();
-
- sig_editor->hide();
-
- // Added p3.3.43 Prevents aborting with 0 z or n.
- if(newSig.isValid())
- {
-
- LMasterSigEventItem* e = (LMasterSigEventItem*) editedItem;
- int tick = e->tick();
- if (!editingNewItem) {
- song->startUndo();
- if (tick > 0)
- audio->msgRemoveSig(tick, e->z(), e->n(), false);
- audio->msgAddSig(tick, newSig.z, newSig.n, false);
- song->endUndo(SC_SIG);
- }
- else
- audio->msgAddSig(tick, newSig.z, newSig.n, true);
- }
- }
-
- view->setFocus();
- // No item edited now:
- editedItem = 0;
- editorColumn = -1;
- editingNewItem = false;
-
- }
-
-
-/*!
- \fn LMasterLViewItem::text(int column)
- \brief Returns the initialized text to the View
- */
-QString LMasterLViewItem::text(int column) const
- {
- QString ret = "?";
- switch (column) {
- case LMASTER_BEAT_COL:
- ret = c1;
- break;
- case LMASTER_TIME_COL:
- ret = c2;
- break;
- case LMASTER_TYPE_COL:
- ret = c3;
- break;
- case LMASTER_VAL_COL:
- ret = c4;
- break;
- default:
- fprintf(stderr,"LMasterLViewItem::text(int): Default switch statement reached... Unknown column.\n");
- break;
- }
- return ret;
- }
-
-//---------------------------------------------------------
-// LMasterTempoItem
-//! Initializes a LMasterTempoItem with a TEvent
-//---------------------------------------------------------
-LMasterTempoItem::LMasterTempoItem(QTreeWidget* parent, const TEvent* ev)
- : LMasterLViewItem(parent)
- {
- tempoEvent = ev;
- unsigned t = ev->tick;
- //QString c1, c2, c3, c4;
- int bar, beat;
- unsigned tick;
- AL::sigmap.tickValues(t, &bar, &beat, &tick);
- c1.sprintf("%04d.%02d.%03d", bar+1, beat+1, tick);
-
- double time = double(ev->frame) / double(sampleRate);
- int min = int(time) / 60;
- int sec = int(time) % 60;
- int msec = int((time - (min*60 + sec)) * 1000.0);
- c2.sprintf("%03d:%02d:%03d", min, sec, msec);
- c3 = "Tempo";
- double dt = (1000000.0 * 60.0)/ev->tempo;
- c4.setNum(dt, 'f', 3);
- setText(0, c1);
- setText(1, c2);
- setText(2, c3);
- setText(3, c4);
- }
-
-//---------------------------------------------------------
-// LMasterSigEventItem
-//! Initializes a ListView item with a SigEvent
-//---------------------------------------------------------
-LMasterSigEventItem::LMasterSigEventItem(QTreeWidget* parent, const AL::SigEvent* ev)
- : LMasterLViewItem(parent)
- {
- sigEvent = ev;
- unsigned t = ev->tick;
- int bar, beat;
- unsigned tick;
- AL::sigmap.tickValues(t, &bar, &beat, &tick);
- c1.sprintf("%04d.%02d.%03d", bar+1, beat+1, tick);
-
- double time = double(tempomap.tick2frame(t)) / double (sampleRate);
- int min = int(time) / 60;
- int sec = int(time) % 60;
- int msec = int((time - (min*60 + sec)) * 1000.0);
- c2.sprintf("%03d:%02d:%03d", min, sec, msec);
- c3 = "Timesig";
- c4.sprintf("%d/%d", ev->sig.z, ev->sig.n);
- setText(0, c1);
- setText(1, c2);
- setText(2, c3);
- setText(3, c4);
- }
-
-//---------------------------------------------------------
-// tempoButtonClicked()
-//! inserts a new tempo-item in the list and starts the editor for it
-//---------------------------------------------------------
-void LMaster::tempoButtonClicked()
- {
- LMasterTempoItem* lastTempo = (LMasterTempoItem*) getLastOfType(LMASTER_TEMPO);
- QString beatString = ((LMasterLViewItem*)lastTempo)->text(LMASTER_BEAT_COL);
- int m, b, t;
- Pos p = Pos(beatString);
- p.mbt(&m, &b, &t);
- m++; //Next bar
- int newTick = AL::sigmap.bar2tick(m, b, t);
- TEvent* ev = new TEvent(lastTempo->tempo(), newTick);
- new LMasterTempoItem(view, ev);
- QTreeWidgetItem* newTempoItem = view->topLevelItem(0);
- //LMasterTempoItem* newTempoItem = new LMasterTempoItem(view, ev);
-
- editingNewItem = true; // State
- editorColumn = LMASTER_VAL_COL; // Set that we edit editorColumn
- view->clearSelection();
- view->setCurrentItem(newTempoItem);
- itemDoubleClicked(newTempoItem);
- }
-
-
-//---------------------------------------------------------
-// tempoButtonClicked()
-//! inserts a new sig-item in the list and starts the editor for it
-//---------------------------------------------------------
-void LMaster::timeSigButtonClicked()
- {
- LMasterSigEventItem* lastSig = (LMasterSigEventItem*) getLastOfType(LMASTER_SIGEVENT);
- QString beatString = ((LMasterLViewItem*)lastSig)->text(LMASTER_BEAT_COL);
- int m, b, t;
- Pos p = Pos(beatString);
- p.mbt(&m, &b, &t);
- m++;
- int newTick = AL::sigmap.bar2tick(m, b, t);
- AL::SigEvent* ev = new AL::SigEvent(AL::TimeSignature(lastSig->z(), lastSig->n()), newTick);
- new LMasterSigEventItem(view, ev);
- QTreeWidgetItem* newSigItem = view->topLevelItem(0);
- //LMasterSigEventItem* newSigItem = new LMasterSigEventItem(view, ev);
-
- editingNewItem = true; // State
- editorColumn = LMASTER_VAL_COL; // Set that we edit editorColumn
- view->clearSelection();
- view->setCurrentItem(newSigItem);
- itemDoubleClicked(newSigItem);
- }
-
-
-/*!
- \fn LMaster::getLastOfType(LMASTER_LVTYPE t)
- */
-LMasterLViewItem* LMaster::getLastOfType(LMASTER_LVTYPE t)
- {
- LMasterLViewItem* tmp = (LMasterLViewItem*) view->topLevelItem(view->topLevelItemCount() - 1);
- while (tmp->getType() != t) {
- tmp = (LMasterLViewItem*) view->itemAbove(tmp);
- }
- return tmp;
- }
-
-
-/*!
- \fn LMaster::getItemAtPos(unsigned tick, LMASTER_LVTYPE t)
- */
-LMasterLViewItem* LMaster::getItemAtPos(unsigned tick, LMASTER_LVTYPE t)
- {
- LMasterLViewItem* tmp = (LMasterLViewItem*) view->topLevelItem(0);
- while (tmp) {
- if (tmp->getType() == t && tmp->tick() == tick)
- return tmp;
- tmp = (LMasterLViewItem*) view->itemBelow(tmp);
- }
-
- return 0;
- }
-
-
-/*!
- \fn LMaster::configChanged()
- */
-void LMaster::configChanged()
- {
- initShortcuts();
- }
-
-
-/*!
- \fn LMaster::initShortcuts()
- */
-void LMaster::initShortcuts()
- {
- tempoAction->setShortcut(shortcuts[SHRT_LM_INS_TEMPO].key);
- signAction->setShortcut(shortcuts[SHRT_LM_INS_SIG].key);
- posAction->setShortcut(shortcuts[SHRT_LM_EDIT_BEAT].key);
- valAction->setShortcut(shortcuts[SHRT_LM_EDIT_VALUE].key);
- }
diff --git a/attic/muse2-oom/muse2/muse/master/lmaster.h b/attic/muse2-oom/muse2/muse/master/lmaster.h
deleted file mode 100644
index cd687e45..00000000
--- a/attic/muse2-oom/muse2/muse/master/lmaster.h
+++ /dev/null
@@ -1,146 +0,0 @@
-//=========================================================
-// MusE
-// Linux Music Editor
-// $Id: lmaster.h,v 1.1.1.1.2.5 2005/12/11 21:29:23 spamatica Exp $
-// (C) Copyright 2000 Werner Schweer (ws@seh.de)
-//=========================================================
-
-#ifndef __LMASTER_EDIT_H__
-#define __LMASTER_EDIT_H__
-
-#include "midieditor.h"
-#include "noteinfo.h"
-#include "cobject.h"
-#include "tempo.h"
-///#include "sig.h"
-//#include "al/sig.h"
-
-#include <QTreeWidgetItem>
-
-namespace AL {
- class SigEvent;
- };
-using AL::SigEvent;
-
-namespace Awl {
- class PosEdit;
- class SigEdit;
- };
-using Awl::PosEdit;
-using Awl::SigEdit;
-
-class QLineEdit;
-
-enum LMASTER_LVTYPE
- {
- LMASTER_TEMPO = 0,
- LMASTER_SIGEVENT
- };
-
-//---------------------------------------------------------
-// LMasterLViewItem
-//! QListViewItem base class for LMasterTempoItem and LMasterSigEventItem
-//---------------------------------------------------------
-class LMasterLViewItem : public QTreeWidgetItem {
- protected:
- QString c1, c2, c3, c4;
-
- public:
- LMasterLViewItem(QTreeWidget* parent)
- : QTreeWidgetItem(QTreeWidgetItem::UserType) {parent->insertTopLevelItem(0, this);}
- virtual QString text(int column) const;
- virtual LMASTER_LVTYPE getType() = 0;
- virtual unsigned tick() = 0;
- };
-
-//---------------------------------------------------------
-// LMasterTempoItem
-//! QListViewItem which holds data for a TEvent
-//---------------------------------------------------------
-class LMasterTempoItem : public LMasterLViewItem {
-
- private:
- const TEvent* tempoEvent;
-
- public:
- LMasterTempoItem(QTreeWidget* parent, const TEvent* t);
- virtual LMASTER_LVTYPE getType() { return LMASTER_TEMPO; }
- const TEvent* getEvent() { return tempoEvent; }
- virtual unsigned tick() { return tempoEvent->tick; }
- int tempo() { return tempoEvent->tempo; }
- };
-
-//---------------------------------------------------------
-// LMasterTempoItem
-//! QListViewItem which holds data for a SigEvent
-//---------------------------------------------------------
-class LMasterSigEventItem : public LMasterLViewItem {
-
- private:
- const SigEvent* sigEvent;
-
- public:
- LMasterSigEventItem(QTreeWidget* parent, const SigEvent* s);
- virtual LMASTER_LVTYPE getType() { return LMASTER_SIGEVENT; }
- const SigEvent* getEvent() { return sigEvent; }
- virtual unsigned tick() { return sigEvent->tick; }
- int z() { return sigEvent->sig.z; }
- int n() { return sigEvent->sig.n; }
- };
-
-
-//---------------------------------------------------------
-// LMaster
-//---------------------------------------------------------
-
-class LMaster : public MidiEditor {
- QTreeWidget* view;
- QToolBar* tools;
- QMenu* menuEdit;
-
- enum { CMD_DELETE, CMD_INSERT_SIG, CMD_INSERT_TEMPO, CMD_EDIT_BEAT, CMD_EDIT_VALUE };
-
- Q_OBJECT
- virtual void closeEvent(QCloseEvent*);
- void updateList();
- void insertTempo(const TEvent*);
- void insertSig(const SigEvent*);
- LMasterLViewItem* getItemAtPos(unsigned tick, LMASTER_LVTYPE t);
- void initShortcuts();
- QLineEdit* editor;
- PosEdit* pos_editor;
- // State-like members:
- LMasterLViewItem* editedItem;
- SigEdit* sig_editor;
- int editorColumn;
- bool editingNewItem;
-
- QAction *tempoAction, *signAction, *posAction, *valAction, *delAction;
-
- private slots:
- void select(QTreeWidgetItem*, QTreeWidgetItem*);
- void itemDoubleClicked(QTreeWidgetItem* item);
- void returnPressed();
- void itemPressed(QTreeWidgetItem* i, int column);
- void tempoButtonClicked();
- void timeSigButtonClicked();
- void cmd(int cmd);
-
- public slots:
- void songChanged(int);
- void configChanged();
-
- signals:
- void deleted(unsigned long);
-
- public:
- LMaster();
- ~LMaster();
- virtual void readStatus(Xml&);
- virtual void writeStatus(int, Xml&) const;
- LMasterLViewItem* getLastOfType(LMASTER_LVTYPE t);
- };
-
-
-#endif
-
diff --git a/attic/muse2-oom/muse2/muse/master/master.cpp b/attic/muse2-oom/muse2/muse/master/master.cpp
deleted file mode 100644
index 4a33a8c4..00000000
--- a/attic/muse2-oom/muse2/muse/master/master.cpp
+++ /dev/null
@@ -1,338 +0,0 @@
-//=========================================================
-// MusE
-// Linux Music Editor
-// $Id: master.cpp,v 1.3 2004/04/11 13:03:32 wschweer Exp $
-// (C) Copyright 2000 Werner Schweer (ws@seh.de)
-//=========================================================
-
-#include <stdio.h>
-#include <values.h>
-
-#include <QCursor>
-#include <QEvent>
-#include <QMouseEvent>
-#include <QPainter>
-
-#include "globals.h"
-#include "master.h"
-#include "song.h"
-#include "scrollscale.h"
-#include "midi.h"
-#include "midieditor.h"
-#include "icons.h"
-#include "audio.h"
-
-extern void drawTickRaster(QPainter& p, int x, int y,
- int w, int h, int quant);
-
-//---------------------------------------------------------
-// Master
-//---------------------------------------------------------
-
-Master::Master(MidiEditor* e, QWidget* parent, int xmag, int ymag)
- : View(parent, xmag, ymag)
- {
- editor = e;
- setBg(Qt::white);
- vscroll = 0;
- pos[0] = 0;
- pos[1] = 0;
- pos[2] = 0;
- setFocusPolicy(Qt::StrongFocus); // Tim.
- setMouseTracking(true);
- connect(song, SIGNAL(posChanged(int, unsigned, bool)), this, SLOT(setPos(int, unsigned, bool)));
- connect(song, SIGNAL(songChanged(int)), this, SLOT(redraw()));
- }
-
-//---------------------------------------------------------
-// setPos
-//---------------------------------------------------------
-
-void Master::setPos(int idx, unsigned val, bool adjustScrollbar)
- {
- if (pos[idx] == val)
- return;
-
- int opos = mapx(pos[idx]);
- int npos = mapx(val);
-
- if (adjustScrollbar && idx == 0) {
- switch (song->follow()) {
- case Song::NO:
- break;
- case Song::JUMP:
- if (npos >= width()) {
- int ppos = val - rmapxDev(width()/8);
- if (ppos < 0)
- ppos = 0;
- emit followEvent(ppos);
- opos = mapx(pos[idx]);
- npos = mapx(val);
- }
- else if (npos < 0) {
- int ppos = val - rmapxDev(width()*3/4);
- if (ppos < 0)
- ppos = 0;
- emit followEvent(ppos);
- opos = mapx(pos[idx]);
- npos = mapx(val);
- }
- break;
- case Song::CONTINUOUS:
- if (npos > (width()/2)) {
- int ppos = pos[idx] - rmapxDev(width()/2);
- if (ppos < 0)
- ppos = 0;
- emit followEvent(ppos);
- opos = mapx(pos[idx]);
- npos = mapx(val);
- }
- else if (npos < (width()/2)) {
- int ppos = pos[idx] - rmapxDev(width()/2);
- if (ppos < 0)
- ppos = 0;
- emit followEvent(ppos);
- opos = mapx(pos[idx]);
- npos = mapx(val);
- }
- break;
- }
- }
-
- int x;
- int w = 1;
- if (opos > npos) {
- w += opos - npos;
- x = npos;
- }
- else {
- w += npos - opos;
- x = opos;
- }
- pos[idx] = val;
- redraw(QRect(x-1, 0, w+2, height()));
- }
-
-//---------------------------------------------------------
-// leaveEvent
-//---------------------------------------------------------
-
-void Master::leaveEvent(QEvent*)
- {
- emit tempoChanged(-1);
- emit timeChanged(MAXINT);
- }
-
-//---------------------------------------------------------
-// pdraw
-//---------------------------------------------------------
-
-void Master::pdraw(QPainter& p, const QRect& rect)
- {
- View::pdraw(p, rect); // calls draw()
- p.resetTransform();
-
- int x = rect.x();
- int y = rect.y();
- int w = rect.width() + 2;
- int h = rect.height();
-
- int wh = height();
- //---------------------------------------------------
- // draw Canvas Items
- //---------------------------------------------------
-
- const TempoList* tl = &tempomap;
- for (ciTEvent i = tl->begin(); i != tl->end(); ++i) {
- TEvent* e = i->second;
- int etick = mapx(i->first);
- int stick = mapx(i->second->tick);
- int tempo = mapy(280000 - int(60000000000.0/(e->tempo)));
-
- if (tempo < 0)
- tempo = 0;
- if (tempo < wh) {
- p.fillRect(stick, tempo, etick-stick, wh, Qt::blue);
- }
- }
-
- //---------------------------------------------------
- // draw marker
- //---------------------------------------------------
-
- int xp = mapx(pos[0]);
- if (xp >= x && xp < x+w) {
- p.setPen(Qt::red);
- p.drawLine(xp, y, xp, y+h);
- }
- xp = mapx(pos[1]);
- if (xp >= x && xp < x+w) {
- p.setPen(Qt::blue);
- p.drawLine(xp, y, xp, y+h);
- }
- xp = mapx(pos[2]);
- if (xp >= x && xp < x+w) {
- p.setPen(Qt::blue);
- p.drawLine(xp, y, xp, y+h);
- }
- }
-
-//---------------------------------------------------------
-// draw
-//---------------------------------------------------------
-
-void Master::draw(QPainter& p, const QRect& rect)
- {
- drawTickRaster(p, rect.x(), rect.y(),
- rect.width(), rect.height(), 0);
- }
-
-//---------------------------------------------------------
-// viewMousePressEvent
-//---------------------------------------------------------
-
-void Master::viewMousePressEvent(QMouseEvent* event)
- {
- start = event->pos();
- Tool activeTool = tool;
-// bool shift = event->state() & ShiftButton;
-
- switch (activeTool) {
- case PointerTool:
- drag = DRAG_LASSO_START;
- break;
-
- case PencilTool:
- drag = DRAG_NEW;
- song->startUndo();
- newVal(start.x(), start.x(), start.y());
- break;
-
- case RubberTool:
- drag = DRAG_DELETE;
- song->startUndo();
- deleteVal(start.x(), start.x());
- break;
-
- default:
- break;
- }
- }
-
-//---------------------------------------------------------
-// viewMouseMoveEvent
-//---------------------------------------------------------
-
-void Master::viewMouseMoveEvent(QMouseEvent* event)
- {
- QPoint pos = event->pos();
-// QPoint dist = pos - start;
-// bool moving = dist.y() >= 3 || dist.y() <= 3 || dist.x() >= 3 || dist.x() <= 3;
-
- switch (drag) {
- case DRAG_NEW:
- newVal(start.x(), pos.x(), pos.y());
- start = pos;
- break;
-
- case DRAG_DELETE:
- deleteVal(start.x(), pos.x());
- start = pos;
- break;
-
- default:
- break;
- }
- emit tempoChanged(280000 - event->y());
- int x = pos.x();
- if (x < 0)
- x = 0;
- emit timeChanged(editor->rasterVal(x));
- }
-
-//---------------------------------------------------------
-// viewMouseReleaseEvent
-//---------------------------------------------------------
-
-void Master::viewMouseReleaseEvent(QMouseEvent*)
- {
- switch (drag) {
- case DRAG_RESIZE:
- case DRAG_NEW:
- case DRAG_DELETE:
- song->endUndo(SC_TEMPO);
- break;
- default:
- break;
- }
- drag = DRAG_OFF;
- }
-
-//---------------------------------------------------------
-// deleteVal
-//---------------------------------------------------------
-
-bool Master::deleteVal1(unsigned int x1, unsigned int x2)
- {
- bool songChanged = false;
-
- TempoList* tl = &tempomap;
- for (iTEvent i = tl->begin(); i != tl->end(); ++i) {
- if (i->first < x1)
- continue;
- if (i->first >= x2)
- break;
- iTEvent ii = i;
- ++ii;
- if (ii != tl->end()) {
- int tempo = ii->second->tempo;
- audio->msgDeleteTempo(i->first, tempo, false);
- songChanged = true;
- }
- }
- return songChanged;
- }
-
-void Master::deleteVal(int x1, int x2)
- {
- if (deleteVal1(editor->rasterVal1(x1), x2))
- redraw();
- }
-
-//---------------------------------------------------------
-// setTool
-//---------------------------------------------------------
-
-void Master::setTool(int t)
- {
- if (tool == Tool(t))
- return;
- tool = Tool(t);
- switch(tool) {
- case PencilTool:
- setCursor(QCursor(*pencilIcon, 4, 15));
- break;
- default:
- setCursor(QCursor(Qt::ArrowCursor));
- break;
- }
- }
-
-//---------------------------------------------------------
-// newVal
-//---------------------------------------------------------
-
-void Master::newVal(int x1, int x2, int y)
- {
- int xx1 = editor->rasterVal1(x1);
- int xx2 = editor->rasterVal2(x2);
-
- if (xx1 > xx2) {
- int tmp = xx2;
- xx2 = xx1;
- xx1 = tmp;
- }
- deleteVal1(xx1, xx2);
- audio->msgAddTempo(xx1, int(60000000000.0/(280000 - y)), false);
- redraw();
- }
diff --git a/attic/muse2-oom/muse2/muse/master/master.h b/attic/muse2-oom/muse2/muse/master/master.h
deleted file mode 100644
index 52040aeb..00000000
--- a/attic/muse2-oom/muse2/muse/master/master.h
+++ /dev/null
@@ -1,68 +0,0 @@
-//=========================================================
-// MusE
-// Linux Music Editor
-// $Id: master.h,v 1.3 2004/04/11 13:03:32 wschweer Exp $
-// (C) Copyright 1999 Werner Schweer (ws@seh.de)
-//=========================================================
-
-#ifndef __MASTER_H__
-#define __MASTER_H__
-
-#include "view.h"
-#include "song.h"
-#include "tools.h"
-
-class QMouseEvent;
-class QPainter;
-class QPoint;
-class QRect;
-class QToolBar;
-
-class MidiEditor;
-class ScrollScale;
-
-//---------------------------------------------------------
-// Master
-//---------------------------------------------------------
-
-class Master : public View {
- enum DragMode { DRAG_OFF, DRAG_NEW, DRAG_MOVE_START, DRAG_MOVE,
- DRAG_DELETE, DRAG_COPY_START, DRAG_COPY,
- DRAG_RESIZE, DRAG_LASSO_START, DRAG_LASSO
- };
- ScrollScale* vscroll;
- unsigned pos[3];
- QPoint start;
- Tool tool;
- DragMode drag;
- MidiEditor* editor;
-
- Q_OBJECT
- virtual void pdraw(QPainter&, const QRect&);
- virtual void viewMouseMoveEvent(QMouseEvent* event);
- virtual void leaveEvent(QEvent*e);
- virtual void viewMousePressEvent(QMouseEvent* event);
- virtual void viewMouseReleaseEvent(QMouseEvent*);
-
- void draw(QPainter&, const QRect&);
- void newVal(int x1, int x2, int y);
- bool deleteVal1(unsigned int x1, unsigned int x2);
- void deleteVal(int x1, int x2);
-
- signals:
- void followEvent(int);
- void xposChanged(int);
- void yposChanged(int);
- void timeChanged(unsigned);
- void tempoChanged(int);
-
- public slots:
- void setPos(int, unsigned, bool adjustScrollbar);
- void setTool(int t);
-
- public:
- Master(MidiEditor*, QWidget* parent, int xmag, int ymag);
- };
-
-#endif
-
diff --git a/attic/muse2-oom/muse2/muse/master/masteredit.cpp b/attic/muse2-oom/muse2/muse/master/masteredit.cpp
deleted file mode 100644
index 2b91ae90..00000000
--- a/attic/muse2-oom/muse2/muse/master/masteredit.cpp
+++ /dev/null
@@ -1,406 +0,0 @@
-//=========================================================
-// MusE
-// Linux Music Editor
-// $Id: masteredit.cpp,v 1.4.2.5 2009/07/01 22:14:56 spamatica Exp $
-// (C) Copyright 1999 Werner Schweer (ws@seh.de)
-//=========================================================
-
-#include "awl/sigedit.h"
-
-#include "masteredit.h"
-#include "mtscale.h"
-#include "hitscale.h"
-#include "sigscale.h"
-#include "scrollscale.h"
-#include "poslabel.h"
-#include "master.h"
-#include "utils.h"
-#include "tscale.h"
-#include "tempolabel.h"
-#include "xml.h"
-#include "lcombo.h"
-#include "doublelabel.h"
-///#include "sigedit.h"
-#include "globals.h"
-
-#include <values.h>
-
-#include <QActionGroup>
-#include <QCloseEvent>
-#include <QGridLayout>
-#include <QLabel>
-#include <QToolBar>
-#include <QToolButton>
-
-int MasterEdit::_rasterInit = 0;
-
-//---------------------------------------------------------
-// closeEvent
-//---------------------------------------------------------
-
-void MasterEdit::closeEvent(QCloseEvent* e)
- {
- emit deleted((unsigned long)this);
- e->accept();
- }
-
-//---------------------------------------------------------
-// songChanged
-//---------------------------------------------------------
-
-void MasterEdit::songChanged(int type)
- {
- if (type & SC_TEMPO) {
- int tempo = tempomap.tempo(song->cpos());
- curTempo->blockSignals(true);
- curTempo->setValue(double(60000000.0/tempo));
-
- curTempo->blockSignals(false);
- }
- if (type & SC_SIG) {
- int z, n;
- AL::sigmap.timesig(song->cpos(), z, n);
- curSig->blockSignals(true);
- curSig->setValue(AL::TimeSignature(z, n));
- curSig->blockSignals(false);
- sign->redraw();
- }
- if (type & SC_MASTER) {
- enableButton->blockSignals(true);
- enableButton->setChecked(song->masterFlag());
- enableButton->blockSignals(false);
- }
- }
-
-//---------------------------------------------------------
-// MasterEdit
-//---------------------------------------------------------
-
-MasterEdit::MasterEdit()
- : MidiEditor(0, _rasterInit, 0)
- {
- setWindowTitle(tr("MusE: Mastertrack"));
- _raster = 0; // measure
- setMinimumSize(400, 300);
- resize(500, 350);
-
- //---------Pulldown Menu----------------------------
-// QPopupMenu* file = new QPopupMenu(this);
-// menuBar()->insertItem("&File", file);
-
- //---------ToolBar----------------------------------
-
- tools = addToolBar(tr("Master tools"));
- tools->addActions(undoRedo->actions());
-
- EditToolBar* tools2 = new EditToolBar(this, PointerTool | PencilTool | RubberTool);
- addToolBar(tools2);
-
- QToolBar* enableMaster = addToolBar(tr("Enable master"));
- enableButton = new QToolButton();
- enableButton->setCheckable(true);
- enableButton->setText(tr("Enable"));
- enableButton->setToolTip(tr("Enable usage of master track"));
- enableButton->setChecked(song->masterFlag());
- enableMaster->addWidget(enableButton);
- connect(enableButton, SIGNAL(toggled(bool)), song, SLOT(setMasterFlag(bool)));
-
- QToolBar* info = addToolBar(tr("Info"));
- QLabel* label = new QLabel(tr("Cursor"));
- label->setAlignment(Qt::AlignRight|Qt::AlignVCenter);
- label->setIndent(3);
- info->addWidget(label);
-
- cursorPos = new PosLabel(0);
- cursorPos->setFixedHeight(22);
- cursorPos->setToolTip(tr("time at cursor position"));
- info->addWidget(cursorPos);
- tempo = new TempoLabel(0);
- tempo->setFixedHeight(22);
- tempo->setToolTip(tr("tempo at cursor position"));
- info->addWidget(tempo);
-
- const char* rastval[] = {
- QT_TRANSLATE_NOOP("@default", "Off"), "Bar", "1/2", "1/4", "1/8", "1/16"
- };
- rasterLabel = new LabelCombo(tr("Snap"), 0);
- rasterLabel->setFocusPolicy(Qt::NoFocus);
- for (int i = 0; i < 6; i++)
- rasterLabel->insertItem(i, tr(rastval[i]));
- rasterLabel->setCurrentIndex(1);
- info->addWidget(rasterLabel);
- connect(rasterLabel, SIGNAL(activated(int)), SLOT(_setRaster(int)));
-
- //---------values for current position---------------
- info->addWidget(new QLabel(tr("CurPos ")));
- curTempo = new TempoEdit(0);
- curSig = new SigEdit(0);
- curSig->setValue(AL::TimeSignature(4, 4));
- curTempo->setToolTip(tr("tempo at current position"));
- curSig->setToolTip(tr("time signature at current position"));
- info->addWidget(curTempo);
- info->addWidget(curSig);
- ///connect(curSig, SIGNAL(valueChanged(int,int)), song, SLOT(setSig(int,int)));
- connect(curSig, SIGNAL(valueChanged(const AL::TimeSignature&)), song, SLOT(setSig(const AL::TimeSignature&)));
-
- ///connect(curTempo, SIGNAL(valueChanged(double)), song, SLOT(setTempo(double)));
- connect(curTempo, SIGNAL(tempoChanged(double)), song, SLOT(setTempo(double)));
-
- //---------------------------------------------------
- // master
- //---------------------------------------------------
-
- int xscale = -20;
- int yscale = -500;
- hscroll = new ScrollScale(-100, -2, xscale, song->len(), Qt::Horizontal, mainw);
- vscroll = new ScrollScale(-1000, -100, yscale, 120000, Qt::Vertical, mainw);
- vscroll->setRange(30000, 250000);
- time1 = new MTScale(&_raster, mainw, xscale);
- sign = new SigScale(&_raster, mainw, xscale);
-// thits = new HitScale(&_raster, mainw, xscale);
-
- canvas = new Master(this, mainw, xscale, yscale);
-
-// zhits = new HitScale(&_raster, mainw, xscale);
- time2 = new MTScale(&_raster, mainw, xscale);
- tscale = new TScale(mainw, yscale);
- time2->setBarLocator(true);
-
- //---------------------------------------------------
- // Rest
- //---------------------------------------------------
-
-// QSizeGrip* corner = new QSizeGrip(mainw);
-
- mainGrid->setRowStretch(5, 100);
- mainGrid->setColumnStretch(1, 100);
-
- mainGrid->addWidget(hLine(mainw), 0, 1);
- mainGrid->addWidget(time1, 1, 1);
- mainGrid->addWidget(hLine(mainw), 2, 1);
- mainGrid->addWidget(sign, 3, 1);
- mainGrid->addWidget(hLine(mainw), 4, 1);
-// mainGrid->addWidget(thits, 5, 1);
-// mainGrid->addWidget(hLine(mainw), 6, 1);
- mainGrid->addWidget(canvas, 5, 1);
- mainGrid->addWidget(tscale, 5, 0);
- mainGrid->addWidget(hLine(mainw), 6, 1);
-// mainGrid->addWidget(zhits, 9, 1);
-// mainGrid->addWidget(hLine(mainw), 7, 1);
- mainGrid->addWidget(time2, 7, 1);
- mainGrid->addWidget(hscroll, 8, 1);
- mainGrid->addWidget(vscroll, 0, 2, 10, 1);
-// mainGrid->addWidget(corner, 9, 2, AlignBottom | AlignRight);
-
- canvas->setFocus(); // Tim.
-
- connect(tools2, SIGNAL(toolChanged(int)), canvas, SLOT(setTool(int)));
- connect(vscroll, SIGNAL(scrollChanged(int)), canvas, SLOT(setYPos(int)));
- connect(vscroll, SIGNAL(scaleChanged(int)), canvas, SLOT(setYMag(int)));
-
- connect(vscroll, SIGNAL(scrollChanged(int)), tscale, SLOT(setYPos(int)));
- connect(vscroll, SIGNAL(scaleChanged(int)), tscale, SLOT(setYMag(int)));
-
- connect(hscroll, SIGNAL(scrollChanged(int)), time1, SLOT(setXPos(int)));
- connect(hscroll, SIGNAL(scrollChanged(int)), sign, SLOT(setXPos(int)));
-// connect(hscroll, SIGNAL(scrollChanged(int)), thits, SLOT(setXPos(int)));
- connect(hscroll, SIGNAL(scrollChanged(int)), canvas, SLOT(setXPos(int)));
-// connect(hscroll, SIGNAL(scrollChanged(int)), zhits, SLOT(setXPos(int)));
- connect(hscroll, SIGNAL(scrollChanged(int)), time2, SLOT(setXPos(int)));
-
- connect(hscroll, SIGNAL(scaleChanged(int)), time1, SLOT(setXMag(int)));
- connect(hscroll, SIGNAL(scaleChanged(int)), sign, SLOT(setXMag(int)));
-// connect(hscroll, SIGNAL(scaleChanged(int)), thits, SLOT(setXMag(int)));
- connect(hscroll, SIGNAL(scaleChanged(int)), canvas, SLOT(setXMag(int)));
-// connect(hscroll, SIGNAL(scaleChanged(int)), zhits, SLOT(setXMag(int)));
- connect(hscroll, SIGNAL(scaleChanged(int)), time2, SLOT(setXMag(int)));
-
- connect(time1, SIGNAL(timeChanged(unsigned)), SLOT(setTime(unsigned)));
-// connect(sign, SIGNAL(timeChanged(unsigned)), pos, SLOT(setValue(unsigned)));
-// connect(thits, SIGNAL(timeChanged(unsigned)), pos, SLOT(setValue(unsigned)));
-// connect(canvas, SIGNAL(timeChanged(unsigned)), pos, SLOT(setValue(unsigned)));
-// connect(zhits, SIGNAL(timeChanged(unsigned)), pos, SLOT(setValue(unsigned)));
- connect(time2, SIGNAL(timeChanged(unsigned)), SLOT(setTime(unsigned)));
-
- connect(tscale, SIGNAL(tempoChanged(int)), SLOT(setTempo(int)));
- connect(canvas, SIGNAL(tempoChanged(int)), SLOT(setTempo(int)));
- connect(song, SIGNAL(songChanged(int)), SLOT(songChanged(int)));
- connect(song, SIGNAL(posChanged(int,unsigned,bool)), SLOT(posChanged(int,unsigned,bool)));
-
- connect(canvas, SIGNAL(followEvent(int)), hscroll, SLOT(setOffset(int)));
- connect(canvas, SIGNAL(timeChanged(unsigned)), SLOT(setTime(unsigned)));
- }
-
-//---------------------------------------------------------
-// ~MasterEdit
-//---------------------------------------------------------
-
-MasterEdit::~MasterEdit()
- {
- //undoRedo->removeFrom(tools); // p4.0.6 Removed
- }
-
-//---------------------------------------------------------
-// readStatus
-//---------------------------------------------------------
-
-void MasterEdit::readStatus(Xml& xml)
- {
- for (;;) {
- Xml::Token token = xml.parse();
- const QString& tag = xml.s1();
- switch (token) {
- case Xml::Error:
- case Xml::End:
- return;
- case Xml::TagStart:
- if (tag == "midieditor")
- MidiEditor::readStatus(xml);
- else if (tag == "ypos")
- vscroll->setPos(xml.parseInt());
- else if (tag == "ymag") {
- // vscroll->setMag(xml.parseInt());
- int mag = xml.parseInt();
- vscroll->setMag(mag);
- }
- else
- xml.unknown("MasterEdit");
- break;
- case Xml::TagEnd:
- if (tag == "master") {
- // raster setzen
- int item = 0;
- switch(_raster) {
- case 1: item = 0; break;
- case 0: item = 1; break;
- case 768: item = 2; break;
- case 384: item = 3; break;
- case 192: item = 4; break;
- case 96: item = 5; break;
- }
- _rasterInit = _raster;
- rasterLabel->setCurrentIndex(item);
- return;
- }
- default:
- break;
- }
- }
- }
-
-//---------------------------------------------------------
-// writeStatus
-//---------------------------------------------------------
-
-void MasterEdit::writeStatus(int level, Xml& xml) const
- {
- xml.tag(level++, "master");
- xml.intTag(level, "ypos", vscroll->pos());
- xml.intTag(level, "ymag", vscroll->mag());
- MidiEditor::writeStatus(level, xml);
- xml.tag(level, "/master");
- }
-
-//---------------------------------------------------------
-// readConfiguration
-//---------------------------------------------------------
-
-void MasterEdit::readConfiguration(Xml& xml)
- {
- for (;;) {
- Xml::Token token = xml.parse();
- const QString& tag = xml.s1();
- switch (token) {
- case Xml::Error:
- case Xml::End:
- return;
- case Xml::TagStart:
- if (tag == "raster")
- _rasterInit = xml.parseInt();
- else
- xml.unknown("MasterEdit");
- break;
- case Xml::TagEnd:
- if (tag == "masteredit")
- return;
- default:
- break;
- }
- }
- }
-
-//---------------------------------------------------------
-// writeConfiguration
-//---------------------------------------------------------
-
-void MasterEdit::writeConfiguration(int level, Xml& xml)
- {
- xml.tag(level++, "masteredit");
- xml.intTag(level, "raster", _rasterInit);
- xml.tag(level, "/masteredit");
- }
-
-//---------------------------------------------------------
-// _setRaster
-//---------------------------------------------------------
-
-void MasterEdit::_setRaster(int index)
- {
- static int rasterTable[] = {
- 1, 0, 768, 384, 192, 96
- };
- _raster = rasterTable[index];
- _rasterInit = _raster;
- }
-
-//---------------------------------------------------------
-// posChanged
-//---------------------------------------------------------
-
-void MasterEdit::posChanged(int idx, unsigned val, bool)
- {
- if (idx == 0) {
- int z, n;
- int tempo = tempomap.tempo(val);
- AL::sigmap.timesig(val, z, n);
- curTempo->blockSignals(true);
- curSig->blockSignals(true);
-
- curTempo->setValue(double(60000000.0/tempo));
- curSig->setValue(AL::TimeSignature(z, n));
-
- curTempo->blockSignals(false);
- curSig->blockSignals(false);
- }
- }
-
-//---------------------------------------------------------
-// setTime
-//---------------------------------------------------------
-
-void MasterEdit::setTime(unsigned tick)
- {
- if (tick == MAXINT)
- cursorPos->setEnabled(false);
- else {
- cursorPos->setEnabled(true);
- cursorPos->setValue(tick);
- time1->setPos(3, tick, false);
- time2->setPos(3, tick, false);
- }
- }
-
-//---------------------------------------------------------
-// setTempo
-//---------------------------------------------------------
-
-void MasterEdit::setTempo(int val)
- {
- if (val == -1)
- tempo->setEnabled(false);
- else {
- tempo->setEnabled(true);
- tempo->setValue(val);
- }
- }
-
diff --git a/attic/muse2-oom/muse2/muse/master/masteredit.h b/attic/muse2-oom/muse2/muse/master/masteredit.h
deleted file mode 100644
index af43c7b0..00000000
--- a/attic/muse2-oom/muse2/muse/master/masteredit.h
+++ /dev/null
@@ -1,86 +0,0 @@
-//=========================================================
-// MusE
-// Linux Music Editor
-// $Id: masteredit.h,v 1.3.2.2 2009/04/01 01:37:11 terminator356 Exp $
-// (C) Copyright 1999 Werner Schweer (ws@seh.de)
-//=========================================================
-
-#ifndef __MASTER_EDIT_H__
-#define __MASTER_EDIT_H__
-
-#include "midieditor.h"
-#include "noteinfo.h"
-#include "cobject.h"
-
-namespace Awl {
- class SigEdit;
- };
-using Awl::SigEdit;
-
-class QCloseEvent;
-class QToolBar;
-class QToolButton;
-
-class Master;
-class ScrollScale;
-class MTScale;
-class SigScale;
-class HitScale;
-class TScale;
-class TempoEdit;
-class LabelCombo;
-class PosLabel;
-class TempoLabel;
-
-//---------------------------------------------------------
-// MasterEdit
-//---------------------------------------------------------
-
-class MasterEdit : public MidiEditor {
- Master* canvas;
- ScrollScale* hscroll;
- ScrollScale* vscroll;
- MTScale* time1;
- MTScale* time2;
- SigScale* sign;
- HitScale* thits;
- HitScale* zhits;
- TScale* tscale;
-
- TempoEdit* curTempo;
- SigEdit* curSig;
- LabelCombo* rasterLabel;
- QToolBar* tools;
- PosLabel* cursorPos;
- TempoLabel* tempo;
- QToolButton* enableButton;
-
- static int _rasterInit;
-
- Q_OBJECT
- virtual void closeEvent(QCloseEvent*);
-
- private slots:
- void _setRaster(int);
- void posChanged(int,unsigned,bool);
- void setTime(unsigned);
- void setTempo(int);
-
- public slots:
- void songChanged(int);
-// void tempoChanged(double);
-
- signals:
- void deleted(unsigned long);
-
- public:
- MasterEdit();
- ~MasterEdit();
- virtual void readStatus(Xml&);
- virtual void writeStatus(int, Xml&) const;
- static void readConfiguration(Xml&);
- static void writeConfiguration(int, Xml&);
- };
-
-#endif
-
diff --git a/attic/muse2-oom/muse2/muse/master/tscale.cpp b/attic/muse2-oom/muse2/muse/master/tscale.cpp
deleted file mode 100644
index d37d5924..00000000
--- a/attic/muse2-oom/muse2/muse/master/tscale.cpp
+++ /dev/null
@@ -1,61 +0,0 @@
-//=========================================================
-// MusE
-// Linux Music Editor
-// $Id: tscale.cpp,v 1.2 2003/12/17 11:04:14 wschweer Exp $
-// (C) Copyright 1999 Werner Schweer (ws@seh.de)
-//=========================================================
-
-#include <stdio.h>
-#include "tscale.h"
-#include "globals.h"
-#include "gconfig.h"
-
-#include <QMouseEvent>
-#include <QPainter>
-
-//---------------------------------------------------------
-// TScale
-//---------------------------------------------------------
-
-TScale::TScale(QWidget* parent, int ymag)
- : View(parent, 1, ymag)
- {
- setFont(config.fonts[3]);
- int w = 4 * QFontMetrics(config.fonts[4]).width('0');
- setFixedWidth(w);
- setMouseTracking(true);
- }
-
-//---------------------------------------------------------
-// draw
-//---------------------------------------------------------
-
-void TScale::pdraw(QPainter& p, const QRect& r)
- {
- int y = r.y();
- int h = r.height();
- p.setFont(config.fonts[4]);
- QString s;
- for (int i = 30000; i <= 250000; i += 10000) {
- int yy = mapy(280000 - i);
- if (yy < y)
- break;
- if (yy-15 > y+h)
- continue;
- p.drawLine(0, yy, width(), yy);
- s.setNum(i/1000);
- QFontMetrics fm(config.fonts[4]);
- p.drawText(width() - fm.width(s) - 1, yy-2, s);
- }
- }
-
-void TScale::viewMouseMoveEvent(QMouseEvent* event)
- {
- emit tempoChanged(280000 - event->y());
- }
-
-void TScale::leaveEvent(QEvent*)
- {
- emit tempoChanged(-1);
- }
-
diff --git a/attic/muse2-oom/muse2/muse/master/tscale.h b/attic/muse2-oom/muse2/muse/master/tscale.h
deleted file mode 100644
index 35fa39f2..00000000
--- a/attic/muse2-oom/muse2/muse/master/tscale.h
+++ /dev/null
@@ -1,35 +0,0 @@
-//=========================================================
-// MusE
-// Linux Music Editor
-// $Id: tscale.h,v 1.1.1.1 2003/10/27 18:52:36 wschweer Exp $
-// (C) Copyright 1999 Werner Schweer (ws@seh.de)
-//=========================================================
-
-#ifndef __TSCALE_H__
-#define __TSCALE_H__
-
-#include "view.h"
-
-//---------------------------------------------------------
-// Tscale
-//---------------------------------------------------------
-
-class TScale : public View {
- double curTempo;
- Q_OBJECT
-
- virtual void viewMouseMoveEvent(QMouseEvent* event);
- virtual void leaveEvent(QEvent*e);
-
- protected:
- virtual void pdraw(QPainter&, const QRect&);
-
- signals:
- void tempoChanged(int);
-
- public:
- TScale(QWidget*, int);
- };
-
-#endif
-