2 // C++ Interface: medialib
4 // Author: Oliver Groß <z.o.gross@gmx.de>, (C) 2008
6 // Copyright: See COPYING file that comes with this distribution
8 #ifndef XMMSQT_MEDIALIB_H
9 #define XMMSQT_MEDIALIB_H
13 #include <xmmsclient/xmmsclient.h>
32 typedef QHash
<quint32
, MediaInfo
*> QMediaInfoHash
;
33 typedef QHash
<QString
, QPlaylist
*> QPlaylistHash
;
35 class QMedialib
: public QObject
{
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
);
51 void setActivePlaylist(QString name
);
53 void setConnection(xmmsc_connection_t
* connection
);
54 //void setActivePlaylist(QPlaylist * playlist);
56 QMedialib(QClient
* parent
);
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();
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();