1
0
Fork 0
mirror of https://github.com/juce-framework/JUCE.git synced 2026-01-29 02:40:05 +00:00
Commit graph

289 commits

Author SHA1 Message Date
reuk
9712775e5b
macOS: Remove macOS 10.12 preprocessor checks
The current minimum-supported Xcode (10.1) includes the macOS 10.14.1
SDK, so APIs from macOS 10.12 will always be available.
2022-08-04 22:51:17 +01:00
reuk
a22b23e335
iOS: Remove iOS 11 preprocessor checks
The current minimum-supported Xcode (10.1) includes the iOS 12.1 SDK, so
APIs from iOS 10 will always be available.
2022-08-04 22:51:17 +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
Tom Poole
2ec861d99e Update licensing banners to JUCE 7 2022-05-16 17:55:48 +01:00
attila
5f4da905d7 ARA Client: Add ARA interface extensions to AU and VST3 wrappers 2022-05-12 12:31:30 +02:00
attila
cc8aa57793 AU Client: Only call prepareToPlay() from SetProperty() if already in prepared state 2022-05-11 16:06:18 +02:00
Tom Poole
c2ecde591b macOS: Remove 32 bit specific functionality
This includes Carbon support
2022-05-03 08:16:37 +01:00
reuk
0f16d2dded
AU Client: Prevent parameter change messages being sent during state restoration
This is intended to fix two issues:
- In REAPER, setting automation recording to 'Latch', recording some
  automation, saving and reloading the project, then starting playback causes
  automation data to be overwritten. This appears to be because REAPER
  interprets parameter change messages sent during state restoration as
  originating from the user.
- In Ableton Live, automation lanes are sometimes disabled when loading
  projects. This also seems to be because the setStateInformation call
  may send parameter change messages back to the host.

According to the docs for kAudioUnitProperty_ClassInfo, the host is
required to notify all parameter listeners that the parameter values may
have changed, implying that the plugin need not send its own parameter
change notifications during state restoration.
2022-04-28 14:11:55 +01:00
reuk
45a5235298
AUv3: Fix race on factoryPresets
Some AUv3 presets crash when querying the set of presets in Loopy Pro.
The issue seems to be because `addPresets` may end up being called
concurrently with the host's queries.
2022-04-28 11:31:31 +01:00
Tom Poole
3b6c05ec10 iOS: Fix a compiler warning 2022-04-26 15:37:38 +01:00
reuk
cfa289d943
AudioProcessor: Allow querying of the host timestamp in processBlock 2022-04-22 14:18:49 +01:00
reuk
19ddbe2368
Warnings: Fix missing-prototypes warnings 2022-04-22 14:18:48 +01:00
Tom Poole
dea3fe60e4 Update copyright banners 2022-04-04 12:36:32 +01:00
reuk
bb0a40e009
AU Client: Order parameters according to version hint 2022-03-03 13:44:49 +00:00
reuk
3d38ca764e
AU Client: Switch HashMap to unordered_map 2022-03-03 13:44:49 +00:00
reuk
288765b3c8
AU Client: Avoid potential out-of-bounds write when clearing buffers
Fixes an issue introduced in 72fa2d98e1
where zeromem might write past the end of the channel buffer.
2022-02-23 10:56:12 +00:00
reuk
409aaea43d
AUv3 Client: Add missing autorelease
This autorelease was accidentally removed in
2a199d5225
2022-02-17 16:04:58 +00:00
reuk
0f06f45098 AUv3: Add timestamps to all parameter changes when possible 2022-02-07 14:24:11 +00:00
reuk
3f315ddd00 Plugin clients: Fix bypass behaviours to match getBypassParameter() documentation 2022-02-07 14:24:11 +00:00
reuk
7650a96092
AUv3: Send parameter begin/end gesture events
Note that hosts using the AUv2 API (e.g. JUCE hosts) to host JUCE AUv3
plugins may not receive begin/end gesture events, depending on the OS
version, and potentially the host architecture. I suspect this is
because older versions of the OS-provided AUv2/AUv3 translation layer
don't handle these events.

In testing, an Intel host on Catalina did not receive begin/end events,
but an Arm host on Monterey did receive these events.
2022-01-27 18:43:22 +00:00
reuk
2678c1d10d
AUv3 Wrapper: Use correct timestamps for outgoing events
Previously, with two instances of the MIDILogger AUv3 in series in
Logic, the timestamps received by the second plugin in the chain would
not match the timestamps of the events emitted by the first plugin.
2022-01-10 22:15:21 +00:00
reuk
43280c3f7f
AU: Tidy up ChannelRemapper 2022-01-10 22:15:19 +00:00
reuk
7d8c5b845d
AU: Cache MIDI output block 2021-11-24 16:20:35 +00:00
reuk
6de3af3566
AU: Make channel/bus handling more robust 2021-11-24 16:20:35 +00:00
reuk
81fa777ff7
ObjC Helpers: Automatically derive appropriate signature for function 2021-11-24 11:51:11 +00:00
reuk
3850a2bb20
AudioPlayHead: Update wrappers to use new FrameRate type 2021-11-19 16:35:22 +00:00
reuk
4ca923a34b
NSViewComponentPeer: Allow mouse events to reach unfocused windows
This change allows mouse events (including enter and exit events) to
reach unfocused views on macOS. This matches the behaviour of unfocused
windows on Linux and Windows, where components paint in their "hovered"
states even when the application window is in the background.

