34 PFC_ASSERT( p_flags == 0 || p_info != 0 );
49 throw exception_io_data();
138 bool have_id3v2 =
true, have_trailing =
true;
141 }
catch(exception_io_data) {
144 if (!have_id3v2 || !p_file->is_remote())
try {
146 }
catch(exception_io_data) {
147 have_trailing =
false;
150 if (!have_id3v2 && !have_trailing)
throw exception_tag_not_found();
154 if (have_trailing) p_info.
_add_tag(trailing);
static void g_remove(const service_ptr_t< file > &p_file, t_filesize &p_size_removed, abort_callback &p_abort)
void read(const service_ptr_t< file > &p_file, abort_callback &p_abort, pfc::string_base &p_out, bool &is_utf8)
void write_id3v1(const service_ptr_t< file > &p_file, const file_info &p_info, abort_callback &p_abort)
Strips all recognized tags from the file and writes an ID3v1 tag with specified info.
void write_id3v2_id3v1(const service_ptr_t< file > &p_file, const file_info &p_info, abort_callback &p_abort)
Strips all recognized tags from the file and writes ID3v1+ID3v2 tags with specified info...
void remove_id3v2_trailing(const service_ptr_t< file > &p_file, abort_callback &p_abort)
Removes ID3v2 and trailing tags from specified file (not to be confused with trailing ID3v2 which are...
void read_trailing(const service_ptr_t< file > &p_file, file_info &p_info, abort_callback &p_abort)
Reads trailing tags from the file.
void _set_tag(const file_info &tag)
Callback interface for write-tags-to-temp-file-and-swap scheme, used for ID3v2 tag updates and such w...
void write_multi_ex(tag_write_callback &p_callback, const service_ptr_t< file > &p_file, const file_info &p_info, abort_callback &p_abort, bool p_write_id3v1, bool p_write_id3v2, bool p_write_apev2)
Strips all recognized tags from the file and writes new tags with specified info according to paramet...
void write_apev2(const service_ptr_t< file > &p_file, const file_info &p_info, abort_callback &p_abort)
Strips all recognized tags from the file and writes an APEv2 tag with specified info.
void write_id3v2(const service_ptr_t< file > &p_file, const file_info &p_info, abort_callback &p_abort)
Strips all recognized tags from the file and writes an ID3v2 tag with specified info.
static void g_skip(const service_ptr_t< file > &p_file, t_filesize &p_size_skipped, abort_callback &p_abort)
void write_apev2_id3v1(const service_ptr_t< file > &p_file, const file_info &p_info, abort_callback &p_abort)
Strips all recognized tags from the file and writes ID3v1+APEv2 tags with specified info...
void read_trailing_ex(const service_ptr_t< file > &p_file, file_info &p_info, t_filesize &p_tagoffset, abort_callback &p_abort)
Reads trailing tags from the file. Extended version, returns offset at which parsed tags start...
static void g_write_tags(unsigned p_flags, const service_ptr_t< file > &p_file, const file_info *p_info, abort_callback &p_abort)
static void g_write_tags_ex(tag_write_callback &p_callback, unsigned p_flags, const service_ptr_t< file > &p_file, const file_info *p_info, abort_callback &p_abort)
Main interface class for information about some playable object.
void remove_trailing(const service_ptr_t< file > &p_file, abort_callback &p_abort)
Removes trailing tags from the file.
virtual void write(const service_ptr_t< file > &p_file, const file_info &p_info, unsigned p_flags, abort_callback &p_abort)=0
void read_id3v2(const service_ptr_t< file > &p_file, file_info &p_info, abort_callback &p_abort)
Reads ID3v2 tags from specified file.
bool remove_id3v2(const service_ptr_t< file > &p_file, abort_callback &p_abort)
Removes ID3v2 tags from the file. Returns true when a tag was removed, false when the file was not al...
void truncate_to_id3v1(file_info &p_info)
bool is_id3v1_sufficient(const file_info &p_info)
static void g_remove_ex(tag_write_callback &p_callback, const service_ptr_t< file > &p_file, t_filesize &p_size_removed, abort_callback &p_abort)
static void tagtype_list_append(pfc::string_base &p_out, const char *p_name)
void skip_id3v2(const service_ptr_t< file > &p_file, t_filesize &p_size_skipped, abort_callback &p_abort)
void _add_tag(const file_info &otherTag)
void write_apev2_id3v1(const service_ptr_t< file > &p_file, const file_info &p_info, abort_callback &p_abort)
Helper template used to easily access core services. Usage: static_api_ptr_t api; api->doso...
void read_id3v2_trailing(const service_ptr_t< file > &p_file, file_info &p_info, abort_callback &p_abort)
Reads ID3v2 and trailing tags from specified file (not to be confused with trailing ID3v2 which are n...
void write_multi(const service_ptr_t< file > &p_file, const file_info &p_info, abort_callback &p_abort, bool p_write_id3v1, bool p_write_id3v2, bool p_write_apev2)
Strips all recognized tags from the file and writes new tags with specified info according to paramet...
void write_apev2(const service_ptr_t< file > &p_file, const file_info &p_info, abort_callback &p_abort)
void write_id3v1(const service_ptr_t< file > &p_file, const file_info &p_info, abort_callback &p_abort)