Commit Graph

1865 Commits

Author SHA1 Message Date
Tobias Doerffel
0faaab4521 PlayHandle: use QList instead of QVector for PlayHandle array
Use QList instead of QVector when using a set of PlayHandle's. QList
has faster insert/remove operations and in most cases we iterate through
the array using iterators so there's no performance drop.

Signed-off-by: Tobias Doerffel <tobias.doerffel@gmail.com>
(cherry picked from commit 2cc49b8010)
2009-06-17 10:43:51 +02:00
Tobias Doerffel
cafb24fe9a NotePlayHandle: cleanups, header dependency reductions etc.
* do not include instrument_track.h in note_play_handle.h by making
  two functions non-inline
* renamed notePlayHandleVector / constNotePlayHandleVector to
  NotePlayHandleList / ConstNotePlayHandleList and changed typedef
  to QList (which has faster insert- and remove-operations).
* removed unused method willFinishThisPeriod()

Signed-off-by: Tobias Doerffel <tobias.doerffel@gmail.com>
(cherry picked from commit 08ea133aa2)
2009-06-15 16:40:22 +02:00
Tobias Doerffel
33dd77f55c MMP: detect compressed files rather than guessing by extension
Detect whether a given file is compressed by first trying to parse
its content as XML data. If it failed, try to uncompress and
parse again. This is more flexible than just looking whether the
filename extension is "mmpz".

Signed-off-by: Tobias Doerffel <tobias.doerffel@gmail.com>
(cherry picked from commit c0794d0c41)
2009-06-15 16:28:09 +02:00
Tobias Doerffel
93a19e43f1 InstrumentTrack: new method silenceAllNotes()
Added new method silenceAllNotes() which is a replacement for
invalidateAllMyNPH() and also resets m_runningMidiNotes array.

silenceAllNotes() is now used in destructor as well.

Signed-off-by: Tobias Doerffel <tobias.doerffel@gmail.com>
(cherry picked from commit 3c9859da9f)
2009-06-11 01:19:33 +02:00
Tobias Doerffel
57c4a5abc5 MultimediaProject: splitted constructor for loading either file or data
The old constructor treated the string argument either as filename or
as raw XML data, depending on 2nd parameter. This is a mess and quickly
leads to confusion.

Now we have two constructors taking either a filename as string or a
QByteArray with XML data. Loading actual data has been separated into
MultimediaProject::loadData( const QByteArray & ).

Signed-off-by: Tobias Doerffel <tobias.doerffel@gmail.com>
(cherry picked from commit 5a00ebd360)
2009-06-11 01:16:30 +02:00
Tobias Doerffel
3d9dc25f0b InstrumentTrack: presetPreviewPlayHandle no longer a friend class
For a long time presetPreviewPlayHandle has been a friend class of
InstrumentTrack as it had to modify MidiPort settings. However the
InstrumentTrack's MidiPort is now accessible via getMidiPort() so
there's no need for keeping presetPreviewPlayHandle a friend class
anymore.

Signed-off-by: Tobias Doerffel <tobias.doerffel@gmail.com>
(cherry picked from commit a6090ebe23)
2009-06-11 00:57:10 +02:00
Tobias Doerffel
5bb9af15ab RemoteVstPlugin: use SplittedThreading model for Proteus VX
Proteus VX requires SplittedThreading model in order to run properly.
Issues with actually working UI interaction still need to be worked
out although it rather looks like a bug in WINE.

Signed-off-by: Tobias Doerffel <tobias.doerffel@gmail.com>
(cherry picked from commit b3c5d498e2)
2009-06-02 00:51:29 +02:00
Tobias Doerffel
66147bebf0 ZynAddSubFX: fixed compilation failure of FLTK if glibc >= 2.10
Fixed compilation failure of FLTK on systems with glibc newer than
version 2.9 where the signature of scandir(...) has changed.

Signed-off-by: Tobias Doerffel <tobias.doerffel@gmail.com>
(cherry picked from commit dc539d88de)
2009-06-01 00:56:27 +02:00
Tobias Doerffel
6b71db0640 ZynAddSubFX: fixed compilation failure of FLTK
Fixed compilation failure of FLTK on broken systems where strchr()
takes a non-const char pointer.

Signed-off-by: Tobias Doerffel <tobias.doerffel@gmail.com>
(cherry picked from commit 3003163e9b)
2009-06-01 00:56:20 +02:00
Tobias Doerffel
0c8fdec27c MinGW cross compiling script: fixed invocation of cmake
Fixed invocation of cmake in the MinGW cross compiling script so it
works properly when doing an out-of-tree build (which should be the
default way of building LMMS).