As a byproduct of using tracking areas on macOS, we can remove the fake
mouse move generator.
2021-10-27 16:33:37 +01:00
ed
7d1918b385 macOS/iOS: Replace compile-time deployment target checks with runtime checks using the available keyword 2021-10-13 15:06:18 +01:00
reuk
d0615041f0
Plugin clients: Avoid notifying listeners when parameters have not changed 2021-09-28 11:31:49 +01:00
reuk
cfec0b5356
GenericAudioProcessorEditor: Add support for grouped parameters 2021-09-27 15:44:48 +01:00
reuk
334bd2a926 AUv3 Client: Notify host when updating current program 2021-08-03 18:27:23 +01:00
ed
6d53ed3fec AUv3: Handle AURenderEventMIDIEventList 2021-07-27 12:32:28 +01:00
ed
bdc2334c98 AUv3: Fix unhandled enumeration warning when building against the 12.0 SDK 2021-07-26 10:21:51 +01:00
ed
d52fb9ca26 AUv3: Suppress undeclared selector warning for supportsMPE when building against the 10.11 SDK 2021-07-26 10:21:51 +01:00
reuk
85226c33d4
Mac MainMenu: Allow commands without modifiers to be passed to peer
Ideally, we want to pass shortcut keys to the component to handle, and
only fall back to invoking a menu item if the component was unable to
handle the keyboard event, or if the action was triggered by
clicking/selecting an item in the menu itself. The old implementation
tried to work out whether the action was triggered by a shortcut by
checking the event's characters and modifiers. This method was
inaccurate, because some shortcuts (such as arrow keys) may add
unexpected numpad/function modifier flags.

We now try handling shortcut keys directly in the peer, and pass events
up to the superclass (which will forward them to the main menu) if the
event could not be handled.

This commit also adjusts some Objective-C method signatures to use the
correct string encoding for the BOOL type.
2021-07-14 14:49:05 +01:00
attila
56cf81d32b AU Client: Fix allocation on audio thread in JuceAU::audioProcessorChanged() 2021-06-25 15:05:19 +00:00
reuk
423d46c9ba
AU Client: Avoid potential out-of-bounds read when adding buses 2021-06-25 12:38:18 +01:00
reuk
bc2ad3d7c5
Build: Improve support for AU resource files on ARM Macs 2021-06-25 11:12:37 +01:00
Tom Poole
bfdda737a2 Projucer: Removed the live build 2021-05-14 12:54:07 +01:00
reuk
40fa4ff90c
AU Client: Fix variable naming 2021-05-12 15:54:53 +01:00
ed
c9731d4827 AUv3: Removed a duplicate statement in getCurrentPosition() 2021-04-29 17:31:33 +01:00
reuk
75ed712b19 AU Wrapper: Fix build errors when using PreferredChannelConfigurations 2021-04-19 22:32:51 +01:00
reuk
965f14311d
AUv3 Wrapper: Tidy up sample rate detection 2021-04-19 14:37:38 +01:00
reuk
cafb437762
AU Wrapper: Use correct sample rate for MIDI FX with no buses
MIDI FX AudioUnits can retrieve their current sample rate from an output
bus. However, it's reasonable for a JUCE MIDI FX plugin to require 0
output buses, in which case the correct sample rate cannot be retrieved.

This patch modifies the AU wrapper to ensure that MIDI FX plugins will
always have at least one output bus. This bus does not necessarily
correspond to a matching bus in the AudioProcessor, and it will not be
passed to AudioProcessor::processBlock. With the output bus in place,
the correct sample rate is reported in `prepareToPlay`.
2021-04-19 14:37:38 +01:00
Tom Poole
a9ad07a945 Use RAII for CFTypes 2021-03-25 15:48:35 +00:00
reuk
7b6ad28b46
AUv3 wrapper: Allow host to resize editor view 2021-03-15 19:23:02 +00:00
reuk
c7feb75b97
PluginHostType: Use the name of the bridged hosting process to determine host
This patch also moves PluginHostType into juce_audio_processors in order
to allow hiding of function implementations.
2021-03-11 11:03:57 +00:00
reuk
1b4960b5bf
PluginHostType: Fix host reporting in bridged hosts on M1
Reports the correct host name for Apple hosts on M1 which host plugins
in a separate process.

Affected hosts are:
- Logic Pro
- GarageBand
- MainStage
- Final Cut Pro
2021-03-10 18:07:22 +00:00
reuk
75fae3bf21
AU: Fix midi output to use correct packet alignment on ARM 2021-03-02 11:15:51 +00:00