X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fardour%2Fsource.cc;h=4c582f3ad741146d4af653e96ce5a5380dac5181;hb=204baa31d842d4c2f833d319b6fa55e402a1bfb8;hp=409f3e1cdb23f1ba1e4439f85858daf81a2c205b;hpb=7a03f1c3e6bbd436d990e9d5ca2efb40c607af5a;p=ardour.git diff --git a/libs/ardour/source.cc b/libs/ardour/source.cc index 409f3e1cdb..4c582f3ad7 100644 --- a/libs/ardour/source.cc +++ b/libs/ardour/source.cc @@ -53,6 +53,7 @@ Source::Source (Session& s, DataType type, const string& name, Flag flags) , _flags(flags) , _timeline_position(0) , _use_count (0) + , _level (0) { _analysed = false; _timestamp = 0; @@ -65,6 +66,7 @@ Source::Source (Session& s, const XMLNode& node) , _flags (Flag (Writable|CanRename)) , _timeline_position(0) , _use_count (0) + , _level (0) { _timestamp = 0; _analysed = false; @@ -98,7 +100,7 @@ Source::get_state () node->add_property ("name", name()); node->add_property ("type", _type.to_string()); node->add_property (X_("flags"), enum_2_string (_flags)); - _id.print (buf, sizeof (buf)); + id().print (buf, sizeof (buf)); node->add_property ("id", buf); if (_timestamp != 0) { @@ -120,9 +122,7 @@ Source::set_state (const XMLNode& node, int version) return -1; } - if ((prop = node.property ("id")) != 0) { - _id = prop->value (); - } else { + if (!set_id (node)) { return -1; } @@ -147,7 +147,7 @@ Source::set_state (const XMLNode& node, int version) } if (version < 3000) { - /* a source with an XML node must necessarily already exist, + /* a source with an XML node must necessarily already exist, and therefore cannot be removable/writable etc. etc.; 2.X sometimes marks sources as removable which shouldn't be. */ @@ -219,7 +219,7 @@ Source::get_transients_path () const s = _session.analysis_dir (); parts.push_back (s); - s = _id.to_s(); + s = id().to_s(); s += '.'; s += TransientDetector::operational_identifier(); parts.push_back (s); @@ -252,10 +252,10 @@ Source::mark_for_remove () { // This operation is not allowed for sources for destructive tracks or out-of-session files. - /* XXX need a way to detect _within_session() condition here - move it from FileSource? + /* XXX need a way to detect _within_session() condition here - move it from FileSource? */ - if ((_flags & Destructive)) { + if ((_flags & Destructive)) { return; } @@ -298,7 +298,7 @@ Source::dec_use_count () abort (); } assert (oldval > 0); -#else +#else g_atomic_int_exchange_and_add (&_use_count, -1); #endif } @@ -308,3 +308,4 @@ Source::writable () const { return (_flags & Writable) && _session.writable(); } +