modified: Groove.pro
[groove] / gscom.h
1 #ifndef GSCOM_H
2 #define GSCOM_H
3 #include <QString>
4 #include <QStandardItemModel>
5 #include <QtNetwork>
6 //#include <parser.h>
7 #define GSPASS "**********"
8 #define GSIP "grooveshark.com"
9 #define GS_LISTEN "listen.grooveshark.com"
10 #define GS_GUTS "guts.grroveshark.com"
11 class gscom : public QObject
12 {
13     Q_OBJECT;
14 public:
15     QUrl sku;
16     QString streamID;
17     QString songToken;
18     gscom();
19     QStandardItemModel* getSongModel(QString song);
20     QStandardItemModel* getArtistModel(QString artist);
21     QStandardItemModel* getAlbumModel(QString Album);
22     QStandardItemModel* getModel();
23     void getSong(QString songid);
24
25
26 signals:
27     void finishedSearch();
28     void sKeyFound();
29
30 public slots:
31     void replyFinished(QNetworkReply*);
32
33
34
35 private:
36     enum gMETHOD {
37         getCommunicationToken,
38         getSearchResults,
39         getStreamKeyFromSongIDEx,
40         getPHP,
41         getTokenForForSong,
42         none
43     };
44     gMETHOD currentaction;
45     QString *sessionKey;
46     void getSessionKey();
47     QString* getStreamKey();
48     QString* getToken(gMETHOD m);
49     QStandardItemModel *model;
50     QString *phpSession;
51     QNetworkAccessManager *manager;
52     QNetworkCookieJar *cookies;
53     void addDebugMsg(QString debug);
54     void addProgressbar(QString debug);
55     bool firstR;
56     QByteArray *postdata;
57 };
58
59 #endif // GSCOM_H