summaryrefslogtreecommitdiff
path: root/gtk2_ardour
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2010-11-13 05:14:48 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2010-11-13 05:14:48 +0000
commitb85b4d9e54caef0585d308ef3bffee21d0e5ae56 (patch)
treea1ebeec149a57be4589ad6cabcd26c597703407c /gtk2_ardour
parent520bc1bed49720333eb1a2be3ea0f813ccaac182 (diff)
make ardour3 build and link on OS X (tiger, at least)
git-svn-id: svn://localhost/ardour2/branches/3.0@8018 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour')
-rw-r--r--gtk2_ardour/ardour_ui.cc5
-rw-r--r--gtk2_ardour/ardour_ui2.cc4
-rw-r--r--gtk2_ardour/ardour_ui_dependents.cc4
-rw-r--r--gtk2_ardour/ardour_ui_ed.cc4
-rw-r--r--gtk2_ardour/au_pluginui.h19
-rw-r--r--gtk2_ardour/au_pluginui.mm289
-rw-r--r--gtk2_ardour/audio_clock.cc3
-rw-r--r--gtk2_ardour/automation_time_axis.cc3
-rw-r--r--gtk2_ardour/cocoacarbon.mm215
-rw-r--r--gtk2_ardour/editor.cc1
-rw-r--r--gtk2_ardour/editor_canvas.cc4
-rw-r--r--gtk2_ardour/editor_drag.cc20
-rw-r--r--gtk2_ardour/editor_export_audio.cc1
-rw-r--r--gtk2_ardour/editor_mixer.cc4
-rw-r--r--gtk2_ardour/editor_route_groups.cc4
-rw-r--r--gtk2_ardour/editor_routes.cc6
-rw-r--r--gtk2_ardour/editor_rulers.cc5
-rw-r--r--gtk2_ardour/editor_tempodisplay.cc4
-rw-r--r--gtk2_ardour/gtk_pianokeyboard.c2
-rw-r--r--gtk2_ardour/io_selector.cc2
-rw-r--r--gtk2_ardour/keyeditor.cc23
-rw-r--r--gtk2_ardour/latency_gui.cc1
-rw-r--r--gtk2_ardour/location_ui.cc19
-rw-r--r--gtk2_ardour/main.cc2
-rw-r--r--gtk2_ardour/midi_region_view.cc8
-rw-r--r--gtk2_ardour/midi_tracer.cc1
-rw-r--r--gtk2_ardour/mixer_strip.cc2
-rw-r--r--gtk2_ardour/mixer_ui.cc4
-rw-r--r--gtk2_ardour/monitor_section.cc6
-rw-r--r--gtk2_ardour/plugin_ui.cc8
-rw-r--r--gtk2_ardour/plugin_ui.h2
-rw-r--r--gtk2_ardour/public_editor.h4
-rw-r--r--gtk2_ardour/rc_option_editor.cc6
-rw-r--r--gtk2_ardour/sfdb_ui.cc4
-rw-r--r--gtk2_ardour/startup.cc8
-rw-r--r--gtk2_ardour/step_editor.cc4
-rw-r--r--gtk2_ardour/utils.cc4
-rw-r--r--gtk2_ardour/wscript20
38 files changed, 412 insertions, 313 deletions
diff --git a/gtk2_ardour/ardour_ui.cc b/gtk2_ardour/ardour_ui.cc
index ef727c1e5e..ad802b72a1 100644
--- a/gtk2_ardour/ardour_ui.cc
+++ b/gtk2_ardour/ardour_ui.cc
@@ -17,7 +17,10 @@
*/
-#define __STDC_FORMAT_MACROS 1
+#ifdef WAF_BUILD
+#include "gtk2ardour-config.h"
+#endif
+
#include <stdint.h>
#include <algorithm>
diff --git a/gtk2_ardour/ardour_ui2.cc b/gtk2_ardour/ardour_ui2.cc
index 6c957033e7..d92df90f8e 100644
--- a/gtk2_ardour/ardour_ui2.cc
+++ b/gtk2_ardour/ardour_ui2.cc
@@ -17,6 +17,10 @@
*/
+#ifdef WAF_BUILD
+#include "gtk2ardour-config.h"
+#endif
+
#include <fcntl.h>
#include <signal.h>
#include <unistd.h>
diff --git a/gtk2_ardour/ardour_ui_dependents.cc b/gtk2_ardour/ardour_ui_dependents.cc
index 4d38c51e20..f7e6a89eb0 100644
--- a/gtk2_ardour/ardour_ui_dependents.cc
+++ b/gtk2_ardour/ardour_ui_dependents.cc
@@ -17,6 +17,10 @@
*/
+#ifdef WAF_BUILD
+#include "gtk2ardour-config.h"
+#endif
+
/* this file exists solely to break compilation dependencies that
would connect changes to the mixer or editor objects.
*/
diff --git a/gtk2_ardour/ardour_ui_ed.cc b/gtk2_ardour/ardour_ui_ed.cc
index 6b4a1b035b..c962c63f4e 100644
--- a/gtk2_ardour/ardour_ui_ed.cc
+++ b/gtk2_ardour/ardour_ui_ed.cc
@@ -17,6 +17,10 @@
*/
+#ifdef WAF_BUILD
+#include "gtk2ardour-config.h"
+#endif
+
/* This file contains any ARDOUR_UI methods that require knowledge of
the editor, and exists so that no compilation dependency exists
between the main ARDOUR_UI modules and the PublicEditor class. This
diff --git a/gtk2_ardour/au_pluginui.h b/gtk2_ardour/au_pluginui.h
index 445ab27ec5..d4cff951b7 100644
--- a/gtk2_ardour/au_pluginui.h
+++ b/gtk2_ardour/au_pluginui.h
@@ -28,6 +28,16 @@ namespace ARDOUR {
class IOProcessor;
}
+class AUPluginUI;
+
+@interface NotificationObject : NSObject {
+ @private
+ AUPluginUI* plugin_ui;
+ NSWindow* cocoa_parent;
+ NSWindow* top_level_parent;
+}
+@end
+
class AUPluginUI : public PlugUIBase, public Gtk::VBox
{
public:
@@ -42,13 +52,20 @@ class AUPluginUI : public PlugUIBase, public Gtk::VBox
void activate ();
void deactivate ();
+ bool non_gtk_gui() const { return true; }
+
void lower_box_realized ();
+ void cocoa_view_resized ();
void on_realize ();
void on_show ();
void on_hide ();
bool on_map_event (GdkEventAny*);
bool on_focus_in_event (GdkEventFocus*);
bool on_focus_out_event (GdkEventFocus*);
+ void forward_key_event (GdkEventKey*);
+
+ bool on_window_show (const std::string& /*title*/);
+ void on_window_hide ();
OSStatus carbon_event (EventHandlerCallRef nextHandlerRef, EventRef event);
@@ -80,7 +97,7 @@ class AUPluginUI : public PlugUIBase, public Gtk::VBox
WindowRef carbon_window;
EventHandlerRef carbon_event_handler;
bool _activating_from_app;
- NSView* packView;
+ NotificationObject* _notify;
bool test_cocoa_view_support ();
bool test_carbon_view_support ();
diff --git a/gtk2_ardour/au_pluginui.mm b/gtk2_ardour/au_pluginui.mm
index cb58f67f6f..0f10af054d 100644
--- a/gtk2_ardour/au_pluginui.mm
+++ b/gtk2_ardour/au_pluginui.mm
@@ -1,9 +1,12 @@
+#include <gtkmm/stock.h>
+
#undef Marker
#define Marker FuckYouAppleAndYourLackOfNameSpaces
+#include "pbd/convert.h"
#include "pbd/error.h"
#include "ardour/audio_unit.h"
-#include "ardour/insert.h"
+#include "ardour/plugin_insert.h"
#undef check // stupid gtk, stupid apple
@@ -15,8 +18,8 @@
#include "au_pluginui.h"
#include "gui_thread.h"
-#include <appleutility/CAAudioUnit.h>
-#include <appleutility/CAComponent.h>
+#include "appleutility/CAAudioUnit.h"
+#include "appleutility/CAComponent.h"
#import <AudioUnit/AUCocoaUIView.h>
#import <CoreAudioKit/AUGenericView.h>
@@ -45,6 +48,65 @@ static const gchar* _automation_mode_strings[] = {
0
};
+@implementation NotificationObject
+
+- (NotificationObject*) initWithPluginUI: (AUPluginUI*) apluginui andCocoaParent: (NSWindow*) cp andTopLevelParent: (NSWindow*) tlp
+{
+ self = [ super init ];
+
+ if (self) {
+ plugin_ui = apluginui;
+ cocoa_parent = cp;
+ top_level_parent = tlp;
+
+ [[NSNotificationCenter defaultCenter] addObserver:self
+ selector:@selector(cocoaParentActivationHandler:)
+ name:NSWindowDidBecomeMainNotification
+ object:nil];
+
+ [[NSNotificationCenter defaultCenter] addObserver:self
+ selector:@selector(cocoaParentBecameKeyHandler:)
+ name:NSWindowDidBecomeKeyNotification
+ object:nil];
+ }
+
+ return self;
+}
+
+- (void)cocoaParentActivationHandler:(NSNotification *)notification
+{
+ NSWindow* notification_window = (NSWindow *)[notification object];
+
+ if (top_level_parent == notification_window || cocoa_parent == notification_window) {
+ if ([notification_window isMainWindow]) {
+ plugin_ui->activate();
+ } else {
+ plugin_ui->deactivate();
+ }
+ }
+}
+
+- (void)cocoaParentBecameKeyHandler:(NSNotification *)notification
+{
+ NSWindow* notification_window = (NSWindow *)[notification object];
+
+ if (top_level_parent == notification_window || cocoa_parent == notification_window) {
+ if ([notification_window isKeyWindow]) {
+ plugin_ui->activate();
+ } else {
+ plugin_ui->deactivate();
+ }
+ }
+}
+
+- (void)auViewResized:(NSNotification *)notification;
+{
+ (void) notification;
+ plugin_ui->cocoa_view_resized();
+}
+
+@end
+
AUPluginUI::AUPluginUI (boost::shared_ptr<PluginInsert> insert)
: PlugUIBase (insert)
, automation_mode_label (_("Automation"))
@@ -67,11 +129,15 @@ AUPluginUI::AUPluginUI (boost::shared_ptr<PluginInsert> insert)
HBox* smaller_hbox = manage (new HBox);
- smaller_hbox->pack_start (preset_label, false, false, 10);
+ smaller_hbox->set_spacing (6);
+ smaller_hbox->pack_start (preset_label, false, false, 4);
smaller_hbox->pack_start (preset_combo, false, false);
smaller_hbox->pack_start (save_button, false, false);
+#if 0
+ /* one day these might be useful with an AU plugin, but not yet */
smaller_hbox->pack_start (automation_mode_label, false, false);
smaller_hbox->pack_start (automation_mode_selector, false, false);
+#endif
smaller_hbox->pack_start (bypass_button, false, true);
VBox* v1_box = manage (new VBox);
@@ -101,9 +167,10 @@ AUPluginUI::AUPluginUI (boost::shared_ptr<PluginInsert> insert)
_activating_from_app = false;
cocoa_parent = 0;
+ _notify = 0;
cocoa_window = 0;
au_view = 0;
- packView = 0;
+ editView = 0;
/* prefer cocoa, fall back to cocoa, but use carbon if its there */
@@ -122,19 +189,26 @@ AUPluginUI::~AUPluginUI ()
{
if (cocoa_parent) {
NSWindow* win = get_nswindow();
- RemoveEventHandler(carbon_event_handler);
+ [[NSNotificationCenter defaultCenter] removeObserver:_notify];
[win removeChildWindow:cocoa_parent];
- } else if (carbon_window) {
- /* never parented */
+
+ }
+
+ if (carbon_window) {
+ /* not parented, just overlaid on top of our window */
DisposeWindow (carbon_window);
}
- if (packView) {
+ if (editView) {
+ CloseComponent (editView);
+ }
+
+ if (au_view) {
/* remove whatever we packed into low_box so that GTK doesn't
mess with it.
*/
- [packView removeFromSuperview];
+ [au_view removeFromSuperview];
}
}
@@ -288,17 +362,29 @@ AUPluginUI::create_cocoa_view ()
[(AUGenericView *)au_view setShowsExpertParameters:YES];
}
- packView = au_view;
-
+ // watch for size changes of the view
+
+ [[NSNotificationCenter defaultCenter] addObserver:_notify
+ selector:@selector(auViewResized:) name:NSWindowDidResizeNotification
+ object:au_view];
+
// Get the size of the new AU View's frame
+
NSRect packFrame;
packFrame = [au_view frame];
prefwidth = packFrame.size.width;
prefheight = packFrame.size.height;
-
+ low_box.set_size_request (prefwidth, prefheight);
+
return 0;
}
+void
+AUPluginUI::cocoa_view_resized ()
+{
+ NSRect packFrame = [au_view frame];
+}
+
int
AUPluginUI::create_carbon_view ()
{
@@ -321,11 +407,14 @@ AUPluginUI::create_carbon_view ()
if ((err = CreateNewWindow(kDocumentWindowClass, attr, &r, &carbon_window)) != noErr) {
error << string_compose (_("AUPluginUI: cannot create carbon window (err: %1)"), err) << endmsg;
+ CloseComponent (editView);
return -1;
}
if ((err = GetRootControl(carbon_window, &root_control)) != noErr) {
error << string_compose (_("AUPlugin: cannot get root control of carbon window (err: %1)"), err) << endmsg;
+ DisposeWindow (carbon_window);
+ CloseComponent (editView);
return -1;
}
@@ -335,6 +424,8 @@ AUPluginUI::create_carbon_view ()
if ((err = AudioUnitCarbonViewCreate (editView, *au->get_au(), carbon_window, root_control, &location, &size, &viewPane)) != noErr) {
error << string_compose (_("AUPluginUI: cannot create carbon plugin view (err: %1)"), err) << endmsg;
+ DisposeWindow (carbon_window);
+ CloseComponent (editView);
return -1;
}
@@ -377,70 +468,14 @@ AUPluginUI::get_nswindow ()
void
AUPluginUI::activate ()
{
- if (carbon_window && cocoa_parent) {
- cerr << "APP activated, activate carbon window " << insert->name() << endl;
- _activating_from_app = true;
- ActivateWindow (carbon_window, TRUE);
- _activating_from_app = false;
- [cocoa_parent makeKeyAndOrderFront:nil];
- }
+ ActivateWindow (carbon_window, TRUE);
+ // [cocoa_parent makeKeyAndOrderFront:nil];
}
void
AUPluginUI::deactivate ()
{
- return;
- cerr << "APP DEactivated, for " << insert->name() << endl;
- _activating_from_app = true;
ActivateWindow (carbon_window, FALSE);
- _activating_from_app = false;
-}
-
-
-OSStatus
-_carbon_event (EventHandlerCallRef nextHandlerRef, EventRef event, void *userData)
-{
- return ((AUPluginUI*)userData)->carbon_event (nextHandlerRef, event);
-}
-
-OSStatus
-AUPluginUI::carbon_event (EventHandlerCallRef nextHandlerRef, EventRef event)
-{
- cerr << "CARBON EVENT\n";
-
- UInt32 eventKind = GetEventKind(event);
- ClickActivationResult howToHandleClick;
- NSWindow* win = get_nswindow ();
-
- cerr << "window " << win << " carbon event type " << eventKind << endl;
-
- switch (eventKind) {
- case kEventWindowHandleActivate:
- cerr << "carbon window for " << insert->name() << " activated\n";
- if (_activating_from_app) {
- cerr << "app activation, ignore window activation\n";
- return noErr;
- }
- [win makeMainWindow];
- return eventNotHandledErr;
- break;
-
- case kEventWindowHandleDeactivate:
- cerr << "carbon window for " << insert->name() << " would have been deactivated\n";
- // never deactivate the carbon window
- return noErr;
- break;
-
- case kEventWindowGetClickActivation:
- cerr << "carbon window CLICK activated\n";
- [win makeKeyAndOrderFront:nil];
- howToHandleClick = kActivateAndHandleClick;
- SetEventParameter(event, kEventParamClickActivation, typeClickActivationResult,
- sizeof(ClickActivationResult), &howToHandleClick);
- break;
- }
-
- return noErr;
}
int
@@ -479,18 +514,9 @@ AUPluginUI::parent_carbon_window ()
// create the cocoa window for the carbon one and make it visible
cocoa_parent = [[NSWindow alloc] initWithWindowRef: carbon_window];
- EventTypeSpec windowEventTypes[] = {
- {kEventClassWindow, kEventWindowGetClickActivation },
- {kEventClassWindow, kEventWindowHandleDeactivate }
- };
-
- EventHandlerUPP ehUPP = NewEventHandlerUPP(_carbon_event);
- OSStatus result = InstallWindowEventHandler (carbon_window, ehUPP,
- sizeof(windowEventTypes) / sizeof(EventTypeSpec),
- windowEventTypes, this, &carbon_event_handler);
- if (result != noErr) {
- return -1;
- }
+ SetWindowActivationScope (carbon_window, kWindowActivationScopeNone);
+
+ _notify = [ [NotificationObject alloc] initWithPluginUI:this andCocoaParent:cocoa_parent andTopLevelParent:win ];
[win addChildWindow:cocoa_parent ordered:NSWindowAbove];
@@ -501,7 +527,6 @@ int
AUPluginUI::parent_cocoa_window ()
{
NSWindow* win = get_nswindow ();
- NSRect packFrame;
if (!win) {
return -1;
@@ -515,21 +540,59 @@ AUPluginUI::parent_cocoa_window ()
error << _("AUPluginUI: no top level window!") << endmsg;
return -1;
}
-
- // Get the size of the new AU View's frame
- packFrame = [au_view frame];
- NSView* view = gdk_quartz_window_get_nsview (low_box.get_window()->gobj());
-
+ NSView* view = gdk_quartz_window_get_nsview (get_toplevel()->get_window()->gobj());
+ GtkRequisition a = top_box.size_request ();
- [view setFrame:packFrame];
- [view addSubview:packView];
+ /* move the au_view down so that it doesn't overlap the top_box contents */
- low_box.set_size_request (packFrame.size.width, packFrame.size.height);
+ NSPoint origin = { 0, a.height };
+
+ [au_view setFrameOrigin:origin];
+ [view addSubview:au_view];
return 0;
}
+static void
+dump_view_tree (NSView* view, int depth)
+{
+ NSArray* subviews = [view subviews];
+ unsigned long cnt = [subviews count];
+
+ for (int d = 0; d < depth; d++) {
+ cerr << '\t';
+ }
+ cerr << " view @ " << view << endl;
+
+ for (unsigned long i = 0; i < cnt; ++i) {
+ NSView* subview = [subviews objectAtIndex:i];
+ dump_view_tree (subview, depth+1);
+ }
+}
+
+void
+AUPluginUI::forward_key_event (GdkEventKey* ev)
+{
+ NSEvent* nsevent = gdk_quartz_event_get_nsevent ((GdkEvent*)ev);
+
+ if (au_view && nsevent) {
+
+ /* filter on nsevent type here because GDK massages FlagsChanged
+ messages into GDK_KEY_{PRESS,RELEASE} but Cocoa won't
+ handle a FlagsChanged message as a keyDown or keyUp
+ */
+
+ if ([nsevent type] == NSKeyDown) {
+ [[[au_view window] firstResponder] keyDown:nsevent];
+ } else if ([nsevent type] == NSKeyUp) {
+ [[[au_view window] firstResponder] keyUp:nsevent];
+ } else if ([nsevent type] == NSFlagsChanged) {
+ [[[au_view window] firstResponder] flagsChanged:nsevent];
+ }
+ }
+}
+
void
AUPluginUI::on_realize ()
{
@@ -553,44 +616,48 @@ AUPluginUI::lower_box_realized ()
}
}
-void
-AUPluginUI::on_hide ()
-{
- // VBox::on_hide ();
- cerr << "AU plugin window hidden\n";
-}
-
bool
-AUPluginUI::on_map_event (GdkEventAny* ev)
+AUPluginUI::on_map_event (GdkEventAny*)
{
return false;
}
void
-AUPluginUI::on_show ()
+AUPluginUI::on_window_hide ()
{
- cerr << "AU plugin window shown\n";
+ if (carbon_window) {
+ HideWindow (carbon_window);
+ ActivateWindow (carbon_window, FALSE);
+ }
- VBox::on_show ();
+ hide_all ();
+}
+
+bool
+AUPluginUI::on_window_show (const string& /*title*/)
+{
+ /* this is idempotent so just call it every time we show the window */
gtk_widget_realize (GTK_WIDGET(low_box.gobj()));
- if (au_view) {
- show_all ();
- } else if (carbon_window) {
- [cocoa_parent setIsVisible:YES];
+ show_all ();
+
+ if (carbon_window) {
ShowWindow (carbon_window);
+ ActivateWindow (carbon_window, TRUE);
}
+
+ return true;
}
bool
-AUPluginUI::start_updating (GdkEventAny* any)
+AUPluginUI::start_updating (GdkEventAny*)
{
return false;
}
bool
-AUPluginUI::stop_updating (GdkEventAny* any)
+AUPluginUI::stop_updating (GdkEventAny*)
{
return false;
}
@@ -604,7 +671,7 @@ create_au_gui (boost::shared_ptr<PluginInsert> plugin_insert, VBox** box)
}
bool
-AUPluginUI::on_focus_in_event (GdkEventFocus* ev)
+AUPluginUI::on_focus_in_event (GdkEventFocus*)
{
//cerr << "au plugin focus in\n";
//Keyboard::magic_widget_grab_focus ();
@@ -612,7 +679,7 @@ AUPluginUI::on_focus_in_event (GdkEventFocus* ev)
}
bool
-AUPluginUI::on_focus_out_event (GdkEventFocus* ev)
+AUPluginUI::on_focus_out_event (GdkEventFocus*)
{
//cerr << "au plugin focus out\n";
//Keyboard::magic_widget_drop_focus ();
diff --git a/gtk2_ardour/audio_clock.cc b/gtk2_ardour/audio_clock.cc
index 3f60c6d3b1..3916830eae 100644
--- a/gtk2_ardour/audio_clock.cc
+++ b/gtk2_ardour/audio_clock.cc
@@ -23,6 +23,7 @@
#include "pbd/convert.h"
#include "pbd/enumwriter.h"
+#include <gtkmm/style.h>
#include <gtkmm2ext/utils.h>
#include "ardour/ardour.h"
@@ -2084,7 +2085,7 @@ AudioClock::set_bbt_reference (framepos_t pos)
}
void
-AudioClock::on_style_changed (const Glib::RefPtr<Style>& old_style)
+AudioClock::on_style_changed (const Glib::RefPtr<Gtk::Style>& old_style)
{
HBox::on_style_changed (old_style);
diff --git a/gtk2_ardour/automation_time_axis.cc b/gtk2_ardour/automation_time_axis.cc
index 6c67d2f8fe..d316e74160 100644
--- a/gtk2_ardour/automation_time_axis.cc
+++ b/gtk2_ardour/automation_time_axis.cc
@@ -973,7 +973,8 @@ AutomationTimeAxisView::set_state (const XMLNode& node, int version)
}
int
-AutomationTimeAxisView::set_state_2X (const XMLNode& node, int version)
+
+AutomationTimeAxisView::set_state_2X (const XMLNode& node, int /*version*/)
{
if (node.name() == X_("gain") && _control->parameter() == Evoral::Parameter (GainAutomation)) {
XMLProperty const * shown = node.property (X_("shown"));
diff --git a/gtk2_ardour/cocoacarbon.mm b/gtk2_ardour/cocoacarbon.mm
index 84e34bd74d..072008e9a1 100644
--- a/gtk2_ardour/cocoacarbon.mm
+++ b/gtk2_ardour/cocoacarbon.mm
@@ -16,171 +16,116 @@
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
-#include <Carbon/Carbon.h>
-#undef check // stupid, stupid carbon
-#undef YES // stupid, stupid gtkmm and/or NSObjC
-#undef NO // ditto
-
-#ifdef GTKOSX
-#include <objc/objc.h>
-#ifdef nil
- /*Stupid OS X defining nil*/
-#undef nil
-#endif
-#endif
+#include <string>
+#include <ctype.h>
+#include <stdlib.h>
+#include <pbd/error.h>
+#include <gtkmm2ext/gtkapplication.h>
+#include <gdk/gdkquartz.h>
+#undef check
+#undef YES
+#undef NO
#include "ardour_ui.h"
#include "actions.h"
#include "opts.h"
-#include <gtkmm2ext/sync-menu.h>
-
-#include <Appkit/Appkit.h>
-#include <gdk/gdkquartz.h>
-sigc::signal<void,bool> ApplicationActivationChanged;
-static EventHandlerRef application_event_handler_ref;
+#include <CoreFoundation/CFLocale.h>
+#import <CoreFoundation/CFString.h>
+#import <Foundation/NSString.h>
+#import <Foundation/NSAutoreleasePool.h>
-/* Called for clicks on the dock icon. Can be used to unminimize or
- * create a new window for example.
- */
+using namespace std;
+using namespace PBD;
-static OSErr
-handle_reopen_application (const AppleEvent *inAppleEvent,
- AppleEvent *outAppleEvent,
- long inHandlerRefcon)
+void
+ARDOUR_UI::platform_specific ()
{
- return noErr;
-}
+ gtk_application_ready ();
+ if (!ARDOUR_COMMAND_LINE::finder_invoked_ardour) {
+
+ /* if invoked from the command line, make sure we're visible */
+
+ [NSApp activateIgnoringOtherApps:1];
+ }
+}
-static OSErr
-handle_print_documents (const AppleEvent *inAppleEvent,
- AppleEvent *outAppleEvent,
- long inHandlerRefcon)
+void
+ARDOUR_UI::platform_setup ()
{
- return noErr;
}
-
-static OSErr
-handle_open_documents (const AppleEvent *inAppleEvent,
- AppleEvent *outAppleEvent,
- long inHandlerRefcon)
+bool
+cocoa_open_url (const char* uri)
{
- AEDescList docs;
-
- if (AEGetParamDesc(inAppleEvent, keyDirectObject, typeAEList, &docs) == noErr) {
- long n = 0;
- AECountItems(&docs, &n);
- UInt8 strBuffer[PATH_MAX+1];
-
- /* ardour only opens 1 session at a time */
-
- FSRef ref;
-
- if (AEGetNthPtr(&docs, 1, typeFSRef, 0, 0, &ref, sizeof(ref), 0) == noErr) {
- if (FSRefMakePath(&ref, strBuffer, sizeof(strBuffer)) == noErr) {
- Glib::ustring utf8_path ((const char*) strBuffer);
- ARDOUR_UI::instance()->idle_load (utf8_path);
- }
- }
- }
+ NSString* struri = [[NSString alloc] initWithUTF8String:uri];
+ NSURL* nsurl = [[NSURL alloc] initWithString:struri];
- return noErr;
-}
+ bool ret = [[NSWorkspace sharedWorkspace] openURL:nsurl];
-static OSErr
-handle_open_application (const AppleEvent *inAppleEvent,
- AppleEvent *outAppleEvent,
- long inHandlerRefcon)
-{
- return noErr;
-}
+ [struri release];
+ [nsurl release];
-static OSStatus
-application_event_handler (EventHandlerCallRef nextHandlerRef, EventRef event, void *userData)
-{
- UInt32 eventKind = GetEventKind (event);
-
- switch (eventKind) {
- case kEventAppActivated:
- ApplicationActivationChanged (true); // EMIT SIGNAL
- return eventNotHandledErr;
-
- case kEventAppDeactivated:
- ApplicationActivationChanged (false); // EMIT SIGNAL
- return eventNotHandledErr;
-
- default:
- // pass-thru all kEventClassApplication events we're not interested in.
- break;
- }
- return eventNotHandledErr;
+ return ret;
}
void
-ARDOUR_UI::platform_specific ()
+set_language_preference ()
{
- Gtk::Widget* widget = ActionManager::get_widget ("/ui/Main/Session/Quit");
- if (widget) {
- ige_mac_menu_set_quit_menu_item ((GtkMenuItem*) widget->gobj());
- }
+ gtk_disable_setlocale ();
- IgeMacMenuGroup* group = ige_mac_menu_add_app_menu_group ();
-
- widget = ActionManager::get_widget ("/ui/Main/Session/About");
- if (widget) {
- ige_mac_menu_add_app_menu_item (group, (GtkMenuItem*) widget->gobj(), 0);
+ if (g_getenv ("LANGUAGE") || g_getenv ("LC_ALL") || g_getenv ("LANG")) {
+ return;
}
- widget = ActionManager::get_widget ("/ui/Main/Session/ToggleOptionsEditor");
- if (widget) {
- ige_mac_menu_add_app_menu_item (group, (GtkMenuItem*) widget->gobj(), 0);
+ if (g_getenv ("ARDOUR_EN")) {
+ return;
}
-}
-void
-ARDOUR_UI::platform_setup ()
-{
- AEInstallEventHandler (kCoreEventClass, kAEOpenDocuments,
- handle_open_documents, 0, true);
-
- AEInstallEventHandler (kCoreEventClass, kAEOpenApplication,
- handle_open_application, 0, true);
-
- AEInstallEventHandler (kCoreEventClass, kAEReopenApplication,
- handle_reopen_application, 0, true);
+ /* the gettext manual is potentially misleading about the utility of
+ LANGUAGE. It notes that if LANGUAGE is set to include a dialect/region-free
+ language code, like "it", it will assume that you mean the main
+ dialect (e.g. "it_IT"). But in reality, it doesn't bother looking for
+ locale dirs with the full name, only the short code (it doesn't
+ know any better).
+
+ Since Apple's preferred language list only consists of short language codes,
+ if we set LANGUAGE then gettext will not look for the relevant long-form
+ variants.
+ */
+
+ /* how to get language preferences with CoreFoundation
+ */
+
+ NSArray* languages = [[NSUserDefaults standardUserDefaults] objectForKey:@"AppleLanguages"];
+
+ /* push into LANGUAGE */
- AEInstallEventHandler (kCoreEventClass, kAEPrintDocuments,
- handle_print_documents, 0, true);
+ if (languages && [languages count] > 0) {
- EventTypeSpec applicationEventTypes[] = {
- {kEventClassApplication, kEventAppActivated },
- {kEventClassApplication, kEventAppDeactivated }
- };
-
- EventHandlerUPP ehUPP = NewEventHandlerUPP (application_event_handler);
-
- InstallApplicationEventHandler (ehUPP, sizeof(applicationEventTypes) / sizeof(EventTypeSpec),
- applicationEventTypes, 0, &application_event_handler_ref);
- if (!ARDOUR_COMMAND_LINE::finder_invoked_ardour) {
-
- /* if invoked from the command line, make sure we're visible */
-
- [NSApp activateIgnoringOtherApps:1];
- }
-}
+ int i, count = [languages count];
+ for (i = 0; i < count; ++i) {
+ if ([[languages objectAtIndex:i]
+ isEqualToString:@"en"]) {
+ count = i+1;
+ break;
+ }
+ }
+ NSRange r = { 0, count };
+ setenv ("LANGUAGE", [[[languages subarrayWithRange:r] componentsJoinedByString:@":"] UTF8String], 0);
+ cout << "LANGUAGE set to " << getenv ("LANGUAGE") << endl;
+ }
-bool
-cocoa_open_url (const char* uri)
-{
- NSString* struri = [[NSString alloc] initWithUTF8String:uri];
- NSURL* nsurl = [[NSURL alloc] initWithString:struri];
+ /* now get AppleLocale value and use that for LANG */
- bool ret = [[NSWorkspace sharedWorkspace] openURL:nsurl];
+ CFLocaleRef cflocale = CFLocaleCopyCurrent();
+ NSString* nslocale = (NSString*) CFLocaleGetValue (cflocale, kCFLocaleIdentifier);
- [struri release];
- [nsurl release];
+ /* the full POSIX locale specification allows for lots of things. that could be an issue. Silly Apple.
+ */
- return ret;
+ cout << "LANG set to " << [nslocale UTF8String] << endl;
+ setenv ("LANG", [nslocale UTF8String], 0);
+ CFRelease (cflocale);
}
diff --git a/gtk2_ardour/editor.cc b/gtk2_ardour/editor.cc
index c245c0b45b..7bbf4493fe 100644
--- a/gtk2_ardour/editor.cc
+++ b/gtk2_ardour/editor.cc
@@ -19,7 +19,6 @@
/* Note: public Editor methods are documented in public_editor.h */
-#define __STDC_LIMIT_MACROS 1
#include <stdint.h>
#include <unistd.h>
#include <cstdlib>
diff --git a/gtk2_ardour/editor_canvas.cc b/gtk2_ardour/editor_canvas.cc
index 28c0708f62..7da8d08f52 100644
--- a/gtk2_ardour/editor_canvas.cc
+++ b/gtk2_ardour/editor_canvas.cc
@@ -17,6 +17,10 @@
*/
+#ifdef WAF_BUILD
+#include "gtk2ardour-config.h"
+#endif
+
#include <libgnomecanvasmm/init.h>
#include <libgnomecanvasmm/pixbuf.h>
#include <jack/types.h>
diff --git a/gtk2_ardour/editor_drag.cc b/gtk2_ardour/editor_drag.cc
index 2a3b6a6edb..b4cfbf06ae 100644
--- a/gtk2_ardour/editor_drag.cc
+++ b/gtk2_ardour/editor_drag.cc
@@ -17,6 +17,10 @@
*/
+#ifdef WAF_BUILD
+#include "gtk2ardour-config.h"
+#endif
+
#include <stdint.h>
#include "pbd/memento_command.h"
@@ -795,11 +799,7 @@ RegionMoveDrag::finished (GdkEvent *, bool movement_occurred)
}
void
-RegionMoveDrag::finished_copy (
- bool const changed_position,
- bool const changed_tracks,
- framecnt_t const drag_delta
- )
+RegionMoveDrag::finished_copy (bool const changed_position, bool const /*changed_tracks*/, framecnt_t const drag_delta)
{
RegionSelection new_views;
PlaylistSet modified_playlists;
@@ -1362,7 +1362,7 @@ RegionCreateDrag::motion (GdkEvent* event, bool first_move)
}
void
-RegionCreateDrag::finished (GdkEvent* event, bool movement_occurred)
+RegionCreateDrag::finished (GdkEvent*, bool movement_occurred)
{
if (!movement_occurred) {
add_region ();
@@ -1514,7 +1514,7 @@ TrimDrag::TrimDrag (Editor* e, ArdourCanvas::Item* i, RegionView* p, list<Region
}
void
-TrimDrag::start_grab (GdkEvent* event, Gdk::Cursor* cursor)
+TrimDrag::start_grab (GdkEvent* event, Gdk::Cursor*)
{
double speed = 1.0;
TimeAxisView* tvp = &_primary->get_time_axis_view ();
@@ -2863,7 +2863,7 @@ FeatureLineDrag::start_grab (GdkEvent* event, Gdk::Cursor* /*cursor*/)
}
void
-FeatureLineDrag::motion (GdkEvent* event, bool)
+FeatureLineDrag::motion (GdkEvent*, bool)
{
double dx = _drags->current_pointer_x() - last_pointer_x();
@@ -2887,7 +2887,7 @@ FeatureLineDrag::motion (GdkEvent* event, bool)
}
void
-FeatureLineDrag::finished (GdkEvent* event, bool)
+FeatureLineDrag::finished (GdkEvent*, bool)
{
_arv = reinterpret_cast<AudioRegionView*> (_item->get_data ("regionview"));
_arv->update_transient(_before, _line->property_x1());
@@ -3978,7 +3978,7 @@ AutomationRangeDrag::start_grab (GdkEvent* event, Gdk::Cursor* cursor)
}
void
-AutomationRangeDrag::motion (GdkEvent* event, bool first_move)
+AutomationRangeDrag::motion (GdkEvent*, bool /*first_move*/)
{
if (_nothing_to_drag) {
return;
diff --git a/gtk2_ardour/editor_export_audio.cc b/gtk2_ardour/editor_export_audio.cc
index 342ccb80e0..444c77437e 100644
--- a/gtk2_ardour/editor_export_audio.cc
+++ b/gtk2_ardour/editor_export_audio.cc
@@ -19,7 +19,6 @@
/* Note: public Editor methods are documented in public_editor.h */
-#define __STDC_FORMAT_MACROS 1
#include <inttypes.h>
#include <unistd.h>
#include <climits>
diff --git a/gtk2_ardour/editor_mixer.cc b/gtk2_ardour/editor_mixer.cc
index de06c146b1..c5006b2ae0 100644
--- a/gtk2_ardour/editor_mixer.cc
+++ b/gtk2_ardour/editor_mixer.cc
@@ -17,6 +17,10 @@
*/
+#ifdef WAF_BUILD
+#include "gtk2ardour-config.h"
+#endif
+
#include <glibmm/miscutils.h>
#include <gtkmm2ext/utils.h>
#include <gtkmm2ext/window_title.h>
diff --git a/gtk2_ardour/editor_route_groups.cc b/gtk2_ardour/editor_route_groups.cc
index ad7c2e4ac6..abdb4d7873 100644
--- a/gtk2_ardour/editor_route_groups.cc
+++ b/gtk2_ardour/editor_route_groups.cc
@@ -17,6 +17,10 @@
*/
+#ifdef WAF_BUILD
+#include "gtk2ardour-config.h"
+#endif
+
#include <cstdlib>
#include <cmath>
diff --git a/gtk2_ardour/editor_routes.cc b/gtk2_ardour/editor_routes.cc
index f8bd503244..dd50bb93d8 100644
--- a/gtk2_ardour/editor_routes.cc
+++ b/gtk2_ardour/editor_routes.cc
@@ -249,7 +249,7 @@ EditorRoutes::focus_out (GdkEventFocus*)
}
bool
-EditorRoutes::enter_notify (GdkEventCrossing* ev)
+EditorRoutes::enter_notify (GdkEventCrossing*)
{
/* arm counter so that ::selection_filter() will deny selecting anything for the
next two attempts to change selection status.
@@ -261,7 +261,7 @@ EditorRoutes::enter_notify (GdkEventCrossing* ev)
}
bool
-EditorRoutes::leave_notify (GdkEventCrossing* ev)
+EditorRoutes::leave_notify (GdkEventCrossing*)
{
selection_countdown = 0;
@@ -1018,7 +1018,7 @@ EditorRoutes::button_press (GdkEventButton* ev)
}
bool
-EditorRoutes::selection_filter (Glib::RefPtr<TreeModel> const &, TreeModel::Path const &path , bool selected)
+EditorRoutes::selection_filter (Glib::RefPtr<TreeModel> const &, TreeModel::Path const&, bool /*selected*/)
{
if (selection_countdown) {
if (--selection_countdown == 0) {
diff --git a/gtk2_ardour/editor_rulers.cc b/gtk2_ardour/editor_rulers.cc
index ff759f4b76..152fef8f83 100644
--- a/gtk2_ardour/editor_rulers.cc
+++ b/gtk2_ardour/editor_rulers.cc
@@ -17,7 +17,10 @@
*/
-#define __STDC_FORMAT_MACROS 1
+#ifdef WAF_BUILD
+#include "gtk2ardour-config.h"
+#endif
+
#include <cstdio> // for sprintf, grrr
#include <cmath>
#include <inttypes.h>
diff --git a/gtk2_ardour/editor_tempodisplay.cc b/gtk2_ardour/editor_tempodisplay.cc
index 98186a8e77..0d0fd4e841 100644
--- a/gtk2_ardour/editor_tempodisplay.cc
+++ b/gtk2_ardour/editor_tempodisplay.cc
@@ -17,6 +17,10 @@
*/
+#ifdef WAF_BUILD
+#include "gtk2ardour-config.h"
+#endif
+
#include <cstdio> // for sprintf, grrr
#include <cstdlib>
#include <cmath>
diff --git a/gtk2_ardour/gtk_pianokeyboard.c b/gtk2_ardour/gtk_pianokeyboard.c
index 4e91c0a671..f9ab9068e4 100644
--- a/gtk2_ardour/gtk_pianokeyboard.c
+++ b/gtk2_ardour/gtk_pianokeyboard.c
@@ -1,5 +1,5 @@
/*-
- * Copyright (c) 2007, 2008 Edward Tomasz NapieraƂa <trasz@FreeBSD.org>
+ * Copyright (c) 2007, 2008 Edward Tomasz NapieraĆ‚a <trasz@FreeBSD.org>
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/gtk2_ardour/io_selector.cc b/gtk2_ardour/io_selector.cc
index 3e8feba60c..30c581367d 100644
--- a/gtk2_ardour/io_selector.cc
+++ b/gtk2_ardour/io_selector.cc
@@ -254,7 +254,7 @@ IOSelectorWindow::on_show ()
}
void
-IOSelectorWindow::io_name_changed (void* src)
+IOSelectorWindow::io_name_changed (void*)
{
ENSURE_GUI_THREAD (*this, &IOSelectorWindow::io_name_changed, src)
diff --git a/gtk2_ardour/keyeditor.cc b/gtk2_ardour/keyeditor.cc
index 2a72adb5dd..83481d8172 100644
--- a/gtk2_ardour/keyeditor.cc
+++ b/gtk2_ardour/keyeditor.cc
@@ -1,3 +1,26 @@
+/*
+ Copyright (C) 2002 Paul Davis
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+*/
+
+#ifdef WAF_BUILD
+#include "gtk2ardour-config.h"
+#endif
+
#include <map>
#include "ardour/profile.h"
diff --git a/gtk2_ardour/latency_gui.cc b/gtk2_ardour/latency_gui.cc
index 87ca39326e..73b6bf1a30 100644
--- a/gtk2_ardour/latency_gui.cc
+++ b/gtk2_ardour/latency_gui.cc
@@ -1,4 +1,3 @@
-#define __STDC_FORMAT_MACROS 1
#include <inttypes.h>
#include <iomanip>
diff --git a/gtk2_ardour/location_ui.cc b/gtk2_ardour/location_ui.cc
index 25a7eee1f8..aadbbfc5b7 100644
--- a/gtk2_ardour/location_ui.cc
+++ b/gtk2_ardour/location_ui.cc
@@ -557,10 +557,8 @@ LocationEditRow::end_changed (ARDOUR::Location *loc)
}
void
-LocationEditRow::start_changed (ARDOUR::Location *loc)
+LocationEditRow::start_changed (ARDOUR::Location*)
{
- ENSURE_GUI_THREAD (*this, &LocationEditRow::start_changed, loc)
-
if (!location) return;
// update end and length
@@ -578,10 +576,8 @@ LocationEditRow::start_changed (ARDOUR::Location *loc)
}
void
-LocationEditRow::name_changed (ARDOUR::Location *loc)
+LocationEditRow::name_changed (ARDOUR::Location *)
{
- ENSURE_GUI_THREAD (*this, &LocationEditRow::name_changed, loc)
-
if (!location) return;
// update end and length
@@ -595,9 +591,8 @@ LocationEditRow::name_changed (ARDOUR::Location *loc)
}
void
-LocationEditRow::location_changed (ARDOUR::Location *loc)
+LocationEditRow::location_changed (ARDOUR::Location*)
{
- ENSURE_GUI_THREAD (*this, &LocationEditRow::location_changed, loc)
if (!location) return;
@@ -614,7 +609,7 @@ LocationEditRow::location_changed (ARDOUR::Location *loc)
}
void
-LocationEditRow::flags_changed (ARDOUR::Location *loc, void *src)
+LocationEditRow::flags_changed (ARDOUR::Location*, void *)
{
if (!location) {
return;
@@ -630,7 +625,7 @@ LocationEditRow::flags_changed (ARDOUR::Location *loc, void *src)
}
void
-LocationEditRow::lock_changed (ARDOUR::Location *loc)
+LocationEditRow::lock_changed (ARDOUR::Location*)
{
if (!location) {
return;
@@ -646,7 +641,7 @@ LocationEditRow::lock_changed (ARDOUR::Location *loc)
}
void
-LocationEditRow::position_lock_style_changed (ARDOUR::Location* loc)
+LocationEditRow::position_lock_style_changed (ARDOUR::Location*)
{
if (!location) {
return;
@@ -826,8 +821,6 @@ struct LocationSortByStart {
void
LocationUI::location_added (Location* location)
{
- ENSURE_GUI_THREAD (*this, &LocationUI::location_added, location)
-
if (location->is_auto_punch()) {
punch_edit_row.set_location(location);
} else if (location->is_auto_loop()) {
diff --git a/gtk2_ardour/main.cc b/gtk2_ardour/main.cc
index 07dd846ae2..fa038b30bb 100644
--- a/gtk2_ardour/main.cc
+++ b/gtk2_ardour/main.cc
@@ -488,7 +488,7 @@ session at this time, because we would lose your connection information.\n"), PR
}
static void
-sigpipe_handler (int sig)
+sigpipe_handler (int /*signal*/)
{
/* XXX fix this so that we do this again after a reconnect to JACK
*/
diff --git a/gtk2_ardour/midi_region_view.cc b/gtk2_ardour/midi_region_view.cc
index 6fd96f3481..fcc8b6d0b3 100644
--- a/gtk2_ardour/midi_region_view.cc
+++ b/gtk2_ardour/midi_region_view.cc
@@ -317,7 +317,7 @@ MidiRegionView::enter_notify (GdkEventCrossing* ev)
}
bool
-MidiRegionView::leave_notify (GdkEventCrossing* ev)
+MidiRegionView::leave_notify (GdkEventCrossing*)
{
trackview.editor().hide_verbose_canvas_cursor ();
delete _ghost_note;
@@ -2677,7 +2677,7 @@ MidiRegionView::note_entered(ArdourCanvas::CanvasNoteEvent* ev)
}
void
-MidiRegionView::note_left (ArdourCanvas::CanvasNoteEvent* note)
+MidiRegionView::note_left (ArdourCanvas::CanvasNoteEvent*)
{
Editor* editor = dynamic_cast<Editor*>(&trackview.editor());
@@ -2694,7 +2694,7 @@ MidiRegionView::note_left (ArdourCanvas::CanvasNoteEvent* note)
}
void
-MidiRegionView::note_mouse_position (float x_fraction, float y_fraction, bool can_set_cursor)
+MidiRegionView::note_mouse_position (float x_fraction, float /*y_fraction*/, bool can_set_cursor)
{
Editor* editor = dynamic_cast<Editor*>(&trackview.editor());
@@ -3027,7 +3027,7 @@ MidiRegionView::drop_down_keys ()
}
void
-MidiRegionView::maybe_select_by_position (GdkEventButton* ev, double x, double y)
+MidiRegionView::maybe_select_by_position (GdkEventButton* ev, double /*x*/, double y)
{
double note = midi_stream_view()->y_to_note(y);
Events e;
diff --git a/gtk2_ardour/midi_tracer.cc b/gtk2_ardour/midi_tracer.cc
index 8a50a83314..51c9ae174f 100644
--- a/gtk2_ardour/midi_tracer.cc
+++ b/gtk2_ardour/midi_tracer.cc
@@ -17,7 +17,6 @@
*/
-#define __STDC_FORMAT_MACROS 1
#include <stdint.h>
#include <sstream>
diff --git a/gtk2_ardour/mixer_strip.cc b/gtk2_ardour/mixer_strip.cc
index ec4111bc6e..e11f1712da 100644
--- a/gtk2_ardour/mixer_strip.cc
+++ b/gtk2_ardour/mixer_strip.cc
@@ -1386,7 +1386,7 @@ MixerStrip::route_group_changed ()
void
-MixerStrip::route_gui_changed (string what_changed, void* ignored)
+MixerStrip::route_gui_changed (string what_changed, void*)
{
ENSURE_GUI_THREAD (*this, &MixerStrip::route_gui_changed, what_changed, ignored)
diff --git a/gtk2_ardour/mixer_ui.cc b/gtk2_ardour/mixer_ui.cc
index 11be303099..4a3ec325a1 100644
--- a/gtk2_ardour/mixer_ui.cc
+++ b/gtk2_ardour/mixer_ui.cc
@@ -17,6 +17,10 @@
*/
+#ifdef WAF_BUILD
+#include "gtk2ardour-config.h"
+#endif
+
#include <algorithm>
#include <map>
#include <sigc++/bind.h>
diff --git a/gtk2_ardour/monitor_section.cc b/gtk2_ardour/monitor_section.cc
index 4ec4166dd1..8173e8833d 100644
--- a/gtk2_ardour/monitor_section.cc
+++ b/gtk2_ardour/monitor_section.cc
@@ -954,7 +954,7 @@ MonitorSection::solo_blink (bool onoff)
}
bool
-MonitorSection::cancel_solo (GdkEventButton* ev)
+MonitorSection::cancel_solo (GdkEventButton*)
{
if (_session) {
if (_session->soloing()) {
@@ -968,7 +968,7 @@ MonitorSection::cancel_solo (GdkEventButton* ev)
}
bool
-MonitorSection::cancel_isolate (GdkEventButton* ev)
+MonitorSection::cancel_isolate (GdkEventButton*)
{
if (_session) {
boost::shared_ptr<RouteList> rl (_session->get_routes ());
@@ -979,7 +979,7 @@ MonitorSection::cancel_isolate (GdkEventButton* ev)
}
bool
-MonitorSection::cancel_audition (GdkEventButton* ev)
+MonitorSection::cancel_audition (GdkEventButton*)
{
if (_session) {
_session->cancel_audition();
diff --git a/gtk2_ardour/plugin_ui.cc b/gtk2_ardour/plugin_ui.cc
index 90f5a6cbd1..291800615d 100644
--- a/gtk2_ardour/plugin_ui.cc
+++ b/gtk2_ardour/plugin_ui.cc
@@ -277,13 +277,13 @@ PluginUIWindow::create_vst_editor(boost::shared_ptr<PluginInsert>)
}
bool
-#if defined (HAVE_AUDIOUNITS) && defined (GTKOSX)
+#ifdef GTKOSX
PluginUIWindow::create_audiounit_editor (boost::shared_ptr<PluginInsert> insert)
#else
PluginUIWindow::create_audiounit_editor (boost::shared_ptr<PluginInsert>)
#endif
{
-#if !defined(HAVE_AUDIOUNITS) || !defined(GTKOSX)
+#ifndef GTKOSX
return false;
#else
VBox* box;
@@ -299,13 +299,13 @@ PluginUIWindow::create_audiounit_editor (boost::shared_ptr<PluginInsert>)
}
void
-#if defined (HAVE_AUDIOUNITS) && defined(GTKOSX)
+#ifdef GTKOSX
PluginUIWindow::app_activated (bool yn)
#else
PluginUIWindow::app_activated (bool)
#endif
{
-#if defined (HAVE_AUDIOUNITS) && defined(GTKOSX)
+#ifdef GTKOSX
cerr << "APP activated ? " << yn << endl;
if (_pluginui) {
if (yn) {
diff --git a/gtk2_ardour/plugin_ui.h b/gtk2_ardour/plugin_ui.h
index adc3f1dc2b..c279268d94 100644
--- a/gtk2_ardour/plugin_ui.h
+++ b/gtk2_ardour/plugin_ui.h
@@ -325,7 +325,7 @@ class VSTPluginUI : public PlugUIBase, public Gtk::VBox
};
#endif // VST_SUPPORT
-#ifdef HAVE_AUDIOUNITS
+#ifdef AUDIOUNITS
/* this function has to be in a .mm file */
extern PlugUIBase* create_au_gui (boost::shared_ptr<ARDOUR::PluginInsert>, Gtk::VBox**);
#endif
diff --git a/gtk2_ardour/public_editor.h b/gtk2_ardour/public_editor.h
index 341b023c12..711b069e25 100644
--- a/gtk2_ardour/public_editor.h
+++ b/gtk2_ardour/public_editor.h
@@ -20,6 +20,10 @@
#ifndef __gtk_ardour_public_editor_h__
#define __gtk_ardour_public_editor_h__
+#ifdef WAF_BUILD
+#include "gtk2ardour-config.h"
+#endif
+
#include <map>
#include <string>
diff --git a/gtk2_ardour/rc_option_editor.cc b/gtk2_ardour/rc_option_editor.cc
index b3ef8189cd..1cb29e5be2 100644
--- a/gtk2_ardour/rc_option_editor.cc
+++ b/gtk2_ardour/rc_option_editor.cc
@@ -1,3 +1,7 @@
+#ifdef WAF_BUILD
+#include "gtk2ardour-config.h"
+#endif
+
#include <gtkmm/liststore.h>
#include <gtkmm/stock.h>
#include <gtkmm/scale.h>
@@ -715,7 +719,7 @@ RCOptionEditor::RCOptionEditor ()
if (hwcpus > 1) {
add_option (_("Misc"), new OptionEditorHeading (_("DSP CPU Utilization")));
- ComboOption<uint32_t>* procs = new ComboOption<uint32_t> (
+ ComboOption<int32_t>* procs = new ComboOption<int32_t> (
"processor-usage",
_("Signal processing uses"),
sigc::mem_fun (*_rc_config, &RCConfiguration::get_processor_usage),
diff --git a/gtk2_ardour/sfdb_ui.cc b/gtk2_ardour/sfdb_ui.cc
index d6bd6341cf..aed3d52089 100644
--- a/gtk2_ardour/sfdb_ui.cc
+++ b/gtk2_ardour/sfdb_ui.cc
@@ -17,6 +17,10 @@
*/
+#ifdef WAF_BUILD
+#include "gtk2ardour-config.h"
+#endif
+
#include <map>
#include <cerrno>
#include <sstream>
diff --git a/gtk2_ardour/startup.cc b/gtk2_ardour/startup.cc
index 186608e596..c32b798651 100644
--- a/gtk2_ardour/startup.cc
+++ b/gtk2_ardour/startup.cc
@@ -17,6 +17,10 @@
*/
+#ifdef WAF_BUILD
+#include "gtk2ardour-config.h"
+#endif
+
#include <fstream>
#include <algorithm>
@@ -674,7 +678,7 @@ ArdourStartup::setup_new_session_page ()
new_folder_chooser.set_title (_("Select folder for session"));
#ifdef GTKOSX
- new_folder_chooser->add_shortcut_folder ("/Volumes");
+ new_folder_chooser.add_shortcut_folder ("/Volumes");
#endif
vbox1->pack_start (*hbox2, false, false);
@@ -928,7 +932,7 @@ ArdourStartup::setup_existing_session_page ()
existing_session_chooser.signal_file_set().connect (sigc::mem_fun (*this, &ArdourStartup::existing_session_selected));
#ifdef GTKOSX
- existing_session_chooser->add_shortcut_folder ("/Volumes");
+ existing_session_chooser.add_shortcut_folder ("/Volumes");
#endif
HBox* hbox = manage (new HBox);
diff --git a/gtk2_ardour/step_editor.cc b/gtk2_ardour/step_editor.cc
index 481c60d7aa..5e7969bb3a 100644
--- a/gtk2_ardour/step_editor.cc
+++ b/gtk2_ardour/step_editor.cc
@@ -186,13 +186,13 @@ StepEditor::check_step_edit ()
}
int
-StepEditor::step_add_bank_change (uint8_t channel, uint8_t bank)
+StepEditor::step_add_bank_change (uint8_t /*channel*/, uint8_t /*bank*/)
{
return 0;
}
int
-StepEditor::step_add_program_change (uint8_t channel, uint8_t program)
+StepEditor::step_add_program_change (uint8_t /*channel*/, uint8_t /*program*/)
{
return 0;
}
diff --git a/gtk2_ardour/utils.cc b/gtk2_ardour/utils.cc
index fe81ce54ff..621cdb0dd9 100644
--- a/gtk2_ardour/utils.cc
+++ b/gtk2_ardour/utils.cc
@@ -17,6 +17,10 @@
*/
+#ifdef WAF_BUILD
+#include "gtk2ardour-config.h"
+#endif
+
#include <pango/pangoft2.h> // for fontmap resolution control for GnomeCanvas
#include <pango/pangocairo.h> // for fontmap resolution control for GnomeCanvas
diff --git a/gtk2_ardour/wscript b/gtk2_ardour/wscript
index 52a28f286f..c54287e666 100644
--- a/gtk2_ardour/wscript
+++ b/gtk2_ardour/wscript
@@ -277,9 +277,10 @@ def build(bld):
obj.target = 'ardour-3.0'
obj.install_path = os.path.join(bld.env['LIBDIR'], 'ardour3')
obj.uselib = 'UUID FLAC GLIBMM GTHREAD GTK GNOMECANVAS OGG ALSA CURL DL'
- obj.uselib += ' GTKMM GNOMECANVASMM OSX GTKOSX COREAUDIO'
+ obj.uselib += ' GTKMM GNOMECANVASMM '
+ obj.uselib += ' AUDIOUNITS OSX GTKOSX '
obj.uselib_local = '''libpbd libmidipp libtaglib libardour libardour_cp
- libgtkmm2ext libtaglib'''
+ libgtkmm2ext libappleutility libtaglib'''
obj.cflags = ['-DPACKAGE="gtk2_ardour"']
obj.cxxflags = ['-DPACKAGE="gtk2_ardour"']
obj.cxxflags += ['-DVERSIONSTRING="' + bld.env['VERSION'] + '"']
@@ -289,6 +290,7 @@ def build(bld):
obj.cxxflags += ['-DLOCALEDIR="' + os.path.join(
os.path.normpath(bld.env['DATADIR']), 'locale') + '"']
obj.cxxflags += ['-DPROGRAM_NAME="' + bld.env['PROGRAM_NAME'] + '"']
+ obj.cxxflags += ['-I../libs']
if bld.env['HAVE_SLV2']:
obj.source += [ 'lv2_plugin_ui.cc' ]
@@ -304,14 +306,10 @@ def build(bld):
if bld.env['PHONE_HOME']:
obj.cxxflags += [ '-DPHONE_HOME' ]
- if bld.env['GTKOSX']:
+ if bld.env['COREAUDIO']:
TaskGen.task_gen.mappings['.mm'] = TaskGen.task_gen.mappings['.cc']
- obj.source += [ 'cocoacarbon.mm' ]
-
- if bld.env['AUDIOUNITS']:
- obj.source += [ 'au_pluginui.mm' ]
- obj.uselib_local += ' libappleutility '
-
+ obj.source += [ 'cocoacarbon.mm', 'au_pluginui.mm' ]
+ obj.uselib_local += ' libappleutility '
else:
obj.source += [ 'x11.cc' ]
@@ -346,13 +344,13 @@ def build(bld):
obj = bld.new_task_gen('subst')
obj.source = 'ardev_common.sh.in'
obj.target = 'ardev_common_waf.sh'
- obj.chmod = 0o755
+ obj.chmod = 0755
obj.dict = wrapper_subst_dict
obj = bld.new_task_gen('subst')
obj.source = 'ardour.sh.in'
obj.target = 'ardour3'
- obj.chmod = 0o755
+ obj.chmod = 0755
obj.dict = wrapper_subst_dict
obj.install_path = bld.env['BINDIR']