mirror of
https://github.com/tomahawk-player/tomahawk.git
synced 2025-08-01 20:00:13 +02:00
misc
This commit is contained in:
@@ -29,7 +29,7 @@
|
|||||||
#include "dynamic/GeneratorInterface.h"
|
#include "dynamic/GeneratorInterface.h"
|
||||||
#include "dynamic/GeneratorFactory.h"
|
#include "dynamic/GeneratorFactory.h"
|
||||||
#include "pipeline.h"
|
#include "pipeline.h"
|
||||||
#include <audioengine.h>
|
#include "audioengine.h"
|
||||||
|
|
||||||
using namespace Tomahawk;
|
using namespace Tomahawk;
|
||||||
|
|
||||||
@@ -38,6 +38,7 @@ DynamicWidget::DynamicWidget( const Tomahawk::dynplaylist_ptr& playlist, QWidget
|
|||||||
, m_layout( new QVBoxLayout )
|
, m_layout( new QVBoxLayout )
|
||||||
, m_resolveOnNextLoad( false )
|
, m_resolveOnNextLoad( false )
|
||||||
, m_runningOnDemand( false )
|
, m_runningOnDemand( false )
|
||||||
|
, m_startOnResolved( false )
|
||||||
, m_songsSinceLastResolved( 0 )
|
, m_songsSinceLastResolved( 0 )
|
||||||
, m_headerText( 0 )
|
, m_headerText( 0 )
|
||||||
, m_headerLayout( 0 )
|
, m_headerLayout( 0 )
|
||||||
@@ -163,12 +164,13 @@ DynamicWidget::generateOrStart()
|
|||||||
} else if( m_playlist->mode() == OnDemand ) {
|
} else if( m_playlist->mode() == OnDemand ) {
|
||||||
if( m_runningOnDemand == false ) {
|
if( m_runningOnDemand == false ) {
|
||||||
m_runningOnDemand = true;
|
m_runningOnDemand = true;
|
||||||
|
m_startOnResolved = true;
|
||||||
m_playlist->generator()->startOnDemand();
|
m_playlist->generator()->startOnDemand();
|
||||||
|
|
||||||
m_generateButton->setText( tr( "Stop" ) );
|
m_generateButton->setText( tr( "Stop" ) );
|
||||||
} else { // stop
|
} else { // stop
|
||||||
m_runningOnDemand = false;
|
m_runningOnDemand = false;
|
||||||
|
m_startOnResolved = false;
|
||||||
m_generateButton->setText( tr( "Start" ) );
|
m_generateButton->setText( tr( "Start" ) );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -196,7 +198,8 @@ DynamicWidget::applyModeChange( int mode )
|
|||||||
} else if( mode == Static ) {
|
} else if( mode == Static ) {
|
||||||
m_generateButton->setText( tr( "Generate" ) );
|
m_generateButton->setText( tr( "Generate" ) );
|
||||||
m_genNumber->show();
|
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() ) );
|
disconnect( TomahawkApp::instance()->audioEngine(), SIGNAL( loading( Tomahawk::result_ptr ) ), this, SLOT( newTrackLoading() ) );
|
||||||
}
|
}
|
||||||
@@ -224,6 +227,12 @@ void
|
|||||||
DynamicWidget::trackResolved()
|
DynamicWidget::trackResolved()
|
||||||
{
|
{
|
||||||
m_songsSinceLastResolved = 0;
|
m_songsSinceLastResolved = 0;
|
||||||
|
|
||||||
|
if( m_startOnResolved ) {
|
||||||
|
m_startOnResolved = false;
|
||||||
|
TomahawkApp::instance()->audioEngine()->play();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
@@ -243,6 +252,12 @@ DynamicWidget::newTrackLoading()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void DynamicWidget::onDemandFailed()
|
||||||
|
{
|
||||||
|
if( m_runningOnDemand )
|
||||||
|
generateOrStart();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
DynamicWidget::controlsChanged()
|
DynamicWidget::controlsChanged()
|
||||||
|
@@ -62,6 +62,7 @@ private slots:
|
|||||||
void tracksGenerated( const QList< Tomahawk::query_ptr>& queries );
|
void tracksGenerated( const QList< Tomahawk::query_ptr>& queries );
|
||||||
|
|
||||||
// used by on demand mode
|
// used by on demand mode
|
||||||
|
void onDemandFailed();
|
||||||
void newTrackLoading();
|
void newTrackLoading();
|
||||||
void onDemandFetched( const Tomahawk::query_ptr& track );
|
void onDemandFetched( const Tomahawk::query_ptr& track );
|
||||||
void trackResolveFailed();
|
void trackResolveFailed();
|
||||||
@@ -79,6 +80,7 @@ private:
|
|||||||
|
|
||||||
// used in OnDemand mode
|
// used in OnDemand mode
|
||||||
bool m_runningOnDemand;
|
bool m_runningOnDemand;
|
||||||
|
bool m_startOnResolved;
|
||||||
int m_songsSinceLastResolved;
|
int m_songsSinceLastResolved;
|
||||||
|
|
||||||
QLabel* m_headerText;
|
QLabel* m_headerText;
|
||||||
|
@@ -94,6 +94,7 @@ public:
|
|||||||
void removeControl( const dyncontrol_ptr& control );
|
void removeControl( const dyncontrol_ptr& control );
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
|
void onDemandFailed();
|
||||||
void generated( const QList< Tomahawk::query_ptr>& queries );
|
void generated( const QList< Tomahawk::query_ptr>& queries );
|
||||||
void nextTrackGenerated( const Tomahawk::query_ptr& track );
|
void nextTrackGenerated( const Tomahawk::query_ptr& track );
|
||||||
|
|
||||||
|
@@ -160,6 +160,7 @@ EchonestGenerator::dynamicStarted()
|
|||||||
emit nextTrackGenerated( songQuery );
|
emit nextTrackGenerated( songQuery );
|
||||||
} catch( const Echonest::ParseError& e ) {
|
} catch( const Echonest::ParseError& e ) {
|
||||||
qWarning() << "libechonest threw an error parsing the start of the dynamic playlist:" << e.errorType() << e.what();
|
qWarning() << "libechonest threw an error parsing the start of the dynamic playlist:" << e.errorType() << e.what();
|
||||||
|
emit onDemandFailed();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user