+namespace Properties {
+ /* fake the type, since crossfades are handled by SequenceProperty which doesn't
+ care about such things.
+ */
+ extern PBD::PropertyDescriptor<bool> crossfades;
+}
+
+class AudioPlaylist;
+
+class CrossfadeListProperty : public PBD::SequenceProperty<std::list<boost::shared_ptr<Crossfade> > >
+{
+public:
+ CrossfadeListProperty (AudioPlaylist &);
+
+ void get_content_as_xml (boost::shared_ptr<Crossfade>, XMLNode &) const;
+ boost::shared_ptr<Crossfade> get_content_from_xml (XMLNode const &) const;
+
+private:
+ CrossfadeListProperty* clone () const;
+ CrossfadeListProperty* create () const;
+
+ /* copy construction only by ourselves */
+ CrossfadeListProperty (CrossfadeListProperty const & p);
+
+ friend class AudioPlaylist;
+ /* we live and die with our playlist, no lifetime management needed */
+ AudioPlaylist& _playlist;
+};
+
+