"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
This commit is contained in:
Paul Davis 2008-02-13 16:38:14 +00:00
parent b248526fe3
commit 35b9bf0567
17 changed files with 294 additions and 142 deletions

View File

@ -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>

View File

@ -162,10 +162,6 @@ ARDOUR_UI::ARDOUR_UI (int *argcp, char **argvp[])
_auto_display_errors = false; _auto_display_errors = false;
#endif #endif
if (getenv ("ARDOUR_DEBUG_UPDATES")) {
gdk_window_set_debug_updates (true);
}
about = 0; about = 0;
splash = 0; splash = 0;

View File

@ -4371,39 +4371,40 @@ Editor::get_regions_for_action (RegionSelection& rs, bool allow_entered)
rs.add (entered_regionview); rs.add (entered_regionview);
return; 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)
this avoids duplicate regions ending up in "rs"
*/
if (!selection->selected (entered_regionview) &&
(!use_regions_at || !selection->selected (&entered_regionview->get_time_axis_view()))) {
rs.add (entered_regionview);
}
}
if (use_regions_at) {
/* nothing selected, so get all regions at the edit point across
all selected tracks
*/
if (!selection->tracks.empty()) {
nframes64_t where = get_preferred_edit_position(); nframes64_t where = get_preferred_edit_position();
get_regions_at (rs, where, selection->tracks); get_regions_at (rs, where, selection->tracks);
/* if the entered regionview wasn't selected and neither was its track
then add it.
*/
if (!selection->selected (entered_regionview) &&
!selection->selected (&entered_regionview->get_time_axis_view())) {
rs.add (entered_regionview);
}
} }
} else {
/* just use the selected regions */
rs = selection->regions;
/* if the entered regionview wasn't selected and we allow this sort of thing,
then add it.
*/
if (allow_entered && entered_regionview && !selection->selected (entered_regionview)) {
rs.add (entered_regionview);
}
} }
} }

View File

@ -2062,7 +2062,7 @@ public:
void get_regions_at (RegionSelection&, nframes64_t where, const TrackSelection& ts) const; 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_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; sigc::connection fast_screen_update_connection;
gint start_updating (); gint start_updating ();

View File

@ -402,6 +402,7 @@ RedirectBox::insert_plugin_chosen (boost::shared_ptr<Plugin> plugin)
if (_route->add_redirect (redirect, this, &err_streams)) { if (_route->add_redirect (redirect, this, &err_streams)) {
weird_plugin_dialog (*plugin, err_streams, _route); weird_plugin_dialog (*plugin, err_streams, _route);
} else { } else {
redirect->set_active (true, 0);
redirect->active_changed.connect (bind (mem_fun (*this, &RedirectBox::show_redirect_active_r), boost::weak_ptr<Redirect>(redirect))); redirect->active_changed.connect (bind (mem_fun (*this, &RedirectBox::show_redirect_active_r), boost::weak_ptr<Redirect>(redirect)));
} }
} }

View File

@ -3,6 +3,7 @@
#include <pbd/failed_constructor.h> #include <pbd/failed_constructor.h>
#include <ardour/ardour.h> #include <ardour/ardour.h>
#include "gui_thread.h"
#include "splash.h" #include "splash.h"
#include "i18n.h" #include "i18n.h"
@ -50,6 +51,8 @@ Splash::Splash ()
set_default_size (pixbuf->get_width(), pixbuf->get_height()); set_default_size (pixbuf->get_width(), pixbuf->get_height());
the_splash = this; the_splash = this;
ARDOUR::BootMessage.connect (mem_fun (*this, &Splash::boot_message));
} }
void void
@ -93,11 +96,18 @@ Splash::expose (GdkEventExpose* ev)
Glib::RefPtr<Gtk::Style> style = darea.get_style(); Glib::RefPtr<Gtk::Style> style = darea.get_style();
Glib::RefPtr<Gdk::GC> white = style->get_white_gc(); Glib::RefPtr<Gdk::GC> white = style->get_white_gc();
cerr << "redraw in expose\n";
window->draw_layout (white, 10, pixbuf->get_height() - 30, layout); window->draw_layout (white, 10, pixbuf->get_height() - 30, layout);
return true; return true;
} }
void
Splash::boot_message (std::string msg)
{
message (msg);
}
void void
Splash::message (const string& msg) Splash::message (const string& msg)
{ {
@ -107,5 +117,9 @@ Splash::message (const string& msg)
layout->set_markup (str); layout->set_markup (str);
darea.queue_draw (); darea.queue_draw ();
get_window()->process_updates (true);
Glib::RefPtr<Gdk::Window> win = get_window();
if (win) {
win->process_updates (true);
}
} }

View File

