Commit Graph

2616 Commits

Author SHA1 Message Date
Krzysztof Foltman
9845de9d94 Initialise old-state variables to prevent "stuck" graphs.
(cherry picked from commit 2a795084ee9e73712a4b690b84158cc745ff1d30)
2010-08-31 11:31:06 +02:00
Markus Schmidt
62ba7d676b Add Sidechain Gate, rename Gate to Expander, cleanups etc.
(cherry picked from commit fd70348c38a139e6f90a7a20f833b5eb2b926694)
2010-08-24 09:28:50 +02:00
Tobias Doerffel
6e64bcfc42 SampleBuffer: for OGG files try with OGG Vorbis decoder first
This is workaround for a bug in libsndfile or our libsndfile decoder
causing some OGG files to be distorted. Therefore try the OGG Vorbis
decoder first if filename extension matches "ogg".

Closes #2957937.
2010-08-22 02:18:34 +02:00
Tobias Doerffel
32dbda5b33 ZynAddSubFX/QtXmlWrapper: fixed loading of oddly formatted presets
Some ZynAddSubFX presets have one or more leading blank lines which
confuses the QtXml module. Therefore dynamically remove characters from
the beginning of the data until we encounter a '<' character.

Closes #3047560.
2010-08-22 01:00:24 +02:00
Tobias Doerffel
8286c1031d PianoRoll: allow chaning volume and panning of step notes
There's no reason to not allow changing volume and panning of step notes
in PianoRoll. Therefore simply check whether the length is not equal to
zero (which might be disabled step notes) instead of checking for length
being greater than zero.

Closes #2836799.
2010-08-19 00:14:19 +02:00
Tobias Doerffel
46c20bdcbd PianoRoll: fixed messed up editing modes when pressing Ctrl
There were some bugs when pressing Ctrl while in SelectMode. Fix this
by always setting m_ctrlMode and m_editMode in keyPressEvent() when
Ctrl was pressed.

Closes #2854958 and #2836576.
2010-08-18 23:55:04 +02:00
Tobias Doerffel
2614474246 Song: reset global models in clearProject()
We have to reset global models such as tempo, master volume etc. before
clearing the global automation patterns attached to them. Fixes bug with
persistent automation on these controls when clearing project.

Closes #3046039.
2010-08-16 20:28:53 +02:00
Tobias Doerffel
23a3efcac0 MeterModel: clear global automation patterns in reset()
When resetting a MeterModel we also have to clear global automation
patterns attached to it. Fixes bug with persistent automation data on
e.g. time signature widget when clearing project.
2010-08-16 20:25:26 +02:00
Tobias Doerffel
9b280ffb3e Renamed all automation related files and classes to match new coding style
All automation-related files and classes have been renamed to match the
new coding style.
2010-08-16 20:21:18 +02:00
Tobias Doerffel
676a6fbad1 ControllerRackView: do not loose focus when adding controller
For an unknown reason the ControllerRackView looses focus when adding
a new controller. Fix this by explicitely calling QWidget::setFocus()
at the end of ControllerRackView::addController().

Closes #3046041.
2010-08-16 18:09:48 +02:00
Tobias Doerffel
9acb47a7a8 InstrumentTrackWindow: correctly disconnect from track's signals
We used QObject::disconnect() the wrong way leading to multiple
connections from InstrumentTrack::instrumentChanged() to
InstrumentTrackWindow::updateInstrumentView(). This resulted in
loading times being doubled each time you loaded a preset on the same
InstrumentTrack.

Closes #2934099.
2010-08-15 14:19:43 +02:00
Tobias Doerffel
65311ef2b4 InstrumentTrack: do not try to load "libconnection.so" in compat code
In compat code of InstrumentTrack::loadTrackSpecificSettings() also
check for nodeName being equal to ControllerConnection::classNodeName().
This avoids trying to load the non-existing instrument "connection".
In master branch this has been fixed ugly in commit 22c877d4 before,
however implement a cleaner solution which is also suitable for
backporting.

