/** * @RDE_HEADER@ * Handle Audio/Video output for thp through libvlc, private data * $Id$ * $HeadURL$ * $Author$ */ #pragma once #ifdef _MSC_VER // no ssize_t with msdn... #include typedef SSIZE_T ssize_t; #endif #include #include #include #include #include "thp_audio_video_widget.h" class QUrl; class QFrame; class QTimer; namespace Ui { class audioVideoWidget; } namespace THP { class AudioVideoInitThread; class AudioVideoWidget::Private : public QObject { Q_OBJECT public: explicit Private(QFrame *parent); ~Private(); bool initVLCInstance(bool bInInitThread = false); bool uninitVLCInstance(); bool initVLCPlayer(); bool uninitVLCPlayer(); bool playVLC(const QUrl &url); bool stopVLC(); void setAV(bool isAudio); protected Q_SLOTS: void onSlower(); void onFaster(); void on100pct(); void onPlay(); void onStop(); void onPositionChanged(int); void onVolumeChanged(int); void onUpdateGUI(); void onVLCInstanceInitializd(); protected: void clearMediaList(); void playVLCInternal(); void onUpdateGUIWithState(libvlc_state_t overwrite_state); bool init(); void setRate(); libvlc_state_t getState() const; libvlc_instance_t *m_vlcinstance; libvlc_media_player_t *m_mPlayer; libvlc_media_list_player_t *m_mListPlayer; libvlc_media_list_t *m_mediaList; int currentSpeedIdx; QFrame *m_parent; QTimer *m_timer; AudioVideoInitThread *m_initThread; Ui::audioVideoWidget *ui; NGL::INGLLogger &m_logger; }; class AudioVideoInitThread final : public QThread { Q_OBJECT public: explicit AudioVideoInitThread(AudioVideoWidget::Private *p); protected: void run() override; protected: AudioVideoWidget::Private *m_private; }; } // namespace THP