asftag.cpp
来自「Amarok是一款在LINUX或其他类UNIX操作系统中运行的音频播放器软件。 」· C++ 代码 · 共 203 行
CPP
203 行
/************************************************************************** copyright : (C) 2005-2007 by Lukáš Lalinský email : lalinsky@gmail.com **************************************************************************//*************************************************************************** * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License version * * 2.1 as published by the Free Software Foundation. * * * * This library is distributed in the hope that it will be useful, but * * WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * * Lesser General Public License for more details. * * * * You should have received a copy of the GNU Lesser General Public * * License along with this library; if not, write to the Free Software * * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * * USA * ***************************************************************************/#include "asftag.h"using namespace TagLib;class ASF::Tag::TagPrivate{public: String title; String artist; String copyright; String comment; String rating; AttributeListMap attributeListMap;};ASF::Tag::Tag(): TagLib::Tag(){ d = new TagPrivate;}ASF::Tag::~Tag(){ if(d) delete d;}StringASF::Tag::title() const{ return d->title;}StringASF::Tag::artist() const{ return d->artist;}StringASF::Tag::album() const{ if(d->attributeListMap.contains("WM/AlbumTitle")) return d->attributeListMap["WM/AlbumTitle"][0].toString(); return String::null;}StringASF::Tag::copyright() const{ return d->copyright;}StringASF::Tag::comment() const{ return d->comment;}StringASF::Tag::rating() const{ return d->rating;}unsigned intASF::Tag::year() const{ if(d->attributeListMap.contains("WM/Year")) return d->attributeListMap["WM/Year"][0].toString().toInt(); return 0;}unsigned intASF::Tag::track() const{ if(d->attributeListMap.contains("WM/TrackNumber")) return d->attributeListMap["WM/TrackNumber"][0].toString().toInt(); if(d->attributeListMap.contains("WM/Track")) return d->attributeListMap["WM/Track"][0].toUInt(); return 0;}StringASF::Tag::genre() const{ if(d->attributeListMap.contains("WM/Genre")) return d->attributeListMap["WM/Genre"][0].toString(); return String::null;}voidASF::Tag::setTitle(const String &value){ d->title = value;}voidASF::Tag::setArtist(const String &value){ d->artist = value;}voidASF::Tag::setCopyright(const String &value){ d->copyright = value;}voidASF::Tag::setComment(const String &value){ d->comment = value;}voidASF::Tag::setRating(const String &value){ d->rating = value;}voidASF::Tag::setAlbum(const String &value){ setAttribute("WM/AlbumTitle", value);}voidASF::Tag::setGenre(const String &value){ setAttribute("WM/Genre", value);}voidASF::Tag::setYear(uint value){ setAttribute("WM/Year", String::number(value));}voidASF::Tag::setTrack(uint value){ setAttribute("WM/TrackNumber", String::number(value));}ASF::AttributeListMap&ASF::Tag::attributeListMap(){ return d->attributeListMap;}void ASF::Tag::removeItem(const String &key){ AttributeListMap::Iterator it = d->attributeListMap.find(key); if(it != d->attributeListMap.end()) d->attributeListMap.erase(it);}void ASF::Tag::setAttribute(const String &name, const Attribute &attribute){ AttributeList value; value.append(attribute); d->attributeListMap.insert(name, value);}void ASF::Tag::addAttribute(const String &name, const Attribute &attribute){ if(d->attributeListMap.contains(name)) { d->attributeListMap[name].append(attribute); } else { setAttribute(name, attribute); }}bool ASF::Tag::isEmpty() const { return TagLib::Tag::isEmpty() && copyright().isEmpty() && rating().isEmpty() && d->attributeListMap.isEmpty();}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?