foobar2000 SDK  2015-01-14
Public Types | Public Member Functions | Data Fields
file_info_record_helper::file_info_record

#include <cue_parser.h>

Public Types

typedef pfc::map_t< pfc::string8, pfc::string8, file_info::field_name_comparatort_info_map
 
typedef pfc::map_t< pfc::string8, t_meta_value, file_info::field_name_comparatort_meta_map
 
typedef pfc::chain_list_v2_t< pfc::string8t_meta_value
 

Public Member Functions

 file_info_record ()
 
template<typename t_callback >
void enumerate_meta (t_callback &p_callback) const
 
template<typename t_callback >
void enumerate_meta (t_callback &p_callback)
 
void from_info (const file_info &p_info)
 
void from_info_overwrite_info (const file_info &p_info)
 
void from_info_overwrite_meta (const file_info &p_info)
 
void from_info_overwrite_rg (const file_info &p_info)
 
void from_info_set_meta (const file_info &p_info)
 
double get_length () const
 
replaygain_info get_replaygain () const
 
void merge_overwrite (const file_info &p_info)
 
const t_meta_valuemeta_query_ptr (const char *p_name) const
 
void meta_set (const char *p_name, const char *p_value)
 
template<typename t_source >
void overwrite_info (const t_source &p_info)
 
template<typename t_source >
void overwrite_meta (const t_source &p_meta)
 
void reset ()
 
void set_length (double p_length)
 
void set_replaygain (const replaygain_info &p_replaygain)
 
void to_info (file_info &p_info) const
 
void transfer_meta_entry (const char *p_name, const file_info &p_info, t_size p_index)
 

Data Fields

t_info_map m_info
 
double m_length
 
t_meta_map m_meta
 
replaygain_info m_replaygain
 

Detailed Description

Definition at line 28 of file cue_parser.h.

Member Typedef Documentation

Definition at line 32 of file cue_parser.h.

Definition at line 31 of file cue_parser.h.

Definition at line 30 of file cue_parser.h.

Constructor & Destructor Documentation

file_info_record_helper::file_info_record::file_info_record ( )
inline

Definition at line 34 of file cue_parser.h.

static const replaygain_info replaygain_info_invalid
Definition: file_info.h:69

Member Function Documentation

template<typename t_callback >
void file_info_record_helper::file_info_record::enumerate_meta ( t_callback &  p_callback) const
inline

Definition at line 133 of file cue_parser.h.

133 {m_meta.enumerate(p_callback);}
void enumerate(t_callback &p_callback) const
Definition: map.h:125
template<typename t_callback >
void file_info_record_helper::file_info_record::enumerate_meta ( t_callback &  p_callback)
inline

Definition at line 134 of file cue_parser.h.

134 {m_meta.enumerate(p_callback);}
void enumerate(t_callback &p_callback) const
Definition: map.h:125
void file_info_record_helper::file_info_record::from_info ( const file_info p_info)
inline

Definition at line 111 of file cue_parser.h.

111  {
112  reset();
113  m_length = p_info.get_length();
114  m_replaygain = p_info.get_replaygain();
115  from_info_overwrite_meta(p_info);
116  from_info_overwrite_info(p_info);
117  }
virtual double get_length() const =0
Retrieves audio duration, in seconds. Note that the reported duration should not be assumed to be th...
void from_info_overwrite_info(const file_info &p_info)
Definition: cue_parser.h:47
void from_info_overwrite_meta(const file_info &p_info)
Definition: cue_parser.h:52
virtual replaygain_info get_replaygain() const =0
Retrieves ReplayGain information.
void file_info_record_helper::file_info_record::from_info_overwrite_info ( const file_info p_info)
inline

Definition at line 47 of file cue_parser.h.

