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

7427 commits

Author SHA1 Message Date
reuk
f61447fd01 PopupMenu: Allow manual column breaking 2020-10-26 17:04:49 +00:00
reuk
d4450ad8ae PopupMenu: Add LookAndFeelMethods for drawing column separators 2020-10-26 17:04:49 +00:00
reuk
f04e11c4bb PopupMenu: Allow theming of popup menu background based on Options
Adds a new `drawPopupMenuBackgroundForOption` member function to
`PopupMenu::LookAndFeelMethods`. By default this will pass through
to `drawPopupMenuBackground`, but it can be overridden in cases
where the background appearance depends on the current `Options`.
2020-10-26 17:04:49 +00:00
reuk
37c2dbe547 ComboBox: Add const getter for root menu 2020-10-26 15:15:29 +00:00
reuk
6e02c45d37 FileChooser: Fix build compatibility issue with MinGW
The recent IFileChooser update to the JUCE FileChooser meant that
Windows build machines must be running Vista or newer.

For compilers other than MinGW, we were already requiring that the build
machine must be running Windows 8 or newer.
2020-10-26 11:01:32 +00:00
reuk
b41951bc4b AudioProcessorGraph: Ensure nodes are prepared with correct precision
Previously, if `AudioProcessorGraph::prepareToPlay` was called twice,
interspersed with calls to `setProcessingPrecision`, the graph would
consider the nodes 'prepared' on the second call, and wouldn't
re-prepare the inner nodes with the new precision setting.

    graph.setProcessingPrecision (juce::AudioProcessor::singlePrecision);
    graph.prepareToPlay (44100, 512);

    graph.setProcessingPrecision (juce::AudioProcessor::doublePrecision);
    graph.prepareToPlay (44100, 512); // this wouldn't update the nodes

Now, we always explicitly unprepare all nodes at the beginning of
prepareToPlay, so that they'll always receive the newest settings.
2020-10-23 15:50:47 +01:00
reuk
0943291990 MidiFile: Make file-reading more robust
This commit adds tests and fixes some potential crashes caused by
out-of-bounds reads.
2020-10-23 15:50:47 +01:00
ed
99bce8a3a8 Android: Fixed large buffer sizes on some devices
Requesting a callback when opening an Oboe device is required on some devices to get a FAST stream, so pass a dummy callback object to the temporary stream used when querying the device buffer size in order to get the best available.
2020-10-23 14:17:49 +01:00
ed
32b9b1e9db CoreAudio: Prevent audio glitches before microphone permission granted
If input channels have been requested but no data is being sent from CoreAudio (usually due to permissions not being granted yet) then avoid waiting unnecessarily in AudioIODeviceCombiner::readInput() which could previously cause audio glitches. Also changed the wait time to use an exponential backoff.
2020-10-23 10:53:12 +01:00
ed
22f0e26451 Android: Use performance mode from stream directly when logging Oboe stream details 2020-10-21 17:03:17 +01:00
reuk
b78114cfb3 FileChooser: Add assertion for improved safety when using modal FileChoosers 2020-10-21 16:18:31 +01:00
reuk
2a638b86e7 FileChooser: Use custom save/open panel implementations to ensure that apps cannot terminate while the panel is open 2020-10-21 16:18:31 +01:00
reuk
1d29665e56 FileChooser: Fix issue where preview component may not receive full filename
Some hosts (such as Reaper) weren't creating an instance of exactly
NSOpenPanel or NSSavePanel, which meant that the call to
`getSelectedPaths` was always returning an empty array.

Now, rather than trying to cast the sender to an appropriate type, we
assume that the sender is always the same panel that we opened earlier,
so that we can just query the panel directly for its selection.
2020-10-21 16:18:31 +01:00
reuk
1dae941600 Timer: Add assertion to warn when destroying a timer from a background thread 2020-10-20 10:16:13 +01:00
reuk
0d96ec9baf AppConfig: Ensure AppConfig is always included in plugin wrappers
Previously, the `JUCE_APP_CONFIG_HEADER` macro wasn't being defined/included
in some of the wrapper files, which meant that there was a danger of these
files building without important JucePlugin_Build_* macros defined.
2020-10-20 10:16:13 +01:00
reuk
fdf09a6dde FileChooser: Ensure that macOS preview component always receives user events
Previously, when a file dialog was launched synchronously, the 'dummy' modal
component was preventing user input events from reaching the preview component.

