add mp3 and ogg torrent url info to JamendoAlbum
[amarok.git] / src / tagguesser.h
blobe1503768e17b04fa8472b196ef4ee394763498c4
1 // (c) 2005 Alexandre Pereira de Oliveira <aleprj@gmail.com>
2 // (c) 2003 Frerich Raabe <raabe@kde.org>
3 // See COPYING file for licensing information.
5 #ifndef TAGGUESSER_H
6 #define TAGGUESSER_H
8 #include <QRegExp>
9 #include <Q3ValueList>
11 class FileNameScheme
13 public:
14 typedef Q3ValueList<FileNameScheme> List;
16 FileNameScheme() { }
17 FileNameScheme( const QString &s );
19 bool matches( const QString &s ) const;
21 QString title() const;
22 QString artist() const;
23 QString album() const;
24 QString track() const;
25 QString comment() const;
26 QString year() const;
27 QString composer() const;
28 QString genre() const;
30 QString pattern() const { return m_cod; }
32 private:
33 QString composeRegExp( const QString &s ) const;
34 QString m_cod;
36 mutable QRegExp m_regExp;
38 int m_titleField;
39 int m_artistField;
40 int m_albumField;
41 int m_trackField;
42 int m_commentField;
43 int m_yearField;
44 int m_composerField;
45 int m_genreField;
48 class TagGuesser
50 public:
52 enum Type { FileName = 0, MusicBrainz = 1 };
54 static QStringList schemeStrings();
55 static void setSchemeStrings( const QStringList &schemes );
57 TagGuesser();
58 TagGuesser( const QString &absFileName );
60 void guess( const QString &absFileName );
62 QString title() const { return m_title; }
63 QString artist() const { return m_artist; }
64 QString album() const { return m_album; }
65 QString track() const { return m_track; }
66 QString comment() const { return m_comment; }
67 QString year() const { return m_year; }
68 QString composer() const { return m_composer; }
69 QString genre() const { return m_genre; }
71 private:
72 void loadSchemes();
73 QString capitalizeWords( const QString &s );
75 FileNameScheme::List m_schemes;
76 QString m_title;
77 QString m_artist;
78 QString m_album;
79 QString m_track;
80 QString m_comment;
81 QString m_year;
82 QString m_composer;
83 QString m_genre;
86 #endif /* TAGGUESSER_H */