Closes #3021259.
2010-08-15 13:56:25 +02:00
Tobias Doerffel
d830e7f622 EffectView: fixed artifacts with semitransparent widget shadow
We must not set the Qt::WA_OpaquePaintEvent attribute when using a
semitransparent background image in paintEvent(). Fixes artifacts
in EffectView's shadowed border.
2010-08-15 12:40:10 +02:00
Tobias Doerffel
f4b84a6058 VstPlugin: use guarded pointer for pluginWidget
The pluginWidget of a VstPlugin (i.e. the VST editor) might be destroyed
outside VstPlugin's control resulting in a dangling pointer. This leads
to crashes for example when changing the model of an EffectView where a
VST plugin is attached, i.e. when re-opening a InstrumentTrackWindow of
an InstrumentTrack with a VST effect inside.

This can be fixed easily by using QPointer.

Closes #3045102.
2010-08-15 12:34:10 +02:00
Tobias Doerffel
311bc92bde SampleTrack: fixed non-functional solo and mute buttons
The SampleTrackView did not explicitely have a SampleTrack model
attached and thus trackView::modelChanged() was not called. This way
SampleTrackView's mute and solo buttons were not connected to the
according models of the SampleTrack model. Fix this by calling
setModel() in SampleTrackView::SampleTrackView() (as done in
constructors of other track types too) and overload the
SampleTrackView::modelChanged() method.

Closes #3043836.
2010-08-14 00:23:13 +02:00
Tobias Doerffel
114c1973e2 Renamed PATH_SEPARATOR to LADSPA_PATH_SEPARATOR and fixed it
Commit 4e9ebd09c6 introduced PATH_SEPARATOR
but with wrong syntax. Fixed this and renamed it to LADSPA_PATH_SEPARATOR.
2010-08-12 10:29:37 +02:00
Paul Giblock
1473bc5eac Bump required Qt version to 4.6.0
We now require qt-4.6.0 due to QProxyStyle.  I'm we can use some other
enhancements introduced since 4.4.0 anyways.
2010-08-11 21:51:16 -04:00
Paul Giblock
4e9ebd09c6 Use proper path seperator for LADSPA_PATH
According to http://www.ladspa.org/ladspa_sdk/shared_plugins.html,
LADSPA_PATH is supposed to be delimited by colons.  This patch does so,
except on Windows.  On Windows we use ';' instead of ':' since colon is
a legal character for a path.
2010-08-11 21:40:54 -04:00
Tobias Doerffel
2ed12b138d Default theme: improved tooltip appearence
Thanks to mikobuntu for this patch.
2010-08-11 17:30:21 +02:00
Tobias Doerffel
534c4debb5 ZynAddSubFX: save and restore settings of new knobs
When adding the new knobs for automatable parameters of ZynAddSubFX,
I forgot to include them in the save/load routines.
2010-08-11 00:45:55 +02:00
Tobias Doerffel
a0ef88908c CMakeLists: print warning about missing Mallets instrument instead of Stk
The Vibed plugin has nothing to do with STK. Instead the Mallets
instrument plugin is meant. Fixed.
2010-08-11 00:27:13 +02:00
Paul Giblock
9f2640946e Use QProxyStyle support in DefaultStyle
The specializations to utilize different styles is a nice idea, but it
is hard to discover which styles a user may have installed.
Additionally, it would be impossible to override a system style.  This
patch implemnts ClassicStyle as a QProxyStyle.

This additionally fixes the missing dependency on toolbar_bg. Utilize
CSS now.
2010-08-07 18:35:49 -04:00
Paul Giblock
69d3a3d748 Ignore target/; I like to install LMMS there
I like installing lmms into a target/ directory. Add an ignore rule for
it.
2010-08-07 18:33:28 -04:00
Tobias Doerffel
698f321e69 ResourceProvider+subclasses: added doxygen comments
Documented the whole ResourceProvider class and important parts of the
subclasses.
2010-08-07 00:07:54 +02:00
Tobias Doerffel
93681760d2 InstrumentTrackView: added one-window-mode + global piano focus
Added a one-window-mode which allows to have only one instrument track
window open at a time. The content of this window is replaced each time
you open a different track.

