massive glob of checkins: improved tests, more tests, bugfixes
diff --git a/include/FLAC++/metadata.h b/include/FLAC++/metadata.h
index 7e0cbbd..fa74188 100644
--- a/include/FLAC++/metadata.h
+++ b/include/FLAC++/metadata.h
@@ -47,21 +47,28 @@
class Prototype {
protected:
Prototype(::FLAC__StreamMetaData *object, bool copy);
- virtual ~Prototype();
void operator=(const Prototype &);
void operator=(const ::FLAC__StreamMetaData &);
void operator=(const ::FLAC__StreamMetaData *);
+ inline bool operator==(const Prototype &) const;
+ inline bool operator==(const ::FLAC__StreamMetaData &) const;
+ inline bool operator==(const ::FLAC__StreamMetaData *) const;
+ inline bool operator!=(const Prototype &) const;
+ inline bool operator!=(const ::FLAC__StreamMetaData &) const;
+ inline bool operator!=(const ::FLAC__StreamMetaData *) const;
+
virtual void clear();
::FLAC__StreamMetaData *object_;
public:
+ virtual ~Prototype();
+
friend class SimpleIterator;
friend class Iterator;
- inline bool is_valid() const { return 0 != object_; }
- inline operator bool() const { return is_valid(); }
+ inline bool is_valid() const;
bool get_is_last() const;
FLAC__MetaDataType get_type() const;
@@ -74,6 +81,28 @@
inline void set_reference(bool x) { is_reference_ = x; }
};
+ inline bool Prototype::operator==(const Prototype &object) const
+ { return ::FLAC__metadata_object_is_equal(object_, object.object_); }
+
+ inline bool Prototype::operator==(const ::FLAC__StreamMetaData &object) const
+ { return ::FLAC__metadata_object_is_equal(object_, &object); }
+
+ inline bool Prototype::operator==(const ::FLAC__StreamMetaData *object) const
+ { return ::FLAC__metadata_object_is_equal(object_, object); }
+
+ inline bool Prototype::operator!=(const Prototype &object) const
+ { return !operator==(object); }
+
+ inline bool Prototype::operator!=(const ::FLAC__StreamMetaData &object) const
+ { return !operator==(object); }
+
+ inline bool Prototype::operator!=(const ::FLAC__StreamMetaData *object) const
+ { return !operator==(object); }
+
+ inline bool Prototype::is_valid() const
+ { return 0 != object_; }
+
+
class StreamInfo : public Prototype {
public:
StreamInfo();
@@ -84,6 +113,13 @@
inline void operator=(const ::FLAC__StreamMetaData &object) { Prototype::operator=(object); }
inline void operator=(const ::FLAC__StreamMetaData *object) { Prototype::operator=(object); }
+ inline bool operator==(const StreamInfo &object) const { return Prototype::operator==(object); }
+ inline bool operator==(const ::FLAC__StreamMetaData &object) const { return Prototype::operator==(object); }
+ inline bool operator==(const ::FLAC__StreamMetaData *object) const { return Prototype::operator==(object); }
+ inline bool operator!=(const StreamInfo &object) const { return Prototype::operator!=(object); }
+ inline bool operator!=(const ::FLAC__StreamMetaData &object) const { return Prototype::operator==(object); }
+ inline bool operator!=(const ::FLAC__StreamMetaData *object) const { return Prototype::operator==(object); }
+
unsigned get_min_blocksize() const;
unsigned get_max_blocksize() const;
unsigned get_min_framesize() const;
@@ -115,6 +151,13 @@
inline void operator=(const ::FLAC__StreamMetaData &object) { Prototype::operator=(object); }
inline void operator=(const ::FLAC__StreamMetaData *object) { Prototype::operator=(object); }
+ inline bool operator==(const Padding &object) const { return Prototype::operator==(object); }
+ inline bool operator==(const ::FLAC__StreamMetaData &object) const { return Prototype::operator==(object); }
+ inline bool operator==(const ::FLAC__StreamMetaData *object) const { return Prototype::operator==(object); }
+ inline bool operator!=(const Padding &object) const { return Prototype::operator!=(object); }
+ inline bool operator!=(const ::FLAC__StreamMetaData &object) const { return Prototype::operator==(object); }
+ inline bool operator!=(const ::FLAC__StreamMetaData *object) const { return Prototype::operator==(object); }
+
void set_length(unsigned length);
};
@@ -128,6 +171,13 @@
inline void operator=(const ::FLAC__StreamMetaData &object) { Prototype::operator=(object); }
inline void operator=(const ::FLAC__StreamMetaData *object) { Prototype::operator=(object); }
+ inline bool operator==(const Application &object) const { return Prototype::operator==(object); }
+ inline bool operator==(const ::FLAC__StreamMetaData &object) const { return Prototype::operator==(object); }
+ inline bool operator==(const ::FLAC__StreamMetaData *object) const { return Prototype::operator==(object); }
+ inline bool operator!=(const Application &object) const { return Prototype::operator!=(object); }
+ inline bool operator!=(const ::FLAC__StreamMetaData &object) const { return Prototype::operator==(object); }
+ inline bool operator!=(const ::FLAC__StreamMetaData *object) const { return Prototype::operator==(object); }
+
const FLAC__byte *get_id() const;
const FLAC__byte *get_data() const;
@@ -145,6 +195,13 @@
inline void operator=(const ::FLAC__StreamMetaData &object) { Prototype::operator=(object); }
inline void operator=(const ::FLAC__StreamMetaData *object) { Prototype::operator=(object); }
+ inline bool operator==(const SeekTable &object) const { return Prototype::operator==(object); }
+ inline bool operator==(const ::FLAC__StreamMetaData &object) const { return Prototype::operator==(object); }
+ inline bool operator==(const ::FLAC__StreamMetaData *object) const { return Prototype::operator==(object); }
+ inline bool operator!=(const SeekTable &object) const { return Prototype::operator!=(object); }
+ inline bool operator!=(const ::FLAC__StreamMetaData &object) const { return Prototype::operator==(object); }
+ inline bool operator!=(const ::FLAC__StreamMetaData *object) const { return Prototype::operator==(object); }
+
unsigned get_num_points() const;
::FLAC__StreamMetaData_SeekPoint get_point(unsigned index) const;
@@ -168,7 +225,6 @@
virtual ~Entry();
virtual bool is_valid() const;
- inline operator bool() const { return is_valid(); }
unsigned get_field_length() const;
unsigned get_field_name_length() const;
@@ -209,6 +265,13 @@
inline void operator=(const ::FLAC__StreamMetaData &object) { Prototype::operator=(object); }
inline void operator=(const ::FLAC__StreamMetaData *object) { Prototype::operator=(object); }
+ inline bool operator==(const VorbisComment &object) const { return Prototype::operator==(object); }
+ inline bool operator==(const ::FLAC__StreamMetaData &object) const { return Prototype::operator==(object); }
+ inline bool operator==(const ::FLAC__StreamMetaData *object) const { return Prototype::operator==(object); }
+ inline bool operator!=(const VorbisComment &object) const { return Prototype::operator!=(object); }
+ inline bool operator!=(const ::FLAC__StreamMetaData &object) const { return Prototype::operator==(object); }
+ inline bool operator!=(const ::FLAC__StreamMetaData *object) const { return Prototype::operator==(object); }
+
unsigned get_num_comments() const;
Entry get_vendor_string() const;
Entry get_comment(unsigned index) const;
@@ -274,7 +337,6 @@
bool init(const char *filename, bool preserve_file_stats = false);
bool is_valid() const;
- inline operator bool() const { return is_valid(); }
Status status();
bool is_writable() const;
@@ -347,7 +409,6 @@
friend class Iterator;
bool is_valid() const;
- inline operator bool() const { return is_valid(); }
Status status();
bool read(const char *filename);
@@ -367,7 +428,6 @@
virtual ~Iterator();
bool is_valid() const;
- inline operator bool() const { return is_valid(); }
void init(Chain *chain);