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

12342 commits

Author SHA1 Message Date
reuk
22f0f2b433
AudioDeviceManager: Refactor to avoid repetition 2021-09-28 11:31:47 +01:00
reuk
34bda5d75b
AudioDeviceManager: Always try to pick an initial device type that has some connected devices 2021-09-28 11:31:47 +01:00
reuk
10a26b7584
TooltipWindow: Avoid re-showing a tooltip if the mouse has not moved since it was last clicked
This behaviour more closely mirrors the behaviour of other applications.
2021-09-27 15:46:28 +01:00
reuk
c802319241
Viewport: Stop touches on other components from interrupting scrolling
Previously, a touch on a component outside the Viewport would interrupt
and cancel a scroll gesture inside the Viewport.

Now, the Viewport will respond to all drag events from the input source
that started the drag, allowing the Viewport to be scrolled with one
input source while adjusting other controls with another input source.

The FontsDemo is useful for testing this behaviour, as it has two
Viewports on a single screen, along with some other controls.
2021-09-27 15:46:28 +01:00
reuk
7b64bd7406
DelayLine: Allow setting a new maximum delay time after construction 2021-09-27 15:44:48 +01:00
reuk
c41f64111f
FilterDesign: Add assertions to catch misuse of design functions 2021-09-27 15:44:48 +01:00
reuk
e02a09da0c
HeapBlock: Disable size-based constructor for non-integral arguments 2021-09-27 15:44:48 +01:00
reuk
ef0b1ec1ef
DSPModulePluginDemo: Add parameter groups 2021-09-27 15:44:48 +01:00
reuk
07ca7ae13b
GenericAudioProcessorEditor: Update parameter names when AudioProcessor changes 2021-09-27 15:44:48 +01:00
reuk
cfec0b5356
GenericAudioProcessorEditor: Add support for grouped parameters 2021-09-27 15:44:48 +01:00
reuk
12fd1479a8
AudioPluginHost: Only add editor menu item for plugins with editors 2021-09-27 15:44:48 +01:00
reuk
31c7f42e55
AudioPluginHost: Only allow editor window resizing when this is supported by the plugin 2021-09-27 15:44:48 +01:00
reuk
3d1d060317
AudioPluginInstance: Add API to retrieve parameter IDs from hosted plugins 2021-09-27 15:44:47 +01:00
reuk
fbe446eac0
ProcessorChain: Add support for C++17 structured bindings 2021-09-27 13:20:47 +01:00
reuk
930a3299f2
Reservoir: Factor out reservoir management code 2021-09-27 13:20:47 +01:00
reuk
abd5fe4a69
DryWetMixer: Update implementation to use SingleThreadedAbstractFifo 2021-09-27 13:15:39 +01:00
reuk
b0bd1c4f63
SingleThreadedAbstractFifo: Move into juce_core 2021-09-27 13:15:39 +01:00
reuk
7504fa065b
FileChooser: In Linux FileChoosers, prefer to open files rather than directories if both are requested
Zenity and Kdialog only support opening either files or directories
during a single invocation.
2021-09-27 12:48:59 +01:00
reuk
0feda541e7
Projucer: Escape external library paths correctly
5f7ad995af introduced an issue where the
string of external libraries would be escaped in one go. This is
incorrect, because only the individual paths should be escaped. The
semicolons separating each path should not be escaped.
2021-09-27 12:31:49 +01:00
Attila Szarvas
823bfb0c32 DragAndDropContainer: fix positioning when source Component is transformed 2021-09-27 10:05:19 +00:00
ed
a7915ec47e iOS/macOS Accessibility: Tidy up shared value getter 2021-09-23 15:07:53 +01:00
ed
2abf68d866 iOS Accessibility: Create UIAccessibilityReadingContent protocol-conforming classes dynamically for text elements 2021-09-23 15:07:47 +01:00
ed
a6db2ef4ff iOS Accessibility: Fix a potential use-after-free when deallocating a container element 2021-09-23 15:07:30 +01:00
ed
49fdf1a4d3 Re-save all projects 2021-09-23 14:26:05 +01:00
reuk
b6ab931bcf
File: Add helper function to locate shared containers on macOS and iOS
File::getContainerForSecurityApplicationGroupIdentifier will return the
path to a container which is shared between all apps using the specified
app group ID. This might be useful if you need to share resources
between a standalone app and an AUv3 plugin, for example.
2021-09-23 10:28:48 +01:00
reuk
d738f0274e
File: Fix quoting in openDocument() on Linux
The previous implementation would fail to open directories with names
that contained spaces, as the space would be escaped and then quoted.

