- char buf[64];
- LocaleGuard lg (X_("POSIX"));
-
- root->add_property ("automation-id", EventTypeMap::instance().to_symbol(_parameter));
-
- root->add_property ("id", id().to_s());
-
- snprintf (buf, sizeof (buf), "%.12g", _default_value);
- root->add_property ("default", buf);
- snprintf (buf, sizeof (buf), "%.12g", _min_yval);
- root->add_property ("min-yval", buf);
- snprintf (buf, sizeof (buf), "%.12g", _max_yval);
- root->add_property ("max-yval", buf);
-
- root->add_property ("interpolation-style", enum_2_string (_interpolation));
-
- if (full) {
- /* never serialize state with Write enabled - too dangerous
- for the user's data
- */
- if (_state != Write) {
- root->add_property ("state", auto_state_to_string (_state));
- } else {
- root->add_property ("state", auto_state_to_string (Off));
- }
+
+ root->set_property ("automation-id", EventTypeMap::instance().to_symbol(_parameter));
+ root->set_property ("id", id());
+ root->set_property ("interpolation-style", _interpolation);
+
+ if (save_auto_state) {
+ /* never serialize state with Write enabled - too dangerous
+ for the user's data
+ */
+ if (_state != Write) {
+ root->set_property ("state", _state);
+ } else {
+ if (_events.empty ()) {
+ root->set_property ("state", Off);
+ } else {
+ root->set_property ("state", Touch);
+ }
+ }