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 setConnection(xmmsc_connection_t
* connection
);
52 void setActivePlaylist(QString name
);
53 //void setActivePlaylist(QPlaylist * playlist);
55 QMedialib(QClient
* parent
);
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();
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();