Implemented playback.
[someplayer] / src / libraryform.h
1 #ifndef LIBRARYFORM_H
2 #define LIBRARYFORM_H
3
4 #include <QWidget>
5 #include "someplayer.h"
6
7 #include <QStandardItemModel>
8 #include <QStandardItem>
9 #include <QModelIndex>
10
11 namespace Ui {
12     class LibraryForm;
13 }
14
15 using SomePlayer::DataObjects::Library;
16 using SomePlayer::DataObjects::Track;
17 using SomePlayer::DataObjects::Playlist;
18
19 enum LibraryFormListState {STATE_NONE, STATE_ARTIST, STATE_ALBUM, STATE_TRACK, STATE_PLAYLIST, STATE_PLAYLIST_TRACK};
20
21 class LibraryForm : public QWidget
22 {
23     Q_OBJECT
24
25 public:
26         explicit LibraryForm(Library *lib, QWidget *parent = 0);
27     ~LibraryForm();
28 signals:
29         void player();
30 private slots:
31         void _player();
32         void _view_button();
33         void _dynamic_button();
34         void _playlists_button();
35         void _add_button();
36         void _delete_button();
37         void _back_button();
38         void _process_list_click(QModelIndex);
39
40 private:
41     Ui::LibraryForm *ui;
42         Library *_lib;
43         QStandardItemModel *_model;
44         LibraryFormListState _state;
45         QString _current_artist;
46         QString _current_album;
47         QList<Track> _current_tracks;
48
49         void _add_artist(QString artist);
50         void _add_album(QString artist, QString album);
51         void _add_track(Track track);
52         void _add_playlist(QString name);
53         void _delete_track(Track track);
54 };
55
56 #endif // LIBRARYFORM_H