47  {
48  for(t_size infowalk = 0, infocount = p_info.info_get_count(); infowalk < infocount; ++infowalk) {
49  m_info.set(p_info.info_enum_name(infowalk),p_info.info_enum_value(infowalk));
50  }
51  }
virtual const char * info_enum_value(t_size p_index) const =0
Retrieves the value of specified technical info entry. Return value is a null-terminated UTF-8 encode...
size_t t_size
Definition: int_types.h:48
void set(const _t_key &p_key, const _t_value &p_value)
Definition: map.h:22
virtual const char * info_enum_name(t_size p_index) const =0
Retrieves the name of specified technical info entry. Return value is a null-terminated UTF-8 encoded...
virtual t_size info_get_count() const =0
Retrieves number of technical info entries.
void file_info_record_helper::file_info_record::from_info_overwrite_meta ( const file_info p_info)
inline

Definition at line 52 of file cue_parser.h.

52  {
53  for(t_size metawalk = 0, metacount = p_info.meta_get_count(); metawalk < metacount; ++metawalk) {
54  const t_size valuecount = p_info.meta_enum_value_count(metawalk);
55  if (valuecount > 0) {
56  t_meta_value & entry = m_meta.find_or_add(p_info.meta_enum_name(metawalk));
57  entry.remove_all();
58  for(t_size valuewalk = 0; valuewalk < valuecount; ++valuewalk) {
59  entry.add_item(p_info.meta_enum_value(metawalk,valuewalk));
60  }
61  }
62  }
63  }
virtual t_size meta_enum_value_count(t_size p_index) const =0
Retrieves count of values in metadata entry of specified index. The value is always equal to or great...
virtual const char * meta_enum_value(t_size p_index, t_size p_value_number) const =0
Retrieves specified value from specified metadata entry. Return value is a null-terminated UTF-8 enco...
t_storage_value & find_or_add(_t_key const &p_key)
Definition: map.h:29
size_t t_size
Definition: int_types.h:48
virtual t_size meta_get_count() const =0
Retrieves count of metadata entries.
pfc::chain_list_v2_t< pfc::string8 > t_meta_value
Definition: cue_parser.h:30
virtual const char * meta_enum_name(t_size p_index) const =0
Retrieves the name of metadata entry of specified index. Return value is a null-terminated UTF-8 enco...
void file_info_record_helper::file_info_record::from_info_overwrite_rg ( const file_info p_info)
inline

Definition at line 65 of file cue_parser.h.

65  {
67  }
static replaygain_info g_merge(replaygain_info r1, replaygain_info r2)
virtual replaygain_info get_replaygain() const =0
Retrieves ReplayGain information.
void file_info_record_helper::file_info_record::from_info_set_meta ( const file_info p_info)
inline

Definition at line 106 of file cue_parser.h.

106  {
107  m_meta.remove_all();
108  from_info_overwrite_meta(p_info);
109  }
void remove_all()
Definition: map.h:139
void from_info_overwrite_meta(const file_info &p_info)
Definition: cue_parser.h:52
double file_info_record_helper::file_info_record::get_length ( ) const
inline

Definition at line 38 of file cue_parser.h.

replaygain_info file_info_record_helper::file_info_record::get_replaygain ( ) const
inline

Definition at line 36 of file cue_parser.h.

36 {return m_replaygain;}
void file_info_record_helper::file_info_record::merge_overwrite ( const file_info p_info)
inline

Definition at line 78 of file cue_parser.h.

78  {
81  from_info_overwrite_rg(p_info);
82  }
void from_info_overwrite_info(const file_info &p_info)
Definition: cue_parser.h:47
void from_info_overwrite_meta(const file_info &p_info)
Definition: cue_parser.h:52
void from_info_overwrite_rg(const file_info &p_info)
Definition: cue_parser.h:65
const t_meta_value* file_info_record_helper::file_info_record::meta_query_ptr ( const char *  p_name) const
inline

Definition at line 101 of file cue_parser.h.

101  {
102  return m_meta.query_ptr(p_name);
103  }
const t_storage_value * query_ptr(const _t_key &p_key) const
Definition: map.h:64
void file_info_record_helper::file_info_record::meta_set ( const char *  p_name,
const char *  p_value 
)
inline

