Commit Graph

194 Commits

Author SHA1 Message Date
Pause for Affliction
e1d1878108 Fix memory leak that the rpmalloc assert warns of (#5776) (Fixes #5733)
Hack to take care of the assertion sent by the rpmalloc memory manager. Creates a static "free" function for NotePlayHandleManager and then shoves it right before the program ends.

Co-authored-by: Pause for Affliction <47124830+Epsilon-13@users.noreply.github.com>
2020-11-10 12:40:53 +01:00
Tres Finocchiaro
dc78b15a03 Add Windows JACK support (#5716)
Add Windows JACK support
Also adds JACK as a submodule
2020-10-30 16:57:20 -04:00
Spekular
a6d0b460fc Don't define NOMINMAX if it's already defined (#5678)
Co-authored-by: Dominic Clark <mrdomclark@gmail.com>
2020-09-18 18:48:39 +02:00
Spekular
f6eeaba076 Suppress windows.h's min and max macros, allowing use of numeric_limits's max
Co-authored-by: Dominic Clark <mrdomclark@gmail.com>
2020-09-18 16:38:42 +02:00
Hyunjin Song
c83c9bf54f Merge branch 'stable-1.2'
# Conflicts:
#	.travis.yml
#	CMakeLists.txt
#	src/core/Track.cpp
2020-07-05 11:27:33 +09:00
Hyunjin Song
24eb2304fd Add a CMake option for deploying Qt translations 2020-07-04 20:39:04 +09:00
bahaokten
c3e056a21d Implement compress action for commandline use (#5341) 2020-05-19 19:02:01 +02:00
Hussam al-Homsi
abf3530d33 Return EXIT_SUCCESS instead of 0 in main 2019-12-15 00:50:43 -05:00
Hyunjin Song
7ebaa0e211 Merge branch 'stable-1.2'
# Conflicts:
#	data/locale/pl.ts
#	include/SongEditor.h
#	plugins/vst_base/CMakeLists.txt
#	src/core/Song.cpp
#	src/gui/editors/SongEditor.cpp
2019-10-21 11:18:39 +09:00
David Carlier
732448c392 FreeBSD build version 2019-10-18 16:52:38 +02:00
RossGammon
4c2d8941dc Fix some spelling errors in lmms (#5151) 2019-08-26 09:09:05 +08:00
Hyunjin Song
231a8407e8 Merge branch 'stable-1.2'
# Conflicts:
#	.travis.yml
#	.travis/linux..script.sh
#	.travis/linux.win32.script.sh
#	.travis/linux.win64.script.sh
#	.travis/osx..install.sh
#	.travis/osx..script.sh
#	data/locale/en.ts
#	data/locale/id.ts
#	include/Graph.h
#	include/VstSyncController.h
#	include/lmms_math.h
#	plugins/vst_base/RemoteVstPlugin.cpp
#	src/core/RemotePlugin.cpp
#	src/core/Song.cpp
#	src/core/Track.cpp
#	src/gui/SubWindow.cpp
#	src/gui/widgets/Graph.cpp
2019-02-24 20:45:52 +09:00
Javier Serrano Polo
e94d1c91e9 Move QT_X11_NO_NATIVE_MENUBAR to code (#4818)
Set Qt::AA_DontUseNativeMenuBar
Remove QT_X11_NO_NATIVE_MENUBAR from desktop launcher
2019-02-11 19:03:50 +00:00
Hubert Figuière
bbedfa9ec5 Fix Linux HiDPI handling
Fix HiDPI order of operations, remove shortcut technique
2019-02-09 04:41:24 +00:00
Javier Serrano Polo
b28d405240 Disable built-in NaN handler through hidden setting (#4787)
* Disable built-in NaN handler through hidden setting

* Reuse code
2019-01-31 23:12:45 +01:00
Hyunjin Song
e116cc0701 Allow console output on Windows if available (#4719) 2019-01-10 15:13:30 +09:00
Hyunjin Song
4252f755c2 Merge branch 'stable-1.2'
# Conflicts:
#	cmake/nsis/CMakeLists.txt
#	src/core/ProjectRenderer.cpp
#	src/tracks/Pattern.cpp
2018-10-29 16:20:58 +09:00
Umcaruje
8154f886ed Update the LMMS logo and mimetypes (#4519)
* Update the LMMS logo and mimetypes

* fix bmp for nsis installer

* Update window and About icons, rename icons, change the file association logic

* Fix NSIS

* Revert nsh patch

* Fix small icon

* Always write DefaultIcon in the registry

* Fix file permissions

* Fix nsis branding

* Fix nsis branding #2

* update the icon windows and linux

* Update apple icon, add windows visual manifest

* try to fix windows installation

* typo

* typo 2

* Set small logo to conform to 48x48 grid
2018-09-24 11:09:49 +02:00
Hyunjin Song
4069aaada2 Merge branch 'stable-1.2'
# Conflicts:
#	.travis/osx..install.sh
#	CMakeLists.txt
#	cmake/apple/install_apple.sh.in
#	doc/lmms.1
#	include/VstSyncController.h
#	plugins/carlabase/carla.h
#	plugins/vestige/vestige.cpp
#	plugins/vst_base/CMakeLists.txt
#	plugins/vst_base/RemoteVstPlugin.cpp
#	plugins/vst_base/Win64/CMakeLists.txt
#	plugins/zynaddsubfx/zynaddsubfx
#	plugins/zynaddsubfx/zynaddsubfx/src/Misc/QtXmlWrapper.cpp
#	src/core/Song.cpp
#	src/core/main.cpp
2018-09-18 09:54:38 +09:00
Johannes Lorenz
a5a13b1256 Restructure help
* Allow actions (dump, render*, upgrade) without minuses
* Restructure help in CLI
* Restructure help in man pages
2018-09-12 22:25:33 +02:00
Lukas W
da1c78ce86 Remove Qt4 compatibility code 2018-06-17 12:47:12 +02:00
Lukas W
d42a685007 Refactoring: Remove duplicate code (#4310) 2018-04-25 18:49:39 +02:00
Lukas W
8f3ab4b1b0 Merge branch 'master' into fix/msvc
# Conflicts:
#	plugins/LadspaEffect/CMakeLists.txt
#	plugins/Xpressive/Xpressive.cpp
#	plugins/opl2/CMakeLists.txt
#	plugins/papu/CMakeLists.txt
#	plugins/xpressive/CMakeLists.txt
#	src/CMakeLists.txt
2017-11-22 17:34:22 +01:00
Lukas W
313d43bc16 MSVC: Show compiler version in AboutDialog
Make AboutDialog support MSVC compiler info so we can use a screenshot of
it to brag with on #devtalk
2017-11-22 13:54:19 +01:00
Lukas W
68c85c8e05 Merge branch 'stable-1.2' 2017-10-30 11:07:05 +01:00
Lukas W
8d6cb120b9 Replace MemoryManager implementation with rpmalloc (#3873)
* Replace MemoryManager implementation with rpmalloc
    Fixes #3865
* Travis: Specify OSX image for Qt5 build
2017-10-18 17:02:40 +02:00
Levin Oehlmann
e9a4063119 Add FLAC export and related options (#3731)
* Add FLAC export, based on WAV renderer

* Depend on sndfile>=1.0.18 (previously >=1.0.11)

* Add compression option to FLAC export, if available.

The code related to compression is only generated if LMMS_HAVE_SF_COMPLEVEL is defined(libsndfile>=1.0.26).

* Save into the correct file extension upon single-export.

* Use unique_ptr in FLAC renderer and be more expressive about involved types.

* Use unique_ptr and remove manual memory management in ExportProjectDialog

* Add 'flac' format info to --help and manpage
2017-08-04 07:19:39 +09:00
Oskar Wallgren
4402ca95f2 Fixes to recover file system (#3722)
Don't auto-save while playing by default. On weaker machines (xp?) we
see glitches so better turn this on after need.

Remove the last of Limited Sessin which was removed in 290556e.

[cherry-picked from stable-1.2]
2017-07-30 14:33:30 +02:00
Oskar Wallgren
2e841e4917 Fixes to recover file system (#3722)
Don't auto-save while playing by default. On weaker machines (xp?) we
see glitches so better turn this on after need.

Remove the last of Limited Sessin which was removed in 290556e.
2017-07-30 11:43:48 +02:00
Hyunin Song
cc3822141e Merge branch 'stable-1.2' into master (@liushuyu) 2017-07-15 08:08:07 +09:00
Michael Gregorius
51dd094403 Add CMake option to enable the debugging of floating point exceptions
Add a new CMake option WANT_DEBUG_FPE which adds the define
LMMS_DEBUG_FPE if activated. Extend lmmsconfig.h.in with regards to that
define. Include information about development options to the CMake
output.

Install a signal handler to trap floating point exceptions when starting
LMMS in case it is compiled using the option described above. The
current implementation of the signal handler prints a stack trace and
then exits the application.

Currently this option is only enabled for Linux builds due to
uncertainty with regards to which of the needed headers are supported by
Windows and Apple.
2017-07-12 21:51:48 +02:00
Michael Gregorius
842c7194b0 Implement command line export for MP3 (#3641)
Add the option 'mp3' to the format switch (-f / --format) if LMMS is
compiled with MP3 support. Add the new switch 'mode' which can be used
to set the stereo mode used for the MP3 export.

Adjust the man page for the new options.
2017-06-18 13:59:48 +02:00
Oskar Wallgren
a371ff0ea1 Some fixes to recent files (#3621)
* Add a factory default data/projects/templates/default.mpt. Fixes #528
* On launch, if the last project was a template we create a new project (default.mpt) instead.
* If there is a recovery file present and you discard it we create a new project as the project launched could be defective or, if .lmmsrc.xml wasn't written, an earlier project.
2017-06-10 20:38:17 +02:00
Oskar Wallgren
290556e43d Remove Limited Session 2017-05-13 14:58:14 +02:00
Michael Gregorius
d5fc38ebd9 Simplification of code and structure in the area of the file export
Pull the class OutputSettings out of the class ProjectRenderer so that
it can be used in other contexts as well. Also move the enum
ProjectRenderer::Depth into the new class OutputSettings and rename it
to BitDepth. Adjust all places that referenced
ProjectRenderer::OutputSettings accordingly.

Adjust the two places where an instance of OutputSettings is created:
the main function and ExportProjectDialog::startExport.

Store an instance of OutputSettings in AudioFileDevice and remove
several members and methods which are now replaced by this instance. Add
a getter for the OutputSettings to AudioFileDevice. Storing an instance
of OutputSettings in the base class AudioFileDevice enables the
simplification of the following constructors and general code in the
following classes:
* AudioFileDevice
* AudioFileOgg
* AudioFileWave

Because OutputSettings contains everything related to sample rate, bit
rate settings and bit depth these parameters could be removed from the
parameter list of the aforementioned constructors.

Simplify the signature of the factory method AudioFileDeviceInstantiaton
(defined in AudioFileDevice.h) and reorder the parameters by significance.

Move the logic of how the minimum and maximum bitrate is calculated
using the nominal bitrate into AudioFileOgg::minBitrate() and
AudioFileOgg::maxBitrate(). Previously this was defined in the
constructor of ProjectRenderer where it does not belong as it an
implementation detail of the OGG export.

Remove the code that converted the bit depth enum to an integer from
ProjectRenderer as it is now solely represented as an enum.

Remove class members for the minimum and maximum bit rate from
AudioFileOgg and adjust the code in the implementation to use the values
stored in OutputSettings.
2017-05-12 18:26:42 +02:00
Michael Gregorius
515b28d044 Simplification of code and structure in the area of the file export
Pull the class OutputSettings out of the class ProjectRenderer so that
it can be used in other contexts as well. Also move the enum
ProjectRenderer::Depth into the new class OutputSettings and rename it
to BitDepth. Adjust all places that referenced
ProjectRenderer::OutputSettings accordingly.

Adjust the two places where an instance of OutputSettings is created:
the main function and ExportProjectDialog::startExport.

Store an instance of OutputSettings in AudioFileDevice and remove
several members and methods which are now replaced by this instance. Add
a getter for the OutputSettings to AudioFileDevice. Storing an instance
of OutputSettings in the base class AudioFileDevice enables the
simplification of the following constructors and general code in the
following classes:
* AudioFileDevice
* AudioFileOgg
* AudioFileWave

Because OutputSettings contains everything related to sample rate, bit
rate settings and bit depth these parameters could be removed from the
parameter list of the aforementioned constructors.

Simplify the signature of the factory method AudioFileDeviceInstantiaton
(defined in AudioFileDevice.h) and reorder the parameters by significance.

Move the logic of how the minimum and maximum bitrate is calculated
using the nominal bitrate into AudioFileOgg::minBitrate() and
AudioFileOgg::maxBitrate(). Previously this was defined in the
constructor of ProjectRenderer where it does not belong as it an
implementation detail of the OGG export.

Remove the code that converted the bit depth enum to an integer from
ProjectRenderer as it is now solely represented as an enum.

Remove class members for the minimum and maximum bit rate from
AudioFileOgg and adjust the code in the implementation to use the values
stored in OutputSettings.
2017-04-29 15:00:54 +02:00
Tres Finocchiaro
3dfd9794db Fix opening of project files on macOS (#3219)
- Double-click mmpz file in finder will now open properly on macOS
- Adds new MainApplication class for listening to QEvent::FileOpenEvent
- Queues open events until the application is ready to recieve them
- Closes #665
2017-03-17 21:53:36 -04:00
Lukas W
29f832034a Remove unused includes (#3429) 2017-03-16 11:35:18 +00:00
Jérôme Duval
80c5b7d906 Haiku fixes (#3399)
* Allow running as root on Haiku.
* include unistd.h for ::read and ::write.
* Link libnetwork on Haiku.
2017-03-04 15:31:28 -05:00
Oskar Wallgren
901fea51d0 Auto-save - Fix double negations and some cleanup 2017-02-13 22:19:01 +01:00
grejppi
9e85d7c66e update all copyright headers to the proper url (#3326) 2017-02-06 02:41:15 +02:00
Oskar Wallgren
c54171ba48 Option to allow auto save while playing (#3088)
* Option to allow auto save while playing
2017-02-01 17:05:32 +01:00
Oskar Wallgren
1f3947408d No newline after render (#3158) 2016-12-16 18:13:15 +01:00
Oskar Wallgren
a53fd2663b Improved file input validation. (#2523) 2016-09-05 12:17:40 +02:00
Umcaruje
c20c5207c8 Fix dialog button mismatch (#2908)
* Fix dialog button mismatch

* Change order in menu

* Make buttons the same role, so we have custom ordering

* Hide the exit button, add a close button to the dialog, change ordering

* Make the exit button not visible
2016-07-29 00:39:10 +02:00
Javier Serrano Polo
8d65ac5596 Destroy engine in text mode 2016-07-21 20:53:08 +02:00
Javier Serrano Polo
fa7d7a111a Synchronize with remote plugins using local sockets 2016-05-30 01:52:11 +02:00
midi-pascal
2a7bdf3fe8 Fix cmd-line help, add config option, use local lmmsrc file in dev (#2570)
* Fix command-line help, add --config option and use local lmmsrc file in dev mode

* Fix a typo in help screen for option --geometry (second dash missing)

* Replace tabs with spaces in help screen
Update man page

* Lineup items in help screen

* Accept both -geometry and --geometry as valid options
2016-04-23 23:27:34 +02:00
Oskar Wallgren
cfb2c7201f Auto save timer setting 2016-03-02 07:25:19 +01:00
Oskar Wallgren
0721b49a1c Show Main Window before loading/importing project 2016-02-14 00:40:33 +01:00