#ifndef PHONONWIDGET_H
#define PHONONWIDGET_H
-#include <KUrl>
-
+#include <QUrl>
#include <QSize>
#include <QWidget>
namespace Phonon
{
+ class AudioOutput;
class MediaObject;
class SeekSlider;
class VideoPlayer;
{
Q_OBJECT
public:
- enum Mode
- {
- Audio,
- Video
- };
-
- PhononWidget(QWidget *parent = 0);
-
- void setUrl(const KUrl &url);
- KUrl url() const;
+ explicit PhononWidget(QWidget *parent = nullptr);
- void setMode(Mode mode);
- Mode mode() const;
+ void setUrl(const QUrl &url);
+ QUrl url() const;
void setVideoSize(const QSize& size);
QSize videoSize() const;
signals:
- void playingStarted();
- void playingStopped();
+ /**
+ * Is emitted whenever the video-state
+ * has changed: If true is returned, a video
+ * including control-buttons will be shown.
+ * If false is returned, no video is shown
+ * and the control-buttons are available for
+ * audio only.
+ */
+ void hasVideoChanged(bool hasVideo);
protected:
- virtual void showEvent(QShowEvent *event);
- virtual void hideEvent(QHideEvent *event);
+ void showEvent(QShowEvent *event) override;
+ void hideEvent(QHideEvent *event) override;
private slots:
void stateChanged(Phonon::State);
void play();
void stop();
+ void slotHasVideoChanged(bool);
private:
void applyVideoSize();
private:
- Mode m_mode;
- KUrl m_url;
+ QUrl m_url;
QSize m_videoSize;
QToolButton *m_playButton;
QToolButton *m_stopButton;
QVBoxLayout *m_topLayout;
- Phonon::MediaObject *m_audioMedia;
Phonon::MediaObject *m_media;
Phonon::SeekSlider *m_seekSlider;
+ Phonon::AudioOutput *m_audioOutput;
EmbeddedVideoPlayer *m_videoPlayer;
};