File indexing completed on 2025-03-09 03:52:06
0001 /* ============================================================ 0002 * 0003 * This file is a part of digiKam project 0004 * https://www.digikam.org 0005 * 0006 * Date : 2008-09-14 0007 * Description : a presentation tool. 0008 * 0009 * SPDX-FileCopyrightText: 2008-2009 by Valerio Fuoglio <valerio dot fuoglio at gmail dot com> 0010 * SPDX-FileCopyrightText: 2009 by Andi Clemens <andi dot clemens at googlemail dot com> 0011 * SPDX-FileCopyrightText: 2012-2024 by Gilles Caulier <caulier dot gilles at gmail dot com> 0012 * 0013 * SPDX-License-Identifier: GPL-2.0-or-later 0014 * 0015 * ============================================================ */ 0016 0017 #ifndef DIGIKAM_PRESENTATION_AUDIO_WIDGET_H 0018 #define DIGIKAM_PRESENTATION_AUDIO_WIDGET_H 0019 0020 #include "digikam_config.h" 0021 0022 // Qt includes 0023 0024 #include <QUrl> 0025 #include <QKeyEvent> 0026 0027 #if (QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)) && defined HAVE_QTMULTIMEDIA 0028 0029 // QtMultimedia includes 0030 0031 # include <QMediaPlayer> 0032 0033 #else 0034 0035 // QtAVPlayer includes 0036 0037 # include "daudioplayer.h" 0038 0039 #endif 0040 0041 // Local includes 0042 0043 #include "ui_presentationaudiowidget.h" 0044 0045 namespace DigikamGenericPresentationPlugin 0046 { 0047 0048 class PresentationContainer; 0049 0050 class PresentationAudioWidget : public QWidget, 0051 public Ui::PresentationAudioWidget 0052 { 0053 Q_OBJECT 0054 0055 public: 0056 0057 explicit PresentationAudioWidget(QWidget* const, 0058 const QList<QUrl>&, 0059 PresentationContainer* const); 0060 ~PresentationAudioWidget() override; 0061 0062 void enqueue(const QList<QUrl>&); 0063 bool canHide() const; 0064 bool isPaused() const; 0065 void setPaused(bool); 0066 void keyPressEvent(QKeyEvent*) override; 0067 0068 public Q_SLOTS: 0069 0070 void slotPlay(); 0071 void slotStop(); 0072 0073 Q_SIGNALS: 0074 0075 void signalPlay(); 0076 void signalPause(); 0077 0078 private Q_SLOTS: 0079 0080 void slotPrev(); 0081 void slotNext(); 0082 void slotTimeUpdaterTimeout(qint64); 0083 void slotError(); 0084 void slotSetVolume(int); 0085 0086 #if (QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)) && defined HAVE_QTMULTIMEDIA 0087 0088 void slotMediaStateChanged(QMediaPlayer::MediaStatus); 0089 void slotPlayerStateChanged(QMediaPlayer::PlaybackState); 0090 void slotPlayerError(QMediaPlayer::Error); 0091 0092 #else 0093 0094 void slotMediaStateChanged(QAVPlayer::MediaStatus); 0095 void slotPlayerStateChanged(QAVPlayer::State); 0096 void slotPlayerError(QAVPlayer::Error, const QString&); 0097 0098 #endif 0099 0100 private: 0101 0102 void checkSkip(); 0103 void setZeroTime(); 0104 0105 private: 0106 0107 class Private; 0108 Private* const d; 0109 }; 0110 0111 } // namespace DigikamGenericPresentationPlugin 0112 0113 #endif // DIGIKAM_PRESENTATION_AUDIO_WIDGET_H