From aabf0be5a934f098d98ca83abb2209685d9b8ead Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Tue, 3 Oct 2006 19:57:38 +0000 Subject: floating point precision fix, after months of waiting, plus fix for width of string ID representation git-svn-id: svn://localhost/ardour2/trunk@940 d708f5d6-7413-0410-9779-e7cbd77b26cf --- SConstruct | 2 +- gtk2_ardour/SConscript | 9 +++++++-- libs/ardour/audio_diskstream.cc | 2 +- libs/ardour/crossfade.cc | 4 ++-- libs/ardour/vst_plugin.cc | 9 +++++---- 5 files changed, 16 insertions(+), 10 deletions(-) diff --git a/SConstruct b/SConstruct index b12b803121..03eee09815 100644 --- a/SConstruct +++ b/SConstruct @@ -15,7 +15,7 @@ import SCons.Node.FS SConsignFile() EnsureSConsVersion(0, 96) -version = '2.0beta3' +version = '2.0beta3.2' subst_dict = { } diff --git a/gtk2_ardour/SConscript b/gtk2_ardour/SConscript index eb82230e49..072965ca94 100644 --- a/gtk2_ardour/SConscript +++ b/gtk2_ardour/SConscript @@ -315,8 +315,13 @@ env.Alias ('tarball', env.Distribute (env['DISTTREE'], 'ardour.menus', 'ardour.bindings', 'ardour.colors', 'editor_xpms' ] + - gtkardour_files + vst_files + pixmap_files + - glob.glob('po/*.po') + glob.glob('*.h'))) + gtkardour_files + + vst_files + + pixmap_files + + skipped_files + + audiounit_files + + fft_analysis_files + + glob.glob('po/*.po') + glob.glob('*.h'))) # generate a prototype full-featured ardour_ui.rc file diff --git a/libs/ardour/audio_diskstream.cc b/libs/ardour/audio_diskstream.cc index 89bffc89e3..efe4e89cd1 100644 --- a/libs/ardour/audio_diskstream.cc +++ b/libs/ardour/audio_diskstream.cc @@ -1755,7 +1755,7 @@ AudioDiskstream::get_state () node->add_property ("playlist", _playlist->name()); - snprintf (buf, sizeof(buf), "%f", _visible_speed); + snprintf (buf, sizeof(buf), "%.12g", _visible_speed); node->add_property ("speed", buf); node->add_property("name", _name); diff --git a/libs/ardour/crossfade.cc b/libs/ardour/crossfade.cc index acf254e73a..203041616e 100644 --- a/libs/ardour/crossfade.cc +++ b/libs/ardour/crossfade.cc @@ -803,7 +803,7 @@ Crossfade::set_state (const XMLNode& node) sscanf (prop->value().c_str(), "%" PRIu32, &x); prop = (*i)->property ("y"); - sscanf (prop->value().c_str(), "%f", &y); + sscanf (prop->value().c_str(), "%.12g", &y); _fade_in.add (x, y); } @@ -825,7 +825,7 @@ Crossfade::set_state (const XMLNode& node) sscanf (prop->value().c_str(), "%" PRIu32, &x); prop = (*i)->property ("y"); - sscanf (prop->value().c_str(), "%f", &y); + sscanf (prop->value().c_str(), "%.12g", &y); _fade_out.add (x, y); } diff --git a/libs/ardour/vst_plugin.cc b/libs/ardour/vst_plugin.cc index e5a84bbad0..02003a4238 100644 --- a/libs/ardour/vst_plugin.cc +++ b/libs/ardour/vst_plugin.cc @@ -212,7 +212,7 @@ VSTPlugin::get_state() char index[64]; char val[32]; snprintf (index, sizeof (index), "param_%ld", n); - snprintf (val, sizeof (val), "%f", _plugin->getParameter (_plugin, n)); + snprintf (val, sizeof (val), "%.12g", _plugin->getParameter (_plugin, n)); parameters->add_property (index, val); } @@ -244,11 +244,12 @@ VSTPlugin::set_state(const XMLNode& node) for (i = child->properties().begin(); i != child->properties().end(); ++i) { long param; - float val; + double val; + sscanf ((*i)->name().c_str(), "param_%ld", ¶m); - sscanf ((*i)->value().c_str(), "%f", &val); + sscanf ((*i)->value().c_str(), "%g", &val); - _plugin->setParameter (_plugin, param, val); + _plugin->setParameter (_plugin, param, (float) val); } return 0; -- cgit v1.2.3