1
0
Fork 0
mirror of https://github.com/juce-framework/JUCE.git synced 2026-01-09 23:34:20 +00:00
Commit graph

13124 commits

Author SHA1 Message Date
Tom Poole
b08520c2de JUCE version 7.0.1 2022-07-04 15:35:30 +01:00
reuk
4b05efd7b7 Windows: Fix nullptr dereference when reopening plugin windows
On Windows, when opening a plugin editor, destroying the plugin
instance, and then creating a new instance and opening its editor, the
plugin would crash because the VBlankDispatcher singleton could not be
recreated.
2022-07-04 15:35:01 +01:00
Tom Poole
f82430c746 Resave all projects 2022-07-04 15:33:44 +01:00
Tom Poole
fd8607302d Bump version number to 7.0.1 2022-07-04 15:07:43 +01:00
attila
f5d2642874 Linux: Fix resizing issue with the PopupMenu
Previously opening a PopupMenu and then clicking somewhere outside
the application would cause the mouse button representation to be
stuck in a down state.
2022-07-04 11:38:33 +01:00
attila
5cfef70994 Projucer: Fix ARA project template 2022-07-02 10:46:36 +02:00
attila
938c66c83d Linux: Fix window positioning on HiDPI screens
In 6f3fb5a29f windowBorder member of
LinuxComponentPeer was changed to mean the logical size of the border
that is independent of the current scale factor. This was done to fix a
bug and make it consistent with the bounds member, which is also
independent from the scale factor.

This change wasn't taken into account in XWindowSystem::setBounds()
causing a positioning bug.
2022-06-30 15:10:15 +00:00
attila
c2ec851c2c VST3 Client: Avoid AudioBuffer assertion when plugin has no audio channels 2022-06-30 15:10:15 +00:00
attila
6ea3788a3b VST3 Client: Fix warning when PreferredChannelConfigurations are set 2022-06-30 15:10:15 +00:00
attila
27924e4996 Viewport: Stop ongoing physical drag upon user interaction
An animated drag operation will now stop if the user interacts with
the content area again before the animation is finished. It is also
stopped if the user interacts with the scrollbars.
2022-06-30 15:10:15 +00:00
Tom Poole
c0350c54ab macOS: Fix CGMetalLayerRenderer assertions and resizing 2022-06-30 15:38:39 +01:00
reuk
2d7c65589d Projucer: Create LV2 install directory when necessary 2022-06-29 19:49:42 +01:00
Tom Poole
a20e8d8592 macOS/iOS fixed a rendering hang with JUCE_COREGRAPHICS_RENDER_WITH_MULTIPLE_PAINT_CALLS 2022-06-28 11:22:17 +01:00
Tom Poole
bd7166893f Update the README to include LV2 support 2022-06-28 11:22:17 +01:00
reuk
bcad7f1456
AudioPlayHead: Set playing/recording/looping flags in CurrentPositionInfo 2022-06-27 20:38:47 +01:00
reuk
f3ca634049
VST3 Client: Fix missing prototype warning 2022-06-27 14:38:26 +01:00
reuk
57a5ed7999
Projucer: Fix relative paths in LV2 plugin builds on macOS 2022-06-27 13:42:18 +01:00
reuk
e7581fa947
CMake: Silently disable AAX builds on unsupported platforms 2022-06-27 12:10:38 +01:00
reuk
e86b886038
UnitTestsDemo: Enable LV2 hosting, so that the Projucer correctly sets up include paths 2022-06-27 12:10:38 +01:00
reuk
6dc002b89c
Demos: Fix missing prototype warning 2022-06-24 19:59:44 +01:00
reuk
7eb99ed8ec
Grid: Avoid hangs when positioning auto-placement items that are too large for the explicit grid
Previously, positioning such an item would hang while trying to find an
appropriate position for the item, because no position in the grid was
suitable, and implicit cells in the layout direction would be added
until a viable position was found.

