format: implement generic format parser and printer
This commit is contained in:
13
src/song.h
13
src/song.h
@@ -72,7 +72,7 @@ struct Song
|
||||
virtual std::string getLength(unsigned idx = 0) const;
|
||||
virtual std::string getPriority(unsigned idx = 0) const;
|
||||
|
||||
virtual std::string getTags(GetFunction f, const std::string &tags_separator) const;
|
||||
virtual std::string getTags(GetFunction f) const;
|
||||
|
||||
virtual unsigned getDuration() const;
|
||||
virtual unsigned getPosition() const;
|
||||
@@ -85,9 +85,6 @@ struct Song
|
||||
|
||||
virtual bool empty() const;
|
||||
|
||||
virtual std::string toString(const std::string &fmt, const std::string &tags_separator,
|
||||
const std::string &escape_chars = "") const;
|
||||
|
||||
bool operator==(const Song &rhs) const {
|
||||
if (m_hash != rhs.m_hash)
|
||||
return false;
|
||||
@@ -102,14 +99,10 @@ struct Song
|
||||
const char *c_uri() const { return m_song ? mpd_song_get_uri(m_song.get()) : ""; }
|
||||
|
||||
static std::string ShowTime(unsigned length);
|
||||
static void validateFormat(const std::string &fmt);
|
||||
|
||||
static const char FormatEscapeCharacter = 1;
|
||||
|
||||
static std::string TagsSeparator;
|
||||
|
||||
private:
|
||||
std::string ParseFormat(std::string::const_iterator &it, const std::string &tags_separator,
|
||||
const std::string &escape_chars) const;
|
||||
|
||||
std::shared_ptr<mpd_song> m_song;
|
||||
size_t m_hash;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user