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

8638 commits

Author SHA1 Message Date
Tom Poole
2ec861d99e Update licensing banners to JUCE 7 2022-05-16 17:55:48 +01:00
Tom Poole
05a42424f9 Windows: Consolidate graphics invalidation regions
Regions marked as dirty by repaint calls are now queued up and
dispatched when the corresponding physical display device is
refreshed
2022-05-16 16:37:31 +01:00
reuk
acefc92f88 TableListBox: Avoid calling virtual functions in constructor 2022-05-13 09:44:33 +01:00
attila
5f4da905d7 ARA Client: Add ARA interface extensions to AU and VST3 wrappers 2022-05-12 12:31:30 +02:00
attila
9ae96e98ca ARA Client: Add ARA plugin model classes for writing plugins 2022-05-12 12:31:30 +02:00
attila
f36949c1b2 ARA Host: Add support for scanning and hosting ARA plugins 2022-05-12 12:31:30 +02:00
attila
d99fbccb66 Add PreSonus VST3 extensions 2022-05-12 12:31:19 +02:00
attila
e6cf6ab064 ListenerList: Modify iterator during removals to guarantee callback 2022-05-11 16:06:18 +02:00
attila
0ff5cea68c AU Host: Call AudioUnitReset() before AudioUnitUninitialize() instead of after
This change ensures that it is possible to put a plugin in an unprepared state
by calling releaseResources().
2022-05-11 16:06:18 +02:00
attila
cc8aa57793 AU Client: Only call prepareToPlay() from SetProperty() if already in prepared state 2022-05-11 16:06:18 +02:00
attila
3b5d7898ed VST3 Client: Only call prepareToPlay() from IComponent::setActive() 2022-05-11 16:06:18 +02:00
attila
db17713aad AudioProcessor: Add isRealtime() 2022-05-11 16:06:18 +02:00
attila
8c62b4f003 Add ScopedTryReadLock and ScopedTryWriteLock 2022-05-11 16:06:18 +02:00
attila
7c22fae8c7 BufferingAudioFormatReader: Return failure from read() in more cases
read() now returns failure in the case of a read timeout, or if
reading any block failed.
2022-05-11 16:06:18 +02:00
Oli
2bca60e52c AudioDeviceManager: Fix MidiOutput dangling pointer
Changed the lifetime of the default MIDI oputput.
Removed the need for Timer workaround in AudioDeviceSelectorComponent.
2022-05-10 16:32:36 +01:00
reuk
319da1608d PopupMenu: Avoid potential crash when accessing exitingModalState member 2022-05-05 21:35:49 +01:00
reuk
4805b86ca4
LV2 Client: Update Atom parsing to use Optional 2022-05-04 20:48:11 +01:00
reuk
208fc05480
LV2 Client: Request buffers large enough to hold a change event for each parameter 2022-05-04 20:48:11 +01:00
reuk
e68a62af7f
LV2 Host: Ensure default parameter value lies between min and max when not explicitly provided 2022-05-04 20:48:11 +01:00
reuk
e85a6b595e
LV2 Host: Always notify the UI about parameter changes, even if they originate from the UI
This fixes an issue where Harrison XT-series plugin editors did not
update on mouse interaction in the AudioPluginHost.
2022-05-04 20:48:10 +01:00
reuk
e8431891a0
LV2 Host: Remove unused function 2022-05-04 20:48:10 +01:00
reuk
165b9a6c9b
LV2 Host: Fix bug where atom ports would not be correctly resized 2022-05-04 20:48:10 +01:00
reuk
ce061675a5
VST3 Host: Send parameter changes triggered by MIDI CCs to the IEditController
This change reshuffles the way that parameter updates and notifications
work for hosted VST3 plugins.

Previously:
- Parameter::setValue would update the processor and editor, but not the
  host
- Parameter::setValueFromEditor would update the processor and host, but
  not the editor
- MIDI CC events would be converted to events and added to the
  processor's input event list, but were not forwarded to the
  IEditController.

Now:
- Parameter::setValue updates the host's cachedParamValues, which is the
  host's source of truth for parameter values. On each process callback,
  changes will be added to the input parameter list. Then, for each item
  in the parameter list, an update will be dispatched back to the
  editor.
- Parameter::setValueFromEditor is removed. All parameter changes will
  be sent back to the editor, even if they originated from the editor.
  setValueNotifyingHost can be used to notify listeners that one of the
  host's JUCE parameters has changed, e.g. in the host context's
  performEdit.