We now ensure that there are enough cells in the cross direction to hold
each of the auto-placement items before trying to position those items.
2022-06-24 18:53:59 +01:00
reuk
9c0786e4fe AccessibilityTextHelpers: Fix MSVC/C++20 build issues 2022-06-24 18:37:27 +01:00
luz paz
0e66bb5203 ARAModelObjects: Fix docstring typos 2022-06-24 18:37:27 +01:00
Alain Martin
c254a71383 Projucer: Fix initialisation of MSVCBuildConfiguration::lv2BinaryLocation 2022-06-24 18:37:27 +01:00
reuk
1539d9a12a Projucer: Fix relative paths in LV2 plugin builds 2022-06-24 18:37:27 +01:00
reuk
6265f86d33 Accessibility: Add missing accessibility handler in TreeView Item 2022-06-24 18:37:27 +01:00
reuk
a1b3ce6aaa AudioPlayHead: Fix docstring typo 2022-06-24 18:37:27 +01:00
reuk
aa23b2ed09 audio_basics: Add missing newline at end of file 2022-06-24 18:37:27 +01:00
reuk
a2dc45d6a8 VST3 Client: Fix missing-prototype warning 2022-06-24 18:37:27 +01:00
reuk
0da6c3b434 VST3 Host: Tidy up plugin creation code 2022-06-24 18:37:26 +01:00
reuk
0e33d4509d VST3 Host: Avoid calling getBusInfo from the processing thread 2022-06-24 18:37:26 +01:00
reuk
2f0a0e9387 Windows: Fix nullptr dereference when reopening plugin windows
On Windows, when opening a plugin editor, destroying the plugin
instance, and then creating a new instance and opening its editor, the
plugin would crash because the VBlankDispatcher singleton could not be
recreated.
2022-06-24 18:37:26 +01:00
attila
09d1e97bf1 ARA: Add documentation 2022-06-24 17:40:35 +02:00
attila
966c8c4c11 ARA Client: Make model object creation functions virtual 2022-06-24 11:21:34 +02:00
Tom Poole
2b16c1b94c JUCE version 7.0.0 2022-06-21 08:56:28 +01:00
Tom Poole
1a578f787c Resave all projects 2022-06-21 08:51:47 +01:00
Tom Poole
8b399998b4 Bump version number to 7.0.0 2022-06-21 08:38:55 +01:00
Tom Poole
37d6161da2 Merge the develop and master branches 2022-06-21 08:20:20 +01:00
reuk
cee1206fd1 StandardHeader: Include <utility> for GCC 12 compatibility 2022-06-21 08:19:50 +01:00
Tom Poole
784f82ffec
Fix some Doxygen issues 2022-06-16 16:19:10 +01:00
reuk
1b88df3c55
ExtensionsVisitor: Add missing defaulted special member functions 2022-06-16 16:19:10 +01:00
reuk
752c913cd2
AudioPlayHead: Move HostTimeNs out of AudioProcessor, to consolidate timing information 2022-06-16 16:19:09 +01:00
reuk
8fbd99c424
AudioPlayHead: Improve granularity of position info 2022-06-16 16:18:20 +01:00
reuk
891daf1332
Optional: Update implementation to improve debugging experience
This patch also makes Optional public to end users.
2022-06-16 16:17:53 +01:00
reuk
1b88362048
LV2 Host: Allow sending transport information to ports without "control" designation
The X42 stepseq.lv2 has an input atom port without the "control"
designation, but that still supports time:Position events. In order to
support this plugin, JUCE hosts will now send position info to any input
atom port that is marked as supporting this event type.

The host sync feature in stepseq.lv2 also requires the bar count to be
included in the position information.
2022-06-16 16:17:52 +01:00
reuk
b060d5d947
AudioPluginHost: Fix occasional deadlocks when scanning plugins out-of-process
Observed on Ubuntu Linux. Occasionally, the loop checking the
condition_variable in the plugin scanner would spin indefinitely.

The cause appears to be that handleMessageFromWorker could be
called immediately after sendMessageToWorker, but before locking the
mutex. If this happens, gotResponse will be false during every call to
condvar.wait_for, and the loop will never exit.

The rewritten version of the scanner always resets gotResult immediately
after the condvar is woken successfully, so a call to
handleMessageFromWorker or handleConnectionLost will always cause a
subsequent call to condvar.wait_for to exit successfully.

The Superprocess class has also been refactored and extracted to avoid
a circular dependency between Superprocess and CustomPluginScanner.
2022-06-16 16:17:52 +01:00
attila
2738ed6fa3 ARA Host: Add missing documentation 2022-06-16 14:41:41 +02:00
Tom Poole
83176e23ca Add a version ID macro 2022-06-16 11:16:33 +01:00
reuk
964a1aa870
VST3 Client: Allow host to enable/disable buses at will
Previously, activateBus would fail if the new BusesLayout wasn't
supported, as reported by isBusesLayoutSupported. However, according to
the VST3 docs, a host is allowed to enable and disable buses in any
combination, and the plugin should be able to handle this gracefully.

The ability to enable/disable individual buses without failure is
particularly important because there's no VST3 API to set a complete bus
layout in one go. That is, the only way to set all buses active or all
buses inactive is to set the appropriate state on each bus individually,
which in turn means that at some point, some buses will be active and
some will be inactive. Disallowing such 'intermediate' states may
prevent the host from putting the plugin into other (valid) states.

To ensure that the VST3 wrapper always accepts activateBus calls, it now
keeps track of the activation state of each bus as requested by the
host. When the host tries to change the activation state, the wrapper
will try to set the host's "ideal" bus layout on the AudioProcessor. If
this fails, the AudioProcessor will retain its previous bus layout.

The buffer remapping inside the process callback has been made more
robust, to handle cases where the host and the AudioProcessor disagree
about the activation state of each bus:

For input buses:
- If the host has activated the bus, but the AudioProcessor decided to
  keep the bus inactive, the host's input will be ignored.
- If the host deactivated the bus, but the AudioProcessor wanted to keep
  the bus active, the AudioProcessor will be provided with silence on
  that bus.

For output buses:
- If the host has activated the bus, but the AudioProcessor decided to
  keep the bus inactive, the wrapper will clear the host's output
  bus buffers.
- If the host deactivated the bus, but the AudioProcessor wanted to keep
  the bus active, the AudioProcessor's output on that bus will be
  ignored.

The AudioBuffer passed to the wrapped AudioProcessor will no longer
contain any pointers from the host's ProcessData. Instead, the host's
inputs will be copied (in JUCE channel order) to a temporary buffer,
and this temporary buffer will be passed to
AudioProcessor::processBlock. After processBlock, the buffer contents
will be copied to the host's output buffers.

This change is intended to avoid a potential issue when reordering
channels into JUCE order, which may necessitate copying a host input
channel to a different host output channel. In the case that the host is
using the same buffers for both inputs and outputs, copying an input to
an output channel may end up overwriting another input channel, breaking
the plugin's inputs.
2022-06-13 15:29:58 +01:00
reuk
a5b55ab902
VST(3) Host: Use standard (non-flipped) coordinate space for plugin editors
This change fixes an issue where UAD VST2 plugins would incorrectly draw
a menu at the top, rather than at the bottom, of the editor view.
2022-06-13 15:29:57 +01:00