Update copyright informations.
[lastgo:lastgo.git] / LastGo / lastgowh.h
1 /*
2  * lastgowh.h -- Main application window
3  *
4  * Copyright (C) 2010 Andrea Grandi
5  * Authors: Andrea Grandi <a.grandi@gmail.com>
6  *
7  * This file is part of LastGo and is published under the GNU GPLv2
8  * See the README file for more details.
9  */
10
11 #ifndef LASTGOWH_H
12 #define LASTGOWH_H
13
14 #include <QMainWindow>
15 #include <QMap>
16 #include "lastfmtrack.h"
17 #include "apiclient.h"
18 #include <QMediaPlayer>
19 #include <QMediaPlaylist>
20 #include <QSettings>
21 #include "settingsdialog.h"
22 #include <QNetworkAccessManager>
23 #include <QNetworkReply>
24 #include "radiolist.h"
25 #include "aboutdialog.h"
26
27 namespace Ui
28 {
29     class LastGoWH;
30 }
31
32 class LastGoWH : public QMainWindow
33 {
34     Q_OBJECT
35
36 public:
37     explicit LastGoWH(QWidget *parent = 0);
38     void setUsername(QString user);
39     void setPassword(QString pass);
40     ~LastGoWH();
41
42 private slots:
43     void requestReplied(QMap<QString, QString> reply);
44     void radioGetPlaylistReplied(QList<LastfmTrack*> tracks);
45     void playStopButtonClicked();
46     void setupDesktopUI();
47     void initializeMediaPlayer();
48     void showSettingsDialog();
49     void loadSettings();
50     void saveSettings();
51     void importApiKey();
52     void connectMenuActions();
53     void connectSlots();
54     void authGetMobileSessionReplied(QMap<QString, QString> reply);
55     void setPlayButtonToPlay();
56     void setPlayButtonToStop();
57     void playTrack(int i);
58     void nextButtonClicked();
59     void playerStateChanged(QMediaPlayer::State state);
60     void trackPositionChanged(qint64 position);
61     void imageRequestReplied(QNetworkReply *reply);
62     void selectRadio();
63     void radioTuneReplied(QMap<QString, QString> reply);
64     void showAbout();
65
66 private:
67     Ui::LastGoWH *ui;
68     bool isPlaying;
69     bool isTuning;
70     bool isGettingPlayList;
71     QList<LastfmTrack*> playlistTracks;
72     ApiClient *ac;
73     QMediaPlayer *player;
74     QMediaPlaylist *playlist;
75     int playListIndex;
76
77     QSettings settings;
78     QString username;
79     QString password;
80     QString sk;
81     QString api_key;
82     QString api_secret;
83
84     QNetworkAccessManager *manager;
85     QString radioUrl;
86
87 };
88
89 #endif // LASTGOWH_H