Merge remote-tracking branch 'origin/stable-1.1'

Conflicts:
	data/locale/de.qm
	data/locale/de.ts
This commit is contained in:
Tobias Doerffel
2014-06-21 23:30:59 +02:00
163 changed files with 1585 additions and 1116 deletions

View File

@@ -1,9 +1,9 @@
/*
* AutomationEditor.h - declaration of class AutomationEditor which is a window
* where you can edit dynamic values in an easy way
* where you can edit dynamic values in an easy way
*
* Copyright (c) 2006-2008 Javier Serrano Polo <jasp00/at/users.sourceforge.net>
*
*
* This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net
*
* This program is free software; you can redistribute it and/or
@@ -23,8 +23,8 @@
*
*/
#ifndef _AUTOMATION_EDITOR_H
#define _AUTOMATION_EDITOR_H
#ifndef AUTOMATION_EDITOR_H
#define AUTOMATION_EDITOR_H
#include <QtCore/QMutex>
#include <QtGui/QWidget>
@@ -50,6 +50,10 @@ class toolButton;
class AutomationEditor : public QWidget, public JournallingObject
{
Q_OBJECT
Q_PROPERTY( QColor gridColor READ gridColor WRITE setGridColor )
Q_PROPERTY( QColor vertexColor READ vertexColor WRITE setVertexColor )
Q_PROPERTY( QBrush scaleColor READ scaleColor WRITE setScaleColor )
Q_PROPERTY( QBrush graphColor READ graphColor WRITE setGraphColor )
public:
void setCurrentPattern( AutomationPattern * _new_pattern );
@@ -75,6 +79,15 @@ public:
void setPauseIcon( bool pause );
// qproperty access methods
QColor gridColor() const;
QBrush graphColor() const;
QColor vertexColor() const;
QBrush scaleColor() const;
void setGridColor( const QColor & c );
void setGraphColor( const QBrush & c );
void setVertexColor( const QColor & c );
void setScaleColor( const QBrush & c );
public slots:
void update();
@@ -252,7 +265,10 @@ private:
void drawAutomationPoint( QPainter & p, timeMap::iterator it );
bool inBBEditor();
QColor m_gridColor;
QBrush m_graphColor;
QColor m_vertexColor;
QBrush m_scaleColor;
friend class engine;

View File

@@ -40,6 +40,7 @@ class FxLine : public QWidget
{
Q_OBJECT
public:
Q_PROPERTY( QBrush backgroundActive READ backgroundActive WRITE setBackgroundActive )
FxLine( QWidget * _parent, FxMixerView * _mv, int _channelIndex);
~FxLine();
@@ -54,10 +55,16 @@ public:
knob * m_sendKnob;
SendButtonIndicator * m_sendBtn;
QBrush backgroundActive() const;
void setBackgroundActive( const QBrush & c );
static const int FxLineHeight;
private:
FxMixerView * m_mv;
LcdWidget* m_lcd;
int m_channelIndex;
QBrush m_backgroundActive;
private slots:
void renameChannel();

View File

@@ -140,6 +140,7 @@ private:
// make sure we have at least num channels
void allocateChannelsTo(int num);
QMutex m_sendsMutex;
void addChannelLeaf( int _ch, sampleFrame * _buf );

View File

@@ -22,11 +22,12 @@
*
*/
#ifndef _FX_MIXER_VIEW_H
#define _FX_MIXER_VIEW_H
#ifndef FX_MIXER_VIEW_H
#define FX_MIXER_VIEW_H
#include <QtGui/QWidget>
#include <QtGui/QHBoxLayout>
#include <QtGui/QStackedLayout>
#include <QtGui/QScrollArea>
#include "FxLine.h"
@@ -54,6 +55,7 @@ public:
FxLine * m_fxLine;
pixmapButton * m_muteBtn;
fader * m_fader;
EffectRackView * m_rackView;
};
@@ -94,7 +96,7 @@ public:
// make sure the display syncs up with the fx mixer.
// useful for loading projects
void refreshDisplay();
private slots:
void updateFaders();
void addNewChannel();
@@ -108,9 +110,12 @@ private:
QScrollArea * channelArea;
QHBoxLayout * chLayout;
QWidget * m_channelAreaWidget;
EffectRackView * m_rackView;
QStackedLayout * m_racksLayout;
QWidget * m_racksWidget;
void updateMaxChannelSelector();
friend class FxChannelView;
} ;
#endif

