[general] bugfixes, more debug output and error handling
[libxmms2client-qt.git] / medialib.h
blob04ec87ad9137dffbf12d42d566d930013a7d74ee
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 public slots:
51 void setActivePlaylist(QString name);
52 private slots:
53 void setConnection(xmmsc_connection_t * connection);
54 //void setActivePlaylist(QPlaylist * playlist);
55 public:
56 QMedialib(QClient * parent);
57 ~QMedialib();
59 const QMediaInfoHash & media() { return m_CachedMedia; }
60 const QPlaylistHash & playlists() { return m_Playlists; }
61 QPlaylist * activePlaylist() const { return m_ActivePlaylist; };
63 void clearMediaInfo();
64 void removeMediaInfo(quint32 id);
65 void requestMediaInfo(quint32 id);
66 bool checkMediaInfo(quint32 id);
67 //void resetPlaylists();
68 signals:
69 void mediaInfoReady(quint32 id);
70 void activePlaylistChanged();
71 void collectionAdded(QString name);
72 void collectionRemoved(QString name);
73 void collectionUpdated(QString name);
74 void collectionRenamed(QString oldName, QString newName);
75 void playlistsReseted();
79 #endif