diff options
Diffstat (limited to 'gtk2_ardour')
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'] |