12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- #pragma once
- #include <QWidget>
- #include <QTimer>
- #include <vector>
- #include <obs.hpp>
- #include "qt-wrappers.hpp"
- class Ui_MediaControls;
- class MediaControls : public QWidget {
- Q_OBJECT
- private:
- std::vector<OBSSignal> sigs;
- OBSWeakSource weakSource = nullptr;
- QTimer mediaTimer;
- QTimer seekTimer;
- int seek;
- int lastSeek;
- bool prevPaused = false;
- bool countDownTimer = false;
- bool isSlideshow = false;
- QString FormatSeconds(int totalSeconds);
- void StartMediaTimer();
- void StopMediaTimer();
- void RefreshControls();
- void SetScene(OBSScene scene);
- int64_t GetSliderTime(int val);
- static void OBSMediaStopped(void *data, calldata_t *calldata);
- static void OBSMediaPlay(void *data, calldata_t *calldata);
- static void OBSMediaPause(void *data, calldata_t *calldata);
- static void OBSMediaStarted(void *data, calldata_t *calldata);
- static void OBSMediaNext(void *data, calldata_t *calldata);
- static void OBSMediaPrevious(void *data, calldata_t *calldata);
- std::unique_ptr<Ui_MediaControls> ui;
- private slots:
- void on_playPauseButton_clicked();
- void on_stopButton_clicked();
- void on_nextButton_clicked();
- void on_previousButton_clicked();
- void on_durationLabel_clicked();
- void MediaSliderClicked();
- void MediaSliderReleased();
- void MediaSliderHovered(int val);
- void MediaSliderMoved(int val);
- void SetSliderPosition();
- void SetPlayingState();
- void SetPausedState();
- void SetRestartState();
- void RestartMedia();
- void StopMedia();
- void PlaylistNext();
- void PlaylistPrevious();
- void SeekTimerCallback();
- void MoveSliderFoward(int seconds = 5);
- void MoveSliderBackwards(int seconds = 5);
- void UpdateSlideCounter();
- public slots:
- void PlayMedia();
- void PauseMedia();
- public:
- MediaControls(QWidget *parent = nullptr);
- ~MediaControls();
- OBSSource GetSource();
- void SetSource(OBSSource newSource);
- bool MediaPaused();
- };
|