From a3bc3892289669ea3298808e5962285051098843 Mon Sep 17 00:00:00 2001 From: nhnielsen Date: Sat, 24 Nov 2007 11:51:01 +0000 Subject: [PATCH] 'Pluginize' Ampache git-svn-id: svn+ssh://svn.kde.org/home/kde/trunk/extragear/multimedia/amarok@740910 283d02a7-25f6-0310-bc7c-ecb5cbfe19da --- src/CMakeLists.txt | 10 ------ src/MainWindow.cpp | 3 +- src/collection/support/MemoryMatcher.h | 15 ++++----- src/servicebrowser/CMakeLists.txt | 1 + src/servicebrowser/DynamicServiceQueryMaker.h | 3 +- src/servicebrowser/ServiceDynamicCollection.h | 3 +- src/servicebrowser/ampache/AmpacheService.cpp | 8 +++++ src/servicebrowser/ampache/AmpacheService.h | 9 ++++++ src/servicebrowser/ampache/CMakeLists.txt | 36 ++++++++++++++++++++++ .../amarok_service-ampache.desktop} | 8 ++--- .../jamendo/amarok_service-jamendo.desktop | 2 +- .../amarok_service-magnatunestore.desktop | 2 +- 12 files changed, 73 insertions(+), 27 deletions(-) create mode 100644 src/servicebrowser/ampache/CMakeLists.txt copy src/servicebrowser/{jamendo/amarok_service-jamendo.desktop => ampache/amarok_service-ampache.desktop} (65%) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 158c9d828..472877317 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -155,16 +155,6 @@ set(libmp3tunesservice_SRCS ) -##################################################################### -# AMPACHESERVICE -##################################################################### - set(libampacheservice_SRCS - servicebrowser/ampache/AmpacheService.cpp - servicebrowser/ampache/AmpacheServiceCollection.cpp - servicebrowser/ampache/AmpacheServiceQueryMaker.cpp - servicebrowser/ampache/AmpacheMeta.cpp - -) qt4_add_dbus_adaptor( libscriptableservice_SRCS servicebrowser/scriptableservice/org.kde.amarok.ScriptableServiceManager.xml servicebrowser/scriptableservice/scriptableservicemanager.h ScriptableServiceManager) diff --git a/src/MainWindow.cpp b/src/MainWindow.cpp index 2cafd8d1c..8c1235cd7 100644 --- a/src/MainWindow.cpp +++ b/src/MainWindow.cpp @@ -44,7 +44,6 @@ #include "servicebrowser/servicebrowser.h" #include "servicebrowser/shoutcast/ShoutcastService.h" #include "servicebrowser/mp3tunes/mp3tunesservice.h" -#include "servicebrowser/ampache/AmpacheService.h" #include "Sidebar.h" #include "Sidebar.moc" #include "socketserver.h" @@ -277,7 +276,7 @@ void MainWindow::init() internetContentServiceBrowser->addService( new Mp3tunesService( "Mp3Tunes Locker" ) ); - internetContentServiceBrowser->addService( new AmpacheService( "Ampache" ) ); + //internetContentServiceBrowser->addService( new AmpacheService( "Ampache" ) ); new MediaBrowser( "MediaBrowser" ); if( MediaBrowser::isAvailable() ) diff --git a/src/collection/support/MemoryMatcher.h b/src/collection/support/MemoryMatcher.h index eac542b54..86b89265d 100644 --- a/src/collection/support/MemoryMatcher.h +++ b/src/collection/support/MemoryMatcher.h @@ -21,6 +21,7 @@ #ifndef MEMORYMATCHER_H #define MEMORYMATCHER_H +#include "amarok_export.h" #include "MemoryCollection.h" #include "Meta.h" @@ -29,7 +30,7 @@ A helper class for finding items in a MemoryCollection @author */ -class MemoryMatcher{ +class AMAROK_EXPORT MemoryMatcher{ public: MemoryMatcher(); virtual ~MemoryMatcher(); @@ -45,7 +46,7 @@ class MemoryMatcher{ }; -class TrackMatcher : public MemoryMatcher +class AMAROK_EXPORT TrackMatcher : public MemoryMatcher { public: TrackMatcher( Meta::TrackPtr track ); @@ -57,7 +58,7 @@ class TrackMatcher : public MemoryMatcher }; -class ArtistMatcher : public MemoryMatcher +class AMAROK_EXPORT ArtistMatcher : public MemoryMatcher { public: ArtistMatcher( Meta::ArtistPtr artist ); @@ -70,7 +71,7 @@ class ArtistMatcher : public MemoryMatcher Meta::ArtistPtr m_artist; }; -class AlbumMatcher : public MemoryMatcher +class AMAROK_EXPORT AlbumMatcher : public MemoryMatcher { public: AlbumMatcher( Meta::AlbumPtr album ); @@ -81,7 +82,7 @@ class AlbumMatcher : public MemoryMatcher Meta::AlbumPtr m_album; }; -class GenreMatcher : public MemoryMatcher +class AMAROK_EXPORT GenreMatcher : public MemoryMatcher { public: GenreMatcher( Meta::GenrePtr genre ); @@ -92,7 +93,7 @@ class GenreMatcher : public MemoryMatcher Meta::GenrePtr m_genre; }; -class ComposerMatcher : public MemoryMatcher +class AMAROK_EXPORT ComposerMatcher : public MemoryMatcher { public: ComposerMatcher( Meta::ComposerPtr composer ); @@ -103,7 +104,7 @@ class ComposerMatcher : public MemoryMatcher Meta::ComposerPtr m_composer; }; -class YearMatcher : public MemoryMatcher +class AMAROK_EXPORT YearMatcher : public MemoryMatcher { public: YearMatcher( Meta::YearPtr year ); diff --git a/src/servicebrowser/CMakeLists.txt b/src/servicebrowser/CMakeLists.txt index 0c5d0b65b..8fd12fb17 100644 --- a/src/servicebrowser/CMakeLists.txt +++ b/src/servicebrowser/CMakeLists.txt @@ -2,4 +2,5 @@ include_directories( ${KDE4_INCLUDE_DIR} ${QT_INCLUDES} ) add_subdirectory( magnatunestore ) add_subdirectory( jamendo ) +add_subdirectory( ampache ) diff --git a/src/servicebrowser/DynamicServiceQueryMaker.h b/src/servicebrowser/DynamicServiceQueryMaker.h index e793e8535..0cc52b403 100644 --- a/src/servicebrowser/DynamicServiceQueryMaker.h +++ b/src/servicebrowser/DynamicServiceQueryMaker.h @@ -20,6 +20,7 @@ #ifndef DYNAMICSERVICEQUERYMAKER_H #define DYNAMICSERVICEQUERYMAKER_H +#include "amarok_export.h" #include "QueryMaker.h" #include "Meta.h" @@ -40,7 +41,7 @@ Basically just stubs out the stuff that not every dynamic querymaker will need @author */ -class DynamicServiceQueryMaker : public QueryMaker +class AMAROK_EXPORT DynamicServiceQueryMaker : public QueryMaker { Q_OBJECT public: diff --git a/src/servicebrowser/ServiceDynamicCollection.h b/src/servicebrowser/ServiceDynamicCollection.h index a77bc9afa..8c517a224 100644 --- a/src/servicebrowser/ServiceDynamicCollection.h +++ b/src/servicebrowser/ServiceDynamicCollection.h @@ -12,6 +12,7 @@ #ifndef SERVICEDYNAMICCOLLECTION_H #define SERVICEDYNAMICCOLLECTION_H +#include "amarok_export.h" #include typedef QMap TrackIdMap; @@ -25,7 +26,7 @@ A specialised collection used for services that dynamically fetch their data fro @author */ -class ServiceDynamicCollection : public ServiceCollection +class AMAROK_EXPORT ServiceDynamicCollection : public ServiceCollection { public: diff --git a/src/servicebrowser/ampache/AmpacheService.cpp b/src/servicebrowser/ampache/AmpacheService.cpp index ab9912e59..e5b9d5687 100644 --- a/src/servicebrowser/ampache/AmpacheService.cpp +++ b/src/servicebrowser/ampache/AmpacheService.cpp @@ -29,6 +29,14 @@ #include #include +AMAROK_EXPORT_PLUGIN( AmpacheServiceFactory ) + +void AmpacheServiceFactory::init() +{ + ServiceBase* service = new AmpacheService( "Ampache" ); + emit newService( service ); +} + AmpacheService::AmpacheService(const QString & name) : ServiceBase( name ) diff --git a/src/servicebrowser/ampache/AmpacheService.h b/src/servicebrowser/ampache/AmpacheService.h index cbca239d3..f6d81bca4 100644 --- a/src/servicebrowser/ampache/AmpacheService.h +++ b/src/servicebrowser/ampache/AmpacheService.h @@ -29,7 +29,16 @@ #include +class AmpacheServiceFactory: public ServiceFactory +{ + Q_OBJECT + + public: + AmpacheServiceFactory() {} + virtual ~AmpacheServiceFactory() {} + virtual void init(); +}; /** diff --git a/src/servicebrowser/ampache/CMakeLists.txt b/src/servicebrowser/ampache/CMakeLists.txt new file mode 100644 index 000000000..6184238d7 --- /dev/null +++ b/src/servicebrowser/ampache/CMakeLists.txt @@ -0,0 +1,36 @@ + + + include_directories( ${CMAKE_CURRENT_SOURCE_DIR}/../.. + ${CMAKE_CURRENT_SOURCE_DIR}/../../plugin + ${CMAKE_CURRENT_SOURCE_DIR}/../../amarokcore + ${CMAKE_CURRENT_SOURCE_DIR}/../../meta + ${CMAKE_CURRENT_SOURCE_DIR}/../../collection + ${CMAKE_CURRENT_SOURCE_DIR}/../../ + ${CMAKE_CURRENT_SOURCE_DIR}/../../servicebrowser + ${CMAKE_CURRENT_SOURCE_DIR}/../../statusbar + ${CMAKE_CURRENT_BINARY_DIR}/../.. + ${KDE4_INCLUDE_DIR} + ${STRIGI_INCLUDE_DIR} + ${QT_INCLUDES} ) + +########### next target ############### + + set(amarok_service-ampache_PART_SRCS + AmpacheService.cpp + AmpacheServiceCollection.cpp + AmpacheServiceQueryMaker.cpp + AmpacheMeta.cpp + ) + + + + kde4_add_plugin(amarok_service-ampache WITH_PREFIX ${amarok_service-ampache_PART_SRCS}) + target_link_libraries(amarok_service-ampache amaroklib ${KDE4_KDECORE_LIBS} ${KDE4_KDEUI_LIBS} ${KDE4_THREADWEAVER_LIBRARIES}) + + + install(TARGETS amarok_service-ampache DESTINATION ${PLUGIN_INSTALL_DIR} ) + + +########### install files ############### + + install( FILES amarok_service-ampache.desktop DESTINATION ${SERVICES_INSTALL_DIR}) diff --git a/src/servicebrowser/jamendo/amarok_service-jamendo.desktop b/src/servicebrowser/ampache/amarok_service-ampache.desktop similarity index 65% copy from src/servicebrowser/jamendo/amarok_service-jamendo.desktop copy to src/servicebrowser/ampache/amarok_service-ampache.desktop index e021adfaa..bf56d825c 100644 --- a/src/servicebrowser/jamendo/amarok_service-jamendo.desktop +++ b/src/servicebrowser/ampache/amarok_service-ampache.desktop @@ -1,18 +1,18 @@ [Desktop Entry] Encoding=UTF-8 Type=Service -Name=Jamendo Service +Name=Ampache Service Comment=Service plugin for Amarok ServiceTypes=Amarok/Plugin -X-KDE-Library=libamarok_service-jamendo +X-KDE-Library=libamarok_service-ampache -X-KDE-Amarok-authors=Nikolaj Hald Niensel +X-KDE-Amarok-authors=Nikolaj Hald Niensen X-KDE-Amarok-email=nhnFreespirit@gmail.com X-KDE-Amarok-framework-version=30 -X-KDE-Amarok-name=JamendoService +X-KDE-Amarok-name=AmpacheService X-KDE-Amarok-plugintype=service X-KDE-Amarok-rank=100 X-KDE-Amarok-version=1 diff --git a/src/servicebrowser/jamendo/amarok_service-jamendo.desktop b/src/servicebrowser/jamendo/amarok_service-jamendo.desktop index e021adfaa..54da07ac6 100644 --- a/src/servicebrowser/jamendo/amarok_service-jamendo.desktop +++ b/src/servicebrowser/jamendo/amarok_service-jamendo.desktop @@ -9,7 +9,7 @@ ServiceTypes=Amarok/Plugin X-KDE-Library=libamarok_service-jamendo -X-KDE-Amarok-authors=Nikolaj Hald Niensel +X-KDE-Amarok-authors=Nikolaj Hald Niensen X-KDE-Amarok-email=nhnFreespirit@gmail.com X-KDE-Amarok-framework-version=30 X-KDE-Amarok-name=JamendoService diff --git a/src/servicebrowser/magnatunestore/amarok_service-magnatunestore.desktop b/src/servicebrowser/magnatunestore/amarok_service-magnatunestore.desktop index 541226e77..c6a21bd8e 100644 --- a/src/servicebrowser/magnatunestore/amarok_service-magnatunestore.desktop +++ b/src/servicebrowser/magnatunestore/amarok_service-magnatunestore.desktop @@ -9,7 +9,7 @@ ServiceTypes=Amarok/Plugin X-KDE-Library=libamarok_service-magnatunestore -X-KDE-Amarok-authors=Nikolaj Hald Niensel +X-KDE-Amarok-authors=Nikolaj Hald Niensen X-KDE-Amarok-email=nhnFreespirit@gmail.com X-KDE-Amarok-framework-version=30 X-KDE-Amarok-name=MagnatuneStore -- 2.11.4.GIT