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

975 commits

Author SHA1 Message Date
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
reuk
8fbd99c424
AudioPlayHead: Improve granularity of position info 2022-06-16 16:18:20 +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
2b82ce7c84
DemoRunner: Avoid exposing unnecessary accessible component 2022-06-13 15:29:57 +01:00
reuk
93a815ec8d
DemoRunner: Add AccessibilityDemo to iOS and Android builds 2022-06-13 15:29:57 +01:00
reuk
560e75da27
MultiOutSynthPlugin: Avoid assertions in VST3PluginTestHost 2022-06-13 15:29:55 +01:00
reuk
6375f640db
InAppPurchases: Add support for Android BillingClient 5.0.0 2022-06-09 16:55:17 +01:00
Tom Poole
cdd619e7a1 Xcode: Update LastUpgradeCheck 2022-06-01 13:57:33 +01:00
attila
2fdc4f6633 Projucer: Remove VS2015 and CLion exporters 2022-05-25 13:56:55 +02:00
Tom Poole
92dda5a2d9 Remove the IAA demo project 2022-05-24 17:00:24 +01:00
Tom Poole
24e3340a55 Update all examples to use Visual Studio 2022 as the default Windows exporter 2022-05-23 20:20:44 +01:00
Tom Poole
8c48956681
Resave all projects 2022-05-23 13:18:08 +01:00
Tom Poole
2ec861d99e Update licensing banners to JUCE 7 2022-05-16 17:55:48 +01:00
attila
10d32c104d Resave all projects 2022-05-12 12:31:30 +02:00
attila
f4e33faea1 Add ARAPluginDemo PIP 2022-05-12 12:31:30 +02:00
Tom Poole
c2ecde591b macOS: Remove 32 bit specific functionality
This includes Carbon support
2022-05-03 08:16:37 +01:00
Tom Poole
b48dddcf4e RTAS: Remove RTAS functionality 2022-05-03 08:16:37 +01:00
Tom Poole
db3c6e6216 macOS/iOS: Fix unguarded availability warnings 2022-04-26 15:37:03 +01:00
Tom Poole
f69fe7be0f Resave projects 2022-04-26 15:30:29 +01:00
Tom Poole
b6a3020dc6 LiveConstantDemo: Improve the documentation 2022-04-26 11:04:55 +01:00
reuk
61f3c1dd98
LV2: Add initial client support 2022-04-22 14:18:52 +01:00
reuk
1182024fc4
LV2: Add initial hosting support 2022-04-22 14:18:51 +01:00
reuk
5f5cb5e885
Examples: Add host plugin demo 2022-04-22 14:18:49 +01:00
Tom Poole
570bcb666a
Resave projects 2022-04-22 14:18:48 +01:00
Tom Poole
3dd812052e macOS/iOS: Add a Metal layer renderer
This restores the functionality of JUCE_COREGRAPHICS_RENDER_WITH_MULTIPLE_PAINT_CALLS.
Using this preprocessor flag may avoid Core Graphics rendering much larger regions than
necessary, but the small regions that are rendered will likely be rendered slower.
Whether using this flag improves or degrades the performance of your rendering overall
will be specific to each application.

Previously enabling JUCE_COREGRAPHICS_RENDER_WITH_MULTIPLE_PAINT_CALLS was ineffective
from versions of macOS around 10.13, but enabling it didn't have any negative impact on
performance. Now enabling JUCE_COREGRAPHICS_RENDER_WITH_MULTIPLE_PAINT_CALLS may result
in slower rendering.
2022-04-04 12:36:33 +01:00
Tom Poole
dea3fe60e4 Update copyright banners 2022-04-04 12:36:32 +01:00
Oli
b918fd3159 AudioProcessorGraph: Fix MIDI channel bug and graph execution modification
MIDI only plugins are no longer provided valid audio buffers
Graph nodes are only executed when they have active connections
2022-03-28 20:47:30 +01:00
Tom Poole
e9417c645b UnitTestsDemo: Add a missing module flag 2022-03-24 13:13:10 +00:00
reuk
364b7f7316
SurroundPlugin: Provide nicer metering and enable multi-bus support
This change also allows the plugin to receive discrete layouts in hosts
that support them, while also maintaining support for
AudioChannelLayoutTags in Logic.
2022-03-23 16:51:39 +00:00
reuk
1e820fd362
Resave projects 2022-03-23 16:51:39 +00:00
reuk
ebac835673
Fix some deprecation warnings 2022-03-22 17:27:54 +00:00
Tom Poole
ccd3a29cc7 Resave all projects 2022-03-04 11:48:48 +00:00
reuk
3fe0716684
Examples: Update plugins to specify new versionHint on parameters 2022-03-03 13:47:05 +00:00
Tom Poole
a0994ac576 Resave all projects 2022-02-28 12:59:09 +00:00
Tom Poole
111bbc0979 Bump version number to 6.1.6 2022-02-28 12:53:10 +00:00
Tom Poole
086b21be1b Re-save all projects 2022-02-23 15:06:22 +00:00
reuk
9ba5dd5a30
OpenGLDemo: Avoid races on Strings that are accessed from rendering thread and main thread 2022-02-23 10:56:12 +00:00
reuk
e5255eb76c
ChildProcessDemo: Fix crashes when stopping child process
Previously, the child process could be deleted from its own
handleConnectionLost() callback, which would attempt to stop the child
process's thread from that same thread.

Now, the demo will attempt to stop the coordinator thread from the main
thread instead.
2022-02-18 16:43:26 +00:00
reuk
068dffdb8c
AudioProcessorEditorHostContext: Fix naming of getContextMenuForParameter 2022-02-18 16:43:25 +00:00
reuk
6b8d07a0f6
MidiLogger Demo: Avoid redrawing when no new messages have been received 2022-02-18 16:43:25 +00:00
Tom Poole
300ab8b084 Resave all projects 2022-02-18 16:28:51 +00:00
reuk
4a7b556463 InAppPurchasesDemo: Fix leaky ListBoxModel implementation 2022-02-07 14:24:11 +00:00
reuk
4cf74dfff6 Viewport: Improve drag-to-scroll on devices that can accept simultaneous mouse and touch input
Some Windows 11 devices have both touch screens and mouse inputs, and
these can be used simultaneously.

The Viewport (and ListBox) now check the input source of each mouse
down. If the source is not a mouse, the viewport will always enter
drag-to-scroll mode, regardless of the result of isScrollOnDragEnabled.
2022-02-07 14:24:11 +00:00
Tom Poole
4eb6eb828a Resave all projects 2022-01-26 13:06:01 +00:00
Tom Poole
3c03693d07 Bump version number to 6.1.5 2022-01-26 13:00:05 +00:00
Tom Poole
ea5dae4ab6 Remove some unused properties from .jucer files and re-save all projects 2022-01-25 11:25:08 +00:00
ed
e0e8e85d6b Add KeyboardComponentBase class for custom MIDI keyboard components and MPEKeyboardComponent class 2022-01-21 14:44:14 +00:00
ed
461192b355 Add FocusOutline class for indicating Component keyboard focus 2022-01-20 15:46:53 +00:00
reuk
12b7a8f9d1
Accessibility: Prefer toggle action to press action for checkable items 2022-01-17 10:58:17 +00:00