Commit Graph

662 Commits

Author SHA1 Message Date
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
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
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
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
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
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
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
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
2e1c7ce8a2 AudioJack: fixed lockup when getting zombified
This commit fixes lockup of the whole audio engine as soon as LMMS'
JACK backend got zombified due to longer delays (e.g. when audio engine
is blocked while loading a project). Restart JACK backend in such cases
and show an according message to the user.

Furthermore this commit includes various cleanups and improvements.
(cherry picked from commit b4e38e3978)
2009-04-07 00:16:12 +02:00
Tobias Doerffel
99807eeb98 SongEditor: fixed horizontal scrollbar with Qt 4.5
Due to optimizations in the graphics subsystem of Qt 4.5
songEditor::paintEvent() didn't get called regularly anymore and thus
the range of the horizontal scrollbar didn't get updated at all.

This commit makes the GUI track all changes related to the length of
the song.
(cherry picked from commit ff010da5ee)
2009-04-06 00:10:39 +02:00
Tobias Doerffel
45eaf1439b panning.h: fixed compiler warning
Fixed compiler warning about converting float to Sint16.
(cherry picked from commit 34bbde53e7)
2009-03-26 09:30:17 +01:00
Tobias Doerffel
2828262459 ControllerConnection: export symbols for win32 build
As of ee9e5680b7, LADSPA effect plugins access
ControllerConnection class. We therefore need to export its symbols.
(cherry picked from commit dc7cc064ce)
2009-03-22 01:05:23 +01:00
Tobias Doerffel
ec07aef5ac Fixed various types to be suffixed with "_t".
This commit ensures that all defined data types in include/lmms_basics.h are
suffxed with "_t" to keep consistency as well as to fix issues on systems
with older STL/libstdc++.
(cherry picked from commit 7449c4f731)
2009-03-15 21:50:38 +01:00
Tobias Doerffel
8bfcadfcaf MidiAlsaSeq: fixed typo which made output ports not work at all
As of 94d13e84ca, MidiClients::writablePorts()
was not overloaded properly anymore and thus no output ports appeared anymore.
(cherry picked from commit fdc065b8b8)
2009-03-14 19:13:32 +01:00
Tobias Doerffel
4dbb6a20bd FX-Fader: added accessibleName property for FX faders for not displaying
an empty titlebar in context-menu
(cherry picked from commit c24b923b78)

Conflicts:

	src/gui/fx_mixer_view.cpp
2009-03-14 16:10:13 +01:00
Tobias Doerffel
efbe9c94c0 Various fixes for better OpenBSD compatibility (thanks to Jacob Meuser)
(cherry picked from commit 46097b72d7)

Conflicts:

	src/core/main.cpp
