[medialib] added support to set the active playlist
[libxmms2client-qt.git] / medialib.h
blobbd9578341aaa376f9ab3ee05a3a6b7ded1a010dd
1 //
2 // C++ Interface: medialib
3 //
4 // Author: Oliver Groß <z.o.gross@gmx.de>, (C) 2008
5 //
6 // Copyright: See COPYING file that comes with this distribution
7 //
8 #ifndef XMMSQT_MEDIALIB_H
9 #define XMMSQT_MEDIALIB_H
11 #include <QObject>
12 #include <QHash>
13 #include <xmmsclient/xmmsclient.h>
15 namespace XmmsQt {
16 class QClient;
17 class QPlaylist;
19 struct MediaInfo {
20 quint16 tracknr;
21 QString title;
22 QString artist;
23 QString album;
24 QString genre;
25 //QString comment;
26 quint32 channels;
27 quint32 sampleRate;
28 quint32 sampleFormat;
29 quint32 duration;
32 typedef QHash<quint32, MediaInfo *> QMediaInfoHash;
33 typedef QHash<QString, QPlaylist *> QPlaylistHash;
35 class QMedialib : public QObject {
36 Q_OBJECT
37 private:
38 xmmsc_connection_t * m_Connection;
39 QMediaInfoHash m_CachedMedia;
40 QPlaylistHash m_Playlists;
41 QPlaylist * m_ActivePlaylist;
43 static void recievedMediaInfoCallback(xmmsc_result_t * result, void * instance);
45 static void playlistChangedCallback(xmmsc_result_t * result, void * instance);
46 static void activePlaylistCallback(xmmsc_result_t * result, void * instance);
47 static void currentPosCallback(xmmsc_result_t * result, void * instance);
48 static void collectionChangedCallback(xmmsc_result_t * result, void * instance);
49 static void fillPlaylists(xmmsc_result_t *, void * instance);
50 private slots:
51 void setConnection(xmmsc_connection_t * connection);
52 void setActivePlaylist(QString name);
53 //void setActivePlaylist(QPlaylist * playlist);
54 public:
55 QMedialib(QClient * parent);
56 ~QMedialib();
58 const QMediaInfoHash & media() { return m_CachedMedia; }
59 const QPlaylistHash & playlists() { return m_Playlists; }
60 QPlaylist * activePlaylist() const { return m_ActivePlaylist; };
62 void clearMediaInfo();
63 void removeMediaInfo(quint32 id);
64 void requestMediaInfo(quint32 id);
65 bool checkMediaInfo(quint32 id);
66 //void resetPlaylists();
67 signals:
68 void mediaInfoReady(quint32 id);
69 void activePlaylistChanged();
70 void collectionAdded(QString name);
71 void collectionRemoved(QString name);
72 void collectionUpdated(QString name);
73 void collectionRenamed(QString oldName, QString newName);
74 void playlistsReseted();
78 #endif