aboutsummaryrefslogtreecommitdiff
path: root/src-qt5/desktop-utils/lumina-mediaplayer/mainUI.h
blob: 6128f5f71099219d1787ef0eb362dc7ef37f3051 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
//===========================================
//  Lumina-Desktop source code
//  Copyright (c) 2017, Ken Moore
//  Available under the 3-clause BSD license
//  See the LICENSE file for full details
//===========================================
#ifndef _LUMINA_MEDIA_PLAYER_MAIN_UI_H
#define _LUMINA_MEDIA_PLAYER_MAIN_UI_H

#include <QMainWindow>
#include <QAction>
#include <QString>
#include <QStringList>
#include <QSystemTrayIcon>
#include <QCloseEvent>

//QMultimedia classes
#include <QMediaPlayer>
#include <QMediaPlaylist>
#include <QVideoWidget>

#include "PianoBarProcess.h"

namespace Ui{
	class MainUI;
};

class MainUI : public QMainWindow{
	Q_OBJECT
public:
	MainUI();
	~MainUI();

	void loadArguments(QStringList);

private:
	Ui::MainUI *ui;
	PianoBarProcess *PANDORA;
	QMediaPlayer *PLAYER;
	QVideoWidget *VIDEO;
	QMediaPlaylist *PLAYLIST;
	QSystemTrayIcon *SYSTRAY;
	bool closing;

	void setupPlayer();
	void setupPandora();
	void setupConnections();
	void setupIcons();
	void setupTrayIcon();
	void closeTrayIcon();

private slots:
	void closeApplication();
	void PlayerTypeChanged(bool active = true);

	//Toolbar actions
	void playToggled();
	void pauseToggled();
	void stopToggled();
	void nextToggled();
	void backToggled();
	void volupToggled();
	void voldownToggled();

	//Local Playback UI slots
	void setLocalPosition(int pos){ PLAYER->setPosition(pos); }
	void addLocalMedia();
	void rmLocalMedia();
	void localPlaybackSettingsChanged();

	//Local Playlist Feedback
	void LocalListIndexChanged(int); //item being played just changed
	void LocalListMediaChanged(int,int);
	void LocalListMediaInserted(int,int);
	void LocalListMediaRemoved(int,int);

	//Local Player Feedback
	//void LocalAudioAvailable(bool);
	void LocalVideoAvailable(bool);
	void LocalIsSeekable(bool);
	void LocalNowMuted(bool);
	void LocalError(QMediaPlayer::Error);
	void LocalMediaChanged(const QMediaContent&);
	void LocalMediaStatusChanged(QMediaPlayer::MediaStatus);
	void LocalStateChanged(QMediaPlayer::State);
	void LocalDurationChanged(qint64);
	void LocalPositionChanged(qint64);
	void LocalVolumeChanged(int);

	//Pandora Options
	void showPandoraSongInfo();
	void changePandoraStation(QString);
	void checkPandoraSettings();
	void applyPandoraSettings();
	//Pandora Process Feedback
	void PandoraStateChanged(PianoBarProcess::State);
	void NewPandoraInfo(QString);
	void PandoraStationChanged(QString);
	void PandoraSongChanged(bool, QString, QString, QString, QString, QString); //[isLoved, title, artist, album, detailsURL, fromStation]
	void PandoraTimeUpdate(int,int); //current secs, total secs
	void PandoraStationListChanged(QStringList);
	void PandoraListInfo(QStringList);

	//System Tray interactions
	void toggleVisibility();
	void trayMessageClicked();
	void trayClicked(QSystemTrayIcon::ActivationReason);

protected:
	void closeEvent(QCloseEvent *ev);
	
};
#endif
bgstack15