2009-03-12 19:35:49 +01:00
Tobias Doerffel
2b033627e6 MIDI subsystem: fixed misspelled "writeable" into "writable", minor
coding style fixes
(cherry picked from commit 94d13e84ca)
2009-03-12 01:11:55 +01:00
Tobias Doerffel
9cf48736d9 Fixed file mode for files that were executable although they shouldn't be 2009-02-27 00:25:59 +01:00
Tobias Doerffel
2ff42ac80b added copy constructor implementation for AtomicInt class - fixes build failure with Qt < 4.4.0, fixed typo
git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/branches/lmms/stable-0.4@2074 0778d3d1-df1d-0410-868b-ea421aaaa00d
2009-02-23 22:32:31 +00:00
Tobias Doerffel
9b533f055a rewrote timing of fading animation for not postponing updates of hidden fadeButton until it becomes visible (stable backport)
git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/branches/lmms/stable-0.4@2058 0778d3d1-df1d-0410-868b-ea421aaaa00d
2009-02-19 15:03:23 +00:00
Tobias Doerffel
625c947d7a move timeLine marker in Piano Roll and autoscroll when recording while playing song (closes #2486334) (stable backport)
git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/branches/lmms/stable-0.4@2054 0778d3d1-df1d-0410-868b-ea421aaaa00d
2009-02-19 14:27:42 +00:00
Tobias Doerffel
4c93249aae coding style fixes, improved handling of shared detuningHelper object (stable backport)
git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/branches/lmms/stable-0.4@2049 0778d3d1-df1d-0410-868b-ea421aaaa00d
2009-02-19 13:40:24 +00:00
Tobias Doerffel
c720c1f4c8 stable backport:
fixed various bugs regarding recording:
* once recording has been started, stop it as soon as playMode of song changes or similiar things happen (closes #2486341)
* fixed broken record-accompany in most use-cases other than using record-while-playing-song by also tracking NoteOn events and 
remember current play position to use
the correct note postitions on NoteOff events (play position might have wrapped around in the meantime due to looppoints or end 
of BB track) (closes #2486299, #2486203)



git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/branches/lmms/stable-0.4@2048 0778d3d1-df1d-0410-868b-ea421aaaa00d
2009-02-19 13:39:42 +00:00
Tobias Doerffel
c5d01d5e0d stable backport:
* added missing slot declaration for abortFreeze(), fixes lockup when freezing pattern (closes #2530320)
* update patternView after freezing
* fixed drawing of frozen pattern



git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/branches/lmms/stable-0.4@2042 0778d3d1-df1d-0410-868b-ea421aaaa00d
2009-02-13 23:36:32 +00:00
Tobias Doerffel
e5dddeffb0 stable backport:
* when resampling whole sampleBuffer, set end_of_input = 1 in libsamplerate data struct - fixes lots of zero samples at the end of output buffer (closes #2531452)
* coding style fixes
* removed obsolete save/restore of EOF-property in libsample rate data struct when resampling successively (always use 0)



git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/branches/lmms/stable-0.4@2040 0778d3d1-df1d-0410-868b-ea421aaaa00d
2009-02-13 16:37:15 +00:00
Tobias Doerffel
95df8100a2 various UI related backports from trunk
git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/branches/lmms/stable-0.4@2027 0778d3d1-df1d-0410-868b-ea421aaaa00d
2009-02-13 00:07:20 +00:00
Tobias Doerffel
0d90ac3176 cleanups (stable backport)
git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/branches/lmms/stable-0.4@2005 0778d3d1-df1d-0410-868b-ea421aaaa00d
2009-02-05 13:18:28 +00:00
Tobias Doerffel
b3c9bf011b reworked mixer-threads (synchronization, realization of jobqueue etc.) which results in a much better performance and stability
git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/branches/lmms/stable-0.4@1996 0778d3d1-df1d-0410-868b-ea421aaaa00d
2009-02-05 09:03:13 +00:00
Tobias Doerffel
10f2fab3d2 fixed broken version comparing which indicated 0.x.y to be less than 0.x.y-patch - fixes messed up projects when loading files created with LMMS 0.4.0
git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/branches/lmms/stable-0.4@1961 0778d3d1-df1d-0410-868b-ea421aaaa00d
2008-12-19 16:21:34 +00:00
Tobias Doerffel
1c7efe8696 added STK support to win32 version of LMMS (stable backport)
git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/branches/lmms/stable-0.4@1954 0778d3d1-df1d-0410-868b-ea421aaaa00d
2008-12-17 23:26:47 +00:00
Tobias Doerffel
95729de5ee do not create a instrument track window just for calling dragEnterEvent() - use a static method instead (stable backport)
git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/branches/lmms/stable-0.4@1952 0778d3d1-df1d-0410-868b-ea421aaaa00d
2008-12-17 11:53:31 +00:00
Tobias Doerffel
a9f1242841 cache background per-object instead of per-class (stable backport)
git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/branches/lmms/stable-0.4@1951 0778d3d1-df1d-0410-868b-ea421aaaa00d
2008-12-17 11:52:46 +00:00
Tobias Doerffel
f62830c1ee added support for panning editing of notes (stable backport)
git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/branches/lmms/stable-0.4@1948 0778d3d1-df1d-0410-868b-ea421aaaa00d
2008-12-17 11:49:28 +00:00
Tobias Doerffel
d18cf92277 do not disable automation when just editing first point of an automation pattern (closes #2146230) (stable backport)
git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/branches/lmms/stable-0.4@1908 0778d3d1-df1d-0410-868b-ea421aaaa00d
2008-12-11 00:12:15 +00:00
Tobias Doerffel
3115642507 splitted view component out of automation_pattern.* (stable backport)
git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/branches/lmms/stable-0.4@1907 0778d3d1-df1d-0410-868b-ea421aaaa00d
2008-12-11 00:11:40 +00:00
Tobias Doerffel
55f606bc07 made "int"s to "const int"s, added CCONST macro (stable backport)
git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/branches/lmms/stable-0.4@1900 0778d3d1-df1d-0410-868b-ea421aaaa00d
2008-12-10 00:41:44 +00:00
Tobias Doerffel
aaddeb1a28 added support for debug messages from remote plugin (stable backport)
git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/branches/lmms/stable-0.4@1899 0778d3d1-df1d-0410-868b-ea421aaaa00d
2008-12-10 00:41:25 +00:00
Tobias Doerffel
e5dc935ec5 export effectChain for properly building FLP import DLL (stable backport)
git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/branches/lmms/stable-0.4@1889 0778d3d1-df1d-0410-868b-ea421aaaa00d
2008-12-08 20:45:44 +00:00
Tobias Doerffel
3c767040b3 fixed recent commit (m_timeLine was not declared as member yet)
git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/branches/lmms/stable-0.4@1886 0778d3d1-df1d-0410-868b-ea421aaaa00d
2008-12-08 20:40:08 +00:00
Tobias Doerffel
98371cb148 rewrote FLP import filter, various coding style fixes (stable backport)
git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/branches/lmms/stable-0.4@1842 0778d3d1-df1d-0410-868b-ea421aaaa00d
2008-11-21 23:22:36 +00:00
Tobias Doerffel
062b615bd1 fixed loops when adding a controller to a model which is linked to another model (stable backport)
git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/branches/lmms/stable-0.4@1829 0778d3d1-df1d-0410-868b-ea421aaaa00d
2008-11-04 11:51:21 +00:00
Tobias Doerffel
fee4fcfc6d include QtXml/QDomElement rather than Qt/QtXml - fixes compilation on OS X
git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/trunk/lmms@1816 0778d3d1-df1d-0410-868b-ea421aaaa00d
2008-10-30 20:03:59 +00:00
Tobias Doerffel
19800a6971 fixed autoscroll feature in piano-roll (closes #2204508)
git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/trunk/lmms@1813 0778d3d1-df1d-0410-868b-ea421aaaa00d
2008-10-29 08:48:33 +00:00
Tobias Doerffel
9530460fce * initial (not yet enabled) support for binding mixer threads to CPUs to reduce scheduling overhead and cache misses (gives avg. 10% performance boost)
* merged mixer-thread with first worker-thread - no more duplicate code for single- and multicore processing and better scheduling on multicore systems



git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/trunk/lmms@1803 0778d3d1-df1d-0410-868b-ea421aaaa00d
2008-10-25 17:53:58 +00:00
Tobias Doerffel
6fc2eba70b do not inline code for fetching value from controller and thus reduce header dependencies
git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/trunk/lmms@1802 0778d3d1-df1d-0410-868b-ea421aaaa00d
2008-10-25 15:16:09 +00:00
Tobias Doerffel
5e0d94aeb4 renamed class "listView" to "fileBrowserTreeWidget"
git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/trunk/lmms@1795 0778d3d1-df1d-0410-868b-ea421aaaa00d
2008-10-25 13:53:52 +00:00
Tobias Doerffel
c10eeed4a9 reverted to rev. 1766 - fixes broken label on LADSPA effects
git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/trunk/lmms@1792 0778d3d1-df1d-0410-868b-ea421aaaa00d
2008-10-21 20:59:50 +00:00