X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=modules%2Fgui%2Fqt4%2Finput_manager.hpp;h=b3ae1dea3b48774afda11206e47a29a1d0f4f861;hb=7e269d8e57bba51905338653be0f0f794b29593c;hp=b36220b57c8714bcc6eb4b4fcdbec6ad069ee864;hpb=e178b0ac3f43a9759407ddcef61823bfb7fa286e;p=vlc diff --git a/modules/gui/qt4/input_manager.hpp b/modules/gui/qt4/input_manager.hpp index b36220b57c..b3ae1dea3b 100644 --- a/modules/gui/qt4/input_manager.hpp +++ b/modules/gui/qt4/input_manager.hpp @@ -1,7 +1,7 @@ /***************************************************************************** * input_manager.hpp : Manage an input and interact with its GUI elements **************************************************************************** - * Copyright (C) 2006-2007 the VideoLAN team + * Copyright (C) 2006-2008 the VideoLAN team * $Id$ * * Authors: Clément Stenac @@ -24,17 +24,24 @@ #ifndef _INPUT_MANAGER_H_ #define _INPUT_MANAGER_H_ +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif + #include #include +#include "qt4.hpp" + #include #include -static int PositionUpdate_Type = QEvent::User + 6; -static int ItemChanged_Type = QEvent::User + 7; -static int ItemRateChanged_Type = QEvent::User + 8; -static int ItemTitleChanged_Type = QEvent::User + 9; -static int ItemStateChanged_Type = QEvent::User + 10; +static int const PositionUpdate_Type = QEvent::User + IMEventType + 1; +static int const ItemChanged_Type = QEvent::User + IMEventType + 2; +static int const ItemStateChanged_Type = QEvent::User + IMEventType + 3; +static int const ItemTitleChanged_Type = QEvent::User + IMEventType + 4; +static int const ItemRateChanged_Type = QEvent::User + IMEventType + 5; +static int const VolumeChanged_Type = QEvent::User + IMEventType + 6; class IMEvent : public QEvent { @@ -57,27 +64,32 @@ public: bool hasInput() { return p_input && !p_input->b_dead && !p_input->b_die; } bool hasAudio() { return b_has_audio; } bool hasVideo() { return b_has_video; } - bool b_has_audio, b_has_video, b_had_audio, b_had_video; + bool b_has_audio, b_has_video, b_had_audio, b_had_video, b_has_subs; + private: - void customEvent( QEvent * ); - void addCallbacks( void ); - void delCallbacks( void ); - void UpdateRate( void ); - void UpdateMeta( void ); - void UpdateStatus( void ); - void UpdateTitle( void ); - void UpdatePosition( void ); intf_thread_t *p_intf; input_thread_t *p_input; + int i_input_id; int i_old_playing_status; QString old_name; QString artUrl; int i_rate; + + void customEvent( QEvent * ); + void addCallbacks(); + void delCallbacks(); + void UpdateRate(); + void UpdateMeta(); + void UpdateStatus(); + void UpdateNavigation(); + void UpdatePosition(); + void UpdateTracks(); + void UpdateArt(); + public slots: - void togglePlayPause(); - void update(); ///< Periodic updates void setInput( input_thread_t * ); ///< Our controlled input changed void sliderUpdate( float ); ///< User dragged the slider. We get new pos + void togglePlayPause(); void slower(); void faster(); void normalRate(); @@ -90,6 +102,7 @@ public slots: void telexToggle( bool ); void telexSetTransparency( bool ); #endif + signals: /// Send new position, new time and new length void positionUpdated( float , int, int ); @@ -97,12 +110,12 @@ signals: void nameChanged( QString ); /// Used to signal whether we should show navigation buttons void navigationChanged( int ); -#ifdef ZVBI_COMPILED - void teletextEnabled( bool ); -#endif /// Play/pause status void statusChanged( int ); void artChanged( QString ); +#ifdef ZVBI_COMPILED + void teletextEnabled( bool ); +#endif }; class MainInputManager : public QObject @@ -120,26 +133,27 @@ public: if( instance ) delete instance; } virtual ~MainInputManager(); + input_thread_t *getInput() { return p_input; }; InputManager *getIM() { return im; }; private: - void customEvent( QEvent * ); MainInputManager( intf_thread_t * ); + void customEvent( QEvent * ); InputManager *im; - intf_thread_t *p_intf; input_thread_t *p_input; + + intf_thread_t *p_intf; static MainInputManager *instance; public slots: void togglePlayPause(); void stop(); void next(); void prev(); -private slots: - //void updateInput(); signals: void inputChanged( input_thread_t * ); + void volumeChanged(); }; #endif