summaryrefslogtreecommitdiffstats
path: root/src/metadata/tagengine.h
blob: 8b0e6f0c15e594d96b9e84609043646da4ba37d7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79


#ifndef TAGENGINE_H
#define TAGENGINE_H

#include <tqstring.h>
#include <tqstringlist.h>

/**
 * @short All metainformation can be stored in this class
 * @author Daniel Faust <hessijames@gmail.com>
 * @version 0.3
 */
class TagData
{
public:
    /**
     * Constructor
     */
    TagData( const TQString& _artist = TQString(), const TQString& _composer = TQString(),
             const TQString& _album = TQString(), const TQString& _title = TQString(),
             const TQString& _genre = TQString(), const TQString& _comment = TQString(),
             int _track = 0, int _disc = 0, int _year = 0,
             int _length = 0, int _fileSize = 0, int _bitrate = 0, int _samplingRate = 0 );

    /**
     * Destructor
     */
    virtual ~TagData();

    /** The tags */
    TQString artist;
    TQString composer;
    TQString album;
    TQString title;
    TQString genre;
    TQString comment;
    int track;
    int disc;
    int year;
    float track_gain;
    float album_gain;

    /** The technical information */
    int length;
    int fileSize;
    int bitrate;
    int samplingRate;
};


/**
 * @short Manages everything that has something to do with tags
 * @author Daniel Faust <hessijames@gmail.com>
 * @version 0.3
 */
class TagEngine
{
public:
    /**
     * Constructor
     */
    TagEngine();

    /**
     * Destructor
     */
    virtual ~TagEngine();

    /** A list of all genre */
    TQStringList genreList;

    TagData* readTags( const TQString& file );
    bool writeTags( const TQString& file, TagData* tagData );

//     bool canWrite( TQString format ); // NOTE no const because this string is being modyfied
};

#endif // TAGENGINE_H