1
0
mirror of https://github.com/tomahawk-player/tomahawk.git synced 2025-07-31 03:10:12 +02:00
This commit is contained in:
Leo Franchi
2011-01-14 16:45:53 -05:00
parent ce53bf1024
commit 92c96c5de6
4 changed files with 22 additions and 3 deletions

View File

@@ -29,7 +29,7 @@
#include "dynamic/GeneratorInterface.h"
#include "dynamic/GeneratorFactory.h"
#include "pipeline.h"
#include <audioengine.h>
#include "audioengine.h"
using namespace Tomahawk;
@@ -38,6 +38,7 @@ DynamicWidget::DynamicWidget( const Tomahawk::dynplaylist_ptr& playlist, QWidget
, m_layout( new QVBoxLayout )
, m_resolveOnNextLoad( false )
, m_runningOnDemand( false )
, m_startOnResolved( false )
, m_songsSinceLastResolved( 0 )
, m_headerText( 0 )
, m_headerLayout( 0 )
@@ -163,12 +164,13 @@ DynamicWidget::generateOrStart()
} else if( m_playlist->mode() == OnDemand ) {
if( m_runningOnDemand == false ) {
m_runningOnDemand = true;
m_startOnResolved = true;
m_playlist->generator()->startOnDemand();
m_generateButton->setText( tr( "Stop" ) );
} else { // stop
m_runningOnDemand = false;
m_startOnResolved = false;
m_generateButton->setText( tr( "Start" ) );
}
}
@@ -196,7 +198,8 @@ DynamicWidget::applyModeChange( int mode )
} else if( mode == Static ) {
m_generateButton->setText( tr( "Generate" ) );
m_genNumber->show();
m_headerLayout->insertWidget( 4, m_genNumber );
if( m_headerLayout->indexOf( m_generateButton ) == -1 )
m_headerLayout->insertWidget( 4, m_genNumber );
disconnect( TomahawkApp::instance()->audioEngine(), SIGNAL( loading( Tomahawk::result_ptr ) ), this, SLOT( newTrackLoading() ) );
}
@@ -224,6 +227,12 @@ void
DynamicWidget::trackResolved()
{
m_songsSinceLastResolved = 0;
if( m_startOnResolved ) {
m_startOnResolved = false;
TomahawkApp::instance()->audioEngine()->play();
}
}
void
@@ -243,6 +252,12 @@ DynamicWidget::newTrackLoading()
}
}
void DynamicWidget::onDemandFailed()
{
if( m_runningOnDemand )
generateOrStart();
}
void
DynamicWidget::controlsChanged()

View File

@@ -62,6 +62,7 @@ private slots:
void tracksGenerated( const QList< Tomahawk::query_ptr>& queries );
// used by on demand mode
void onDemandFailed();
void newTrackLoading();
void onDemandFetched( const Tomahawk::query_ptr& track );
void trackResolveFailed();
@@ -79,6 +80,7 @@ private:
// used in OnDemand mode
bool m_runningOnDemand;
bool m_startOnResolved;
int m_songsSinceLastResolved;
QLabel* m_headerText;

View File

@@ -94,6 +94,7 @@ public:
void removeControl( const dyncontrol_ptr& control );
signals:
void onDemandFailed();
void generated( const QList< Tomahawk::query_ptr>& queries );
void nextTrackGenerated( const Tomahawk::query_ptr& track );

View File

@@ -160,6 +160,7 @@ EchonestGenerator::dynamicStarted()
emit nextTrackGenerated( songQuery );
} catch( const Echonest::ParseError& e ) {
qWarning() << "libechonest threw an error parsing the start of the dynamic playlist:" << e.errorType() << e.what();
emit onDemandFailed();
}
}