Furthermore added global reception and forwarding of key events to the
piano widget of the top-most instrument track window. This for example
enables the user to play test sounds while tweaking some effects in a
different subwindow.
2010-08-06 23:05:00 +02:00
Tobias Doerffel
1320741feb Added missing FileAssociation.nsh
Commit 07a7442758 includes the new file
FileAssociation.nsh which was not added in that commit. Fix this.
(cherry picked from commit ec19be69cd)
2010-08-06 01:39:27 +02:00
Tobias Doerffel
aceb283119 Win32/64 installer: associate LMMS project files with LMMS
Added some NSIS commands to associate LMMS project files with LMMS
during installation.
(cherry picked from commit 07a7442758)
2010-08-06 01:35:02 +02:00
Tobias Doerffel
5f131f1a69 Manpage: fixed duplicate help item and updated program description
Thanks to pgib who pointed out the duplicate help item for the
--interpolate option. Additionally updated the program description.
2010-08-06 01:29:35 +02:00
Tobias Doerffel
7b85371a38 More MinGW64 fixes
Some more trivial fixes for successfully compiling for Win64.
2010-07-28 21:26:21 +02:00
Tobias Doerffel
68abd34908 AutomatableModelView/ContextMenu: option for unlinking all controls
Integrated patch by Rodrigo Rodrigues da Silva which adds an option
to all AutomatableModelView's context menu allowing to unlink all
linked controls.
2010-07-28 21:25:30 +02:00
Tobias Doerffel
9e42d4388e ClassicStyle: template-based derivation from native style
First attempts to get away from QPlastiqueStyle as the default style
and instead dynamically use an overloaded version of the native style.
Still needs lots of tuning, especially regarding colors.
2010-07-28 21:21:11 +02:00
Tobias Doerffel
db8de3450c TextFloat: fixed size calculation in simple mode
The height of TextFloat objects was not sufficient e.g. when used as
tooltips for knobs (while changing their values). Fixed improper
geometry calculation and static values in TextFloat::paintEvent().
2010-07-28 20:13:19 +02:00
Tobias Doerffel
7a4f110af3 ZynAddSubFX: added knobs for MIDI controls
Added knobs for some MIDI controls that are recognized by ZynAddSubFX.
This allows to automate some basic parameters of ZynAddSubFX inside LMMS.
2010-07-28 19:57:58 +02:00
Tobias Doerffel
4d532371e7 Default theme: replaced background artwork with a more decent one
The previous blurry background artwork was reported to be quite
annoying. Therefore replaced it with a more decent one.
2010-07-26 16:15:00 +02:00
Tobias Doerffel
206c30ff73 AudioJack: do not use QVector in processCallback()
Using QVector involves calls to malloc & friends which are not RT safe
and thus must not be used in AudioJack::processCallback(). Instead
allocate the required array upon initialization.
(cherry picked from commit ae7a4e4c2f13432d39b13c25b66231bdd6a1cc65)
2010-07-26 15:54:46 +02:00
Tobias Doerffel
31b099d74e AudioJack: more optional code for AudioPort support
There's been some more code that is only required if AUDIO_PORT_SUPPORT
is set. Added according #ifdefs and fixed a typo in AudioPort support
code.
(cherry picked from commit e98726ae992c77fb2dfdb6668319b5521ff8aaef)
2010-07-26 15:54:40 +02:00
Tobias Doerffel
b0822212b0 Merge branch 'remote-plugin-fixes'
* remote-plugin-fixes:
  RemotePlugin: sleep in waitForMessage() when actively waiting for data
  RemotePlugin: better code order in sendMessage() + cleanups
  RemotePlugin: coding style fixes + inline keyword reduces
  RemotePlugin: smaller buffers for number to string conversions
  RemotePlugin: added branch prediction hints
