diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2008-02-13 16:38:14 +0000 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2008-02-13 16:38:14 +0000 |
commit | 35b9bf0567beb7c795f395bd0ca528812d5aa9ac (patch) | |
tree | 02f7b977803c6ee1e321726c7b9fccc31356fade | |
parent | b248526fe35a846af0f62985c18e62e3e8817f9c (diff) |
"boot" messages; more AU fixes; new SAE ui.conf file
git-svn-id: svn://localhost/ardour2/branches/2.0-ongoing@3049 d708f5d6-7413-0410-9779-e7cbd77b26cf
-rw-r--r-- | gtk2_ardour/ardour2_ui_sae.conf | 95 | ||||
-rw-r--r-- | gtk2_ardour/ardour_ui.cc | 4 | ||||
-rw-r--r-- | gtk2_ardour/editor.cc | 47 | ||||
-rw-r--r-- | gtk2_ardour/editor.h | 2 | ||||
-rw-r--r-- | gtk2_ardour/redirect_box.cc | 1 | ||||
-rw-r--r-- | gtk2_ardour/splash.cc | 16 | ||||
-rw-r--r-- | gtk2_ardour/splash.h | 2 | ||||
-rw-r--r-- | gtk2_ardour/ui_config.cc | 17 | ||||
-rw-r--r-- | libs/ardour/ardour/ardour.h | 1 | ||||
-rw-r--r-- | libs/ardour/ardour/audio_unit.h | 5 | ||||
-rw-r--r-- | libs/ardour/audio_unit.cc | 218 | ||||
-rw-r--r-- | libs/ardour/globals.cc | 7 | ||||
-rw-r--r-- | libs/ardour/route.cc | 3 | ||||
-rw-r--r-- | libs/ardour/session_state.cc | 2 | ||||
-rw-r--r-- | libs/pbd/misc.c | 4 | ||||
-rw-r--r-- | svn_revision.h | 2 | ||||
-rwxr-xr-x | tools/osx_packaging/osx_build | 2 |
17 files changed, 290 insertions, 138 deletions
diff --git a/gtk2_ardour/ardour2_ui_sae.conf b/gtk2_ardour/ardour2_ui_sae.conf new file mode 100644 index 0000000000..b9fac38909 --- /dev/null +++ b/gtk2_ardour/ardour2_ui_sae.conf @@ -0,0 +1,95 @@ +<?xml version="1.0" encoding="UTF-8"?> +<Ardour> + <Canvas> + <Option name="active crossfade" value="e8ed3d77"/> + <Option name="audio bus base" value="dbd1ea68"/> + <Option name="audio track base" value="c6d3d868"/> + <Option name="automation line" value="44bc59ff"/> + <Option name="automation track fill" value="a0a0ce68"/> + <Option name="automation track outline" value="282828ff"/> + <Option name="cdmarkerbar" value="9090a3ff"/> + <Option name="clipped waveform" value="ff0000e5"/> + <Option name="control point fill" value="000000ff"/> + <Option name="control point outline" value="000000ff"/> + <Option name="control point selected" value="00ff00ff"/> + <Option name="control point" value="ff0000ff"/> + <Option name="crossfade editor base" value="282d49ff"/> + <Option name="crossfade editor line shading" value="00a0d154"/> + <Option name="crossfade editor line" value="000000ff"/> + <Option name="crossfade editor point fill" value="00ff00ff"/> + <Option name="crossfade editor point outline" value="0000ffff"/> + <Option name="crossfade editor wave" value="ffffff28"/> + <Option name="crossfade line" value="000000ff"/> + <Option name="EditPoint" value="0000ffff"/> + <Option name="EnteredAutomationLine" value="dd6363ff"/> + <Option name="entered control point outline" value="ff0000ee"/> + <Option name="entered control point selected" value="ff3535ff"/> + <Option name="entered control point" value="000000cc"/> + <Option name="EnteredGainLine" value="dd6363ff"/> + <Option name="EnteredMarker" value="dd6363ff"/> + <Option name="FrameHandle" value="7c00ff96"/> + <Option name="GainLineInactive" value="9fbca4c5"/> + <Option name="GainLine" value="00bc20ff"/> + <Option name="GhostTrackBase" value="44007c7f"/> + <Option name="GhostTrackWaveClip" value="ff000000"/> + <Option name="GhostTrackWave" value="02fd004c"/> + <Option name="GhostTrackZeroLine" value="e500e566"/> + <Option name="ImageTrack" value="ddddd8ff"/> + <Option name="inactive crossfade" value="e8ed3d77"/> + <Option name="location cd marker" value="1ee8c4ff"/> + <Option name="location loop" value="35964fff"/> + <Option name="location marker" value="c4f411ff"/> + <Option name="location punch" value="7c3a3aff"/> + <Option name="location range" value="497a59ff"/> + <Option name="marker bar separator" value="30303088"/> + <Option name="markerbar" value="9898a3ff"/> + <Option name="MarkerDragLine" value="004f00f9"/> + <Option name="marker label" value="000000ff"/> + <Option name="MarkerTrack" value="ddddd8ff"/> + <Option name="MeasureLineBar" value="8c8c988c"/> + <Option name="MeasureLineBeat" value="72727266"/> + <Option name="meterbar" value="666672ff"/> + <Option name="MeterColorBase" value="0000ffff"/> + <Option name="MeterColorClip" value="ff0000ff"/> + <Option name="MeterColorMid" value="73f9baff"/> + <Option name="MeterColorTop" value="00fd5dff"/> + <Option name="MeterMarker" value="f2425bff"/> + <Option name="midi bus base" value="ff0000ee"/> + <Option name="midi track base" value="ff8f8f3d"/> + <Option name="NameHighlightFill" value="0000ffff"/> + <Option name="NameHighlightOutline" value="7c00ff96"/> + <Option name="PlayHead" value="ff0000ff"/> + <Option name="processor automation line" value="7aa3f9ff"/> + <Option name="PunchLine" value="a80000ff"/> + <Option name="RangeDragBarRect" value="969696c6"/> + <Option name="RangeDragRect" value="82c696c6"/> + <Option name="rangemarker bar" value="7f7f8cff"/> + <Option name="RecordingRect" value="e5c6c6ff"/> + <Option name="region base" value="99a7b584"/> + <Option name="RubberBandRect" value="c6c6c659"/> + <Option name="selected crossfade editor line" value="00dbdbff"/> + <Option name="selected crossfade editor wave" value="f9ea14a0"/> + <Option name="selected region base" value="130505ff"/> + <Option name="selected waveform fill" value="e6e6fac8"/> + <Option name="selected waveform outline" value="1a1a1acc"/> + <Option name="SelectionRect" value="e8f4d377"/> + <Option name="Selection" value="636363b2"/> + <Option name="tempo bar" value="72727fff"/> + <Option name="TempoMarker" value="f2425bff"/> + <Option name="TimeAxisFrame" value="000000cb"/> + <Option name="time-stretch-fill" value="e2b5b596"/> + <Option name="time-stretch-outline" value="63636396"/> + <Option name="TransportDragRect" value="969696c6"/> + <Option name="TransportLoopRect" value="1e7728f9"/> + <Option name="TransportMarkerBar" value="8c8c96ff"/> + <Option name="TransportPunchRect" value="6d2828e5"/> + <Option name="TrimHandleLocked" value="ea0f0f28"/> + <Option name="TrimHandle" value="1900ff44"/> + <Option name="verbose canvas cursor" value="f4f214bc"/> + <Option name="VestigialFrame" value="00000092"/> + <Option name="waveform fill" value="3d475378"/> + <Option name="waveform outline" value="0f0f0fcc"/> + <Option name="ZeroLine" value="bdbdbd8d"/> + <Option name="ZoomRect" value="c6d1b26d"/> + </Canvas> +</Ardour> diff --git a/gtk2_ardour/ardour_ui.cc b/gtk2_ardour/ardour_ui.cc index b9b38d650a..7a6a46595d 100644 --- a/gtk2_ardour/ardour_ui.cc +++ b/gtk2_ardour/ardour_ui.cc @@ -162,10 +162,6 @@ ARDOUR_UI::ARDOUR_UI (int *argcp, char **argvp[]) _auto_display_errors = false; #endif - if (getenv ("ARDOUR_DEBUG_UPDATES")) { - gdk_window_set_debug_updates (true); - } - about = 0; splash = 0; diff --git a/gtk2_ardour/editor.cc b/gtk2_ardour/editor.cc index b2a327c8c9..7c77a44194 100644 --- a/gtk2_ardour/editor.cc +++ b/gtk2_ardour/editor.cc @@ -4371,39 +4371,40 @@ Editor::get_regions_for_action (RegionSelection& rs, bool allow_entered) rs.add (entered_regionview); return; } - } - } else { - use_regions_at = false; - } - rs = selection->regions; + } else { - /* consider adding the entered regionview */ + /* no regions selected, so get all regions at the edit point across + all selected tracks. + */ - if (allow_entered && entered_regionview && (mouse_mode == Editing::MouseObject)) { - - /* only add the entered regionview if its not selected OR - (we're not going to use regions at edit point OR its track is not selected) + nframes64_t where = get_preferred_edit_position(); + get_regions_at (rs, where, selection->tracks); - this avoids duplicate regions ending up in "rs" - */ + /* if the entered regionview wasn't selected and neither was its track + then add it. + */ - if (!selection->selected (entered_regionview) && - (!use_regions_at || !selection->selected (&entered_regionview->get_time_axis_view()))) { - rs.add (entered_regionview); + if (!selection->selected (entered_regionview) && + !selection->selected (&entered_regionview->get_time_axis_view())) { + rs.add (entered_regionview); + } } - } - if (use_regions_at) { + } else { + + /* just use the selected regions */ + + rs = selection->regions; - /* nothing selected, so get all regions at the edit point across - all selected tracks + /* if the entered regionview wasn't selected and we allow this sort of thing, + then add it. */ - - if (!selection->tracks.empty()) { - nframes64_t where = get_preferred_edit_position(); - get_regions_at (rs, where, selection->tracks); + + if (allow_entered && entered_regionview && !selection->selected (entered_regionview)) { + rs.add (entered_regionview); } + } } diff --git a/gtk2_ardour/editor.h b/gtk2_ardour/editor.h index 54e7ca6adf..f6f4188b58 100644 --- a/gtk2_ardour/editor.h +++ b/gtk2_ardour/editor.h @@ -2062,7 +2062,7 @@ public: void get_regions_at (RegionSelection&, nframes64_t where, const TrackSelection& ts) const; void get_regions_after (RegionSelection&, nframes64_t where, const TrackSelection& ts) const; - void get_regions_for_action (RegionSelection&, bool allowed_entered_regionview = true); + void get_regions_for_action (RegionSelection&, bool allowed_entered_regionview = false); sigc::connection fast_screen_update_connection; gint start_updating (); diff --git a/gtk2_ardour/redirect_box.cc b/gtk2_ardour/redirect_box.cc index 0611c98e2a..fac1696dcb 100644 --- a/gtk2_ardour/redirect_box.cc +++ b/gtk2_ardour/redirect_box.cc @@ -402,6 +402,7 @@ RedirectBox::insert_plugin_chosen (boost::shared_ptr<Plugin> plugin) if (_route->add_redirect (redirect, this, &err_streams)) { weird_plugin_dialog (*plugin, err_streams, _route); } else { + redirect->set_active (true, 0); redirect->active_changed.connect (bind (mem_fun (*this, &RedirectBox::show_redirect_active_r), boost::weak_ptr<Redirect>(redirect))); } } diff --git a/gtk2_ardour/splash.cc b/gtk2_ardour/splash.cc index 1b0bca2e03..3c5201d43b 100644 --- a/gtk2_ardour/splash.cc +++ b/gtk2_ardour/splash.cc @@ -3,6 +3,7 @@ #include <pbd/failed_constructor.h> #include <ardour/ardour.h> +#include "gui_thread.h" #include "splash.h" #include "i18n.h" @@ -50,6 +51,8 @@ Splash::Splash () set_default_size (pixbuf->get_width(), pixbuf->get_height()); the_splash = this; + + ARDOUR::BootMessage.connect (mem_fun (*this, &Splash::boot_message)); } void @@ -93,12 +96,19 @@ Splash::expose (GdkEventExpose* ev) Glib::RefPtr<Gtk::Style> style = darea.get_style(); Glib::RefPtr<Gdk::GC> white = style->get_white_gc(); + cerr << "redraw in expose\n"; window->draw_layout (white, 10, pixbuf->get_height() - 30, layout); return true; } void +Splash::boot_message (std::string msg) +{ + message (msg); +} + +void Splash::message (const string& msg) { string str ("<b>"); @@ -107,5 +117,9 @@ Splash::message (const string& msg) layout->set_markup (str); darea.queue_draw (); - get_window()->process_updates (true); + + Glib::RefPtr<Gdk::Window> win = get_window(); + if (win) { + win->process_updates (true); + } } diff --git a/gtk2_ardour/splash.h b/gtk2_ardour/splash.h index 07532d9344..a034ddad86 100644 --- a/gtk2_ardour/splash.h +++ b/gtk2_ardour/splash.h @@ -50,6 +50,8 @@ class Splash : public Gtk::Window Glib::RefPtr<Gdk::Pixbuf> pixbuf; Gtk::DrawingArea darea; Glib::RefPtr<Pango::Layout> layout; + + void boot_message (std::string); }; #endif /* __ardour_gtk_splash_h__ */ diff --git a/gtk2_ardour/ui_config.cc b/gtk2_ardour/ui_config.cc index 78574542d6..600a03df48 100644 --- a/gtk2_ardour/ui_config.cc +++ b/gtk2_ardour/ui_config.cc @@ -57,10 +57,19 @@ int UIConfiguration::load_defaults () { int found = 0; - std::string rcfile = find_config_file ("ardour2_ui_default.conf"); - - if (rcfile.length()) - { + std::string rcfile; + const char* ui_conf; + + ui_conf = getenv ("ARDOUR_UI_CONF"); + + if (ui_conf && ui_conf[0] != '\0') { + rcfile = find_config_file (ui_conf); + } else { + rcfile = find_config_file ("ardour2_ui_default.conf"); + } + + if (rcfile.length()) { + XMLTree tree; found = 1; diff --git a/libs/ardour/ardour/ardour.h b/libs/ardour/ardour/ardour.h index dbc08fff7c..9da1e924e3 100644 --- a/libs/ardour/ardour/ardour.h +++ b/libs/ardour/ardour/ardour.h @@ -43,6 +43,7 @@ namespace ARDOUR { extern OSC* osc; static const nframes_t max_frames = JACK_MAX_FRAMES; + extern sigc::signal<void,std::string> BootMessage; int init (bool with_vst, bool try_optimization); int cleanup (); diff --git a/libs/ardour/ardour/audio_unit.h b/libs/ardour/ardour/audio_unit.h index 0ddd4c1a50..b63aa5ce85 100644 --- a/libs/ardour/ardour/audio_unit.h +++ b/libs/ardour/ardour/audio_unit.h @@ -52,6 +52,7 @@ struct AUParameterDescriptor : public Plugin::ParameterDescriptor { AudioUnitScope scope; AudioUnitElement element; float default_value; + bool automatable; }; class AUPlugin : public ARDOUR::Plugin @@ -113,7 +114,6 @@ class AUPlugin : public ARDOUR::Plugin private: boost::shared_ptr<CAComponent> comp; boost::shared_ptr<CAAudioUnit> unit; - AUParamInfo* param_info; AudioStreamBasicDescription streamFormat; bool initialized; @@ -128,6 +128,7 @@ class AUPlugin : public ARDOUR::Plugin int set_input_format (); int set_stream_format (int scope, uint32_t cnt); int _set_block_size (nframes_t nframes); + void discover_parameters (); std::vector<std::pair<uint32_t, uint32_t> > parameter_map; uint32_t current_maxbuf; @@ -135,7 +136,7 @@ class AUPlugin : public ARDOUR::Plugin nframes_t cb_offset; vector<Sample*>* current_buffers; nframes_t frames_processed; - + std::vector<AUParameterDescriptor> descriptors; }; diff --git a/libs/ardour/audio_unit.cc b/libs/ardour/audio_unit.cc index 30f97dea96..6640740ad6 100644 --- a/libs/ardour/audio_unit.cc +++ b/libs/ardour/audio_unit.cc @@ -59,7 +59,6 @@ AUPlugin::AUPlugin (AudioEngine& engine, Session& session, boost::shared_ptr<CAC Plugin (engine, session), comp (_comp), unit (new CAAudioUnit), - param_info (0), initialized (false), buffers (0), current_maxbuf (0), @@ -110,99 +109,9 @@ AUPlugin::AUPlugin (AudioEngine& engine, Session& session, boost::shared_ptr<CAC throw failed_constructor(); } - /* discover writable parameters */ - - cerr << "get param info, there are " << global_elements << " global elements\n"; + discover_parameters (); - param_info = new AUParamInfo (unit->AU(), false, false, kAudioUnitScope_Global); - - cerr << "discovered " << param_info->NumParams() << " parameters\n"; - - for (uint32_t i = 0; i < param_info->NumParams(); ++i) { - - AUParameterDescriptor d; - - d.id = param_info->ParamID (i); - - const CAAUParameter* param = param_info->GetParamInfo (d.id); - const AudioUnitParameterInfo& info (param->ParamInfo()); - - d.scope = param_info->GetScope (); - d.element = param_info->GetElement (); - - /* info.units to consider */ - /* - kAudioUnitParameterUnit_Generic = 0 - kAudioUnitParameterUnit_Indexed = 1 - kAudioUnitParameterUnit_Boolean = 2 - kAudioUnitParameterUnit_Percent = 3 - kAudioUnitParameterUnit_Seconds = 4 - kAudioUnitParameterUnit_SampleFrames = 5 - kAudioUnitParameterUnit_Phase = 6 - kAudioUnitParameterUnit_Rate = 7 - kAudioUnitParameterUnit_Hertz = 8 - kAudioUnitParameterUnit_Cents = 9 - kAudioUnitParameterUnit_RelativeSemiTones = 10 - kAudioUnitParameterUnit_MIDINoteNumber = 11 - kAudioUnitParameterUnit_MIDIController = 12 - kAudioUnitParameterUnit_Decibels = 13 - kAudioUnitParameterUnit_LinearGain = 14 - kAudioUnitParameterUnit_Degrees = 15 - kAudioUnitParameterUnit_EqualPowerCrossfade = 16 - kAudioUnitParameterUnit_MixerFaderCurve1 = 17 - kAudioUnitParameterUnit_Pan = 18 - kAudioUnitParameterUnit_Meters = 19 - kAudioUnitParameterUnit_AbsoluteCents = 20 - kAudioUnitParameterUnit_Octaves = 21 - kAudioUnitParameterUnit_BPM = 22 - kAudioUnitParameterUnit_Beats = 23 - kAudioUnitParameterUnit_Milliseconds = 24 - kAudioUnitParameterUnit_Ratio = 25 - */ - - /* info.flags to consider */ - - /* - - kAudioUnitParameterFlag_CFNameRelease = (1L << 4) - kAudioUnitParameterFlag_HasClump = (1L << 20) - kAudioUnitParameterFlag_HasName = (1L << 21) - kAudioUnitParameterFlag_DisplayLogarithmic = (1L << 22) - kAudioUnitParameterFlag_IsHighResolution = (1L << 23) - kAudioUnitParameterFlag_NonRealTime = (1L << 24) - kAudioUnitParameterFlag_CanRamp = (1L << 25) - kAudioUnitParameterFlag_ExpertMode = (1L << 26) - kAudioUnitParameterFlag_HasCFNameString = (1L << 27) - kAudioUnitParameterFlag_IsGlobalMeta = (1L << 28) - kAudioUnitParameterFlag_IsElementMeta = (1L << 29) - kAudioUnitParameterFlag_IsReadable = (1L << 30) - kAudioUnitParameterFlag_IsWritable = (1L << 31) - */ - - d.integer_step = false; - d.toggled = false; - d.logarithmic = false; - d.sr_dependent = false; - - const int len = CFStringGetLength (param->GetName());; - char local_buffer[len*2]; - Boolean good = CFStringGetCString(param->GetName(),local_buffer,len*2,kCFStringEncodingMacRoman); - if (!good) { - d.label = "???"; - } else { - d.label = local_buffer; - } - d.lower = info.minValue; - d.upper = info.maxValue; - d.default_value = info.defaultValue; - d.step = 1.0; - d.smallstep = 0.1; - d.largestep = 10.0; - d.min_unbound = d.lower; - d.max_unbound = d.upper; - - descriptors.push_back (d); - } + Plugin::setup_controls (); } AUPlugin::~AUPlugin () @@ -211,15 +120,124 @@ AUPlugin::~AUPlugin () unit->Uninitialize (); } - if (param_info) { - delete param_info; - } - if (buffers) { free (buffers); } } +void +AUPlugin::discover_parameters () +{ + /* discover writable parameters */ + + cerr << "get param info, there are " << global_elements << " global elements\n"; + + AudioUnitScope scopes[] = { + kAudioUnitScope_Global, + kAudioUnitScope_Output, + kAudioUnitScope_Input + }; + + descriptors.clear (); + + for (uint32_t i = 0; i < sizeof (scopes) / sizeof (scopes[0]); ++i) { + + AUParamInfo param_info (unit->AU(), false, false, scopes[i]); + + cerr << "discovered " << param_info.NumParams() << " parameters in scope " << i << endl; + + for (uint32_t i = 0; i < param_info.NumParams(); ++i) { + + AUParameterDescriptor d; + + d.id = param_info.ParamID (i); + + const CAAUParameter* param = param_info.GetParamInfo (d.id); + const AudioUnitParameterInfo& info (param->ParamInfo()); + + d.scope = param_info.GetScope (); + d.element = param_info.GetElement (); + + /* info.units to consider */ + /* + kAudioUnitParameterUnit_Generic = 0 + kAudioUnitParameterUnit_Indexed = 1 + kAudioUnitParameterUnit_Boolean = 2 + kAudioUnitParameterUnit_Percent = 3 + kAudioUnitParameterUnit_Seconds = 4 + kAudioUnitParameterUnit_SampleFrames = 5 + kAudioUnitParameterUnit_Phase = 6 + kAudioUnitParameterUnit_Rate = 7 + kAudioUnitParameterUnit_Hertz = 8 + kAudioUnitParameterUnit_Cents = 9 + kAudioUnitParameterUnit_RelativeSemiTones = 10 + kAudioUnitParameterUnit_MIDINoteNumber = 11 + kAudioUnitParameterUnit_MIDIController = 12 + kAudioUnitParameterUnit_Decibels = 13 + kAudioUnitParameterUnit_LinearGain = 14 + kAudioUnitParameterUnit_Degrees = 15 + kAudioUnitParameterUnit_EqualPowerCrossfade = 16 + kAudioUnitParameterUnit_MixerFaderCurve1 = 17 + kAudioUnitParameterUnit_Pan = 18 + kAudioUnitParameterUnit_Meters = 19 + kAudioUnitParameterUnit_AbsoluteCents = 20 + kAudioUnitParameterUnit_Octaves = 21 + kAudioUnitParameterUnit_BPM = 22 + kAudioUnitParameterUnit_Beats = 23 + kAudioUnitParameterUnit_Milliseconds = 24 + kAudioUnitParameterUnit_Ratio = 25 + */ + + /* info.flags to consider */ + + /* + + kAudioUnitParameterFlag_CFNameRelease = (1L << 4) + kAudioUnitParameterFlag_HasClump = (1L << 20) + kAudioUnitParameterFlag_HasName = (1L << 21) + kAudioUnitParameterFlag_DisplayLogarithmic = (1L << 22) + kAudioUnitParameterFlag_IsHighResolution = (1L << 23) + kAudioUnitParameterFlag_NonRealTime = (1L << 24) + kAudioUnitParameterFlag_CanRamp = (1L << 25) + kAudioUnitParameterFlag_ExpertMode = (1L << 26) + kAudioUnitParameterFlag_HasCFNameString = (1L << 27) + kAudioUnitParameterFlag_IsGlobalMeta = (1L << 28) + kAudioUnitParameterFlag_IsElementMeta = (1L << 29) + kAudioUnitParameterFlag_IsReadable = (1L << 30) + kAudioUnitParameterFlag_IsWritable = (1L << 31) + */ + + d.integer_step = (info.unit & kAudioUnitParameterUnit_Indexed); + d.toggled = (info.unit & kAudioUnitParameterUnit_Boolean); + d.sr_dependent = (info.unit & kAudioUnitParameterUnit_SampleFrames); + + d.automatable = !(info.flags & kAudioUnitParameterFlag_NonRealTime); + d.logarithmic = (info.flags & kAudioUnitParameterFlag_DisplayLogarithmic); + + const int len = CFStringGetLength (param->GetName());; + char local_buffer[len*2]; + Boolean good = CFStringGetCString(param->GetName(),local_buffer,len*2,kCFStringEncodingMacRoman); + if (!good) { + d.label = "???"; + } else { + d.label = local_buffer; + } + + d.lower = info.minValue; + d.upper = info.maxValue; + d.default_value = info.defaultValue; + d.step = 1.0; + d.smallstep = 0.1; + d.largestep = 10.0; + d.min_unbound = 0; // lower is bound + d.max_unbound = 0; // upper is bound + + descriptors.push_back (d); + } + } +} + + string AUPlugin::unique_id () const { @@ -235,7 +253,7 @@ AUPlugin::label () const uint32_t AUPlugin::parameter_count () const { - return param_info->NumParams (); + return descriptors.size(); } float @@ -508,7 +526,9 @@ AUPlugin::automatable() const set<uint32_t> automates; for (uint32_t i = 0; i < descriptors.size(); ++i) { - automates.insert (i); + if (descriptors[i].automatable) { + automates.insert (i); + } } return automates; diff --git a/libs/ardour/globals.cc b/libs/ardour/globals.cc index fc0b074834..be9a194a62 100644 --- a/libs/ardour/globals.cc +++ b/libs/ardour/globals.cc @@ -94,6 +94,8 @@ Change ARDOUR::PositionChanged = ARDOUR::new_change (); Change ARDOUR::NameChanged = ARDOUR::new_change (); Change ARDOUR::BoundsChanged = Change (0); // see init(), below +sigc::signal<void,std::string> ARDOUR::BootMessage; + #ifdef HAVE_LIBLO static int setup_osc () @@ -105,6 +107,7 @@ setup_osc () osc = new OSC (Config->get_osc_port()); if (Config->get_use_osc ()) { + BootMessage (_("Starting OSC")); return osc->start (); } else { return 0; @@ -120,6 +123,8 @@ setup_midi () return 0; } + BootMessage (_("Configuring MIDI ports")); + for (std::map<string,XMLNode>::iterator i = Config->midi_ports.begin(); i != Config->midi_ports.end(); ++i) { MIDI::Manager::instance()->add_port (i->second); } @@ -294,6 +299,8 @@ ARDOUR::init (bool use_vst, bool try_optimization) lrdf_init(); Library = new AudioLibrary; + BootMessage (_("Loading configuration")); + Config = new Configuration; if (Config->load_state ()) { diff --git a/libs/ardour/route.cc b/libs/ardour/route.cc index 0ff6a02799..1b26dd8c7f 100644 --- a/libs/ardour/route.cc +++ b/libs/ardour/route.cc @@ -41,6 +41,7 @@ #include <ardour/panner.h> #include <ardour/dB.h> #include <ardour/mix.h> +#include <ardour/profile.h> #include "i18n.h" @@ -916,8 +917,8 @@ Route::add_redirect (boost::shared_ptr<Redirect> redirect, void *src, uint32_t* reset_panner (); } - redirects_changed (src); /* EMIT SIGNAL */ + return 0; } diff --git a/libs/ardour/session_state.cc b/libs/ardour/session_state.cc index 168885ea8e..06291991d8 100644 --- a/libs/ardour/session_state.cc +++ b/libs/ardour/session_state.cc @@ -1380,6 +1380,8 @@ Session::load_routes (const XMLNode& node) return -1; } + BootMessage (string_compose (_("Loaded track/bus %1"), route->name())); + new_routes.push_back (route); } diff --git a/libs/pbd/misc.c b/libs/pbd/misc.c index 797be5de45..34e5888687 100644 --- a/libs/pbd/misc.c +++ b/libs/pbd/misc.c @@ -8,7 +8,7 @@ void disable_screen_updates () { #ifdef GTKOSX - NSDisableScreenUpdates (); + // NSDisableScreenUpdates (); #endif } @@ -16,6 +16,6 @@ void enable_screen_updates () { #ifdef GTKOSX - NSEnableScreenUpdates(); + // NSEnableScreenUpdates(); #endif } diff --git a/svn_revision.h b/svn_revision.h index 7c3bd4879c..592c4ae9a8 100644 --- a/svn_revision.h +++ b/svn_revision.h @@ -1,4 +1,4 @@ #ifndef __ardour_svn_revision_h__ #define __ardour_svn_revision_h__ -static const char* ardour_svn_revision = "3045"; +static const char* ardour_svn_revision = "3046"; #endif diff --git a/tools/osx_packaging/osx_build b/tools/osx_packaging/osx_build index d860e486ae..41d42166a0 100755 --- a/tools/osx_packaging/osx_build +++ b/tools/osx_packaging/osx_build @@ -86,6 +86,7 @@ if test x$SAE != x ; then # current default for SAE version is German keyboard layout # env="$env<key>ARDOUR_KEYBOARD_LAYOUT</key><string>de</string>" + env="$env<key>ARDOUR_UI_CONF</key><string>ardour2_ui_sae.conf</string>" fi # @@ -201,6 +202,7 @@ cp ../../gtk2_ardour/ardour-sae-de.bindings $Resources cp ../../gtk2_ardour/ardour.menus $Resources cp ../../gtk2_ardour/ardour-sae.menus $Resources cp ../../ardour_system.rc $Resources +cp ../../gtk2_ardour/ardour2_ui_sae.conf $Resources cp ../../gtk2_ardour/ardour2_ui_default.conf $Resources cp ../../gtk2_ardour/ardour2_ui_light.rc $Resources cp ../../gtk2_ardour/ardour2_ui_dark.rc $Resources |