View File

@@ -23,8 +23,8 @@
*
*/
#ifndef _INSTRUMENT_H
#define _INSTRUMENT_H
#ifndef INSTRUMENT_H
#define INSTRUMENT_H
#include <QtGui/QWidget>
@@ -101,7 +101,7 @@ public:
// sub-classes can re-implement this for receiving all incoming
// MIDI-events
inline virtual bool handleMidiEvent( const MidiEvent&, const MidiTime& = MidiTime() )
inline virtual bool handleMidiEvent( const MidiEvent&, const MidiTime& = MidiTime(), f_cnt_t offset = 0 )
{
return true;
}
@@ -119,13 +119,13 @@ public:
virtual bool isFromTrack( const track * _track ) const;
protected:
inline InstrumentTrack * instrumentTrack() const
{
return m_instrumentTrack;
}
protected:
// instruments may use this to apply a soft fade out at the end of
// notes - method does this only if really less or equal
// desiredReleaseFrames() frames are left

View File

@@ -22,11 +22,12 @@
*
*/
#ifndef _INSTRUMENT_PLAY_HANDLE_H
#define _INSTRUMENT_PLAY_HANDLE_H
#ifndef INSTRUMENT_PLAY_HANDLE_H
#define INSTRUMENT_PLAY_HANDLE_H
#include "PlayHandle.h"
#include "Instrument.h"
#include "NotePlayHandle.h"
class InstrumentPlayHandle : public PlayHandle
@@ -45,6 +46,32 @@ public:
virtual void play( sampleFrame * _working_buffer )
{
// if the instrument is midi-based, we can safely render right away
if( m_instrument->flags() & Instrument::IsMidiBased )
{
m_instrument->play( _working_buffer );
return;
}
// if not, we need to ensure that all our nph's have been processed first
ConstNotePlayHandleList nphv = NotePlayHandle::nphsOfInstrumentTrack( m_instrument->instrumentTrack(), true );
bool nphsLeft;
do
{
nphsLeft = false;
foreach( const NotePlayHandle * cnph, nphv )
{
NotePlayHandle * nph = const_cast<NotePlayHandle *>( cnph );
if( nph->state() != ThreadableJob::Done && ! nph->isFinished() )
{
nphsLeft = true;
nph->process();
}
}
}
while( nphsLeft );
m_instrument->play( _working_buffer );
}

View File

@@ -23,8 +23,8 @@
*
*/
#ifndef _INSTRUMENT_TRACK_H
#define _INSTRUMENT_TRACK_H
#ifndef INSTRUMENT_TRACK_H
#define INSTRUMENT_TRACK_H
#include "AudioPort.h"
#include "InstrumentFunctions.h"
@@ -71,10 +71,10 @@ public:
MidiEvent applyMasterKey( const MidiEvent& event );
virtual void processInEvent( const MidiEvent& event, const MidiTime& time = MidiTime() );
virtual void processOutEvent( const MidiEvent& event, const MidiTime& time = MidiTime() );
virtual void processInEvent( const MidiEvent& event, const MidiTime& time = MidiTime(), f_cnt_t offset = 0 );
virtual void processOutEvent( const MidiEvent& event, const MidiTime& time = MidiTime(), f_cnt_t offset = 0 );
// silence all running notes played by this track
void silenceAllNotes();
void silenceAllNotes( bool removeIPH = false );
bool isSustainPedalPressed() const
{
@@ -160,6 +160,8 @@ public:
{
return &m_baseNoteModel;
}
int baseNote() const;
Piano *pianoModel()
{

View File

@@ -44,10 +44,10 @@ public:
virtual ~MidiController();
virtual void processInEvent( const MidiEvent & _me,
const MidiTime & _time );
const MidiTime & _time, f_cnt_t offset = 0 );
virtual void processOutEvent( const MidiEvent& _me,
const MidiTime & _time)
const MidiTime & _time, f_cnt_t offset = 0 )
{
// No output yet
}

