libFLAC++: all metadata object operator=() funcs now return *this; add Metadata::*::assign() and FLAC::Metadata::get_tags()
diff --git a/include/FLAC++/metadata.h b/include/FLAC++/metadata.h
index f4a217b..17d7dd5 100644
--- a/include/FLAC++/metadata.h
+++ b/include/FLAC++/metadata.h
@@ -126,11 +126,16 @@
//@{
/** Assign from another object. Always performs a deep copy. */
- void operator=(const Prototype &);
- void operator=(const ::FLAC__StreamMetadata &);
- void operator=(const ::FLAC__StreamMetadata *);
+ Prototype &operator=(const Prototype &);
+ Prototype &operator=(const ::FLAC__StreamMetadata &);
+ Prototype &operator=(const ::FLAC__StreamMetadata *);
//@}
+ /** Assigns an object with copy control. See
+ * Prototype(::FLAC__StreamMetadata *object, bool copy).
+ */
+ Prototype &assign_object(::FLAC__StreamMetadata *object, bool copy);
+
/** Deletes the underlying ::FLAC__StreamMetadata object.
*/
virtual void clear();
@@ -278,11 +283,16 @@
//@{
/** Assign from another object. Always performs a deep copy. */
- inline void operator=(const StreamInfo &object) { Prototype::operator=(object); }
- inline void operator=(const ::FLAC__StreamMetadata &object) { Prototype::operator=(object); }
- inline void operator=(const ::FLAC__StreamMetadata *object) { Prototype::operator=(object); }
+ inline StreamInfo &operator=(const StreamInfo &object) { Prototype::operator=(object); return *this; }
+ inline StreamInfo &operator=(const ::FLAC__StreamMetadata &object) { Prototype::operator=(object); return *this; }
+ inline StreamInfo &operator=(const ::FLAC__StreamMetadata *object) { Prototype::operator=(object); return *this; }
//@}
+ /** Assigns an object with copy control. See
+ * Prototype::assign_object(::FLAC__StreamMetadata *object, bool copy).
+ */
+ inline StreamInfo &assign(::FLAC__StreamMetadata *object, bool copy) { Prototype::assign_object(object, copy); return *this; }
+
//@{
/** Check for equality, performing a deep compare by following pointers. */
inline bool operator==(const StreamInfo &object) const { return Prototype::operator==(object); }
@@ -346,11 +356,16 @@
//@{
/** Assign from another object. Always performs a deep copy. */
- inline void operator=(const Padding &object) { Prototype::operator=(object); }
- inline void operator=(const ::FLAC__StreamMetadata &object) { Prototype::operator=(object); }
- inline void operator=(const ::FLAC__StreamMetadata *object) { Prototype::operator=(object); }
+ inline Padding &operator=(const Padding &object) { Prototype::operator=(object); return *this; }
+ inline Padding &operator=(const ::FLAC__StreamMetadata &object) { Prototype::operator=(object); return *this; }
+ inline Padding &operator=(const ::FLAC__StreamMetadata *object) { Prototype::operator=(object); return *this; }
//@}
+ /** Assigns an object with copy control. See
+ * Prototype::assign_object(::FLAC__StreamMetadata *object, bool copy).
+ */
+ inline Padding &assign(::FLAC__StreamMetadata *object, bool copy) { Prototype::assign_object(object, copy); return *this; }
+
//@{
/** Check for equality, performing a deep compare by following pointers. */
inline bool operator==(const Padding &object) const { return Prototype::operator==(object); }
@@ -393,11 +408,16 @@
//@{
/** Assign from another object. Always performs a deep copy. */
- inline void operator=(const Application &object) { Prototype::operator=(object); }
- inline void operator=(const ::FLAC__StreamMetadata &object) { Prototype::operator=(object); }
- inline void operator=(const ::FLAC__StreamMetadata *object) { Prototype::operator=(object); }
+ inline Application &operator=(const Application &object) { Prototype::operator=(object); return *this; }
+ inline Application &operator=(const ::FLAC__StreamMetadata &object) { Prototype::operator=(object); return *this; }
+ inline Application &operator=(const ::FLAC__StreamMetadata *object) { Prototype::operator=(object); return *this; }
//@}
+ /** Assigns an object with copy control. See
+ * Prototype::assign_object(::FLAC__StreamMetadata *object, bool copy).
+ */
+ inline Application &assign(::FLAC__StreamMetadata *object, bool copy) { Prototype::assign_object(object, copy); return *this; }
+
//@{
/** Check for equality, performing a deep compare by following pointers. */
inline bool operator==(const Application &object) const { return Prototype::operator==(object); }
@@ -446,11 +466,16 @@
//@{
/** Assign from another object. Always performs a deep copy. */
- inline void operator=(const SeekTable &object) { Prototype::operator=(object); }
- inline void operator=(const ::FLAC__StreamMetadata &object) { Prototype::operator=(object); }
- inline void operator=(const ::FLAC__StreamMetadata *object) { Prototype::operator=(object); }
+ inline SeekTable &operator=(const SeekTable &object) { Prototype::operator=(object); return *this; }
+ inline SeekTable &operator=(const ::FLAC__StreamMetadata &object) { Prototype::operator=(object); return *this; }
+ inline SeekTable &operator=(const ::FLAC__StreamMetadata *object) { Prototype::operator=(object); return *this; }
//@}
+ /** Assigns an object with copy control. See
+ * Prototype::assign_object(::FLAC__StreamMetadata *object, bool copy).
+ */
+ inline SeekTable &assign(::FLAC__StreamMetadata *object, bool copy) { Prototype::assign_object(object, copy); return *this; }
+
//@{
/** Check for equality, performing a deep compare by following pointers. */
inline bool operator==(const SeekTable &object) const { return Prototype::operator==(object); }
@@ -527,7 +552,7 @@
Entry(const Entry &entry);
- void operator=(const Entry &entry);
+ Entry &operator=(const Entry &entry);
virtual ~Entry();
@@ -588,11 +613,16 @@
//@{
/** Assign from another object. Always performs a deep copy. */
- inline void operator=(const VorbisComment &object) { Prototype::operator=(object); }
- inline void operator=(const ::FLAC__StreamMetadata &object) { Prototype::operator=(object); }
- inline void operator=(const ::FLAC__StreamMetadata *object) { Prototype::operator=(object); }
+ inline VorbisComment &operator=(const VorbisComment &object) { Prototype::operator=(object); return *this; }
+ inline VorbisComment &operator=(const ::FLAC__StreamMetadata &object) { Prototype::operator=(object); return *this; }
+ inline VorbisComment &operator=(const ::FLAC__StreamMetadata *object) { Prototype::operator=(object); return *this; }
//@}
+ /** Assigns an object with copy control. See
+ * Prototype::assign_object(::FLAC__StreamMetadata *object, bool copy).
+ */
+ inline VorbisComment &assign(::FLAC__StreamMetadata *object, bool copy) { Prototype::assign_object(object, copy); return *this; }
+
//@{
/** Check for equality, performing a deep compare by following pointers. */
inline bool operator==(const VorbisComment &object) const { return Prototype::operator==(object); }
@@ -645,7 +675,7 @@
Track();
Track(const ::FLAC__StreamMetadata_CueSheet_Track *track);
Track(const Track &track);
- void operator=(const Track &track);
+ Track &operator=(const Track &track);
virtual ~Track();
@@ -693,11 +723,16 @@
//@{
/** Assign from another object. Always performs a deep copy. */
- inline void operator=(const CueSheet &object) { Prototype::operator=(object); }
- inline void operator=(const ::FLAC__StreamMetadata &object) { Prototype::operator=(object); }
- inline void operator=(const ::FLAC__StreamMetadata *object) { Prototype::operator=(object); }
+ inline CueSheet &operator=(const CueSheet &object) { Prototype::operator=(object); return *this; }
+ inline CueSheet &operator=(const ::FLAC__StreamMetadata &object) { Prototype::operator=(object); return *this; }
+ inline CueSheet &operator=(const ::FLAC__StreamMetadata *object) { Prototype::operator=(object); return *this; }
//@}
+ /** Assigns an object with copy control. See
+ * Prototype::assign_object(::FLAC__StreamMetadata *object, bool copy).
+ */
+ inline CueSheet &assign(::FLAC__StreamMetadata *object, bool copy) { Prototype::assign_object(object, copy); return *this; }
+
//@{
/** Check for equality, performing a deep compare by following pointers. */
inline bool operator==(const CueSheet &object) const { return Prototype::operator==(object); }
@@ -771,11 +806,16 @@
//@{
/** Assign from another object. Always performs a deep copy. */
- inline void operator=(const Unknown &object) { Prototype::operator=(object); }
- inline void operator=(const ::FLAC__StreamMetadata &object) { Prototype::operator=(object); }
- inline void operator=(const ::FLAC__StreamMetadata *object) { Prototype::operator=(object); }
+ inline Unknown &operator=(const Unknown &object) { Prototype::operator=(object); return *this; }
+ inline Unknown &operator=(const ::FLAC__StreamMetadata &object) { Prototype::operator=(object); return *this; }
+ inline Unknown &operator=(const ::FLAC__StreamMetadata *object) { Prototype::operator=(object); return *this; }
//@}
+ /** Assigns an object with copy control. See
+ * Prototype::assign_object(::FLAC__StreamMetadata *object, bool copy).
+ */
+ inline Unknown &assign(::FLAC__StreamMetadata *object, bool copy) { Prototype::assign_object(object, copy); return *this; }
+
//@{
/** Check for equality, performing a deep compare by following pointers. */
inline bool operator==(const Unknown &object) const { return Prototype::operator==(object); }
@@ -817,6 +857,7 @@
//! See FLAC__metadata_get_tags().
FLACPP_API bool get_tags(const char *filename, VorbisComment *&tags);
+ FLACPP_API bool get_tags(const char *filename, VorbisComment &tags);
/* \} */