112 lines
3.1 KiB
C++
112 lines
3.1 KiB
C++
//=============================================================================
|
|
// MuseScore
|
|
// Linux Music Score Editor
|
|
// $Id: mixer.h 4388 2011-06-18 13:17:58Z wschweer $
|
|
//
|
|
// Copyright (C) 2002-2016 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.
|
|
//=============================================================================
|
|
|
|
#ifndef __ILEDIT_H__
|
|
#define __ILEDIT_H__
|
|
|
|
#include "ui_mixer.h"
|
|
#include "libmscore/instrument.h"
|
|
#include "enableplayforwidget.h"
|
|
namespace Ms {
|
|
|
|
class Score;
|
|
struct Channel;
|
|
class Part;
|
|
|
|
//---------------------------------------------------------
|
|
// PartEdit
|
|
//---------------------------------------------------------
|
|
|
|
class PartEdit : public QWidget, public Ui::PartEditBase {
|
|
Q_OBJECT
|
|
|
|
Channel* channel;
|
|
Part* part;
|
|
|
|
QList<QToolButton*> voiceButtons;
|
|
|
|
|
|
private slots:
|
|
void patchChanged(int, bool syncControls = true);
|
|
void volChanged(double, bool syncControls = true);
|
|
void panChanged(double, bool syncControls = true);
|
|
void reverbChanged(double, bool syncControls = true);
|
|
void chorusChanged(double, bool syncControls = true);
|
|
void muteChanged(bool, bool syncControls = true);
|
|
void soloToggled(bool, bool syncControls = true);
|
|
void drumsetToggled(bool, bool syncControls = true);
|
|
void midiChannelChanged(int);
|
|
void sync(bool syncControls);
|
|
void expandToggled(bool);
|
|
void playbackVoiceChanged();
|
|
|
|
public slots:
|
|
|
|
signals:
|
|
void soloChanged(bool);
|
|
|
|
public:
|
|
PartEdit(QWidget* parent = 0);
|
|
void setPart(Part*, Channel*);
|
|
};
|
|
|
|
//---------------------------------------------------------
|
|
// Mixer
|
|
//---------------------------------------------------------
|
|
|
|
class Mixer : public QScrollArea
|
|
{
|
|
Q_OBJECT
|
|
MasterScore* cs;
|
|
QScrollArea* sa;
|
|
QVBoxLayout* vb;
|
|
EnablePlayForWidget* enablePlay;
|
|
|
|
virtual void closeEvent(QCloseEvent*);
|
|
virtual void showEvent(QShowEvent*) override;
|
|
virtual bool eventFilter(QObject*, QEvent*) override;
|
|
virtual void keyPressEvent(QKeyEvent*) override;
|
|
void readSettings();
|
|
|
|
private slots:
|
|
void updateSolo(bool);
|
|
|
|
public slots:
|
|
void patchListChanged();
|
|
void midiPrefsChanged(bool showMidiControls);
|
|
|
|
signals:
|
|
void closed(bool);
|
|
|
|
protected:
|
|
virtual void changeEvent(QEvent *event);
|
|
void retranslate(bool firstTime = false);
|
|
|
|
public:
|
|
Mixer(QWidget* parent);
|
|
void updateAll(MasterScore*);
|
|
PartEdit* partEdit(int index);
|
|
void writeSettings();
|
|
};
|
|
|
|
|
|
} // namespace Ms
|
|
#endif
|
|
|