[vlc-devel] commit: Qt: react to recording event from the core by activating the button . (Jean-Baptiste Kempf )
git version control
git at videolan.org
Wed Jan 21 20:38:27 CET 2009
vlc | branch: master | Jean-Baptiste Kempf <jb at videolan.org> | Wed Jan 21 20:37:07 2009 +0100| [50606d8f9b6b1f52dc72433c3e117ea8d4d54d84] | committer: Jean-Baptiste Kempf
Qt: react to recording event from the core by activating the button.
> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=50606d8f9b6b1f52dc72433c3e117ea8d4d54d84
---
modules/gui/qt4/components/controller.cpp | 3 +++
modules/gui/qt4/input_manager.cpp | 23 +++++++++++++++++------
modules/gui/qt4/input_manager.hpp | 6 ++++--
3 files changed, 24 insertions(+), 8 deletions(-)
diff --git a/modules/gui/qt4/components/controller.cpp b/modules/gui/qt4/components/controller.cpp
index fbdbabb..b5e0d11 100644
--- a/modules/gui/qt4/components/controller.cpp
+++ b/modules/gui/qt4/components/controller.cpp
@@ -307,6 +307,9 @@ QWidget *AbstractController::createWidget( buttonType_e button, int options )
CONNECT_MAP_SET( recordButton, RECORD_ACTION );
BUTTON_SET_BAR( recordButton );
ENABLE_ON_INPUT( recordButton );
+ recordButton->setCheckable( true );
+ CONNECT( THEMIM->getIM(), recordingStateChanged( bool ),
+ recordButton, setChecked( bool ) );
widget = recordButton;
}
break;
diff --git a/modules/gui/qt4/input_manager.cpp b/modules/gui/qt4/input_manager.cpp
index 9dea8e8..ff6bf0f 100644
--- a/modules/gui/qt4/input_manager.cpp
+++ b/modules/gui/qt4/input_manager.cpp
@@ -156,7 +156,8 @@ void InputManager::customEvent( QEvent *event )
i_type != SynchroChanged_Type &&
i_type != CachingEvent_Type &&
i_type != BookmarksChanged_Type &&
- i_type != InterfaceAoutUpdate_Type )
+ i_type != InterfaceAoutUpdate_Type &&
+ i_type != RecordingEvent_Type )
return;
if( !hasInput() ) return;
@@ -176,7 +177,8 @@ void InputManager::customEvent( QEvent *event )
i_type != InfoChanged_Type &&
i_type != SynchroChanged_Type &&
i_type != BookmarksChanged_Type &&
- i_type != InterfaceAoutUpdate_Type
+ i_type != InterfaceAoutUpdate_Type &&
+ i_type != RecordingEvent_Type
)
&& ( i_input_id != ple->i_id ) )
return;
@@ -247,6 +249,9 @@ void InputManager::customEvent( QEvent *event )
case InterfaceAoutUpdate_Type:
UpdateAout();
break;
+ case RecordingEvent_Type:
+ UpdateRecord();
+ break;
default:
msg_Warn( p_intf, "This shouldn't happen: %i", i_type );
}
@@ -340,10 +345,8 @@ static int InputEvent( vlc_object_t *p_this, const char *,
break;
case INPUT_EVENT_RECORD:
- /* This happens when a recording starts. What do we do then?
- Display a red light? */
- /* event = new IMEvent( RecordingEvent_Type, 0 );
- break; */
+ event = new IMEvent( RecordingEvent_Type, 0 );
+ break;
case INPUT_EVENT_PROGRAM:
/* This is for PID changes */
@@ -585,6 +588,14 @@ inline void InputManager::UpdateInfo()
emit infoChanged( input_GetItem( p_input ) );
}
+void InputManager::UpdateRecord()
+{
+ if( hasInput() )
+ {
+ emit recordingStateChanged( var_GetBool( p_input, "record" ) );
+ }
+}
+
/* User update of the slider */
void InputManager::sliderUpdate( float new_pos )
{
diff --git a/modules/gui/qt4/input_manager.hpp b/modules/gui/qt4/input_manager.hpp
index b153d15..4112d0b 100644
--- a/modules/gui/qt4/input_manager.hpp
+++ b/modules/gui/qt4/input_manager.hpp
@@ -57,8 +57,8 @@ enum {
SynchroChanged_Type,
CachingEvent_Type,
BookmarksChanged_Type,
-/* RecordingEvent_Type,
- ProgramChanged_Type,
+ RecordingEvent_Type,
+/* ProgramChanged_Type,
SignalChanged_Type, */
FullscreenControlToggle_Type = QEvent::User + IMEventType + 20,
@@ -133,6 +133,7 @@ private:
void UpdateAout();
void UpdateStats();
void UpdateCaching();
+ void UpdateRecord();
void AtoBLoop( int );
@@ -175,6 +176,7 @@ signals:
void artChanged( QString );
/// Play/pause status
void statusChanged( int );
+ void recordingStateChanged( bool );
/// Teletext
void teletextPossible( bool );
void teletextActivated( bool );
More information about the vlc-devel
mailing list