diff --git a/CMakeLists.txt b/CMakeLists.txt --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,66 +1,121 @@ -cmake_minimum_required(VERSION 2.8.9) -project(PhononGStreamer) +cmake_minimum_required(VERSION 3.5 FATAL_ERROR) +project(PhononGStreamer VERSION 0.10.60) option(USE_INSTALL_PLUGIN "Use GStreamer codec installation API" TRUE) set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake") +include(FeatureSummary) -set(PHONON_GST_MAJOR_VERSION "4") -set(PHONON_GST_MINOR_VERSION "9") -set(PHONON_GST_PATCH_VERSION "1") -set(PHONON_GST_VERSION "${PHONON_GST_MAJOR_VERSION}.${PHONON_GST_MINOR_VERSION}.${PHONON_GST_PATCH_VERSION}") +# ECM +find_package(ECM 5.60 NO_MODULE) +set_package_properties(ECM PROPERTIES + TYPE REQUIRED + DESCRIPTION "Extra CMake Modules" + URL "https://api.kde.org/frameworks/extra-cmake-modules/html/index.html") +set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${ECM_MODULE_PATH} ${ECM_KDE_MODULE_DIR}) + +include(KDEInstallDirs) +include(ECMPoQmTools) +include(KDECMakeSettings) +include(KDECompilerSettings) +include(ECMSetupVersion) +include(ECMInstallIcons) + +ecm_setup_version(PROJECT VARIABLE_PREFIX PHONON_GST) add_definitions(-DPHONON_GST_VERSION="${PHONON_GST_VERSION}") -find_package(Phonon REQUIRED) -macro_ensure_version("4.7.0" ${PHONON_VERSION} PHONON_FOUND) -macro_log_feature(PHONON_FOUND "Phonon" "Core Library" "git://anongit.kde.org/phonon.git" TRUE "4.7.0") +# Phonon +find_package(Phonon4Qt5 4.10.60 NO_MODULE) +set_package_properties(Phonon4Qt5 PROPERTIES + TYPE REQUIRED + DESCRIPTION "Phonon core library" + URL "https://api.kde.org/phonon/html/index.html") + +find_package(Phonon4Qt5Experimental 4.10.60 NO_MODULE) +set_package_properties(Phonon4Qt5Experimental PROPERTIES + TYPE OPTIONAL + DESCRIPTION "Phonon experimental library" + URL "https://api.kde.org/phonon/html/index.html") +if(Phonon4Qt5Experimental_FOUND) + set(PHONON_EXPERIMENTAL TRUE) +endif() find_package(OpenGL) -macro_log_feature(OPENGL_FOUND "OpenGL" "OpenGL support is required to compile the gstreamer backend for Phonon" "" FALSE) - -if(PHONON_BUILD_PHONON4QT5) - find_package(Qt5OpenGL) - macro_log_feature(Qt5OpenGL_FOUND "Qt5 OpenGL" "Qt5 OpenGL support is required to compile the gstreamer backend for Phonon" "" FALSE) - set(QT_QTOPENGL_FOUND Qt5OpenGL_FOUND) - - set(REQUIRED_QT_VERSION 5.2.0) - macro_optional_find_package(Qt5X11Extras ${REQUIRED_QT_VERSION}) - macro_log_feature(Qt5X11Extras_FOUND "Qt5X11Extras" "Qt5X11Extras is needed for the x11renderer" "http://doc.qt.io/qt-5/qtx11extras-index.html" FALSE "${REQUIRED_QT_VERSION}") - - if(ECM_FOUND) - include(ECMPoQmTools) - endif() -else () - macro_log_feature(QT_QTOPENGL_FOUND "Qt4 OpenGL" "Qt4 OpenGL support is required to compile the gstreamer backend for Phonon" "" FALSE) -endif() +set_package_properties(OpenGL PROPERTIES + TYPE OPTIONAL + PURPOSE "OpenGL support is required to compile the gstreamer backend for Phonon") + +find_package(Qt5OpenGL) +set_package_properties(Qt5OpenGL PROPERTIES + TYPE OPTIONAL + PURPOSE "Qt5 OpenGL support is required to compile the gstreamer backend for Phonon") +set(QT_QTOPENGL_FOUND Qt5OpenGL_FOUND) + +set(REQUIRED_QT_VERSION 5.2.0) +find_package(Qt5X11Extras ${REQUIRED_QT_VERSION}) +set_package_properties(Qt5OpenGL PROPERTIES + TYPE OPTIONAL + PURPOSE "Qt5X11Extras is needed for the x11renderer" + URL "http://doc.qt.io/qt-5/qtx11extras-index.html") + +include(ECMPoQmTools) if (NOT QT_QTOPENGL_FOUND) set(OPENGL_FOUND FALSE) endif () -add_definitions(${QT_DEFINITIONS}) -include_directories(${PHONON_INCLUDES} ${QT_INCLUDES}) - -find_package(GStreamer REQUIRED) -find_package(GStreamerPlugins REQUIRED) -macro_log_feature(GSTREAMER_FOUND "GStreamer" "gstreamer 1.0 is required for the multimedia backend" "http://gstreamer.freedesktop.org/modules/" TRUE "1.0") -macro_log_feature(GSTREAMER_PLUGIN_VIDEO_FOUND "GStreamer video plugin" "The gstreamer video plugin (part of gstreamer-plugins-base 1.0) is required for the multimedia gstreamer backend" "http://gstreamer.freedesktop.org/modules/" TRUE "1.0") -macro_log_feature(GSTREAMER_PLUGIN_AUDIO_FOUND "GStreamer audio plugin" "The gstreamer audio plugin (part of gstreamer-plugins-base 1.0) is required for the multimedia gstreamer backend" "http://gstreamer.freedesktop.org/modules/" TRUE "1.0") -macro_log_feature(GSTREAMER_PLUGIN_PBUTILS_FOUND "GStreamer pbutils plugin" "The gstreamer pbutils plugin (part of gstreamer-plugins-base 1.0) is required for the multimedia gstreamer backend" "http://gstreamer.freedesktop.org/modules/" TRUE "1.0") - -find_package(GLIB2 REQUIRED) -macro_log_feature(GLIB2_FOUND "GLib2" "GLib 2 is required to compile the gstreamer backend for Phonon" "http://www.gtk.org/download/" TRUE) +include_directories(${PHONON_INCLUDES}) + +find_package(GStreamer 1.0) +set_package_properties(GSTREAMER PROPERTIES + TYPE REQUIRED + DESCRIPTION "GStreamer" + PURPOSE "gstreamer 1.0 is required for the multimedia backend" + URL "http://gstreamer.freedesktop.org/modules/") +find_package(GStreamerPlugins QUIET 1.0) +# They way GStreamerPlugins works is super crappy form a cmake POV. To +# get it to play nice with FeatureSummary we'll look for a bunch of fake +# packages which are in fact set by GStreamerPlugins. +find_package(GSTREAMER_PLUGIN_VIDEO) +find_package(GSTREAMER_PLUGIN_AUDIO) +find_package(GSTREAMER_PLUGIN_PBUTILS) +set_package_properties(GSTREAMER_PLUGIN_VIDEO PROPERTIES + TYPE RUNTIME + DESCRIPTION "GStreamer video plugin" + PURPOSE "The gstreamer video plugin (part of gstreamer-plugins-base 1.0) is required for the multimedia gstreamer backend" + URL "http://gstreamer.freedesktop.org/modules/") +set_package_properties(GSTREAMER_PLUGIN_AUDIO PROPERTIES + TYPE RUNTIME + DESCRIPTION "GStreamer audio plugin" + PURPOSE "The gstreamer video plugin (part of gstreamer-plugins-base 1.0) is required for the multimedia gstreamer backend" + URL "http://gstreamer.freedesktop.org/modules/") +set_package_properties(GSTREAMER_PLUGIN_PBUTILS PROPERTIES + TYPE RUNTIME + DESCRIPTION "GStreamer pbutils plugin" + PURPOSE "The gstreamer pbutils plugin (part of gstreamer-plugins-base 1.0) is required for the multimedia gstreamer backend" + URL "http://gstreamer.freedesktop.org/modules/") + +find_package(GLIB2) +set_package_properties(GLIB2 PROPERTIES + TYPE REQUIRED + DESCRIPTION "GLib2" + PURPOSE "GLib 2 is required to compile the gstreamer backend for Phonon" + URL "http://www.gtk.org/download/") find_package(GObject REQUIRED) find_package(LibXml2 REQUIRED) -macro_log_feature(LIBXML2_FOUND "LibXml2" "LibXml2 is required to compile the gstreamer backend for Phonon" "http://xmlsoft.org/downloads.html" TRUE) +set_package_properties(LibXml2 PROPERTIES + TYPE REQUIRED + DESCRIPTION "LibXml2" + PURPOSE "LibXml2 is required to compile the gstreamer backend for Phonon" + URL "http://xmlsoft.org/downloads.html") add_subdirectory(gstreamer) -if(ECM_FOUND AND IS_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/po") +if(IS_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/po") ecm_install_po_files_as_qm(po) endif() -macro_display_feature_log() +feature_summary(WHAT ALL FATAL_ON_MISSING_REQUIRED_PACKAGES) diff --git a/cmake/FindGSTREAMER_PLUGIN_AUDIO.cmake b/cmake/FindGSTREAMER_PLUGIN_AUDIO.cmake new file mode 100644 --- /dev/null +++ b/cmake/FindGSTREAMER_PLUGIN_AUDIO.cmake @@ -0,0 +1 @@ +# Dud for find_package diff --git a/cmake/FindGSTREAMER_PLUGIN_PBUTILS.cmake b/cmake/FindGSTREAMER_PLUGIN_PBUTILS.cmake new file mode 100644 --- /dev/null +++ b/cmake/FindGSTREAMER_PLUGIN_PBUTILS.cmake @@ -0,0 +1 @@ +# Dud for find_package diff --git a/cmake/FindGSTREAMER_PLUGIN_VIDEO.cmake b/cmake/FindGSTREAMER_PLUGIN_VIDEO.cmake new file mode 100644 --- /dev/null +++ b/cmake/FindGSTREAMER_PLUGIN_VIDEO.cmake @@ -0,0 +1 @@ +# Dud for find_package diff --git a/cmake/FindPhonon.cmake b/cmake/FindPhonon.cmake deleted file mode 100644 --- a/cmake/FindPhonon.cmake +++ /dev/null @@ -1,29 +0,0 @@ -# Find Phonon - -# Copyright (c) 2010-2013, Harald Sitter -# Copyright (c) 2011, Alexander Neundorf -# -# Redistribution and use is allowed according to the terms of the BSD license. -# For details see the accompanying COPYING-CMAKE-SCRIPTS file. - -set(PKG UndefinedPhononPackage) -if(PHONON_BUILD_PHONON4QT5) - set(PKG Phonon4Qt5) -else() - set(PKG Phonon) -endif() - -find_package(${PKG} NO_MODULE) - -if(PHONON_BUILDSYSTEM_DIR) - set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${PHONON_BUILDSYSTEM_DIR}) - # Prevent double-include of internals, and make sure they are included - # In Phonon <4.7 the internals were auto-included, in >=4.7 they are not. - if(NOT COMMAND phonon_add_executable) - include(${PHONON_BUILDSYSTEM_DIR}/FindPhononInternal.cmake ) - endif() -endif() - -include(FindPackageHandleStandardArgs) - -find_package_handle_standard_args(${PKG} DEFAULT_MSG ${PKG}_DIR ) diff --git a/gstreamer/CMakeLists.txt b/gstreamer/CMakeLists.txt --- a/gstreamer/CMakeLists.txt +++ b/gstreamer/CMakeLists.txt @@ -104,51 +104,46 @@ add_definitions(-DBUILD_X11RENDERER) endif() -if(ECM_FOUND) - ecm_create_qm_loader(phonon_gstreamer_SRCS phonon_gstreamer_qt) -endif() +ecm_create_qm_loader(phonon_gstreamer_SRCS phonon_gstreamer_qt) -automoc4_add_library(phonon_gstreamer MODULE ${phonon_gstreamer_SRCS}) +add_library(phonon_gstreamer MODULE ${phonon_gstreamer_SRCS}) set_target_properties(phonon_gstreamer PROPERTIES PREFIX "" AUTOMOC_MOC_OPTIONS ${AUTOMOC_MOC_OPTIONS} ) -qt5_use_modules(phonon_gstreamer Core Widgets) +target_link_libraries(phonon_gstreamer + Qt5::Core + Qt5::Widgets + Phonon::phonon4qt5 + ${PHONON_LIBRARY} + ${GSTREAMER_LIBRARIES} ${GSTREAMER_BASE_LIBRARY} ${GSTREAMER_INTERFACE_LIBRARY} + ${GSTREAMER_PLUGIN_VIDEO_LIBRARY} ${GSTREAMER_PLUGIN_AUDIO_LIBRARY} ${GSTREAMER_PLUGIN_PBUTILS_LIBRARY} + ${GLIB2_LIBRARIES} ${GOBJECT_LIBRARIES} ${GSTREAMER_APP_LIBRARY} +) + +if(PHONON_FOUND_EXPERIMENTAL) + target_link_libraries(phonon_gstreamer Phonon::phonon4qt5experimental) +endif() if(Qt5X11Extras_FOUND) - qt5_use_modules(phonon_gstreamer X11Extras) target_link_libraries(phonon_gstreamer Qt5::X11Extras) endif(Qt5X11Extras_FOUND) -target_link_libraries(phonon_gstreamer - ${PHONON_LIBRARY} - ${GSTREAMER_LIBRARIES} ${GSTREAMER_BASE_LIBRARY} ${GSTREAMER_INTERFACE_LIBRARY} - ${GSTREAMER_PLUGIN_VIDEO_LIBRARY} ${GSTREAMER_PLUGIN_AUDIO_LIBRARY} ${GSTREAMER_PLUGIN_PBUTILS_LIBRARY} - ${GLIB2_LIBRARIES} ${GOBJECT_LIBRARIES} ${GSTREAMER_APP_LIBRARY} -) if(USE_INSTALL_PLUGIN) target_link_libraries(phonon_gstreamer ${GSTREAMER_PLUGIN_PBUTILS_LIBRARIES}) endif(USE_INSTALL_PLUGIN) if(OPENGL_FOUND) - qt5_use_modules(phonon_gstreamer OpenGL) - target_link_libraries(phonon_gstreamer ${OPENGL_gl_LIBRARY}) + target_link_libraries(phonon_gstreamer ${OPENGL_gl_LIBRARY} Qt5::OpenGL) endif(OPENGL_FOUND) -install(TARGETS phonon_gstreamer DESTINATION ${BACKEND_INSTALL_DIR}) +install(TARGETS phonon_gstreamer DESTINATION ${PHONON_BACKEND_DIR}) -if(PHONON_BUILD_PHONON4QT5) - # Instead of desktop files we are embedding the information into the plugin itself. - # We have no KDE technology to help with finding the actual libraries anyway, so - # we need to have the library path anyway. - # Also see qtplugin/Q_PLUGIN_METADATA documentation. - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/phonon-gstreamer.json.in - ${CMAKE_CURRENT_BINARY_DIR}/phonon-gstreamer.json @ONLY) -else() - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/gstreamer.desktop.cmake - ${CMAKE_CURRENT_BINARY_DIR}/gstreamer.desktop) - install(FILES ${CMAKE_CURRENT_BINARY_DIR}/gstreamer.desktop - DESTINATION ${SERVICES_INSTALL_DIR}/phononbackends) -endif() +# Instead of desktop files we are embedding the information into the plugin itself. +# We have no KDE technology to help with finding the actual libraries anyway, so +# we need to have the library path anyway. +# Also see qtplugin/Q_PLUGIN_METADATA documentation. +configure_file(${CMAKE_CURRENT_SOURCE_DIR}/phonon-gstreamer.json.in + ${CMAKE_CURRENT_BINARY_DIR}/phonon-gstreamer.json @ONLY) add_subdirectory(icons) diff --git a/gstreamer/gstreamer.desktop.cmake b/gstreamer/gstreamer.desktop.cmake deleted file mode 100644 --- a/gstreamer/gstreamer.desktop.cmake +++ /dev/null @@ -1,124 +0,0 @@ -[Desktop Entry] -Type=Service -X-KDE-ServiceTypes=PhononBackend -MimeType=application/x-annodex;video/quicktime;video/x-quicktime;audio/x-m4a;application/x-quicktimeplayer;video/mkv;video/msvideo;video/x-msvideo;video/x-flic;audio/x-aiff;audio/aiff;audio/x-pn-aiff;audio/x-realaudio;audio/basic;audio/x-basic;audio/x-pn-au;audio/x-8svx;audio/8svx;audio/x-16sv;audio/168sv;image/x-ilbm;image/ilbm;video/x-anim;video/anim;image/png;image/x-png;video/mng;video/x-mng;audio/x-ogg;audio/x-speex+ogg;application/ogg;audio/vnd.rn-realaudio;audio/x-pn-realaudio-plugin;audio/x-real-audio;application/vnd.rn-realmedia;video/mpeg;video/x-mpeg;audio/x-wav;audio/wav;audio/x-pn-wav;audio/x-pn-windows-acm;audio/mpeg2;audio/x-mpeg2;audio/mpeg3;audio/x-mpeg3;audio/mpeg;audio/x-mpeg;audio/x-mpegurl;audio/mp3;audio/x-ape; -X-KDE-Library=phonon_gstreamer -X-KDE-PhononBackendInfo-InterfaceVersion=1 -X-KDE-PhononBackendInfo-Version=@PHONON_GST_VERSION@ -X-KDE-PhononBackendInfo-Website=http://gstreamer.freedesktop.org/ -Icon=phonon-gstreamer -InitialPreference=15 - -Name=GStreamer -Name[ast]=GStreamer -Name[bg]=GStreamer -Name[bs]=Gstreamer -Name[ca]=GStreamer -Name[ca@valencia]=GStreamer -Name[cs]=GStreamer -Name[da]=GStreamer -Name[de]=GStreamer -Name[el]=GStreamer -Name[en_GB]=GStreamer -Name[es]=GStreamer -Name[et]=GStreamer -Name[eu]=GStreamer -Name[fa]=GStreamer -Name[fi]=GStreamer -Name[fr]=GStreamer -Name[ga]=GStreamer -Name[gl]=GStreamer -Name[hsb]=GStreamer -Name[hu]=GStreamer -Name[id]=GStreamer -Name[is]=GStreamer -Name[it]=GStreamer -Name[ja]=GStreamer -Name[kk]=GStreamer -Name[ko]=GStreamer -Name[ku]=GStreamer -Name[lt]=GStreamer -Name[lv]=GStreamer -Name[mai]=GStreamer -Name[mr]=जी-स्ट्रीमर -Name[nb]=GStreamer -Name[nds]=GStreamer -Name[nl]=GStreamer -Name[nn]=GStreamer -Name[pa]=ਜੀਸਟੀਰਮਰ -Name[pl]=GStreamer -Name[pt]=GStreamer -Name[pt_BR]=GStreamer -Name[ro]=GStreamer -Name[ru]=GStreamer -Name[se]=GStreamer -Name[sk]=GStreamer -Name[sl]=GStreamer -Name[sr]=Гстример -Name[sr@ijekavian]=Гстример -Name[sr@ijekavianlatin]=GStreamer -Name[sr@latin]=GStreamer -Name[sv]=Gstreamer -Name[th]=GStreamer -Name[tr]=GStreamer -Name[ug]=GStreamer -Name[uk]=GStreamer -Name[x-test]=xxGStreamerxx -Name[zh_CN]=GStreamer -Name[zh_TW]=GStreamer - -Comment=Phonon GStreamer backend -Comment[bg]=Phonon GStreamer -Comment[bs]=Gstreamer kao pozadina Phonona -Comment[ca]=Dorsal GStreamer del Phonon -Comment[ca@valencia]=Dorsal GStreamer del Phonon -Comment[cs]=Podpůrná vrstva GStreamer pro Phonon -Comment[da]=GStreamer-backend til Phonon -Comment[de]=Phonon-Treiber für GStreamer -Comment[el]=Σύστημα υποστήριξης GStreamer του Phonon -Comment[en_GB]=Phonon GStreamer backend -Comment[es]=Motor GStreamer para Phonon -Comment[et]=Phononi GStreameri taustaprogramm -Comment[eu]=Phonon GStreamer bizkarraldekoa -Comment[fa]=پسانه‌ی جی‌استریمر برای فنون (Phonon GStreamer backend) -Comment[fi]=Phonon GStreamer -taustajärjestelmä -Comment[fr]=Moteur GStreamer pour Phonon -Comment[ga]=Inneall GStreamer le haghaidh Phonon -Comment[gl]=Infraestrutura de GStreamer para Phonon -Comment[hsb]=Phonon GStreamer backend -Comment[hu]=Phonon GStreamer-modul -Comment[id]=Backend phonon GStreamer -Comment[is]=Phonon GStreamer bakendi -Comment[it]=Motore Gstreamer di Phonon -Comment[ja]=Phonon GStreamer バックエンド -Comment[kk]=Phonon GStreamer тетігі -Comment[ko]=Phonon GStreamer 백엔드 -Comment[ku]=Binesaza Phonon GStreamer -Comment[lt]=Phonon GStreamer galinė sąsaja -Comment[lv]=Phonon GStreamer aizmugure -Comment[mr]=फोनॉन जी-स्ट्रीमर बॅकएन्ड -Comment[nb]=Phonon-motor for GStreamer -Comment[nds]=GStreamer-Hülpprogramm för Phonon -Comment[nl]=GStreamer-backend (Phonon) -Comment[nn]=Phonon-motor for GStreamer -Comment[pa]=ਫੋਨੋਨ ਜਸਟੀਰਮਰ ਬੈਕਐਂਡ -Comment[pl]=Obsługa GStreamera przez Phonon -Comment[pt]=Infra-estrutura do GStreamer para o Phonon -Comment[pt_BR]=Infraestrutura do GStreamer para o Phonon -Comment[ro]=Suportul GStreamer pentru Phonon -Comment[ru]=Механизм GStreamer для Phonon -Comment[se]=Phonon GStreamer duogášmohtor -Comment[sk]=Phonon GStreamer backend -Comment[sl]=Zaledje GStreamer za Phonon -Comment[sr]=Гстример као позадина Фонона -Comment[sr@ijekavian]=Гстример као позадина Фонона -Comment[sr@ijekavianlatin]=GStreamer kao pozadina Phonona -Comment[sr@latin]=GStreamer kao pozadina Phonona -Comment[sv]=Phonon Gstreamer-gränssnitt -Comment[th]=โปรแกรมเบื้องหลัง GStreamer ของ Phonon -Comment[tr]=Phonon GStreamer arka ucu -Comment[ug]=Phonon GStreamer نىڭ ئارقائۇچى -Comment[uk]=Модуль використання GStreamer у Phonon -Comment[x-test]=xxPhonon GStreamer backendxx -Comment[zh_CN]=Phonon GStreamer 后端 -Comment[zh_TW]=Phonon GStreamer 後端介面 diff --git a/gstreamer/icons/hi128-apps-phonon-gstreamer.png b/gstreamer/icons/128-apps-phonon-gstreamer.png rename from gstreamer/icons/hi128-apps-phonon-gstreamer.png rename to gstreamer/icons/128-apps-phonon-gstreamer.png index d834ecb8811b27f9713737235ace9163985dd59b..d834ecb8811b27f9713737235ace9163985dd59b GIT binary patch literal 3059 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 Sc6|My17O-l(0Wbh`2PTsXtELj literal 3059 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 Sc6|My17O-l(0Wbh`2PTsXtELj diff --git a/gstreamer/icons/hi16-apps-phonon-gstreamer.png b/gstreamer/icons/16-apps-phonon-gstreamer.png rename from gstreamer/icons/hi16-apps-phonon-gstreamer.png rename to gstreamer/icons/16-apps-phonon-gstreamer.png index 441a3ef1cc0b75a8619472c60d56680760fe17a3..441a3ef1cc0b75a8619472c60d56680760fe17a3 GIT binary patch literal 462 zc$@*w0WtoGP))~-Se zsje;#{snd`bgy(MICgf?f+*V}wQE7%#*DDVmx z>CF5BiohpgT<4$E)$Q3{(zYR zEc6}7jZYENm_@|rwC6UE{z(rTYU~z@h2gZ7zO?;ZQUDfg?_rkXYWya!DwX(5YRyZk zw_1f-jOB~2l5qMI+OH*j%=7U3hT9PGFE*LYxWt1_|I#K;5+-b(fY(k=W;c5&?PgG| zZWYeYC+BRD0v^)&hzl&HmkRWcvt-YSMHnO3f>HS_9xK8 literal 462 zc$@*w0WtoGP))~-Se zsje;#{snd`bgy(MICgf?f+*V}wQE7%#*DDVmx z>CF5BiohpgT<4$E)$Q3{(zYR zEc6}7jZYENm_@|rwC6UE{z(rTYU~z@h2gZ7zO?;ZQUDfg?_rkXYWya!DwX(5YRyZk zw_1f-jOB~2l5qMI+OH*j%=7U3hT9PGFE*LYxWt1_|I#K;5+-b(fY(k=W;c5&?PgG| zZWYeYC+BRD0v^)&hzl&HmkRWcvt-YSMHnO3f>HS_9xK8 diff --git a/gstreamer/icons/hi22-apps-phonon-gstreamer.png b/gstreamer/icons/22-apps-phonon-gstreamer.png rename from gstreamer/icons/hi22-apps-phonon-gstreamer.png rename to gstreamer/icons/22-apps-phonon-gstreamer.png index c78a582112b9d0371f2a25b8f5deebec340c157e..c78a582112b9d0371f2a25b8f5deebec340c157e GIT binary patch literal 621 zc$@)k0+RiSP))yTDkvygG(<~mY?D$F0->b} zZWI?mTq(GaM%*~1 z<(-9v<5wh&n~?#11)GuZ9Y?SF`WD~h^SN3&JsDnK52Yks2afuFBGc+{8yb539Fzf; zfg}9>Xv${1mpBE4Krcd}%B4afwcHX6G6?~Uj1+q-mB3juM!}N6X~5g`elp|U+FJPj z++6=gySiF-9E-gTdS1ET^Y~IM4u5C|>lpke`j@`VzZLuw(jdZPM>eF800000NkvXX Hu0mjf=)yTDkvygG(<~mY?D$F0->b} zZWI?mTq(GaM%*~1 z<(-9v<5wh&n~?#11)GuZ9Y?SF`WD~h^SN3&JsDnK52Yks2afuFBGc+{8yb539Fzf; zfg}9>Xv${1mpBE4Krcd}%B4afwcHX6G6?~Uj1+q-mB3juM!}N6X~5g`elp|U+FJPj z++6=gySiF-9E-gTdS1ET^Y~IM4u5C|>lpke`j@`VzZLuw(jdZPM>eF800000NkvXX Hu0mjf=OCuyyjW*a~DUh~OI=mqhel)R` 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 literal 1545 zc$@(V2KM=hP)NKjEIunWE>?Sh-3^K8 zJ3!nt1jHR6ZW;pO4iGmD0dWV2n}&e61H?^3K->Z1=JXS=Ze5aWwk4`^s(BzHIZ~+< z&UGNI!fX{_n0)|@kVt&M`1sol4jzppX;06Y6pLGchk$c|wS?g-b1hrFfJ|l?larf~ zwgBxvu-XG5up94pQ!2gA;9#+;eyP;CICnqNy+G?XpMFYnb31$Yj#U@_|EXMnB!b`} z%zh6v*VykE@B(JfVz!I@`;U}el}@)I-3;6YT*b+k>Ns#+6lWhQ6_8H1Bkcs%M$vQz z9|A*|y^C|Bm|X;146Fu{W!6sseT3oDQ3a?>KoGnE^hDLPMh+s~LO!35vS>NW<#-vh zS8#3svjL{2KIe=xN=TEKwNff&FuNRSJ#ayk0l(pC%r+5*Uq)TH_NTz9=kvXKTc%dl*Q}q0~`e zx6pG_HuazV_m$sGX18Tq##_eMo2*ah2Bz;dGkMj?_0EfcU`MbP<4KJ3>rnm^;622! zOh*k{4O|Fx08Ql%FzmIlrm^)yn}@!tyMUfQ_ncW=RQw27QrAY6;ep3nKW_c)xA&Dw zcY-xDv2?<@3AY{NGsHU{Ka^17i>XCZC7l_tLEUeHwUWu?R(Y?hy?6VbnkcTOA4xE_e=H@YJde*m`Ua$Tp~wbg@~H$th@TT7D3(zW1wLA_Kq+?dUX z#N(r*t$!UJK7XR7Aaf+LonTj2cro~1Gj&U>U|PsIoY-p^a1g9urh;>Xz`y7FjL)X7 zTj9RGesGz7#QAa1?}g;67PQDDpe00000NkvXXu0mjfeJItQ diff --git a/gstreamer/icons/CMakeLists.txt b/gstreamer/icons/CMakeLists.txt --- a/gstreamer/icons/CMakeLists.txt +++ b/gstreamer/icons/CMakeLists.txt @@ -1,2 +1,8 @@ -phonon_install_icons(${ICON_INSTALL_DIR}) -phonon_update_iconcache() +ecm_install_icons(ICONS + 128-apps-phonon-gstreamer.png + 16-apps-phonon-gstreamer.png + 22-apps-phonon-gstreamer.png + 48-apps-phonon-gstreamer.png + 64-apps-phonon-gstreamer.png + sc-apps-phonon-gstreamer.svg + DESTINATION ${ICON_INSTALL_DIR}) diff --git a/gstreamer/icons/hisc-apps-phonon-gstreamer.svgz b/gstreamer/icons/hisc-apps-phonon-gstreamer.svgz deleted file mode 100644 index 8ee215e6c8553a301aa6965bcb71c69ae6509cb8..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc$@n*Y}XR*qb;_Q2~n;XAXxmb7qF}>gB_}BKNlK%BEfioU(w}I&X@y-mZf` zKfDQbK)ODwi>zvDyAJ9mc)7V*{Sb!at*vdF^-a4ZzZA`_CGV>0*!5mSxS))(1$qDR zE&27~(6l}Iy*h5gcQv72_;EOMNfc#_ygHUuK@uLv`X@rdaC39B>h8BUgb+AbcgrGQ z2fMyMETiafY%AKd+o;GRTiLy>`!3>?N5L7MpW%6Hv%b8yd9&X)b?0~1-HQuwTing) z)9FM{(u24$CSoEIA_OAr9_v1P2%m3-kJq*e##jX18TsE(%MO`8;BSUc0@^jlHn(@! zXK8Kw==F!!vod6~=!*+8W&OF!vx9wh>LeU8knL@E$a337licsWC7v;6b6ZH_gZsO^b3Lqanu1W|@colY??eJtzX(Av(n_k)osu;m;Sqj5@F zArdV;VoKn$XmXbkx{(d^!2OS?z6~67tNB$m?|R^6wQ+GE3n4_#!*-J z$F3lr*1=dX-?29O5;kqQEnWS`jBKC*M1s(ZoeW z<@kIf0SJ$KT=Ks&G^YBwiSIGy;*A{lo7D_;4OFWrdqV z;<@Tn))0r|+~cm5uj!`|$eBpy!8xY{Ei%N}?V6Kwe;wRqRrkf5dTN@zo4kgLR15uF znS-d5Q7uhuzR)0^lnSMitDa$B7+=+3Uns9?_Sr+ZFQ05NQE@)(*tWQF!^+(W=c@q) zadYvkwo?kW=#Sxad>Pc8n_%m}zgAgqf5b-u6I{u75u(wUNmwd=!Z0~x{cbG9Vcgzf zY%NhrlFMg}2pp0-6}B6?Bu;U`pl8J*;kYC;t{Re)FrhIs3r0dNsT6V%#t@_=6!_|q zYF?%^<*I|Rgy14LlsvzIE53Tpb1OR z%a9{Trkr;I9zl`9z0udvaf3+J6cUeVDw1*a`V+O%^d>8p_7>b1AII%kT?dkxnRI??>I<32TBecB!jbh_8fN; z8-j8`)Tq+q>fcEaQsnv9B*d2_$dnqX90~3UOvFrrHbZ`6n()NsJyqP3fSY_?YNXw5 z(Ia26kbX6)u~`@eiBDO~Jte6xuGqLJV{R7c8kssujDHk(ktvdk^!w~5DQMAbUT6@m z{VB7S$G$sa%2I=alu$%KD#mvtki`xFcVp?O0aZjGUU2HtE4Awmov4Wb$Bl8^B%T`A oL$3As + + +image/svg+xml + + + + + + + + + + + + + \ No newline at end of file