aboutsummaryrefslogtreecommitdiff
path: root/src-qt5/desktop-utils/lumina-fm-dev/widgets/MultimediaWidget.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src-qt5/desktop-utils/lumina-fm-dev/widgets/MultimediaWidget.cpp')
-rw-r--r--src-qt5/desktop-utils/lumina-fm-dev/widgets/MultimediaWidget.cpp222
1 files changed, 0 insertions, 222 deletions
diff --git a/src-qt5/desktop-utils/lumina-fm-dev/widgets/MultimediaWidget.cpp b/src-qt5/desktop-utils/lumina-fm-dev/widgets/MultimediaWidget.cpp
deleted file mode 100644
index eaa15a59..00000000
--- a/src-qt5/desktop-utils/lumina-fm-dev/widgets/MultimediaWidget.cpp
+++ /dev/null
@@ -1,222 +0,0 @@
-//===========================================
-// Lumina-DE source code
-// Copyright (c) 2015, Ken Moore
-// Available under the 3-clause BSD license
-// See the LICENSE file for full details
-//===========================================
-#include "MultimediaWidget.h"
-#include "ui_MultimediaWidget.h"
-
-#include <QTimer>
-
-MultimediaWidget::MultimediaWidget(QWidget *parent) : QWidget(parent), ui(new Ui::MultimediaWidget){
- ui->setupUi(this); //load the designer file
-
- //Add in the special QMultimediaWidgets
- mediaObj = new QMediaPlayer(this);
- mediaObj->setVolume(100);
- mediaObj->setNotifyInterval(500); //only every 1/2 second update
- videoDisplay = new QVideoWidget(this);
- videoDisplay->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
- ui->videoLayout->addWidget(videoDisplay);
- mediaObj->setVideoOutput(videoDisplay);
- videoDisplay->setVisible(false);
-
- UpdateIcons();
- UpdateText();
-
- //Connect the special signals/slots for the media object
- connect(mediaObj, SIGNAL(durationChanged(qint64)), this, SLOT(playerDurationChanged(qint64)) );
- connect(mediaObj, SIGNAL(seekableChanged(bool)), ui->playerSlider, SLOT(setEnabled(bool)) );
- connect(mediaObj, SIGNAL(mediaStatusChanged(QMediaPlayer::MediaStatus)), this, SLOT(playerStatusChanged(QMediaPlayer::MediaStatus)) );
- connect(mediaObj, SIGNAL(positionChanged(qint64)), this, SLOT(playerTimeChanged(qint64)) );
- connect(mediaObj, SIGNAL(stateChanged(QMediaPlayer::State)), this, SLOT(playerStateChanged(QMediaPlayer::State)) );
- connect(mediaObj, SIGNAL(videoAvailableChanged(bool)), this, SLOT(playerVideoAvailable(bool)) );
- connect(mediaObj, SIGNAL(error(QMediaPlayer::Error)), this, SLOT(playerError()) );
-
- //Disable some of the initial states
- ui->tool_player_stop->setEnabled(false); //nothing to stop yet
- ui->tool_player_pause->setVisible(false); //nothing to pause yet
- ui->playerSlider->setEnabled(false); //nothing to seek yet
-}
-
-MultimediaWidget::~MultimediaWidget(){
-
-}
-
-// ================
-// PUBLIC SLOTS
-// ================
-void MultimediaWidget::ClearPlaylist(){
- mediaObj->stop();
- ui->combo_player_list->clear();
-}
-
-void MultimediaWidget::LoadMultimedia(QList<LFileInfo> list){
- for(int i=0; i<list.length(); i++){
- if(list[i].isAVFile()){ ui->combo_player_list->addItem(list[i].fileName(), list[i].absoluteFilePath() ); }
- }
-}
-
-void MultimediaWidget::Cleanup(){
- mediaObj->stop(); //just make sure the player is stopped
-}
-
-//Theme change functions
-void MultimediaWidget::UpdateIcons(){
- ui->tool_player_next->setIcon( LXDG::findIcon("media-skip-forward","") );
- ui->tool_player_prev->setIcon( LXDG::findIcon("media-skip-backward","") );
- ui->tool_player_pause->setIcon( LXDG::findIcon("media-playback-pause","") );
- ui->tool_player_play->setIcon( LXDG::findIcon("media-playback-start","") );
- ui->tool_player_stop->setIcon( LXDG::findIcon("media-playback-stop","") );
-}
-
-void MultimediaWidget::UpdateText(){
- ui->retranslateUi(this);
-}
-
-
-// =================
-// PRIVATE
-// =================
-QString MultimediaWidget::msToText(qint64 ms){
- QString disp;
- if(ms>3600000){
- disp.append( QString::number(ms/3600000)+":" );
- ms = ms%3600000;
- }
- if(ms>60000){
- disp.append( QString::number(ms/60000)+":" );
- ms = ms%60000;
- }else{
- disp.append("0:");
- }
- if(ms>1000){
- if(ms>=10000){ disp.append( QString::number(ms/1000) ); }
- else{ disp.append( "0"+QString::number(ms/1000) ); }
- }else{
- disp.append("00");
- }
- return disp;
-}
-
-// =================
-// PRIVATE SLOTS
-// =================
-void MultimediaWidget::playerStatusChanged(QMediaPlayer::MediaStatus stat){
- //Only use this for end-of-file detection - use the state detection otherwise
- if(stat == QMediaPlayer::EndOfMedia){
- if(!mediaObj->isMuted()){ playerFinished(); } //make sure it is not being seeked right now
- }
-}
-
-void MultimediaWidget::playerStateChanged(QMediaPlayer::State newstate){
- //This function keeps track of updating the visuals of the player
- bool running = false;
- bool showVideo = false;
- QString msg;
- switch(newstate){
- case QMediaPlayer::PlayingState:
- running=true;
- showVideo = mediaObj->isVideoAvailable();
- msg = "";//mediaObj->metaData(Phonon::TitleMetaData).join(" ");
- if(msg.simplified().isEmpty()){ msg = ui->combo_player_list->currentText(); }
- ui->label_player_novideo->setText(tr("Playing:")+"\n"+msg);
- break;
- case QMediaPlayer::PausedState:
- showVideo=videoDisplay->isVisible(); //don't change the screen
- break;
- case QMediaPlayer::StoppedState:
- ui->label_player_novideo->setText(tr("Stopped"));
- break;
- }
- ui->tool_player_play->setVisible(!running);
- ui->tool_player_pause->setVisible(running);
- ui->tool_player_stop->setEnabled(running);
- ui->label_player_novideo->setVisible(!showVideo);
- videoDisplay->setVisible(showVideo);
-}
-
-void MultimediaWidget::playerVideoAvailable(bool showVideo){
- ui->label_player_novideo->setVisible(!showVideo);
- videoDisplay->setVisible(showVideo);
-}
-
-void MultimediaWidget::playerDurationChanged(qint64 dur){
- if(dur < 0){ return; } //not ready yet
- ui->playerSlider->setMaximum(mediaObj->duration());
- playerTTime = msToText(dur);
-}
-
-void MultimediaWidget::playerTimeChanged(qint64 ctime){
- if(mediaObj->isMuted() || playerTTime.isEmpty() ){ return; } //currently being moved
- ui->playerSlider->setSliderPosition(ctime);
-}
-
-void MultimediaWidget::playerError(){
- QString msg = QString(tr("Error Playing File: %1"));
- msg = msg.arg( mediaObj->currentMedia().canonicalUrl().fileName() );
- msg.append("\n"+mediaObj->errorString());
- ui->label_player_novideo->setText(msg);
-}
-
-void MultimediaWidget::playerFinished(){
- if(ui->combo_player_list->currentIndex()<(ui->combo_player_list->count()-1) && ui->check_player_gotonext->isChecked()){
- ui->combo_player_list->setCurrentIndex( ui->combo_player_list->currentIndex()+1 );
- QTimer::singleShot(0,this,SLOT(on_tool_player_play_clicked()));
- }else{
- ui->label_player_novideo->setText(tr("Finished"));
- }
-}
-
-void MultimediaWidget::on_tool_player_play_clicked(){
- if(mediaObj->state()==QMediaPlayer::PausedState \
- && mediaObj->currentMedia().canonicalUrl().fileName()==ui->combo_player_list->currentText() ){
- mediaObj->play();
- }else{
- mediaObj->stop();
- //Get the selected file path
- QString filePath = ui->combo_player_list->currentData().toString();
- mediaObj->setMedia( QUrl::fromLocalFile(filePath) );
- playerTTime.clear();
- ui->playerSlider->setEnabled(mediaObj->isSeekable());
- mediaObj->play();
- }
-}
-
-void MultimediaWidget::on_combo_player_list_currentIndexChanged(int index){
- ui->tool_player_next->setEnabled( ui->combo_player_list->count() > (index+1) );
- ui->tool_player_prev->setEnabled( (index-1) >= 0 );
-}
-
-void MultimediaWidget::on_tool_player_next_clicked(){
- ui->combo_player_list->setCurrentIndex( ui->combo_player_list->currentIndex()+1);
- if(mediaObj->state()!=QMediaPlayer::StoppedState){ on_tool_player_play_clicked(); }
-}
-
-void MultimediaWidget::on_tool_player_prev_clicked(){
- ui->combo_player_list->setCurrentIndex( ui->combo_player_list->currentIndex()-1);
- if(mediaObj->state()!=QMediaPlayer::StoppedState){ on_tool_player_play_clicked(); }
-}
-
-void MultimediaWidget::on_tool_player_pause_clicked(){
- mediaObj->pause();
-}
-
-void MultimediaWidget::on_tool_player_stop_clicked(){
- mediaObj->stop();
-}
-
-//Slider controls
-void MultimediaWidget::on_playerSlider_sliderPressed(){
- mediaObj->setMuted(true);
- mediaObj->pause();
-}
-void MultimediaWidget::on_playerSlider_sliderReleased(){
- if(mediaObj->state()==QMediaPlayer::PausedState){ mediaObj->play(); }
- mediaObj->setMuted(false);
-}
-void MultimediaWidget::on_playerSlider_valueChanged(int val){
- ui->label_player_runstats->setText( msToText(val)+"/"+playerTTime );
- if(mediaObj->isMuted()){ mediaObj->setPosition(val); } //currently seeking
-}
bgstack15