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 + -
显示快捷键?