~ubuntu-branches/ubuntu/hoary/kdemultimedia/hoary

« back to all changes in this revision

Viewing changes to noatun/noatun/modules/liszt/Track.h

  • Committer: Bazaar Package Importer
  • Author(s): Martin Schulze
  • Date: 2003-01-22 15:00:51 UTC
  • Revision ID: james.westby@ubuntu.com-20030122150051-uihwkdoxf15mi1tn
Tags: upstream-2.2.2
ImportĀ upstreamĀ versionĀ 2.2.2

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
 * Copyright (C) 2000 Rik Hemsley (rikkus) <rik@kde.org>. All rights reserved.
 
3
 *
 
4
LICENSE
 
5
 */
 
6
 
 
7
#ifndef TRACK_H
 
8
#define TRACK_H
 
9
 
 
10
#include <qobject.h>
 
11
#include <qstring.h>
 
12
#include <qdatastream.h>
 
13
#include <qlist.h>
 
14
#include <qdatetime.h>
 
15
 
 
16
class PlaylistItem;
 
17
 
 
18
class Track : public QObject
 
19
{
 
20
  Q_OBJECT
 
21
 
 
22
  public:
 
23
 
 
24
    Track();
 
25
 
 
26
    Track(
 
27
        const QString & artist,
 
28
        const QString & album,
 
29
        const QString & name,
 
30
        const QString & filename,
 
31
        long length
 
32
    );
 
33
 
 
34
    Track(const Track & t);
 
35
 
 
36
    Track & operator = (const Track & t);
 
37
 
 
38
    bool operator < (const Track & t) const;
 
39
 
 
40
    bool operator <= (const Track & t) const
 
41
    { return (operator < (t) || operator == (t)); }
 
42
 
 
43
    bool operator > (const Track & t) const
 
44
    { return ! operator < (t); }
 
45
 
 
46
    bool operator == (const Track &) const;
 
47
 
 
48
    QString artist()    const { return artist_;     }
 
49
    QString album()     const { return album_;      }
 
50
    QString name()      const { return name_;       }
 
51
    QString filename()  const { return filename_;   }
 
52
    long    length()    const { return length_;     }
 
53
    int     score()     const { return score_;      }
 
54
    int     fileScore() const { return fileScore_;  }
 
55
    QString key()       const { return key_;        }
 
56
 
 
57
    PlaylistItem * lisztItem();
 
58
 
 
59
    QString lengthAsString() const { return lengthAsString_; }
 
60
 
 
61
    void    setArtist   (QString s) { artist_ = s;    }
 
62
    void    setAlbum    (QString s) { album_ = s;     }
 
63
    void    setName     (QString s) { name_ = s;      }
 
64
    void    setFilename (QString s) { filename_ = s;  }
 
65
    void    setLength   (long i)    { length_ = i;    }
 
66
    void    setScore    (int i);
 
67
    void    setFileScore(int i);
 
68
 
 
69
    friend QDataStream & operator << (QDataStream &, const Track &);
 
70
    friend QDataStream & operator >> (QDataStream & str, Track &);
 
71
 
 
72
  signals:
 
73
 
 
74
    void scoreChanged(int);
 
75
 
 
76
  private:
 
77
 
 
78
    void _recalculateKey();
 
79
    void _recalculateLengthAsString();
 
80
    void _createLisztItem();
 
81
 
 
82
    QString artist_;
 
83
    QString album_;
 
84
    QString name_;
 
85
    QString filename_;
 
86
    long    length_;
 
87
    int     score_;
 
88
    int     fileScore_;
 
89
    QString key_;
 
90
    QString lengthAsString_;
 
91
 
 
92
    PlaylistItem * lisztItem_;
 
93
};
 
94
 
 
95
class TrackList : public QList<Track>
 
96
{
 
97
  public:
 
98
 
 
99
    TrackList();
 
100
    virtual ~TrackList();
 
101
 
 
102
  protected:
 
103
 
 
104
    int compareItems(QCollection::Item, QCollection::Item);
 
105
};
 
106
 
 
107
typedef QListIterator<Track> TrackListIterator;
 
108
 
 
109
#endif // TRACK_H