mirror of
https://github.com/LibreELEC/LibreELEC.tv.git
synced 2025-07-29 05:36:47 +00:00
commit
1090f0d882
@ -2,8 +2,8 @@
|
||||
LIBREELEC_VERSION="devel"
|
||||
|
||||
# OS_VERSION: OS Version
|
||||
OS_VERSION="7.0"
|
||||
OS_VERSION="8.0"
|
||||
|
||||
# ADDON_VERSION: Addon version
|
||||
ADDON_VERSION="7.0"
|
||||
ADDON_VERSION="8.0"
|
||||
|
||||
|
@ -20,13 +20,13 @@
|
||||
# Mediacenter to use (kodi / no)
|
||||
MEDIACENTER="kodi"
|
||||
|
||||
# Skins to install (Confluence)
|
||||
# Skins to install (Estuary)
|
||||
# Space separated list is supported,
|
||||
# e.g. SKINS="Confluence"
|
||||
SKINS="Confluence"
|
||||
# e.g. SKINS="Estuary"
|
||||
SKINS="Estuary"
|
||||
|
||||
# Default Skin (Confluence)
|
||||
SKIN_DEFAULT="Confluence"
|
||||
# Default Skin (Estuary)
|
||||
SKIN_DEFAULT="Estuary"
|
||||
|
||||
# install extra subtitle Fonts for KODI (yes / no)
|
||||
KODI_EXTRA_FONTS="yes"
|
||||
|
@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="asplib"
|
||||
PKG_VERSION="2fac1bf"
|
||||
PKG_VERSION="da66f51"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
@ -1,20 +1,21 @@
|
||||
diff -Naur a/CMakeLists.txt b/CMakeLists.txt
|
||||
--- a/CMakeLists.txt 2016-01-12 22:24:43.000000000 +0100
|
||||
+++ b/CMakeLists.txt 2016-01-12 22:47:16.624139358 +0100
|
||||
@@ -1,64 +1,17 @@
|
||||
--- a/CMakeLists.txt 2016-03-09 15:16:52.000000000 -0800
|
||||
+++ b/CMakeLists.txt 2016-03-30 22:45:01.502582518 -0700
|
||||
@@ -1,46 +1,15 @@
|
||||
project(asplib)
|
||||
|
||||
cmake_minimum_required(VERSION 2.6)
|
||||
-enable_language(CXX)
|
||||
-
|
||||
|
||||
-set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${PROJECT_SOURCE_DIR})
|
||||
-
|
||||
-include(UseMultiArch.cmake)
|
||||
-include(cmake/UseMultiArch.cmake)
|
||||
include(cmake/asplib_helpers.cmake)
|
||||
|
||||
set(asplib_NAME asplib)
|
||||
set(asplib_DESCRIPTION "asplib (Achim's Signal Processing LIBrary), is a small and lightweight C++ library for digital signal processing.")
|
||||
-set(asplib_VERSION_MAJOR ${APP_VERSION_MAJOR})
|
||||
-set(asplib_VERSION_MINOR ${APP_VERSION_MINOR})
|
||||
-set(asplib_VERSION_MAJOR 0)
|
||||
-set(asplib_VERSION_MINOR 2)
|
||||
-set(asplib_VERSION_PATCH 0)
|
||||
-
|
||||
-if(NOT WIN32)
|
||||
@ -27,111 +28,65 @@ diff -Naur a/CMakeLists.txt b/CMakeLists.txt
|
||||
-
|
||||
-if(CMAKE_SYSTEM_NAME MATCHES "Windows")
|
||||
- set(CMAKE_CXX_FLAGS "-DTARGET_WINDOWS")
|
||||
- # Enable the orginization of projects with folders
|
||||
- set_property(GLOBAL PROPERTY USE_FOLDERS ON)
|
||||
-endif()
|
||||
-
|
||||
-#set(asplib_INCLUDE_DIRS ${TINYXML_INCLUDE_DIR} "${CMAKE_INSTALL_PREFIX}/include/kodi")
|
||||
-#set(asplib_LIBRARIES ${CMAKE_THREAD_LIBS_INIT} ${TINYXML_LIBRARIES})
|
||||
-
|
||||
-if (NOT WIN32)
|
||||
- add_definitions(-fPIC -g -O2)
|
||||
-endif()
|
||||
-
|
||||
-include_directories(${PROJECT_SOURCE_DIR}
|
||||
- ${PROJECT_SOURCE_DIR}/Biquads)
|
||||
-set(asplib_INCLUDE_DIRS ${PROJECT_SOURCE_DIR}
|
||||
- ${PROJECT_SOURCE_DIR}/Biquads
|
||||
- ${CMAKE_INSTALL_PREFIX}/include/asplib)
|
||||
-
|
||||
-include_directories(${asplib_INCLUDE_DIRS})
|
||||
|
||||
-set(SOURCES asplib_utils/computeDeviceInfo/cpuInfo.cpp
|
||||
- Biquads/Biquad_Native/asplib_Biquad_Native.cpp
|
||||
+set(SOURCES Biquads/Biquad_Native/asplib_Biquad_Native.cpp
|
||||
set(SOURCES Biquads/Biquad_Native/asplib_Biquad_Native.cpp
|
||||
Biquads/apslib_BiquadFactory.cpp)
|
||||
-
|
||||
+
|
||||
set(HEADERS interfaces/asplib_IBaseBiquad.h
|
||||
Biquads/apslib_BiquadFactory.h
|
||||
Biquads/Biquad_Native/asplib_Biquad_Native.h
|
||||
@@ -54,35 +23,13 @@
|
||||
asplib_utils/os/linux/linux_definitions.h
|
||||
asplib_utils/os/raspberry_pi/raspberry_pi_definitions.h
|
||||
asplib_utils/os/windows/windows_definitions.h)
|
||||
-
|
||||
-asplib_source_group("${SOURCES}")
|
||||
-asplib_source_group("${HEADERS}")
|
||||
|
||||
-set(HEADERS interfaces/asplib_IBaseBiquad.h
|
||||
- asplib_utils/constants_typedefs/asplib_constants.h
|
||||
- asplib_utils/constants_typedefs/asplib_typedefs.h
|
||||
- asplib_utils/os/asplib_base_os.h
|
||||
- asplib_utils/os/windows/windows_definitions.h
|
||||
- asplib_utils/os/linux/linux_definitions.h
|
||||
- asplib_utils/computeDeviceInfo/cpuInfo_types.h
|
||||
- asplib_utils/computeDeviceInfo/cpuInfo.h
|
||||
- Biquads/apslib_BiquadFactory.h
|
||||
- Biquads/Biquad_Native/asplib_Biquad_Native.h)
|
||||
-
|
||||
-
|
||||
-#include_directories(${TINYXML_INCLUDE_DIR} ${KODI_INCLUDE_DIR})
|
||||
-
|
||||
-add_library(asplib ${SOURCES} ${PLAT_SOURCES})
|
||||
-add_library(asplib ${SOURCES} ${HEADERS})
|
||||
-target_link_libraries(asplib ${asplib_LIBRARIES})
|
||||
-#set_target_properties(asplib PROPERTIES VERSION ${asplib_VERSION_MAJOR}.${asplib_VERSION_MINOR}.${asplib_VERSION_PATCH}
|
||||
-# SOVERSION ${asplib_VERSION_MAJOR}.0)
|
||||
+add_library(asplib STATIC ${SOURCES})
|
||||
-set_target_properties(asplib PROPERTIES VERSION ${asplib_VERSION_MAJOR}.${asplib_VERSION_MINOR}.${asplib_VERSION_PATCH}
|
||||
- SOVERSION ${asplib_VERSION_MAJOR}.0)
|
||||
+asplib_install_with_folder("${HEADERS}" ${CMAKE_INSTALL_PREFIX}/include/asplib)
|
||||
|
||||
+add_library(asplib STATIC ${SOURCES} ${HEADERS})
|
||||
|
||||
-install(TARGETS asplib DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
||||
+include_directories(${PROJECT_SOURCE_DIR}
|
||||
+ ${PROJECT_SOURCE_DIR}/Biquads)
|
||||
|
||||
install(DIRECTORY ${PROJECT_SOURCE_DIR}/interfaces/ DESTINATION ${CMAKE_INSTALL_PREFIX}/include/asplib/interfaces
|
||||
FILES_MATCHING PATTERN "*.h")
|
||||
@@ -66,8 +19,6 @@
|
||||
FILES_MATCHING PATTERN "*.h")
|
||||
install(DIRECTORY ${PROJECT_SOURCE_DIR}/asplib_utils/os/ DESTINATION ${CMAKE_INSTALL_PREFIX}/include/asplib/asplib_utils/os/
|
||||
FILES_MATCHING PATTERN "*.h")
|
||||
-install(DIRECTORY ${PROJECT_SOURCE_DIR}/asplib_utils/os/windows/ DESTINATION ${CMAKE_INSTALL_PREFIX}/include/asplib/asplib_utils/os/windows/
|
||||
- FILES_MATCHING PATTERN "*.h")
|
||||
install(DIRECTORY ${PROJECT_SOURCE_DIR}/asplib_utils/os/linux/ DESTINATION ${CMAKE_INSTALL_PREFIX}/include/asplib/asplib_utils/os/linux/
|
||||
FILES_MATCHING PATTERN "*.h")
|
||||
install(DIRECTORY ${PROJECT_SOURCE_DIR}/asplib_utils/computeDeviceInfo/ DESTINATION ${CMAKE_INSTALL_PREFIX}/include/asplib/asplib_utils/computeDeviceInfo/
|
||||
@@ -77,54 +28,4 @@
|
||||
install(DIRECTORY ${PROJECT_SOURCE_DIR}/Biquads/Biquad_Native/ DESTINATION ${CMAKE_INSTALL_PREFIX}/include/asplib/Biquads/Biquad_Native/
|
||||
FILES_MATCHING PATTERN "*.h")
|
||||
|
||||
-
|
||||
-# install(FILES interfaces/asplib_IBaseBiquad.h
|
||||
- # asplib_utils/constants_typedefs/asplib_constants.h
|
||||
- # asplib_utils/constants_typedefs/asplib_typedefs.h
|
||||
-
|
||||
- # DESTINATION include/asplib/asplib_utils/constants_typedefs/)
|
||||
-
|
||||
- # asplib_utils/os/asplib_base_os.h
|
||||
- # asplib_utils/os/windows/windows_definitions.h
|
||||
- # asplib_utils/os/linux/linux_definitions.h
|
||||
- # utils/computeDeviceInfo/cpuInfo_types.h
|
||||
- # utils/computeDeviceInfo/cpuInfo.h
|
||||
- # Biquads/apslib_BiquadFactory.h
|
||||
- # Biquads/Biquad_Native/asplib_Biquad_Native.h
|
||||
- # )
|
||||
-
|
||||
-# install(FILES interfaces/asplib_IBaseBiquad.h
|
||||
- # DESTINATION include/asplib/interfaces)
|
||||
-# install(FILES constants_typedefs/asplib_constants.h
|
||||
- # constants_typedefs/asplib_typedefs.h
|
||||
- # DESTINATION include/asplib/constants_typedefs)
|
||||
-# install(FILES utils/computeDeviceInfo/cpuInfo_types.h
|
||||
- # utils/computeDeviceInfo/cpuInfo.h
|
||||
- # DESTINATION include/asplib/utils)
|
||||
-# install(FILES Biquads/apslib_BiquadFactory.h
|
||||
- # Biquads/Biquad_Native/asplib_Biquad_Native.h
|
||||
- # DESTINATION include/asplib/Biquads)
|
||||
+install(TARGETS asplib DESTINATION ${CMAKE_INSTALL_PREFIX}/lib)
|
||||
asplib_install_with_folder("${HEADERS}" ${CMAKE_INSTALL_PREFIX}/include/asplib)
|
||||
-
|
||||
-#install(FILES ${HEADERS} DESTINATION ${CMAKE_INSTALL_PREFIX}/include/asplib)
|
||||
-
|
||||
-#IF(NOT WIN32)
|
||||
-IF(NOT WIN32)
|
||||
- # Pkgconfig
|
||||
- #include(PkgConfigHandler.cmake)
|
||||
- #configure_pc_file(kodiutilities kodiutilities.pc.in
|
||||
- # kodiutilities.pc
|
||||
- # ${CMAKE_INSTALL_PREFIX}
|
||||
- # ${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}
|
||||
- # ${CMAKE_INSTALL_PREFIX}/include)
|
||||
- include(cmake/PkgConfigHandler.cmake)
|
||||
- configure_pc_file(asplib asplib.pc.in
|
||||
- asplib.pc
|
||||
- ${CMAKE_INSTALL_PREFIX}
|
||||
- ${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}
|
||||
- ${CMAKE_INSTALL_PREFIX}/include)
|
||||
-
|
||||
-# install(FILES ${CMAKE_BINARY_DIR}/kodiutilities.pc
|
||||
-# DESTINATION ${CMAKE_INSTALL_LIBDIR_NOARCH}/pkgconfig)
|
||||
-#ENDIF(NOT WIN32)
|
||||
- install(FILES ${CMAKE_BINARY_DIR}/asplib.pc
|
||||
- DESTINATION ${CMAKE_INSTALL_LIBDIR_NOARCH}/pkgconfig)
|
||||
-ENDIF(NOT WIN32)
|
||||
-
|
||||
-# config mode
|
||||
-#configure_file (kodiutilities-config.cmake.in
|
||||
-# kodiutilities-config.cmake @ONLY)
|
||||
-#install(FILES ${CMAKE_BINARY_DIR}/kodiutilities-config.cmake
|
||||
-# DESTINATION ${CMAKE_INSTALL_LIBDIR_NOARCH}/kodiutilities)
|
||||
-
|
||||
-# Quell warnings with in-tree builds
|
||||
-#set(KODI_BUILD_DIR ${KODI_BUILD_DIR})
|
||||
+install(TARGETS asplib DESTINATION ${CMAKE_INSTALL_PREFIX}/lib)
|
||||
-configure_file(asplib-config.cmake.in
|
||||
- asplib-config.cmake @ONLY)
|
||||
-install(FILES ${CMAKE_BINARY_DIR}/asplib-config.cmake
|
||||
- DESTINATION ${CMAKE_INSTALL_LIBDIR_NOARCH}/asplib)
|
||||
|
@ -17,14 +17,13 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="libcec"
|
||||
PKG_VERSION="3.0.1"
|
||||
PKG_VERSION="6d68d21"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="http://libcec.pulse-eight.com/"
|
||||
PKG_URL="https://github.com/Pulse-Eight/libcec/archive/$PKG_NAME-$PKG_VERSION.tar.gz"
|
||||
PKG_SOURCE_DIR="$PKG_NAME-$PKG_NAME-$PKG_VERSION"
|
||||
PKG_DEPENDS_TARGET="toolchain systemd lockdev platform"
|
||||
PKG_URL="https://github.com/Pulse-Eight/libcec/archive/$PKG_VERSION.tar.gz"
|
||||
PKG_DEPENDS_TARGET="toolchain systemd lockdev p8-platform"
|
||||
PKG_PRIORITY="optional"
|
||||
PKG_SECTION="system"
|
||||
PKG_SHORTDESC="libCEC is an open-source dual licensed library designed for communicating with the Pulse-Eight USB - CEC Adaptor"
|
||||
|
@ -820,13 +820,13 @@ index 828cdb2..8b47795 100644
|
||||
--- a/src/libcec/cmake/CheckPlatformSupport.cmake
|
||||
+++ b/src/libcec/cmake/CheckPlatformSupport.cmake
|
||||
@@ -8,6 +8,7 @@
|
||||
# HAVE_RANDR 1 if xrandr is supported
|
||||
# HAVE_LIBUDEV 1 if udev is supported
|
||||
# HAVE_RPI_API 1 if Raspberry Pi is supported
|
||||
+# HAVE_IMX_API 1 if i.MX is supported
|
||||
# HAVE_TDA995X_API 1 if TDA995X is supported
|
||||
# HAVE_EXYNOS_API 1 if Exynos is supported
|
||||
# HAVE_P8_USB_DETECT 1 if Pulse-Eight devices can be auto-detected
|
||||
# HAVE_RANDR 1 if xrandr is supported
|
||||
# HAVE_LIBUDEV 1 if udev is supported
|
||||
# HAVE_RPI_API 1 if Raspberry Pi is supported
|
||||
+# HAVE_IMX_API 1 if i.MX is supported
|
||||
# HAVE_TDA995X_API 1 if TDA995X is supported
|
||||
# HAVE_EXYNOS_API 1 if Exynos is supported
|
||||
# HAVE_P8_USB_DETECT 1 if Pulse-Eight devices can be auto-detected
|
||||
@@ -87,6 +88,15 @@ else()
|
||||
list(APPEND CEC_SOURCES ${CEC_SOURCES_ADAPTER_RPI})
|
||||
endif()
|
||||
|
@ -1,859 +0,0 @@
|
||||
From ec982e9800ae312972d306b67779215a2add6cde Mon Sep 17 00:00:00 2001
|
||||
From: popcornmix <popcornmix@gmail.com>
|
||||
Date: Fri, 24 Oct 2014 13:45:21 +0100
|
||||
Subject: [PATCH 1/6] Make released key polling wait for exact time until key
|
||||
gets released
|
||||
|
||||
---
|
||||
src/libcec/CECClient.cpp | 16 ++++++++++++++--
|
||||
src/libcec/CECClient.h | 2 +-
|
||||
src/libcec/CECProcessor.cpp | 8 +++++---
|
||||
src/libcec/LibCEC.cpp | 10 ++++++++--
|
||||
src/libcec/LibCEC.h | 4 +++-
|
||||
5 files changed, 31 insertions(+), 9 deletions(-)
|
||||
|
||||
diff --git a/src/libcec/CECClient.cpp b/src/libcec/CECClient.cpp
|
||||
index 35c2d3e..e307c0e 100644
|
||||
--- a/src/libcec/CECClient.cpp
|
||||
+++ b/src/libcec/CECClient.cpp
|
||||
@@ -1067,7 +1067,7 @@ void CCECClient::SetCurrentButton(const cec_user_control_code iButtonCode)
|
||||
AddKey(key);
|
||||
}
|
||||
|
||||
-void CCECClient::CheckKeypressTimeout(void)
|
||||
+uint16_t CCECClient::CheckKeypressTimeout(void)
|
||||
{
|
||||
cec_keypress key;
|
||||
|
||||
@@ -1091,12 +1091,24 @@ void CCECClient::CheckKeypressTimeout(void)
|
||||
}
|
||||
else
|
||||
{
|
||||
- return;
|
||||
+ // time when this keypress will be released and we'd like to be called again
|
||||
+ unsigned int timeout = CEC_PROCESSOR_SIGNAL_WAIT_TIME;
|
||||
+ if (m_iCurrentButton != CEC_USER_CONTROL_CODE_UNKNOWN && m_iCurrentButton == comboKey && iTimeoutMs > 0)
|
||||
+ timeout = iTimeoutMs - (iNow - m_buttontime) + 1;
|
||||
+ else if (m_iCurrentButton != CEC_USER_CONTROL_CODE_UNKNOWN && m_iCurrentButton != comboKey)
|
||||
+ timeout = CEC_BUTTON_TIMEOUT - (iNow - m_buttontime) + 1;
|
||||
+ if (timeout > CEC_PROCESSOR_SIGNAL_WAIT_TIME)
|
||||
+ {
|
||||
+ LIB_CEC->AddLog(CEC_LOG_ERROR, "Unexpected timeout: %d (%.3f %.3f %.3f) k:%02x", timeout, iNow*1e-3, m_buttontime*1e-3, CEC_BUTTON_TIMEOUT*1e-3, m_iCurrentButton);
|
||||
+ timeout = CEC_PROCESSOR_SIGNAL_WAIT_TIME;
|
||||
+ }
|
||||
+ return timeout;
|
||||
}
|
||||
}
|
||||
|
||||
LIB_CEC->AddLog(CEC_LOG_DEBUG, "key auto-released: %s (%1x)", ToString(key.keycode), key.keycode);
|
||||
QueueAddKey(key);
|
||||
+ return CEC_PROCESSOR_SIGNAL_WAIT_TIME;
|
||||
}
|
||||
|
||||
bool CCECClient::EnableCallbacks(void *cbParam, ICECCallbacks *callbacks)
|
||||
diff --git a/src/libcec/CECClient.h b/src/libcec/CECClient.h
|
||||
index 12f8a3b..c9ce5e3 100644
|
||||
--- a/src/libcec/CECClient.h
|
||||
+++ b/src/libcec/CECClient.h
|
||||
@@ -272,7 +272,7 @@ namespace CEC
|
||||
virtual void AddKey(bool bSendComboKey = false);
|
||||
virtual void AddKey(const cec_keypress &key);
|
||||
virtual void SetCurrentButton(const cec_user_control_code iButtonCode);
|
||||
- virtual void CheckKeypressTimeout(void);
|
||||
+ virtual uint16_t CheckKeypressTimeout(void);
|
||||
virtual void SourceActivated(const cec_logical_address logicalAddress);
|
||||
virtual void SourceDeactivated(const cec_logical_address logicalAddress);
|
||||
|
||||
diff --git a/src/libcec/CECProcessor.cpp b/src/libcec/CECProcessor.cpp
|
||||
index 99f71aa..604b950 100644
|
||||
--- a/src/libcec/CECProcessor.cpp
|
||||
+++ b/src/libcec/CECProcessor.cpp
|
||||
@@ -52,7 +52,6 @@
|
||||
using namespace CEC;
|
||||
using namespace PLATFORM;
|
||||
|
||||
-#define CEC_PROCESSOR_SIGNAL_WAIT_TIME 1000
|
||||
#define ACTIVE_SOURCE_CHECK_INTERVAL 500
|
||||
#define TV_PRESENT_CHECK_INTERVAL 30000
|
||||
|
||||
@@ -260,6 +259,7 @@ bool CCECProcessor::OnCommandReceived(const cec_command &command)
|
||||
|
||||
void *CCECProcessor::Process(void)
|
||||
{
|
||||
+ uint16_t timeout = CEC_PROCESSOR_SIGNAL_WAIT_TIME;
|
||||
m_libcec->AddLog(CEC_LOG_DEBUG, "processor thread started");
|
||||
|
||||
if (!m_connCheck)
|
||||
@@ -274,13 +274,13 @@ void *CCECProcessor::Process(void)
|
||||
while (!IsStopped() && m_communication->IsOpen())
|
||||
{
|
||||
// wait for a new incoming command, and process it
|
||||
- if (m_inBuffer.Pop(command, CEC_PROCESSOR_SIGNAL_WAIT_TIME))
|
||||
+ if (m_inBuffer.Pop(command, timeout))
|
||||
ProcessCommand(command);
|
||||
|
||||
if (CECInitialised() && !IsStopped())
|
||||
{
|
||||
// check clients for keypress timeouts
|
||||
- m_libcec->CheckKeypressTimeout();
|
||||
+ timeout = m_libcec->CheckKeypressTimeout();
|
||||
|
||||
// check if we need to replace handlers
|
||||
ReplaceHandlers();
|
||||
@@ -311,6 +311,8 @@ void *CCECProcessor::Process(void)
|
||||
tvPresentCheck.Init(TV_PRESENT_CHECK_INTERVAL);
|
||||
}
|
||||
}
|
||||
+ else
|
||||
+ timeout = CEC_PROCESSOR_SIGNAL_WAIT_TIME;
|
||||
}
|
||||
|
||||
return NULL;
|
||||
diff --git a/src/libcec/LibCEC.cpp b/src/libcec/LibCEC.cpp
|
||||
index af36b79..5ccb8dd 100644
|
||||
--- a/src/libcec/LibCEC.cpp
|
||||
+++ b/src/libcec/LibCEC.cpp
|
||||
@@ -361,11 +361,17 @@ bool CLibCEC::IsValidPhysicalAddress(uint16_t iPhysicalAddress)
|
||||
iPhysicalAddress <= CEC_MAX_PHYSICAL_ADDRESS;
|
||||
}
|
||||
|
||||
-void CLibCEC::CheckKeypressTimeout(void)
|
||||
+uint16_t CLibCEC::CheckKeypressTimeout(void)
|
||||
{
|
||||
+ uint16_t timeout = CEC_PROCESSOR_SIGNAL_WAIT_TIME;
|
||||
// check all clients
|
||||
for (std::vector<CECClientPtr>::iterator it = m_clients.begin(); it != m_clients.end(); it++)
|
||||
- (*it)->CheckKeypressTimeout();
|
||||
+ {
|
||||
+ uint16_t t = (*it)->CheckKeypressTimeout();
|
||||
+ if (t < timeout)
|
||||
+ timeout = t;
|
||||
+ }
|
||||
+ return timeout;
|
||||
}
|
||||
|
||||
void CLibCEC::AddLog(const cec_log_level level, const char *strFormat, ...)
|
||||
diff --git a/src/libcec/LibCEC.h b/src/libcec/LibCEC.h
|
||||
index 6d9a229..d9d1e7b 100644
|
||||
--- a/src/libcec/LibCEC.h
|
||||
+++ b/src/libcec/LibCEC.h
|
||||
@@ -39,6 +39,8 @@
|
||||
#include "CECTypeUtils.h"
|
||||
#include <memory>
|
||||
|
||||
+#define CEC_PROCESSOR_SIGNAL_WAIT_TIME 1000
|
||||
+
|
||||
namespace CEC
|
||||
{
|
||||
class CAdapterCommunication;
|
||||
@@ -125,7 +127,7 @@ namespace CEC
|
||||
|
||||
void AddLog(const cec_log_level level, const char *strFormat, ...);
|
||||
void AddCommand(const cec_command &command);
|
||||
- void CheckKeypressTimeout(void);
|
||||
+ uint16_t CheckKeypressTimeout(void);
|
||||
void Alert(const libcec_alert type, const libcec_parameter ¶m);
|
||||
|
||||
static bool IsValidPhysicalAddress(uint16_t iPhysicalAddress);
|
||||
--
|
||||
1.9.1
|
||||
|
||||
|
||||
From 41f0f3ec9ac136da3565c96fd5a7075499f3938d Mon Sep 17 00:00:00 2001
|
||||
From: popcornmix <popcornmix@gmail.com>
|
||||
Date: Fri, 24 Oct 2014 13:51:34 +0100
|
||||
Subject: [PATCH 2/6] Keep track of time since initial button press and last
|
||||
button update
|
||||
|
||||
---
|
||||
src/libcec/CECClient.cpp | 44 +++++++++++++++++++++++++++-----------------
|
||||
src/libcec/CECClient.h | 3 ++-
|
||||
2 files changed, 29 insertions(+), 18 deletions(-)
|
||||
|
||||
diff --git a/src/libcec/CECClient.cpp b/src/libcec/CECClient.cpp
|
||||
index e307c0e..e7935b9 100644
|
||||
--- a/src/libcec/CECClient.cpp
|
||||
+++ b/src/libcec/CECClient.cpp
|
||||
@@ -54,7 +54,8 @@ CCECClient::CCECClient(CCECProcessor *processor, const libcec_configuration &con
|
||||
m_bInitialised(false),
|
||||
m_bRegistered(false),
|
||||
m_iCurrentButton(CEC_USER_CONTROL_CODE_UNKNOWN),
|
||||
- m_buttontime(0),
|
||||
+ m_initialButtontime(0),
|
||||
+ m_updateButtontime(0),
|
||||
m_iPreventForwardingPowerOffCommand(0),
|
||||
m_iLastKeypressTime(0)
|
||||
{
|
||||
@@ -981,9 +982,10 @@ void CCECClient::AddKey(bool bSendComboKey /* = false */)
|
||||
CLockObject lock(m_mutex);
|
||||
if (m_iCurrentButton != CEC_USER_CONTROL_CODE_UNKNOWN)
|
||||
{
|
||||
- key.duration = (unsigned int) (GetTimeMs() - m_buttontime);
|
||||
+ unsigned int duration = (unsigned int) (GetTimeMs() - m_updateButtontime);
|
||||
+ key.duration = (unsigned int) (GetTimeMs() - m_initialButtontime);
|
||||
|
||||
- if (key.duration > m_configuration.iComboKeyTimeoutMs ||
|
||||
+ if (duration > m_configuration.iComboKeyTimeoutMs ||
|
||||
m_configuration.iComboKeyTimeoutMs == 0 ||
|
||||
m_iCurrentButton != m_configuration.comboKey ||
|
||||
bSendComboKey)
|
||||
@@ -991,14 +993,15 @@ void CCECClient::AddKey(bool bSendComboKey /* = false */)
|
||||
key.keycode = m_iCurrentButton;
|
||||
|
||||
m_iCurrentButton = CEC_USER_CONTROL_CODE_UNKNOWN;
|
||||
- m_buttontime = 0;
|
||||
+ m_initialButtontime = 0;
|
||||
+ m_updateButtontime = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (key.keycode != CEC_USER_CONTROL_CODE_UNKNOWN)
|
||||
{
|
||||
- LIB_CEC->AddLog(CEC_LOG_DEBUG, "key released: %s (%1x)", ToString(key.keycode), key.keycode);
|
||||
+ LIB_CEC->AddLog(CEC_LOG_DEBUG, "key released: %s (%1x) D:%dms", ToString(key.keycode), key.keycode, key.duration);
|
||||
QueueAddKey(key);
|
||||
}
|
||||
}
|
||||
@@ -1012,7 +1015,7 @@ void CCECClient::AddKey(const cec_keypress &key)
|
||||
AddKey();
|
||||
return;
|
||||
}
|
||||
-
|
||||
+ bool isrepeat = false;
|
||||
cec_keypress transmitKey(key);
|
||||
cec_user_control_code comboKey(m_configuration.clientVersion >= LIBCEC_VERSION_TO_UINT(2, 0, 5) ?
|
||||
m_configuration.comboKey : CEC_USER_CONTROL_CODE_STOP);
|
||||
@@ -1035,22 +1038,27 @@ void CCECClient::AddKey(const cec_keypress &key)
|
||||
AddKey(true);
|
||||
}
|
||||
|
||||
+ LIB_CEC->AddLog(CEC_LOG_DEBUG, "key pressed: %s (%1x) current(%lx) duration(%d)", ToString(transmitKey.keycode), transmitKey.keycode, m_iCurrentButton, key.duration);
|
||||
+
|
||||
if (m_iCurrentButton == key.keycode)
|
||||
{
|
||||
- m_buttontime = GetTimeMs();
|
||||
+ m_updateButtontime = GetTimeMs();
|
||||
+ isrepeat = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
- AddKey();
|
||||
+ if (m_iCurrentButton != transmitKey.keycode)
|
||||
+ AddKey();
|
||||
if (key.duration == 0)
|
||||
{
|
||||
m_iCurrentButton = transmitKey.keycode;
|
||||
- m_buttontime = m_iCurrentButton == CEC_USER_CONTROL_CODE_UNKNOWN || key.duration > 0 ? 0 : GetTimeMs();
|
||||
+ m_initialButtontime = m_iCurrentButton == CEC_USER_CONTROL_CODE_UNKNOWN || key.duration > 0 ? 0 : GetTimeMs();
|
||||
+ m_updateButtontime = m_initialButtontime;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
- if (key.keycode != comboKey || key.duration > 0)
|
||||
+ if (!isrepeat && (key.keycode != comboKey || key.duration > 0))
|
||||
{
|
||||
LIB_CEC->AddLog(CEC_LOG_DEBUG, "key pressed: %s (%1x)", ToString(transmitKey.keycode), transmitKey.keycode);
|
||||
QueueAddKey(transmitKey);
|
||||
@@ -1074,32 +1082,34 @@ uint16_t CCECClient::CheckKeypressTimeout(void)
|
||||
{
|
||||
CLockObject lock(m_mutex);
|
||||
uint64_t iNow = GetTimeMs();
|
||||
+ LIB_CEC->AddLog(CEC_LOG_DEBUG, "%s T:%.3f", __FUNCTION__, iNow*1e-3);
|
||||
cec_user_control_code comboKey(m_configuration.clientVersion >= LIBCEC_VERSION_TO_UINT(2, 0, 5) ?
|
||||
m_configuration.comboKey : CEC_USER_CONTROL_CODE_STOP);
|
||||
uint32_t iTimeoutMs(m_configuration.clientVersion >= LIBCEC_VERSION_TO_UINT(2, 0, 5) ?
|
||||
m_configuration.iComboKeyTimeoutMs : CEC_DEFAULT_COMBO_TIMEOUT_MS);
|
||||
|
||||
if (m_iCurrentButton != CEC_USER_CONTROL_CODE_UNKNOWN &&
|
||||
- ((m_iCurrentButton == comboKey && iTimeoutMs > 0 && iNow - m_buttontime > iTimeoutMs) ||
|
||||
- (m_iCurrentButton != comboKey && iNow - m_buttontime > CEC_BUTTON_TIMEOUT)))
|
||||
+ ((m_iCurrentButton == comboKey && iTimeoutMs > 0 && iNow - m_updateButtontime > iTimeoutMs) ||
|
||||
+ (m_iCurrentButton != comboKey && iNow - m_updateButtontime > CEC_BUTTON_TIMEOUT)))
|
||||
{
|
||||
- key.duration = (unsigned int) (iNow - m_buttontime);
|
||||
+ key.duration = (unsigned int) (iNow - m_initialButtontime);
|
||||
key.keycode = m_iCurrentButton;
|
||||
|
||||
m_iCurrentButton = CEC_USER_CONTROL_CODE_UNKNOWN;
|
||||
- m_buttontime = 0;
|
||||
+ m_initialButtontime = 0;
|
||||
+ m_updateButtontime = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
// time when this keypress will be released and we'd like to be called again
|
||||
unsigned int timeout = CEC_PROCESSOR_SIGNAL_WAIT_TIME;
|
||||
if (m_iCurrentButton != CEC_USER_CONTROL_CODE_UNKNOWN && m_iCurrentButton == comboKey && iTimeoutMs > 0)
|
||||
- timeout = iTimeoutMs - (iNow - m_buttontime) + 1;
|
||||
+ timeout = iTimeoutMs - (iNow - m_updateButtontime) + 1;
|
||||
else if (m_iCurrentButton != CEC_USER_CONTROL_CODE_UNKNOWN && m_iCurrentButton != comboKey)
|
||||
- timeout = CEC_BUTTON_TIMEOUT - (iNow - m_buttontime) + 1;
|
||||
+ timeout = CEC_BUTTON_TIMEOUT - (iNow - m_updateButtontime) + 1;
|
||||
if (timeout > CEC_PROCESSOR_SIGNAL_WAIT_TIME)
|
||||
{
|
||||
- LIB_CEC->AddLog(CEC_LOG_ERROR, "Unexpected timeout: %d (%.3f %.3f %.3f) k:%02x", timeout, iNow*1e-3, m_buttontime*1e-3, CEC_BUTTON_TIMEOUT*1e-3, m_iCurrentButton);
|
||||
+ LIB_CEC->AddLog(CEC_LOG_ERROR, "Unexpected timeout: %d (%.3f %.3f %.3f) k:%02x", timeout, iNow*1e-3, m_updateButtontime*1e-3, CEC_BUTTON_TIMEOUT*1e-3, m_iCurrentButton);
|
||||
timeout = CEC_PROCESSOR_SIGNAL_WAIT_TIME;
|
||||
}
|
||||
return timeout;
|
||||
diff --git a/src/libcec/CECClient.h b/src/libcec/CECClient.h
|
||||
index c9ce5e3..611c68b 100644
|
||||
--- a/src/libcec/CECClient.h
|
||||
+++ b/src/libcec/CECClient.h
|
||||
@@ -404,7 +404,8 @@ namespace CEC
|
||||
PLATFORM::CMutex m_mutex; /**< mutex for changes to this instance */
|
||||
PLATFORM::CMutex m_cbMutex; /**< mutex that is held when doing anything with callbacks */
|
||||
cec_user_control_code m_iCurrentButton; /**< the control code of the button that's currently held down (if any) */
|
||||
- int64_t m_buttontime; /**< the timestamp when the button was pressed (in seconds since epoch), or 0 if none was pressed. */
|
||||
+ int64_t m_initialButtontime; /**< the timestamp when the button was initially pressed (in seconds since epoch), or 0 if none was pressed. */
|
||||
+ int64_t m_updateButtontime; /**< the timestamp when the button was updated (in seconds since epoch), or 0 if none was pressed. */
|
||||
int64_t m_iPreventForwardingPowerOffCommand; /**< prevent forwarding standby commands until this time */
|
||||
int64_t m_iLastKeypressTime; /**< last time a key press was sent to the client */
|
||||
cec_keypress m_lastKeypress; /**< the last key press that was sent to the client */
|
||||
--
|
||||
1.9.1
|
||||
|
||||
|
||||
From 273ead6980b69eddf98810eb1eb33d94a7d74fce Mon Sep 17 00:00:00 2001
|
||||
From: popcornmix <popcornmix@gmail.com>
|
||||
Date: Tue, 28 Oct 2014 00:09:18 +0000
|
||||
Subject: [PATCH 3/6] Support repeating button presses with configurable repeat
|
||||
rate
|
||||
|
||||
---
|
||||
include/cectypes.h | 6 ++
|
||||
src/libcec/CECClient.cpp | 100 +++++++++++++++++++----
|
||||
src/libcec/CECClient.h | 6 +-
|
||||
src/libcec/implementations/CECCommandHandler.cpp | 2 +-
|
||||
4 files changed, 96 insertions(+), 18 deletions(-)
|
||||
|
||||
diff --git a/include/cectypes.h b/include/cectypes.h
|
||||
index acff259..8f098ef 100644
|
||||
--- a/include/cectypes.h
|
||||
+++ b/include/cectypes.h
|
||||
@@ -1493,6 +1493,8 @@ struct libcec_configuration
|
||||
XXX changed meaning in 2.2.0 to not break binary compatibility. next major (3.0) release will fix it in a nicer way */
|
||||
cec_user_control_code comboKey; /*!< key code that initiates combo keys. defaults to CEC_USER_CONTROL_CODE_F1_BLUE. CEC_USER_CONTROL_CODE_UNKNOWN to disable. added in 2.0.5 */
|
||||
uint32_t iComboKeyTimeoutMs; /*!< timeout until the combo key is sent as normal keypress */
|
||||
+ uint32_t iButtonRepeatRateMs; /*!< rate at which buttons autorepeat. 0 means rely on CEC device */
|
||||
+ uint32_t iButtonReleaseDelayMs;/*!< duration after last update until a button is considered released */
|
||||
|
||||
#ifdef __cplusplus
|
||||
libcec_configuration(void) { Clear(); }
|
||||
@@ -1527,6 +1529,8 @@ struct libcec_configuration
|
||||
cecVersion == other.cecVersion &&
|
||||
adapterType == other.adapterType &&
|
||||
iDoubleTapTimeout50Ms == other.iDoubleTapTimeout50Ms &&
|
||||
+ iButtonRepeatRateMs == other.iButtonRepeatRateMs &&
|
||||
+ iButtonReleaseDelayMs == other.iButtonReleaseDelayMs &&
|
||||
(other.clientVersion <= LIBCEC_VERSION_TO_UINT(2, 0, 4) || comboKey == other.comboKey) &&
|
||||
(other.clientVersion <= LIBCEC_VERSION_TO_UINT(2, 0, 4) || iComboKeyTimeoutMs == other.iComboKeyTimeoutMs) &&
|
||||
(other.clientVersion < LIBCEC_VERSION_TO_UINT(2, 1, 0) || bPowerOnScreensaver == other.bPowerOnScreensaver));
|
||||
@@ -1567,6 +1571,8 @@ struct libcec_configuration
|
||||
iDoubleTapTimeout50Ms = CEC_DOUBLE_TAP_TIMEOUT_50_MS;
|
||||
comboKey = CEC_USER_CONTROL_CODE_STOP;
|
||||
iComboKeyTimeoutMs = CEC_DEFAULT_COMBO_TIMEOUT_MS;
|
||||
+ iButtonRepeatRateMs = 0;
|
||||
+ iButtonReleaseDelayMs = CEC_BUTTON_TIMEOUT;
|
||||
|
||||
memset(strDeviceName, 0, 13);
|
||||
deviceTypes.Clear();
|
||||
diff --git a/src/libcec/CECClient.cpp b/src/libcec/CECClient.cpp
|
||||
index e7935b9..598628d 100644
|
||||
--- a/src/libcec/CECClient.cpp
|
||||
+++ b/src/libcec/CECClient.cpp
|
||||
@@ -56,6 +56,10 @@ CCECClient::CCECClient(CCECProcessor *processor, const libcec_configuration &con
|
||||
m_iCurrentButton(CEC_USER_CONTROL_CODE_UNKNOWN),
|
||||
m_initialButtontime(0),
|
||||
m_updateButtontime(0),
|
||||
+ m_repeatButtontime(0),
|
||||
+ m_releaseButtontime(0),
|
||||
+ m_pressedButtoncount(0),
|
||||
+ m_releasedButtoncount(0),
|
||||
m_iPreventForwardingPowerOffCommand(0),
|
||||
m_iLastKeypressTime(0)
|
||||
{
|
||||
@@ -851,6 +855,9 @@ bool CCECClient::GetCurrentConfiguration(libcec_configuration &configuration)
|
||||
configuration.bMonitorOnly = m_configuration.bMonitorOnly;
|
||||
configuration.cecVersion = m_configuration.cecVersion;
|
||||
configuration.adapterType = m_configuration.adapterType;
|
||||
+ configuration.iDoubleTapTimeout50Ms = m_configuration.iDoubleTapTimeout50Ms;
|
||||
+ configuration.iButtonRepeatRateMs = m_configuration.iButtonRepeatRateMs;
|
||||
+ configuration.iButtonReleaseDelayMs = m_configuration.iButtonReleaseDelayMs;
|
||||
|
||||
return true;
|
||||
}
|
||||
@@ -894,6 +901,9 @@ bool CCECClient::SetConfiguration(const libcec_configuration &configuration)
|
||||
m_configuration.cecVersion = configuration.cecVersion;
|
||||
m_configuration.adapterType = configuration.adapterType;
|
||||
m_configuration.iDoubleTapTimeout50Ms = configuration.iDoubleTapTimeout50Ms;
|
||||
+ m_configuration.iButtonRepeatRateMs = configuration.iButtonRepeatRateMs;
|
||||
+ m_configuration.iButtonReleaseDelayMs = configuration.iButtonReleaseDelayMs;
|
||||
+
|
||||
m_configuration.deviceTypes.Add(configuration.deviceTypes[0]);
|
||||
|
||||
if (m_configuration.clientVersion >= LIBCEC_VERSION_TO_UINT(2, 0, 5))
|
||||
@@ -950,6 +960,7 @@ bool CCECClient::SetConfiguration(const libcec_configuration &configuration)
|
||||
primary->ActivateSource();
|
||||
}
|
||||
|
||||
+ LIB_CEC->AddLog(CEC_LOG_DEBUG, "%s: %d:%d:%d", __FUNCTION__, DoubleTapTimeoutMS(), m_configuration.iButtonRepeatRateMs, m_configuration.iButtonReleaseDelayMs);
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -973,11 +984,15 @@ void CCECClient::AddCommand(const cec_command &command)
|
||||
}
|
||||
}
|
||||
|
||||
-void CCECClient::AddKey(bool bSendComboKey /* = false */)
|
||||
+void CCECClient::AddKey(bool bSendComboKey /* = false */, bool bButtonRelease /* = false */)
|
||||
{
|
||||
cec_keypress key;
|
||||
key.keycode = CEC_USER_CONTROL_CODE_UNKNOWN;
|
||||
|
||||
+ // we ignore button releases when supporting repeating keys
|
||||
+ if (bButtonRelease && m_configuration.iButtonRepeatRateMs && m_configuration.iButtonReleaseDelayMs)
|
||||
+ return;
|
||||
+
|
||||
{
|
||||
CLockObject lock(m_mutex);
|
||||
if (m_iCurrentButton != CEC_USER_CONTROL_CODE_UNKNOWN)
|
||||
@@ -995,6 +1010,10 @@ void CCECClient::AddKey(bool bSendComboKey /* = false */)
|
||||
m_iCurrentButton = CEC_USER_CONTROL_CODE_UNKNOWN;
|
||||
m_initialButtontime = 0;
|
||||
m_updateButtontime = 0;
|
||||
+ m_repeatButtontime = 0;
|
||||
+ m_releaseButtontime = 0;
|
||||
+ m_pressedButtoncount = 0;
|
||||
+ m_releasedButtoncount = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1012,6 +1031,7 @@ void CCECClient::AddKey(const cec_keypress &key)
|
||||
key.keycode < CEC_USER_CONTROL_CODE_SELECT)
|
||||
{
|
||||
// send back the previous key if there is one
|
||||
+ LIB_CEC->AddLog(CEC_LOG_DEBUG, "Unexpected key %s (%1x) D:%dms", ToString(key.keycode), key.keycode, key.duration);
|
||||
AddKey();
|
||||
return;
|
||||
}
|
||||
@@ -1035,7 +1055,10 @@ void CCECClient::AddKey(const cec_keypress &key)
|
||||
transmitKey.keycode = CEC_USER_CONTROL_CODE_DOT;
|
||||
// default, send back the previous key
|
||||
else
|
||||
+ {
|
||||
+ LIB_CEC->AddLog(CEC_LOG_DEBUG, "Combo key %s (%1x) D%dms:", ToString(key.keycode), key.keycode, key.duration);
|
||||
AddKey(true);
|
||||
+ }
|
||||
}
|
||||
|
||||
LIB_CEC->AddLog(CEC_LOG_DEBUG, "key pressed: %s (%1x) current(%lx) duration(%d)", ToString(transmitKey.keycode), transmitKey.keycode, m_iCurrentButton, key.duration);
|
||||
@@ -1043,17 +1066,44 @@ void CCECClient::AddKey(const cec_keypress &key)
|
||||
if (m_iCurrentButton == key.keycode)
|
||||
{
|
||||
m_updateButtontime = GetTimeMs();
|
||||
- isrepeat = true;
|
||||
+ m_releaseButtontime = m_updateButtontime + (m_configuration.iButtonReleaseDelayMs ? m_configuration.iButtonReleaseDelayMs : CEC_BUTTON_TIMEOUT);
|
||||
+ // want to have seen some updated before considering a repeat
|
||||
+ if (m_configuration.iButtonRepeatRateMs)
|
||||
+ {
|
||||
+ if (!m_repeatButtontime && m_pressedButtoncount > 1)
|
||||
+ m_repeatButtontime = m_initialButtontime + DoubleTapTimeoutMS();
|
||||
+ isrepeat = true;
|
||||
+ }
|
||||
+ m_pressedButtoncount++;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (m_iCurrentButton != transmitKey.keycode)
|
||||
+ {
|
||||
+ LIB_CEC->AddLog(CEC_LOG_DEBUG, "Changed key %s (%1x) D:%dms cur:%lx", ToString(transmitKey.keycode), transmitKey.keycode, transmitKey.duration, m_iCurrentButton);
|
||||
AddKey();
|
||||
+ }
|
||||
if (key.duration == 0)
|
||||
{
|
||||
m_iCurrentButton = transmitKey.keycode;
|
||||
- m_initialButtontime = m_iCurrentButton == CEC_USER_CONTROL_CODE_UNKNOWN || key.duration > 0 ? 0 : GetTimeMs();
|
||||
- m_updateButtontime = m_initialButtontime;
|
||||
+ if (m_iCurrentButton == CEC_USER_CONTROL_CODE_UNKNOWN)
|
||||
+ {
|
||||
+ m_initialButtontime = 0;
|
||||
+ m_updateButtontime = 0;
|
||||
+ m_repeatButtontime = 0;
|
||||
+ m_releaseButtontime = 0;
|
||||
+ m_pressedButtoncount = 0;
|
||||
+ m_releasedButtoncount = 0;
|
||||
+ }
|
||||
+ else
|
||||
+ {
|
||||
+ m_initialButtontime = GetTimeMs();
|
||||
+ m_updateButtontime = m_initialButtontime;
|
||||
+ m_repeatButtontime = 0; // set this on next update
|
||||
+ m_releaseButtontime = m_initialButtontime + (m_configuration.iButtonReleaseDelayMs ? m_configuration.iButtonReleaseDelayMs : CEC_BUTTON_TIMEOUT);
|
||||
+ m_pressedButtoncount = 1;
|
||||
+ m_releasedButtoncount = 0;
|
||||
+ }
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1072,12 +1122,16 @@ void CCECClient::SetCurrentButton(const cec_user_control_code iButtonCode)
|
||||
key.duration = 0;
|
||||
key.keycode = iButtonCode;
|
||||
|
||||
+ LIB_CEC->AddLog(CEC_LOG_DEBUG, "SetCurrentButton %s (%1x) D:%dms cur:%lx", ToString(key.keycode), key.keycode, key.duration);
|
||||
AddKey(key);
|
||||
}
|
||||
|
||||
uint16_t CCECClient::CheckKeypressTimeout(void)
|
||||
{
|
||||
+ // time when we'd like to be called again
|
||||
+ unsigned int timeout = CEC_PROCESSOR_SIGNAL_WAIT_TIME;
|
||||
cec_keypress key;
|
||||
+ key.keycode = CEC_USER_CONTROL_CODE_UNKNOWN;
|
||||
|
||||
{
|
||||
CLockObject lock(m_mutex);
|
||||
@@ -1089,8 +1143,8 @@ uint16_t CCECClient::CheckKeypressTimeout(void)
|
||||
m_configuration.iComboKeyTimeoutMs : CEC_DEFAULT_COMBO_TIMEOUT_MS);
|
||||
|
||||
if (m_iCurrentButton != CEC_USER_CONTROL_CODE_UNKNOWN &&
|
||||
- ((m_iCurrentButton == comboKey && iTimeoutMs > 0 && iNow - m_updateButtontime > iTimeoutMs) ||
|
||||
- (m_iCurrentButton != comboKey && iNow - m_updateButtontime > CEC_BUTTON_TIMEOUT)))
|
||||
+ ((m_iCurrentButton == comboKey && iTimeoutMs > 0 && iNow - m_updateButtontime >= iTimeoutMs) ||
|
||||
+ (m_iCurrentButton != comboKey && m_releaseButtontime && iNow >= (uint64_t)m_releaseButtontime)))
|
||||
{
|
||||
key.duration = (unsigned int) (iNow - m_initialButtontime);
|
||||
key.keycode = m_iCurrentButton;
|
||||
@@ -1098,27 +1152,41 @@ uint16_t CCECClient::CheckKeypressTimeout(void)
|
||||
m_iCurrentButton = CEC_USER_CONTROL_CODE_UNKNOWN;
|
||||
m_initialButtontime = 0;
|
||||
m_updateButtontime = 0;
|
||||
+ m_repeatButtontime = 0;
|
||||
+ m_releaseButtontime = 0;
|
||||
+ m_pressedButtoncount = 0;
|
||||
+ m_releasedButtoncount = 0;
|
||||
+ }
|
||||
+ else if (m_iCurrentButton != CEC_USER_CONTROL_CODE_UNKNOWN &&
|
||||
+ (m_iCurrentButton != comboKey && m_repeatButtontime && iNow >= (uint64_t)m_repeatButtontime))
|
||||
+ {
|
||||
+ key.duration = 0;
|
||||
+ key.keycode = m_iCurrentButton;
|
||||
+ m_repeatButtontime = iNow + m_configuration.iButtonRepeatRateMs;
|
||||
+ timeout = std::min((uint64_t)timeout, m_repeatButtontime - iNow);
|
||||
}
|
||||
else
|
||||
{
|
||||
- // time when this keypress will be released and we'd like to be called again
|
||||
- unsigned int timeout = CEC_PROCESSOR_SIGNAL_WAIT_TIME;
|
||||
if (m_iCurrentButton != CEC_USER_CONTROL_CODE_UNKNOWN && m_iCurrentButton == comboKey && iTimeoutMs > 0)
|
||||
- timeout = iTimeoutMs - (iNow - m_updateButtontime) + 1;
|
||||
- else if (m_iCurrentButton != CEC_USER_CONTROL_CODE_UNKNOWN && m_iCurrentButton != comboKey)
|
||||
- timeout = CEC_BUTTON_TIMEOUT - (iNow - m_updateButtontime) + 1;
|
||||
+ timeout = std::min((uint64_t)timeout, m_updateButtontime - iNow + iTimeoutMs);
|
||||
+ if (m_iCurrentButton != CEC_USER_CONTROL_CODE_UNKNOWN && m_iCurrentButton != comboKey && m_releaseButtontime)
|
||||
+ timeout = std::min((uint64_t)timeout, m_releaseButtontime - iNow);
|
||||
+ if (m_iCurrentButton != CEC_USER_CONTROL_CODE_UNKNOWN && m_iCurrentButton != comboKey && m_repeatButtontime)
|
||||
+ timeout = std::min((uint64_t)timeout, m_repeatButtontime - iNow);
|
||||
if (timeout > CEC_PROCESSOR_SIGNAL_WAIT_TIME)
|
||||
{
|
||||
- LIB_CEC->AddLog(CEC_LOG_ERROR, "Unexpected timeout: %d (%.3f %.3f %.3f) k:%02x", timeout, iNow*1e-3, m_updateButtontime*1e-3, CEC_BUTTON_TIMEOUT*1e-3, m_iCurrentButton);
|
||||
+ LIB_CEC->AddLog(CEC_LOG_ERROR, "Unexpected timeout: %d (%.3f %.3f %.3f) k:%02x", timeout, iNow*1e-3, m_updateButtontime*1e-3, m_releaseButtontime*1e-3, m_iCurrentButton);
|
||||
timeout = CEC_PROCESSOR_SIGNAL_WAIT_TIME;
|
||||
}
|
||||
- return timeout;
|
||||
}
|
||||
+ LIB_CEC->AddLog(CEC_LOG_DEBUG, "key %s: %s (%1x) timeout:%dms (rel:%d,rep:%d,prs:%d,rel:%d)", key.keycode == CEC_USER_CONTROL_CODE_UNKNOWN ? "idle" : key.duration ? "released" : "repeated",
|
||||
+ ToString(m_iCurrentButton), m_iCurrentButton, timeout, (int)(m_releaseButtontime ? m_releaseButtontime - iNow : 0), (int)(m_repeatButtontime ? m_repeatButtontime - iNow : 0), m_pressedButtoncount, m_releasedButtoncount);
|
||||
}
|
||||
|
||||
- LIB_CEC->AddLog(CEC_LOG_DEBUG, "key auto-released: %s (%1x)", ToString(key.keycode), key.keycode);
|
||||
- QueueAddKey(key);
|
||||
- return CEC_PROCESSOR_SIGNAL_WAIT_TIME;
|
||||
+ if (key.keycode != CEC_USER_CONTROL_CODE_UNKNOWN)
|
||||
+ QueueAddKey(key);
|
||||
+
|
||||
+ return timeout;
|
||||
}
|
||||
|
||||
bool CCECClient::EnableCallbacks(void *cbParam, ICECCallbacks *callbacks)
|
||||
diff --git a/src/libcec/CECClient.h b/src/libcec/CECClient.h
|
||||
index 611c68b..adeb5af 100644
|
||||
--- a/src/libcec/CECClient.h
|
||||
+++ b/src/libcec/CECClient.h
|
||||
@@ -269,7 +269,7 @@ namespace CEC
|
||||
// callbacks
|
||||
virtual void Alert(const libcec_alert type, const libcec_parameter ¶m) { QueueAlert(type, param); }
|
||||
virtual void AddLog(const cec_log_message &message) { QueueAddLog(message); }
|
||||
- virtual void AddKey(bool bSendComboKey = false);
|
||||
+ virtual void AddKey(bool bSendComboKey = false, bool bButtonRelease = false);
|
||||
virtual void AddKey(const cec_keypress &key);
|
||||
virtual void SetCurrentButton(const cec_user_control_code iButtonCode);
|
||||
virtual uint16_t CheckKeypressTimeout(void);
|
||||
@@ -406,6 +406,10 @@ namespace CEC
|
||||
cec_user_control_code m_iCurrentButton; /**< the control code of the button that's currently held down (if any) */
|
||||
int64_t m_initialButtontime; /**< the timestamp when the button was initially pressed (in seconds since epoch), or 0 if none was pressed. */
|
||||
int64_t m_updateButtontime; /**< the timestamp when the button was updated (in seconds since epoch), or 0 if none was pressed. */
|
||||
+ int64_t m_repeatButtontime; /**< the timestamp when the button will next repeat (in seconds since epoch), or 0 if repeat is disabled. */
|
||||
+ int64_t m_releaseButtontime; /**< the timestamp when the button will be released (in seconds since epoch), or 0 if none was pressed. */
|
||||
+ int32_t m_pressedButtoncount; /**< the number of times a button released message has been seen for this press. */
|
||||
+ int32_t m_releasedButtoncount; /**< the number of times a button pressed message has been seen for this press. */
|
||||
int64_t m_iPreventForwardingPowerOffCommand; /**< prevent forwarding standby commands until this time */
|
||||
int64_t m_iLastKeypressTime; /**< last time a key press was sent to the client */
|
||||
cec_keypress m_lastKeypress; /**< the last key press that was sent to the client */
|
||||
diff --git a/src/libcec/implementations/CECCommandHandler.cpp b/src/libcec/implementations/CECCommandHandler.cpp
|
||||
index 6d6244e..d64186f 100644
|
||||
--- a/src/libcec/implementations/CECCommandHandler.cpp
|
||||
+++ b/src/libcec/implementations/CECCommandHandler.cpp
|
||||
@@ -770,7 +770,7 @@ int CCECCommandHandler::HandleUserControlRelease(const cec_command &command)
|
||||
|
||||
CECClientPtr client = m_processor->GetClient(command.destination);
|
||||
if (client)
|
||||
- client->AddKey();
|
||||
+ client->AddKey(false, true);
|
||||
|
||||
return COMMAND_HANDLED;
|
||||
}
|
||||
--
|
||||
1.9.1
|
||||
|
||||
|
||||
From 3336d0827f7fd159430f3431642b07090c06c869 Mon Sep 17 00:00:00 2001
|
||||
From: popcornmix <popcornmix@gmail.com>
|
||||
Date: Tue, 28 Oct 2014 01:21:35 +0000
|
||||
Subject: [PATCH 4/6] Skip double press removal. It is handled through other
|
||||
means.
|
||||
|
||||
---
|
||||
src/libcec/CECClient.cpp | 18 +-----------------
|
||||
src/libcec/CECClient.h | 2 --
|
||||
2 files changed, 1 insertion(+), 19 deletions(-)
|
||||
|
||||
diff --git a/src/libcec/CECClient.cpp b/src/libcec/CECClient.cpp
|
||||
index 598628d..dccd874 100644
|
||||
--- a/src/libcec/CECClient.cpp
|
||||
+++ b/src/libcec/CECClient.cpp
|
||||
@@ -60,11 +60,8 @@ CCECClient::CCECClient(CCECProcessor *processor, const libcec_configuration &con
|
||||
m_releaseButtontime(0),
|
||||
m_pressedButtoncount(0),
|
||||
m_releasedButtoncount(0),
|
||||
- m_iPreventForwardingPowerOffCommand(0),
|
||||
- m_iLastKeypressTime(0)
|
||||
+ m_iPreventForwardingPowerOffCommand(0)
|
||||
{
|
||||
- m_lastKeypress.keycode = CEC_USER_CONTROL_CODE_UNKNOWN;
|
||||
- m_lastKeypress.duration = 0;
|
||||
m_configuration.Clear();
|
||||
// set the initial configuration
|
||||
SetConfiguration(configuration);
|
||||
@@ -1647,20 +1644,7 @@ void CCECClient::CallbackAddKey(const cec_keypress &key)
|
||||
{
|
||||
CLockObject lock(m_cbMutex);
|
||||
if (m_configuration.callbacks && m_configuration.callbacks->CBCecKeyPress)
|
||||
- {
|
||||
- // prevent double taps
|
||||
- int64_t now = GetTimeMs();
|
||||
- if (m_lastKeypress.keycode != key.keycode ||
|
||||
- key.duration > 0 ||
|
||||
- now - m_iLastKeypressTime >= DoubleTapTimeoutMS())
|
||||
- {
|
||||
- // no double tap
|
||||
- if (key.duration == 0)
|
||||
- m_iLastKeypressTime = now;
|
||||
- m_lastKeypress = key;
|
||||
m_configuration.callbacks->CBCecKeyPress(m_configuration.callbackParam, key);
|
||||
- }
|
||||
- }
|
||||
}
|
||||
|
||||
void CCECClient::CallbackAddLog(const cec_log_message &message)
|
||||
diff --git a/src/libcec/CECClient.h b/src/libcec/CECClient.h
|
||||
index adeb5af..43a713b 100644
|
||||
--- a/src/libcec/CECClient.h
|
||||
+++ b/src/libcec/CECClient.h
|
||||
@@ -411,8 +411,6 @@ namespace CEC
|
||||
int32_t m_pressedButtoncount; /**< the number of times a button released message has been seen for this press. */
|
||||
int32_t m_releasedButtoncount; /**< the number of times a button pressed message has been seen for this press. */
|
||||
int64_t m_iPreventForwardingPowerOffCommand; /**< prevent forwarding standby commands until this time */
|
||||
- int64_t m_iLastKeypressTime; /**< last time a key press was sent to the client */
|
||||
- cec_keypress m_lastKeypress; /**< the last key press that was sent to the client */
|
||||
PLATFORM::SyncedBuffer<CCallbackWrap*> m_callbackCalls;
|
||||
};
|
||||
}
|
||||
--
|
||||
1.9.1
|
||||
|
||||
|
||||
From 0dd0234f620a546bfa843172648383f83d88088c Mon Sep 17 00:00:00 2001
|
||||
From: popcornmix <popcornmix@gmail.com>
|
||||
Date: Mon, 3 Nov 2014 23:28:04 +0000
|
||||
Subject: [PATCH 5/6] Pass through duration on all button repeats
|
||||
|
||||
---
|
||||
src/libcec/CECClient.cpp | 34 ++++++++++++++++++++++++----------
|
||||
1 file changed, 24 insertions(+), 10 deletions(-)
|
||||
|
||||
diff --git a/src/libcec/CECClient.cpp b/src/libcec/CECClient.cpp
|
||||
index dccd874..1946148 100644
|
||||
--- a/src/libcec/CECClient.cpp
|
||||
+++ b/src/libcec/CECClient.cpp
|
||||
@@ -986,10 +986,6 @@ void CCECClient::AddKey(bool bSendComboKey /* = false */, bool bButtonRelease /*
|
||||
cec_keypress key;
|
||||
key.keycode = CEC_USER_CONTROL_CODE_UNKNOWN;
|
||||
|
||||
- // we ignore button releases when supporting repeating keys
|
||||
- if (bButtonRelease && m_configuration.iButtonRepeatRateMs && m_configuration.iButtonReleaseDelayMs)
|
||||
- return;
|
||||
-
|
||||
{
|
||||
CLockObject lock(m_mutex);
|
||||
if (m_iCurrentButton != CEC_USER_CONTROL_CODE_UNKNOWN)
|
||||
@@ -1015,6 +1011,10 @@ void CCECClient::AddKey(bool bSendComboKey /* = false */, bool bButtonRelease /*
|
||||
}
|
||||
}
|
||||
|
||||
+ // we don't forward releases when supporting repeating keys
|
||||
+ if (bButtonRelease && m_configuration.iButtonRepeatRateMs)
|
||||
+ return;
|
||||
+
|
||||
if (key.keycode != CEC_USER_CONTROL_CODE_UNKNOWN)
|
||||
{
|
||||
LIB_CEC->AddLog(CEC_LOG_DEBUG, "key released: %s (%1x) D:%dms", ToString(key.keycode), key.keycode, key.duration);
|
||||
@@ -1107,7 +1107,7 @@ void CCECClient::AddKey(const cec_keypress &key)
|
||||
|
||||
if (!isrepeat && (key.keycode != comboKey || key.duration > 0))
|
||||
{
|
||||
- LIB_CEC->AddLog(CEC_LOG_DEBUG, "key pressed: %s (%1x)", ToString(transmitKey.keycode), transmitKey.keycode);
|
||||
+ LIB_CEC->AddLog(CEC_LOG_DEBUG, "key pressed: %s (%1x, %d)", ToString(transmitKey.keycode), transmitKey.keycode, transmitKey.duration);
|
||||
QueueAddKey(transmitKey);
|
||||
}
|
||||
}
|
||||
@@ -1129,6 +1129,7 @@ uint16_t CCECClient::CheckKeypressTimeout(void)
|
||||
unsigned int timeout = CEC_PROCESSOR_SIGNAL_WAIT_TIME;
|
||||
cec_keypress key;
|
||||
key.keycode = CEC_USER_CONTROL_CODE_UNKNOWN;
|
||||
+ key.duration = 0;
|
||||
|
||||
{
|
||||
CLockObject lock(m_mutex);
|
||||
@@ -1140,8 +1141,7 @@ uint16_t CCECClient::CheckKeypressTimeout(void)
|
||||
m_configuration.iComboKeyTimeoutMs : CEC_DEFAULT_COMBO_TIMEOUT_MS);
|
||||
|
||||
if (m_iCurrentButton != CEC_USER_CONTROL_CODE_UNKNOWN &&
|
||||
- ((m_iCurrentButton == comboKey && iTimeoutMs > 0 && iNow - m_updateButtontime >= iTimeoutMs) ||
|
||||
- (m_iCurrentButton != comboKey && m_releaseButtontime && iNow >= (uint64_t)m_releaseButtontime)))
|
||||
+ m_iCurrentButton == comboKey && iTimeoutMs > 0 && iNow - m_updateButtontime >= iTimeoutMs)
|
||||
{
|
||||
key.duration = (unsigned int) (iNow - m_initialButtontime);
|
||||
key.keycode = m_iCurrentButton;
|
||||
@@ -1155,9 +1155,23 @@ uint16_t CCECClient::CheckKeypressTimeout(void)
|
||||
m_releasedButtoncount = 0;
|
||||
}
|
||||
else if (m_iCurrentButton != CEC_USER_CONTROL_CODE_UNKNOWN &&
|
||||
+ m_iCurrentButton != comboKey && m_releaseButtontime && iNow >= (uint64_t)m_releaseButtontime)
|
||||
+ {
|
||||
+ key.duration = (unsigned int) (iNow - m_initialButtontime);
|
||||
+ key.keycode = CEC_USER_CONTROL_CODE_UNKNOWN;
|
||||
+
|
||||
+ m_iCurrentButton = CEC_USER_CONTROL_CODE_UNKNOWN;
|
||||
+ m_initialButtontime = 0;
|
||||
+ m_updateButtontime = 0;
|
||||
+ m_repeatButtontime = 0;
|
||||
+ m_releaseButtontime = 0;
|
||||
+ m_pressedButtoncount = 0;
|
||||
+ m_releasedButtoncount = 0;
|
||||
+ }
|
||||
+ else if (m_iCurrentButton != CEC_USER_CONTROL_CODE_UNKNOWN &&
|
||||
(m_iCurrentButton != comboKey && m_repeatButtontime && iNow >= (uint64_t)m_repeatButtontime))
|
||||
{
|
||||
- key.duration = 0;
|
||||
+ key.duration = (unsigned int) (iNow - m_initialButtontime);
|
||||
key.keycode = m_iCurrentButton;
|
||||
m_repeatButtontime = iNow + m_configuration.iButtonRepeatRateMs;
|
||||
timeout = std::min((uint64_t)timeout, m_repeatButtontime - iNow);
|
||||
@@ -1176,8 +1190,8 @@ uint16_t CCECClient::CheckKeypressTimeout(void)
|
||||
timeout = CEC_PROCESSOR_SIGNAL_WAIT_TIME;
|
||||
}
|
||||
}
|
||||
- LIB_CEC->AddLog(CEC_LOG_DEBUG, "key %s: %s (%1x) timeout:%dms (rel:%d,rep:%d,prs:%d,rel:%d)", key.keycode == CEC_USER_CONTROL_CODE_UNKNOWN ? "idle" : key.duration ? "released" : "repeated",
|
||||
- ToString(m_iCurrentButton), m_iCurrentButton, timeout, (int)(m_releaseButtontime ? m_releaseButtontime - iNow : 0), (int)(m_repeatButtontime ? m_repeatButtontime - iNow : 0), m_pressedButtoncount, m_releasedButtoncount);
|
||||
+ LIB_CEC->AddLog(CEC_LOG_DEBUG, "Key %s: %s (duration:%d) (%1x) timeout:%dms (rel:%d,rep:%d,prs:%d,rel:%d)", ToString(m_iCurrentButton), key.keycode == CEC_USER_CONTROL_CODE_UNKNOWN ? "idle" : m_repeatButtontime ? "repeated" : "released", key.duration,
|
||||
+ m_iCurrentButton, timeout, (int)(m_releaseButtontime ? m_releaseButtontime - iNow : 0), (int)(m_repeatButtontime ? m_repeatButtontime - iNow : 0), m_pressedButtoncount, m_releasedButtoncount);
|
||||
}
|
||||
|
||||
if (key.keycode != CEC_USER_CONTROL_CODE_UNKNOWN)
|
||||
--
|
||||
1.9.1
|
||||
|
||||
|
||||
From 1ea01f59d8186d4d53af41961aaccbbc11651115 Mon Sep 17 00:00:00 2001
|
||||
From: popcornmix <popcornmix@gmail.com>
|
||||
Date: Wed, 5 Nov 2014 21:04:25 +0000
|
||||
Subject: [PATCH 6/6] squash: Fix for stop needing to be pressed twice
|
||||
|
||||
---
|
||||
src/libcec/CECClient.cpp | 17 ++++++++---------
|
||||
1 file changed, 8 insertions(+), 9 deletions(-)
|
||||
|
||||
diff --git a/src/libcec/CECClient.cpp b/src/libcec/CECClient.cpp
|
||||
index 1946148..f4f114b 100644
|
||||
--- a/src/libcec/CECClient.cpp
|
||||
+++ b/src/libcec/CECClient.cpp
|
||||
@@ -1131,6 +1131,8 @@ uint16_t CCECClient::CheckKeypressTimeout(void)
|
||||
key.keycode = CEC_USER_CONTROL_CODE_UNKNOWN;
|
||||
key.duration = 0;
|
||||
|
||||
+ if (m_iCurrentButton == CEC_USER_CONTROL_CODE_UNKNOWN)
|
||||
+ return timeout;
|
||||
{
|
||||
CLockObject lock(m_mutex);
|
||||
uint64_t iNow = GetTimeMs();
|
||||
@@ -1140,8 +1142,7 @@ uint16_t CCECClient::CheckKeypressTimeout(void)
|
||||
uint32_t iTimeoutMs(m_configuration.clientVersion >= LIBCEC_VERSION_TO_UINT(2, 0, 5) ?
|
||||
m_configuration.iComboKeyTimeoutMs : CEC_DEFAULT_COMBO_TIMEOUT_MS);
|
||||
|
||||
- if (m_iCurrentButton != CEC_USER_CONTROL_CODE_UNKNOWN &&
|
||||
- m_iCurrentButton == comboKey && iTimeoutMs > 0 && iNow - m_updateButtontime >= iTimeoutMs)
|
||||
+ if (m_iCurrentButton == comboKey && iTimeoutMs > 0 && iNow - m_updateButtontime >= iTimeoutMs)
|
||||
{
|
||||
key.duration = (unsigned int) (iNow - m_initialButtontime);
|
||||
key.keycode = m_iCurrentButton;
|
||||
@@ -1154,8 +1155,7 @@ uint16_t CCECClient::CheckKeypressTimeout(void)
|
||||
m_pressedButtoncount = 0;
|
||||
m_releasedButtoncount = 0;
|
||||
}
|
||||
- else if (m_iCurrentButton != CEC_USER_CONTROL_CODE_UNKNOWN &&
|
||||
- m_iCurrentButton != comboKey && m_releaseButtontime && iNow >= (uint64_t)m_releaseButtontime)
|
||||
+ else if (m_iCurrentButton != comboKey && m_releaseButtontime && iNow >= (uint64_t)m_releaseButtontime)
|
||||
{
|
||||
key.duration = (unsigned int) (iNow - m_initialButtontime);
|
||||
key.keycode = CEC_USER_CONTROL_CODE_UNKNOWN;
|
||||
@@ -1168,8 +1168,7 @@ uint16_t CCECClient::CheckKeypressTimeout(void)
|
||||
m_pressedButtoncount = 0;
|
||||
m_releasedButtoncount = 0;
|
||||
}
|
||||
- else if (m_iCurrentButton != CEC_USER_CONTROL_CODE_UNKNOWN &&
|
||||
- (m_iCurrentButton != comboKey && m_repeatButtontime && iNow >= (uint64_t)m_repeatButtontime))
|
||||
+ else if (m_iCurrentButton != comboKey && m_repeatButtontime && iNow >= (uint64_t)m_repeatButtontime)
|
||||
{
|
||||
key.duration = (unsigned int) (iNow - m_initialButtontime);
|
||||
key.keycode = m_iCurrentButton;
|
||||
@@ -1178,11 +1177,11 @@ uint16_t CCECClient::CheckKeypressTimeout(void)
|
||||
}
|
||||
else
|
||||
{
|
||||
- if (m_iCurrentButton != CEC_USER_CONTROL_CODE_UNKNOWN && m_iCurrentButton == comboKey && iTimeoutMs > 0)
|
||||
+ if (m_iCurrentButton == comboKey && iTimeoutMs > 0)
|
||||
timeout = std::min((uint64_t)timeout, m_updateButtontime - iNow + iTimeoutMs);
|
||||
- if (m_iCurrentButton != CEC_USER_CONTROL_CODE_UNKNOWN && m_iCurrentButton != comboKey && m_releaseButtontime)
|
||||
+ if (m_iCurrentButton != comboKey && m_releaseButtontime)
|
||||
timeout = std::min((uint64_t)timeout, m_releaseButtontime - iNow);
|
||||
- if (m_iCurrentButton != CEC_USER_CONTROL_CODE_UNKNOWN && m_iCurrentButton != comboKey && m_repeatButtontime)
|
||||
+ if (m_iCurrentButton != comboKey && m_repeatButtontime)
|
||||
timeout = std::min((uint64_t)timeout, m_repeatButtontime - iNow);
|
||||
if (timeout > CEC_PROCESSOR_SIGNAL_WAIT_TIME)
|
||||
{
|
||||
--
|
||||
1.9.1
|
||||
|
@ -1,18 +0,0 @@
|
||||
# see upstream commit, https://github.com/Pulse-Eight/libcec/commit/678739a0d8aa5897fa1906a8fdeeb67b83f7d1e9
|
||||
|
||||
diff -Naur a/src/libcec/platform/drm/drm-edid.cpp b/src/libcec/platform/drm/drm-edid.cpp
|
||||
--- a/src/libcec/platform/drm/drm-edid.cpp 2015-07-03 10:20:49.000000000 -0700
|
||||
+++ b/src/libcec/platform/drm/drm-edid.cpp 2015-11-10 13:09:14.902629922 -0800
|
||||
@@ -51,6 +51,12 @@
|
||||
|
||||
DIR *dir = opendir(baseDir.c_str());
|
||||
|
||||
+ // DRM subfolder may not exist on some systems
|
||||
+ if (dir == NULL)
|
||||
+ {
|
||||
+ return iPA;
|
||||
+ }
|
||||
+
|
||||
struct dirent *entry = readdir(dir);
|
||||
std::string enablededid;
|
||||
std::string line;
|
@ -1,8 +1,33 @@
|
||||
From 111381e98e7a2544c052a12211349346ed2b47d6 Mon Sep 17 00:00:00 2001
|
||||
From: Gerald Dachs <gda@dachsweb.de>
|
||||
Date: Thu, 3 Mar 2016 09:38:44 +0100
|
||||
Subject: [PATCH] new adapter for amlogic devices
|
||||
|
||||
---
|
||||
README.md | 6 +
|
||||
include/cectypes.h | 13 +-
|
||||
src/libcec/CMakeLists.txt | 3 +
|
||||
src/libcec/adapter/AdapterFactory.cpp | 24 +-
|
||||
src/libcec/adapter/Amlogic/AmlogicCEC.h | 41 +++
|
||||
.../Amlogic/AmlogicCECAdapterCommunication.cpp | 305 +++++++++++++++++++++
|
||||
.../Amlogic/AmlogicCECAdapterCommunication.h | 105 +++++++
|
||||
.../adapter/Amlogic/AmlogicCECAdapterDetection.cpp | 50 ++++
|
||||
.../adapter/Amlogic/AmlogicCECAdapterDetection.h | 46 ++++
|
||||
src/libcec/cmake/CheckPlatformSupport.cmake | 13 +
|
||||
src/libcec/cmake/DisplayPlatformSupport.cmake | 6 +
|
||||
src/libcec/env.h.in | 3 +
|
||||
12 files changed, 613 insertions(+), 2 deletions(-)
|
||||
create mode 100644 src/libcec/adapter/Amlogic/AmlogicCEC.h
|
||||
create mode 100644 src/libcec/adapter/Amlogic/AmlogicCECAdapterCommunication.cpp
|
||||
create mode 100644 src/libcec/adapter/Amlogic/AmlogicCECAdapterCommunication.h
|
||||
create mode 100644 src/libcec/adapter/Amlogic/AmlogicCECAdapterDetection.cpp
|
||||
create mode 100644 src/libcec/adapter/Amlogic/AmlogicCECAdapterDetection.h
|
||||
|
||||
diff --git a/README.md b/README.md
|
||||
index dfaf4d6..0dffdcf 100644
|
||||
--- a/README.md
|
||||
+++ b/README.md
|
||||
@@ -58,6 +58,12 @@
|
||||
@@ -93,6 +93,12 @@ To compile in support for Exynos devices, you have to pass the argument -DHAVE_E
|
||||
cmake -DHAVE_EXYNOS_API=1 ..
|
||||
```
|
||||
|
||||
@ -12,18 +37,17 @@ index dfaf4d6..0dffdcf 100644
|
||||
+cmake -DHAVE_AMLOGIC_API=1 ..
|
||||
+```
|
||||
+
|
||||
## TDA995x ##
|
||||
### TDA995x
|
||||
To compile in support for TDA995x devices, you have to pass the argument -DHAVE_TDA995X_API=1 to cmake:
|
||||
```
|
||||
diff --git a/include/cectypes.h b/include/cectypes.h
|
||||
index e28c8df..c0b9476 100644
|
||||
index 0fdd48e..b7e1932 100644
|
||||
--- a/include/cectypes.h
|
||||
+++ b/include/cectypes.h
|
||||
@@ -318,6 +318,15 @@ namespace CEC {
|
||||
*/
|
||||
#define CEC_IMX_VIRTUAL_COM "i.MX"
|
||||
@@ -309,6 +309,16 @@ namespace CEC {
|
||||
#define CEC_EXYNOS_VIRTUAL_COM "Exynos"
|
||||
|
||||
+/*!
|
||||
/*!
|
||||
+ * the path to use for the Amlogic HDMI CEC device
|
||||
+ */
|
||||
+#define CEC_AMLOGIC_PATH "/dev/AmlogicCEC"
|
||||
@ -32,10 +56,12 @@ index e28c8df..c0b9476 100644
|
||||
+ * the name of the virtual COM port to use for the AMLOGIC' CEC wire
|
||||
+ */
|
||||
+#define CEC_AMLOGIC_VIRTUAL_COM "Amlogic"
|
||||
|
||||
/*!
|
||||
+
|
||||
+/*!
|
||||
* Mimimum client version
|
||||
@@ -889,7 +898,8 @@ typedef enum cec_adapter_type
|
||||
*/
|
||||
#define CEC_MIN_LIB_VERSION 3
|
||||
@@ -899,7 +899,8 @@
|
||||
ADAPTERTYPE_RPI = 0x100,
|
||||
ADAPTERTYPE_TDA995x = 0x200,
|
||||
ADAPTERTYPE_EXYNOS = 0x300,
|
||||
@ -60,11 +86,11 @@ index a494533..e94b094 100644
|
||||
adapter/Pulse-Eight/USBCECAdapterCommunication.h
|
||||
adapter/Pulse-Eight/USBCECAdapterCommands.h
|
||||
diff --git a/src/libcec/adapter/AdapterFactory.cpp b/src/libcec/adapter/AdapterFactory.cpp
|
||||
index 92e378b..55703b9 100644
|
||||
index da05725..824c5ff 100644
|
||||
--- a/src/libcec/adapter/AdapterFactory.cpp
|
||||
+++ b/src/libcec/adapter/AdapterFactory.cpp
|
||||
@@ -63,6 +63,11 @@
|
||||
#include "IMX/IMXCECAdapterCommunication.h"
|
||||
@@ -58,6 +58,11 @@
|
||||
#include "Exynos/ExynosCECAdapterCommunication.h"
|
||||
#endif
|
||||
|
||||
+#if defined(HAVE_AMLOGIC_API)
|
||||
@ -75,16 +101,7 @@ index 92e378b..55703b9 100644
|
||||
using namespace CEC;
|
||||
|
||||
int8_t CAdapterFactory::FindAdapters(cec_adapter *deviceList, uint8_t iBufSize, const char *strDevicePath /* = NULL */)
|
||||
@@ -131,8 +136,6 @@ int8_t CAdapterFactory::DetectAdapters(cec_adapter_descriptor *deviceList, uint8
|
||||
}
|
||||
#endif
|
||||
|
||||
-
|
||||
-
|
||||
#if defined(HAVE_IMX_API)
|
||||
if (iAdaptersFound < iBufSize && CIMXCECAdapterDetection::FindAdapter() &&
|
||||
(!strDevicePath || !strcmp(strDevicePath, CEC_IMX_VIRTUAL_COM)))
|
||||
@@ -146,8 +149,20 @@ int8_t CAdapterFactory::DetectAdapters(cec_adapter_descriptor *deviceList, uint8
|
||||
@@ -151,8 +151,19 @@
|
||||
}
|
||||
#endif
|
||||
|
||||
@ -101,13 +118,12 @@ index 92e378b..55703b9 100644
|
||||
+#endif
|
||||
|
||||
-#if !defined(HAVE_RPI_API) && !defined(HAVE_P8_USB) && !defined(HAVE_TDA995X_API) && !defined(HAVE_IMX_API)
|
||||
+
|
||||
+#if !defined(HAVE_RPI_API) && !defined(HAVE_P8_USB) && !defined(HAVE_TDA995X_API) && !defined(HAVE_IMX_API) && !defined(HAVE_AMLOGIC_API)
|
||||
#error "libCEC doesn't have support for any type of adapter. please check your build system or configuration"
|
||||
#endif
|
||||
|
||||
@@ -176,11 +191,16 @@ IAdapterCommunication *CAdapterFactory::GetInstance(const char *strPort, uint16_
|
||||
return new CIMXCECAdapterCommunication(m_lib->m_cec);
|
||||
@@ -146,6 +163,11 @@ IAdapterCommunication *CAdapterFactory::GetInstance(const char *strPort, uint16_
|
||||
return new CExynosCECAdapterCommunication(m_lib->m_cec);
|
||||
#endif
|
||||
|
||||
+#if defined(HAVE_AMLOGIC_API)
|
||||
@ -115,15 +131,9 @@ index 92e378b..55703b9 100644
|
||||
+ return new CAmlogicCECAdapterCommunication(m_lib->m_cec);
|
||||
+#endif
|
||||
+
|
||||
#if defined(HAVE_P8_USB)
|
||||
return new CUSBCECAdapterCommunication(m_lib->m_cec, strPort, iBaudRate);
|
||||
#endif
|
||||
|
||||
-#if !defined(HAVE_RPI_API) && !defined(HAVE_P8_USB) && !defined(HAVE_TDA995X_API) && !defined(HAVE_EXYNOS_API) && !defined(HAVE_IMX_API)
|
||||
+#if !defined(HAVE_RPI_API) && !defined(HAVE_P8_USB) && !defined(HAVE_TDA995X_API) && !defined(HAVE_EXYNOS_API) && !defined(HAVE_IMX_API) && !defined(HAVE_AMLOGIC_API)
|
||||
return NULL;
|
||||
#endif
|
||||
}
|
||||
#if defined(HAVE_RPI_API)
|
||||
if (!strcmp(strPort, CEC_RPI_VIRTUAL_COM))
|
||||
return new CRPiCECAdapterCommunication(m_lib->m_cec);
|
||||
diff --git a/src/libcec/adapter/Amlogic/AmlogicCEC.h b/src/libcec/adapter/Amlogic/AmlogicCEC.h
|
||||
new file mode 100644
|
||||
index 0000000..7b86982
|
||||
@ -223,10 +233,10 @@ index 0000000..5aeddda
|
||||
+
|
||||
+#include "CECTypeUtils.h"
|
||||
+#include "LibCEC.h"
|
||||
+#include <platform/util/buffer.h>
|
||||
+#include <p8-platform/util/buffer.h>
|
||||
+
|
||||
+using namespace CEC;
|
||||
+using namespace PLATFORM;
|
||||
+using namespace P8PLATFORM;
|
||||
+
|
||||
+#define LIB_CEC m_callback->GetLib()
|
||||
+
|
||||
@ -528,14 +538,14 @@ index 0000000..0e99cf8
|
||||
+
|
||||
+#if defined(HAVE_AMLOGIC_API)
|
||||
+
|
||||
+#include <platform/threads/mutex.h>
|
||||
+#include <platform/threads/threads.h>
|
||||
+#include <p8-platform/threads/mutex.h>
|
||||
+#include <p8-platform/threads/threads.h>
|
||||
+#include "../AdapterCommunication.h"
|
||||
+#include <map>
|
||||
+
|
||||
+namespace CEC
|
||||
+{
|
||||
+ class CAmlogicCECAdapterCommunication : public IAdapterCommunication, public PLATFORM::CThread
|
||||
+ class CAmlogicCECAdapterCommunication : public IAdapterCommunication, public P8PLATFORM::CThread
|
||||
+ {
|
||||
+ public:
|
||||
+ /*!
|
||||
@ -575,7 +585,7 @@ index 0000000..0e99cf8
|
||||
+ void SetActiveSource(bool UNUSED(bSetTo), bool UNUSED(bClientUnregistered)) {}
|
||||
+ ///}
|
||||
+
|
||||
+ /** @name PLATFORM::CThread implementation */
|
||||
+ /** @name P8PLATFORM::CThread implementation */
|
||||
+ ///{
|
||||
+ void *Process(void);
|
||||
+ ///}
|
||||
@ -588,7 +598,7 @@ index 0000000..0e99cf8
|
||||
+
|
||||
+ bool m_bLogicalAddressChanged;
|
||||
+ cec_logical_addresses m_logicalAddresses;
|
||||
+ PLATFORM::CMutex m_mutex;
|
||||
+ P8PLATFORM::CMutex m_mutex;
|
||||
+ int m_fd;
|
||||
+ };
|
||||
+};
|
||||
@ -702,18 +712,18 @@ index 0000000..8a7418d
|
||||
+ };
|
||||
+}
|
||||
diff --git a/src/libcec/cmake/CheckPlatformSupport.cmake b/src/libcec/cmake/CheckPlatformSupport.cmake
|
||||
index dc5bc25..64003d9 100644
|
||||
index b8a16c8..311cb52 100644
|
||||
--- a/src/libcec/cmake/CheckPlatformSupport.cmake
|
||||
+++ b/src/libcec/cmake/CheckPlatformSupport.cmake
|
||||
@@ -11,6 +11,7 @@
|
||||
# HAVE_IMX_API 1 if i.MX is supported
|
||||
# HAVE_TDA995X_API 1 if TDA995X is supported
|
||||
# HAVE_EXYNOS_API 1 if Exynos is supported
|
||||
+# HAVE_AMLOGIC_API 1 if Amlogic is supported
|
||||
@@ -9,6 +9,7 @@
|
||||
# HAVE_RPI_API 1 if Raspberry Pi is supported
|
||||
# HAVE_TDA995X_API 1 if TDA995X is supported
|
||||
# HAVE_EXYNOS_API 1 if Exynos is supported
|
||||
+# HAVE_AMLOGIC_API 1 if Amlogic is supported
|
||||
# HAVE_P8_USB 1 if Pulse-Eight devices are supported
|
||||
# HAVE_P8_USB_DETECT 1 if Pulse-Eight devices can be auto-detected
|
||||
#
|
||||
|
||||
@@ -142,6 +143,18 @@ else()
|
||||
# HAVE_DRM_EDID_PARSER 1 if DRM EDID parsing is supported
|
||||
@@ -132,6 +133,18 @@ else()
|
||||
else()
|
||||
set(HAVE_EXYNOS_API 0)
|
||||
endif()
|
||||
@ -733,10 +743,10 @@ index dc5bc25..64003d9 100644
|
||||
|
||||
# rt
|
||||
diff --git a/src/libcec/cmake/DisplayPlatformSupport.cmake b/src/libcec/cmake/DisplayPlatformSupport.cmake
|
||||
index 4e24def..1890cac 100644
|
||||
index 9dcaacf..464252e 100644
|
||||
--- a/src/libcec/cmake/DisplayPlatformSupport.cmake
|
||||
+++ b/src/libcec/cmake/DisplayPlatformSupport.cmake
|
||||
@@ -50,6 +50,12 @@ else()
|
||||
@@ -44,6 +44,12 @@ else()
|
||||
message(STATUS "DRM support: no")
|
||||
endif()
|
||||
|
||||
@ -750,10 +760,10 @@ index 4e24def..1890cac 100644
|
||||
message(STATUS "Python support: version ${PYTHONLIBS_VERSION_STRING} (${PYTHON_VERSION})")
|
||||
else()
|
||||
diff --git a/src/libcec/env.h.in b/src/libcec/env.h.in
|
||||
index 384f1c7..c3f00bc 100644
|
||||
index 0496aa0..971f769 100644
|
||||
--- a/src/libcec/env.h.in
|
||||
+++ b/src/libcec/env.h.in
|
||||
@@ -75,6 +75,9 @@
|
||||
@@ -72,6 +72,9 @@
|
||||
/* Define to 1 for Exynos support */
|
||||
#cmakedefine HAVE_EXYNOS_API @HAVE_EXYNOS_API@
|
||||
|
||||
|
@ -1,43 +0,0 @@
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2009-2016 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 <http://www.gnu.org/licenses/>.
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="jasper"
|
||||
PKG_VERSION="1.900.1"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="OpenSource"
|
||||
PKG_SITE="http://www.ece.uvic.ca/~mdadams/jasper/"
|
||||
PKG_URL="$DISTRO_SRC/$PKG_NAME-$PKG_VERSION.tar.bz2"
|
||||
PKG_DEPENDS_TARGET="toolchain libjpeg-turbo"
|
||||
PKG_PRIORITY="optional"
|
||||
PKG_SECTION="graphics"
|
||||
PKG_SHORTDESC="jasper: JPEG-2000 Part-1 standard (i.e., ISO/IEC 15444-1) implementation"
|
||||
PKG_LONGDESC="This distribution contains the public release of the an open-source implementation of the ISO/IEC 15444-1 also known as JPEG-2000 standard for image compression."
|
||||
|
||||
PKG_IS_ADDON="no"
|
||||
PKG_AUTORECONF="yes"
|
||||
|
||||
PKG_CONFIGURE_OPTS_TARGET="--disable-shared --enable-static"
|
||||
|
||||
pre_configure_target() {
|
||||
export CFLAGS="$CFLAGS -fPIC -DPIC"
|
||||
}
|
||||
|
||||
post_makeinstall_target() {
|
||||
rm -rf $INSTALL/usr/bin
|
||||
}
|
File diff suppressed because it is too large
Load Diff
@ -17,30 +17,26 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="soil"
|
||||
PKG_VERSION="1.07"
|
||||
PKG_VERSION="1.16"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="PD"
|
||||
PKG_LICENSE="CCPL"
|
||||
PKG_SITE="http://www.lonesock.net/soil.html"
|
||||
PKG_URL="$DISTRO_SRC/$PKG_NAME-$PKG_VERSION.tar.xz"
|
||||
PKG_DEPENDS_TARGET="mesa"
|
||||
PKG_DEPENDS_TARGET="toolchain mesa"
|
||||
PKG_PRIORITY="optional"
|
||||
PKG_SECTION="graphics"
|
||||
PKG_SHORTDESC="libsoil: Simple OpenGL Image Library"
|
||||
PKG_LONGDESC="libsoil: Simple OpenGL Image Library"
|
||||
PKG_SHORTDESC="A tiny C lib primarily for loading textures into OpenGL"
|
||||
PKG_LONGDESC="A tiny C lib primarily for loading textures into OpenGL"
|
||||
|
||||
PKG_IS_ADDON="no"
|
||||
PKG_AUTORECONF="no"
|
||||
|
||||
make_target() {
|
||||
mkdir projects/makefile/obj
|
||||
make CXX="$CXX" CC="$CC" LD="$CC" AR="$AR" CFLAGS="-fPIC -O2" CXXFLAGS="-fPIC -O2" -C projects/makefile
|
||||
pre_make_target() {
|
||||
sed "s/1.07-20071110/$PKG_VERSION/" -i Makefile
|
||||
export CFLAGS="$CFLAGS -fPIC"
|
||||
}
|
||||
|
||||
makeinstall_target() {
|
||||
mkdir -p $SYSROOT_PREFIX/usr/lib
|
||||
cp -PR lib/libSOIL.a $SYSROOT_PREFIX/usr/lib
|
||||
|
||||
mkdir -p $SYSROOT_PREFIX/usr/include/SOIL
|
||||
cp -P src/SOIL.h $SYSROOT_PREFIX/usr/include/SOIL
|
||||
pre_makeinstall_target() {
|
||||
export DESTDIR=$SYSROOT_PREFIX
|
||||
}
|
||||
|
47
packages/graphics/soil/patches/soil-0001_fix-makefile.patch
Normal file
47
packages/graphics/soil/patches/soil-0001_fix-makefile.patch
Normal file
@ -0,0 +1,47 @@
|
||||
--- /dev/null 2015-06-05 20:37:04.396503995 +0200
|
||||
+++ b/Makefile 2016-01-27 22:47:09.795982961 +0100
|
||||
@@ -0,0 +1,44 @@
|
||||
+CC ?= gcc
|
||||
+INSTALL_FILE = install -p -m 644
|
||||
+INSTALL_DIR = install -p -d
|
||||
+LN = ln -s
|
||||
+RM = rm -fv
|
||||
+CFLAGS += -c -O2 -Wall
|
||||
+LDFLAGS +=
|
||||
+
|
||||
+SRC = src
|
||||
+CFILES = $(SRC)/image_DXT.c $(SRC)/image_helper.c $(SRC)/SOIL.c $(SRC)/stb_image_aug.c
|
||||
+OFILES = $(CFILES:.c=.o)
|
||||
+LIBNAME = libSOIL
|
||||
+VERSION = 1.07-20071110
|
||||
+MAJOR = 1
|
||||
+
|
||||
+HFILES = $(SRC)/SOIL.h $(SRC)/image_DXT.h $(SRC)/image_helper.h \
|
||||
+ $(SRC)/stbi_DDS_aug.h $(SRC)/stbi_DDS_aug_c.h $(SRC)/stb_image_aug.h
|
||||
+AFILE = libSOIL.a
|
||||
+INCLUDEDIR = /usr/include/SOIL
|
||||
+LIBDIR = /usr/lib
|
||||
+
|
||||
+all: $(OFILES) lib
|
||||
+
|
||||
+%.o: %.c
|
||||
+ $(CC) $(CFLAGS) $< -o $@
|
||||
+
|
||||
+lib: $(OFILES)
|
||||
+ # create static library
|
||||
+ $(AR) -cvq $(LIBNAME).a $(OFILES)
|
||||
+
|
||||
+install:
|
||||
+ $(INSTALL_DIR) $(DESTDIR)/$(INCLUDEDIR)
|
||||
+ $(INSTALL_FILE) $(HFILES) $(DESTDIR)/$(INCLUDEDIR)
|
||||
+ $(INSTALL_DIR) $(DESTDIR)/$(LIBDIR)
|
||||
+ $(INSTALL_FILE) $(AFILE) $(DESTDIR)/$(LIBDIR)
|
||||
+
|
||||
+clean:
|
||||
+ $(RM) *.o
|
||||
+ $(RM) *~
|
||||
+
|
||||
+distclean:
|
||||
+ $(RM) $(AFILE) $(SOFILE)
|
||||
+
|
||||
+.PHONY: all lib clean distclean
|
@ -0,0 +1,49 @@
|
||||
diff --git a/skins/Default/720p/mainWindow.xml b/skins/Default/720p/mainWindow.xml
|
||||
index 19c7676..c63f688 100644
|
||||
--- a/skins/Default/720p/mainWindow.xml
|
||||
+++ b/skins/Default/720p/mainWindow.xml
|
||||
@@ -75,7 +75,7 @@
|
||||
<width>220</width>
|
||||
<height>80</height>
|
||||
<aspectratio>keep</aspectratio>
|
||||
- <texture>$INFO[Container(5533).Property(DIST_MEDIA)]/Logo.png</texture>
|
||||
+ <texture>$INFO[Window.Property(DIST_MEDIA)]/Logo.png</texture>
|
||||
</control>
|
||||
<control type="image">
|
||||
<left>268</left>
|
||||
@@ -267,7 +267,7 @@
|
||||
<textcolor>white</textcolor>
|
||||
<align>left</align>
|
||||
<aligny>center</aligny>
|
||||
- <label>$INFO[Container(5533).Property(Distri)] ($INFO[Container(5533).Property(build)])</label>
|
||||
+ <label>$INFO[Window.Property(Distri)] ($INFO[Window.Property(build)])</label>
|
||||
</control>
|
||||
<control type="label">
|
||||
<left>20</left>
|
||||
@@ -289,7 +289,7 @@
|
||||
<textcolor>white</textcolor>
|
||||
<align>left</align>
|
||||
<aligny>center</aligny>
|
||||
- <label>$INFO[Container(5533).Property(Version)]</label>
|
||||
+ <label>$INFO[Window.Property(Version)]</label>
|
||||
</control>
|
||||
<control type="label">
|
||||
<left>20</left>
|
||||
@@ -311,7 +311,7 @@
|
||||
<textcolor>white</textcolor>
|
||||
<align>left</align>
|
||||
<aligny>center</aligny>
|
||||
- <label>$INFO[Container(5533).Property(Arch)]</label>
|
||||
+ <label>$INFO[Window.Property(Arch)]</label>
|
||||
</control>
|
||||
<control type="textbox">
|
||||
<left>20</left>
|
||||
@@ -1246,7 +1246,7 @@
|
||||
<width>740</width>
|
||||
<height>100</height>
|
||||
<font>font12</font>
|
||||
- <label>$INFO[Container(5533).Property(InfoText)]</label>
|
||||
+ <label>$INFO[Window.Property(InfoText)]</label>
|
||||
<align>left</align>
|
||||
<textcolor>white</textcolor>
|
||||
<shadowcolor>black</shadowcolor>
|
@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="adsp.basic"
|
||||
PKG_VERSION="cb56e0e"
|
||||
PKG_VERSION="5cf12e8"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="adsp.biquad.filters"
|
||||
PKG_VERSION="d63d8ac"
|
||||
PKG_VERSION="af575f3"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="adsp.freesurround"
|
||||
PKG_VERSION="08b691d"
|
||||
PKG_VERSION="6dc533b"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="audiodecoder.modplug"
|
||||
PKG_VERSION="03b772d"
|
||||
PKG_VERSION="3faec25"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="audiodecoder.ncsf"
|
||||
PKG_VERSION="b452778"
|
||||
PKG_VERSION="db9517f"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="audiodecoder.nosefart"
|
||||
PKG_VERSION="bfab543"
|
||||
PKG_VERSION="646a7cb"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="audiodecoder.organya"
|
||||
PKG_VERSION="ed0d3a5"
|
||||
PKG_VERSION="88d8a0f"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="audiodecoder.qsf"
|
||||
PKG_VERSION="83b18d7"
|
||||
PKG_VERSION="4330729"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="audiodecoder.sidplay"
|
||||
PKG_VERSION="d832f05"
|
||||
PKG_VERSION="4631114"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="audiodecoder.snesapu"
|
||||
PKG_VERSION="db62e88"
|
||||
PKG_VERSION="c5a182b"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="audiodecoder.stsound"
|
||||
PKG_VERSION="759ae7e"
|
||||
PKG_VERSION="65f0e06"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="audiodecoder.timidity"
|
||||
PKG_VERSION="1aa2378"
|
||||
PKG_VERSION="f649d32"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="audiodecoder.vgmstream"
|
||||
PKG_VERSION="cb2892a"
|
||||
PKG_VERSION="6695178"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="audioencoder.flac"
|
||||
PKG_VERSION="f8a9cd0"
|
||||
PKG_VERSION="176288b"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="audioencoder.lame"
|
||||
PKG_VERSION="52f84dd"
|
||||
PKG_VERSION="ffaf9cb"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="audioencoder.vorbis"
|
||||
PKG_VERSION="42620de"
|
||||
PKG_VERSION="47a0676"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="audioencoder.wav"
|
||||
PKG_VERSION="0c6ec77"
|
||||
PKG_VERSION="a12bcd1"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
@ -0,0 +1,60 @@
|
||||
################################################################################
|
||||
# This file is part of LibreELEC - http://www.libreelec.tv
|
||||
# Copyright (C) 2009-2016 Lukas Rusak (lrusak@libreelec.tv)
|
||||
#
|
||||
# LibreELEC 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.
|
||||
#
|
||||
# LibreELEC 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 LibreELEC. If not, see <http://www.gnu.org/licenses/>.
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="inputstream.mpd"
|
||||
PKG_VERSION="4323ce6"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="http://www.kodi.tv"
|
||||
PKG_URL="https://github.com/liberty-developer/inputstream.mpd/archive/$PKG_VERSION.tar.gz"
|
||||
PKG_DEPENDS_TARGET="toolchain kodi-platform"
|
||||
PKG_SECTION=""
|
||||
PKG_SHORTDESC="inputstream.mpd"
|
||||
PKG_LONGDESC="inputstream.mpd"
|
||||
|
||||
PKG_IS_ADDON="yes"
|
||||
|
||||
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 \
|
||||
..
|
||||
}
|
||||
|
||||
post_make_target() {
|
||||
mkdir -p wv && cd wv
|
||||
cmake -DCMAKE_TOOLCHAIN_FILE=$CMAKE_CONF \
|
||||
-DCMAKE_INSTALL_PREFIX=/usr \
|
||||
-DCMAKE_MODULE_PATH=$SYSROOT_PREFIX/usr/lib/kodi \
|
||||
-DCMAKE_PREFIX_PATH=$SYSROOT_PREFIX/usr \
|
||||
$ROOT/$PKG_BUILD/wvdecrypter
|
||||
make
|
||||
}
|
||||
|
||||
addon() {
|
||||
mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/
|
||||
cp -R $PKG_BUILD/.install_pkg/usr/share/kodi/addons/$PKG_NAME/* $ADDON_BUILD/$PKG_ADDON_ID/
|
||||
|
||||
ADDONSO=$(xmlstarlet sel -t -v "/addon/extension/@library_linux" $ADDON_BUILD/$PKG_ADDON_ID/addon.xml)
|
||||
cp -L $PKG_BUILD/.install_pkg/usr/lib/kodi/addons/$PKG_NAME/$ADDONSO $ADDON_BUILD/$PKG_ADDON_ID/
|
||||
|
||||
mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/decrypter/
|
||||
cp -P $PKG_BUILD/.$TARGET_NAME/wv/libssd_wv.so $ADDON_BUILD/$PKG_ADDON_ID/lib/
|
||||
|
||||
ln -sf /storage/decrypters/libwidevinecdm.so $ADDON_BUILD/$PKG_ADDON_ID/decrypter/libwidevinecdm.so
|
||||
}
|
@ -0,0 +1,45 @@
|
||||
################################################################################
|
||||
# This file is part of LibreELEC - http://www.libreelec.tv
|
||||
# Copyright (C) 2009-2016 Lukas Rusak (lrusak@libreelec.tv)
|
||||
#
|
||||
# LibreELEC 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.
|
||||
#
|
||||
# LibreELEC 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 LibreELEC. If not, see <http://www.gnu.org/licenses/>.
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="inputstream.smoothstream"
|
||||
PKG_VERSION="1813bbb"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="http://www.kodi.tv"
|
||||
PKG_URL="https://github.com/mapfau/inputstream.smoothstream/archive/$PKG_VERSION.tar.gz"
|
||||
PKG_DEPENDS_TARGET="toolchain kodi-platform"
|
||||
PKG_SECTION=""
|
||||
PKG_SHORTDESC="inputstream.smoothstream"
|
||||
PKG_LONGDESC="inputstream.smoothstream"
|
||||
|
||||
PKG_IS_ADDON="yes"
|
||||
|
||||
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 -R $PKG_BUILD/.install_pkg/usr/share/kodi/addons/$PKG_NAME/* $ADDON_BUILD/$PKG_ADDON_ID/
|
||||
|
||||
ADDONSO=$(xmlstarlet sel -t -v "/addon/extension/@library_linux" $ADDON_BUILD/$PKG_ADDON_ID/addon.xml)
|
||||
cp -L $PKG_BUILD/.install_pkg/usr/lib/kodi/addons/$PKG_NAME/$ADDONSO $ADDON_BUILD/$PKG_ADDON_ID/
|
||||
}
|
@ -0,0 +1,50 @@
|
||||
################################################################################
|
||||
# This file is part of LibreELEC - http://www.libreelec.tv
|
||||
# Copyright (C) 2009-2016 Lukas Rusak (lrusak@libreelec.tv)
|
||||
#
|
||||
# LibreELEC 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.
|
||||
#
|
||||
# LibreELEC 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 LibreELEC. If not, see <http://www.gnu.org/licenses/>.
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="peripheral.joystick"
|
||||
PKG_VERSION="76b7c40"
|
||||
PKG_REV="0"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="https://github.com/kodi-game/peripheral.joystick"
|
||||
PKG_URL="https://github.com/kodi-game/peripheral.joystick/archive/$PKG_VERSION.tar.gz"
|
||||
PKG_DEPENDS_TARGET="toolchain kodi-platform p8-platform"
|
||||
PKG_PRIORITY="optional"
|
||||
PKG_SECTION=""
|
||||
PKG_SHORTDESC="peripheral.joystick: Joystick support in Kodi"
|
||||
PKG_LONGDESC="peripheral.joystick provides joystick support and button mapping"
|
||||
PKG_AUTORECONF="no"
|
||||
|
||||
PKG_IS_ADDON="yes"
|
||||
PKG_ADDON_TYPE="kodi.peripheral"
|
||||
|
||||
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 -R $PKG_BUILD/.install_pkg/usr/share/kodi/addons/$PKG_NAME/* $ADDON_BUILD/$PKG_ADDON_ID/
|
||||
|
||||
ADDONSO=$(xmlstarlet sel -t -v "/addon/extension/@library_linux" $ADDON_BUILD/$PKG_ADDON_ID/addon.xml)
|
||||
cp -L $PKG_BUILD/.install_pkg/usr/lib/kodi/addons/$PKG_NAME/$ADDONSO $ADDON_BUILD/$PKG_ADDON_ID/
|
||||
}
|
@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="pvr.argustv"
|
||||
PKG_VERSION="654715b"
|
||||
PKG_VERSION="974820a"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="pvr.demo"
|
||||
PKG_VERSION="46d7bfb"
|
||||
PKG_VERSION="e74822f"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="pvr.dvblink"
|
||||
PKG_VERSION="88849a2"
|
||||
PKG_VERSION="82c7b4d"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="pvr.dvbviewer"
|
||||
PKG_VERSION="21423d4"
|
||||
PKG_VERSION="6ab861f"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="pvr.filmon"
|
||||
PKG_VERSION="54ae595"
|
||||
PKG_VERSION="0d8dd5b"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="pvr.hdhomerun"
|
||||
PKG_VERSION="ae94e4c"
|
||||
PKG_VERSION="fd9daf4"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="pvr.hts"
|
||||
PKG_VERSION="3c673b5"
|
||||
PKG_VERSION="0f88a35"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="pvr.iptvsimple"
|
||||
PKG_VERSION="1d95cd0"
|
||||
PKG_VERSION="b741cac"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="pvr.mediaportal.tvserver"
|
||||
PKG_VERSION="330d90b"
|
||||
PKG_VERSION="96f415e"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="pvr.mythtv"
|
||||
PKG_VERSION="f6b0483"
|
||||
PKG_VERSION="f8d25fd"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="pvr.nextpvr"
|
||||
PKG_VERSION="9214bc0"
|
||||
PKG_VERSION="d445c5a"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="pvr.njoy"
|
||||
PKG_VERSION="480c159"
|
||||
PKG_VERSION="b9b0ae4"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="pvr.pctv"
|
||||
PKG_VERSION="0096770"
|
||||
PKG_VERSION="f188048"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="pvr.stalker"
|
||||
PKG_VERSION="92893c7"
|
||||
PKG_VERSION="14a7c70"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="pvr.vbox"
|
||||
PKG_VERSION="15e864d"
|
||||
PKG_VERSION="e70146d"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="pvr.vdr.vnsi"
|
||||
PKG_VERSION="76652c2"
|
||||
PKG_VERSION="1236405"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="pvr.vuplus"
|
||||
PKG_VERSION="815ea2f"
|
||||
PKG_VERSION="d8c6f9b"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="pvr.wmc"
|
||||
PKG_VERSION="6c8d668"
|
||||
PKG_VERSION="898e2da"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
@ -0,0 +1,54 @@
|
||||
################################################################################
|
||||
# This file is part of LibreELEC - http://www.libreelec.tv
|
||||
# Copyright (C) 2009-2016 Lukas Rusak (lrusak@libreelec.tv)
|
||||
#
|
||||
# LibreELEC 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.
|
||||
#
|
||||
# LibreELEC 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 LibreELEC. If not, see <http://www.gnu.org/licenses/>.
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="screensaver.asterwave"
|
||||
PKG_VERSION="0dc2c48"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="https://github.com/notspiff/screensaver.asterwave"
|
||||
PKG_URL="https://github.com/notspiff/screensaver.asterwave/archive/$PKG_VERSION.tar.gz"
|
||||
PKG_DEPENDS_TARGET="toolchain kodi-platform soil"
|
||||
PKG_PRIORITY="optional"
|
||||
PKG_SECTION=""
|
||||
PKG_SHORTDESC="screensaver.asterwave"
|
||||
PKG_LONGDESC="screensaver.asterwave"
|
||||
PKG_AUTORECONF="no"
|
||||
|
||||
PKG_IS_ADDON="yes"
|
||||
PKG_ADDON_TYPE="xbmc.ui.screensaver"
|
||||
|
||||
if [ "$OPENGL" = "no" ] ; then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
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 -R $PKG_BUILD/.install_pkg/usr/share/kodi/addons/$PKG_NAME/* $ADDON_BUILD/$PKG_ADDON_ID/
|
||||
|
||||
ADDONSO=$(xmlstarlet sel -t -v "/addon/extension/@library_linux" $ADDON_BUILD/$PKG_ADDON_ID/addon.xml)
|
||||
cp -L $PKG_BUILD/.install_pkg/usr/lib/kodi/addons/$PKG_NAME/$ADDONSO $ADDON_BUILD/$PKG_ADDON_ID/
|
||||
}
|
@ -0,0 +1,54 @@
|
||||
################################################################################
|
||||
# This file is part of LibreELEC - http://www.libreelec.tv
|
||||
# Copyright (C) 2009-2016 Lukas Rusak (lrusak@libreelec.tv)
|
||||
#
|
||||
# LibreELEC 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.
|
||||
#
|
||||
# LibreELEC 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 LibreELEC. If not, see <http://www.gnu.org/licenses/>.
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="screensaver.cpblobs"
|
||||
PKG_VERSION="87a3abf"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="https://github.com/notspiff/screensaver.cpblobs"
|
||||
PKG_URL="https://github.com/notspiff/screensaver.cpblobs/archive/$PKG_VERSION.tar.gz"
|
||||
PKG_DEPENDS_TARGET="toolchain kodi-platform soil"
|
||||
PKG_PRIORITY="optional"
|
||||
PKG_SECTION=""
|
||||
PKG_SHORTDESC="screensaver.cpblobs"
|
||||
PKG_LONGDESC="screensaver.cpblobs"
|
||||
PKG_AUTORECONF="no"
|
||||
|
||||
PKG_IS_ADDON="yes"
|
||||
PKG_ADDON_TYPE="xbmc.ui.screensaver"
|
||||
|
||||
if [ "$OPENGL" = "no" ] ; then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
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 -R $PKG_BUILD/.install_pkg/usr/share/kodi/addons/$PKG_NAME/* $ADDON_BUILD/$PKG_ADDON_ID/
|
||||
|
||||
ADDONSO=$(xmlstarlet sel -t -v "/addon/extension/@library_linux" $ADDON_BUILD/$PKG_ADDON_ID/addon.xml)
|
||||
cp -L $PKG_BUILD/.install_pkg/usr/lib/kodi/addons/$PKG_NAME/$ADDONSO $ADDON_BUILD/$PKG_ADDON_ID/
|
||||
}
|
@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="screensaver.shadertoy"
|
||||
PKG_VERSION="7a6f6fe"
|
||||
PKG_VERSION="394de3d"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
@ -0,0 +1,50 @@
|
||||
################################################################################
|
||||
# This file is part of LibreELEC - http://www.libreelec.tv
|
||||
# Copyright (C) 2009-2016 Lukas Rusak (lrusak@libreelec.tv)
|
||||
#
|
||||
# LibreELEC 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.
|
||||
#
|
||||
# LibreELEC 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 LibreELEC. If not, see <http://www.gnu.org/licenses/>.
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="visualization.pictureit"
|
||||
PKG_VERSION="e11d577"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="x86_64"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="http://www.kodi.tv"
|
||||
PKG_URL="https://github.com/linuxwhatelse/visualization.pictureit/archive/$PKG_VERSION.tar.gz"
|
||||
PKG_DEPENDS_TARGET="toolchain kodi-platform"
|
||||
PKG_PRIORITY="optional"
|
||||
PKG_SECTION=""
|
||||
PKG_SHORTDESC="visualization.pictureit"
|
||||
PKG_LONGDESC="visualization.pictureit"
|
||||
PKG_AUTORECONF="no"
|
||||
|
||||
PKG_IS_ADDON="yes"
|
||||
PKG_ADDON_TYPE="xbmc.player.musicviz"
|
||||
|
||||
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 -R $PKG_BUILD/.install_pkg/usr/share/kodi/addons/$PKG_NAME/* $ADDON_BUILD/$PKG_ADDON_ID/
|
||||
|
||||
ADDONSO=$(xmlstarlet sel -t -v "/addon/extension/@library_linux" $ADDON_BUILD/$PKG_ADDON_ID/addon.xml)
|
||||
cp -L $PKG_BUILD/.install_pkg/usr/lib/kodi/addons/$PKG_NAME/$ADDONSO $ADDON_BUILD/$PKG_ADDON_ID/
|
||||
}
|
@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="visualization.shadertoy"
|
||||
PKG_VERSION="f998800"
|
||||
PKG_VERSION="5b64785"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="visualization.spectrum"
|
||||
PKG_VERSION="9dbe53a"
|
||||
PKG_VERSION="d662ffe"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
@ -1,39 +0,0 @@
|
||||
diff -Naur a/CMakeLists.txt b/CMakeLists.txt
|
||||
--- a/CMakeLists.txt 2016-03-03 12:18:48.000000000 -0800
|
||||
+++ b/CMakeLists.txt 2016-04-11 12:38:06.499927119 -0700
|
||||
@@ -6,8 +6,8 @@
|
||||
list(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR})
|
||||
|
||||
find_package(kodi REQUIRED)
|
||||
-#find_package(platform REQUIRED)
|
||||
-find_package(p8-platform REQUIRED)
|
||||
+find_package(platform REQUIRED)
|
||||
+#find_package(p8-platform REQUIRED)
|
||||
find_package(kodiplatform REQUIRED)
|
||||
find_package(CURL REQUIRED)
|
||||
#find_package(yajl REQUIRED) #why is it so damn difficult to include Kodi's libraries???
|
||||
@@ -94,9 +94,9 @@
|
||||
endif()
|
||||
|
||||
include_directories(${INCLUDES}
|
||||
- ${CURL_INCLUDE_DIR}
|
||||
+ ${CURL_INCLUDE_DIR}
|
||||
${KODI_INCLUDE_DIR}
|
||||
- ${p8-platform_INCLUDE_DIRS}
|
||||
+ ${platform_INCLUDE_DIRS}
|
||||
${kodiplatform_INCLUDE_DIRS})
|
||||
# ${YAJL_INCLUDE_DIR}
|
||||
# ${platform_INCLUDE_DIRS}
|
||||
diff -Naur a/src/WavforHue_Kodi.h b/src/WavforHue_Kodi.h
|
||||
--- a/src/WavforHue_Kodi.h 2016-03-03 12:18:48.000000000 -0800
|
||||
+++ b/src/WavforHue_Kodi.h 2016-04-11 12:38:06.500927127 -0700
|
||||
@@ -23,6 +23,6 @@
|
||||
// Is this worth it?
|
||||
//#include <libKODI_guilib.h>
|
||||
#include <libXBMC_addon.h>
|
||||
-#include "p8-platform/util/util.h"
|
||||
+#include "platform/util/util.h"
|
||||
extern ADDON::CHelper_libXBMC_addon *XBMC;
|
||||
-#endif
|
||||
+#endif
|
||||
\ No newline at end of file
|
@ -17,13 +17,13 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="kodi-platform"
|
||||
PKG_VERSION="15edaf7"
|
||||
PKG_VERSION="fed924e"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="http://www.kodi.tv"
|
||||
PKG_URL="https://github.com/xbmc/kodi-platform/archive/$PKG_VERSION.tar.gz"
|
||||
PKG_DEPENDS_TARGET="toolchain tinyxml kodi platform"
|
||||
PKG_DEPENDS_TARGET="toolchain tinyxml kodi p8-platform"
|
||||
PKG_PRIORITY="optional"
|
||||
PKG_SECTION="multimedia"
|
||||
PKG_SHORTDESC="kodi-platform:"
|
||||
|
@ -1,10 +1,10 @@
|
||||
diff -Naur kodi-platform-15edaf7.orig/CMakeLists.txt kodi-platform-15edaf7/CMakeLists.txt
|
||||
--- kodi-platform-15edaf7.orig/CMakeLists.txt 2015-10-22 17:44:43.034540766 -0700
|
||||
+++ kodi-platform-15edaf7/CMakeLists.txt 2015-10-22 17:46:38.851326343 -0700
|
||||
diff -Naur a/CMakeLists.txt b/CMakeLists.txt
|
||||
--- a/CMakeLists.txt 2016-01-06 00:56:44.616186365 +0100
|
||||
+++ b/CMakeLists.txt 2016-01-06 00:59:03.502490684 +0100
|
||||
@@ -9,7 +9,6 @@
|
||||
find_package(TinyXML REQUIRED)
|
||||
find_package(Threads REQUIRED)
|
||||
find_package(platform REQUIRED)
|
||||
find_package(p8-platform REQUIRED)
|
||||
-include(UseMultiArch.cmake)
|
||||
include(CheckAtomic.cmake)
|
||||
|
||||
|
@ -1,14 +0,0 @@
|
||||
--- a/720p/IncludesHomeMenuItems.xml 2012-07-22 21:56:07.000000000 +0400
|
||||
+++ b/720p/IncludesHomeMenuItems.xml 2012-09-13 23:34:16.975470148 +0400
|
||||
@@ -189,6 +189,11 @@
|
||||
<label>5</label>
|
||||
<onclick>ActivateWindow(Settings)</onclick>
|
||||
</control>
|
||||
+ <control type="button" id="90120">
|
||||
+ <include>ButtonHomeSubCommonValues</include>
|
||||
+ <label>@DISTRONAME@</label>
|
||||
+ <onclick>RunAddon(service.libreelec.settings)</onclick>
|
||||
+ </control>
|
||||
<control type="button" id="90123">
|
||||
<include>ButtonHomeSubCommonValues</include>
|
||||
<label>7</label>
|
@ -16,8 +16,8 @@
|
||||
# along with OpenELEC. If not, see <http://www.gnu.org/licenses/>.
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="kodi-theme-Confluence"
|
||||
PKG_VERSION="16.1-rc2-a7caa16"
|
||||
PKG_NAME="kodi-theme-Estuary"
|
||||
PKG_VERSION="17.0-alpha1-2c72ac9"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
@ -26,7 +26,7 @@ PKG_URL="$DISTRO_SRC/$PKG_NAME-$PKG_VERSION.tar.xz"
|
||||
PKG_DEPENDS_TARGET="toolchain kodi:host"
|
||||
PKG_PRIORITY="optional"
|
||||
PKG_SECTION="mediacenter"
|
||||
PKG_SHORTDESC="kodi-theme-Confluence: Kodi Mediacenter default theme"
|
||||
PKG_SHORTDESC="kodi-theme-Estuary: Kodi Mediacenter default theme"
|
||||
PKG_LONGDESC="Kodi Media Center (which was formerly named Xbox Media Center and XBMC) is a free and open source cross-platform media player and home entertainment system software with a 10-foot user interface designed for the living-room TV. Its graphical user interface allows the user to easily manage video, photos, podcasts, and music from a computer, optical disk, local network, and the internet using a remote control."
|
||||
|
||||
PKG_IS_ADDON="no"
|
||||
@ -37,19 +37,28 @@ make_target() {
|
||||
-output Textures.xbt \
|
||||
-dupecheck \
|
||||
-use_none
|
||||
|
||||
for theme in themes/*; do
|
||||
TexturePacker -input $theme \
|
||||
-output $(basename $theme).xbt \
|
||||
-dupecheck
|
||||
done
|
||||
}
|
||||
|
||||
makeinstall_target() {
|
||||
mkdir -p $INSTALL/usr/share/kodi/addons/skin.confluence
|
||||
cp -R */ $INSTALL/usr/share/kodi/addons/skin.confluence
|
||||
cp *.txt $INSTALL/usr/share/kodi/addons/skin.confluence
|
||||
cp *.xml $INSTALL/usr/share/kodi/addons/skin.confluence
|
||||
cp *.png $INSTALL/usr/share/kodi/addons/skin.confluence
|
||||
rm -rf $INSTALL/usr/share/kodi/addons/skin.confluence/media
|
||||
mkdir -p $INSTALL/usr/share/kodi/addons/skin.estuary
|
||||
cp -R */ $INSTALL/usr/share/kodi/addons/skin.estuary
|
||||
cp *.txt $INSTALL/usr/share/kodi/addons/skin.estuary
|
||||
cp *.xml $INSTALL/usr/share/kodi/addons/skin.estuary
|
||||
cp *.png $INSTALL/usr/share/kodi/addons/skin.estuary
|
||||
rm -rf $INSTALL/usr/share/kodi/addons/skin.estuary/media
|
||||
|
||||
mkdir -p $INSTALL/usr/share/kodi/addons/skin.confluence/media
|
||||
cp Textures.xbt $INSTALL/usr/share/kodi/addons/skin.confluence/media
|
||||
mkdir -p $INSTALL/usr/share/kodi/addons/skin.estuary/media
|
||||
cp Textures.xbt $INSTALL/usr/share/kodi/addons/skin.estuary/media
|
||||
for theme in themes/*; do
|
||||
cp $(basename $theme).xbt $INSTALL/usr/share/kodi/addons/skin.estuary/media
|
||||
done
|
||||
|
||||
# Rebrand
|
||||
sed -e "s,@DISTRONAME@,$DISTRONAME,g" -i $INSTALL/usr/share/kodi/addons/skin.confluence/720p/IncludesHomeMenuItems.xml
|
||||
sed -e "s,@DISTRONAME@,$DISTRONAME,g" -i $INSTALL/usr/share/kodi/addons/skin.estuary/1080i/Home.xml
|
||||
}
|
@ -0,0 +1,16 @@
|
||||
diff -Naur a/1080i/Home.xml b/1080i/Home.xml
|
||||
--- a/1080i/Home.xml 2016-03-29 23:29:42.616607010 +0100
|
||||
+++ b/1080i/Home.xml 2016-03-29 23:30:49.205150336 +0100
|
||||
@@ -1090,6 +1090,12 @@
|
||||
<property name="id">weather</property>
|
||||
<visible>!Skin.HasSetting(HomeMenuNoWeatherButton)</visible>
|
||||
</item>
|
||||
+ <item>
|
||||
+ <label>@DISTRONAME@</label>
|
||||
+ <onclick>RunAddon(service.libreelec.settings)</onclick>
|
||||
+ <thumb>icons/home/libreelec.png</thumb>
|
||||
+ <property name="id">libreelec</property>
|
||||
+ </item>
|
||||
</content>
|
||||
</control>
|
||||
</control>
|
Binary file not shown.
After Width: | Height: | Size: 1.2 KiB |
@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<addon id="repository.libreelec.tv"
|
||||
name="LibreELEC Add-ons"
|
||||
version="7.0.0"
|
||||
version="8.0.0"
|
||||
provider-name="Team LibreELEC">
|
||||
<extension point="xbmc.addon.repository"
|
||||
name="LibreELEC Add-ons">
|
||||
|
@ -17,13 +17,13 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="kodi"
|
||||
PKG_VERSION="16.1-rc2-a7caa16"
|
||||
PKG_VERSION="17.0-alpha1-2c72ac9"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="http://www.kodi.tv"
|
||||
PKG_URL="$DISTRO_SRC/$PKG_NAME-$PKG_VERSION.tar.xz"
|
||||
PKG_DEPENDS_TARGET="toolchain kodi:host xmlstarlet:host libsquish boost Python zlib bzip2 systemd pciutils lzo pcre swig:host libass curl rtmpdump fontconfig fribidi tinyxml libjpeg-turbo libpng tiff freetype jasper libogg libcdio libmpeg2 taglib libxml2 libxslt yajl sqlite libvorbis ffmpeg crossguid giflib"
|
||||
PKG_DEPENDS_TARGET="toolchain kodi:host xmlstarlet:host Python zlib bzip2 systemd pciutils lzo pcre swig:host libass curl rtmpdump fontconfig fribidi tinyxml libjpeg-turbo libpng freetype libogg libcdio taglib libxml2 libxslt yajl sqlite libvorbis ffmpeg crossguid giflib"
|
||||
PKG_DEPENDS_HOST="lzo:host libpng:host libjpeg-turbo:host giflib:host"
|
||||
PKG_PRIORITY="optional"
|
||||
PKG_SECTION="mediacenter"
|
||||
@ -49,7 +49,7 @@ fi
|
||||
|
||||
if [ ! "$OPENGL" = "no" ]; then
|
||||
# for OpenGL (GLX) support
|
||||
PKG_DEPENDS_TARGET="$PKG_DEPENDS_TARGET $OPENGL glu glew"
|
||||
PKG_DEPENDS_TARGET="$PKG_DEPENDS_TARGET $OPENGL glu"
|
||||
KODI_OPENGL="--enable-gl"
|
||||
else
|
||||
KODI_OPENGL="--disable-gl"
|
||||
@ -228,14 +228,14 @@ export CXXFLAGS_FOR_BUILD="$HOST_CXXFLAGS"
|
||||
export CFLAGS_FOR_BUILD="$HOST_CFLAGS"
|
||||
export LDFLAGS_FOR_BUILD="$HOST_LDFLAGS"
|
||||
|
||||
export PYTHON_VERSION="2.7"
|
||||
export PYTHON_VERSION=2.7
|
||||
export PYTHON_CPPFLAGS="-I$SYSROOT_PREFIX/usr/include/python$PYTHON_VERSION"
|
||||
export PYTHON_LDFLAGS="-L$SYSROOT_PREFIX/usr/lib/python$PYTHON_VERSION -lpython$PYTHON_VERSION"
|
||||
export PYTHON_SITE_PKG="$SYSROOT_PREFIX/usr/lib/python$PYTHON_VERSION/site-packages"
|
||||
export ac_python_version="$PYTHON_VERSION"
|
||||
|
||||
PKG_CONFIGURE_OPTS_TARGET="gl_cv_func_gettimeofday_clobber=no \
|
||||
ac_cv_lib_bluetooth_hci_devid=no \
|
||||
ac_python_version=$PYTHON_VERSION \
|
||||
--disable-libbluetooth \
|
||||
--disable-debug \
|
||||
--disable-optimizations \
|
||||
$KODI_OPENGL \
|
||||
@ -279,34 +279,41 @@ PKG_CONFIGURE_OPTS_TARGET="gl_cv_func_gettimeofday_clobber=no \
|
||||
|
||||
pre_configure_host() {
|
||||
# kodi fails to build in subdirs
|
||||
cd $ROOT/$PKG_BUILD
|
||||
rm -rf .$HOST_NAME
|
||||
rm -rf $ROOT/$PKG_BUILD/.$HOST_NAME
|
||||
}
|
||||
|
||||
configure_host() {
|
||||
: # not needed
|
||||
}
|
||||
|
||||
make_host() {
|
||||
make -C tools/depends/native/JsonSchemaBuilder
|
||||
make -C tools/depends/native/TexturePacker
|
||||
mkdir -p $ROOT/$PKG_BUILD/tools/depends/native/JsonSchemaBuilder/bin && cd $_
|
||||
cmake -DCMAKE_TOOLCHAIN_FILE=$CMAKE_CONF \
|
||||
-DCMAKE_INSTALL_PREFIX=/usr \
|
||||
..
|
||||
make
|
||||
mkdir -p $ROOT/$PKG_BUILD/tools/depends/native/TexturePacker/bin && cd $_
|
||||
cmake -DCMAKE_TOOLCHAIN_FILE=$CMAKE_CONF \
|
||||
-DCMAKE_INSTALL_PREFIX=/usr \
|
||||
-DCORE_SOURCE_DIR=$ROOT/$PKG_BUILD \
|
||||
-DCMAKE_CXX_FLAGS="-std=c++11 -DTARGET_POSIX -DTARGET_LINUX -D_LINUX -I$ROOT/$PKG_BUILD/xbmc/linux" \
|
||||
..
|
||||
make
|
||||
}
|
||||
|
||||
makeinstall_host() {
|
||||
cp -PR tools/depends/native/JsonSchemaBuilder/native/JsonSchemaBuilder $ROOT/$TOOLCHAIN/bin
|
||||
rm -f $ROOT/$TOOLCHAIN/bin/TexturePacker
|
||||
cp -PR tools/depends/native/TexturePacker/native/TexturePacker $ROOT/$TOOLCHAIN/bin
|
||||
cp -P $ROOT/$PKG_BUILD/tools/depends/native/TexturePacker/bin/TexturePacker $ROOT/$TOOLCHAIN/bin
|
||||
}
|
||||
|
||||
pre_build_target() {
|
||||
# adding fake Makefile for stripped skin
|
||||
mkdir -p $PKG_BUILD/addons/skin.confluence/media
|
||||
touch $PKG_BUILD/addons/skin.confluence/media/Makefile.in
|
||||
|
||||
# autoreconf
|
||||
BOOTSTRAP_STANDALONE=1 make -C $PKG_BUILD -f bootstrap.mk
|
||||
mkdir -p $ROOT/$PKG_BUILD/addons/skin.estuary/media
|
||||
touch $ROOT/$PKG_BUILD/addons/skin.estuary/media/Makefile.in
|
||||
}
|
||||
|
||||
pre_configure_target() {
|
||||
# kodi fails to build in subdirs
|
||||
cd $ROOT/$PKG_BUILD
|
||||
rm -rf .$TARGET_NAME
|
||||
rm -rf $ROOT/$PKG_BUILD/.$TARGET_NAME
|
||||
|
||||
# kodi should never be built with lto
|
||||
strip_lto
|
||||
@ -316,6 +323,9 @@ pre_configure_target() {
|
||||
export LIBS="$LIBS -lz"
|
||||
|
||||
export JSON_BUILDER=$ROOT/$TOOLCHAIN/bin/JsonSchemaBuilder
|
||||
|
||||
# autoreconf
|
||||
BOOTSTRAP_STANDALONE=1 make -f $ROOT/$PKG_BUILD/bootstrap.mk
|
||||
}
|
||||
|
||||
make_target() {
|
||||
@ -323,8 +333,8 @@ make_target() {
|
||||
SKIN_DIR="skin.`tolower $SKIN_DEFAULT`"
|
||||
|
||||
# setup default skin inside the sources
|
||||
sed -i -e "s|skin.confluence|$SKIN_DIR|g" $ROOT/$PKG_BUILD/xbmc/settings/Settings.h
|
||||
sed -i -e "s|skin.confluence|$SKIN_DIR|g" $ROOT/$PKG_BUILD/system/settings/settings.xml
|
||||
sed -i -e "s|skin.estuary|$SKIN_DIR|g" $ROOT/$PKG_BUILD/xbmc/system.h
|
||||
sed -i -e "s|skin.estuary|$SKIN_DIR|g" $ROOT/$PKG_BUILD/system/settings/settings.xml
|
||||
|
||||
make externals
|
||||
make kodi.bin
|
||||
@ -340,9 +350,12 @@ post_makeinstall_target() {
|
||||
rm -rf $INSTALL/usr/bin/xbmc
|
||||
rm -rf $INSTALL/usr/bin/xbmc-standalone
|
||||
rm -rf $INSTALL/usr/lib/kodi/*.cmake
|
||||
|
||||
# more binaddons cross compile badness meh
|
||||
sed -i -e "s:INCLUDE_DIR /usr/include/kodi:INCLUDE_DIR $SYSROOT_PREFIX/usr/include/kodi:g" $SYSROOT_PREFIX/usr/lib/kodi/kodi-config.cmake
|
||||
rm -rf $INSTALL/usr/share/applications
|
||||
rm -rf $INSTALL/usr/share/icons
|
||||
rm -rf $INSTALL/usr/share/kodi/addons/skin.estouchy
|
||||
rm -rf $INSTALL/usr/share/kodi/addons/service.xbmc.versioncheck
|
||||
rm -rf $INSTALL/usr/share/kodi/addons/visualization.vortex
|
||||
rm -rf $INSTALL/usr/share/xsessions
|
||||
|
||||
mkdir -p $INSTALL/usr/lib/kodi
|
||||
cp $PKG_DIR/scripts/kodi-config $INSTALL/usr/lib/kodi
|
||||
@ -361,12 +374,6 @@ post_makeinstall_target() {
|
||||
rm -rf $INSTALL/usr/lib/kodi/kodi-xrandr
|
||||
fi
|
||||
|
||||
rm -rf $INSTALL/usr/share/applications
|
||||
rm -rf $INSTALL/usr/share/icons
|
||||
rm -rf $INSTALL/usr/share/kodi/addons/service.xbmc.versioncheck
|
||||
rm -rf $INSTALL/usr/share/kodi/addons/visualization.vortex
|
||||
rm -rf $INSTALL/usr/share/xsessions
|
||||
|
||||
mkdir -p $INSTALL/usr/share/kodi/addons
|
||||
cp -R $PKG_DIR/config/os.openelec.tv $INSTALL/usr/share/kodi/addons
|
||||
$SED "s|@OS_VERSION@|$OS_VERSION|g" -i $INSTALL/usr/share/kodi/addons/os.openelec.tv/addon.xml
|
||||
@ -375,8 +382,8 @@ post_makeinstall_target() {
|
||||
cp -R $PKG_DIR/config/repository.libreelec.tv $INSTALL/usr/share/kodi/addons
|
||||
$SED "s|@ADDON_URL@|$ADDON_URL|g" -i $INSTALL/usr/share/kodi/addons/repository.libreelec.tv/addon.xml
|
||||
|
||||
mkdir -p $INSTALL/usr/lib/python"$PYTHON_VERSION"/site-packages/kodi
|
||||
cp -R tools/EventClients/lib/python/* $INSTALL/usr/lib/python"$PYTHON_VERSION"/site-packages/kodi
|
||||
mkdir -p $INSTALL/usr/lib/python$PYTHON_VERSION/site-packages/kodi
|
||||
cp -R tools/EventClients/lib/python/* $INSTALL/usr/lib/python$PYTHON_VERSION/site-packages/kodi
|
||||
|
||||
mkdir -p $INSTALL/usr/share/kodi/config
|
||||
cp $PKG_DIR/config/guisettings.xml $INSTALL/usr/share/kodi/config
|
||||
@ -405,6 +412,19 @@ post_makeinstall_target() {
|
||||
cp $PKG_DIR/config/appliance.xml $INSTALL/usr/share/kodi/system/settings
|
||||
fi
|
||||
|
||||
# update addon manifest
|
||||
ADDON_MANIFEST=$INSTALL/usr/share/kodi/system/addon-manifest.xml
|
||||
xmlstarlet ed -L -d "/addons/addon[text()='service.xbmc.versioncheck']" $ADDON_MANIFEST
|
||||
xmlstarlet ed -L -d "/addons/addon[text()='skin.estouchy']" $ADDON_MANIFEST
|
||||
xmlstarlet ed -L --subnode "/addons" -t elem -n "addon" -v "peripheral.joystick" $ADDON_MANIFEST
|
||||
xmlstarlet ed -L --subnode "/addons" -t elem -n "addon" -v "os.libreelec.tv" $ADDON_MANIFEST
|
||||
xmlstarlet ed -L --subnode "/addons" -t elem -n "addon" -v "repository.libreelec.tv" $ADDON_MANIFEST
|
||||
xmlstarlet ed -L --subnode "/addons" -t elem -n "addon" -v "service.libreelec.settings" $ADDON_MANIFEST
|
||||
|
||||
# more binaddons cross compile badness meh
|
||||
sed -i -e "s:INCLUDE_DIR /usr/include/kodi:INCLUDE_DIR $SYSROOT_PREFIX/usr/include/kodi:g" $SYSROOT_PREFIX/usr/lib/kodi/kodi-config.cmake
|
||||
|
||||
|
||||
if [ "$KODI_EXTRA_FONTS" = yes ]; then
|
||||
mkdir -p $INSTALL/usr/share/kodi/media/Fonts
|
||||
cp $PKG_DIR/fonts/*.ttf $INSTALL/usr/share/kodi/media/Fonts
|
||||
|
@ -121,14 +121,14 @@ index c46cba1..ed3f35f 100644
|
||||
bool m_AppFocused;
|
||||
bool m_renderGUI;
|
||||
|
||||
diff --git a/xbmc/main/main.cpp b/xbmc/main/main.cpp
|
||||
diff --git a/xbmc/platform/posix/main.cpp b/xbmc/platform/posix/main.cpp
|
||||
index 01027f8..4cfb04e 100644
|
||||
--- a/xbmc/main/main.cpp
|
||||
+++ b/xbmc/main/main.cpp
|
||||
--- a/xbmc/platform/posix/main.cpp
|
||||
+++ b/xbmc/platform/posix/main.cpp
|
||||
@@ -41,12 +41,27 @@
|
||||
#include "input/linux/LIRC.h"
|
||||
#endif
|
||||
#include "XbmcContext.h"
|
||||
#include "platform/XbmcContext.h"
|
||||
+#include "Application.h"
|
||||
+
|
||||
+void xbmc_term_handler(int signum)
|
||||
|
@ -12,13 +12,13 @@ index 5ac2482..cb84940 100644
|
||||
--- a/xbmc/windowing/X11/WinSystemX11.h
|
||||
+++ b/xbmc/windowing/X11/WinSystemX11.h
|
||||
@@ -54,6 +54,7 @@ public:
|
||||
virtual bool ResizeWindow(int newWidth, int newHeight, int newLeft, int newTop);
|
||||
virtual bool SetFullScreen(bool fullScreen, RESOLUTION_INFO& res, bool blankOtherDisplays);
|
||||
virtual void UpdateResolutions();
|
||||
+ virtual bool CanDoWindowed() { return false; }
|
||||
virtual int GetNumScreens() { return 1; }
|
||||
virtual int GetCurrentScreen() { return m_nScreen; }
|
||||
virtual void ShowOSMouse(bool show);
|
||||
bool ResizeWindow(int newWidth, int newHeight, int newLeft, int newTop) override;
|
||||
bool SetFullScreen(bool fullScreen, RESOLUTION_INFO& res, bool blankOtherDisplays) override;
|
||||
void UpdateResolutions() override;
|
||||
+ bool CanDoWindowed() override { return false; }
|
||||
int GetNumScreens() override { return 1; }
|
||||
int GetCurrentScreen() override { return m_nScreen; }
|
||||
void ShowOSMouse(bool show) override;
|
||||
--
|
||||
2.5.0
|
||||
|
||||
|
@ -1,17 +1,18 @@
|
||||
From b70f963a0963735e627b12cf361e4e30d6c2a799 Mon Sep 17 00:00:00 2001
|
||||
From: Lukas Rusak <lorusak@gmail.com>
|
||||
Date: Tue, 26 Jan 2016 08:31:52 +0100
|
||||
Subject: [PATCH] change pulseaudio default device name to Bluetooth Audio
|
||||
From cd60daafb0c6b1e1de94dbc944bb247a8f810b50 Mon Sep 17 00:00:00 2001
|
||||
From: fritsch <peter.fruehberger@gmail.com>
|
||||
Date: Fri, 29 Jan 2016 16:32:06 +0100
|
||||
Subject: [PATCH] [PATCH] change pulseaudio default device name to Bluetooth
|
||||
Audio
|
||||
|
||||
---
|
||||
xbmc/cores/AudioEngine/Sinks/AESinkPULSE.cpp | 4 +++-
|
||||
1 file changed, 3 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/xbmc/cores/AudioEngine/Sinks/AESinkPULSE.cpp b/xbmc/cores/AudioEngine/Sinks/AESinkPULSE.cpp
|
||||
index 67b7b90..8537163 100644
|
||||
index 7c669b7..043d0d5 100644
|
||||
--- a/xbmc/cores/AudioEngine/Sinks/AESinkPULSE.cpp
|
||||
+++ b/xbmc/cores/AudioEngine/Sinks/AESinkPULSE.cpp
|
||||
@@ -362,12 +362,14 @@ static void SinkInfoRequestCallback(pa_context *c, const pa_sink_info *i, int eo
|
||||
@@ -394,13 +394,15 @@ static void SinkInfoRequestCallback(pa_context *c, const pa_sink_info *i, int eo
|
||||
CAEDeviceInfo defaultDevice;
|
||||
defaultDevice.m_deviceName = std::string("Default");
|
||||
defaultDevice.m_displayName = std::string("Default");
|
||||
@ -21,6 +22,7 @@ index 67b7b90..8537163 100644
|
||||
defaultDevice.m_channels = CAEChannelInfo(AE_CH_LAYOUT_2_0);
|
||||
defaultDevice.m_sampleRates.assign(defaultSampleRates, defaultSampleRates + ARRAY_SIZE(defaultSampleRates));
|
||||
defaultDevice.m_deviceType = AE_DEVTYPE_PCM;
|
||||
defaultDevice.m_wantsIECPassthrough = true;
|
||||
sinkStruct->list->push_back(defaultDevice);
|
||||
+ // OE only wants the default device - so we are done here
|
||||
+ return;
|
||||
@ -28,5 +30,5 @@ index 67b7b90..8537163 100644
|
||||
if (i && i->name)
|
||||
{
|
||||
--
|
||||
1.9.3
|
||||
2.5.0
|
||||
|
||||
|
@ -0,0 +1,19 @@
|
||||
diff -Naur a/Makefile.in b/Makefile.in
|
||||
--- a/Makefile.in 2016-02-25 15:54:54.305799646 +0000
|
||||
+++ b/Makefile.in 2016-02-25 15:55:30.609990228 +0000
|
||||
@@ -11,7 +11,6 @@
|
||||
|
||||
DVDPCODECS_DIRS= \
|
||||
lib \
|
||||
- lib/libdvd
|
||||
|
||||
VideoPlayer_ARCHIVES=xbmc/cores/VideoPlayer/VideoPlayer.a \
|
||||
xbmc/cores/VideoPlayer/DVDCodecs/DVDCodecs.a \
|
||||
@@ -332,7 +331,6 @@
|
||||
$(MAKE) -C lib/addons/library.kodi.peripheral
|
||||
$(MAKE) -C lib/addons/library.xbmc.pvr
|
||||
dvdpcodecs: dllloader
|
||||
- $(MAKE) -C lib/libdvd
|
||||
|
||||
dvdpextcodecs:
|
||||
|
@ -1,40 +1,8 @@
|
||||
From ae4e63aa165583ef5eaab4759e7af24eeffbb197 Mon Sep 17 00:00:00 2001
|
||||
From: croniccorey <cronmod.dev@gmail.com>
|
||||
Date: Sun, 13 Dec 2015 16:37:05 -0500
|
||||
Subject: [PATCH] KODI: Add support for aarch64 platform
|
||||
|
||||
---
|
||||
addons/library.xbmc.addon/libXBMC_addon.h | 2 ++
|
||||
configure.ac | 12 ++++++++++++
|
||||
m4/xbmc_arch.m4 | 2 +-
|
||||
xbmc/cores/DllLoader/DllLoader.h | 2 +-
|
||||
xbmc/cores/DllLoader/ldt_keeper.c | 2 +-
|
||||
xbmc/cores/VideoRenderers/LinuxRendererGL.h | 2 +-
|
||||
xbmc/linux/PlatformDefs.h | 2 +-
|
||||
xbmc/threads/Atomics.cpp | 2 +-
|
||||
xbmc/utils/CPUInfo.cpp | 2 +-
|
||||
xbmc/utils/MathUtils.h | 3 ++-
|
||||
10 files changed, 23 insertions(+), 8 deletions(-)
|
||||
|
||||
diff --git a/addons/library.xbmc.addon/libXBMC_addon.h b/addons/library.xbmc.addon/libXBMC_addon.h
|
||||
index c3ed54f..76190b6 100644
|
||||
--- a/addons/library.xbmc.addon/libXBMC_addon.h
|
||||
+++ b/addons/library.xbmc.addon/libXBMC_addon.h
|
||||
@@ -55,6 +55,8 @@ typedef intptr_t ssize_t;
|
||||
#define ADDON_HELPER_ARCH "powerpc64-linux"
|
||||
#elif defined(__ARMEL__)
|
||||
#define ADDON_HELPER_ARCH "arm"
|
||||
+#elif defined(__aarch64__)
|
||||
+#define ADDON_HELPER_ARCH "aarch64"
|
||||
#elif defined(__mips__)
|
||||
#define ADDON_HELPER_ARCH "mips"
|
||||
#else
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index c767357..80f3807 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -691,6 +691,18 @@ case $host in
|
||||
use_wayland=no
|
||||
diff -Naur a/configure.ac b/configure.ac
|
||||
--- a/configure.ac 2016-02-14 00:19:36.000000000 +0100
|
||||
+++ b/configure.ac 2016-03-02 09:15:52.504860258 +0100
|
||||
@@ -641,6 +641,18 @@
|
||||
use_gl=no
|
||||
USE_STATIC_FFMPEG=1
|
||||
;;
|
||||
+ aarch64*-*-linux-gnu*)
|
||||
@ -52,11 +20,10 @@ index c767357..80f3807 100644
|
||||
arm*-*linux-android*)
|
||||
target_platform=target_android
|
||||
use_arch="arm"
|
||||
diff --git a/m4/xbmc_arch.m4 b/m4/xbmc_arch.m4
|
||||
index 0b66a82..fa08537 100644
|
||||
--- a/m4/xbmc_arch.m4
|
||||
+++ b/m4/xbmc_arch.m4
|
||||
@@ -60,7 +60,7 @@ case $host in
|
||||
diff -Naur a/m4/xbmc_arch.m4 b/m4/xbmc_arch.m4
|
||||
--- a/m4/xbmc_arch.m4 2016-02-14 00:19:42.000000000 +0100
|
||||
+++ b/m4/xbmc_arch.m4 2016-03-02 09:16:33.341943374 +0100
|
||||
@@ -60,7 +60,7 @@
|
||||
powerpc64-*-linux-gnu*|powerpc64-*-linux-uclibc*)
|
||||
AC_SUBST(ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_LINUX -D_LINUX -D_POWERPC64")
|
||||
;;
|
||||
@ -65,95 +32,3 @@ index 0b66a82..fa08537 100644
|
||||
AC_SUBST(ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_LINUX -D_LINUX")
|
||||
;;
|
||||
mips*-*-linux-gnu*|mips*-*-linux-uclibc*)
|
||||
diff --git a/xbmc/cores/DllLoader/DllLoader.h b/xbmc/cores/DllLoader/DllLoader.h
|
||||
index 070aee6..e669203 100644
|
||||
--- a/xbmc/cores/DllLoader/DllLoader.h
|
||||
+++ b/xbmc/cores/DllLoader/DllLoader.h
|
||||
@@ -23,7 +23,7 @@
|
||||
#include "coffldr.h"
|
||||
#include "LibraryLoader.h"
|
||||
|
||||
-#if defined(__linux__) && !defined(__powerpc__) && !defined(__arm__) && !defined(__mips__)
|
||||
+#if defined(__linux__) && !defined(__powerpc__) && !defined(__arm__) && !defined(__mips__) && !defined(__aarch64__)
|
||||
#define USE_LDT_KEEPER
|
||||
#include "ldt_keeper.h"
|
||||
#endif
|
||||
diff --git a/xbmc/cores/DllLoader/ldt_keeper.c b/xbmc/cores/DllLoader/ldt_keeper.c
|
||||
index 8af9a86..1c0cdb2 100644
|
||||
--- a/xbmc/cores/DllLoader/ldt_keeper.c
|
||||
+++ b/xbmc/cores/DllLoader/ldt_keeper.c
|
||||
@@ -19,7 +19,7 @@
|
||||
*/
|
||||
|
||||
//#ifndef __powerpc__
|
||||
-#if !defined(__powerpc__) && !defined(__ppc__) && !defined(__arm__) && !defined(__mips__)
|
||||
+#if !defined(__powerpc__) && !defined(__ppc__) && !defined(__arm__) && !defined(__mips__) && !defined(__aarch64__)
|
||||
|
||||
#include "ldt_keeper.h"
|
||||
|
||||
diff --git a/xbmc/cores/VideoRenderers/LinuxRendererGL.h b/xbmc/cores/VideoRenderers/LinuxRendererGL.h
|
||||
index fcdea8d..5a3e3df 100644
|
||||
--- a/xbmc/cores/VideoRenderers/LinuxRendererGL.h
|
||||
+++ b/xbmc/cores/VideoRenderers/LinuxRendererGL.h
|
||||
@@ -323,7 +323,7 @@ class CLinuxRendererGL : public CBaseRenderer
|
||||
|
||||
|
||||
inline int NP2( unsigned x ) {
|
||||
-#if defined(TARGET_POSIX) && !defined(__POWERPC__) && !defined(__PPC__) && !defined(__arm__) && !defined(__mips__)
|
||||
+#if defined(TARGET_POSIX) && !defined(__POWERPC__) && !defined(__PPC__) && !defined(__arm__) && !defined(__mips__) && !defined(__aarch64__)
|
||||
// If there are any issues compiling this, just append a ' && 0'
|
||||
// to the above to make it '#if defined(TARGET_POSIX) && 0'
|
||||
|
||||
diff --git a/xbmc/linux/PlatformDefs.h b/xbmc/linux/PlatformDefs.h
|
||||
index 4350075..2c6fff4 100644
|
||||
--- a/xbmc/linux/PlatformDefs.h
|
||||
+++ b/xbmc/linux/PlatformDefs.h
|
||||
@@ -161,7 +161,7 @@
|
||||
#define __int64 long long
|
||||
#define __uint64 unsigned long long
|
||||
|
||||
-#if defined(__x86_64__) || defined(__powerpc__) || defined(__ppc__) || defined (__arm__) || defined(__mips__) // should this be powerpc64 only?
|
||||
+#if defined(__x86_64__) || defined(__powerpc__) || defined(__ppc__) || defined (__arm__) || defined(__mips__) || defined(__aarch64__)
|
||||
#define __stdcall
|
||||
#else /* !__x86_64__ */
|
||||
#define __stdcall __attribute__((__stdcall__))
|
||||
diff --git a/xbmc/threads/Atomics.cpp b/xbmc/threads/Atomics.cpp
|
||||
index 417b2b6..c172867 100644
|
||||
--- a/xbmc/threads/Atomics.cpp
|
||||
+++ b/xbmc/threads/Atomics.cpp
|
||||
@@ -106,7 +106,7 @@ long cas(volatile long *pAddr, long expectedVal, long swapVal)
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
long long cas2(volatile long long* pAddr, long long expectedVal, long long swapVal)
|
||||
{
|
||||
-#if defined(__ppc__) || defined(__powerpc__) || defined(__arm__)// PowerPC and ARM
|
||||
+#if defined(__ppc__) || defined(__powerpc__) || defined(__arm__) || defined(__aarch64__) // PowerPC and ARM
|
||||
// Not available/required
|
||||
// Hack to allow compilation
|
||||
throw "cas2 is not implemented";
|
||||
diff --git a/xbmc/utils/CPUInfo.cpp b/xbmc/utils/CPUInfo.cpp
|
||||
index 9e709e7..d7fef37 100644
|
||||
--- a/xbmc/utils/CPUInfo.cpp
|
||||
+++ b/xbmc/utils/CPUInfo.cpp
|
||||
@@ -914,7 +914,7 @@ void CCPUInfo::ReadCPUFeatures()
|
||||
#endif
|
||||
#elif defined(LINUX)
|
||||
// empty on purpose, the implementation is in the constructor
|
||||
-#elif !defined(__powerpc__) && !defined(__ppc__) && !defined(__arm__)
|
||||
+#elif !defined(__powerpc__) && !defined(__ppc__) && !defined(__arm__) && !defined(__aarch64__)
|
||||
m_cpuFeatures |= CPU_FEATURE_MMX;
|
||||
#elif defined(__powerpc__) || defined(__ppc__)
|
||||
m_cpuFeatures |= CPU_FEATURE_ALTIVEC;
|
||||
diff --git a/xbmc/utils/MathUtils.h b/xbmc/utils/MathUtils.h
|
||||
index 08140b7..249b4dd 100644
|
||||
--- a/xbmc/utils/MathUtils.h
|
||||
+++ b/xbmc/utils/MathUtils.h
|
||||
@@ -35,7 +35,8 @@
|
||||
#if defined(__ppc__) || \
|
||||
defined(__powerpc__) || \
|
||||
defined(__mips__) || \
|
||||
- defined(__arm__)
|
||||
+ defined(__arm__) || \
|
||||
+ defined(__aarch64__)
|
||||
#define DISABLE_MATHUTILS_ASM_ROUND_INT
|
||||
#endif
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
diff -Naur a/xbmc/cores/dvdplayer/DVDCodecs/Video/AMLCodec.cpp b/xbmc/cores/dvdplayer/DVDCodecs/Video/AMLCodec.cpp
|
||||
--- a/xbmc/cores/dvdplayer/DVDCodecs/Video/AMLCodec.cpp 2016-02-02 23:09:39.000000000 +0100
|
||||
+++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/AMLCodec.cpp 2016-02-10 07:01:28.941399058 +0100
|
||||
@@ -1598,7 +1598,7 @@
|
||||
diff -Naur a/xbmc/cores/VideoPlayer/DVDCodecs/Video/AMLCodec.cpp b/xbmc/cores/VideoPlayer/DVDCodecs/Video/AMLCodec.cpp
|
||||
--- a/xbmc/cores/VideoPlayer/DVDCodecs/Video/AMLCodec.cpp 2016-02-14 00:19:32.000000000 +0100
|
||||
+++ b/xbmc/cores/VideoPlayer/DVDCodecs/Video/AMLCodec.cpp 2016-03-02 09:36:04.503330833 +0100
|
||||
@@ -1601,7 +1601,7 @@
|
||||
am_private->gcodec.param = (void*)(EXTERNAL_PTS | SYNC_OUTSIDE);
|
||||
break;
|
||||
}
|
||||
@ -10,15 +10,3 @@ diff -Naur a/xbmc/cores/dvdplayer/DVDCodecs/Video/AMLCodec.cpp b/xbmc/cores/dvdp
|
||||
|
||||
// translate from generic to firemware version dependent
|
||||
m_dll->codec_init_para(&am_private->gcodec, &am_private->vcodec);
|
||||
diff -Naur a/xbmc/guilib/GUIFontTTFGL.cpp b/xbmc/guilib/GUIFontTTFGL.cpp
|
||||
--- a/xbmc/guilib/GUIFontTTFGL.cpp 2016-02-02 23:09:39.000000000 +0100
|
||||
+++ b/xbmc/guilib/GUIFontTTFGL.cpp 2016-02-10 06:59:49.261293006 +0100
|
||||
@@ -232,7 +232,7 @@
|
||||
glUniformMatrix4fv(modelLoc, 1, GL_FALSE, glMatrixModview.Get());
|
||||
|
||||
// Bind the buffer to the OpenGL context's GL_ARRAY_BUFFER binding point
|
||||
- glBindBuffer(GL_ARRAY_BUFFER, (GLuint) m_vertexTrans[i].vertexBuffer->bufferHandle);
|
||||
+ glBindBuffer(GL_ARRAY_BUFFER, (unsigned long) m_vertexTrans[i].vertexBuffer->bufferHandle);
|
||||
|
||||
// Do the actual drawing operation, split into groups of characters no
|
||||
// larger than the pre-determined size of the element array
|
||||
|
@ -1,35 +0,0 @@
|
||||
From ee014b442eac3e85178c89d04691f4fc73cf89e4 Mon Sep 17 00:00:00 2001
|
||||
From: "Chris \"Koying\" Browet" <cbro@semperpax.com>
|
||||
Date: Sun, 18 Oct 2015 11:24:00 +0200
|
||||
Subject: [PATCH] FIX: Only handle 3D bitmap subs in TAB
|
||||
|
||||
3D bitmap subs cannot be detected in SBS, and there is always the option
|
||||
to play with Kodi 3D disabled
|
||||
---
|
||||
xbmc/cores/dvdplayer/DVDCodecs/Overlay/DVDOverlayCodecFFmpeg.cpp | 7 +------
|
||||
1 file changed, 1 insertion(+), 6 deletions(-)
|
||||
|
||||
diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Overlay/DVDOverlayCodecFFmpeg.cpp b/xbmc/cores/dvdplayer/DVDCodecs/Overlay/DVDOverlayCodecFFmpeg.cpp
|
||||
index dca4bdf..c9a0008 100644
|
||||
--- a/xbmc/cores/dvdplayer/DVDCodecs/Overlay/DVDOverlayCodecFFmpeg.cpp
|
||||
+++ b/xbmc/cores/dvdplayer/DVDCodecs/Overlay/DVDOverlayCodecFFmpeg.cpp
|
||||
@@ -257,18 +257,13 @@ CDVDOverlay* CDVDOverlayCodecFFmpeg::GetOverlay()
|
||||
}
|
||||
|
||||
RENDER_STEREO_MODE render_stereo_mode = g_graphicsContext.GetStereoMode();
|
||||
- if (render_stereo_mode != RENDER_STEREO_MODE_OFF)
|
||||
+ if (render_stereo_mode == RENDER_STEREO_MODE_SPLIT_HORIZONTAL)
|
||||
{
|
||||
if (rect.h > m_height / 2)
|
||||
{
|
||||
m_height /= 2;
|
||||
rect.h /= 2;
|
||||
}
|
||||
- else if (rect.w > m_width / 2)
|
||||
- {
|
||||
- m_width /= 2;
|
||||
- rect.w /= 2;
|
||||
- }
|
||||
}
|
||||
|
||||
CDVDOverlayImage* overlay = new CDVDOverlayImage();
|
@ -1,63 +0,0 @@
|
||||
diff -Naur kodi-16.0-beta5-19fc4fa/system/keymaps/keyboard.xml kodi-16.0-beta5-19fc4fa.patch/system/keymaps/keyboard.xml
|
||||
--- kodi-16.0-beta5-19fc4fa/system/keymaps/keyboard.xml 2015-12-15 00:07:12.000000000 +0100
|
||||
+++ kodi-16.0-beta5-19fc4fa.patch/system/keymaps/keyboard.xml 2016-01-05 06:41:50.857902588 +0100
|
||||
@@ -113,6 +113,7 @@
|
||||
<sleep>ActivateWindow(shutdownmenu)</sleep>
|
||||
<!-- PVR windows -->
|
||||
<e>ActivateWindow(TVGuide)</e>
|
||||
+ <epg>ActivateWindow(TVGuide)</epg>
|
||||
<h>ActivateWindow(TVChannels)</h>
|
||||
<j>ActivateWindow(RadioChannels)</j>
|
||||
<k>ActivateWindow(TVRecordings)</k>
|
||||
@@ -268,6 +269,7 @@
|
||||
<TVGuide>
|
||||
<keyboard>
|
||||
<e>PreviousMenu</e>
|
||||
+ <epg>PreviousMenu</epg>
|
||||
</keyboard>
|
||||
</TVGuide>
|
||||
<MyFiles>
|
||||
diff -Naur kodi-16.0-beta5-19fc4fa/xbmc/input/linux/LinuxInputDevices.cpp kodi-16.0-beta5-19fc4fa.patch/xbmc/input/linux/LinuxInputDevices.cpp
|
||||
--- kodi-16.0-beta5-19fc4fa/xbmc/input/linux/LinuxInputDevices.cpp 2015-12-15 00:07:12.000000000 +0100
|
||||
+++ kodi-16.0-beta5-19fc4fa.patch/xbmc/input/linux/LinuxInputDevices.cpp 2016-01-05 06:41:13.847846527 +0100
|
||||
@@ -268,6 +268,7 @@
|
||||
{ KEY_FILE , XBMCK_LAUNCH_FILE_BROWSER},
|
||||
{ KEY_SELECT , XBMCK_RETURN },
|
||||
{ KEY_CONFIG , XBMCK_CONFIG },
|
||||
+ { KEY_EPG , XBMCK_EPG },
|
||||
// The Little Black Box Remote Additions
|
||||
{ 384 , XBMCK_LEFT }, // Red
|
||||
{ 378 , XBMCK_RIGHT }, // Green
|
||||
diff -Naur kodi-16.0-beta5-19fc4fa/xbmc/input/XBMC_keysym.h kodi-16.0-beta5-19fc4fa.patch/xbmc/input/XBMC_keysym.h
|
||||
--- kodi-16.0-beta5-19fc4fa/xbmc/input/XBMC_keysym.h 2015-12-15 00:07:12.000000000 +0100
|
||||
+++ kodi-16.0-beta5-19fc4fa.patch/xbmc/input/XBMC_keysym.h 2016-01-05 06:41:13.847846527 +0100
|
||||
@@ -229,6 +229,7 @@
|
||||
XBMCK_FAVORITES = 0x14d,
|
||||
XBMCK_HOMEPAGE = 0x14e,
|
||||
XBMCK_CONFIG = 0x14f,
|
||||
+ XBMCK_EPG = 0x150,
|
||||
|
||||
// Add any other keys here
|
||||
|
||||
diff -Naur kodi-16.0-beta5-19fc4fa/xbmc/input/XBMC_keytable.cpp kodi-16.0-beta5-19fc4fa.patch/xbmc/input/XBMC_keytable.cpp
|
||||
--- kodi-16.0-beta5-19fc4fa/xbmc/input/XBMC_keytable.cpp 2015-12-15 00:07:12.000000000 +0100
|
||||
+++ kodi-16.0-beta5-19fc4fa.patch/xbmc/input/XBMC_keytable.cpp 2016-01-05 06:41:13.848846528 +0100
|
||||
@@ -243,6 +243,7 @@
|
||||
, { XBMCK_FAVORITES, 0, 0, XBMCVK_FAVORITES, "favorites" }
|
||||
, { XBMCK_HOMEPAGE , 0, 0, XBMCVK_HOMEPAGE, "homepage" }
|
||||
, { XBMCK_CONFIG, 0, 0, XBMCVK_CONFIG, "config" }
|
||||
+, { XBMCK_EPG , 0, 0, XBMCVK_EPG, "epg" }
|
||||
};
|
||||
|
||||
static int XBMCKeyTableSize = sizeof(XBMCKeyTable)/sizeof(XBMCKEYTABLE);
|
||||
diff -Naur kodi-16.0-beta5-19fc4fa/xbmc/input/XBMC_vkeys.h kodi-16.0-beta5-19fc4fa.patch/xbmc/input/XBMC_vkeys.h
|
||||
--- kodi-16.0-beta5-19fc4fa/xbmc/input/XBMC_vkeys.h 2015-12-15 00:07:12.000000000 +0100
|
||||
+++ kodi-16.0-beta5-19fc4fa.patch/xbmc/input/XBMC_vkeys.h 2016-01-05 06:41:13.848846528 +0100
|
||||
@@ -221,6 +221,7 @@
|
||||
XBMCVK_FAVORITES = 0xE9,
|
||||
XBMCVK_HOMEPAGE = 0xEA,
|
||||
XBMCVK_CONFIG = 0xEB,
|
||||
+ XBMCVK_EPG = 0xEC,
|
||||
|
||||
XBMCVK_LAST = 0xFF
|
||||
} XBMCVKey;
|
@ -23,7 +23,7 @@
|
||||
chmod +x /storage/.kodi/addons/*/bin/*
|
||||
|
||||
# Nasty hack to work around OE to LE migration - Addons*.db needs to forget all about OE addons
|
||||
ADDONSDB=$(ls -1 /storage/.kodi/userdata/Database/Addons20.db 2>/dev/null)
|
||||
ADDONSDB=$(ls -1 /storage/.kodi/userdata/Database/Addons23.db 2>/dev/null)
|
||||
if [ -n "${ADDONSDB}" ]; then
|
||||
OEREPO="'repository.openelec.tv'"
|
||||
|
||||
|
@ -16,18 +16,19 @@
|
||||
# along with OpenELEC. If not, see <http://www.gnu.org/licenses/>.
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="platform"
|
||||
PKG_VERSION="081032f"
|
||||
PKG_NAME="p8-platform"
|
||||
PKG_VERSION="38343e0"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="http://www.kodi.tv"
|
||||
PKG_URL="https://github.com/Pulse-Eight/platform/archive/$PKG_VERSION.tar.gz"
|
||||
PKG_SOURCE_DIR="platform-$PKG_VERSION*"
|
||||
PKG_DEPENDS_TARGET="toolchain"
|
||||
PKG_PRIORITY="optional"
|
||||
PKG_SECTION="multimedia"
|
||||
PKG_SHORTDESC="platform:"
|
||||
PKG_LONGDESC="platform:"
|
||||
PKG_SHORTDESC="Platform support library used by libCEC and binary add-ons for Kodi"
|
||||
PKG_LONGDESC="Platform support library used by libCEC and binary add-ons for Kodi"
|
||||
|
||||
PKG_IS_ADDON="no"
|
||||
PKG_AUTORECONF="no"
|
@ -0,0 +1,28 @@
|
||||
From f91594676d1f75530addd87363ccbc6510efb84e Mon Sep 17 00:00:00 2001
|
||||
From: Stefan Saraev <stefan@saraev.ca>
|
||||
Date: Fri, 8 May 2015 11:19:42 +0300
|
||||
Subject: [PATCH] revert cc badness
|
||||
|
||||
this reverts upstream commit 68f8418
|
||||
---
|
||||
CMakeLists.txt | 6 ------
|
||||
1 file changed, 6 deletions(-)
|
||||
|
||||
diff -Naur a/CMakeLists.txt b/CMakeLists.txt
|
||||
--- a/CMakeLists.txt 2016-01-05 23:58:40.000000000 +0100
|
||||
+++ b/CMakeLists.txt 2016-01-06 01:26:52.004076744 +0100
|
||||
@@ -22,12 +22,6 @@
|
||||
src/windows/os-threads.cpp)
|
||||
endif()
|
||||
|
||||
-set(p8-platform_INCLUDE_DIRS "${CMAKE_INSTALL_PREFIX}/include/p8-platform")
|
||||
-IF(WIN32)
|
||||
- LIST(APPEND p8-platform_INCLUDE_DIRS "${CMAKE_INSTALL_PREFIX}/include/p8-platform/windows")
|
||||
-ENDIF(WIN32)
|
||||
-set(p8-platform_LIBRARIES ${CMAKE_THREAD_LIBS_INIT})
|
||||
-
|
||||
if(NOT ${CORE_SYSTEM_NAME} STREQUAL "")
|
||||
if(${CORE_SYSTEM_NAME} STREQUAL "osx" OR ${CORE_SYSTEM_NAME} STREQUAL "ios")
|
||||
list(APPEND p8-platform_LIBRARIES "-framework CoreVideo -framework IOKit")
|
||||
--
|
||||
1.7.10.4
|
@ -1,30 +0,0 @@
|
||||
From f91594676d1f75530addd87363ccbc6510efb84e Mon Sep 17 00:00:00 2001
|
||||
From: Stefan Saraev <stefan@saraev.ca>
|
||||
Date: Fri, 8 May 2015 11:19:42 +0300
|
||||
Subject: [PATCH] revert cc badness
|
||||
|
||||
this reverts upstream commit 68f8418
|
||||
---
|
||||
CMakeLists.txt | 6 ------
|
||||
1 file changed, 6 deletions(-)
|
||||
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index 73fae2e..dc3e1b5 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -22,12 +22,6 @@ if(WIN32)
|
||||
src/windows/os-threads.cpp)
|
||||
endif()
|
||||
|
||||
-set(platform_INCLUDE_DIRS "${CMAKE_INSTALL_PREFIX}/include/platform")
|
||||
-IF(WIN32)
|
||||
- LIST(APPEND platform_INCLUDE_DIRS "${CMAKE_INSTALL_PREFIX}/include/platform/windows")
|
||||
-ENDIF(WIN32)
|
||||
-set(platform_LIBRARIES ${CMAKE_THREAD_LIBS_INIT})
|
||||
-
|
||||
if(NOT ${CORE_SYSTEM_NAME} STREQUAL "")
|
||||
if(${CORE_SYSTEM_NAME} STREQUAL "darwin" OR ${CORE_SYSTEM_NAME} STREQUAL "ios")
|
||||
list(APPEND platform_LIBRARIES "-framework CoreVideo -framework IOKit")
|
||||
--
|
||||
1.7.10.4
|
||||
|
@ -37,7 +37,7 @@ PKG_CONFIGURE_OPTS_TARGET="--disable-silent-rules \
|
||||
--enable-drm \
|
||||
--enable-x11 \
|
||||
--enable-glx \
|
||||
--disable-egl \
|
||||
--enable-egl \
|
||||
--disable-wayland \
|
||||
--disable-dummy-driver \
|
||||
--with-drivers-path=/usr/lib/va"
|
||||
|
@ -1,117 +0,0 @@
|
||||
From 01759c5adfb050b1ba0c8a8fc4e20a875a98c0e5 Mon Sep 17 00:00:00 2001
|
||||
From: popcornmix <popcornmix@gmail.com>
|
||||
Date: Sun, 10 Aug 2014 18:58:37 +0100
|
||||
Subject: [PATCH 1/2] confluence: Remove media-overlay.jpg for when video is
|
||||
backgrounded
|
||||
|
||||
---
|
||||
720p/IncludesBackgroundBuilding.xml | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/720p/IncludesBackgroundBuilding.xml b/720p/IncludesBackgroundBuilding.xml
|
||||
index cc996da..d6aa595 100644
|
||||
--- a/720p/IncludesBackgroundBuilding.xml
|
||||
+++ b/720p/IncludesBackgroundBuilding.xml
|
||||
@@ -32,7 +32,7 @@
|
||||
</control>
|
||||
<control type="image">
|
||||
<include>BackgroundDimensions</include>
|
||||
- <texture>special://skin/backgrounds/media-overlay.jpg</texture>
|
||||
+ <!--texture>special://skin/backgrounds/media-overlay.jpg</texture-->
|
||||
<visible>[Player.HasVideo + !Skin.HasSetting(ShowBackgroundVideo)] + !Window.IsVisible(TVChannels) + !Window.IsVisible(RadioChannels)</visible>
|
||||
<include>VisibleFadeEffect</include>
|
||||
</control>
|
||||
--
|
||||
2.5.0
|
||||
|
||||
|
||||
From d99f70c094006144f07bdf739f5847b733030245 Mon Sep 17 00:00:00 2001
|
||||
From: popcornmix <popcornmix@gmail.com>
|
||||
Date: Mon, 22 Jul 2013 23:19:15 +0100
|
||||
Subject: [PATCH 2/2] [confluence] Use animated gif as a cheaper working
|
||||
spinner
|
||||
|
||||
---
|
||||
720p/DialogBusy.xml | 4 ++--
|
||||
media/busy.gif | Bin 0 -> 3199 bytes
|
||||
2 files changed, 2 insertions(+), 2 deletions(-)
|
||||
create mode 100644 media/busy.gif
|
||||
|
||||
diff --git a/720p/DialogBusy.xml b/720p/DialogBusy.xml
|
||||
index b5df91f..8e84fed 100644
|
||||
--- a/720p/DialogBusy.xml
|
||||
+++ b/720p/DialogBusy.xml
|
||||
@@ -25,9 +25,9 @@
|
||||
<top>20</top>
|
||||
<width>32</width>
|
||||
<height>32</height>
|
||||
- <texture>busy.png</texture>
|
||||
+ <texture>busy.gif</texture>
|
||||
<aspectratio>keep</aspectratio>
|
||||
- <animation effect="rotate" start="0" end="360" center="36,36" time="900" loop="true" condition="true">conditional</animation>
|
||||
+ <!--animation effect="rotate" start="0" end="360" center="36,36" time="900" loop="true" condition="true">conditional</animation-->
|
||||
</control>
|
||||
<control type="label">
|
||||
<description>Busy label</description>
|
||||
diff --git a/media/busy.gif b/media/busy.gif
|
||||
new file mode 100644
|
||||
index 0000000000000000000000000000000000000000..f856ed0b44fdc7e9b0520c7e39a9bebc04136897
|
||||
GIT binary patch
|
||||
literal 3199
|
||||
zcmc(fX;f2Z9>y=ZH#f_@I(Toefj|vNK&XX)Kv`7?5Fj9nfFK|eqk^a)i$D+vOGrT0
|
||||
z5Y~W_Kw^kiL|j0tWs!ndI9M0djt<b)1^0UFSf^(ku;<M510Uv`Ij8e}c;7GYd*1VV
|
||||
z{?GGp{e7KX5|{uJcmpi14<9}_J39-7LO(x0fj}@eHm22TEi5dIjEuazyk=%*-oJnU
|
||||
z@#5lU`YS}SUp)V5#7Wzkkg-$1%u32gWG3uM$ljZhAh1c=zbgeW{eW!p3E#}|4DqqI
|
||||
zVS{=L57sWeUi=h*9_f$yCnc!oCm!*6V)Hg%)Sx4b;3*G3y_Tf5-#ll{cC@v<x=)pA
|
||||
zDy$p)mTgGTcQYShbM#tm2>#Zlzxi?2cy3&gq6Zb5u5$@@ybycc*-E=i(!PE0#hKFr
|
||||
z8YwHA>k$o6chjKaEI)p!$wAoDL&l~=#<s>v-6#Yi*r{$k>ZaBy{Iun&<0smBO`6!}
|
||||
z&StP`{nE=0r$xK_71$KwBW33sD3@jYuko!${Lx^a-L6nm0XI6%X29c~=ih=uThmJ)
|
||||
z0`sx_;Y1skXCCRh-xeI%QSoNyoC$Wv8mqotx(oQi`#)m+fqj0FJ-Ty#;#jn=BdyK1
|
||||
z=B6qP9+rpm>D&te;)?^%P6X=O1hYo3EX2|KvKf!7<in@|#EeC0w2e)Mm}q{`poK|>
|
||||
zPC<6`-z>t4dt|sDMs?7$3qAAwp-9+}MG!&<X;8uHJ!}cJinh0cyE~Vi50<$Xx>HJG
|
||||
zR56mo+HAFw+XYc`x>Q}qx+NXw8e)#H8!s@v;-0BxXf+|F!d7fF@#<yem8N9j5SC=r
|
||||
zc$J(})qZ_E@sRLVqKtdLWG-?<)m``mc;5dsHW7am(_Qrv810mnzqP3UthRm2kuT0W
|
||||
z&lrxG68`O#Kj6Puz_+qnz<*@Nbri&j*VHS+Mo-Jb?JMMa0!wm-Z@4q@m?_7ZAll^_
|
||||
zDtpS%N^D4F2KKG&^e2?Q+9#gy(T;AXoq>p{m^y-r6hhl}(OBf7Z9T-XA592wChCS0
|
||||
zghE0dyCjN1p_XlCgFCZKa-d{)QY(vcG`ORqtd3Hv5q9cwWnZ4q9qQ6`p6gJt`i)yI
|
||||
z(k}USCso)D$=T8}kwkOttLQTdyk*$=N_P3zvI>gu=+%v7SlP7u{o}wK&@wvs;D^UR
|
||||
z_hrU2=hu&--McI1v8!sb^Bc*rSV@S1`PqwVQ`z9M6-zo`(fwU?)%?V6L!Su!wg%>{
|
||||
z_Ap6;JlsqFZs&4*_Hyca%X9UeJIQa&rOjqikQOUh?PJH$+b_COMJv9VKYa@bFkHLx
|
||||
zuWLOM>d88zwur244toBqkoynF%QKPCmFw0Ka@mD&l3lo%OWd7hoRh}_r7X*^);1h%
|
||||
zS0Y48mAJw~sY5l#+K!_g>SODUoZ~jI`sJw?F0nP#X1q5bEJf^ykCn3huW0t=Buk;;
|
||||
z><OG4E{)F{TT=~)r?<_`<?!07($8YgTA!>>ir2ELZoSz5-s3JdcW?Z_9fzG0p9c+f
|
||||
zF75u0<G0q%Pgq*{s0DHLH8@=}91=$HB+Fe*zx;<VO;%Lb%Fn7>#&QywaXZ%t%wx<X
|
||||
zvUdSJpAPsYepv&92^b?33aQ+l$}%1*we|81iQN&gY;M_x@Tm;K7TZ*q#I*>{@Fph2
|
||||
z8>d4#CVRatgPNLgq_yn;r95LtQ=1x5s+u(jzg=bD(&G)*)dYbk>S|JZ)~LT9sTL@u
|
||||
zECM`$!UZY^R=O23aIrSC7%KKzN9#j7fanO3;b9=-Uc<wOwcmJ`n?DRl3VQB76FuWr
|
||||
ze&-Y}Y7)5DF@p(38BssGAF%vvh1c?>$Ny%r0K&Q!3cxIY#cXS+p(!;!p<8t|C$aCa
|
||||
zmw^IV`QJZ}KB=L;O)P3iejKViBr3riXEU+Os6+HSe_FAg!SQwiv}qZC3nHl$W!6d@
|
||||
z71S4lX+^(KPOx(Lj8E2YV-Zqp(+-;Kb+HVT)!}eMBgt)5sl=u6D6D9$YloY~9dexu
|
||||
zC}LF_6A=VFoaEBm3%6lfCWlPwM@VL+UM3*w1;PDiz0>h(8VN;V8aTNv3fh%t9zvN$
|
||||
za|0i22m!`XM6L*S0Fdda0iPRhpr2%l$fxG?zK7#0^aKDQU~07$CjLum<cgsI^Cg?$
|
||||
z=^u0uFIa(TpbQ(@x~a@M#9Ht8tlKT~kX&o|rlNu8u|88ZKbw*Z>>`5g?|W04<I|k{
|
||||
zf8kS=oj={Y;@8;XOz~=TqntirW=YnyZvFmV#w8iwSj1b+vE)h1aIm71n3cCdS}6x>
|
||||
zWxRT@I!WkM-tG!!7x5q%CKh;dv|7?pi#(SC(n*+<A&fO4BC*gpt<Kw#?v@QANIy>0
|
||||
z_JkG+)}Xfm$~B~iw*|Y6V&e#09^^HH!`DEm|CuKkbWa-O@fsst>tv+k@8<e0IeRDQ
|
||||
z6%&;KwCx)MxzJKg`0~%-=L+cyz|v~xJYkuvQl4L~U`3Vi2q5TUQtYbI7P9j?Srnoc
|
||||
zBrcLeuot<fb1!`d3L1ehObS%-LknRP9YwAKlo7Z_N}NOuuOk?7WV8&K90Km+q>)}8
|
||||
zIQam3jP;F3e?*@>`tHd{w(%sqW=s(>)3Q9u09{KSdvd$zkgeI0Rru=vq=DF#Oe*oT
|
||||
zUC2Jj$)htMM58IqjK$$@6z*jZz{EVhT7wY1hm0T)9FAM%LDXn*5`t*q1rLmYg^^Y_
|
||||
z5X0LrM!i=K-<X=iiDNDt@Wv0=Q}2ho$4CwE7JL2`Pa{@kR#MJmqt?c3cFpEb!SRfx
|
||||
zJMm8m!h#Wq2wGEHCUm6MHllU%%Ic=_qa3j-1zZ#YL5LrPfOWb>AxOOl={&<{L5D6K
|
||||
z>;#ZUjACfyRUVK|-3P;Ja2nW>ZDDm2Hk|&>-$hEgc><W-n8G36B;oVn8+Z@Cd2$CA
|
||||
ze9w4E`#J92pw}150idYeiA<k5?!9CX9{*1!Afw-i3_cctKAXI5B~jNaPrTKK7b_A5
|
||||
z8uu_GFd~x6@lQ71$LFn<?BLbPFp)E*BsW1;@7%m!QBQAbu2V~jB5PcwwnP{{;2KoO
|
||||
zppv?~Ihmq-;Cvsc%*ZFPH~C~Y$qAr<mw-hT;=6l_LC`70-8O=J7mW7vmCd?rz=DQY
|
||||
z)LHJeZ=Y~xlivUbwT!#3*W1LsccOK@GL={@|AY`J{cjQwf&SitlwrC&U|`R?P4?+L
|
||||
zr)p}C0u>zg*B6Z$SRsZ~{lGhZr?x1$s1t=S{s}LNuEC0*wfD$uoK%8ST1Gwr7S<)+
|
||||
z9iovkGf8Q-PRuArxY*w<zSKAaAqKDZq2vZD6jGN+60GWIJ>t@#b!a<6hm>8dJ&H!R
|
||||
z$Oeur6$C~7PILzO;&4;G^(D-5m{@KUl(MQ1yKs>x+CMqUUllb3x?=fppG8_v>@)ZY
|
||||
xGUUb21Yb|%0k3;EZL|UA71ss70{N2%rZhjU!V8TtZxzYw_F;tVxR3z1e*p+ht@8i?
|
||||
|
||||
literal 0
|
||||
HcmV?d00001
|
||||
|
||||
--
|
||||
2.5.0
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -1,117 +0,0 @@
|
||||
From 01759c5adfb050b1ba0c8a8fc4e20a875a98c0e5 Mon Sep 17 00:00:00 2001
|
||||
From: popcornmix <popcornmix@gmail.com>
|
||||
Date: Sun, 10 Aug 2014 18:58:37 +0100
|
||||
Subject: [PATCH 1/2] confluence: Remove media-overlay.jpg for when video is
|
||||
backgrounded
|
||||
|
||||
---
|
||||
720p/IncludesBackgroundBuilding.xml | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/720p/IncludesBackgroundBuilding.xml b/720p/IncludesBackgroundBuilding.xml
|
||||
index cc996da..d6aa595 100644
|
||||
--- a/720p/IncludesBackgroundBuilding.xml
|
||||
+++ b/720p/IncludesBackgroundBuilding.xml
|
||||
@@ -32,7 +32,7 @@
|
||||
</control>
|
||||
<control type="image">
|
||||
<include>BackgroundDimensions</include>
|
||||
- <texture>special://skin/backgrounds/media-overlay.jpg</texture>
|
||||
+ <!--texture>special://skin/backgrounds/media-overlay.jpg</texture-->
|
||||
<visible>[Player.HasVideo + !Skin.HasSetting(ShowBackgroundVideo)] + !Window.IsVisible(TVChannels) + !Window.IsVisible(RadioChannels)</visible>
|
||||
<include>VisibleFadeEffect</include>
|
||||
</control>
|
||||
--
|
||||
2.5.0
|
||||
|
||||
|
||||
From d99f70c094006144f07bdf739f5847b733030245 Mon Sep 17 00:00:00 2001
|
||||
From: popcornmix <popcornmix@gmail.com>
|
||||
Date: Mon, 22 Jul 2013 23:19:15 +0100
|
||||
Subject: [PATCH 2/2] [confluence] Use animated gif as a cheaper working
|
||||
spinner
|
||||
|
||||
---
|
||||
720p/DialogBusy.xml | 4 ++--
|
||||
media/busy.gif | Bin 0 -> 3199 bytes
|
||||
2 files changed, 2 insertions(+), 2 deletions(-)
|
||||
create mode 100644 media/busy.gif
|
||||
|
||||
diff --git a/720p/DialogBusy.xml b/720p/DialogBusy.xml
|
||||
index b5df91f..8e84fed 100644
|
||||
--- a/720p/DialogBusy.xml
|
||||
+++ b/720p/DialogBusy.xml
|
||||
@@ -25,9 +25,9 @@
|
||||
<top>20</top>
|
||||
<width>32</width>
|
||||
<height>32</height>
|
||||
- <texture>busy.png</texture>
|
||||
+ <texture>busy.gif</texture>
|
||||
<aspectratio>keep</aspectratio>
|
||||
- <animation effect="rotate" start="0" end="360" center="36,36" time="900" loop="true" condition="true">conditional</animation>
|
||||
+ <!--animation effect="rotate" start="0" end="360" center="36,36" time="900" loop="true" condition="true">conditional</animation-->
|
||||
</control>
|
||||
<control type="label">
|
||||
<description>Busy label</description>
|
||||
diff --git a/media/busy.gif b/media/busy.gif
|
||||
new file mode 100644
|
||||
index 0000000000000000000000000000000000000000..f856ed0b44fdc7e9b0520c7e39a9bebc04136897
|
||||
GIT binary patch
|
||||
literal 3199
|
||||
zcmc(fX;f2Z9>y=ZH#f_@I(Toefj|vNK&XX)Kv`7?5Fj9nfFK|eqk^a)i$D+vOGrT0
|
||||
z5Y~W_Kw^kiL|j0tWs!ndI9M0djt<b)1^0UFSf^(ku;<M510Uv`Ij8e}c;7GYd*1VV
|
||||
z{?GGp{e7KX5|{uJcmpi14<9}_J39-7LO(x0fj}@eHm22TEi5dIjEuazyk=%*-oJnU
|
||||
z@#5lU`YS}SUp)V5#7Wzkkg-$1%u32gWG3uM$ljZhAh1c=zbgeW{eW!p3E#}|4DqqI
|
||||
zVS{=L57sWeUi=h*9_f$yCnc!oCm!*6V)Hg%)Sx4b;3*G3y_Tf5-#ll{cC@v<x=)pA
|
||||
zDy$p)mTgGTcQYShbM#tm2>#Zlzxi?2cy3&gq6Zb5u5$@@ybycc*-E=i(!PE0#hKFr
|
||||
z8YwHA>k$o6chjKaEI)p!$wAoDL&l~=#<s>v-6#Yi*r{$k>ZaBy{Iun&<0smBO`6!}
|
||||
z&StP`{nE=0r$xK_71$KwBW33sD3@jYuko!${Lx^a-L6nm0XI6%X29c~=ih=uThmJ)
|
||||
z0`sx_;Y1skXCCRh-xeI%QSoNyoC$Wv8mqotx(oQi`#)m+fqj0FJ-Ty#;#jn=BdyK1
|
||||
z=B6qP9+rpm>D&te;)?^%P6X=O1hYo3EX2|KvKf!7<in@|#EeC0w2e)Mm}q{`poK|>
|
||||
zPC<6`-z>t4dt|sDMs?7$3qAAwp-9+}MG!&<X;8uHJ!}cJinh0cyE~Vi50<$Xx>HJG
|
||||
zR56mo+HAFw+XYc`x>Q}qx+NXw8e)#H8!s@v;-0BxXf+|F!d7fF@#<yem8N9j5SC=r
|
||||
zc$J(})qZ_E@sRLVqKtdLWG-?<)m``mc;5dsHW7am(_Qrv810mnzqP3UthRm2kuT0W
|
||||
z&lrxG68`O#Kj6Puz_+qnz<*@Nbri&j*VHS+Mo-Jb?JMMa0!wm-Z@4q@m?_7ZAll^_
|
||||
zDtpS%N^D4F2KKG&^e2?Q+9#gy(T;AXoq>p{m^y-r6hhl}(OBf7Z9T-XA592wChCS0
|
||||
zghE0dyCjN1p_XlCgFCZKa-d{)QY(vcG`ORqtd3Hv5q9cwWnZ4q9qQ6`p6gJt`i)yI
|
||||
z(k}USCso)D$=T8}kwkOttLQTdyk*$=N_P3zvI>gu=+%v7SlP7u{o}wK&@wvs;D^UR
|
||||
z_hrU2=hu&--McI1v8!sb^Bc*rSV@S1`PqwVQ`z9M6-zo`(fwU?)%?V6L!Su!wg%>{
|
||||
z_Ap6;JlsqFZs&4*_Hyca%X9UeJIQa&rOjqikQOUh?PJH$+b_COMJv9VKYa@bFkHLx
|
||||
zuWLOM>d88zwur244toBqkoynF%QKPCmFw0Ka@mD&l3lo%OWd7hoRh}_r7X*^);1h%
|
||||
zS0Y48mAJw~sY5l#+K!_g>SODUoZ~jI`sJw?F0nP#X1q5bEJf^ykCn3huW0t=Buk;;
|
||||
z><OG4E{)F{TT=~)r?<_`<?!07($8YgTA!>>ir2ELZoSz5-s3JdcW?Z_9fzG0p9c+f
|
||||
zF75u0<G0q%Pgq*{s0DHLH8@=}91=$HB+Fe*zx;<VO;%Lb%Fn7>#&QywaXZ%t%wx<X
|
||||
zvUdSJpAPsYepv&92^b?33aQ+l$}%1*we|81iQN&gY;M_x@Tm;K7TZ*q#I*>{@Fph2
|
||||
z8>d4#CVRatgPNLgq_yn;r95LtQ=1x5s+u(jzg=bD(&G)*)dYbk>S|JZ)~LT9sTL@u
|
||||
zECM`$!UZY^R=O23aIrSC7%KKzN9#j7fanO3;b9=-Uc<wOwcmJ`n?DRl3VQB76FuWr
|
||||
ze&-Y}Y7)5DF@p(38BssGAF%vvh1c?>$Ny%r0K&Q!3cxIY#cXS+p(!;!p<8t|C$aCa
|
||||
zmw^IV`QJZ}KB=L;O)P3iejKViBr3riXEU+Os6+HSe_FAg!SQwiv}qZC3nHl$W!6d@
|
||||
z71S4lX+^(KPOx(Lj8E2YV-Zqp(+-;Kb+HVT)!}eMBgt)5sl=u6D6D9$YloY~9dexu
|
||||
zC}LF_6A=VFoaEBm3%6lfCWlPwM@VL+UM3*w1;PDiz0>h(8VN;V8aTNv3fh%t9zvN$
|
||||
za|0i22m!`XM6L*S0Fdda0iPRhpr2%l$fxG?zK7#0^aKDQU~07$CjLum<cgsI^Cg?$
|
||||
z=^u0uFIa(TpbQ(@x~a@M#9Ht8tlKT~kX&o|rlNu8u|88ZKbw*Z>>`5g?|W04<I|k{
|
||||
zf8kS=oj={Y;@8;XOz~=TqntirW=YnyZvFmV#w8iwSj1b+vE)h1aIm71n3cCdS}6x>
|
||||
zWxRT@I!WkM-tG!!7x5q%CKh;dv|7?pi#(SC(n*+<A&fO4BC*gpt<Kw#?v@QANIy>0
|
||||
z_JkG+)}Xfm$~B~iw*|Y6V&e#09^^HH!`DEm|CuKkbWa-O@fsst>tv+k@8<e0IeRDQ
|
||||
z6%&;KwCx)MxzJKg`0~%-=L+cyz|v~xJYkuvQl4L~U`3Vi2q5TUQtYbI7P9j?Srnoc
|
||||
zBrcLeuot<fb1!`d3L1ehObS%-LknRP9YwAKlo7Z_N}NOuuOk?7WV8&K90Km+q>)}8
|
||||
zIQam3jP;F3e?*@>`tHd{w(%sqW=s(>)3Q9u09{KSdvd$zkgeI0Rru=vq=DF#Oe*oT
|
||||
zUC2Jj$)htMM58IqjK$$@6z*jZz{EVhT7wY1hm0T)9FAM%LDXn*5`t*q1rLmYg^^Y_
|
||||
z5X0LrM!i=K-<X=iiDNDt@Wv0=Q}2ho$4CwE7JL2`Pa{@kR#MJmqt?c3cFpEb!SRfx
|
||||
zJMm8m!h#Wq2wGEHCUm6MHllU%%Ic=_qa3j-1zZ#YL5LrPfOWb>AxOOl={&<{L5D6K
|
||||
z>;#ZUjACfyRUVK|-3P;Ja2nW>ZDDm2Hk|&>-$hEgc><W-n8G36B;oVn8+Z@Cd2$CA
|
||||
ze9w4E`#J92pw}150idYeiA<k5?!9CX9{*1!Afw-i3_cctKAXI5B~jNaPrTKK7b_A5
|
||||
z8uu_GFd~x6@lQ71$LFn<?BLbPFp)E*BsW1;@7%m!QBQAbu2V~jB5PcwwnP{{;2KoO
|
||||
zppv?~Ihmq-;Cvsc%*ZFPH~C~Y$qAr<mw-hT;=6l_LC`70-8O=J7mW7vmCd?rz=DQY
|
||||
z)LHJeZ=Y~xlivUbwT!#3*W1LsccOK@GL={@|AY`J{cjQwf&SitlwrC&U|`R?P4?+L
|
||||
zr)p}C0u>zg*B6Z$SRsZ~{lGhZr?x1$s1t=S{s}LNuEC0*wfD$uoK%8ST1Gwr7S<)+
|
||||
z9iovkGf8Q-PRuArxY*w<zSKAaAqKDZq2vZD6jGN+60GWIJ>t@#b!a<6hm>8dJ&H!R
|
||||
z$Oeur6$C~7PILzO;&4;G^(D-5m{@KUl(MQ1yKs>x+CMqUUllb3x?=fppG8_v>@)ZY
|
||||
xGUUb21Yb|%0k3;EZL|UA71ss70{N2%rZhjU!V8TtZxzYw_F;tVxR3z1e*p+ht@8i?
|
||||
|
||||
literal 0
|
||||
HcmV?d00001
|
||||
|
||||
--
|
||||
2.5.0
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -1,17 +1,17 @@
|
||||
From 5e5453322e71c16b8b96b471a9e5c32b96d6b1af Mon Sep 17 00:00:00 2001
|
||||
From fde3d3d609e570aa3a8691a4e66e07dce1c80b25 Mon Sep 17 00:00:00 2001
|
||||
From: Alex Deryskyba <alex@codesnake.com>
|
||||
Date: Wed, 16 Apr 2014 22:02:01 +0300
|
||||
Subject: [PATCH 01/17] Fix ALSA sound output for Amlogic-based devices.
|
||||
Subject: [PATCH] [aml] Fix ALSA sound output for Amlogic-based devices.
|
||||
|
||||
---
|
||||
xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp | 19 +++++++++++++++++++
|
||||
xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp | 19 +++++++++++++++++++
|
||||
1 file changed, 19 insertions(+)
|
||||
|
||||
diff --git a/xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp b/xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp
|
||||
index df50940..9f80c06 100644
|
||||
index fbccce0..6bf2c53 100644
|
||||
--- a/xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp
|
||||
+++ b/xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp
|
||||
@@ -83,6 +83,17 @@ static unsigned int ALSASampleRateList[] =
|
||||
@@ -84,6 +84,17 @@ static unsigned int ALSASampleRateList[] =
|
||||
0
|
||||
};
|
||||
|
||||
@ -29,7 +29,7 @@ index df50940..9f80c06 100644
|
||||
CAESinkALSA::CAESinkALSA() :
|
||||
m_bufferSize(0),
|
||||
m_formatSampleRateMul(0.0),
|
||||
@@ -741,12 +752,20 @@ bool CAESinkALSA::InitializeHW(const ALSAConfig &inconfig, ALSAConfig &outconfig
|
||||
@@ -748,12 +759,20 @@ bool CAESinkALSA::InitializeHW(const ALSAConfig &inconfig, ALSAConfig &outconfig
|
||||
*/
|
||||
periodSize = std::min(periodSize, (snd_pcm_uframes_t) sampleRate / 20);
|
||||
bufferSize = std::min(bufferSize, (snd_pcm_uframes_t) sampleRate / 5);
|
||||
@ -50,6 +50,3 @@ index df50940..9f80c06 100644
|
||||
|
||||
CLog::Log(LOGDEBUG, "CAESinkALSA::InitializeHW - Request: periodSize %lu, bufferSize %lu", periodSize, bufferSize);
|
||||
|
||||
--
|
||||
1.7.10.4
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
From d81c2be6e702206b7c00e25be4ee0c0750f1b84d Mon Sep 17 00:00:00 2001
|
||||
From 0367076d263846832cff68052f3de362f27e5bc6 Mon Sep 17 00:00:00 2001
|
||||
From: Alex Deryskyba <alex@codesnake.com>
|
||||
Date: Mon, 8 Sep 2014 23:29:40 +0300
|
||||
Subject: [PATCH 08/17] Reorder libraries in configure script to prevent
|
||||
Subject: [PATCH] [wetek] Reorder libraries in configure script to prevent
|
||||
linker errors when linking with libsmbclient
|
||||
|
||||
Place libsmbclient before all other libraries to prevent linker errors when linking
|
||||
@ -9,14 +9,14 @@ with libsmbclient if the libc that is currently used doesn't contain some functi
|
||||
such as dn_expand (which are often included in libc), but are actually included in
|
||||
libresolv.
|
||||
---
|
||||
configure.ac | 2 +-
|
||||
configure.ac | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index ff4022f..079fa27 100644
|
||||
index fbe2766..c668729 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -1475,7 +1475,7 @@ fi
|
||||
@@ -1425,7 +1425,7 @@ fi
|
||||
# samba
|
||||
if test "x$use_samba" != "xno"; then
|
||||
PKG_CHECK_MODULES([SAMBA], [smbclient],
|
||||
@ -25,6 +25,3 @@ index ff4022f..079fa27 100644
|
||||
[AC_CHECK_LIB([smbclient], [main],,
|
||||
use_samba=no;AC_MSG_ERROR($missing_library))
|
||||
USE_LIBSMBCLIENT=0
|
||||
--
|
||||
1.7.10.4
|
||||
|
||||
|
@ -1,22 +1,18 @@
|
||||
From a98954cef067010982c83568dfba45da0d43fe4d Mon Sep 17 00:00:00 2001
|
||||
From 813e6f31c8006190615cbf8ab031db2362bcf553 Mon Sep 17 00:00:00 2001
|
||||
From: Alex Deryskyba <alex@codesnake.com>
|
||||
Date: Fri, 19 Sep 2014 01:55:12 +0300
|
||||
Subject: [PATCH 09/17] [aml] Change the sample rates that are supported by
|
||||
ALSA but unsupported by HDMI to the closest supported
|
||||
value
|
||||
Subject: [PATCH] [aml] Change the sample rates that are supported by ALSA but
|
||||
unsupported by HDMI to the closest supported value
|
||||
|
||||
Conflicts:
|
||||
|
||||
xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp
|
||||
---
|
||||
xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp | 20 ++++++++++++++++++++
|
||||
xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp | 20 ++++++++++++++++++++
|
||||
1 file changed, 20 insertions(+)
|
||||
|
||||
diff --git a/xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp b/xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp
|
||||
index 9f80c06..18303f8 100644
|
||||
index 6bf2c53..32ab888 100644
|
||||
--- a/xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp
|
||||
+++ b/xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp
|
||||
@@ -666,6 +666,26 @@ bool CAESinkALSA::InitializeHW(const ALSAConfig &inconfig, ALSAConfig &outconfig
|
||||
@@ -673,6 +673,26 @@ bool CAESinkALSA::InitializeHW(const ALSAConfig &inconfig, ALSAConfig &outconfig
|
||||
snd_pcm_hw_params_set_access(m_pcm, hw_params, SND_PCM_ACCESS_RW_INTERLEAVED);
|
||||
|
||||
unsigned int sampleRate = inconfig.sampleRate;
|
||||
@ -43,6 +39,3 @@ index 9f80c06..18303f8 100644
|
||||
snd_pcm_hw_params_set_rate_near (m_pcm, hw_params, &sampleRate, NULL);
|
||||
|
||||
unsigned int channelCount = inconfig.channels;
|
||||
--
|
||||
1.7.10.4
|
||||
|
||||
|
@ -1,20 +1,20 @@
|
||||
From 554f4a769d67155cbdf6f45ba256b5700baa65c1 Mon Sep 17 00:00:00 2001
|
||||
From b97f9b069a98984109829badcdf8ead92a29ee38 Mon Sep 17 00:00:00 2001
|
||||
From: Alex Deryskyba <alex@codesnake.com>
|
||||
Date: Sat, 20 Sep 2014 04:43:52 +0300
|
||||
Subject: [PATCH 10/17] [aml] Fill audio packets completely when resampling to
|
||||
Subject: [PATCH] [aml] Fill audio packets completely when resampling to
|
||||
prevent 'audio data unaligned' kernel warnings
|
||||
|
||||
---
|
||||
xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAEBuffer.cpp | 4 ++++
|
||||
xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAEBuffer.cpp | 4 ++++
|
||||
1 file changed, 4 insertions(+)
|
||||
|
||||
diff --git a/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAEBuffer.cpp b/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAEBuffer.cpp
|
||||
index 3b0a015..ef431a4 100644
|
||||
index dffded7..2f9dc47 100644
|
||||
--- a/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAEBuffer.cpp
|
||||
+++ b/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAEBuffer.cpp
|
||||
@@ -143,7 +143,11 @@ CActiveAEBufferPoolResample::CActiveAEBufferPoolResample(AEAudioFormat inputForm
|
||||
if (AE_IS_RAW(m_inputFormat.m_dataFormat))
|
||||
m_inputFormat.m_dataFormat = AE_FMT_S16NE;
|
||||
@@ -157,7 +157,11 @@ CActiveAEBufferPoolResample::CActiveAEBufferPoolResample(AEAudioFormat inputForm
|
||||
m_inputFormat.m_channelLayout += AE_CH_FC;
|
||||
}
|
||||
m_resampler = NULL;
|
||||
+#ifdef HAS_LIBAMCODEC
|
||||
+ m_fillPackets = true;
|
||||
@ -24,6 +24,3 @@ index 3b0a015..ef431a4 100644
|
||||
m_drain = false;
|
||||
m_empty = true;
|
||||
m_procSample = NULL;
|
||||
--
|
||||
1.7.10.4
|
||||
|
||||
|
@ -1,120 +0,0 @@
|
||||
From e065d31b7bac0a3fffc0f05922613090cc573709 Mon Sep 17 00:00:00 2001
|
||||
From: Alex Deryskyba <alex@codesnake.com>
|
||||
Date: Sun, 21 Sep 2014 17:17:14 +0300
|
||||
Subject: [PATCH 11/17] [aml] Use fpsrate and fpsscale instead of rfpsrate and
|
||||
rfpsscale to detect framerate
|
||||
|
||||
---
|
||||
xbmc/cores/dvdplayer/DVDCodecs/Video/AMLCodec.cpp | 12 ++-----
|
||||
.../DVDCodecs/Video/DVDVideoCodecAmlogic.cpp | 38 +++++++++-----------
|
||||
2 files changed, 20 insertions(+), 30 deletions(-)
|
||||
|
||||
diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/AMLCodec.cpp b/xbmc/cores/dvdplayer/DVDCodecs/Video/AMLCodec.cpp
|
||||
index 26db4a1..fcdad19 100644
|
||||
--- a/xbmc/cores/dvdplayer/DVDCodecs/Video/AMLCodec.cpp
|
||||
+++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/AMLCodec.cpp
|
||||
@@ -1465,14 +1465,8 @@ bool CAMLCodec::OpenDecoder(CDVDStreamInfo &hints)
|
||||
am_private->video_ratio64 = ((int64_t)video_ratio.num << 32) | video_ratio.den;
|
||||
|
||||
// handle video rate
|
||||
- if (hints.rfpsrate > 0 && hints.rfpsscale != 0)
|
||||
+ if (hints.fpsrate > 0 && hints.fpsscale != 0)
|
||||
{
|
||||
- // check ffmpeg r_frame_rate 1st
|
||||
- am_private->video_rate = 0.5 + (float)UNIT_FREQ * hints.rfpsscale / hints.rfpsrate;
|
||||
- }
|
||||
- else if (hints.fpsrate > 0 && hints.fpsscale != 0)
|
||||
- {
|
||||
- // then ffmpeg avg_frame_rate next
|
||||
am_private->video_rate = 0.5 + (float)UNIT_FREQ * hints.fpsscale / hints.fpsrate;
|
||||
}
|
||||
|
||||
@@ -1545,8 +1539,8 @@ bool CAMLCodec::OpenDecoder(CDVDStreamInfo &hints)
|
||||
CLog::Log(LOGDEBUG, "CAMLCodec::OpenDecoder "
|
||||
"hints.width(%d), hints.height(%d), hints.codec(%d), hints.codec_tag(%d), hints.pid(%d)",
|
||||
hints.width, hints.height, hints.codec, hints.codec_tag, hints.pid);
|
||||
- CLog::Log(LOGDEBUG, "CAMLCodec::OpenDecoder hints.fpsrate(%d), hints.fpsscale(%d), hints.rfpsrate(%d), hints.rfpsscale(%d), video_rate(%d)",
|
||||
- hints.fpsrate, hints.fpsscale, hints.rfpsrate, hints.rfpsscale, am_private->video_rate);
|
||||
+ CLog::Log(LOGDEBUG, "CAMLCodec::OpenDecoder hints.fpsrate(%d), hints.fpsscale(%d), video_rate(%d)",
|
||||
+ hints.fpsrate, hints.fpsscale, am_private->video_rate);
|
||||
CLog::Log(LOGDEBUG, "CAMLCodec::OpenDecoder hints.aspect(%f), video_ratio.num(%d), video_ratio.den(%d)",
|
||||
hints.aspect, video_ratio.num, video_ratio.den);
|
||||
CLog::Log(LOGDEBUG, "CAMLCodec::OpenDecoder hints.orientation(%d), hints.forced_aspect(%d), hints.extrasize(%d)",
|
||||
diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecAmlogic.cpp b/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecAmlogic.cpp
|
||||
index 24c1ab9..960aae1 100644
|
||||
--- a/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecAmlogic.cpp
|
||||
+++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecAmlogic.cpp
|
||||
@@ -74,9 +74,7 @@ bool CDVDVideoCodecAmlogic::Open(CDVDStreamInfo &hints, CDVDCodecOptions &option
|
||||
m_mpeg2_sequence->width = m_hints.width;
|
||||
m_mpeg2_sequence->height = m_hints.height;
|
||||
m_mpeg2_sequence->ratio = m_hints.aspect;
|
||||
- if (m_hints.rfpsrate > 0 && m_hints.rfpsscale != 0)
|
||||
- m_mpeg2_sequence->rate = (float)m_hints.rfpsrate / m_hints.rfpsscale;
|
||||
- else if (m_hints.fpsrate > 0 && m_hints.fpsscale != 0)
|
||||
+ if (m_hints.fpsrate > 0 && m_hints.fpsscale != 0)
|
||||
m_mpeg2_sequence->rate = (float)m_hints.fpsrate / m_hints.fpsscale;
|
||||
else
|
||||
m_mpeg2_sequence->rate = 1.0;
|
||||
@@ -374,43 +372,41 @@ void CDVDVideoCodecAmlogic::FrameRateTracking(uint8_t *pData, int iSize, double
|
||||
{
|
||||
default:
|
||||
case 0x01:
|
||||
- m_hints.rfpsrate = 24000.0;
|
||||
- m_hints.rfpsscale = 1001.0;
|
||||
+ m_hints.fpsrate = 24000.0;
|
||||
+ m_hints.fpsscale = 1001.0;
|
||||
break;
|
||||
case 0x02:
|
||||
- m_hints.rfpsrate = 24000.0;
|
||||
- m_hints.rfpsscale = 1000.0;
|
||||
+ m_hints.fpsrate = 24000.0;
|
||||
+ m_hints.fpsscale = 1000.0;
|
||||
break;
|
||||
case 0x03:
|
||||
- m_hints.rfpsrate = 25000.0;
|
||||
- m_hints.rfpsscale = 1000.0;
|
||||
+ m_hints.fpsrate = 25000.0;
|
||||
+ m_hints.fpsscale = 1000.0;
|
||||
break;
|
||||
case 0x04:
|
||||
- m_hints.rfpsrate = 30000.0;
|
||||
- m_hints.rfpsscale = 1001.0;
|
||||
+ m_hints.fpsrate = 30000.0;
|
||||
+ m_hints.fpsscale = 1001.0;
|
||||
break;
|
||||
case 0x05:
|
||||
- m_hints.rfpsrate = 30000.0;
|
||||
- m_hints.rfpsscale = 1000.0;
|
||||
+ m_hints.fpsrate = 30000.0;
|
||||
+ m_hints.fpsscale = 1000.0;
|
||||
break;
|
||||
case 0x06:
|
||||
- m_hints.rfpsrate = 50000.0;
|
||||
- m_hints.rfpsscale = 1000.0;
|
||||
+ m_hints.fpsrate = 50000.0;
|
||||
+ m_hints.fpsscale = 1000.0;
|
||||
break;
|
||||
case 0x07:
|
||||
- m_hints.rfpsrate = 60000.0;
|
||||
- m_hints.rfpsscale = 1001.0;
|
||||
+ m_hints.fpsrate = 60000.0;
|
||||
+ m_hints.fpsscale = 1001.0;
|
||||
break;
|
||||
case 0x08:
|
||||
- m_hints.rfpsrate = 60000.0;
|
||||
- m_hints.rfpsscale = 1000.0;
|
||||
+ m_hints.fpsrate = 60000.0;
|
||||
+ m_hints.fpsscale = 1000.0;
|
||||
break;
|
||||
}
|
||||
m_hints.width = m_mpeg2_sequence->width;
|
||||
m_hints.height = m_mpeg2_sequence->height;
|
||||
m_hints.aspect = m_mpeg2_sequence->ratio;
|
||||
- m_hints.fpsrate = m_hints.rfpsrate;
|
||||
- m_hints.fpsscale = m_hints.rfpsscale;
|
||||
}
|
||||
return;
|
||||
}
|
||||
--
|
||||
1.7.10.4
|
||||
|
@ -1,143 +0,0 @@
|
||||
From a9ff99a36f9e6cea70f7274312a127563af15dc5 Mon Sep 17 00:00:00 2001
|
||||
From: Alex Deryskyba <alex@codesnake.com>
|
||||
Date: Sun, 21 Sep 2014 17:20:25 +0300
|
||||
Subject: [PATCH 12/17] Fix incorrect frame rate detection of some videos with
|
||||
variable frame rate.
|
||||
|
||||
Use FFMPEG's r_frame_rate, if it as valid, as a video stream frame rate, otherwise use avg_frame_rate.
|
||||
Also remove CDVDStreamInfo.rfpsscale, CDVDStreamInfo.rfpsrate, CDemuxStreamVideo.irFpsScale and CDemuxStreamVideo.irFpsRate,
|
||||
they are not needed anymore.
|
||||
---
|
||||
xbmc/cores/dvdplayer/DVDDemuxers/DVDDemux.h | 4 ---
|
||||
.../cores/dvdplayer/DVDDemuxers/DVDDemuxFFmpeg.cpp | 29 ++++++++--------------
|
||||
xbmc/cores/dvdplayer/DVDStreamInfo.cpp | 8 ------
|
||||
xbmc/cores/dvdplayer/DVDStreamInfo.h | 2 --
|
||||
4 files changed, 10 insertions(+), 33 deletions(-)
|
||||
|
||||
diff --git a/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemux.h b/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemux.h
|
||||
index d69991e..faf3c9b 100644
|
||||
--- a/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemux.h
|
||||
+++ b/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemux.h
|
||||
@@ -151,8 +151,6 @@ public:
|
||||
{
|
||||
iFpsScale = 0;
|
||||
iFpsRate = 0;
|
||||
- irFpsScale = 0;
|
||||
- irFpsRate = 0;
|
||||
iHeight = 0;
|
||||
iWidth = 0;
|
||||
fAspect = 0.0;
|
||||
@@ -167,8 +165,6 @@ public:
|
||||
virtual ~CDemuxStreamVideo() {}
|
||||
int iFpsScale; // scale of 1000 and a rate of 29970 will result in 29.97 fps
|
||||
int iFpsRate;
|
||||
- int irFpsScale;
|
||||
- int irFpsRate;
|
||||
int iHeight; // height of the stream reported by the demuxer
|
||||
int iWidth; // width of the stream reported by the demuxer
|
||||
float fAspect; // display aspect of stream
|
||||
diff --git a/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxFFmpeg.cpp b/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxFFmpeg.cpp
|
||||
index 1315117..5367b28 100644
|
||||
--- a/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxFFmpeg.cpp
|
||||
+++ b/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxFFmpeg.cpp
|
||||
@@ -1125,34 +1125,25 @@ CDemuxStream* CDVDDemuxFFmpeg::AddStream(int iId)
|
||||
#else
|
||||
AVRational r_frame_rate = pStream->r_frame_rate;
|
||||
#endif
|
||||
+ int rFrameRate = 0;
|
||||
+ if (r_frame_rate.den && r_frame_rate.num)
|
||||
+ rFrameRate = r_frame_rate.num / r_frame_rate.den;
|
||||
+ bool rFrameRateValid = rFrameRate >= 5 && rFrameRate <= 100;
|
||||
|
||||
- //average fps is more accurate for mkv files
|
||||
- if (m_bMatroska && pStream->avg_frame_rate.den && pStream->avg_frame_rate.num)
|
||||
- {
|
||||
- st->iFpsRate = pStream->avg_frame_rate.num;
|
||||
- st->iFpsScale = pStream->avg_frame_rate.den;
|
||||
- }
|
||||
- else if(r_frame_rate.den && r_frame_rate.num)
|
||||
+ if (rFrameRateValid)
|
||||
{
|
||||
st->iFpsRate = r_frame_rate.num;
|
||||
st->iFpsScale = r_frame_rate.den;
|
||||
}
|
||||
- else
|
||||
- {
|
||||
- st->iFpsRate = 0;
|
||||
- st->iFpsScale = 0;
|
||||
- }
|
||||
-
|
||||
- // added for aml hw decoder, mkv frame-rate can be wrong.
|
||||
- if (r_frame_rate.den && r_frame_rate.num)
|
||||
+ else if(pStream->avg_frame_rate.den && pStream->avg_frame_rate.num)
|
||||
{
|
||||
- st->irFpsRate = r_frame_rate.num;
|
||||
- st->irFpsScale = r_frame_rate.den;
|
||||
+ st->iFpsRate = pStream->avg_frame_rate.num;
|
||||
+ st->iFpsScale = pStream->avg_frame_rate.den;
|
||||
}
|
||||
else
|
||||
{
|
||||
- st->irFpsRate = 0;
|
||||
- st->irFpsScale = 0;
|
||||
+ st->iFpsRate = 0;
|
||||
+ st->iFpsScale = 0;
|
||||
}
|
||||
|
||||
if (pStream->codec_info_nb_frames > 0
|
||||
diff --git a/xbmc/cores/dvdplayer/DVDStreamInfo.cpp b/xbmc/cores/dvdplayer/DVDStreamInfo.cpp
|
||||
index c1dbd85..03facbe 100644
|
||||
--- a/xbmc/cores/dvdplayer/DVDStreamInfo.cpp
|
||||
+++ b/xbmc/cores/dvdplayer/DVDStreamInfo.cpp
|
||||
@@ -52,8 +52,6 @@ void CDVDStreamInfo::Clear()
|
||||
|
||||
fpsscale = 0;
|
||||
fpsrate = 0;
|
||||
- rfpsscale= 0;
|
||||
- rfpsrate = 0;
|
||||
height = 0;
|
||||
width = 0;
|
||||
aspect = 0.0;
|
||||
@@ -97,8 +95,6 @@ bool CDVDStreamInfo::Equal(const CDVDStreamInfo& right, bool withextradata)
|
||||
// VIDEO
|
||||
if( fpsscale != right.fpsscale
|
||||
|| fpsrate != right.fpsrate
|
||||
- || rfpsscale!= right.rfpsscale
|
||||
- || rfpsrate != right.rfpsrate
|
||||
|| height != right.height
|
||||
|| width != right.width
|
||||
|| stills != right.stills
|
||||
@@ -159,8 +155,6 @@ void CDVDStreamInfo::Assign(const CDVDStreamInfo& right, bool withextradata)
|
||||
// VIDEO
|
||||
fpsscale = right.fpsscale;
|
||||
fpsrate = right.fpsrate;
|
||||
- rfpsscale= right.rfpsscale;
|
||||
- rfpsrate = right.rfpsrate;
|
||||
height = right.height;
|
||||
width = right.width;
|
||||
aspect = right.aspect;
|
||||
@@ -220,8 +214,6 @@ void CDVDStreamInfo::Assign(const CDemuxStream& right, bool withextradata)
|
||||
const CDemuxStreamVideo *stream = static_cast<const CDemuxStreamVideo*>(&right);
|
||||
fpsscale = stream->iFpsScale;
|
||||
fpsrate = stream->iFpsRate;
|
||||
- rfpsscale = stream->irFpsScale;
|
||||
- rfpsrate = stream->irFpsRate;
|
||||
height = stream->iHeight;
|
||||
width = stream->iWidth;
|
||||
aspect = stream->fAspect;
|
||||
diff --git a/xbmc/cores/dvdplayer/DVDStreamInfo.h b/xbmc/cores/dvdplayer/DVDStreamInfo.h
|
||||
index c0e22a2..8953ff3 100644
|
||||
--- a/xbmc/cores/dvdplayer/DVDStreamInfo.h
|
||||
+++ b/xbmc/cores/dvdplayer/DVDStreamInfo.h
|
||||
@@ -58,8 +58,6 @@ public:
|
||||
// VIDEO
|
||||
int fpsscale; // scale of 1001 and a rate of 60000 will result in 59.94 fps
|
||||
int fpsrate;
|
||||
- int rfpsscale;
|
||||
- int rfpsrate;
|
||||
int height; // height of the stream reported by the demuxer
|
||||
int width; // width of the stream reported by the demuxer
|
||||
float aspect; // display aspect as reported by demuxer
|
||||
--
|
||||
2.1.4
|
||||
|
@ -1,19 +1,19 @@
|
||||
From 6aa16d7fe7e6dbe95bdca8069a16d2aa415adf37 Mon Sep 17 00:00:00 2001
|
||||
From a2adae2d6a5036b2af02448e6803175a02f368d1 Mon Sep 17 00:00:00 2001
|
||||
From: Alex Deryskyba <alex@codesnake.com>
|
||||
Date: Tue, 3 Feb 2015 17:58:19 +0100
|
||||
Subject: [PATCH 16/17] Disable deinterlacing for HD content while video is
|
||||
being played in a window to prevent screen blinking in 1080p50/60hz display
|
||||
modes
|
||||
Subject: [PATCH] [aml] Disable deinterlacing for HD content while video is
|
||||
being played in a window
|
||||
|
||||
... to prevent screen blinking in 1080p50/60hz display modes
|
||||
---
|
||||
xbmc/cores/dvdplayer/DVDCodecs/Video/AMLCodec.cpp | 5 +++++
|
||||
xbmc/cores/VideoPlayer/DVDCodecs/Video/AMLCodec.cpp | 5 +++++
|
||||
1 file changed, 5 insertions(+)
|
||||
|
||||
diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/AMLCodec.cpp b/xbmc/cores/dvdplayer/DVDCodecs/Video/AMLCodec.cpp
|
||||
index 2fad224..74804de 100644
|
||||
--- a/xbmc/cores/dvdplayer/DVDCodecs/Video/AMLCodec.cpp
|
||||
+++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/AMLCodec.cpp
|
||||
@@ -2261,6 +2261,11 @@ void CAMLCodec::SetVideoRect(const CRect &SrcRect, const CRect &DestRect)
|
||||
diff --git a/xbmc/cores/VideoPlayer/DVDCodecs/Video/AMLCodec.cpp b/xbmc/cores/VideoPlayer/DVDCodecs/Video/AMLCodec.cpp
|
||||
index 5dc6592..2103042 100644
|
||||
--- a/xbmc/cores/VideoPlayer/DVDCodecs/Video/AMLCodec.cpp
|
||||
+++ b/xbmc/cores/VideoPlayer/DVDCodecs/Video/AMLCodec.cpp
|
||||
@@ -2259,6 +2259,11 @@ void CAMLCodec::SetVideoRect(const CRect &SrcRect, const CRect &DestRect)
|
||||
CLog::Log(LOGDEBUG, "CAMLCodec::SetVideoRect:m_stereo_view(%d)", m_stereo_view);
|
||||
#endif
|
||||
|
||||
@ -25,6 +25,3 @@ index 2fad224..74804de 100644
|
||||
// goofy 0/1 based difference in aml axis coordinates.
|
||||
// fix them.
|
||||
dst_rect.x2--;
|
||||
--
|
||||
2.1.4
|
||||
|
||||
|
@ -1,18 +1,18 @@
|
||||
From 7b1c6ca4cb5bf3310cbfe3b007063439be301b6b Mon Sep 17 00:00:00 2001
|
||||
From 3e6754f46448b9718d57b62e8ca122e6217d0b22 Mon Sep 17 00:00:00 2001
|
||||
From: Alex Deryskyba <alex@codesnake.com>
|
||||
Date: Mon, 2 Mar 2015 09:48:14 +0100
|
||||
Subject: [PATCH 18/26] [aml] Fix stuttering during a playback of a video with
|
||||
23.976 FPS
|
||||
Subject: [PATCH] [aml] Fix stuttering during a playback of a video with 23.976
|
||||
FPS
|
||||
|
||||
---
|
||||
xbmc/cores/dvdplayer/DVDCodecs/Video/AMLCodec.cpp | 2 +-
|
||||
xbmc/cores/VideoPlayer/DVDCodecs/Video/AMLCodec.cpp | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/AMLCodec.cpp b/xbmc/cores/dvdplayer/DVDCodecs/Video/AMLCodec.cpp
|
||||
index bf4c958..8d49de8 100644
|
||||
--- a/xbmc/cores/dvdplayer/DVDCodecs/Video/AMLCodec.cpp
|
||||
+++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/AMLCodec.cpp
|
||||
@@ -1932,7 +1932,7 @@ void CAMLCodec::Process()
|
||||
diff --git a/xbmc/cores/VideoPlayer/DVDCodecs/Video/AMLCodec.cpp b/xbmc/cores/VideoPlayer/DVDCodecs/Video/AMLCodec.cpp
|
||||
index 2103042..edf8f8a 100644
|
||||
--- a/xbmc/cores/VideoPlayer/DVDCodecs/Video/AMLCodec.cpp
|
||||
+++ b/xbmc/cores/VideoPlayer/DVDCodecs/Video/AMLCodec.cpp
|
||||
@@ -1974,7 +1974,7 @@ void CAMLCodec::Process()
|
||||
|
||||
double error = app_pts - (double)pts_video/PTS_FREQ;
|
||||
double abs_error = fabs(error);
|
||||
@ -21,6 +21,3 @@ index bf4c958..8d49de8 100644
|
||||
{
|
||||
//CLog::Log(LOGDEBUG, "CAMLCodec::Process pts diff = %f", error);
|
||||
if (abs_error > 0.150)
|
||||
--
|
||||
1.7.10.4
|
||||
|
||||
|
@ -0,0 +1,27 @@
|
||||
From 11435d47a5351c55ef12661baf1adb167da513ef Mon Sep 17 00:00:00 2001
|
||||
From: Alex Deryskyba <alex@codesnake.com>
|
||||
Date: Tue, 30 Jun 2015 11:19:57 +0200
|
||||
Subject: [PATCH] [aml] Ugly workaround to show DTS/AC3 caps
|
||||
|
||||
... but don't run into multi channel issues as we can only open 2 pcm channels
|
||||
---
|
||||
xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp | 6 ++++++
|
||||
1 file changed, 6 insertions(+)
|
||||
|
||||
diff --git a/xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp b/xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp
|
||||
index 32ab888..d4eb0be 100644
|
||||
--- a/xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp
|
||||
+++ b/xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp
|
||||
@@ -1336,6 +1336,12 @@ void CAESinkALSA::EnumerateDevicesEx(AEDeviceInfoList &list, bool force)
|
||||
|
||||
AEDeviceType CAESinkALSA::AEDeviceTypeFromName(const std::string &name)
|
||||
{
|
||||
+#ifdef HAS_LIBAMCODEC
|
||||
+ // ugly workaround to show DTS / AC3 caps
|
||||
+ // but don't run into multi channel issues
|
||||
+ // as we can only open 2 pcm channels
|
||||
+ return AE_DEVTYPE_IEC958;
|
||||
+#endif
|
||||
if (name.substr(0, 4) == "hdmi")
|
||||
return AE_DEVTYPE_HDMI;
|
||||
else if (name.substr(0, 6) == "iec958" || name.substr(0, 5) == "spdif")
|
@ -0,0 +1,214 @@
|
||||
From c90b4c2ced393524e81c0ec321afa7ec94f3b806 Mon Sep 17 00:00:00 2001
|
||||
From: Alex Deryskyba <alex@codesnake.com>
|
||||
Date: Wed, 1 Jul 2015 23:37:11 +0200
|
||||
Subject: [PATCH] [aml] Add support for 4k resolutions
|
||||
|
||||
---
|
||||
xbmc/utils/AMLUtils.cpp | 16 +++---
|
||||
xbmc/windowing/egl/EGLNativeTypeAmlogic.cpp | 81 ++++++++++++++++++++++-------
|
||||
xbmc/windowing/egl/EGLNativeTypeAmlogic.h | 2 +
|
||||
3 files changed, 73 insertions(+), 26 deletions(-)
|
||||
|
||||
diff --git a/xbmc/utils/AMLUtils.cpp b/xbmc/utils/AMLUtils.cpp
|
||||
index 1b54435..05f2cd0 100644
|
||||
--- a/xbmc/utils/AMLUtils.cpp
|
||||
+++ b/xbmc/utils/AMLUtils.cpp
|
||||
@@ -449,8 +449,8 @@ bool aml_mode_to_resolution(const char *mode, RESOLUTION_INFO *res)
|
||||
}
|
||||
else if (StringUtils::EqualsNoCase(fromMode, "4k2ksmpte") || StringUtils::EqualsNoCase(fromMode, "smpte24hz"))
|
||||
{
|
||||
- res->iWidth = 1920;
|
||||
- res->iHeight= 1080;
|
||||
+ res->iWidth = 4096;
|
||||
+ res->iHeight= 2160;
|
||||
res->iScreenWidth = 4096;
|
||||
res->iScreenHeight= 2160;
|
||||
res->fRefreshRate = 24;
|
||||
@@ -467,8 +467,8 @@ bool aml_mode_to_resolution(const char *mode, RESOLUTION_INFO *res)
|
||||
}
|
||||
else if (StringUtils::EqualsNoCase(fromMode, "4k2k24hz") || StringUtils::EqualsNoCase(fromMode, "2160p24hz"))
|
||||
{
|
||||
- res->iWidth = 1920;
|
||||
- res->iHeight= 1080;
|
||||
+ res->iWidth = 3840;
|
||||
+ res->iHeight= 2160;
|
||||
res->iScreenWidth = 3840;
|
||||
res->iScreenHeight= 2160;
|
||||
res->fRefreshRate = 24;
|
||||
@@ -476,8 +476,8 @@ bool aml_mode_to_resolution(const char *mode, RESOLUTION_INFO *res)
|
||||
}
|
||||
else if (StringUtils::EqualsNoCase(fromMode, "4k2k25hz") || StringUtils::EqualsNoCase(fromMode, "2160p25hz"))
|
||||
{
|
||||
- res->iWidth = 1920;
|
||||
- res->iHeight= 1080;
|
||||
+ res->iWidth = 3840;
|
||||
+ res->iHeight= 2160;
|
||||
res->iScreenWidth = 3840;
|
||||
res->iScreenHeight= 2160;
|
||||
res->fRefreshRate = 25;
|
||||
@@ -494,8 +494,8 @@ bool aml_mode_to_resolution(const char *mode, RESOLUTION_INFO *res)
|
||||
}
|
||||
else if (StringUtils::EqualsNoCase(fromMode, "4k2k30hz") || StringUtils::EqualsNoCase(fromMode, "2160p30hz"))
|
||||
{
|
||||
- res->iWidth = 1920;
|
||||
- res->iHeight= 1080;
|
||||
+ res->iWidth = 3840;
|
||||
+ res->iHeight= 2160;
|
||||
res->iScreenWidth = 3840;
|
||||
res->iScreenHeight= 2160;
|
||||
res->fRefreshRate = 30;
|
||||
diff --git a/xbmc/windowing/egl/EGLNativeTypeAmlogic.cpp b/xbmc/windowing/egl/EGLNativeTypeAmlogic.cpp
|
||||
index 21256ef..2103f0b 100644
|
||||
--- a/xbmc/windowing/egl/EGLNativeTypeAmlogic.cpp
|
||||
+++ b/xbmc/windowing/egl/EGLNativeTypeAmlogic.cpp
|
||||
@@ -65,7 +65,22 @@ void CEGLNativeTypeAmlogic::Initialize()
|
||||
{
|
||||
aml_permissions();
|
||||
DisableFreeScale();
|
||||
+ GetMaxResolution(m_maxResolution);
|
||||
}
|
||||
+
|
||||
+void CEGLNativeTypeAmlogic::GetMaxResolution(RESOLUTION_INFO &maxResolution)
|
||||
+{
|
||||
+ std::vector<RESOLUTION_INFO> resolutions;
|
||||
+ ProbeResolutions(resolutions);
|
||||
+
|
||||
+ maxResolution = {0};
|
||||
+ for (size_t i = 0; i < resolutions.size(); i++)
|
||||
+ {
|
||||
+ if (resolutions[i].iScreenWidth > maxResolution.iScreenWidth || resolutions[i].iScreenHeight > maxResolution.iScreenHeight)
|
||||
+ maxResolution = resolutions[i];
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
void CEGLNativeTypeAmlogic::Destroy()
|
||||
{
|
||||
return;
|
||||
@@ -84,8 +99,8 @@ bool CEGLNativeTypeAmlogic::CreateNativeWindow()
|
||||
if (!nativeWindow)
|
||||
return false;
|
||||
|
||||
- nativeWindow->width = 1920;
|
||||
- nativeWindow->height = 1080;
|
||||
+ nativeWindow->width = m_maxResolution.iScreenWidth;
|
||||
+ nativeWindow->height = m_maxResolution.iScreenHeight;
|
||||
m_nativeWindow = nativeWindow;
|
||||
|
||||
SetFramebufferResolution(nativeWindow->width, nativeWindow->height);
|
||||
@@ -142,48 +157,78 @@ bool CEGLNativeTypeAmlogic::SetNativeResolution(const RESOLUTION_INFO &res)
|
||||
}
|
||||
#endif
|
||||
|
||||
- switch((int)(0.5 + res.fRefreshRate))
|
||||
+ switch((int)(res.fRefreshRate*10))
|
||||
{
|
||||
default:
|
||||
- case 60:
|
||||
+ case 600:
|
||||
switch(res.iScreenWidth)
|
||||
{
|
||||
default:
|
||||
case 1280:
|
||||
- SetDisplayResolution("720p");
|
||||
+ return SetDisplayResolution("720p");
|
||||
break;
|
||||
case 1920:
|
||||
if (res.dwFlags & D3DPRESENTFLAG_INTERLACED)
|
||||
- SetDisplayResolution("1080i");
|
||||
+ return SetDisplayResolution("1080i");
|
||||
else
|
||||
- SetDisplayResolution("1080p");
|
||||
+ return SetDisplayResolution("1080p");
|
||||
break;
|
||||
}
|
||||
break;
|
||||
- case 50:
|
||||
+ case 500:
|
||||
switch(res.iScreenWidth)
|
||||
{
|
||||
default:
|
||||
case 1280:
|
||||
- SetDisplayResolution("720p50hz");
|
||||
+ return SetDisplayResolution("720p50hz");
|
||||
break;
|
||||
case 1920:
|
||||
if (res.dwFlags & D3DPRESENTFLAG_INTERLACED)
|
||||
- SetDisplayResolution("1080i50hz");
|
||||
+ return SetDisplayResolution("1080i50hz");
|
||||
else
|
||||
- SetDisplayResolution("1080p50hz");
|
||||
+ return SetDisplayResolution("1080p50hz");
|
||||
break;
|
||||
}
|
||||
break;
|
||||
- case 30:
|
||||
- SetDisplayResolution("1080p30hz");
|
||||
+ case 300:
|
||||
+ switch(res.iScreenWidth)
|
||||
+ {
|
||||
+ case 3840:
|
||||
+ return SetDisplayResolution("4k2k30hz");
|
||||
+ break;
|
||||
+ default:
|
||||
+ return SetDisplayResolution("1080p30hz");
|
||||
+ break;
|
||||
+ }
|
||||
break;
|
||||
- case 24:
|
||||
- SetDisplayResolution("1080p24hz");
|
||||
+ case 250:
|
||||
+ switch(res.iScreenWidth)
|
||||
+ {
|
||||
+ case 3840:
|
||||
+ return SetDisplayResolution("4k2k25hz");
|
||||
+ break;
|
||||
+ default:
|
||||
+ return SetDisplayResolution("1080p25hz");
|
||||
+ break;
|
||||
+ }
|
||||
+ break;
|
||||
+ case 240:
|
||||
+ switch(res.iScreenWidth)
|
||||
+ {
|
||||
+ case 3840:
|
||||
+ return SetDisplayResolution("4k2k24hz");
|
||||
+ break;
|
||||
+ case 4096:
|
||||
+ return SetDisplayResolution("4k2ksmpte");
|
||||
+ break;
|
||||
+ default:
|
||||
+ return SetDisplayResolution("1080p24hz");
|
||||
+ break;
|
||||
+ }
|
||||
break;
|
||||
}
|
||||
|
||||
- return true;
|
||||
+ return false;
|
||||
}
|
||||
|
||||
bool CEGLNativeTypeAmlogic::ProbeResolutions(std::vector<RESOLUTION_INFO> &resolutions)
|
||||
@@ -280,8 +325,8 @@ void CEGLNativeTypeAmlogic::SetFramebufferResolution(int width, int height) cons
|
||||
{
|
||||
vinfo.xres = width;
|
||||
vinfo.yres = height;
|
||||
- vinfo.xres_virtual = 1920;
|
||||
- vinfo.yres_virtual = 2160;
|
||||
+ vinfo.xres_virtual = m_maxResolution.iScreenWidth;
|
||||
+ vinfo.yres_virtual = m_maxResolution.iScreenHeight * 2;
|
||||
vinfo.bits_per_pixel = 32;
|
||||
vinfo.activate = FB_ACTIVATE_ALL;
|
||||
ioctl(fd0, FBIOPUT_VSCREENINFO, &vinfo);
|
||||
diff --git a/xbmc/windowing/egl/EGLNativeTypeAmlogic.h b/xbmc/windowing/egl/EGLNativeTypeAmlogic.h
|
||||
index 6867c38..9ca41d4 100644
|
||||
--- a/xbmc/windowing/egl/EGLNativeTypeAmlogic.h
|
||||
+++ b/xbmc/windowing/egl/EGLNativeTypeAmlogic.h
|
||||
@@ -55,6 +55,8 @@ class CEGLNativeTypeAmlogic : public CEGLNativeType
|
||||
private:
|
||||
void SetFramebufferResolution(const RESOLUTION_INFO &res) const;
|
||||
void SetFramebufferResolution(int width, int height) const;
|
||||
+ void GetMaxResolution(RESOLUTION_INFO &maxResolution);
|
||||
|
||||
std::string m_framebuffer_name;
|
||||
+ RESOLUTION_INFO m_maxResolution;
|
||||
};
|
@ -1,8 +1,17 @@
|
||||
diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/Makefile.in b/xbmc/cores/dvdplayer/DVDCodecs/Video/Makefile.in
|
||||
index 8a97889..78506b1 100644
|
||||
--- a/xbmc/cores/dvdplayer/DVDCodecs/Video/Makefile.in
|
||||
+++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/Makefile.in
|
||||
@@ -27,8 +27,6 @@ endif
|
||||
From 42e367deff4886e825dc77606c76ee9835d6ee9e Mon Sep 17 00:00:00 2001
|
||||
From: Stefan Saraev <stefan@saraev.ca>
|
||||
Date: Sat, 7 Nov 2015 16:24:58 +0200
|
||||
Subject: [PATCH] [wetek] fix compiler badness when compiling with amcodec
|
||||
|
||||
---
|
||||
xbmc/cores/VideoPlayer/DVDCodecs/Video/Makefile.in | 2 --
|
||||
1 file changed, 2 deletions(-)
|
||||
|
||||
diff --git a/xbmc/cores/VideoPlayer/DVDCodecs/Video/Makefile.in b/xbmc/cores/VideoPlayer/DVDCodecs/Video/Makefile.in
|
||||
index 7880c06..bd083b7 100644
|
||||
--- a/xbmc/cores/VideoPlayer/DVDCodecs/Video/Makefile.in
|
||||
+++ b/xbmc/cores/VideoPlayer/DVDCodecs/Video/Makefile.in
|
||||
@@ -25,8 +25,6 @@ endif
|
||||
ifeq (@USE_LIBAMCODEC@,1)
|
||||
SRCS += AMLCodec.cpp
|
||||
SRCS += DVDVideoCodecAmlogic.cpp
|
||||
|
@ -1,8 +1,18 @@
|
||||
From 55b3da7e97f6dc1e99724782253c35fe4c8b7c5a Mon Sep 17 00:00:00 2001
|
||||
From: Stefan Saraev <stefan@saraev.ca>
|
||||
Date: Sat, 7 Nov 2015 16:25:44 +0200
|
||||
Subject: [PATCH] [wetek] perform suspend instead of powerdown
|
||||
|
||||
---
|
||||
system/keymaps/keyboard.xml | 2 +-
|
||||
xbmc/powermanagement/linux/LogindUPowerSyscall.cpp | 4 ++--
|
||||
2 files changed, 3 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/system/keymaps/keyboard.xml b/system/keymaps/keyboard.xml
|
||||
index 45682a2..b8ce91b 100644
|
||||
index 9833cff..0ce105e 100644
|
||||
--- a/system/keymaps/keyboard.xml
|
||||
+++ b/system/keymaps/keyboard.xml
|
||||
@@ -96,7 +96,7 @@
|
||||
@@ -91,7 +91,7 @@
|
||||
<backslash>ToggleFullScreen</backslash>
|
||||
<home>FirstPage</home>
|
||||
<end>LastPage</end>
|
||||
@ -10,12 +20,12 @@ index 45682a2..b8ce91b 100644
|
||||
+ <power>XBMC.Powerdown()</power>
|
||||
<sleep>ActivateWindow(shutdownmenu)</sleep>
|
||||
<!-- PVR windows -->
|
||||
<e>XBMC.ActivateWindowAndFocus(MyPVR, 31,0, 10,0)</e>
|
||||
<e>ActivateWindow(TVGuide)</e>
|
||||
diff --git a/xbmc/powermanagement/linux/LogindUPowerSyscall.cpp b/xbmc/powermanagement/linux/LogindUPowerSyscall.cpp
|
||||
index 5a97fe6..369e790 100644
|
||||
index 4e5bcc6..ad5847d 100644
|
||||
--- a/xbmc/powermanagement/linux/LogindUPowerSyscall.cpp
|
||||
+++ b/xbmc/powermanagement/linux/LogindUPowerSyscall.cpp
|
||||
@@ -52,7 +52,7 @@ CLogindUPowerSyscall::CLogindUPowerSyscall()
|
||||
@@ -53,7 +53,7 @@ CLogindUPowerSyscall::CLogindUPowerSyscall()
|
||||
m_canPowerdown = LogindCheckCapability("CanPowerOff");
|
||||
m_canReboot = LogindCheckCapability("CanReboot");
|
||||
m_canHibernate = LogindCheckCapability("CanHibernate");
|
||||
@ -24,7 +34,7 @@ index 5a97fe6..369e790 100644
|
||||
|
||||
InhibitDelayLock();
|
||||
|
||||
@@ -97,7 +97,7 @@ CLogindUPowerSyscall::~CLogindUPowerSyscall()
|
||||
@@ -98,7 +98,7 @@ CLogindUPowerSyscall::~CLogindUPowerSyscall()
|
||||
|
||||
bool CLogindUPowerSyscall::Powerdown()
|
||||
{
|
||||
|
@ -1,22 +1,22 @@
|
||||
From a19578679f63520b0d8e9f589b82699076aff6ed Mon Sep 17 00:00:00 2001
|
||||
From: "Chris \"Koying\" Browet" <cbro@semperpax.com>
|
||||
From 0cdf5c043e783e8d956c5d59be8a9ec13a53fee3 Mon Sep 17 00:00:00 2001
|
||||
From: "Chris \\\"Koying\\\" Browet" <cbro@semperpax.com>
|
||||
Date: Fri, 19 Dec 2014 12:30:04 +0100
|
||||
Subject: [PATCH] FIX: [renderer] hide meaningless skips from users
|
||||
Subject: [PATCH] [aml] FIX: [renderer] hide meaningless skips from users
|
||||
|
||||
---
|
||||
xbmc/cores/VideoRenderers/RenderManager.cpp | 3 ++-
|
||||
xbmc/cores/VideoPlayer/VideoRenderers/RenderManager.cpp | 3 ++-
|
||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/xbmc/cores/VideoRenderers/RenderManager.cpp b/xbmc/cores/VideoRenderers/RenderManager.cpp
|
||||
index 7f43949..01327f5 100644
|
||||
--- a/xbmc/cores/VideoRenderers/RenderManager.cpp
|
||||
+++ b/xbmc/cores/VideoRenderers/RenderManager.cpp
|
||||
@@ -1198,7 +1198,8 @@ void CXBMCRenderManager::PrepareNextRender()
|
||||
diff --git a/xbmc/cores/VideoPlayer/VideoRenderers/RenderManager.cpp b/xbmc/cores/VideoPlayer/VideoRenderers/RenderManager.cpp
|
||||
index 70741be..15a484a 100644
|
||||
--- a/xbmc/cores/VideoPlayer/VideoRenderers/RenderManager.cpp
|
||||
+++ b/xbmc/cores/VideoPlayer/VideoRenderers/RenderManager.cpp
|
||||
@@ -1421,7 +1421,8 @@ void CRenderManager::PrepareNextRender()
|
||||
while(m_queued.front() != idx)
|
||||
{
|
||||
requeue(m_discard, m_queued);
|
||||
- m_QueueSkip++;
|
||||
+ if (m_format != RENDER_FMT_BYPASS) // skips scares users ;)
|
||||
+ if (m_format != RENDER_FMT_AML) // skips scares users ;)
|
||||
+ m_QueueSkip++;
|
||||
}
|
||||
|
||||
|
@ -58,13 +58,13 @@ echo "cleaning sources..."
|
||||
rm -rf $PKG_NAME-$PKG_VERSION/.git
|
||||
|
||||
echo "seperating theme..."
|
||||
rm -rf $PKG_NAME-theme-Confluence-$PKG_VERSION
|
||||
mv $PKG_NAME-$PKG_VERSION/addons/skin.confluence $PKG_NAME-theme-Confluence-$PKG_VERSION
|
||||
rm -rf $PKG_NAME-theme-Estuary-$PKG_VERSION
|
||||
mv $PKG_NAME-$PKG_VERSION/addons/skin.estuary $PKG_NAME-theme-Estuary-$PKG_VERSION
|
||||
|
||||
echo "packing sources..."
|
||||
tar cvJf $PKG_NAME-$PKG_VERSION.tar.xz $PKG_NAME-$PKG_VERSION
|
||||
tar cvJf $PKG_NAME-theme-Confluence-$PKG_VERSION.tar.xz $PKG_NAME-theme-Confluence-$PKG_VERSION
|
||||
tar cvJf $PKG_NAME-theme-Estuary-$PKG_VERSION.tar.xz $PKG_NAME-theme-Estuary-$PKG_VERSION
|
||||
|
||||
echo "remove temporary sourcedir..."
|
||||
rm -rf $PKG_NAME-$PKG_VERSION
|
||||
rm -rf $PKG_NAME-theme-Confluence-$PKG_VERSION
|
||||
rm -rf $PKG_NAME-theme-Estuary-$PKG_VERSION
|
||||
|
37
packages/multimedia/libmpeg2/package.mk → tools/mkpkg/mkpkg_libcec
Normal file → Executable file
37
packages/multimedia/libmpeg2/package.mk → tools/mkpkg/mkpkg_libcec
Normal file → Executable file
@ -1,3 +1,4 @@
|
||||
#!/bin/sh
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2009-2016 Stephan Raue (stephan@openelec.tv)
|
||||
@ -16,25 +17,25 @@
|
||||
# along with OpenELEC. If not, see <http://www.gnu.org/licenses/>.
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="libmpeg2"
|
||||
PKG_VERSION="0.5.1"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="http://libmpeg2.sourceforge.net/"
|
||||
PKG_URL="http://libmpeg2.sourceforge.net/files/$PKG_NAME-$PKG_VERSION.tar.gz"
|
||||
PKG_DEPENDS_TARGET="toolchain"
|
||||
PKG_PRIORITY="optional"
|
||||
PKG_SECTION="multimedia"
|
||||
PKG_SHORTDESC="libmpeg2: The MPEG Library - version 2"
|
||||
PKG_LONGDESC="The MPEG Library is a collection of C routines to decode MPEG-1 and MPEG-2 movies and dither them in a variety of colour schemes."
|
||||
PKG_IS_ADDON="no"
|
||||
echo "getting sources..."
|
||||
if [ ! -d libcec.git ]; then
|
||||
git clone --depth=1 https://github.com/Pulse-Eight/libcec.git libcec.git
|
||||
fi
|
||||
|
||||
PKG_AUTORECONF="yes"
|
||||
cd libcec.git
|
||||
git pull
|
||||
GIT_REV=`git log -n1 --format=%h`
|
||||
cd ..
|
||||
|
||||
PKG_CONFIGURE_OPTS_TARGET="--disable-sdl --without-x"
|
||||
echo "copying sources..."
|
||||
rm -rf libcec-$GIT_REV
|
||||
cp -R libcec.git libcec-$GIT_REV
|
||||
|
||||
post_makeinstall_target() {
|
||||
rm -rf $INSTALL/usr/bin
|
||||
}
|
||||
echo "cleaning sources..."
|
||||
rm -rf libcec-$GIT_REV/.git
|
||||
|
||||
echo "packing sources..."
|
||||
tar cvJf libcec-$GIT_REV.tar.xz libcec-$GIT_REV
|
||||
|
||||
echo "remove temporary sourcedir..."
|
||||
rm -rf libcec-$GIT_REV
|
28
packages/mediacenter/libsquish/package.mk → tools/mkpkg/mkpkg_soil
Normal file → Executable file
28
packages/mediacenter/libsquish/package.mk → tools/mkpkg/mkpkg_soil
Normal file → Executable file
@ -1,6 +1,7 @@
|
||||
#!/bin/sh
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2014 Stefan Saraev (stefan@sarae.va)
|
||||
# Copyright (C) 2009-2016 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
|
||||
@ -16,21 +17,14 @@
|
||||
# along with OpenELEC. If not, see <http://www.gnu.org/licenses/>.
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="libsquish"
|
||||
PKG_VERSION="1.10-openelec"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE=""
|
||||
PKG_URL="$DISTRO_SRC/$PKG_NAME-$PKG_VERSION.tar.gz"
|
||||
PKG_DEPENDS_HOST="toolchain"
|
||||
PKG_PRIORITY="optional"
|
||||
PKG_SECTION=""
|
||||
PKG_SHORTDESC="libsquish"
|
||||
PKG_LONGDESC="libsquish"
|
||||
echo "getting sources..."
|
||||
wget http://www.lonesock.net/files/soil.zip
|
||||
unzip soil.zip
|
||||
mv "Simple OpenGL Image Library" soil-1.16
|
||||
|
||||
PKG_IS_ADDON="no"
|
||||
PKG_AUTORECONF="no"
|
||||
echo "packing sources..."
|
||||
tar cvJf soil-1.16.tar.xz soil-1.16
|
||||
|
||||
PKG_MAKE_OPTS_TARGET="PREFIX=/usr INSTALL_DIR=$SYSROOT_PREFIX/usr"
|
||||
PKG_MAKEINSTALL_OPTS_TARGET="$PKG_MAKE_OPTS_TARGET"
|
||||
echo "remove temporary sourcedir..."
|
||||
rm -rf soil-1.16
|
||||
rm -rf soil.zip
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user