splash updating on gdk/quartz; more filtering of automatable AU parameters

git-svn-id: svn://localhost/ardour2/branches/2.0-ongoing@3051 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
Paul Davis 2008-02-13 19:41:34 +00:00
parent 1e7a2a3e66
commit 97f40457bf
3 changed files with 17 additions and 12 deletions

View file

@ -118,8 +118,9 @@ Splash::message (const string& msg)
layout->set_markup (str);
darea.queue_draw ();
Glib::RefPtr<Gdk::Window> win = get_window();
Glib::RefPtr<Gdk::Window> win = darea.get_window();
if (win) {
win->process_updates (true);
gdk_flush ();
}
}

View file

@ -53,6 +53,7 @@ struct AUParameterDescriptor : public Plugin::ParameterDescriptor {
AudioUnitElement element;
float default_value;
bool automatable;
AudioUnitParameterUnit unit;
};
class AUPlugin : public ARDOUR::Plugin

View file

@ -155,6 +155,15 @@ AUPlugin::discover_parameters ()
const CAAUParameter* param = param_info.GetParamInfo (d.id);
const AudioUnitParameterInfo& info (param->ParamInfo());
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.scope = param_info.GetScope ();
d.element = param_info.GetElement ();
@ -210,18 +219,12 @@ AUPlugin::discover_parameters ()
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.automatable = !d.toggled &&
!(info.flags & kAudioUnitParameterFlag_NonRealTime) &&
(info.flags & kAudioUnitParameterFlag_IsWritable);
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.unit = info.unit;
d.lower = info.minValue;
d.upper = info.maxValue;