From 74fe419659f2bdbae31cf0da31b634da5fb14b28 Mon Sep 17 00:00:00 2001 From: John Maguire Date: Wed, 20 Jun 2012 15:07:28 +0200 Subject: [PATCH] Factor out metatype registration. --- src/CMakeLists.txt | 1 + src/core/metatypes.cpp | 77 ++++++++++++++++++++++++++++++++++++++++++ src/core/metatypes.h | 6 ++++ src/main.cpp | 62 ++-------------------------------- 4 files changed, 86 insertions(+), 60 deletions(-) create mode 100644 src/core/metatypes.cpp create mode 100644 src/core/metatypes.h diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 3436e149f..3290aea73 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -90,6 +90,7 @@ set(SOURCES core/globalshortcuts.cpp core/gnomeglobalshortcutbackend.cpp core/mergedproxymodel.cpp + core/metatypes.cpp core/multisortfilterproxy.cpp core/musicstorage.cpp core/network.cpp diff --git a/src/core/metatypes.cpp b/src/core/metatypes.cpp new file mode 100644 index 000000000..1882f4bcf --- /dev/null +++ b/src/core/metatypes.cpp @@ -0,0 +1,77 @@ +#include "metatypes.h" + +#include +#include + +#include "config.h" +#include "covers/albumcoverfetcher.h" +#include "engines/enginebase.h" +#include "globalsearch/searchprovider.h" +#include "internet/digitallyimportedclient.h" +#include "internet/geolocator.h" +#include "internet/somafmservice.h" +#include "library/directory.h" +#include "playlist/playlist.h" +#include "podcasts/podcastepisode.h" +#include "podcasts/podcast.h" +#include "ui/equalizer.h" + +#ifdef HAVE_DBUS +#include +#include "core/mpris2.h" +#include "dbus/metatypes.h" +#endif + +class GstBuffer; +class GstElement; +class GstEnginePipeline; +class QNetworkReply; + +void RegisterMetaTypes() { + qRegisterMetaType("ColumnAlignmentMap"); + qRegisterMetaType("const char*"); + qRegisterMetaType("CoverSearchResult"); + qRegisterMetaType("CoverSearchResults"); + qRegisterMetaType("DigitallyImportedClient::Channel"); + qRegisterMetaType("Directory"); + qRegisterMetaType("DirectoryList"); + qRegisterMetaType("Engine::SimpleMetaBundle"); + qRegisterMetaType("Engine::State"); + qRegisterMetaType("Equalizer::Params"); + qRegisterMetaType("Geolocator::LatLng"); + qRegisterMetaType("GstBuffer*"); + qRegisterMetaType("GstElement*"); + qRegisterMetaType("GstEnginePipeline*"); + qRegisterMetaType("PlaylistItemList"); + qRegisterMetaType("PlaylistItemPtr"); + qRegisterMetaType("PodcastEpisodeList"); + qRegisterMetaType("PodcastList"); + qRegisterMetaType >("QList"); + qRegisterMetaType >("QList"); + qRegisterMetaType >("QList"); + qRegisterMetaType >("QList"); + qRegisterMetaType >("QList"); + qRegisterMetaType >("QList"); + qRegisterMetaType("QNetworkCookie"); + qRegisterMetaType("QNetworkReply*"); + qRegisterMetaType("QNetworkReply**"); + qRegisterMetaType("SearchProvider::ResultList"); + qRegisterMetaType("SearchProvider::Result"); + qRegisterMetaType("smart_playlists::GeneratorPtr"); + qRegisterMetaType("SomaFMService::Stream"); + qRegisterMetaType("SongList"); + qRegisterMetaType("Song"); + qRegisterMetaTypeStreamOperators("DigitallyImportedClient::Channel"); + qRegisterMetaTypeStreamOperators("Equalizer::Params"); + qRegisterMetaTypeStreamOperators >("ColumnAlignmentMap"); + qRegisterMetaTypeStreamOperators("SomaFMService::Stream"); + qRegisterMetaType("SubdirectoryList"); + qRegisterMetaType("Subdirectory"); + +#ifdef HAVE_DBUS + qDBusRegisterMetaType(); + qDBusRegisterMetaType(); + qDBusRegisterMetaType(); + qDBusRegisterMetaType >(); +#endif +} diff --git a/src/core/metatypes.h b/src/core/metatypes.h new file mode 100644 index 000000000..d757794af --- /dev/null +++ b/src/core/metatypes.h @@ -0,0 +1,6 @@ +#ifndef METATYPES_H +#define METATYPES_H + +void RegisterMetaTypes(); + +#endif diff --git a/src/main.cpp b/src/main.cpp index 37df38c47..2a6b05381 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -31,27 +31,18 @@ #include "core/database.h" #include "core/logging.h" #include "core/mac_startup.h" +#include "core/metatypes.h" #include "core/network.h" #include "core/networkproxyfactory.h" #include "core/potranslator.h" #include "core/song.h" #include "core/ubuntuunityhack.h" #include "core/utilities.h" -#include "covers/albumcoverfetcher.h" #include "covers/amazoncoverprovider.h" #include "covers/discogscoverprovider.h" #include "covers/coverproviders.h" #include "engines/enginebase.h" -#include "globalsearch/searchprovider.h" -#include "internet/digitallyimportedclient.h" -#include "internet/geolocator.h" -#include "internet/somafmservice.h" -#include "library/directory.h" -#include "playlist/playlist.h" -#include "podcasts/podcast.h" -#include "podcasts/podcastepisode.h" #include "smartplaylists/generator.h" -#include "ui/equalizer.h" #include "ui/iconloader.h" #include "ui/mainwindow.h" #include "ui/systemtrayicon.h" @@ -63,7 +54,6 @@ #include #include -#include #include #include #include @@ -99,17 +89,13 @@ using boost::scoped_ptr; #ifdef HAVE_DBUS #include "core/mpris.h" #include "core/mpris2.h" - #include "dbus/metatypes.h" #include - #include #include QDBusArgument& operator<< (QDBusArgument& arg, const QImage& image); const QDBusArgument& operator>> (const QDBusArgument& arg, QImage& image); #endif -class GstEnginePipeline; - // Load sqlite plugin on windows and mac. #ifdef HAVE_STATIC_SQLITE # include @@ -259,46 +245,7 @@ int main(int argc, char *argv[]) { g_type_init(); g_set_application_name(QCoreApplication::applicationName().toLocal8Bit()); - qRegisterMetaType("CoverSearchResult"); - qRegisterMetaType >("QList"); - qRegisterMetaType("CoverSearchResults"); - qRegisterMetaType("Directory"); - qRegisterMetaType("DirectoryList"); - qRegisterMetaType("Subdirectory"); - qRegisterMetaType("SubdirectoryList"); - qRegisterMetaType("Song"); - qRegisterMetaType >("QList"); - qRegisterMetaType("SongList"); - qRegisterMetaType("PlaylistItemPtr"); - qRegisterMetaType >("QList"); - qRegisterMetaType("PlaylistItemList"); - qRegisterMetaType("Engine::State"); - qRegisterMetaType("Engine::SimpleMetaBundle"); - qRegisterMetaType("Equalizer::Params"); - qRegisterMetaTypeStreamOperators("Equalizer::Params"); - qRegisterMetaType("const char*"); - qRegisterMetaType("QNetworkReply*"); - qRegisterMetaType("QNetworkReply**"); - qRegisterMetaType("smart_playlists::GeneratorPtr"); - qRegisterMetaType("ColumnAlignmentMap"); - qRegisterMetaTypeStreamOperators >("ColumnAlignmentMap"); - qRegisterMetaType("QNetworkCookie"); - qRegisterMetaType >("QList"); - qRegisterMetaType("SearchProvider::Result"); - qRegisterMetaType("SearchProvider::ResultList"); - qRegisterMetaType("DigitallyImportedClient::Channel"); - qRegisterMetaType("SomaFMService::Stream"); - qRegisterMetaTypeStreamOperators("DigitallyImportedClient::Channel"); - qRegisterMetaTypeStreamOperators("SomaFMService::Stream"); - qRegisterMetaType >("QList"); - qRegisterMetaType >("QList"); - qRegisterMetaType("PodcastList"); - qRegisterMetaType("PodcastEpisodeList"); - qRegisterMetaType("Geolocator::LatLng"); - - qRegisterMetaType("GstBuffer*"); - qRegisterMetaType("GstElement*"); - qRegisterMetaType("GstEnginePipeline*"); + RegisterMetaTypes(); #ifdef HAVE_LIBLASTFM lastfm::ws::ApiKey = LastFMService::kApiKey; @@ -458,11 +405,6 @@ int main(int argc, char *argv[]) { OSD osd(tray_icon.get(), &app); #ifdef HAVE_DBUS - qDBusRegisterMetaType(); - qDBusRegisterMetaType(); - qDBusRegisterMetaType(); - qDBusRegisterMetaType >(); - mpris::Mpris mpris(&app); #endif