[vlc-devel] commit: [Qt] Fix crash when pressed play when input is DYYYYYING. ( Jean-Baptiste Kempf )
git version control
git at videolan.org
Wed Oct 15 18:24:47 CEST 2008
vlc | branch: master | Jean-Baptiste Kempf <jb at videolan.org> | Wed Oct 15 18:24:01 2008 +0200| [70c75214fa2cac6b5b4775eb627dc7c68825a2fc] | committer: Jean-Baptiste Kempf
[Qt] Fix crash when pressed play when input is DYYYYYING.
Close #2196
> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=70c75214fa2cac6b5b4775eb627dc7c68825a2fc
---
modules/gui/qt4/input_manager.cpp | 23 ++++++++++++-----------
modules/gui/qt4/input_manager.hpp | 5 ++++-
2 files changed, 16 insertions(+), 12 deletions(-)
diff --git a/modules/gui/qt4/input_manager.cpp b/modules/gui/qt4/input_manager.cpp
index a5c029e..1c52d87 100644
--- a/modules/gui/qt4/input_manager.cpp
+++ b/modules/gui/qt4/input_manager.cpp
@@ -428,10 +428,13 @@ void InputManager::sliderUpdate( float new_pos )
void InputManager::togglePlayPause()
{
vlc_value_t state;
- var_Get( p_input, "state", &state );
- state.i_int = ( state.i_int != PLAYING_S ) ? PLAYING_S : PAUSE_S;
- var_Set( p_input, "state", state );
- emit statusChanged( state.i_int );
+ if( hasInput() )
+ {
+ var_Get( p_input, "state", &state );
+ state.i_int = ( state.i_int != PLAYING_S ) ? PLAYING_S : PAUSE_S;
+ var_Set( p_input, "state", state );
+ emit statusChanged( state.i_int );
+ }
}
void InputManager::sectionPrev()
@@ -741,18 +744,16 @@ void MainInputManager::prev()
void MainInputManager::togglePlayPause()
{
- if( p_input == NULL )
- {
+ /* No input, play */
+ if( !p_input )
playlist_Play( THEPL );
- return;
- }
- getIM()->togglePlayPause();
+ else
+ getIM()->togglePlayPause();
}
bool MainInputManager::teletextState()
{
- im = getIM();
- if( im->hasInput() )
+ if( getIM()->hasInput() )
{
const int i_teletext_es = var_GetInteger( getInput(), "teletext-es" );
const int i_spu_es = var_GetInteger( getInput(), "spu-es" );
diff --git a/modules/gui/qt4/input_manager.hpp b/modules/gui/qt4/input_manager.hpp
index bbefa84..609790d 100644
--- a/modules/gui/qt4/input_manager.hpp
+++ b/modules/gui/qt4/input_manager.hpp
@@ -65,6 +65,8 @@ public:
class InputManager : public QObject
{
Q_OBJECT;
+ friend class MainInputManager;
+
public:
InputManager( QObject *, intf_thread_t * );
virtual ~InputManager();
@@ -107,7 +109,6 @@ private:
public slots:
void setInput( input_thread_t * ); ///< Our controlled input changed
void sliderUpdate( float ); ///< User dragged the slider. We get new pos
- void togglePlayPause();
/* SpeedRate Rate Management */
void slower();
void faster();
@@ -125,6 +126,8 @@ public slots:
/* A to B Loop */
void setAtoB();
+private slots:
+ void togglePlayPause();
signals:
/// Send new position, new time and new length
More information about the vlc-devel
mailing list