@ -50,6 +50,8 @@ class Splash : public Gtk::Window
Glib::RefPtr<Gdk::Pixbuf> pixbuf; Glib::RefPtr<Gdk::Pixbuf> pixbuf;
Gtk::DrawingArea darea; Gtk::DrawingArea darea;
Glib::RefPtr<Pango::Layout> layout; Glib::RefPtr<Pango::Layout> layout;
void boot_message (std::string);
}; };
#endif /* __ardour_gtk_splash_h__ */ #endif /* __ardour_gtk_splash_h__ */

View File

@ -57,10 +57,19 @@ int
UIConfiguration::load_defaults () UIConfiguration::load_defaults ()
{ {
int found = 0; int found = 0;
std::string rcfile = find_config_file ("ardour2_ui_default.conf"); std::string rcfile;
const char* ui_conf;
if (rcfile.length())
{ 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; XMLTree tree;
found = 1; found = 1;

View File

@ -43,6 +43,7 @@ namespace ARDOUR {
extern OSC* osc; extern OSC* osc;
static const nframes_t max_frames = JACK_MAX_FRAMES; 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 init (bool with_vst, bool try_optimization);
int cleanup (); int cleanup ();

View File

@ -52,6 +52,7 @@ struct AUParameterDescriptor : public Plugin::ParameterDescriptor {
AudioUnitScope scope; AudioUnitScope scope;
AudioUnitElement element; AudioUnitElement element;
float default_value; float default_value;
bool automatable;
}; };
class AUPlugin : public ARDOUR::Plugin class AUPlugin : public ARDOUR::Plugin
@ -113,7 +114,6 @@ class AUPlugin : public ARDOUR::Plugin
private: private:
boost::shared_ptr<CAComponent> comp; boost::shared_ptr<CAComponent> comp;
boost::shared_ptr<CAAudioUnit> unit; boost::shared_ptr<CAAudioUnit> unit;
AUParamInfo* param_info;
AudioStreamBasicDescription streamFormat; AudioStreamBasicDescription streamFormat;
bool initialized; bool initialized;
@ -128,6 +128,7 @@ class AUPlugin : public ARDOUR::Plugin
int set_input_format (); int set_input_format ();
int set_stream_format (int scope, uint32_t cnt); int set_stream_format (int scope, uint32_t cnt);
int _set_block_size (nframes_t nframes); int _set_block_size (nframes_t nframes);
void discover_parameters ();
std::vector<std::pair<uint32_t, uint32_t> > parameter_map; std::vector<std::pair<uint32_t, uint32_t> > parameter_map;
uint32_t current_maxbuf; uint32_t current_maxbuf;
@ -135,7 +136,7 @@ class AUPlugin : public ARDOUR::Plugin
nframes_t cb_offset; nframes_t cb_offset;
vector<Sample*>* current_buffers; vector<Sample*>* current_buffers;
nframes_t frames_processed; nframes_t frames_processed;
std::vector<AUParameterDescriptor> descriptors; std::vector<AUParameterDescriptor> descriptors;
}; };

View File

@ -59,7 +59,6 @@ AUPlugin::AUPlugin (AudioEngine& engine, Session& session, boost::shared_ptr<CAC
Plugin (engine, session), Plugin (engine, session),
comp (_comp), comp (_comp),
unit (new CAAudioUnit), unit (new CAAudioUnit),
param_info (0),
initialized (false), initialized (false),
buffers (0), buffers (0),
current_maxbuf (0), current_maxbuf (0),
@ -110,99 +109,9 @@ AUPlugin::AUPlugin (AudioEngine& engine, Session& session, boost::shared_ptr<CAC
throw failed_constructor(); throw failed_constructor();
} }
/* discover writable parameters */ discover_parameters ();
cerr << "get param info, there are " << global_elements << " global elements\n";
param_info = new AUParamInfo (unit->AU(), false, false, kAudioUnitScope_Global); Plugin::setup_controls ();
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);
}
} }
AUPlugin::~AUPlugin () AUPlugin::~AUPlugin ()
@ -211,15 +120,124 @@ AUPlugin::~AUPlugin ()
unit->Uninitialize (); unit->Uninitialize ();
} }
if (param_info) {
delete param_info;
}
if (buffers) { if (buffers) {
free (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 string
AUPlugin::unique_id () const AUPlugin::unique_id () const
{ {
@ -235,7 +253,7 @@ AUPlugin::label () const
uint32_t uint32_t
AUPlugin::parameter_count () const AUPlugin::parameter_count () const
{ {
return param_info->NumParams (); return descriptors.size();
} }
float float
@ -508,7 +526,9 @@ AUPlugin::automatable() const
set<uint32_t> automates; set<uint32_t> automates;
for (uint32_t i = 0; i < descriptors.size(); ++i) { for (uint32_t i = 0; i < descriptors.size(); ++i) {
automates.insert (i); if (descriptors[i].automatable) {
automates.insert (i);
}
} }
return automates; return automates;

View File

@ -94,6 +94,8 @@ Change ARDOUR::PositionChanged = ARDOUR::new_change ();
Change ARDOUR::NameChanged = ARDOUR::new_change (); Change ARDOUR::NameChanged = ARDOUR::new_change ();
Change ARDOUR::BoundsChanged = Change (0); // see init(), below Change ARDOUR::BoundsChanged = Change (0); // see init(), below
sigc::signal<void,std::string> ARDOUR::BootMessage;
#ifdef HAVE_LIBLO #ifdef HAVE_LIBLO
static int static int
setup_osc () setup_osc ()
@ -105,6 +107,7 @@ setup_osc ()
osc = new OSC (Config->get_osc_port()); osc = new OSC (Config->get_osc_port());
if (Config->get_use_osc ()) { if (Config->get_use_osc ()) {
BootMessage (_("Starting OSC"));
return osc->start (); return osc->start ();
} else { } else {
return 0; return 0;
@ -120,6 +123,8 @@ setup_midi ()
return 0; return 0;
} }
BootMessage (_("Configuring MIDI ports"));
for (std::map<string,XMLNode>::iterator i = Config->midi_ports.begin(); i != Config->midi_ports.end(); ++i) { for (std::map<string,XMLNode>::iterator i = Config->midi_ports.begin(); i != Config->midi_ports.end(); ++i) {
MIDI::Manager::instance()->add_port (i->second); MIDI::Manager::instance()->add_port (i->second);
} }
@ -294,6 +299,8 @@ ARDOUR::init (bool use_vst, bool try_optimization)
lrdf_init(); lrdf_init();
Library = new AudioLibrary; Library = new AudioLibrary;
BootMessage (_("Loading configuration"));
Config = new Configuration; Config = new Configuration;
if (Config->load_state ()) { if (Config->load_state ()) {

View File

@ -41,6 +41,7 @@
#include <ardour/panner.h> #include <ardour/panner.h>
#include <ardour/dB.h> #include <ardour/dB.h>
#include <ardour/mix.h> #include <ardour/mix.h>
#include <ardour/profile.h>
#include "i18n.h" #include "i18n.h"
@ -916,8 +917,8 @@ Route::add_redirect (boost::shared_ptr<Redirect> redirect, void *src, uint32_t*
reset_panner (); reset_panner ();
} }
redirects_changed (src); /* EMIT SIGNAL */ redirects_changed (src); /* EMIT SIGNAL */
return 0; return 0;
} }

View File

@ -1380,6 +1380,8 @@ Session::load_routes (const XMLNode& node)
return -1; return -1;
} }
BootMessage (string_compose (_("Loaded track/bus %1"), route->name()));
new_routes.push_back (route); new_routes.push_back (route);
} }

