QObject( NULL ), p_intf( _p_intf )
{
idle_timer = new QTimer( this );
- idle_timer->start( 0 );
+ // idle_timer->start( 0 );
fixed_timer = new QTimer( this );
fixed_timer->start( 100 /* milliseconds */ );
void DialogsProvider::streaminfoDialog()
{
StreamInfoDialog::getInstance( p_intf )->toggleVisible();
- QObject::connect( DialogsProvider::getInstance(NULL)->fixed_timer, SIGNAL( timeout() ), this, SLOT( prefsDialog() )) ;
}
void DialogsProvider::prefsDialog()
{
-fprintf( stderr, "P\n");
}
void DialogsProvider::messagesDialog()
{
-fprintf( stderr, "M\n");
}
void DialogsProvider::popupMenu( int i_dialog )
void InputManager::setInput( input_thread_t *_p_input )
{
+ fprintf( stderr, "[IM] Got input\n");
p_input = _p_input;
emit reset();
}
i_time = var_GetTime( p_input, "time") / 1000000;
f_pos = var_GetFloat( p_input, "position" );
+ fprintf( stderr, "Changing pos\n");
emit positionUpdated( f_pos, i_time, i_length );
}
+
+void InputManager::sliderUpdate( float new_pos )
+{
+}
#include "main_interface.hpp"
#include "input_manager.hpp"
#include "dialogs_provider.hpp"
+#include <QCloseEvent>
-MainInterface::MainInterface( intf_thread_t *p_intf ) : QWidget( NULL )
+MainInterface::MainInterface( intf_thread_t *_p_intf ) :
+ QWidget( NULL ), p_intf( _p_intf)
{
fprintf( stderr, "QT Main interface\n" );
/* Init UI */
/* Init input manager */
+ p_input = NULL;
+ main_input_manager = new InputManager( this, p_intf );
}
void MainInterface::init()
{
/* Get timer updates */
QObject::connect( DialogsProvider::getInstance(NULL)->fixed_timer,
- SIGNAL( timeout() ), this, SLOT(updateOnTimer() ) );
+ SIGNAL( timeout() ), this, SLOT(updateOnTimer() ) );
/* Tell input manager about the input changes */
QObject::connect( this, SIGNAL( inputChanged( input_thread_t * ) ),
- main_input_manager, SLOT( setInput( input_thread_t * ) ) );
+ main_input_manager, SLOT( setInput( input_thread_t * ) ) );
+
}
MainInterface::~MainInterface()
void MainInterface::updateOnTimer()
{
+ if( p_intf->b_die )
+ {
+ QApplication::quit();
+ }
+ vlc_mutex_lock( &p_intf->change_lock );
+ if( p_input && p_input->b_dead )
+ {
+ vlc_object_release( p_input );
+ p_input = NULL;
+ emit inputChanged( NULL );
+ }
+
+ if( !p_input )
+ {
+ playlist_t *p_playlist = (playlist_t *) vlc_object_find( p_intf,
+ VLC_OBJECT_PLAYLIST, FIND_ANYWHERE );
+ assert( p_playlist );
+ PL_LOCK;
+
+ p_input = p_playlist->p_input;
+ if( p_input )
+ {
+ vlc_object_yield( p_input );
+ fprintf( stderr, "Sending input\n");
+ emit inputChanged( p_input );
+ }
+ PL_UNLOCK;
+ vlc_object_release( p_playlist );
+ }
+ vlc_mutex_unlock( &p_intf->change_lock );
+}
+
+void MainInterface::closeEvent( QCloseEvent *e )
+{
+ hide();
+ p_intf->b_die = VLC_TRUE;
}
#include <QWidget>
class InputManager;
+class QCloseEvent;
class MainInterface : public QWidget
{
MainInterface( intf_thread_t *);
virtual ~MainInterface();
void init();
+protected:
+ void closeEvent( QCloseEvent *);
private:
InputManager *main_input_manager;
+ intf_thread_t *p_intf;
+ /// Main input associated to the playlist
+ input_thread_t *p_input;
private slots:
void updateOnTimer();
+signals:
+ void inputChanged( input_thread_t *);
};
#endif
QApplication *app = new QApplication( argc, argv , true );
p_intf->p_sys->p_app = app;
+ // Initialize timers
+ DialogsProvider::getInstance( p_intf );
+
/* Normal interface */
if( !p_intf->pf_show_dialog )
{
MainInterface *p_mi = new MainInterface( p_intf );
p_intf->p_sys->p_mi = p_mi;
+ p_mi->init();
p_mi->show();
}
- DialogsProvider::getInstance( p_intf );
if( p_intf->pf_show_dialog )
vlc_thread_ready( p_intf );
setPageStep( 100 );
setTracking( true );
QObject::connect( this, SIGNAL( valueChanged(int) ), this,
- SLOT( userDrag( int ) ) );
+ SLOT( userDrag( int ) ) );
}
void InputSlider::setPosition( float pos, int a, int b )