Signed-off-by: Tobias Doerffel <tobias.doerffel@gmail.com>
(cherry picked from commit 8c50e0ef9a)
2009-05-31 18:57:32 +02:00
Tobias Doerffel
ca5ba2971b ZynAddSubFX: processed UI files with Fluid from FLTK 1.3 branch
Processed all Fluid UI files with Fluid from FLTK 1.3 branch so the
generated code is up to date.

Signed-off-by: Tobias Doerffel <tobias.doerffel@gmail.com>
(cherry picked from commit 5b1900c4d0)
2009-05-31 18:56:01 +02:00
Tobias Doerffel
e0bb2cd043 ZynAddSubFX: integrated FLTK 1.3.0 branch from SVN
Integrated FLTK 1.3.0 branch from SVN which brings UTF8 support and
fully integrated Xft support (SVN rev. 6791).

Signed-off-by: Tobias Doerffel <tobias.doerffel@gmail.com>
(cherry picked from commit 8affa66c61)
2009-05-31 18:55:49 +02:00
Tobias Doerffel
41efb51518 TrackView: do not set Qt::WA_OpaquePaintEvent attribute
Due to optimizations in Qt 4.5 setting Qt::WA_OpaquePaintEvent attribute
for TrackView widgets caused a line of distorted pixels at the bottom of
the left part so do not set this attribute anymore (closes #2795861).
(cherry picked from commit cdcc158c03)
2009-05-25 13:48:27 +02:00
Tobias Doerffel
168a68c1b3 ControllerConnection: fixed segfault when finalizing invalid controller
In ControllerConnection::finalizeConnections() we did not check whether
the current controller ID really exists in Song's controller array.
Fixes segfault when loading projects with screwed controller settings.
(cherry picked from commit 6d77f83ae9)
2009-05-19 18:37:11 +02:00
Tobias Doerffel
6066209ef3 lmms.rc.in: advanced copyright notice
Advanced copyright notice in lmms.rc.in which is used as resource file
when building win32 executable.
(cherry picked from commit 34e607f5bb)
2009-05-18 14:35:36 +02:00
Tobias Doerffel
5cd54b3f20 PianoRoll: removed unused variable
Removed unused variable volumeHandles in
PianoRoll::computeSelectedNotes(bool) which as a side-effect also fixes

/usr/include/qt4/QtCore/qvector.h: In member function ‘void PianoRoll::computeSelectedNotes(bool)’:
/usr/include/qt4/QtCore/qvector.h:421: warning: dereferencing pointer ‘<anonymous>’ does break strict-aliasing rules
/usr/include/qt4/QtCore/qvector.h:114: note: initialized from here
(cherry picked from commit 24353ca248)
2009-05-16 17:02:02 +02:00
Tobias Doerffel
1c38473255 NotePlayHandle: use public method for accessing pitch model
Do not use private m_pitchModel member variable of InstrumentTrack even
if NotePlayHandle is a friend class. Instead use the already existing
InstrumentTrack::pitchModel() method.
(cherry picked from commit 9dcb62c630)
2009-05-16 17:01:57 +02:00
Tobias Doerffel
a6f8e11128 Fixed linker flags when building for OS X
Linker flag "-E" is not supported on OS X so drop it if LMMS_BUILD_APPLE
is defined.
(cherry picked from commit 582393cdba)
2009-05-16 02:50:54 +02:00
Andrew Kelley
27a828e579 don't coerce the installer to use /usr when cmaking.
(cherry picked from commit c53df545ae)

Conflicts:

	INSTALL
2009-05-06 20:22:12 -07:00
Achim Settelmeier
2f5dd60fd9 MainWindow: fixed problems with maximized window-state when using FVWM2
Added a workaround for FVWM2 as showMaximized() does not work with it
unless the window is already visible.
(cherry picked from commit 515f0243b9)
2009-05-05 23:36:25 +02:00
Frederik
03ecb86494 Allow compilation with -Werror=format-security
This commit fixes some calls to functions that are taking a format
string and an optional set of parameters as arguments. At some places
no format string was specified if only a simple C string was to be
sprintf()ed.  However for security reasons this is bad and was replaced
by code like

	sprintf( dest, "%s", str );
(cherry picked from commit af284e980f)
2009-05-05 23:25:35 +02:00
Andrew Kelley
1bc94beae6 fixed dependency on libfluidsynth which did not check LMMS_HAVE_FLUIDSYNTH in 0.4.4 2009-05-05 04:25:08 -07:00
Tobias Doerffel
e565e2e740 Made 0.4.4 release
Bumped version number to 0.4.4 in CMakeLists.txt and README.
v0.4.4
2009-05-05 00:42:23 +02:00
Tobias Doerffel
cbc4c7c0aa Pass main window as parent for progress dialog when loading project
Make progress dialog when loading project a proper sub-window of LMMS
by passing main window as parent to constructor of QProgressDialog.
Fixes default window icon and additional taskbar item.
(cherry picked from commit 6929caa777)
2009-05-04 23:26:15 +02:00
Tobias Doerffel
2188ac9741 ZynAddSubFX: added preset collection by Will Godfrey
Added first external ZynAddSubFX preset collection by Will Godfrey.
Downloaded from http://www.musically.me.uk/Collection.zip on May 4th 2009.
License is GPLv2 or later (as of http://www.musically.me.uk/stuff.html).
(cherry picked from commit c2757d6991)
2009-05-04 14:28:03 +02:00
Tobias Doerffel
31b393af58 README: Synced with master branch
Synchronized changes in README in master branch.
2009-05-04 12:31:39 +02:00
Tobias Doerffel
8201a19d4c Added universal codebase for dragging plugin-specific presets
Added new stringPairDrag type "pluginpresetfile", allowing to drag
and drop any kind of plugin-specific preset files everywhere in the
program. Adopted changes in ZynAddSubFX plugin.
(cherry picked from commit ccb65f4b40)
2009-05-03 16:11:01 +02:00
Tobias Doerffel
6b0c083ce5 LadspaControl: set name property for tempoSyncKnobModel
For each model but the tempoSyncKnobModel the name property was properly
passed to the according constructor. This made time-based knobs in LADSPA
effects have no internal name, e.g. there were blank captions in the
knob's context menu or empty titles when used in combination with
automation patterns.
(cherry picked from commit ebd3d26531)
2009-05-03 15:33:39 +02:00
Tobias Doerffel
9c4dc40de1 VstEffect: check whether VST effect has an editor
Depending on whether VST effect has an editor return 1 or 0 in
VstEffectControls::getControlCount(). This prevents the EffectView in
the effect rack from showing a "Controls" button and creating an empty
subwindow.
(cherry picked from commit 3a4ae3a434)
2009-05-03 15:16:59 +02:00
Tobias Doerffel
894ee9ea48 VstPlugin: added hasEditor() method
Added inline method hasEditor() with returns true or false depending on
whether the class received a window ID from the remote plugin.
(cherry picked from commit 044d671471)
2009-05-03 15:16:54 +02:00
Tobias Doerffel
f687591986 EffectView: always check whether effect has a control dialog
Do not add empty subwindows for effects that do not have a control
dialog at all (i.e. Effect::getControlCount() == 0). Also check whether
creation of control dialog was successful. Fixes possible crashes if
something went wrong with the effect (e.g. loading VST effect failed).
(cherry picked from commit 9cced2957c)
2009-05-03 15:16:42 +02:00
Tobias Doerffel
ed02d1d501 InstrumentTrackWindow: clear focus on closeEvent
When closing an InstrumentTrackWindow make sure it doesn't still have
keyboard focus (looks like a bug in Qt) and set focus on
trackLabelButton instead (closes #2780590).
(cherry picked from commit 12d26ed0aa)
2009-04-25 16:41:42 +02:00
Tobias Doerffel
c94d003683 ZynAddSubFX: added support for d'n'd XIZ files onto ZASF plugin
This commit allows the user to drag'n'drop DLL files onto ZynAddSubFX
instrument (inside LMMS).
(cherry picked from commit d38d437349)
2009-04-18 23:56:07 +02:00
Tobias Doerffel
4995b3a87c InstrumentTrackView: save and restore last position of window
When closing a InstrumentTrackWindow save its position so it can be
restored later when showing it. Fixes windows always popping up
somewhere else when toggling instrument track button repeatedly.
(cherry picked from commit 232c1de404)
2009-04-18 18:29:14 +02:00
Tobias Doerffel
8f735d4b06 ZynAddSubFX: do not lock up after rendering project
Do not lock up after rendering project by calling waitForInitDone()
on our own (instead of in RemotePlugin constructor) with busy waiting
disabled.
(cherry picked from commit 75382de976)
2009-04-18 18:18:00 +02:00
Tobias Doerffel
1f99455e67 RemotePlugin: allow waitForInitDone() without busy waiting
An additional parameter to waitForInitDone() allows to disable busy
waiting which could be desired in various places to avoid deadlocks.
(cherry picked from commit 1802b91e55)
2009-04-18 18:17:54 +02:00
Tobias Doerffel
02149d66f5 ZynAddSubFX: do not subclass RemotePlugin
Create an own RemotePlugin object rather than inheriting from it.
This allows to restart ZASF RemotePlugin which for example is required
upon samplerate changes (closes #2626249).

Furthermore this commit cleans up some old unused stuff.
(cherry picked from commit dfab704100)
2009-04-18 18:17:44 +02:00
Tobias Doerffel
c16d1be0a8 RemotePlugin: made lock() and unlock() methods public
Made RemotePlugin::lock() and RemotePlugin::unlock() public allowing
to use RemotePlugin class without subclassing it.
(cherry picked from commit 7200eb8158)
2009-04-18 18:17:38 +02:00
Tobias Doerffel
9009d745e9 ZynAddSubFX: made MIDI pitch bend work
Always send MIDI pitch bend events to MIDI channel 0 for the time being.
Makes MIDI pitch wheel work with ZynAddSubFX.
(cherry picked from commit 9873b880e2)
2009-04-18 14:17:42 +02:00
Tobias Doerffel
601b6c7c59 ZynAddSubFX: properly load/save instrument presets
When loading external XIZ presets, the embedded ZynAddSubFX plugin didn't
apply them completely so it did not save them properly later. This made
ZASF instruments play the default preset when loading the LMMS project
later. Now presets properly get applied to the selected instrument part.
(cherry picked from commit 7a176c8fbb)
2009-04-18 14:17:36 +02:00
Tobias Doerffel
e940acd3cb ZynAddSubFX: integrated into stable-0.4 series
Embedded ZynAddSubFX plugin now is considered to be mature enough to
be part of the stable-0.4 series. This eases builds for everyone as well
as cutting down maintainance work dramatically as we can easily
cherry-pick fixes from master branch now.
2009-04-18 01:02:05 +02:00
Tobias Doerffel
e0a26a35fc PianoRoll: do not make notes disappear under certain circumstances
When starting LMMS, loading an existing project and opening a pattern
with notes inside in piano roll, moving single notes showed unexpected
behaviour, i.e. the according note has been moved somewhere unreachable.

I tracked this down to a missing initialization of m_moveBoundary*
variables. Adding a few lines fixes the issue (closes #2632909).
(cherry picked from commit efb335cea7)
2009-04-17 15:13:44 +02:00
Tobias Doerffel
0edc0db7bd PianoView/PianoRoll: fixed keycodes for OS X
This patch enables the usage of PC keyboard for playing instrument piano
or piano roll on OS X by evaluating nativeVirtualKey rather than
nativeScanCode.
(cherry picked from commit 6f0388be7c)
2009-04-16 10:46:54 +02:00
Tobias Doerffel
52bab63548 RemotePlugin: never lock up if remote plugin died
Up to now there were insufficient checks whether the remote plugin
has died and so the result usually has been a complete lock-up of LMMS
(especially when using buggy VST plugins or similiar). By adding
according checks to remotePlugin::lock() and remotePlugin::unlock()
as well as remotePluginBase::waitForMessage() those lock-ups are gone.
(cherry picked from commit 656b195cfd)
2009-04-14 00:40:17 +02:00
Tobias Doerffel
0d0288eabe VeSTige: added support for d'n'd DLL files onto VeSTige instrument
This commit allows the user to drag'n'drop DLL files onto VeSTige
instrument. Furthermore VeSTige now registers itself as handler for
loading DLL files.
(cherry picked from commit 1b77346ded)
2009-04-14 00:05:13 +02:00
Tobias Doerffel
833610ea1c FileBrowser: added file type VstPluginFile
Added file type VstPluginFile in order to allow loading DLL files by
an according plugin directly from file browser.
(cherry picked from commit e0d352dc2c)
2009-04-14 00:05:07 +02:00
Tobias Doerffel
9dee41c017 Plugin: try to load all shared libraries first
Try to load all shared libraries before resolving any symbols. Fixes
problems with plugins that are linked against other shared libraries
located in LMMS' plugin directory.
(cherry picked from commit 9a4b4f3cfe)
2009-04-14 00:05:00 +02:00
Tobias Doerffel
1ed140eec4 InstrumentTrack: fixed calculation in midiPitch()
InstrumentTrack::midiPitch() returned 16384 instead of 16383 if pitch
was set to +100 cents. This commit fixes the calculation.
(cherry picked from commit 76662a3a51)
2009-04-13 16:15:38 +02:00
Tobias Doerffel
b93d62124c VstBase/CMakeLists.txt: do not fail with broken wineg++
With newer versions of wineg++ (1.1) errorneously adds the suffix ".exe"
to the target binary. This causes "make install" to fail. Therefore
rename remote_vst_plugin.exe if it exists.
(cherry picked from commit 69ff06e1b9)
2009-04-12 00:11:34 +02:00
Tobias Doerffel
4ec030b518 RemoteVstPlugin: removed obsolete warning
Removed obsolete warning about setting realtime. It's neither important
nor will calling printf()/fprintf() in a RemotePlugin print anything in
LMMS' console output.
(cherry picked from commit 337afffbf1)
2009-04-10 00:08:13 +02:00