View File

@ -8,7 +8,7 @@ void
disable_screen_updates () disable_screen_updates ()
{ {
#ifdef GTKOSX #ifdef GTKOSX
NSDisableScreenUpdates (); // NSDisableScreenUpdates ();
#endif #endif
} }
@ -16,6 +16,6 @@ void
enable_screen_updates () enable_screen_updates ()
{ {
#ifdef GTKOSX #ifdef GTKOSX
NSEnableScreenUpdates(); // NSEnableScreenUpdates();
#endif #endif
} }

View File

@ -1,4 +1,4 @@
#ifndef __ardour_svn_revision_h__ #ifndef __ardour_svn_revision_h__
#define __ardour_svn_revision_h__ #define __ardour_svn_revision_h__
static const char* ardour_svn_revision = "3045"; static const char* ardour_svn_revision = "3046";
#endif #endif

View File

@ -86,6 +86,7 @@ if test x$SAE != x ; then
# current default for SAE version is German keyboard layout # current default for SAE version is German keyboard layout
# #
env="$env<key>ARDOUR_KEYBOARD_LAYOUT</key><string>de</string>" env="$env<key>ARDOUR_KEYBOARD_LAYOUT</key><string>de</string>"
env="$env<key>ARDOUR_UI_CONF</key><string>ardour2_ui_sae.conf</string>"
fi fi
# #
@ -201,6 +202,7 @@ cp ../../gtk2_ardour/ardour-sae-de.bindings $Resources
cp ../../gtk2_ardour/ardour.menus $Resources cp ../../gtk2_ardour/ardour.menus $Resources
cp ../../gtk2_ardour/ardour-sae.menus $Resources cp ../../gtk2_ardour/ardour-sae.menus $Resources
cp ../../ardour_system.rc $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_default.conf $Resources
cp ../../gtk2_ardour/ardour2_ui_light.rc $Resources cp ../../gtk2_ardour/ardour2_ui_light.rc $Resources
cp ../../gtk2_ardour/ardour2_ui_dark.rc $Resources cp ../../gtk2_ardour/ardour2_ui_dark.rc $Resources