]> git.sesse.net Git - vlc/commitdiff
Qt4 - Input Manager: cleanup, fix behaviour of enableVideo(), initialize variable...
authorJean-Baptiste Kempf <jb@videolan.org>
Mon, 25 Feb 2008 09:32:30 +0000 (09:32 +0000)
committerJean-Baptiste Kempf <jb@videolan.org>
Mon, 25 Feb 2008 09:32:30 +0000 (09:32 +0000)
modules/gui/qt4/input_manager.cpp
modules/gui/qt4/input_manager.hpp

index 7100bb99f70791f0705de087ad64e8639111c6fc..78b799bfd18dbfaa7c6c4e92217758e19b44e439 100644 (file)
@@ -60,9 +60,12 @@ InputManager::InputManager( QObject *parent, intf_thread_t *_p_intf) :
                            QObject( parent ), p_intf( _p_intf )
 {
     i_old_playing_status = END_S;
-    old_name = "";
-    p_input = NULL;
-    i_rate = 0;
+    b_had_audio  = b_had_video = b_has_audio = b_has_video = false;
+    old_name     = "";
+    artUrl       = "";
+    p_input      = NULL;
+    i_rate       = 0;
+    i_input_id   = 0;
 }
 
 InputManager::~InputManager()
@@ -84,7 +87,7 @@ void InputManager::setInput( input_thread_t *_p_input )
         emit statusChanged( PLAYING_S );
         UpdateMeta();
         UpdateTracks();
-        UpdateTitle();
+        UpdateNavigation();
         UpdateArt();
         addCallbacks();
         i_input_id = input_GetItem( p_input )->i_id;
@@ -169,11 +172,12 @@ void InputManager::customEvent( QEvent *event )
          type != ItemStateChanged_Type )
         return;
 
-    if( !p_input || p_input->b_die || p_input->b_dead )
-        return;
+    if( !hasInput() ) return;
+
     if( ( type != PositionUpdate_Type && type != ItemRateChanged_Type ) &&
         ( i_input_id != ple->i_id ) )
         return;
+
     if( type != PositionUpdate_Type )
         msg_Dbg( p_intf, "New Event: type %i", type );
 
@@ -185,20 +189,21 @@ void InputManager::customEvent( QEvent *event )
         break;
     case ItemChanged_Type:
         UpdateMeta();
+        UpdateNavigation();
         UpdateTracks();
-        UpdateTitle();
+        UpdateStatus();
         UpdateArt();
         break;
     case ItemRateChanged_Type:
         UpdateRate();
         break;
     case ItemTitleChanged_Type:
-        UpdateTitle();
+        UpdateNavigation();
         UpdateMeta();
         break;
     case ItemStateChanged_Type:
-        UpdateStatus();
         UpdateTracks();
+        UpdateStatus();
         break;
     }
 }
@@ -214,7 +219,7 @@ void InputManager::UpdatePosition()
     emit positionUpdated( f_pos, i_time, i_length );
 }
 
-void InputManager::UpdateTitle()
+void InputManager::UpdateNavigation()
 {
     /* Update navigation status */
     vlc_value_t val; val.i_int = 0;
index 03907e4c98ca7f82c29696df3b39aadc268bb68d..e0d84ce9950b642997f2043e305bfd9eff3c5e16 100644 (file)
 #include <QObject>
 #include <QEvent>
 
-static int const PositionUpdate_Type = QEvent::User + IMEventType + 1;
-static int const ItemChanged_Type = QEvent::User + IMEventType + 2;
+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;
+static int const ItemRateChanged_Type  = QEvent::User + IMEventType + 5;
+static int const VolumeChanged_Type    = QEvent::User + IMEventType + 6;
 
 class IMEvent : public QEvent
 {
@@ -65,28 +65,31 @@ public:
     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;
+
 private:
+    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 UpdateTitle();
+    void UpdateNavigation();
     void UpdatePosition();
     void UpdateTracks();
     void UpdateArt();
-    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;
+
 public slots:
-    void togglePlayPause();
     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();
@@ -99,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 );
@@ -106,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
@@ -129,24 +133,24 @@ 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();