Now, we explicitly allow input events to reach the file preview component, if
it exists.
2020-10-20 10:16:13 +01:00
reuk
dd62aec528 FileChooser: Ensure preview mouse interactions work when showing dialog on macOS 2020-10-20 10:16:13 +01:00
reuk
6fd0baa759 FileChooser: Ensure macOS FileChooserComponent shows when FileChooser is reopened
If the preview is not removed from the desktop, the FileChooser will try to reuse
the same ComponentPeer the next time the preview component is used.
2020-10-20 10:16:13 +01:00
reuk
36664cc487 FileChooser: Fix behaviour of macOS FilePreviewComponent
Previously, when the FileChooser::Native instance entered the
modal state, it was preventing the inner FilePreviewComponent from
receiving events.
2020-10-20 10:16:13 +01:00
reuk
f09b2aa4f5 FileChooser: Ensure macOS accessory panel is initially opened if custom preview component is passed 2020-10-20 10:16:13 +01:00
reuk
2b03936461 FileChooser: Use old-style win32 file chooser if user passes a custom preview component 2020-10-20 10:16:13 +01:00
reuk
8ad5ea0cb1 FileChooser: Fix win32 threading bug
The Win32NativeFileChooser was taking ownership of itself
in its `Thread::run` implementation. This meant that sometimes
the destructor of the file chooser thread would execute directly
in `Thread::run`.

Now, we explicitly transfer ownership into a function object which
will run asynchronously on the main thread. This way, the file chooser
thread will be stopped on the main thread.
2020-10-20 10:16:13 +01:00
ed
d83b3f7716 iOS: Convert logical to physical bounds when resolving OpenGL multisampled framebuffers 2020-10-20 10:00:35 +01:00
Tom Poole
c35bb61c8d Bump version number to 6.0.4 2020-10-14 11:40:30 +01:00
ed
56252ca098 Fixed a bug in TextEditor::setSelectAllWhenFocused() 2020-10-09 14:46:23 +01:00
ed
c492da9971 AUv3: Normalise incoming realtime parameter changes 2020-10-09 14:46:23 +01:00
reuk
0fe90b8d3f ALSA: Fix an issue where the MidiInput/Output Pimpl classes would be undefined when JUCE_ALSA=0 2020-10-06 11:17:09 -07:00
ed
e28e22989e WASAPI: Find a supported format before querying for supported sample rates when opening an exclusive mode stream 2020-10-06 15:40:04 +01:00
Tom Poole
73d1a1ff45 Bump version number to 6.0.3 2020-10-05 18:33:04 +01:00
Tom Poole
c9aba7f613 Bump version number to 6.0.2 2020-10-05 17:05:28 +01:00
reuk
ad729278c7 Audio Devices: Fix build when trying to use WinRT Midi and building with Clang 2020-10-02 14:49:49 +01:00
reuk
c3849041ae Midi: Use proper PImpl idiom in MidiInput and MidiOutput 2020-10-02 14:49:49 +01:00
reuk
fd8ba2deda VST2: Allow VST2 plugins to build for win32 with LLVM 2020-09-25 19:46:40 +01:00
reuk
4d27422d9f GCC: Suppress cast-align warnings 2020-09-24 12:52:45 +01:00
reuk
23bc385864 ARM: Fix AudioBlock test build on ARM 2020-09-24 12:52:45 +01:00
reuk
c897a4f2cb Linux: Fix some clang 10 warnings 2020-09-24 12:52:45 +01:00
reuk
49588b704e Linux: Fix some cast warnings 2020-09-24 12:52:45 +01:00
reuk
90664b42df VST3: Fix issue where aftertouch messages from the host were incorrectly converted to LegacyMIDICCOut messages 2020-09-24 12:48:29 +01:00
reuk
a32b3e7f23 ASIO: Fix unused data member warning 2020-09-24 12:47:23 +01:00
ed
4a09440222 Windows: Return result of ComponentPeer::handleKeyPress() in doAppCommand() to prevent JUCE apps always consuming media keys 2020-09-22 10:52:03 +01:00
Ivan Cohen
5250dc815d
Solved an issue in dsp::BallisticsFilter with peak and RMS envelopes calculation formulas 2020-09-22 10:23:37 +01:00
jules
0ded1ccc5f Made the SVG parser catch "NaN" string values rather than passing them into the Path class 2020-09-21 10:19:38 +01:00
Ivan Cohen
39d8399653
DSP: Provided the peak rectifier stage directly in dsp::BallisticsFilter 2020-09-18 11:43:00 +01:00
ed
29691aaf4f Windows: Moved WASAPIDeviceMode enum into the juce namespace 2020-09-16 16:57:50 +01:00
ed
54164fac3f Windows: Added ComSmartPtr::getInterface() and used it in a few places to simplify some COM code 2020-09-07 16:01:48 +01:00
ed
99b3d85fcc Windows: Always use requested sample rate when opening a WASAPI device with sample rate conversion enabled 2020-09-07 15:55:18 +01:00
ed
6195a5ab60 Windows: Added support for IAudioClient3 shared stream low latency mode in the WASAPI audio device, removed JUCE_WASAPI_EXCLUSIVE config flag and refactored AudioIODeviceType creation 2020-09-04 16:51:39 +01:00
ed
b01e9276ba Windows: Added support for sample rate conversion between input/output in the WASAPI audio device 2020-09-04 16:50:20 +01:00
ed
44412bb0a8 VST: Don't remove empty standard VST plug-in folders in VSTPluginFormat::getDefaultLocationsToSearch() 2020-09-03 18:35:04 +01:00
ed
268ac3d5c8 Modernised some code in CallOutBox and added some logic to scale the window with its content component's transform 2020-08-27 14:14:14 +01:00