MidiSenseWidget::MidiSenseWidget(QWidget* pParent, bool directWr  , MidiAction* midiAction ): QDialog( pParent ) , Object(__class_name)
{
	directWrite = directWr;
	action = midiAction;


	setWindowTitle( "Waiting.." );
	setFixedSize( 280, 100 );
	
	m_pURLLabel = new QLabel( this );
	m_pURLLabel->setAlignment( Qt::AlignCenter );

	if(action != NULL){
	    m_pURLLabel->setText( "Waiting for midi input..." );
	} else{

            /*
             *   Check if this widget got called from the midiTable in the preferences
             *   window(directWrite=false) or by clicking on a midiLearn-capable gui item(directWrite=true)
             */

            if(directWrite){
                m_pURLLabel->setText( "This element is not midi operable." );
            } else {
                m_pURLLabel->setText( "Waiting for midi input..." );
            }
	}
	
	QVBoxLayout* pVBox = new QVBoxLayout( this );
	pVBox->addWidget( m_pURLLabel );
	setLayout( pVBox );
	
	H2Core::Hydrogen *pEngine = H2Core::Hydrogen::get_instance();
	pEngine->lastMidiEvent = "";
	pEngine->lastMidiEventParameter = 0;
	
	m_pUpdateTimer = new QTimer( this );
	connect( m_pUpdateTimer, SIGNAL( timeout() ), this, SLOT( updateMidi() ) );

	m_pUpdateTimer->start( 100 );


};
MidiSenseWidget::MidiSenseWidget(QWidget* pParent) : QDialog( pParent )
{
	setWindowTitle( "Waiting.." );
	setFixedSize( 200, 100 );	
	
	m_pURLLabel = new QLabel( this );
	m_pURLLabel->setAlignment( Qt::AlignCenter );
	m_pURLLabel->setText( "Waiting for midi input..." );
	
	
	QVBoxLayout* pVBox = new QVBoxLayout( this );
	pVBox->addWidget( m_pURLLabel );
	setLayout( pVBox );
	
	Tritium::Engine *pEngine = Tritium::g_engine;
	pEngine->set_last_midi_event("", 0);
	
	m_pUpdateTimer = new QTimer( this );
	connect( m_pUpdateTimer, SIGNAL( timeout() ), this, SLOT( updateMidi() ) );

	m_pUpdateTimer->start( 100 );
};