View File

@@ -22,8 +22,8 @@
*
*/
#ifndef _MIDI_EVENT_PROCESSOR_H
#define _MIDI_EVENT_PROCESSOR_H
#ifndef MIDI_EVENT_PROCESSOR_H
#define MIDI_EVENT_PROCESSOR_H
#include "MidiEvent.h"
#include "MidiTime.h"
@@ -42,8 +42,8 @@ public:
}
// to be implemented by inheriting classes
virtual void processInEvent( const MidiEvent& event, const MidiTime& time = MidiTime() ) = 0;
virtual void processOutEvent( const MidiEvent& event, const MidiTime& time = MidiTime() ) = 0;
virtual void processInEvent( const MidiEvent& event, const MidiTime& time = MidiTime(), f_cnt_t offset = 0 ) = 0;
virtual void processOutEvent( const MidiEvent& event, const MidiTime& time = MidiTime(), f_cnt_t offset = 0 ) = 0;
} ;

View File

@@ -229,7 +229,7 @@ public:
return m_playHandles;
}
void removePlayHandles( track * _track );
void removePlayHandles( track * _track, bool removeIPHs = true );
bool hasNotePlayHandles();

View File

@@ -94,7 +94,7 @@ public:
/*! Returns whether playback of note is finished and thus handle can be deleted */
virtual bool isFinished() const
{
return m_released && framesLeft() <= 0;
return m_released && framesLeft() <= 0 && m_scheduledNoteOff < 0;
}
/*! Returns number of frames left for playback */
@@ -264,6 +264,7 @@ private:
// played after release
f_cnt_t m_releaseFramesDone; // number of frames done after
// release of note
f_cnt_t m_scheduledNoteOff; // variable for scheduling noteoff at next period
NotePlayHandleList m_subNotes; // used for chords and arpeggios
volatile bool m_released; // indicates whether note is released
bool m_hasParent;

View File

@@ -53,6 +53,10 @@ class toolButton;
class PianoRoll : public QWidget, public SerializingObject
{
Q_OBJECT
Q_PROPERTY( QColor gridColor READ gridColor WRITE setGridColor )
Q_PROPERTY( QColor noteModeColor READ noteModeColor WRITE setNoteModeColor )
Q_PROPERTY( QColor noteColor READ noteColor WRITE setNoteColor )
Q_PROPERTY( QColor barColor READ barColor WRITE setBarColor )
public:
/*! \brief Resets settings to default when e.g. creating a new project */
void reset();
@@ -93,7 +97,16 @@ public:
}
void setPauseIcon( bool pause );
// qproperty acces functions
QColor gridColor() const;
void setGridColor( const QColor & _c );
QColor noteModeColor() const;
void setNoteModeColor( const QColor & _c );
QColor noteColor() const;
void setNoteColor( const QColor & _c );
QColor barColor() const;
void setBarColor( const QColor & _c );
protected:
virtual void closeEvent( QCloseEvent * _ce );
@@ -110,7 +123,7 @@ protected:
int getKey( int _y ) const;
static inline void drawNoteRect( QPainter & _p, int _x, int _y,
int _width, note * _n );
int _width, note * _n, const QColor & noteCol );
void removeSelection();
void selectAll();
void getSelectedNotes( NoteVector & _selected_notes );
@@ -352,6 +365,11 @@ private:
friend class engine;
// qproperty fields
QColor m_gridColor;
QColor m_noteModeColor;
QColor m_noteColor;
QColor m_barColor;
signals:
void positionChanged( const MidiTime & );

