Search
j0ke.net Open Build Service
>
Projects
>
multimedia
>
amarok
> mp3freeze-147126.patch
Sign Up
|
Log In
Username
Password
Cancel
Overview
Repositories
Revisions
Requests
Users
Advanced
Attributes
Meta
File mp3freeze-147126.patch of Package amarok (Revision 3)
Currently displaying revision
3
,
show latest
--- amarok-1.4.7.org/amarok/src/enginecontroller.h 2007-08-07 19:48:28.000000000 +0200 +++ amarok-1.4.7/amarok/src/enginecontroller.h 2007-08-29 14:07:27.000000000 +0200 @@ -45,6 +45,7 @@ static EngineController* instance(); static EngineBase* engine() { return instance()->m_engine; } static bool canDecode( const KURL& ); + void unplayableNotification(); static ExtensionCache& extensionCache() { return s_extensionCache; } static QString engineProperty( const QString& key ) { return engine()->pluginProperty( key ); } static bool hasEngineProperty( const QString& key ) { return engine()->hasPluginProperty( key ); } --- amarok-1.4.7.org/amarok/src/enginecontroller.cpp 2007-08-07 19:48:28.000000000 +0200 +++ amarok-1.4.7/amarok/src/enginecontroller.cpp 2007-08-29 14:07:16.000000000 +0200 @@ -244,13 +244,10 @@ if( engine() != EngineController::instance()->m_voidEngine ) { //we special case this as otherwise users hate us - if ( !valid && ext.lower() == "mp3" && !installDistroCodec(AmarokConfig::soundSystem()) ) - Amarok::StatusBar::instance()->longMessageThreadSafe( - i18n( "<p>The %1 claims it <b>cannot</b> play MP3 files." - "<p>You may want to choose a different engine from the <i>Configure Dialog</i>, or examine " - "the installation of the multimedia-framework that the current engine uses. " - "<p>You may find useful information in the <i>FAQ</i> section of the <i>Amarok HandBook</i>." ) - .arg( AmarokConfig::soundSystem() ), KDE::StatusBar::Error ); + if ( !valid && ext.lower() == "mp3"){ + QCustomEvent * e = new QCustomEvent( 2000 ); + QApplication::postEvent( Amarok::StatusBar::instance(), e ); + } // Cache this result for the next lookup if ( !ext.isEmpty() ) @@ -260,6 +257,17 @@ return valid; } +void EngineController::unplayableNotification() { + + if( !installDistroCodec(AmarokConfig::soundSystem())) + Amarok::StatusBar::instance()->longMessageThreadSafe( + i18n( "<p>The %1 claims it <b>cannot</b> play MP3 files." + "<p>You may want to choose a different engine from the <i>Configure Dialog</i>, or examine " + "the installation of the multimedia-framework that the current engine uses. " + "<p>You may find useful information in the <i>FAQ</i> section of the <i>Amarok HandBook</i>." ) + .arg( AmarokConfig::soundSystem() ), KDE::StatusBar::Error ); +} + bool EngineController::installDistroCodec( const QString& engine /*Filetype type*/) { KService::Ptr service = KTrader::self()->query( "Amarok/CodecInstall" --- amarok-1.4.7.org/amarok/src/statusbar/statusBarBase.cpp 2007-08-07 19:48:28.000000000 +0200 +++ amarok-1.4.7/amarok/src/statusbar/statusBarBase.cpp 2007-08-29 14:07:51.000000000 +0200 @@ -25,6 +25,7 @@ #include "squeezedtextlabel.h" #include "statusBarBase.h" #include "threadmanager.h" +#include "enginecontroller.h" #include <kio/job.h> #include <kiconloader.h> @@ -343,9 +344,13 @@ void StatusBar::customEvent( QCustomEvent *e ) { - QString *s = static_cast<QString*>( e->data() ); - longMessage( *s ); - delete s; + if(e->type() == 1000 ){ + QString *s = static_cast<QString*>( e->data() ); + longMessage( *s ); + delete s; + }else if(e->type() == 2000 ){ + EngineController::instance()->unplayableNotification(); + } }