コード例 #1
0
TIndexFile::TIndexFile(TConfiguration *config, QObject *parent)
{
    Q_UNUSED(parent);
    MyConfiguration = config;
    MyDownloader    = new TDownloader(MyConfiguration->getUserAgent());
    loaded          = false;
    connect(MyDownloader, SIGNAL(downloadSucceed(QString)), SLOT(loadAfterDownload(QString)));
    connect(MyDownloader, SIGNAL(noModified(QString)), SLOT(checkForLoaded(QString)));
}
コード例 #2
0
void AudioHTTPServer::checkForLoaded()
{
     qDebug() << "Checking...";
    if( !sp_track_is_loaded( m_savedTrack ) ) {
         qWarning() << QThread::currentThreadId() << "uh oh... track not loaded yet! Asked for:" << sp_track_name( m_savedTrack );
        QTimer::singleShot( 250, this, SLOT( checkForLoaded() ) );
    } else {
        startStreamingResponse( m_savedEvent, m_savedTrack );
    }

}
コード例 #3
0
void AudioHTTPServer::sid( QxtWebRequestEvent* event, QString a )
{
    qDebug() << QThread::currentThreadId() << "HTTP" << event->url.toString() << a;

    if( !SpotifySession::getInstance()->Playback()->trackIsOver() ) {
        SpotifySession::getInstance()->Playback()->endTrack();
    }

    // the requested track
    QString uid = a.replace( ".wav", "");
//    qDebug() << QThread::currentThreadId() << "Beginning to stream requested track:" << uid;
    if( uid.isEmpty() || !sApp->hasLinkFromTrack( uid ) ) {
        qWarning() << "Did not find spotify track UID in our list!" << uid;
        sendErrorResponse( event );

        return;
    }

    // get the sp_track
    sp_link* link = sApp->linkFromTrack( uid );

    sp_track* track = sp_link_as_track( link );
    if( !track ) {
        qWarning() << QThread::currentThreadId() << "Uh oh... got null track from link :(" << sp_link_type( link );
        sendErrorResponse( event );
        return;
    }
    if( !sp_track_is_loaded( track ) ) {
        qWarning() << QThread::currentThreadId() << "uh oh... track not loaded yet! Asked for:" << sp_track_name( track );
        m_savedEvent = event;
        m_savedTrack = track;
        QTimer::singleShot( 250, this, SLOT( checkForLoaded() ) );
        return;

    } else {
        startStreamingResponse( event, track );
    }
}