void InputManager::sliderUpdate( float new_pos )
{
+ fprintf( stderr, "Seek to %f\n", new_pos );
+ var_SetFloat( p_input, "position", new_pos );
}
#include "main_interface.hpp"
#include "input_manager.hpp"
+#include "util/input_slider.hpp"
#include "dialogs_provider.hpp"
#include <QCloseEvent>
#include <assert.h>
fprintf( stderr, "QT Main interface\n" );
/* Init UI */
+ slider = new InputSlider( Qt::Horizontal, this ); slider->init();
/* Init input manager */
p_input = NULL;
main_input_manager, SLOT( setInput( input_thread_t * ) ) );
/* Connect the slider and the input manager */
- // both ways
+ QObject::connect( main_input_manager, SIGNAL(positionUpdated(
+ float, int, int ) ), slider, SLOT( setPosition( float,int,
+ int ) ) );
+ QObject::connect( slider, SIGNAL( sliderDragged( float ) ),
+ main_input_manager, SLOT( sliderUpdate( float ) ) );
/* Connect the display and the input manager */
}
class InputManager;
class QCloseEvent;
+class InputSlider;
class MainInterface : public QWidget
{
void closeEvent( QCloseEvent *);
private:
InputManager *main_input_manager;
+ InputSlider *slider;
intf_thread_t *p_intf;
/// Main input associated to the playlist
input_thread_t *p_input;
void InputSlider::init()
{
+ mymove = false;
setMinimum( 0 );
setMaximum( 1000 );
setSingleStep( 2 );
- setPageStep( 100 );
+ setPageStep( 1000 );
setTracking( true );
QObject::connect( this, SIGNAL( valueChanged(int) ), this,
SLOT( userDrag( int ) ) );
void InputSlider::setPosition( float pos, int a, int b )
{
+ fprintf( stderr, "Set pos %f\n", pos );
+ mymove = true;
setValue( (int)(pos * 1000.0 ) );
+ mymove = false;
}
void InputSlider::userDrag( int new_value )
{
float f_pos = (float)(new_value)/1000.0;
- emit positionUpdated( f_pos );
+ if( !mymove )
+ {
+ fprintf( stderr, "Emitting %f\n", f_pos );
+ emit sliderDragged( f_pos );
+ }
}
{};
virtual ~InputSlider() {};
void init();
+private:
+ bool mymove;
public slots:
void setPosition( float, int, int );
private slots:
void userDrag( int );
signals:
- void positionUpdated( float );
+ void sliderDragged( float );
};
#endif