AlarmNotifications
PANDA Slow Control Alarm Daemon
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
beedo.h
Go to the documentation of this file.
1 
34 #include "oldgcccompat.h" // Compatibilty macros for GCC < 4.7
35 
36 #ifndef BEEDO_H
37 #define BEEDO_H
38 
39 #include <phononnamespace.h>
40 #include <Path>
41 // Forward declaration of Phonon classes
42 namespace Phonon
43 {
44 class AudioOutput;
45 class MediaObject;
46 class VideoWidget;
47 }
48 
49 #include <QObject>
50 #include <QWidget>
51 #ifdef BEEDOOLDQTFALLBACK
52 #include <QBuffer>
53 #endif
54 
55 namespace AlarmNotifications
56 {
57 
71 class Beedo : public QObject
72 {
73  Q_OBJECT
74 private:
80  bool _go;
86  QWidget* _display;
92  Phonon::AudioOutput* _audio;
98  Phonon::MediaObject* _media;
104  Phonon::VideoWidget* _video;
110  Phonon::Path _mediaToAudio;
116  Phonon::Path _mediaToVideo;
117 #ifdef BEEDOOLDQTFALLBACK
118  QBuffer _videobuffer;
119 #endif
120 
126  Beedo();
133  void start_internal() noexcept;
142  void stop_internal() noexcept;
151  void createMediaObjects();
158  void destroyMediaObjects();
159 private slots:
166  void playAlarmVideo();
173  void stopAlarmVideo();
182  void phononStateChange ( const Phonon::State newState, const Phonon::State oldState );
183 public:
190  static Beedo& instance();
199  inline static void start() noexcept
200  {
202  }
211  inline static void stop() noexcept
212  {
214  }
222  virtual ~Beedo();
229  Beedo ( const Beedo& other ) = delete;
236  Beedo ( Beedo&& other ) = delete;
244  Beedo& operator= ( const Beedo& other ) = delete;
252  Beedo& operator= ( Beedo&& other ) = delete;
259  void destroy();
260 signals:
267  void signalPlay();
274  void signalStop();
275 };
276 
277 }
278 
279 #endif // BEEDO_H
void destroy()
Destroy all media objects.
Definition: beedo.cpp:132
Beedo()
Constructor.
Definition: beedo.cpp:60
void playAlarmVideo()
Instruct phonon to start playing.
Definition: beedo.cpp:176
Definition: beedo.h:42
static void stop() noexcept
Stop video playback.
Definition: beedo.h:211
void phononStateChange(const Phonon::State newState, const Phonon::State oldState)
React on a Phonon state change.
Definition: beedo.cpp:208
void signalStop()
Signal GUI to stop playing.
Compatibility macros for older versions of the GCC.
QWidget * _display
Video window.
Definition: beedo.h:86
void start_internal() noexcept
Internal routine to start video/audio playback.
Definition: beedo.cpp:138
static void start() noexcept
Start video playback.
Definition: beedo.h:199
bool _go
Video/audio play flag.
Definition: beedo.h:80
static Beedo & instance()
Get singleton instance.
Definition: beedo.cpp:53
void createMediaObjects()
Create the Qt objects to play a media file.
Definition: beedo.cpp:88
void stop_internal() noexcept
Internal routine to stop video/audio playback.
Definition: beedo.cpp:157
Phonon::AudioOutput * _audio
Phonon audio output encapsulation.
Definition: beedo.h:92
void destroyMediaObjects()
Delete the Qt and Phonon objects.
Definition: beedo.cpp:114
Namespace for Alarm Notifications application.
#define noexcept
Allow using the noexcept keyword with GCC < 4.6.
Definition: oldgcccompat.h:52
Phonon::VideoWidget * _video
Phonon video output encapsulation.
Definition: beedo.h:104
void signalPlay()
Signal GUI to start playing.
Phonon::MediaObject * _media
Phonon media file encapsulation.
Definition: beedo.h:98
virtual ~Beedo()
Destructor.
Definition: beedo.cpp:82
Opto-acoustic alarm engine.
Definition: beedo.h:71
Phonon::Path _mediaToVideo
Connection between _media and _video.
Definition: beedo.h:116
Phonon::Path _mediaToAudio
Connection between _media and _audio.
Definition: beedo.h:110
Beedo & operator=(const Beedo &other)=delete
Copy assignment (deleted)
void stopAlarmVideo()
Instruct Phonon to stop playing.
Definition: beedo.cpp:203