foobar2000 SDK  2015-01-14
Enumerations | Functions
tag_processor.cpp File Reference

Go to the source code of this file.

Enumerations

enum  { g_flag_id3v1 = 1<<0, g_flag_id3v2 = 1<<1, g_flag_apev2 = 1<<2 }
 

Functions

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)
 
static void tagtype_list_append (pfc::string_base &p_out, const char *p_name)
 

Enumeration Type Documentation

anonymous enum
Enumerator
g_flag_id3v1 
g_flag_id3v2 
g_flag_apev2 

Definition at line 21 of file tag_processor.cpp.

21  {
22  g_flag_id3v1 = 1<<0,
23  g_flag_id3v2 = 1<<1,
24  g_flag_apev2 = 1<<2
25 };

Function Documentation

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

Definition at line 66 of file tag_processor.cpp.

66  {
68  g_write_tags_ex(cb,p_flags,p_file,p_info,p_abort);
69 }
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)
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 
)
static

Definition at line 33 of file tag_processor.cpp.

33  {
34  PFC_ASSERT( p_flags == 0 || p_info != 0 );
35 
36 
37  if (p_flags & (g_flag_id3v1 | g_flag_apev2)) {
38  switch(p_flags & (g_flag_id3v1 | g_flag_apev2)) {
41  break;
42  case g_flag_id3v1:
43  static_api_ptr_t<tag_processor_trailing>()->write_id3v1(p_file,*p_info,p_abort);
44  break;
45  case g_flag_apev2:
46  static_api_ptr_t<tag_processor_trailing>()->write_apev2(p_file,*p_info,p_abort);
47  break;
48  default:
49  throw exception_io_data();
50  }
51  } else {
52  static_api_ptr_t<tag_processor_trailing>()->remove(p_file,p_abort);
53  }
54 
55  if (p_flags & g_flag_id3v2)
56  {
57  static_api_ptr_t<tag_processor_id3v2>()->write_ex(p_callback,p_file,*p_info,p_abort);
58  }
59  else
60  {
61  t_uint64 dummy;
62  tag_processor_id3v2::g_remove_ex(p_callback,p_file,dummy,p_abort);
63  }
64 }
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.
uint64_t t_uint64
Definition: int_types.h:3
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_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...
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)
Helper template used to easily access core services. Usage: static_api_ptr_t api; api->doso...
Definition: service.h:533
static void tagtype_list_append ( pfc::string_base p_out,
const char *  p_name 
)
static

Definition at line 27 of file tag_processor.cpp.

28 {
29  if (!p_out.is_empty()) p_out += "|";
30  p_out += p_name;
31 }
bool is_empty() const
Definition: string_base.h:212