don't bother compiling nsview code swizzling for PPC
authorPaul Davis <paul@linuxaudiosystems.com>
Wed, 4 May 2016 21:38:10 +0000 (17:38 -0400)
committerPaul Davis <paul@linuxaudiosystems.com>
Wed, 4 May 2016 21:38:26 +0000 (17:38 -0400)
The platform has no support for libdispatch which is handy when setting up an objective C block,
and also has no Retina, which means it doesn't suffer the problem this code is intended to fix

gtk2_ardour/au_pluginui.mm

index 7af4b8dd9785bcbf74a7daf62f78d0e1204ea193..f2153aec6a9c98158e57ece5aafe5627ede21832 100644 (file)
@@ -206,12 +206,25 @@ dump_view_tree (NSView* view, int depth, int maxdepth)
  * certainly be possible to make it work for Ardour.
  */
 
-static IMP original_nsview_drawIfNeeded;
-static std::vector<id> plugin_views;
 static uint32_t block_plugin_redraws = 0;
 static const uint32_t minimum_redraw_rate = 30; /* frames per second */
 static const uint32_t block_plugin_redraw_count = 15; /* number of combined plugin redraws to block, if blocking */
 
+#ifdef __ppc
+
+/* PowerPC versions of OS X do not support libdispatch, which we use below when swizzling objective C. But they also don't have Retina
+ * which is the underlying reason for this code. So just skip it on those CPUs.
+ */
+
+
+static void add_plugin_view (id view) {}
+static void remove_plugin_view (id view) {}
+
+#else
+
+static IMP original_nsview_drawIfNeeded;
+static std::vector<id> plugin_views;
+
 static void add_plugin_view (id view)
 {
        if (plugin_views.empty()) {
@@ -264,6 +277,8 @@ static void interposed_drawIfNeeded (id receiver, SEL selector, NSRect rect)
 
 @end
 
+#endif /* __ppc */
+
 /* END OF THE PLUGIN REDRAW HACK */
 
 @implementation NotificationObject