-/* This file is part of the KDE project
- Copyright (C) 2007 Matthias Kretz <kretz@kde.org>
-
- This program is free software; you can redistribute it and/or
- modify it under the terms of the GNU General Public License as
- published by the Free Software Foundation; either version 2 of
- the License, or (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
- 02110-1301, USA.
+/*
+ SPDX-FileCopyrightText: 2007 Matthias Kretz <kretz@kde.org>
+ SPDX-License-Identifier: GPL-2.0-or-later
*/
#ifndef PHONONWIDGET_H
#define PHONONWIDGET_H
-#include <QUrl>
+#include <Phonon/Global>
+
#include <QSize>
+#include <QUrl>
#include <QWidget>
-#include <Phonon/Global>
-
namespace Phonon
{
class AudioOutput;
{
Q_OBJECT
public:
+
+ enum MediaKind {
+ Video,
+ Audio
+ };
+
explicit PhononWidget(QWidget *parent = nullptr);
- void setUrl(const QUrl &url);
+ void setUrl(const QUrl &url, MediaKind kind);
QUrl url() const;
+ void clearUrl();
void setVideoSize(const QSize& size);
QSize videoSize() const;
+ Phonon::State state() const;
+
+ void setAutoPlay(bool autoPlay);
+ bool eventFilter(QObject *object, QEvent *event) override;
- signals:
+ Q_SIGNALS:
/**
* Is emitted whenever the video-state
* has changed: If true is returned, a video
*/
void hasVideoChanged(bool hasVideo);
+ public Q_SLOTS:
+ void play();
+
protected:
void showEvent(QShowEvent *event) override;
void hideEvent(QHideEvent *event) override;
- private slots:
- void stateChanged(Phonon::State);
- void play();
+ private Q_SLOTS:
+ void stateChanged(Phonon::State newstate);
void stop();
- void slotHasVideoChanged(bool);
+ void finished();
private:
void applyVideoSize();
private:
+ void togglePlayback();
+
QUrl m_url;
QSize m_videoSize;
QToolButton *m_playButton;
- QToolButton *m_stopButton;
+ QToolButton *m_pauseButton;
QVBoxLayout *m_topLayout;
Phonon::MediaObject *m_media;
Phonon::SeekSlider *m_seekSlider;
Phonon::AudioOutput *m_audioOutput;
EmbeddedVideoPlayer *m_videoPlayer;
+ bool m_autoPlay;
+ bool m_isVideo;
};
#endif // PHONONWIDGET_H