View File

@@ -52,7 +52,7 @@
#include <process.h>
#endif
#include <Qt/qglobal.h>
#include <QtCore/QtGlobal>
#if QT_VERSION >= 0x040400
#include <QtCore/QSystemSemaphore>
@@ -75,7 +75,7 @@
#ifdef USE_QT_SHMEM
#include <Qt/qglobal.h>
#include <QtCore/QtGlobal>
#if QT_VERSION >= 0x040400
#include <QtCore/QSharedMemory>

View File

@@ -11,22 +11,23 @@
class FxLine;
class FxMixerView;
class SendButtonIndicator : public QLabel {
public:
SendButtonIndicator( QWidget * _parent, FxLine * _owner,
FxMixerView * _mv);
class SendButtonIndicator : public QLabel
{
public:
SendButtonIndicator( QWidget * _parent, FxLine * _owner,
FxMixerView * _mv);
virtual void mousePressEvent( QMouseEvent * e );
void updateLightStatus();
virtual void mousePressEvent( QMouseEvent * e );
void updateLightStatus();
private:
private:
FxLine * m_parent;
FxMixerView * m_mv;
QPixmap qpmOn;
QPixmap qpmOff;
FxLine * m_parent;
FxMixerView * m_mv;
static QPixmap * s_qpmOn;
static QPixmap * s_qpmOff;
FloatModel * getSendModel();
FloatModel * getSendModel();
};
#endif // SENDBUTTONINDICATOR_H

View File

@@ -39,7 +39,7 @@ class TrackContainer;
class bbTCO : public trackContentObject
{
public:
bbTCO( track * _track, unsigned int _color = 0 );
bbTCO( track * _track );
virtual ~bbTCO();
virtual void saveSettings( QDomDocument & _doc, QDomElement & _parent );
@@ -49,13 +49,24 @@ public:
return( "bbtco" );
}
inline unsigned int color() const
unsigned int color() const
{
return( m_color );
return( m_color.rgb() );
}
inline static unsigned int defaultColor()
QColor colorObj() const
{
return qRgb( 128, 182, 175 );
return m_color;
}
void setColor( const QColor & c )
{
m_color = QColor( c );
}
void setUseStyleColor( bool b )
{
m_useStyleColor = b;
}
int bbTrackIndex();
@@ -63,7 +74,8 @@ public:
virtual trackContentObjectView * createView( trackView * _tv );
private:
unsigned int m_color;
QColor m_color;
bool m_useStyleColor;
friend class bbTCOView;
@@ -91,6 +103,7 @@ protected slots:
void resetName();
void changeName();
void changeColor();
void resetColor();
protected:
@@ -144,6 +157,26 @@ public:
m_disabledTracks.removeAll( _track );
}
static void setLastTCOColor( const QColor & c )
{
if( ! s_lastTCOColor )
{
s_lastTCOColor = new QColor( c );
}
else
{
*s_lastTCOColor = QColor( c );
}
}
static void clearLastTCOColor()
{
if( s_lastTCOColor )
{
delete s_lastTCOColor;
}
s_lastTCOColor = NULL;
}
protected:
inline virtual QString nodeName() const
@@ -158,6 +191,7 @@ private:
typedef QMap<bbTrack *, int> infoMap;
static infoMap s_infoMap;
static QColor * s_lastTCOColor;
friend class bbTrackView;

View File

