33#ifndef FLACPP__METADATA_H
34#define FLACPP__METADATA_H
116 Prototype(const ::FLAC__StreamMetadata &);
117 Prototype(const ::FLAC__StreamMetadata *);
135 Prototype &operator=(const ::FLAC__StreamMetadata &);
136 Prototype &operator=(const ::FLAC__StreamMetadata *);
157 inline bool operator==(
const Prototype &)
const;
158 inline bool operator==(const ::FLAC__StreamMetadata &)
const;
159 inline bool operator==(const ::FLAC__StreamMetadata *)
const;
164 inline bool operator!=(
const Prototype &)
const;
165 inline bool operator!=(const ::FLAC__StreamMetadata &)
const;
166 inline bool operator!=(const ::FLAC__StreamMetadata *)
const;
176 inline bool is_valid()
const;
219 inline operator const ::FLAC__StreamMetadata *()
const;
226 inline void set_reference(
bool x) { is_reference_ = x; }
240#pragma warning ( disable : 4800 )
253#pragma warning ( default : 4800 )
266 {
return 0 != object_; }
268 inline Prototype::operator const ::FLAC__StreamMetadata *()
const
268 inline Prototype::operator const ::FLAC__StreamMetadata *()
const {
…}
289 inline StreamInfo(const ::FLAC__StreamMetadata *
object): Prototype(object) { }
302 inline StreamInfo &operator=(const ::FLAC__StreamMetadata &
object) { Prototype::operator=(
object);
return *
this; }
303 inline StreamInfo &operator=(const ::FLAC__StreamMetadata *
object) { Prototype::operator=(
object);
return *
this; }
314 inline bool operator==(const ::FLAC__StreamMetadata &
object)
const {
return Prototype::operator==(
object); }
315 inline bool operator==(const ::FLAC__StreamMetadata *
object)
const {
return Prototype::operator==(
object); }
321 inline bool operator!=(const ::FLAC__StreamMetadata &
object)
const {
return Prototype::operator!=(
object); }
322 inline bool operator!=(const ::FLAC__StreamMetadata *
object)
const {
return Prototype::operator!=(
object); }
328 uint32_t get_max_blocksize()
const;
329 uint32_t get_min_framesize()
const;
330 uint32_t get_max_framesize()
const;
331 uint32_t get_sample_rate()
const;
332 uint32_t get_channels()
const;
333 uint32_t get_bits_per_sample()
const;
334 FLAC__uint64 get_total_samples()
const;
335 const FLAC__byte *get_md5sum()
const;
337 void set_min_blocksize(uint32_t value);
338 void set_max_blocksize(uint32_t value);
339 void set_min_framesize(uint32_t value);
340 void set_max_framesize(uint32_t value);
341 void set_sample_rate(uint32_t value);
342 void set_channels(uint32_t value);
343 void set_bits_per_sample(uint32_t value);
344 void set_total_samples(FLAC__uint64 value);
345 void set_md5sum(
const FLAC__byte value[16]);
363 inline Padding(const ::FLAC__StreamMetadata *
object): Prototype(object) { }
380 inline Padding &operator=(const ::FLAC__StreamMetadata &
object) { Prototype::operator=(
object);
return *
this; }
381 inline Padding &operator=(const ::FLAC__StreamMetadata *
object) { Prototype::operator=(
object);
return *
this; }
392 inline bool operator==(const ::FLAC__StreamMetadata &
object)
const {
return Prototype::operator==(
object); }
393 inline bool operator==(const ::FLAC__StreamMetadata *
object)
const {
return Prototype::operator==(
object); }
399 inline bool operator!=(const ::FLAC__StreamMetadata &
object)
const {
return Prototype::operator!=(
object); }
400 inline bool operator!=(const ::FLAC__StreamMetadata *
object)
const {
return Prototype::operator!=(
object); }
422 inline Application(const ::FLAC__StreamMetadata *
object): Prototype(object) { }
435 inline Application &operator=(const ::FLAC__StreamMetadata &
object) { Prototype::operator=(
object);
return *
this; }
436 inline Application &operator=(const ::FLAC__StreamMetadata *
object) { Prototype::operator=(
object);
return *
this; }
447 inline bool operator==(const ::FLAC__StreamMetadata &
object)
const {
return Prototype::operator==(
object); }
448 inline bool operator==(const ::FLAC__StreamMetadata *
object)
const {
return Prototype::operator==(
object); }
454 inline bool operator!=(const ::FLAC__StreamMetadata &
object)
const {
return Prototype::operator!=(
object); }
455 inline bool operator!=(const ::FLAC__StreamMetadata *
object)
const {
return Prototype::operator!=(
object); }
458 const FLAC__byte *get_id()
const;
459 const FLAC__byte *get_data()
const;
461 void set_id(
const FLAC__byte value[4]);
463 bool set_data(
const FLAC__byte *data, uint32_t length);
464 bool set_data(FLAC__byte *data, uint32_t length,
bool copy);
481 inline SeekTable(const ::FLAC__StreamMetadata *
object): Prototype(object) { }
494 inline SeekTable &operator=(const ::FLAC__StreamMetadata &
object) { Prototype::operator=(
object);
return *
this; }
495 inline SeekTable &operator=(const ::FLAC__StreamMetadata *
object) { Prototype::operator=(
object);
return *
this; }
506 inline bool operator==(const ::FLAC__StreamMetadata &
object)
const {
return Prototype::operator==(
object); }
507 inline bool operator==(const ::FLAC__StreamMetadata *
object)
const {
return Prototype::operator==(
object); }
513 inline bool operator!=(const ::FLAC__StreamMetadata &
object)
const {
return Prototype::operator!=(
object); }
514 inline bool operator!=(const ::FLAC__StreamMetadata *
object)
const {
return Prototype::operator!=(
object); }
517 uint32_t get_num_points()
const;
524 void set_point(uint32_t index, const ::FLAC__StreamMetadata_SeekPoint &point);
527 bool insert_point(uint32_t index, const ::FLAC__StreamMetadata_SeekPoint &point);
593 Entry(
const char *field, uint32_t field_length);
594 Entry(
const char *field);
596 Entry(
const char *field_name,
const char *field_value, uint32_t field_value_length);
597 Entry(
const char *field_name,
const char *field_value);
607 uint32_t get_field_length()
const;
608 uint32_t get_field_name_length()
const;
609 uint32_t get_field_value_length()
const;
612 const char *get_field()
const;
613 const char *get_field_name()
const;
614 const char *get_field_value()
const;
616 bool set_field(
const char *field, uint32_t field_length);
617 bool set_field(
const char *field);
618 bool set_field_name(
const char *field_name);
619 bool set_field_value(
const char *field_value, uint32_t field_value_length);
620 bool set_field_value(
const char *field_value);
625 uint32_t field_name_length_;
627 uint32_t field_value_length_;
632 void clear_field_name();
633 void clear_field_value();
634 void construct(
const char *field, uint32_t field_length);
635 void construct(
const char *field);
636 void construct(
const char *field_name,
const char *field_value, uint32_t field_value_length);
637 void construct(
const char *field_name,
const char *field_value);
638 void compose_field();
650 inline VorbisComment(const ::FLAC__StreamMetadata *
object): Prototype(object) { }
663 inline VorbisComment &operator=(const ::FLAC__StreamMetadata &
object) { Prototype::operator=(
object);
return *
this; }
664 inline VorbisComment &operator=(const ::FLAC__StreamMetadata *
object) { Prototype::operator=(
object);
return *
this; }
675 inline bool operator==(const ::FLAC__StreamMetadata &
object)
const {
return Prototype::operator==(
object); }
676 inline bool operator==(const ::FLAC__StreamMetadata *
object)
const {
return Prototype::operator==(
object); }
682 inline bool operator!=(const ::FLAC__StreamMetadata &
object)
const {
return Prototype::operator!=(
object); }
683 inline bool operator!=(const ::FLAC__StreamMetadata *
object)
const {
return Prototype::operator!=(
object); }
686 uint32_t get_num_comments()
const;
687 const FLAC__byte *get_vendor_string()
const;
688 Entry get_comment(uint32_t index)
const;
738 Track(const ::FLAC__StreamMetadata_CueSheet_Track *track);
747 inline FLAC__uint64 get_offset()
const {
return object_->
offset; }
748 inline FLAC__byte get_number()
const {
return object_->
number; }
749 inline const char *get_isrc()
const {
return object_->
isrc; }
750 inline uint32_t get_type()
const {
return object_->
type; }
751 inline bool get_pre_emphasis()
const {
return object_->
pre_emphasis; }
753 inline FLAC__byte get_num_indices()
const {
return object_->
num_indices; }
756 inline const ::FLAC__StreamMetadata_CueSheet_Track *get_track()
const {
return object_; }
758 inline void set_offset(FLAC__uint64 value) { object_->
offset = value; }
759 inline void set_number(FLAC__byte value) { object_->
number = value; }
760 void set_isrc(
const char value[12]);
761 void set_type(uint32_t value);
762 inline void set_pre_emphasis(
bool value) { object_->
pre_emphasis = value? 1 : 0; }
764 void set_index(uint32_t i, const ::FLAC__StreamMetadata_CueSheet_Index &index);
777 inline CueSheet(const ::FLAC__StreamMetadata *
object): Prototype(object) { }
790 inline CueSheet &operator=(const ::FLAC__StreamMetadata &
object) { Prototype::operator=(
object);
return *
this; }
791 inline CueSheet &operator=(const ::FLAC__StreamMetadata *
object) { Prototype::operator=(
object);
return *
this; }
802 inline bool operator==(const ::FLAC__StreamMetadata &
object)
const {
return Prototype::operator==(
object); }
803 inline bool operator==(const ::FLAC__StreamMetadata *
object)
const {
return Prototype::operator==(
object); }
809 inline bool operator!=(const ::FLAC__StreamMetadata &
object)
const {
return Prototype::operator!=(
object); }
810 inline bool operator!=(const ::FLAC__StreamMetadata *
object)
const {
return Prototype::operator!=(
object); }
813 const char *get_media_catalog_number()
const;
814 FLAC__uint64 get_lead_in()
const;
815 bool get_is_cd()
const;
817 uint32_t get_num_tracks()
const;
818 Track get_track(uint32_t i)
const;
820 void set_media_catalog_number(
const char value[128]);
821 void set_lead_in(FLAC__uint64 value);
822 void set_is_cd(
bool value);
824 void set_index(uint32_t track_num, uint32_t index_num, const ::FLAC__StreamMetadata_CueSheet_Index &index);
830 bool insert_index(uint32_t track_num, uint32_t index_num, const ::FLAC__StreamMetadata_CueSheet_Index &index);
854 bool is_legal(
bool check_cd_da_subset =
false,
const char **violation = 0)
const;
874 inline Picture(const ::FLAC__StreamMetadata *
object): Prototype(object) { }
887 inline Picture &operator=(const ::FLAC__StreamMetadata &
object) { Prototype::operator=(
object);
return *
this; }
888 inline Picture &operator=(const ::FLAC__StreamMetadata *
object) { Prototype::operator=(
object);
return *
this; }
899 inline bool operator==(const ::FLAC__StreamMetadata &
object)
const {
return Prototype::operator==(
object); }
900 inline bool operator==(const ::FLAC__StreamMetadata *
object)
const {
return Prototype::operator==(
object); }
906 inline bool operator!=(const ::FLAC__StreamMetadata &
object)
const {
return Prototype::operator!=(
object); }
907 inline bool operator!=(const ::FLAC__StreamMetadata *
object)
const {
return Prototype::operator!=(
object); }
911 const char *get_mime_type()
const;
912 const FLAC__byte *get_description()
const;
913 FLAC__uint32 get_width()
const;
914 FLAC__uint32 get_height()
const;
915 FLAC__uint32 get_depth()
const;
917 FLAC__uint32 get_data_length()
const;
918 const FLAC__byte *get_data()
const;
928 void set_width(FLAC__uint32 value)
const;
929 void set_height(FLAC__uint32 value)
const;
930 void set_depth(FLAC__uint32 value)
const;
934 bool set_data(
const FLAC__byte *data, FLAC__uint32 data_length);
956 inline Unknown(const ::FLAC__StreamMetadata *
object): Prototype(object) { }
969 inline Unknown &operator=(const ::FLAC__StreamMetadata &
object) { Prototype::operator=(
object);
return *
this; }
970 inline Unknown &operator=(const ::FLAC__StreamMetadata *
object) { Prototype::operator=(
object);
return *
this; }
981 inline bool operator==(const ::FLAC__StreamMetadata &
object)
const {
return Prototype::operator==(
object); }
982 inline bool operator==(const ::FLAC__StreamMetadata *
object)
const {
return Prototype::operator==(
object); }
988 inline bool operator!=(const ::FLAC__StreamMetadata &
object)
const {
return Prototype::operator!=(
object); }
989 inline bool operator!=(const ::FLAC__StreamMetadata *
object)
const {
return Prototype::operator!=(
object); }
992 const FLAC__byte *get_data()
const;
995 bool set_data(
const FLAC__byte *data, uint32_t length);
996 bool set_data(FLAC__byte *data, uint32_t length,
bool copy);
1069 inline operator ::FLAC__Metadata_SimpleIteratorStatus()
const {
return status_; }
1070 inline const char *as_cstring()
const { return ::FLAC__Metadata_SimpleIteratorStatusString[status_]; }
1080 bool init(
const char *filename,
bool read_only,
bool preserve_file_stats);
1159 inline operator ::FLAC__Metadata_ChainStatus()
const {
return status_; }
1160 inline const char *as_cstring()
const { return ::FLAC__Metadata_ChainStatusString[status_]; }
1174 bool read(
const char *filename,
bool is_ogg =
false);
1179 bool write(
bool use_padding =
true,
bool preserve_file_stats =
false);
1180 bool write(
const char *filename,
bool use_padding =
false);
1189 virtual void clear();
1223 virtual void clear();
This module contains #defines and symbols for exporting function calls, and providing version informa...
void * FLAC__IOHandle
Definition callback.h:89
#define FLACPP_API
Definition export.h:88
Definition callback.h:175