1 2 #ifndef REPLAYGAINPLUGIN_H 3 #define REPLAYGAINPLUGIN_H 4 5 #include <kcoreaddons_export.h> 6 #include <QVariantList> 7 8 #include "backendplugin.h" 9 10 #include <QMap> 11 #include <KUrl> 12 13 class ReplayGainPlugin; 14 15 16 struct ReplayGainPipe 17 { 18 QString codecName; 19 20 ReplayGainPlugin *plugin; 21 bool enabled; // can we use this conversion pipe? (all needed backends installed?) 22 int rating; 23 QString problemInfo; // howto message, if a backend is missing 24 }; 25 26 27 class KCOREADDONS_EXPORT ReplayGainPluginItem : public BackendPluginItem 28 { 29 Q_OBJECT 30 public: 31 explicit ReplayGainPluginItem( QObject *parent ); 32 virtual ~ReplayGainPluginItem(); 33 34 struct Data // additional data 35 { 36 int fileCount; 37 int processedFiles; 38 float lastFileProgress; 39 } data; 40 }; 41 42 43 /** @author Daniel Faust <hessijames@gmail.com> */ 44 class KCOREADDONS_EXPORT ReplayGainPlugin : public BackendPlugin 45 { 46 Q_OBJECT 47 public: 48 enum ApplyMode { 49 Add = 0, 50 Remove = 1, 51 Force = 2 52 }; 53 54 explicit ReplayGainPlugin( QObject *parent ); 55 virtual ~ReplayGainPlugin(); 56 57 virtual QString type() const; 58 59 virtual QList<ReplayGainPipe> codecTable() = 0; 60 61 /** adds replaygain to one or more files */ 62 virtual int apply( const KUrl::List& fileList, ApplyMode mode = Add ) = 0; 63 }; 64 65 #define K_EXPORT_SOUNDKONVERTER_REPLAYGAIN(libname, classname) \ 66 K_EXPORT_COMPONENT_FACTORY( soundkonverter_replaygain_##libname, KGenericFactory<classname>("soundkonverter_replaygain_" #libname) ) 67 68 #endif // REPLAYGAINPLUGIN_H 69