- MIDI CC events trigger calls to setValueNotifyingHost on any mapped
  parameters. The flow is very similar to a parameter change from the
  editor: the cachedParamValues are updated immediately, and host
  parameter listeners are notified. Then, for each changed
  cachedParamValue an entry is added to the inputParameterChanges
  (updating the processor), then for each item in the
  inputParameterChanges an update is sent to the editor.
2022-05-04 20:48:10 +01:00
reuk
81ae759298
TableHeaderComponent: Use high-resolution image when header is dragged 2022-05-04 20:04:14 +01:00
reuk
67e3326ecf
Fonts: Avoid segfaulting on Linux when there are no installed fonts 2022-05-03 11:44:03 +01: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
reuk
c0d02fc75a
LV2 Host: Add missing path separator to UI bundle path 2022-04-28 16:08:47 +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
reuk
7ea93ce5d2
LV2 Host: Avoid potential deadlock in AudioProcessorGraph
Previously, preparing an AudioProcessorGraph containing hosted LV2
plugins would recreate the plugins and then set their state. For plugins
without threadsafe restore, setting the state would take the
callbackLock to avoid races with processBlock. This meant that

- During prepare, the graph would take the processorLock, then the
  processor would take its own callbackLock.
- During playback, the graph would take the processor's callbackLock,
  and then would take the node's processorLock.

This is probably benign (prepare shouldn't be called concurrently with
processBlock at all), but to be on the safe side we now avoid taking the
callbackLock when setting new plugin state during prepareToPlay.
2022-04-28 11:05:40 +01:00
reuk
3c08f8beda
Linux Fonts: Replace font style if it does not exist for the requested font 2022-04-28 11:05:40 +01:00
reuk
f7e957a932
LV2 Client: Avoid declaring the turtle_recall feature in plugin manifests
This is an implementation detail for the build system of the plugin.
Users of the plugin should not know or care that this extension is
available.
2022-04-28 11:05:40 +01:00
reuk
215d5955f9
LV2 Client: Always declare resize and noUserResize in extensionData, even if only one will be used 2022-04-28 11:05:40 +01:00
reuk
b88b8f13c7
LV2 Host: Supply correct bundle path during instantiation 2022-04-28 11:05:40 +01:00
reuk
67164f6af9
LV2 Client: Properly escape library names in the manifest.ttl 2022-04-28 11:05:40 +01:00
reuk
a1e72b70df
TableListBox: Fix spurious ListBox assertions 2022-04-28 11:05:39 +01:00
attila
627afffeb4 Android: Fix dismissing screen keyboard when interacting with TextEditor 2022-04-27 18:49:44 +02:00
Tom Poole
669782cdf4 Viewport: Fix a scrolling bug when internal components have a transform applied 2022-04-27 12:02:10 +01:00
Tom Poole
fe46afaf71 Value: Update refersToSameSourceAs documentation 2022-04-27 11:21:42 +01:00
Tom Poole
9c6ce98a54 macOS: Fix an unguarded availability warning 2022-04-26 16:32:15 +01:00
Tom Poole
68ad0ef3d8 DirectoryContentsList: Fix a bug in isStillLoading 2022-04-26 15:37:52 +01:00
Tom Poole
eb80465aa9 Fix a compilation error in Xcode 9.4 2022-04-26 15:37:45 +01:00
Tom Poole
3b6c05ec10 iOS: Fix a compiler warning 2022-04-26 15:37:38 +01:00
Tom Poole
1a6e39e97e FloatVectorOperations: Add method docstrings 2022-04-26 15:37:30 +01:00
Tom Poole
409a00e01e FloatVectorOperations: Add methods to Doxygen 2022-04-26 15:37:24 +01:00
Tom Poole
db3c6e6216 macOS/iOS: Fix unguarded availability warnings 2022-04-26 15:37:03 +01:00
Tom Poole
e984395b1d GCC: Fix some compiler warnings in GCC 11 2022-04-26 15:30:54 +01:00
reuk
118682f030 StandardHeader: Include <utility> for GCC 12 compatibility 2022-04-26 15:27:45 +01:00
Tom Poole
a77936ecda VST3: Fix a compiler warning in the VST3 SDK 2022-04-26 11:38:19 +01:00