1
0
Fork 0
mirror of https://github.com/juce-framework/JUCE.git synced 2026-01-09 23:34:20 +00:00

ObjCHelpers: Add new macros to help with version checking

This commit is contained in:
reuk 2024-10-29 13:11:26 +00:00
parent 7290d6dc2f
commit 3005b716fe
No known key found for this signature in database
GPG key ID: FCB43929F012EE5C
7 changed files with 20 additions and 12 deletions

View file

@ -40,8 +40,8 @@
#endif
#if (JUCE_IOS && defined (__IPHONE_15_0) && __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_15_0) \
|| (JUCE_MAC && defined (MAC_OS_VERSION_12_0) && MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_VERSION_12_0)
#if (JUCE_IOS && JUCE_IOS_API_VERSION_CAN_BE_BUILT (15, 0)) \
|| (JUCE_MAC && JUCE_MAC_API_VERSION_CAN_BE_BUILT (12, 0))
#define JUCE_APPLE_MIDI_EVENT_LIST_SUPPORTED 1
#else
#define JUCE_APPLE_MIDI_EVENT_LIST_SUPPORTED 0

View file

@ -564,6 +564,14 @@ private:
Class klass = nullptr;
};
// Expands to true if the API of the specified version is available at build time, false otherwise
#define JUCE_MAC_API_VERSION_CAN_BE_BUILT(major, minor) \
major * 10'000 + minor * 100 <= MAC_OS_X_VERSION_MAX_ALLOWED
// Expands to true if the API of the specified version is available at build time, false otherwise
#define JUCE_IOS_API_VERSION_CAN_BE_BUILT(major, minor) \
major * 10'000 + minor * 100 <= __IPHONE_OS_VERSION_MAX_ALLOWED
#if JUCE_IOS
// Defines a function that will check the requested version both at

View file

@ -865,7 +865,7 @@ static std::optional<int> getKeyCodeForSpecialCharacterString (StringRef charact
{ nsStringToJuce (UIKeyInputF12), KeyPress::F12Key } });
}
#if defined (__IPHONE_15_0) && __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_15_0
#if JUCE_IOS_API_VERSION_CAN_BE_BUILT (15, 0)
if (@available (iOS 15.0, *))
{
result.insert ({ { nsStringToJuce (UIKeyInputDelete), KeyPress::deleteKey } });
@ -1028,7 +1028,7 @@ static void postTraitChangeNotification (UITraitCollection* previousTraitCollect
object: nil];
}
#if ! defined (__IPHONE_17_0) || __IPHONE_OS_VERSION_MAX_ALLOWED < __IPHONE_17_0
#if JUCE_IOS_API_VERSION_CAN_BE_BUILT (17, 0)
- (void) traitCollectionDidChange: (UITraitCollection*) previousTraitCollection
{
[super traitCollectionDidChange: previousTraitCollection];
@ -1683,7 +1683,7 @@ Point<float> juce_lastMousePos;
struct ChangeRegistrationTrait
{
#if defined (__IPHONE_17_0) && __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_17_0
#if JUCE_IOS_API_VERSION_CAN_BE_BUILT (17, 0)
API_AVAILABLE (ios (17))
static void newFn (UIView* view)
{
@ -2222,7 +2222,7 @@ void Desktop::setKioskComponent (Component* kioskModeComp, bool enableOrDisable,
void Desktop::allowedOrientationsChanged()
{
#if defined (__IPHONE_16_0) && __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_16_0
#if JUCE_IOS_API_VERSION_CAN_BE_BUILT (16, 0)
if (@available (iOS 16.0, *))
{
UIApplication* sharedApplication = [UIApplication sharedApplication];

View file

@ -170,7 +170,7 @@ namespace juce
struct BadgeUpdateTrait
{
#if defined (__IPHONE_16_0) && __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_16_0
#if JUCE_IOS_API_VERSION_CAN_BE_BUILT (16, 0)
API_AVAILABLE (ios (16))
static void newFn (UIApplication*)
{

View file

@ -453,7 +453,7 @@ static Displays::Display getDisplayFromScreen (NSScreen* s, CGFloat& mainScreenB
NSSize dpi = [[[s deviceDescription] objectForKey: NSDeviceResolution] sizeValue];
d.dpi = (dpi.width + dpi.height) / 2.0;
#if defined (MAC_OS_VERSION_12_0) && MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_VERSION_12_0
#if JUCE_MAC_API_VERSION_CAN_BE_BUILT (12, 0)
if (@available (macOS 12.0, *))
{
const auto safeInsets = [s safeAreaInsets];

View file

@ -58,7 +58,7 @@ namespace
const auto defaultPort = []
{
#if defined (MAC_OS_VERSION_12_0) && MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_VERSION_12_0
#if JUCE_MAC_API_VERSION_CAN_BE_BUILT (12, 0)
if (@available (macOS 12.0, *))
return kIOMainPortDefault;
#endif

View file

@ -47,7 +47,7 @@ struct CameraDevice::Pimpl
struct PreviewLayerAngleTrait
{
#if defined (__IPHONE_17_0) && __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_17_0
#if JUCE_IOS_API_VERSION_CAN_BE_BUILT (17, 0)
API_AVAILABLE (ios (17))
static void newFn (AVCaptureDevice* device, AVCaptureVideoPreviewLayer* previewLayer, AVCaptureConnection* outputConnection)
{
@ -66,7 +66,7 @@ struct CameraDevice::Pimpl
struct CaptureLayerAngleTrait
{
#if defined (__IPHONE_17_0) && __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_17_0
#if JUCE_IOS_API_VERSION_CAN_BE_BUILT (17, 0)
API_AVAILABLE (ios (17))
static void newFn (AVCaptureDevice* device, AVCaptureVideoPreviewLayer* previewLayer, AVCaptureConnection* outputConnection)
{
@ -1224,7 +1224,7 @@ struct CameraDevice::ViewerComponent : public UIViewComponent
struct AddObserverTrait
{
#if defined (__IPHONE_17_0) && __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_17_0
#if JUCE_IOS_API_VERSION_CAN_BE_BUILT (17, 0)
API_AVAILABLE (ios (17))
static void newFn (ViewerComponent* self)
{