From ec7075aa4c7216f84a328b98ab57aa01d43bf36d Mon Sep 17 00:00:00 2001 From: Stefan Saraev Date: Sat, 4 Jul 2015 22:30:20 +0300 Subject: [PATCH] binary addons:add visualization.projectm --- .../visualization.projectm/package.mk | 56 +++++++++++ ...anged-get-rid-of-DATAPATH-definition.patch | 94 +++++++++++++++++++ ...projectm-02-move-datapath-to-storage.patch | 25 +++++ tools/mkpkg/mkpkg_visualization.projectm | 43 +++++++++ 4 files changed, 218 insertions(+) create mode 100644 packages/mediacenter/kodi-binary-addons/visualization.projectm/package.mk create mode 100644 packages/mediacenter/kodi-binary-addons/visualization.projectm/patches/visualization.projectm-01-Revert-changed-get-rid-of-DATAPATH-definition.patch create mode 100644 packages/mediacenter/kodi-binary-addons/visualization.projectm/patches/visualization.projectm-02-move-datapath-to-storage.patch create mode 100755 tools/mkpkg/mkpkg_visualization.projectm diff --git a/packages/mediacenter/kodi-binary-addons/visualization.projectm/package.mk b/packages/mediacenter/kodi-binary-addons/visualization.projectm/package.mk new file mode 100644 index 0000000000..990d0ef81d --- /dev/null +++ b/packages/mediacenter/kodi-binary-addons/visualization.projectm/package.mk @@ -0,0 +1,56 @@ +################################################################################ +# This file is part of OpenELEC - http://www.openelec.tv +# Copyright (C) 2009-2014 Stephan Raue (stephan@openelec.tv) +# +# OpenELEC is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 2 of the License, or +# (at your option) any later version. +# +# OpenELEC is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with OpenELEC. If not, see . +################################################################################ + +PKG_NAME="visualization.projectm" +PKG_VERSION="87b9a6d" +PKG_REV="1" +PKG_ARCH="any" +PKG_LICENSE="GPL" +PKG_SITE="https://github.com/notspiff/visualization.projectm" +PKG_URL="$DISTRO_SRC/$PKG_NAME-$PKG_VERSION.tar.xz" +PKG_DEPENDS_TARGET="toolchain kodi-platform libprojectM" +PKG_PRIORITY="optional" +PKG_SECTION="" +PKG_SHORTDESC="visualization.projectm" +PKG_LONGDESC="visualization.projectm" +PKG_AUTORECONF="no" + +PKG_IS_ADDON="yes" +PKG_ADDON_TYPE="xbmc.player.musicviz" + +if [ "$OPENGL" = "no" ] ; then + exit 0 +fi + +pre_configure_target() { + export LDFLAGS=`echo $LDFLAGS | sed -e "s|-Wl,--as-needed||"` +} + +configure_target() { + cmake -DCMAKE_TOOLCHAIN_FILE=$CMAKE_CONF \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DCMAKE_MODULE_PATH=$SYSROOT_PREFIX/usr/lib/kodi \ + -DCMAKE_PREFIX_PATH=$SYSROOT_PREFIX/usr \ + .. +} + +addon() { + mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/ + cp -PR $PKG_BUILD/.install_pkg/usr/share/kodi/addons/$PKG_NAME/* $ADDON_BUILD/$PKG_ADDON_ID/ + cp -PL $PKG_BUILD/.install_pkg/usr/lib/kodi/addons/$PKG_NAME/*.so $ADDON_BUILD/$PKG_ADDON_ID/ +} diff --git a/packages/mediacenter/kodi-binary-addons/visualization.projectm/patches/visualization.projectm-01-Revert-changed-get-rid-of-DATAPATH-definition.patch b/packages/mediacenter/kodi-binary-addons/visualization.projectm/patches/visualization.projectm-01-Revert-changed-get-rid-of-DATAPATH-definition.patch new file mode 100644 index 0000000000..e0e1a8658f --- /dev/null +++ b/packages/mediacenter/kodi-binary-addons/visualization.projectm/patches/visualization.projectm-01-Revert-changed-get-rid-of-DATAPATH-definition.patch @@ -0,0 +1,94 @@ +From 79c3a7d5e2d3ae0274a7122246a6922b74e8cdaf Mon Sep 17 00:00:00 2001 +From: Stefan Saraev +Date: Sat, 4 Jul 2015 21:54:09 +0300 +Subject: [PATCH] Revert "changed: get rid of DATAPATH definition" + +This reverts commit 60467a6492adb32b7487274ceaec4f76c13eec1a. +--- + CMakeLists.txt | 2 ++ + src/Main.cpp | 28 +++------------------------- + 2 files changed, 5 insertions(+), 25 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 77bcb6e..d73d069 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -13,6 +13,8 @@ find_package(GLEW REQUIRED) + find_package(ProjectM REQUIRED) + + add_definitions(-DHAS_SDL_OPENGL) ++set(DATA_PATH "${CMAKE_INSTALL_PREFIX}/share/xbmc/addons/visualization.projectm/resources") ++add_definitions(-DDATAPATH="${DATA_PATH}") + + set(INCLUDES ${OpenGL_INCLUDE_DIR} + ${GLEW_INCLUDE_DIR} +diff --git a/src/Main.cpp b/src/Main.cpp +index 449cb85..81205dc 100644 +--- a/src/Main.cpp ++++ b/src/Main.cpp +@@ -55,7 +55,6 @@ d4rk@xbmc.org + + #include + #include +-#include + #include + #include "libprojectM/projectM.hpp" + #include +@@ -79,8 +78,6 @@ bool lastLockStatus; + int lastPresetIdx; + unsigned int lastLoggedPresetIdx; + +-ADDON::CHelper_libXBMC_addon *XBMC = NULL; +- + //-- Create ------------------------------------------------------------------- + // Called once when the visualisation is created by XBMC. Do any setup here. + //----------------------------------------------------------------------------- +@@ -89,15 +86,6 @@ extern "C" ADDON_STATUS ADDON_Create(void* hdl, void* props) + if (!props) + return ADDON_STATUS_UNKNOWN; + +- if (!XBMC) +- XBMC = new ADDON::CHelper_libXBMC_addon; +- +- if (!XBMC->RegisterMe(hdl)) +- { +- delete XBMC, XBMC=NULL; +- return ADDON_STATUS_PERMANENT_FAILURE; +- } +- + VIS_PROPS* visprops = (VIS_PROPS*)props; + + strcpy(g_visName, visprops->name); +@@ -109,13 +97,8 @@ extern "C" ADDON_STATUS ADDON_Create(void* hdl, void* props) + g_configPM.windowHeight = visprops->height; + g_configPM.aspectCorrection = true; + g_configPM.easterEgg = 0.0; +- char path[1024]; +- XBMC->GetSetting("__addonpath__", path); +- strcat(path,"/resources"); +- g_configPM.titleFontURL = path; +- g_configPM.titleFontURL += "/Vera.ttf"; +- g_configPM.menuFontURL = path; +- g_configPM.menuFontURL += "/VeraMono.ttf"; ++ g_configPM.titleFontURL = DATAPATH"/Vera.ttf"; ++ g_configPM.menuFontURL = DATAPATH"/VeraMono.ttf"; + lastLoggedPresetIdx = lastPresetIdx; + + return ADDON_STATUS_NEED_SAVEDSETTINGS; +@@ -351,12 +334,7 @@ void ChoosePresetPack(int pvalue) + { + g_UserPackFolder = false; + if (pvalue == 0) +- { +- char path[1024]; +- XBMC->GetSetting("__addonpath__", path); +- g_configPM.presetURL = path; +- g_configPM.presetURL += "/resources/presets"; +- } ++ g_configPM.presetURL = DATAPATH"/presets"; + else if (pvalue == 1) //User preset folder has been chosen + g_UserPackFolder = true; + } +-- +2.1.4 + diff --git a/packages/mediacenter/kodi-binary-addons/visualization.projectm/patches/visualization.projectm-02-move-datapath-to-storage.patch b/packages/mediacenter/kodi-binary-addons/visualization.projectm/patches/visualization.projectm-02-move-datapath-to-storage.patch new file mode 100644 index 0000000000..1942ab0eb4 --- /dev/null +++ b/packages/mediacenter/kodi-binary-addons/visualization.projectm/patches/visualization.projectm-02-move-datapath-to-storage.patch @@ -0,0 +1,25 @@ +From 8e396c0586e511b746e377f36817e32413b7c5aa Mon Sep 17 00:00:00 2001 +From: Stefan Saraev +Date: Sat, 4 Jul 2015 22:21:19 +0300 +Subject: [PATCH] move datapath to /storage + +--- + CMakeLists.txt | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index d73d069..1043f1a 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -13,7 +13,7 @@ find_package(GLEW REQUIRED) + find_package(ProjectM REQUIRED) + + add_definitions(-DHAS_SDL_OPENGL) +-set(DATA_PATH "${CMAKE_INSTALL_PREFIX}/share/xbmc/addons/visualization.projectm/resources") ++set(DATA_PATH "/storage/.kodi/addons/visualization.projectm/resources") + add_definitions(-DDATAPATH="${DATA_PATH}") + + set(INCLUDES ${OpenGL_INCLUDE_DIR} +-- +2.1.4 + diff --git a/tools/mkpkg/mkpkg_visualization.projectm b/tools/mkpkg/mkpkg_visualization.projectm new file mode 100755 index 0000000000..8aae31b53e --- /dev/null +++ b/tools/mkpkg/mkpkg_visualization.projectm @@ -0,0 +1,43 @@ +#!/bin/sh +################################################################################ +# This file is part of OpenELEC - http://www.openelec.tv +# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv) +# +# This Program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. +# +# This Program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with OpenELEC.tv; see the file COPYING. If not, write to +# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA. +# http://www.gnu.org/copyleft/gpl.html +################################################################################ + +echo "getting sources..." + if [ ! -d visualization.projectm.git ]; then + git clone https://github.com/notspiff/visualization.projectm.git visualization.projectm.git + fi + + cd visualization.projectm.git + git pull + GIT_REV=`git log -n1 --format=%h` + cd .. + +echo "copying sources..." + rm -rf visualization.projectm-$GIT_REV + cp -R visualization.projectm.git visualization.projectm-$GIT_REV + +echo "cleaning sources..." + rm -rf visualization.projectm-$GIT_REV/.git + +echo "packing sources..." + tar cvJf visualization.projectm-$GIT_REV.tar.xz visualization.projectm-$GIT_REV + +echo "remove temporary sourcedir..." + rm -rf visualization.projectm-$GIT_REV