Definition at line 97 of file cue_parser.h.

97  {
98  m_meta.find_or_add(p_name).set_single(p_value);
99  }
void set_single(const t_source &p_item)
t_storage_value & find_or_add(_t_key const &p_key)
Definition: map.h:29
template<typename t_source >
void file_info_record_helper::file_info_record::overwrite_info ( const t_source &  p_info)
inline

Definition at line 74 of file cue_parser.h.

74  {
75  m_info.overwrite(p_info);
76  }
void overwrite(const t_source &p_source)
Definition: map.h:142
template<typename t_source >
void file_info_record_helper::file_info_record::overwrite_meta ( const t_source &  p_meta)
inline

Definition at line 70 of file cue_parser.h.

70  {
71  m_meta.overwrite(p_meta);
72  }
void overwrite(const t_source &p_source)
Definition: map.h:142
void file_info_record_helper::file_info_record::reset ( )
inline

Definition at line 41 of file cue_parser.h.

41  {
43  m_length = 0;
45  }
void remove_all()
Definition: map.h:139
static const replaygain_info replaygain_info_invalid
Definition: file_info.h:69
void file_info_record_helper::file_info_record::set_length ( double  p_length)
inline

Definition at line 39 of file cue_parser.h.

void file_info_record_helper::file_info_record::set_replaygain ( const replaygain_info p_replaygain)
inline

Definition at line 37 of file cue_parser.h.

37 {m_replaygain = p_replaygain;}
void file_info_record_helper::file_info_record::to_info ( file_info p_info) const
inline

Definition at line 118 of file cue_parser.h.

118  {
119  p_info.reset();
120  p_info.set_length(m_length);
122 
123  {
124  __file_info_record__info__enumerator e(p_info);
125  m_info.enumerate( e );
126  }
127  {
128  __file_info_record__meta__enumerator e(p_info);
129  m_meta.enumerate( e );
130  }
131  }
void enumerate(t_callback &p_callback) const
Definition: map.h:125
void reset()
Definition: file_info.cpp:287
virtual void set_replaygain(const replaygain_info &p_info)=0
Sets ReplayGain information.
virtual void set_length(double p_length)=0
Sets audio duration, in seconds. Note that the reported duration should not be assumed to be the exa...
void file_info_record_helper::file_info_record::transfer_meta_entry ( const char *  p_name,
const file_info p_info,
t_size  p_index 
)
inline

Definition at line 84 of file cue_parser.h.

84  {
85  const t_size count = p_info.meta_enum_value_count(p_index);
86  if (count == 0) {
87  m_meta.remove(p_name);
88  } else {
89  t_meta_value & val = m_meta.find_or_add(p_name);
90  val.remove_all();
91  for(t_size walk = 0; walk < count; ++walk) {
92  val.add_item(p_info.meta_enum_value(p_index,walk));
93  }
94  }
95  }
virtual t_size meta_enum_value_count(t_size p_index) const =0
Retrieves count of values in metadata entry of specified index. The value is always equal to or great...
virtual const char * meta_enum_value(t_size p_index, t_size p_value_number) const =0
Retrieves specified value from specified metadata entry. Return value is a null-terminated UTF-8 enco...
t_storage_value & find_or_add(_t_key const &p_key)
Definition: map.h:29
size_t t_size
Definition: int_types.h:48
bool remove(const _t_key &p_key)
Definition: map.h:120
pfc::chain_list_v2_t< pfc::string8 > t_meta_value
Definition: cue_parser.h:30

Field Documentation

t_info_map file_info_record_helper::file_info_record::m_info

Definition at line 138 of file cue_parser.h.

double file_info_record_helper::file_info_record::m_length

Definition at line 140 of file cue_parser.h.

t_meta_map file_info_record_helper::file_info_record::m_meta

Definition at line 137 of file cue_parser.h.

replaygain_info file_info_record_helper::file_info_record::m_replaygain

Definition at line 139 of file cue_parser.h.


The documentation for this class was generated from the following file: