Commit Graph

6671 Commits

Author SHA1 Message Date
Lukas W
4ff993e2a4 Update CircleCI to Ubuntu 18.04 2018-04-28 11:15:09 +02:00
Lukas W
d42a685007 Refactoring: Remove duplicate code (#4310) 2018-04-25 18:49:39 +02:00
Matt Kline
ffccd6ddd2 Use atomics to count shared_object without locks
C++11 (and subsequent C++ standards) provide portable ways to issue
atomic hardware instructions, which allow multiple threads to load,
store, and modify integers without taking a lock. The standard also
defines a memory model that lets you express the ordering guarantees
around these atomic operations. (x86 is relatively strongly-ordered, but
many other common architectures, such as ARM, are free to reorder loads
and stores unless told not to.)

This patch removes the lock from shared_object and replaces it with the
standard thread-safe reference counting implementation used in
C++'s std::shared_ptr, Rust's std::sync::Arc, and many others.

Additional resources on the topic:
https://assets.bitbashing.io/papers/concurrency-primer.pdf
https://www.youtube.com/watch?v=ZQFzMfHIxng
2018-04-25 12:50:44 +02:00
Hussam Eddin Alhomsi
f7a0553e6a Responsive "Effects chain" & "User controller" LEDs (#4297) 2018-04-24 11:25:49 +03:00
Lukas W
418bcce402 AppImage: Use wget -N instead of mtime logic 2018-04-22 14:05:20 +02:00
Lukas W
d9ea65ad7f Fix AppImage build with missing fuse support 2018-04-22 14:05:20 +02:00
Lukas W
19bc0439a6 Fix mingw pkg-config 2018-04-22 14:05:20 +02:00
Lukas W
138281badf Add CircleCI config.yml 2018-04-22 14:05:20 +02:00
Colin Wallace
3401de4a83 Use themed file dialogs everywhere. (#4298)
Previously lmms used themed dialogs for project saving/opening, but not
when editing settings (edit -> settings).

With this change, the settings editor also uses themed dialogs.
2018-04-20 19:01:11 -07:00
Tres Finocchiaro
ef264eafa7 Re-enable upstream libgig formulae (#4304) 2018-04-20 15:45:35 -04:00
Lukas W
78a7f4563f Remove -fstrength-reduce compiler options
Clang doesn't support -fstrength-reduce and warns when it's used. GCC will
specify it by default when using -O2, which is  implied by -O3.
2018-04-18 08:22:46 +02:00
Colin Wallace
da126bfb5c Use range-based for loops + fix const correctness 2018-04-17 09:17:33 +02:00
Tres Finocchiaro
ae0dd21df3 Upgrade Calf LADSPA plugins to 0.90 (#3987)
Upgrade Calf LADSPA plugins to 0.90
2018-04-15 21:38:37 -04:00
Hyunjin Song
0850b78104 Try git fetch for unadvertised object error
Fixes fetching submodules from non-default branches.
2018-04-13 13:50:12 +09:00
gnudles
0c0bfbd060 Add the function randsv to Xpressive (#4089)
Adds the function randsv, which gives you persistent upon note plays and waveforms transit in the gui.
Moves lmms exprtk submodule back to latest upstream
2018-04-12 11:05:42 -04:00
Tres Finocchiaro
9af7821eb1 Add PerfLog (#3974)
Add `PerfTime` class representing a point in CPU time and `PerfLogTimer`, used for measuring and logging a time period. Used in `ProjectRenderer::run()
2018-04-03 13:37:25 +02:00
Colin Wallace
ca3a7f3015 Remove unused method and extraneous state from AutomatableModelView (#4258)
* Remove DataType.

An AutomatableModel should not need to know what concrete type it is.
Use virtual methods and implement them in the derived class instead of
testing the type in the base class.

* Remove unused method

* Remove m_hasLinkedModels

We can compute it on-the-fly with very little cost, and doing so
simplifies the code.

* Remove extra 'public:'

Probably a remnant of merging master
2018-03-28 00:03:10 -07:00
liushuyu
47ab8edef8 i18n: update translation file 2018-03-23 13:11:04 -06:00
Tres Finocchiaro
7bdb607391 Add ZynAddSubFX status (#4264) 2018-03-21 15:52:57 -04:00
Colin Wallace
56b4740146 Copy/paste model values to system clipboard
Previously they were copy/pasted internally, and not visible across LMMS
instances.
2018-03-20 00:43:15 -07:00
Colin Wallace
7593b2ee58 Replace macro magic with a template base class 2018-03-20 00:42:21 -07:00
Hyunin Song
7cf1be1dc5 Bump ZynAddSubFX submodule 2018-03-19 07:28:21 +09:00
Colin Wallace
bf1b61023c Use ampToDbfs instead of 20*log10 x.
The function's there (in lmms_math.h) for a reason :)
2018-03-16 20:35:08 -07:00
Colin Wallace
b706ee208d Replace more instances new/delete with owning types (#4245)
* Use owning types when possible.

Note: the QByteArray s is detached to mimic previous behavior;
detach() guarantees that the QByteArray uniquely owns its data, since
otherwise it's COW. This may be relevant in case Plugin:instantiate
modifies s.data() -- this way the original QString is safe.

* Make m_filter a unique_ptr.

* Make m_activeRenderer a unique_ptr

* use std::string instead of strcpy + buffers
2018-03-15 18:46:55 -07:00
Colin Wallace
80ce77fc91 Merge pull request #4249 from Wallacoloo/refactor/ModelViewTypes
Make *ModelView a templated type instead of macro-based class
2018-03-13 22:54:34 -07:00
Colin Wallace
7adad4790e Merge pull request #4063 from Sawuare/Widgets
Use "Set value" as title for QInputDialog of some widgets.
2018-03-13 21:52:57 -07:00
Colin Wallace
45f9fc03c2 Make *ModelView a templated type instead of macro-based class.
Among other things, this makes it easier to grep for FloatModelView,
BoolModelView, IntModelView in the code base.
2018-03-13 20:57:34 -07:00
Colin Wallace
748cc0e3e3 Merge pull request #4235 from Wallacoloo/refactor/use-unique-ptr
refactor: Use unique_ptr for memory management
2018-03-12 22:45:59 -07:00
Colin Wallace
ec3c9cdf10 Only use specific std:: items we need.
Also, fix `using std::unique_ptr` to `using std::make_unique` in
stdshims.h
2018-03-11 09:07:00 -07:00
Colin Wallace
c8d9cc02d5 Use namespace std instead of prefixing {move,unique_ptr} with std::. 2018-03-10 23:30:30 -08:00
Colin Wallace
ba278becbd Don't use #pragma; don't redefine make_unique if using C++14 2018-03-10 23:29:22 -08:00
Colin Wallace
a9d097cad9 Prefer emplace_back; take argument by value.
We copy the QString, so it makes sense to accept it by value and _move_
it into the collection instead. This causes the caller to move any
rvalue QString into the function, and then the QString is never actually
copied at all.
2018-03-10 16:08:21 -08:00
liushuyu
8120db292a i18n: update strings 2018-03-10 13:25:58 -07:00
liushuyu
c8ba4c548c Merge remote-tracking branch 'upstream/stable-1.2' 2018-03-10 13:23:02 -07:00
Colin Wallace
876615e3a3 Warn when compiling with C++14 or greater. 2018-03-10 00:28:58 -08:00
Colin Wallace
0f993895d4 Fix missing includes 2018-03-09 23:48:07 -08:00
Colin Wallace
fd871e46c9 refactor: Use unique_ptr for memory management 2018-03-09 23:03:19 -08:00
Tres Finocchiaro
d2c370a953 Enable FPE on Mac (#4213)
Allow #3687 to work on Mac
2018-03-09 11:41:17 -05:00
Orbital Ink
e9b83378f9 Typo - Phrygolydian to phrygian (#4223) 2018-03-07 16:44:16 +01:00
Hyunin Song
0a5d056bdb Merge branch 'stable-1.2'
# Conflicts:
        #       .travis/osx..install.sh
        #       .travis/osx..script.sh
        #       cmake/linux/package_linux.sh.in
        #       data/locale/en.ts
        #       src/core/CMakeLists.txt
        #       src/core/ProjectRenderer.cpp
        #       src/gui/FileBrowser.cpp
2018-03-07 23:54:28 +09:00
Hyunjin Song
ec0f47e9e3 Fix AppImage tool path 2018-03-07 23:27:28 +09:00
tresf
38b69a7e3a Fix incrementation of LcdSpinBox QInputDialog
Closes #4218
2018-03-06 14:35:24 -05:00
Hyunjin Song
788c990ae1 Remove MIDI connection from factory files (#4207) 2018-03-06 09:57:40 +09:00
Hyunjin Song
533f475943 Ensure correct length of automation patterns in BB editor (#4212)
When the length of an automation pattern is an integer multiple of one bar, it was displayed with wrong length. This commit fixes the bug.
2018-03-06 09:57:16 +09:00
Tres Finocchiaro
1d63bd3b4e Use Canonical Paths for Relative Paths Calculations (#4211)
Fix redundant path elements
Closes #4173
2018-03-03 22:46:07 -05:00
Hyunjin Song
926b6542ae Don't restore audio device during exporting (#4083)
Fixes deadlock on multi-track export with SDL
2018-03-02 13:28:56 +09:00
Tres Finocchiaro
9f1c73bc12 Fix theme after upgrade
Closes #4199
2018-03-01 20:37:04 -05:00
Oskar Wallgren
063a505026 Turn journalling off when moving fader (#4147) 2018-03-01 19:03:02 +01:00
tresf
a8e8746011 Add support for .pat previews, drag+drop
Closes #4202
2018-02-28 21:34:45 -05:00
Dominic Clark
31775752b4 Fix rendering cancellation with VSTs (#4189) 2018-02-27 16:08:42 +01:00