@@ -45,8 +45,8 @@
*/
#ifndef _FADER_H
#define _FADER_H
#ifndef FADER_H
#define FADER_H
#include <QtCore/QTime>
#include <QtGui/QWidget>
@@ -61,6 +61,8 @@ class fader : public QWidget, public FloatModelView
{
Q_OBJECT
public:
Q_PROPERTY( QColor peakGreen READ peakGreen WRITE setPeakGreen )
Q_PROPERTY( QColor peakRed READ peakRed WRITE setPeakRed )
fader( FloatModel * _model, const QString & _name, QWidget * _parent );
virtual ~fader();
@@ -70,6 +72,10 @@ public:
void setPeak_R( float fPeak );
float getPeak_R() { return m_fPeakValue_R; }
QColor peakGreen() const;
QColor peakRed() const;
void setPeakGreen( const QColor & c );
void setPeakRed( const QColor & c );
private:
virtual void contextMenuEvent( QContextMenuEvent * _me );
@@ -85,7 +91,7 @@ private:
float fRange = m_model->maxValue() - m_model->minValue();
float realVal = m_model->value() - m_model->minValue();
return height() - ( ( height() - m_knob.height() ) * ( realVal / fRange ) );
return height() - ( ( height() - ( *s_knob ).height() ) * ( realVal / fRange ) );
}
FloatModel * m_model;
@@ -103,9 +109,9 @@ private:
QTime m_lastPeakTime_L;
QTime m_lastPeakTime_R;
QPixmap m_back;
QPixmap m_leds;
QPixmap m_knob;
static QPixmap * s_back;
static QPixmap * s_leds;
static QPixmap * s_knob;
int m_moveStartPoint;
float m_startValue;
@@ -113,6 +119,8 @@ private:
static textFloat * s_textFloat;
void updateTextFloat();
QColor m_peakGreen;
QColor m_peakRed;
} ;

View File

@@ -278,15 +278,8 @@ class trackContentWidget : public QWidget, public JournallingObject
Q_OBJECT
// qproperties for track background gradients
Q_PROPERTY( QColor darkerColor1 READ darkerColor1 WRITE setDarkerColor1 )
Q_PROPERTY( QColor darkerColor2 READ darkerColor2 WRITE setDarkerColor2 )
Q_PROPERTY( QColor darkerColor3 READ darkerColor3 WRITE setDarkerColor3 )
Q_PROPERTY( QColor lighterColor1 READ lighterColor1 WRITE setLighterColor1 )
Q_PROPERTY( QColor lighterColor2 READ lighterColor2 WRITE setLighterColor2 )
Q_PROPERTY( QColor lighterColor3 READ lighterColor3 WRITE setLighterColor3 )
Q_PROPERTY( float gradMidPoint READ gradMidPoint WRITE setGradMidPoint )
Q_PROPERTY( QBrush darkerColor READ darkerColor WRITE setDarkerColor )
Q_PROPERTY( QBrush lighterColor READ lighterColor WRITE setLighterColor )
public:
trackContentWidget( trackView * _parent );
@@ -312,25 +305,11 @@ public:
// qproperty access methods
QColor darkerColor1() const;
QColor darkerColor2() const;
QColor darkerColor3() const;
QBrush darkerColor() const;
QBrush lighterColor() const;
QColor lighterColor1() const;
QColor lighterColor2() const;
QColor lighterColor3() const;
float gradMidPoint() const;
void setDarkerColor1( const QColor & _c );
void setDarkerColor2( const QColor & _c );
void setDarkerColor3( const QColor & _c );
void setLighterColor1( const QColor & _c );
void setLighterColor2( const QColor & _c );
void setLighterColor3( const QColor & _c );
void setGradMidPoint( float _g );
void setDarkerColor( const QBrush & _c );
void setLighterColor( const QBrush & _c );
public slots:
void update();
@@ -373,13 +352,8 @@ private:
QPixmap m_background;
// qproperty fields
QColor m_darkerColor1;
QColor m_darkerColor2;
QColor m_darkerColor3;
QColor m_lighterColor1;
QColor m_lighterColor2;
QColor m_lighterColor3;
float m_gradMidPoint;
QBrush m_darkerColor;
QBrush m_lighterColor;
} ;