I don't think it's particularly meaningful to supply parameters when
opening a file in this way (especially not quoting the parameters too!)
so I've removed that functionality.
2021-09-23 10:28:47 +01:00
reuk
9199fa3c51
Warnings: Avoid triggering missing-prototypes warnings on macOS/iOS 2021-09-23 10:28:47 +01:00
reuk
d396bdb97f
CMake: Allow setting the network multicast entitlement 2021-09-23 10:28:47 +01:00
reuk
0d716ab647
CMake: Enable program database output by default for debug builds 2021-09-23 10:28:47 +01:00
reuk
3768349a05
Font: Make Font and TypefaceCache threadsafe
Previously, it wasn't safe to access Font instances from multiple
threads because there was a chance that they might reference the same
shared internal state. In this case, calling getTypeface() or getAscent from
two threads simultaneously would cause a race on the typeface and ascent
data members, even though the Font instances appeared to be disjoint.

With this change in place, it is now safe to use Font instances from
multiple threads simultaneously.

It is still an error to modify the same Font instance from multiple
threads without synchronization!

    // Fine:
    Font a;
    Font b = a;

    auto futureA = std::async (std::launch::async, [&a] { /* do something with a */ });
    auto futureB = std::async (std::launch::async, [&b] { /* do something with b */ });

    // Bad idea:
    Font f;

    auto futureA = std::async (std::launch::async, [&f] { /* do something with f */ });
    auto futureB = std::async (std::launch::async, [&f] { /* do something with f */ });
2021-09-23 10:28:47 +01:00
ed
300f573163 PluginHostType: Add Ableton Live 11 detection 2021-09-23 10:21:02 +01:00
ed
55ffe91db8 TreeView: Don't add MouseListener for nested custom components
This restores the behaviour of TreeViews with custom item components prior to ec990202
2021-09-23 10:20:36 +01:00
ed
d589f65b36 AUv3: Fall back to view size if AUViewControllerBase preferredContentSize property has a zero size when opening plug-in editor 2021-09-22 13:52:56 +01:00
ed
ada1b2d693 AU: Reset plug-in host callbacks in prepareToPlay() in case they were removed when uninitialising or resetting the audio unit 2021-09-22 13:52:36 +01:00
ed
4649bc1b13 Windows: Add WebView2Preferences struct to modify aspects of WebView2 behaviour 2021-09-22 13:50:53 +01:00
ed
315f6d8fcd Projucer: Bump WebView2 package version to latest stable 2021-09-22 13:50:53 +01:00
reuk
056700572c
OpenGLPixelFormat: Tidy up equality function 2021-09-22 11:04:47 +01:00
reuk
abf493122f
OpenGL: Attempt to enable multisampling on Android 2021-09-22 11:04:47 +01:00
reuk
75258a4ba6
OpenGL: Add multisampling support on Linux 2021-09-22 11:04:46 +01:00
reuk
f0d11f961b
OpenGLContext: Avoid reading from component on background thread 2021-09-22 10:23:05 +01:00
reuk
a87efde9ba
OpenGL Demos: Fix Thread Sanitizer warnings 2021-09-22 10:23:05 +01:00
reuk
ceae64dd40
AudioDeviceSelectorComponent: Always show the actual samplerate of the device
Previously, the samplerate combo would display as a blank box in the
case that the device's actual samplerate wasn't one of the "available"
samplerates reported by the device.
2021-09-22 10:23:05 +01:00
reuk
fd87195941
iOS Audio: Allow specifying a fixed set of preferred sample rates
By defining JUCE_IOS_AUDIO_EXPLICIT_SAMPLERATES, the iOS audio device
will always use the requested samplerates instead of querying the
current audio device for the samplerates it supports. This is useful
because certain hardware (such as the Focusrite iTrack Dock) takes a
long time to set new samplerates, which can end up freezing the main
thread for significant lengths of time.

This approach is inspired by the AUM app for iOS, which appears to
provide a fixed list of "allowed" samplerates, rather than querying the
device for its allowed samplerates.
2021-09-22 10:23:04 +01:00
reuk
3f5862cf17
WASAPI: Tidy up internal buffering mechanism 2021-09-22 10:23:04 +01:00
reuk
32322a51e8
TableHeaderComponent: Avoid repainting in setColumnWidth if requested size is outside limits 2021-09-22 10:23:04 +01:00
reuk
d13a23ad14
Build: Ensure that plugin and manufacturer codes are exactly four characters in length 2021-09-22 10:23:04 +01:00
reuk
7525da867b
Projucer: Allow setting the network multicast entitlement in the Xcode exporter 2021-09-22 10:23:04 +01:00
reuk
c49e18cad4
Projucer: Add option to automatically set up oneMKL in VS exporters 2021-09-22 10:23:04 +01:00
reuk
bde242892f
Projucer: Avoid adding duplicate arrays to plist
Merging a plist which contained UIBackgroundModes or
UISupportedInterfaceOrientations keys could result in these keys being
duplicated in the generated plist.

This patch will avoid adding a new array if the array's key already
exists in the plist.
2021-09-22 10:23:04 +01:00
reuk
65bd869451
Projucer: Properly escape android app names containing apostrophes 2021-09-22 10:23:04 +01:00