2010-07-26 15:52:14 +02:00
Tobias Doerffel
278b70384e Merge branch 'zynaddsubfx-master'
* zynaddsubfx-master:
  FLTK/CMakeLists.txt: fix CMAKE_MODULE_PATH, don't use 3rdparty code
  ZynAddSubFX/FLTK: updated to SVN revision 7680
  ZynAddSubFX: check whether QDomDocument::setContent() succeeded
  ZynAddSubFX: completely reinitialize config after changing working dir
  ZynAddSubFX: set working directory before setting preset directory
  ZynAddSubFX/CMakeLists.txt: use global binary dir as last include dir
  ZynAddSubFX/CMakeLists.txt: remove accidently added subdirectory
  ZynAddSubFX: resynced with upstream (version 2.4.1)
  ZynAddSubFX/FLTK: updated to SVN revision 6970
  Misc: Minor changes to filter_ to reduce warnings (cherry picked from commit e2b1eb9b1077e6516c0cc4e2283e5c886bed0e58)
  Cleanup: Separated Presets into Presets/PresetsArray
  ZynAddSubFX: fixed commit d61283ad93
  ZynAddSubFX/FLTK: updated to SVN revision 6943
  small changelog fix (cherry picked from commit c8d411b5f7e7a295286c1ac2c09ae22f15a1db51)
  VirKeyboard: Fixed possible segfault
  small changes on Bandwidth on Reverb (cherry picked from commit d0b0a4e00a44559a4e78035fd04568bd4bab9651)
  ZynAddSubFX: new QtXmlWrapper, a QtXml-based XML backend for ZASF
2010-07-26 15:14:38 +02:00
Tobias Doerffel
730798317d FLTK/CMakeLists.txt: fix CMAKE_MODULE_PATH, don't use 3rdparty code
Fix setting CMAKE_MODULE_PATH to respect the previous content of this
variable. Furthermore do not process subdirectories with 3rdparty code
even if no libjpeg, libpng or libz was found on the target system.
2010-07-26 15:12:17 +02:00
Tobias Doerffel
f730ed7acb Merge branch 'master' into zynaddsubfx-master
Conflicts:
	plugins/zynaddsubfx/CMakeLists.txt
