Sayonara Player
Loading...
Searching...
No Matches
TagWriter.h
1/* ${CLASS_NAME}.h */
2
3/*
4 * Copyright (C) 2011-2024 Michael Lugmair
5 *
6 * This file is part of sayonara player
7 *
8 * This program is free software: you can redistribute it and/or modify
9 * it under the terms of the GNU General Public License as published by
10 * the Free Software Foundation, either version 3 of the License, or
11 * (at your option) any later version.
12
13 * This program is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details.
17
18 * You should have received a copy of the GNU General Public License
19 * along with this program. If not, see <http://www.gnu.org/licenses/>.
20 */
21#ifndef SAYONARA_PLAYER_TAGWRITER_H
22#define SAYONARA_PLAYER_TAGWRITER_H
23
24#include <memory>
25
26class MetaData;
27class QString;
28class QPixmap;
29
30namespace Tagging
31{
33 {
34 public:
35 virtual ~TagWriter() = default;
36
37 virtual bool writeMetaData(const QString& filepath, const MetaData& track) = 0;
38
39 virtual bool writeChangedMetaDataOnly(const MetaData& oldTrack, const MetaData& newTrack) = 0;
40
41 virtual bool updateMetaData(const MetaData& track) = 0;
42
43 virtual bool writeCover(const QString& filepath, const QPixmap& cover) = 0;
44
45 virtual bool writeLyrics(const QString& filepath, const QString& lyricsData) = 0;
46
47 static std::shared_ptr<TagWriter> create();
48 };
49
50 using TagWriterPtr = std::shared_ptr<TagWriter>;
51}
52
53#endif //SAYONARA_PLAYER_TAGWRITER_H
The MetaData class.
Definition MetaData.h:47
Definition TagWriter.h:33
The GUI_TagEdit class.
Definition Engine.h:33