diff options
| author | Felix (xq) Queißner <git@mq32.de> | 2020-06-22 21:10:04 +0200 |
|---|---|---|
| committer | Felix (xq) Queißner <git@mq32.de> | 2020-06-22 21:10:04 +0200 |
| commit | 75ec461eeaa851cb5c53f4cfffc434e3e529ed1d (patch) | |
| tree | 3944737340718ca3675381aa06636045d397e780 /src/mediaplayer.cpp | |
| parent | 8dbfb0890560fd1cd698d06fa05ac868c4db8576 (diff) | |
| download | kristall-75ec461eeaa851cb5c53f4cfffc434e3e529ed1d.tar.gz | |
Restructures the project source and cleans up a bit
Diffstat (limited to 'src/mediaplayer.cpp')
| -rw-r--r-- | src/mediaplayer.cpp | 86 |
1 files changed, 0 insertions, 86 deletions
diff --git a/src/mediaplayer.cpp b/src/mediaplayer.cpp deleted file mode 100644 index e510d21..0000000 --- a/src/mediaplayer.cpp +++ /dev/null @@ -1,86 +0,0 @@ -#include "mediaplayer.hpp" -#include "ui_mediaplayer.h" - -#include <QMediaContent> -#include <QToolButton> -#include <QTime> -#include <QIcon> - -MediaPlayer::MediaPlayer(QWidget *parent) : - QWidget(parent), - ui(new Ui::MediaPlayer), - media_stream(), - player() -{ - ui->setupUi(this); - - this->player.setVideoOutput(this->ui->video_out); - - connect(&this->player, &QMediaPlayer::durationChanged, this->ui->media_progress, &QSlider::setMaximum); - connect(&this->player, &QMediaPlayer::positionChanged, this->ui->media_progress, &QSlider::setValue); - - connect(&this->player, &QMediaPlayer::audioAvailableChanged, this->ui->mute_button, &QToolButton::setEnabled); - // connect(&this->player, &QMediaPlayer::videoAvailableChanged, this->ui->video_out, &QVideoWidget::setVisible); - - connect(&this->player, &QMediaPlayer::stateChanged, this, &MediaPlayer::on_media_playbackChanged); - connect(&this->player, &QMediaPlayer::mediaStatusChanged, [](QMediaPlayer::MediaStatus status) { - qDebug() << "media status changed" << status; - }); - - connect(&this->player, &QMediaPlayer::positionChanged, this, &MediaPlayer::on_media_positionChanged); - - connect(this->ui->media_progress, &QSlider::valueChanged, &this->player, &QMediaPlayer::setPosition); -} - -MediaPlayer::~MediaPlayer() -{ - delete ui; -} - -void MediaPlayer::setMedia(QByteArray const & data, QUrl const & ref_url, QString const & mime) -{ - this->player.stop(); - - this->mime = mime; - - this->media_stream.close(); - this->media_stream.setData(data); // = QBuffer { &this->backing_buffer }; - this->media_stream.open(QIODevice::ReadOnly); - - QMediaContent content { ref_url }; - - this->player.setMedia(content, &this->media_stream); -} - -void MediaPlayer::stopPlaying() -{ - this->player.stop(); -} - -void MediaPlayer::on_playpause_button_clicked() -{ - if(this->player.state() != QMediaPlayer::PlayingState) { - this->player.play(); - } else { - this->player.pause(); - } -} - -void MediaPlayer::on_mute_button_clicked(bool checked) -{ - this->player.setMuted(checked); -} - -void MediaPlayer::on_media_positionChanged(qint64 pos) -{ - auto time = QTime::fromMSecsSinceStartOfDay(pos); - - this->ui->media_position->setText(time.toString()); -} - -void MediaPlayer::on_media_playbackChanged(QMediaPlayer::State status) -{ - this->ui->playpause_button->setIcon( - (status == QMediaPlayer::PlayingState) ? QIcon::fromTheme("pause") : QIcon::fromTheme("play") - ); -} |