2010-07-26 15:12:06 +02:00
Tobias Doerffel
c105c2e606 ZynAddSubFX/FLTK: updated to SVN revision 7680
Updated FLTK to SVN revision 7680 of branch-1.3:

    - Fixed X11/XDBE double buffering (STR #2152, #2197)
    - Added new label and image alignments (STR #2269)
    - Added documentation for event delivery (STR #1983)
    - Fixed menu and tooltip window animation bug under X11 (compiz)
      by setting an appropriate window type (STR #2082)
    - redesigned CMake files (STR #2317).
    - Fixed max. fd calculation, if USE_POLL is enabled (STR #2324)
    - Fixed clipping for offscreen rendering (OSX, STR #2330)
    - Added printing support (Fl_Printer class and friends) for native
      printing on Windows and Mac OS X, PostScript printing on X11
      with CUPS or lp, and PostScript file output on all platforms
    - Added basic Fl_Device abstraction layer for all drawing functions
    - Fixed possibility of wrong flags() in Fl_Window::iconlabel()
      (STR #2161)
    - Fixed Scrollbar events when max is less than min (STR #2283)
    - Added argument-less constructor in Fuid Widget Class
    - Fixed menu item counting issue in Fluid (STR #2322)
    - Added Fl_Menu_::find_item by callback
    - Removed redundant Fl_Group casts
    - Added indexing to Fl_Preferences
    - Integrated default menu into Demo test app
    - Added automated Xcode IDE file generation to Fluid
    - Fixed lost top item in Fluid's tree browser (STR #2233)
    - Fixed crash in test/Editor when freeing buffer
      too soon (STR #2294)
    - Fixed Fl_Preferences Cygwin wide character bug (STR #2164)
    - Fixed sorting in Fl_Browser - last item would not
      be sorted (STR #2300)
    - Fixed window levels in OS X Cocoa (STR #2316)
    - Added jpeg support to Fluid image() element
    - Added loading jpeg images from memory
    - Added binary data type to Fluid
    - File chosser preview would hang if a device was choosen
    - Replaced _WIN32 symbols that had come with UTF-8 and the
      new Fl_Table widget with WIN32
    - Fixed a buffer overflow in fl_utf8from_mb() (STR #2279)
    - Fixed a Windows GDI leak when testing alpha blending capabilities
    - Fixed a name conflict with new (VS 2008 Express) winsock2.h
      versions and another conflict that produced compile errors
      with VS 2008 Express (STR #2301)
    - Widgets now remove stale entries from the default callback
      queue when they are deleted (STR #2302)
        - Moved OS X code base to the more moder Cocoa toolkit thanks
          to the awesome work of Manolo Gouy (STR #2221)
        - Added template to generate new projects with Xcode.
    - New widgets: Fl_Tree, Fl_Table, Fl_Native_File_Chooser
    - added Fl_Menu_ methods: insert(), find_index(), clear_submenu()
    - Bug reports/enhancements now refer to the STR form http://www.fltk.org/str.php
2010-07-26 15:11:11 +02:00
Tobias Doerffel
4ea8b9d9c2 Merge branch 'mingw64-compat-fixes'
* mingw64-compat-fixes:
  CMakeLists.txt: install libFLAC-8.dll for win32 build
  Improved support for MinGW cross compile builds
2010-07-26 15:04:00 +02:00
Tobias Doerffel
7b0b9997b9 CMakeLists.txt: install libFLAC-8.dll for win32 build
After updating some external libraries, libFLAC-8.dll is now required
as well, so install it into the win32 package.
(cherry picked from commit e8c8054535)
2010-07-26 15:03:53 +02:00
Tobias Doerffel
eaebe3cb84 ZynAddSubFX: check whether QDomDocument::setContent() succeeded
When saving settings in ZynAddSubFxInstrument::saveSettings() check
whether the call to QDomDocument::setContent() succeeded. Otherwise
LMMS crashes when calling QDomDocument::importNode() later due to a bug
in QtXml.

Fixes crash in the unlikely situation that transmission of XML data from
the ZynAddSubFX plugin to LMMS somehow failed.
2010-07-25 20:47:04 +02:00
Tobias Doerffel
c6640ffd37 ZynAddSubFX: completely reinitialize config after changing working dir
Custom changes made to the config after first initialization got lost
after setting work directory. Therefore moved custom initialization into
a separate function which is called after setting work directory.
2010-07-25 20:42:26 +02:00
Tobias Doerffel
79abf9ca85 ZynAddSubFX: set working directory before setting preset directory
Set working directory before setting preset directory as otherwise
the changes made by LocalZynAddSubFx::setPresetDir() will get lost.
2010-07-25 20:14:20 +02:00
Tobias Doerffel
9984e47b60 Merge branch 'master' into zynaddsubfx-master 2010-07-25 20:13:59 +02:00
Tobias Doerffel
89451dcd3b ZynAddSubFX/CMakeLists.txt: use global binary dir as last include dir
The local binary directory should be more prioritized regarding
file inclusions. Otherwise for example the global embedded_resources.h
gets included instead of the plugin-specific one.
2010-07-25 20:09:41 +02:00
Tobias Doerffel
ac1a286dff ZynAddSubFX/CMakeLists.txt: remove accidently added subdirectory
The src/Tests/ directory was not copied from upstream, therefore do not
reference it in CMakeLists.txt.
2010-07-25 19:37:05 +02:00
Tobias Doerffel
a55d71cf7f RemotePlugin: use debugMessages() instead of fprintf for error messages
Printing error messages using fprintf() does not help much with
RemotePlugins as their stdout/stderr usually is not redirected to the
parent process. Instead use the debugMessage() function.
2010-07-25 19:27:27 +02:00