Chris@1: Chris@1: Chris@1: FLAC: include/FLAC/metadata.h Source File Chris@1: Chris@1: Chris@1: Chris@1:
Main Page | Modules | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Class Members | File Members
Chris@1: Chris@1:

metadata.h

Go to the documentation of this file.
00001 /* libFLAC - Free Lossless Audio Codec library
Chris@1: 00002  * Copyright (C) 2001,2002,2003,2004,2005,2006,2007  Josh Coalson
Chris@1: 00003  *
Chris@1: 00004  * Redistribution and use in source and binary forms, with or without
Chris@1: 00005  * modification, are permitted provided that the following conditions
Chris@1: 00006  * are met:
Chris@1: 00007  *
Chris@1: 00008  * - Redistributions of source code must retain the above copyright
Chris@1: 00009  * notice, this list of conditions and the following disclaimer.
Chris@1: 00010  *
Chris@1: 00011  * - Redistributions in binary form must reproduce the above copyright
Chris@1: 00012  * notice, this list of conditions and the following disclaimer in the
Chris@1: 00013  * documentation and/or other materials provided with the distribution.
Chris@1: 00014  *
Chris@1: 00015  * - Neither the name of the Xiph.org Foundation nor the names of its
Chris@1: 00016  * contributors may be used to endorse or promote products derived from
Chris@1: 00017  * this software without specific prior written permission.
Chris@1: 00018  *
Chris@1: 00019  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
Chris@1: 00020  * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
Chris@1: 00021  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
Chris@1: 00022  * A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR
Chris@1: 00023  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
Chris@1: 00024  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
Chris@1: 00025  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
Chris@1: 00026  * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
Chris@1: 00027  * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
Chris@1: 00028  * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
Chris@1: 00029  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Chris@1: 00030  */
Chris@1: 00031 
Chris@1: 00032 #ifndef FLAC__METADATA_H
Chris@1: 00033 #define FLAC__METADATA_H
Chris@1: 00034 
Chris@1: 00035 #include <sys/types.h> /* for off_t */
Chris@1: 00036 #include "export.h"
Chris@1: 00037 #include "callback.h"
Chris@1: 00038 #include "format.h"
Chris@1: 00039 
Chris@1: 00040 /* --------------------------------------------------------------------
Chris@1: 00041    (For an example of how all these routines are used, see the source
Chris@1: 00042    code for the unit tests in src/test_libFLAC/metadata_*.c, or
Chris@1: 00043    metaflac in src/metaflac/)
Chris@1: 00044    ------------------------------------------------------------------*/
Chris@1: 00045 
Chris@1: 00123 #ifdef __cplusplus
Chris@1: 00124 extern "C" {
Chris@1: 00125 #endif
Chris@1: 00126 
Chris@1: 00127 
Chris@1: 00158 FLAC_API FLAC__bool FLAC__metadata_get_streaminfo(const char *filename, FLAC__StreamMetadata *streaminfo);
Chris@1: 00159 
Chris@1: 00177 FLAC_API FLAC__bool FLAC__metadata_get_tags(const char *filename, FLAC__StreamMetadata **tags);
Chris@1: 00178 
Chris@1: 00196 FLAC_API FLAC__bool FLAC__metadata_get_cuesheet(const char *filename, FLAC__StreamMetadata **cuesheet);
Chris@1: 00197 
Chris@1: 00236 FLAC_API FLAC__bool FLAC__metadata_get_picture(const char *filename, FLAC__StreamMetadata **picture, FLAC__StreamMetadata_Picture_Type type, const char *mime_type, const FLAC__byte *description, unsigned max_width, unsigned max_height, unsigned max_depth, unsigned max_colors);
Chris@1: 00237 
Chris@1: 00238 /* \} */
Chris@1: 00239 
Chris@1: 00240 
Chris@1: 00296 struct FLAC__Metadata_SimpleIterator;
Chris@1: 00302 typedef struct FLAC__Metadata_SimpleIterator FLAC__Metadata_SimpleIterator;
Chris@1: 00303 
Chris@1: 00308 typedef enum {
Chris@1: 00309 
Chris@1: 00310     FLAC__METADATA_SIMPLE_ITERATOR_STATUS_OK = 0,
Chris@1: 00313     FLAC__METADATA_SIMPLE_ITERATOR_STATUS_ILLEGAL_INPUT,
Chris@1: 00316     FLAC__METADATA_SIMPLE_ITERATOR_STATUS_ERROR_OPENING_FILE,
Chris@1: 00319     FLAC__METADATA_SIMPLE_ITERATOR_STATUS_NOT_A_FLAC_FILE,
Chris@1: 00322     FLAC__METADATA_SIMPLE_ITERATOR_STATUS_NOT_WRITABLE,
Chris@1: 00325     FLAC__METADATA_SIMPLE_ITERATOR_STATUS_BAD_METADATA,
Chris@1: 00328     FLAC__METADATA_SIMPLE_ITERATOR_STATUS_READ_ERROR,
Chris@1: 00331     FLAC__METADATA_SIMPLE_ITERATOR_STATUS_SEEK_ERROR,
Chris@1: 00334     FLAC__METADATA_SIMPLE_ITERATOR_STATUS_WRITE_ERROR,
Chris@1: 00337     FLAC__METADATA_SIMPLE_ITERATOR_STATUS_RENAME_ERROR,
Chris@1: 00340     FLAC__METADATA_SIMPLE_ITERATOR_STATUS_UNLINK_ERROR,
Chris@1: 00343     FLAC__METADATA_SIMPLE_ITERATOR_STATUS_MEMORY_ALLOCATION_ERROR,
Chris@1: 00346     FLAC__METADATA_SIMPLE_ITERATOR_STATUS_INTERNAL_ERROR
Chris@1: 00349 } FLAC__Metadata_SimpleIteratorStatus;
Chris@1: 00350 
Chris@1: 00356 extern FLAC_API const char * const FLAC__Metadata_SimpleIteratorStatusString[];
Chris@1: 00357 
Chris@1: 00358 
Chris@1: 00364 FLAC_API FLAC__Metadata_SimpleIterator *FLAC__metadata_simple_iterator_new(void);
Chris@1: 00365 
Chris@1: 00372 FLAC_API void FLAC__metadata_simple_iterator_delete(FLAC__Metadata_SimpleIterator *iterator);
Chris@1: 00373 
Chris@1: 00384 FLAC_API FLAC__Metadata_SimpleIteratorStatus FLAC__metadata_simple_iterator_status(FLAC__Metadata_SimpleIterator *iterator);
Chris@1: 00385 
Chris@1: 00405 FLAC_API FLAC__bool FLAC__metadata_simple_iterator_init(FLAC__Metadata_SimpleIterator *iterator, const char *filename, FLAC__bool read_only, FLAC__bool preserve_file_stats);
Chris@1: 00406 
Chris@1: 00417 FLAC_API FLAC__bool FLAC__metadata_simple_iterator_is_writable(const FLAC__Metadata_SimpleIterator *iterator);
Chris@1: 00418 
Chris@1: 00431 FLAC_API FLAC__bool FLAC__metadata_simple_iterator_next(FLAC__Metadata_SimpleIterator *iterator);
Chris@1: 00432 
Chris@1: 00445 FLAC_API FLAC__bool FLAC__metadata_simple_iterator_prev(FLAC__Metadata_SimpleIterator *iterator);
Chris@1: 00446 
Chris@1: 00458 FLAC_API FLAC__bool FLAC__metadata_simple_iterator_is_last(const FLAC__Metadata_SimpleIterator *iterator);
Chris@1: 00459 
Chris@1: 00474 FLAC_API off_t FLAC__metadata_simple_iterator_get_block_offset(const FLAC__Metadata_SimpleIterator *iterator);
Chris@1: 00475 
Chris@1: 00488 FLAC_API FLAC__MetadataType FLAC__metadata_simple_iterator_get_block_type(const FLAC__Metadata_SimpleIterator *iterator);
Chris@1: 00489 
Chris@1: 00505 FLAC_API unsigned FLAC__metadata_simple_iterator_get_block_length(const FLAC__Metadata_SimpleIterator *iterator);
Chris@1: 00506 
Chris@1: 00530 FLAC_API FLAC__bool FLAC__metadata_simple_iterator_get_application_id(FLAC__Metadata_SimpleIterator *iterator, FLAC__byte *id);
Chris@1: 00531 
Chris@1: 00548 FLAC_API FLAC__StreamMetadata *FLAC__metadata_simple_iterator_get_block(FLAC__Metadata_SimpleIterator *iterator);
Chris@1: 00549 
Chris@1: 00604 FLAC_API FLAC__bool FLAC__metadata_simple_iterator_set_block(FLAC__Metadata_SimpleIterator *iterator, FLAC__StreamMetadata *block, FLAC__bool use_padding);
Chris@1: 00605 
Chris@1: 00629 FLAC_API FLAC__bool FLAC__metadata_simple_iterator_insert_block_after(FLAC__Metadata_SimpleIterator *iterator, FLAC__StreamMetadata *block, FLAC__bool use_padding);
Chris@1: 00630 
Chris@1: 00648 FLAC_API FLAC__bool FLAC__metadata_simple_iterator_delete_block(FLAC__Metadata_SimpleIterator *iterator, FLAC__bool use_padding);
Chris@1: 00649 
Chris@1: 00650 /* \} */
Chris@1: 00651 
Chris@1: 00652 
Chris@1: 00710 struct FLAC__Metadata_Chain;
Chris@1: 00713 typedef struct FLAC__Metadata_Chain FLAC__Metadata_Chain;
Chris@1: 00714 
Chris@1: 00715 struct FLAC__Metadata_Iterator;
Chris@1: 00718 typedef struct FLAC__Metadata_Iterator FLAC__Metadata_Iterator;
Chris@1: 00719 
Chris@1: 00720 typedef enum {
Chris@1: 00721     FLAC__METADATA_CHAIN_STATUS_OK = 0,
Chris@1: 00724     FLAC__METADATA_CHAIN_STATUS_ILLEGAL_INPUT,
Chris@1: 00727     FLAC__METADATA_CHAIN_STATUS_ERROR_OPENING_FILE,
Chris@1: 00730     FLAC__METADATA_CHAIN_STATUS_NOT_A_FLAC_FILE,
Chris@1: 00733     FLAC__METADATA_CHAIN_STATUS_NOT_WRITABLE,
Chris@1: 00736     FLAC__METADATA_CHAIN_STATUS_BAD_METADATA,
Chris@1: 00739     FLAC__METADATA_CHAIN_STATUS_READ_ERROR,
Chris@1: 00742     FLAC__METADATA_CHAIN_STATUS_SEEK_ERROR,
Chris@1: 00745     FLAC__METADATA_CHAIN_STATUS_WRITE_ERROR,
Chris@1: 00748     FLAC__METADATA_CHAIN_STATUS_RENAME_ERROR,
Chris@1: 00751     FLAC__METADATA_CHAIN_STATUS_UNLINK_ERROR,
Chris@1: 00754     FLAC__METADATA_CHAIN_STATUS_MEMORY_ALLOCATION_ERROR,
Chris@1: 00757     FLAC__METADATA_CHAIN_STATUS_INTERNAL_ERROR,
Chris@1: 00760     FLAC__METADATA_CHAIN_STATUS_INVALID_CALLBACKS,
Chris@1: 00763     FLAC__METADATA_CHAIN_STATUS_READ_WRITE_MISMATCH,
Chris@1: 00772     FLAC__METADATA_CHAIN_STATUS_WRONG_WRITE_CALL
Chris@1: 00782 } FLAC__Metadata_ChainStatus;
Chris@1: 00783 
Chris@1: 00789 extern FLAC_API const char * const FLAC__Metadata_ChainStatusString[];
Chris@1: 00790 
Chris@1: 00791 /*********** FLAC__Metadata_Chain ***********/
Chris@1: 00792 
Chris@1: 00798 FLAC_API FLAC__Metadata_Chain *FLAC__metadata_chain_new(void);
Chris@1: 00799 
Chris@1: 00806 FLAC_API void FLAC__metadata_chain_delete(FLAC__Metadata_Chain *chain);
Chris@1: 00807 
Chris@1: 00818 FLAC_API FLAC__Metadata_ChainStatus FLAC__metadata_chain_status(FLAC__Metadata_Chain *chain);
Chris@1: 00819 
Chris@1: 00832 FLAC_API FLAC__bool FLAC__metadata_chain_read(FLAC__Metadata_Chain *chain, const char *filename);
Chris@1: 00833 
Chris@1: 00849 FLAC_API FLAC__bool FLAC__metadata_chain_read_ogg(FLAC__Metadata_Chain *chain, const char *filename);
Chris@1: 00850 
Chris@1: 00871 FLAC_API FLAC__bool FLAC__metadata_chain_read_with_callbacks(FLAC__Metadata_Chain *chain, FLAC__IOHandle handle, FLAC__IOCallbacks callbacks);
Chris@1: 00872 
Chris@1: 00896 FLAC_API FLAC__bool FLAC__metadata_chain_read_ogg_with_callbacks(FLAC__Metadata_Chain *chain, FLAC__IOHandle handle, FLAC__IOCallbacks callbacks);
Chris@1: 00897 
Chris@1: 00924 FLAC_API FLAC__bool FLAC__metadata_chain_check_if_tempfile_needed(FLAC__Metadata_Chain *chain, FLAC__bool use_padding);
Chris@1: 00925 
Chris@1: 00970 FLAC_API FLAC__bool FLAC__metadata_chain_write(FLAC__Metadata_Chain *chain, FLAC__bool use_padding, FLAC__bool preserve_file_stats);
Chris@1: 00971 
Chris@1: 01000 FLAC_API FLAC__bool FLAC__metadata_chain_write_with_callbacks(FLAC__Metadata_Chain *chain, FLAC__bool use_padding, FLAC__IOHandle handle, FLAC__IOCallbacks callbacks);
Chris@1: 01001 
Chris@1: 01051 FLAC_API FLAC__bool FLAC__metadata_chain_write_with_callbacks_and_tempfile(FLAC__Metadata_Chain *chain, FLAC__bool use_padding, FLAC__IOHandle handle, FLAC__IOCallbacks callbacks, FLAC__IOHandle temp_handle, FLAC__IOCallbacks temp_callbacks);
Chris@1: 01052 
Chris@1: 01065 FLAC_API void FLAC__metadata_chain_merge_padding(FLAC__Metadata_Chain *chain);
Chris@1: 01066 
Chris@1: 01080 FLAC_API void FLAC__metadata_chain_sort_padding(FLAC__Metadata_Chain *chain);
Chris@1: 01081 
Chris@1: 01082 
Chris@1: 01083 /*********** FLAC__Metadata_Iterator ***********/
Chris@1: 01084 
Chris@1: 01090 FLAC_API FLAC__Metadata_Iterator *FLAC__metadata_iterator_new(void);
Chris@1: 01091 
Chris@1: 01098 FLAC_API void FLAC__metadata_iterator_delete(FLAC__Metadata_Iterator *iterator);
Chris@1: 01099 
Chris@1: 01109 FLAC_API void FLAC__metadata_iterator_init(FLAC__Metadata_Iterator *iterator, FLAC__Metadata_Chain *chain);
Chris@1: 01110 
Chris@1: 01123 FLAC_API FLAC__bool FLAC__metadata_iterator_next(FLAC__Metadata_Iterator *iterator);
Chris@1: 01124 
Chris@1: 01137 FLAC_API FLAC__bool FLAC__metadata_iterator_prev(FLAC__Metadata_Iterator *iterator);
Chris@1: 01138 
Chris@1: 01149 FLAC_API FLAC__MetadataType FLAC__metadata_iterator_get_block_type(const FLAC__Metadata_Iterator *iterator);
Chris@1: 01150 
Chris@1: 01170 FLAC_API FLAC__StreamMetadata *FLAC__metadata_iterator_get_block(FLAC__Metadata_Iterator *iterator);
Chris@1: 01171 
Chris@1: 01187 FLAC_API FLAC__bool FLAC__metadata_iterator_set_block(FLAC__Metadata_Iterator *iterator, FLAC__StreamMetadata *block);
Chris@1: 01188 
Chris@1: 01205 FLAC_API FLAC__bool FLAC__metadata_iterator_delete_block(FLAC__Metadata_Iterator *iterator, FLAC__bool replace_with_padding);
Chris@1: 01206 
Chris@1: 01224 FLAC_API FLAC__bool FLAC__metadata_iterator_insert_block_before(FLAC__Metadata_Iterator *iterator, FLAC__StreamMetadata *block);
Chris@1: 01225 
Chris@1: 01242 FLAC_API FLAC__bool FLAC__metadata_iterator_insert_block_after(FLAC__Metadata_Iterator *iterator, FLAC__StreamMetadata *block);
Chris@1: 01243 
Chris@1: 01244 /* \} */
Chris@1: 01245 
Chris@1: 01246 
Chris@1: 01312 FLAC_API FLAC__StreamMetadata *FLAC__metadata_object_new(FLAC__MetadataType type);
Chris@1: 01313 
Chris@1: 01326 FLAC_API FLAC__StreamMetadata *FLAC__metadata_object_clone(const FLAC__StreamMetadata *object);
Chris@1: 01327 
Chris@1: 01337 FLAC_API void FLAC__metadata_object_delete(FLAC__StreamMetadata *object);
Chris@1: 01338 
Chris@1: 01352 FLAC_API FLAC__bool FLAC__metadata_object_is_equal(const FLAC__StreamMetadata *block1, const FLAC__StreamMetadata *block2);
Chris@1: 01353 
Chris@1: 01375 FLAC_API FLAC__bool FLAC__metadata_object_application_set_data(FLAC__StreamMetadata *object, FLAC__byte *data, unsigned length, FLAC__bool copy);
Chris@1: 01376 
Chris@1: 01392 FLAC_API FLAC__bool FLAC__metadata_object_seektable_resize_points(FLAC__StreamMetadata *object, unsigned new_num_points);
Chris@1: 01393 
Chris@1: 01404 FLAC_API void FLAC__metadata_object_seektable_set_point(FLAC__StreamMetadata *object, unsigned point_num, FLAC__StreamMetadata_SeekPoint point);
Chris@1: 01405 
Chris@1: 01418 FLAC_API FLAC__bool FLAC__metadata_object_seektable_insert_point(FLAC__StreamMetadata *object, unsigned point_num, FLAC__StreamMetadata_SeekPoint point);
Chris@1: 01419 
Chris@1: 01431 FLAC_API FLAC__bool FLAC__metadata_object_seektable_delete_point(FLAC__StreamMetadata *object, unsigned point_num);
Chris@1: 01432 
Chris@1: 01444 FLAC_API FLAC__bool FLAC__metadata_object_seektable_is_legal(const FLAC__StreamMetadata *object);
Chris@1: 01445 
Chris@1: 01461 FLAC_API FLAC__bool FLAC__metadata_object_seektable_template_append_placeholders(FLAC__StreamMetadata *object, unsigned num);
Chris@1: 01462 
Chris@1: 01478 FLAC_API FLAC__bool FLAC__metadata_object_seektable_template_append_point(FLAC__StreamMetadata *object, FLAC__uint64 sample_number);
Chris@1: 01479 
Chris@1: 01496 FLAC_API FLAC__bool FLAC__metadata_object_seektable_template_append_points(FLAC__StreamMetadata *object, FLAC__uint64 sample_numbers[], unsigned num);
Chris@1: 01497 
Chris@1: 01518 FLAC_API FLAC__bool FLAC__metadata_object_seektable_template_append_spaced_points(FLAC__StreamMetadata *object, unsigned num, FLAC__uint64 total_samples);
Chris@1: 01519 
Chris@1: 01546 FLAC_API FLAC__bool FLAC__metadata_object_seektable_template_append_spaced_points_by_samples(FLAC__StreamMetadata *object, unsigned samples, FLAC__uint64 total_samples);
Chris@1: 01547 
Chris@1: 01563 FLAC_API FLAC__bool FLAC__metadata_object_seektable_template_sort(FLAC__StreamMetadata *object, FLAC__bool compact);
Chris@1: 01564 
Chris@1: 01588 FLAC_API FLAC__bool FLAC__metadata_object_vorbiscomment_set_vendor_string(FLAC__StreamMetadata *object, FLAC__StreamMetadata_VorbisComment_Entry entry, FLAC__bool copy);
Chris@1: 01589 
Chris@1: 01605 FLAC_API FLAC__bool FLAC__metadata_object_vorbiscomment_resize_comments(FLAC__StreamMetadata *object, unsigned new_num_comments);
Chris@1: 01606 
Chris@1: 01632 FLAC_API FLAC__bool FLAC__metadata_object_vorbiscomment_set_comment(FLAC__StreamMetadata *object, unsigned comment_num, FLAC__StreamMetadata_VorbisComment_Entry entry, FLAC__bool copy);
Chris@1: 01633 
Chris@1: 01662 FLAC_API FLAC__bool FLAC__metadata_object_vorbiscomment_insert_comment(FLAC__StreamMetadata *object, unsigned comment_num, FLAC__StreamMetadata_VorbisComment_Entry entry, FLAC__bool copy);
Chris@1: 01663 
Chris@1: 01687 FLAC_API FLAC__bool FLAC__metadata_object_vorbiscomment_append_comment(FLAC__StreamMetadata *object, FLAC__StreamMetadata_VorbisComment_Entry entry, FLAC__bool copy);
Chris@1: 01688 
Chris@1: 01722 FLAC_API FLAC__bool FLAC__metadata_object_vorbiscomment_replace_comment(FLAC__StreamMetadata *object, FLAC__StreamMetadata_VorbisComment_Entry entry, FLAC__bool all, FLAC__bool copy);
Chris@1: 01723 
Chris@1: 01735 FLAC_API FLAC__bool FLAC__metadata_object_vorbiscomment_delete_comment(FLAC__StreamMetadata *object, unsigned comment_num);
Chris@1: 01736 
Chris@1: 01756 FLAC_API FLAC__bool FLAC__metadata_object_vorbiscomment_entry_from_name_value_pair(FLAC__StreamMetadata_VorbisComment_Entry *entry, const char *field_name, const char *field_value);
Chris@1: 01757 
Chris@1: 01777 FLAC_API FLAC__bool FLAC__metadata_object_vorbiscomment_entry_to_name_value_pair(const FLAC__StreamMetadata_VorbisComment_Entry entry, char **field_name, char **field_value);
Chris@1: 01778 
Chris@1: 01791 FLAC_API FLAC__bool FLAC__metadata_object_vorbiscomment_entry_matches(const FLAC__StreamMetadata_VorbisComment_Entry entry, const char *field_name, unsigned field_name_length);
Chris@1: 01792 
Chris@1: 01810 FLAC_API int FLAC__metadata_object_vorbiscomment_find_entry_from(const FLAC__StreamMetadata *object, unsigned offset, const char *field_name);
Chris@1: 01811 
Chris@1: 01823 FLAC_API int FLAC__metadata_object_vorbiscomment_remove_entry_matching(FLAC__StreamMetadata *object, const char *field_name);
Chris@1: 01824 
Chris@1: 01836 FLAC_API int FLAC__metadata_object_vorbiscomment_remove_entries_matching(FLAC__StreamMetadata *object, const char *field_name);
Chris@1: 01837 
Chris@1: 01845 FLAC_API FLAC__StreamMetadata_CueSheet_Track *FLAC__metadata_object_cuesheet_track_new(void);
Chris@1: 01846 
Chris@1: 01860 FLAC_API FLAC__StreamMetadata_CueSheet_Track *FLAC__metadata_object_cuesheet_track_clone(const FLAC__StreamMetadata_CueSheet_Track *object);
Chris@1: 01861 
Chris@1: 01868 FLAC_API void FLAC__metadata_object_cuesheet_track_delete(FLAC__StreamMetadata_CueSheet_Track *object);
Chris@1: 01869 
Chris@1: 01888 FLAC_API FLAC__bool FLAC__metadata_object_cuesheet_track_resize_indices(FLAC__StreamMetadata *object, unsigned track_num, unsigned new_num_indices);
Chris@1: 01889 
Chris@1: 01911 FLAC_API FLAC__bool FLAC__metadata_object_cuesheet_track_insert_index(FLAC__StreamMetadata *object, unsigned track_num, unsigned index_num, FLAC__StreamMetadata_CueSheet_Index index);
Chris@1: 01912 
Chris@1: 01935 FLAC_API FLAC__bool FLAC__metadata_object_cuesheet_track_insert_blank_index(FLAC__StreamMetadata *object, unsigned track_num, unsigned index_num);
Chris@1: 01936 
Chris@1: 01954 FLAC_API FLAC__bool FLAC__metadata_object_cuesheet_track_delete_index(FLAC__StreamMetadata *object, unsigned track_num, unsigned index_num);
Chris@1: 01955 
Chris@1: 01971 FLAC_API FLAC__bool FLAC__metadata_object_cuesheet_resize_tracks(FLAC__StreamMetadata *object, unsigned new_num_tracks);
Chris@1: 01972 
Chris@1: 01993 FLAC_API FLAC__bool FLAC__metadata_object_cuesheet_set_track(FLAC__StreamMetadata *object, unsigned track_num, FLAC__StreamMetadata_CueSheet_Track *track, FLAC__bool copy);
Chris@1: 01994 
Chris@1: 02016 FLAC_API FLAC__bool FLAC__metadata_object_cuesheet_insert_track(FLAC__StreamMetadata *object, unsigned track_num, FLAC__StreamMetadata_CueSheet_Track *track, FLAC__bool copy);
Chris@1: 02017 
Chris@1: 02035 FLAC_API FLAC__bool FLAC__metadata_object_cuesheet_insert_blank_track(FLAC__StreamMetadata *object, unsigned track_num);
Chris@1: 02036 
Chris@1: 02050 FLAC_API FLAC__bool FLAC__metadata_object_cuesheet_delete_track(FLAC__StreamMetadata *object, unsigned track_num);
Chris@1: 02051 
Chris@1: 02071 FLAC_API FLAC__bool FLAC__metadata_object_cuesheet_is_legal(const FLAC__StreamMetadata *object, FLAC__bool check_cd_da_subset, const char **violation);
Chris@1: 02072 
Chris@1: 02084 FLAC_API FLAC__uint32 FLAC__metadata_object_cuesheet_calculate_cddb_id(const FLAC__StreamMetadata *object);
Chris@1: 02085 
Chris@1: 02107 FLAC_API FLAC__bool FLAC__metadata_object_picture_set_mime_type(FLAC__StreamMetadata *object, char *mime_type, FLAC__bool copy);
Chris@1: 02108 
Chris@1: 02129 FLAC_API FLAC__bool FLAC__metadata_object_picture_set_description(FLAC__StreamMetadata *object, FLAC__byte *description, FLAC__bool copy);
Chris@1: 02130 
Chris@1: 02154 FLAC_API FLAC__bool FLAC__metadata_object_picture_set_data(FLAC__StreamMetadata *object, FLAC__byte *data, FLAC__uint32 length, FLAC__bool copy);
Chris@1: 02155 
Chris@1: 02173 FLAC_API FLAC__bool FLAC__metadata_object_picture_is_legal(const FLAC__StreamMetadata *object, const char **violation);
Chris@1: 02174 
Chris@1: 02175 /* \} */
Chris@1: 02176 
Chris@1: 02177 #ifdef __cplusplus
Chris@1: 02178 }
Chris@1: 02179 #endif
Chris@1: 02180 
Chris@1: 02181 #endif
Chris@1: 
Chris@1:
Chris@1: Chris@1: Chris@1: Chris@1: Chris@1: Chris@1: Chris@1: Chris@1: Chris@1: