aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore5
-rw-r--r--Makefile.in2
-rw-r--r--Makefile.include.in1
-rw-r--r--addons/library.xbmc.pvr/.gitignore4
-rw-r--r--configure.ac1
-rw-r--r--lib/addons/library.kodi.game/libKODI_game.cpp2
-rw-r--r--lib/addons/library.kodi.peripheral/libKODI_peripheral.cpp2
-rw-r--r--lib/addons/library.xbmc.pvr/CMakeLists.txt3
-rw-r--r--lib/addons/library.xbmc.pvr/Makefile.in29
-rw-r--r--lib/addons/library.xbmc.pvr/libXBMC_pvr.cpp200
-rw-r--r--lib/addons/library.xbmc.pvr/project/VS2010Express/libXBMC_pvr.vcxproj84
-rw-r--r--lib/addons/library.xbmc.pvr/project/VS2010Express/libXBMC_pvr.vcxproj.filters18
-rw-r--r--project/cmake/installdata/common/addons.txt1
-rw-r--r--project/cmake/treedata/common/addons.txt1
-rw-r--r--xbmc/addons/binary/interfaces/AddonInterfaces.cpp8
-rw-r--r--xbmc/addons/binary/interfaces/AddonInterfaces.h53
-rw-r--r--xbmc/addons/binary/interfaces/api1/PVR/AddonCallbacksPVR.h43
-rw-r--r--xbmc/addons/kodi-addon-dev-kit/include/kodi/libXBMC_addon.h43
-rw-r--r--xbmc/addons/kodi-addon-dev-kit/include/kodi/libXBMC_pvr.h229
19 files changed, 137 insertions, 592 deletions
diff --git a/.gitignore b/.gitignore
index 83895b5878..759df66a63 100644
--- a/.gitignore
+++ b/.gitignore
@@ -149,7 +149,6 @@ cmake_install.cmake
/lib/addons/library.kodi.guilib/project/VS2010Express/Debug
/lib/addons/library.xbmc.addon/Makefile
/lib/addons/library.kodi.adsp/Makefile
-/lib/addons/library.xbmc.pvr/Makefile
/lib/addons/library.xbmc.codec/Makefile
/lib/addons/library.kodi.peripheral/Makefile
/lib/addons/library.kodi.game/Makefile
@@ -159,8 +158,6 @@ cmake_install.cmake
/lib/addons/library.kodi.adsp/project/VS2010Express/Debug
/lib/addons/library.xbmc.codec/project/VS2010Express/Release
/lib/addons/library.xbmc.codec/project/VS2010Express/Debug
-/lib/addons/library.xbmc.pvr/project/VS2010Express/Release
-/lib/addons/library.xbmc.pvr/project/VS2010Express/Debug
/lib/addons/library.kodi.audioengine/Makefile
/lib/addons/library.kodi.audioengine/project/VS2010Express/Release/
/lib/addons/library.kodi.audioengine/project/VS2010Express/Debug/
@@ -551,8 +548,6 @@ lib/cpluff/stamp-h1
/addons/library.xbmc.codec/libXBMC_codec.lib
/addons/library.kodi.guilib/libKODI_guilib.dll
/addons/library.kodi.guilib/libKODI_guilib.lib
-/addons/library.xbmc.pvr/libXBMC_pvr.dll
-/addons/library.xbmc.pvr/libXBMC_pvr.lib
/addons/library.kodi.audioengine/libKODI_audioengine.dll
/addons/library.kodi.audioengine/libKODI_audioengine.lib
diff --git a/Makefile.in b/Makefile.in
index 366031cb7d..5ec26fc48d 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -240,7 +240,6 @@ LIBADDON_DIRS=\
lib/addons/library.kodi.adsp \
lib/addons/library.kodi.audioengine \
lib/addons/library.xbmc.codec \
- lib/addons/library.xbmc.pvr \
lib/addons/library.kodi.guilib \
lib/addons/library.kodi.inputstream \
lib/addons/library.kodi.peripheral \
@@ -368,7 +367,6 @@ libaddon: exports
$(MAKE) -C lib/addons/library.kodi.game
$(MAKE) -C lib/addons/library.kodi.guilib
$(MAKE) -C lib/addons/library.kodi.peripheral
- $(MAKE) -C lib/addons/library.xbmc.pvr
$(MAKE) -C lib/addons/library.kodi.inputstream
dvdpcodecs: dllloader
$(MAKE) -C lib/libdvd
diff --git a/Makefile.include.in b/Makefile.include.in
index 676fb5724c..f686f903ad 100644
--- a/Makefile.include.in
+++ b/Makefile.include.in
@@ -45,7 +45,6 @@ INCLUDES+=-I@abs_top_srcdir@/addons/library.kodi.guilib
INCLUDES+=-I@abs_top_srcdir@/addons/library.xbmc.addon
INCLUDES+=-I@abs_top_srcdir@/addons/library.kodi.adsp
INCLUDES+=-I@abs_top_srcdir@/addons/library.kodi.audioengine
-INCLUDES+=-I@abs_top_srcdir@/addons/library.xbmc.pvr
INCLUDES+=-I@abs_top_srcdir@/addons/library.xbmc.codec
INCLUDES+=$(sort @INCLUDES@)
INCLUDES+=-I@abs_top_srcdir@/xbmc/linux
diff --git a/addons/library.xbmc.pvr/.gitignore b/addons/library.xbmc.pvr/.gitignore
deleted file mode 100644
index 5e7d2734cf..0000000000
--- a/addons/library.xbmc.pvr/.gitignore
+++ /dev/null
@@ -1,4 +0,0 @@
-# Ignore everything in this directory
-*
-# Except this file
-!.gitignore
diff --git a/configure.ac b/configure.ac
index 8d1e85e293..5112909586 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2198,7 +2198,6 @@ OUTPUT_FILES="Makefile \
lib/addons/library.kodi.game/Makefile \
lib/addons/library.kodi.guilib/Makefile \
lib/addons/library.kodi.peripheral/Makefile \
- lib/addons/library.xbmc.pvr/Makefile \
lib/addons/library.kodi.inputstream/Makefile \
tools/Linux/kodi.sh \
tools/Linux/kodi-standalone.sh \
diff --git a/lib/addons/library.kodi.game/libKODI_game.cpp b/lib/addons/library.kodi.game/libKODI_game.cpp
index cbcedc4c89..f6573736c6 100644
--- a/lib/addons/library.kodi.game/libKODI_game.cpp
+++ b/lib/addons/library.kodi.game/libKODI_game.cpp
@@ -41,7 +41,7 @@ DLLEXPORT CB_GameLib* GAME_register_me(AddonCB* frontend)
fprintf(stderr, "ERROR: GAME_register_frontend is called with NULL handle!!!\n");
else
{
- cb = frontend->GameLib_RegisterMe(frontend->addonData);
+ cb = static_cast<CB_GameLib*>(frontend->GameLib_RegisterMe(frontend->addonData));
if (!cb)
fprintf(stderr, "ERROR: GAME_register_frontend can't get callback table from frontend!!!\n");
}
diff --git a/lib/addons/library.kodi.peripheral/libKODI_peripheral.cpp b/lib/addons/library.kodi.peripheral/libKODI_peripheral.cpp
index bd7b293b1f..ca83473cc7 100644
--- a/lib/addons/library.kodi.peripheral/libKODI_peripheral.cpp
+++ b/lib/addons/library.kodi.peripheral/libKODI_peripheral.cpp
@@ -41,7 +41,7 @@ DLLEXPORT CB_PeripheralLib* PERIPHERAL_register_me(AddonCB* frontend)
fprintf(stderr, "ERROR: PERIPHERAL_register_frontend is called with NULL handle!!!\n");
else
{
- cb = frontend->PeripheralLib_RegisterMe(frontend->addonData);
+ cb = static_cast<CB_PeripheralLib*>(frontend->PeripheralLib_RegisterMe(frontend->addonData));
if (!cb)
fprintf(stderr, "ERROR: PERIPHERAL_register_frontend can't get callback table from frontend!!!\n");
}
diff --git a/lib/addons/library.xbmc.pvr/CMakeLists.txt b/lib/addons/library.xbmc.pvr/CMakeLists.txt
deleted file mode 100644
index b431fb79fe..0000000000
--- a/lib/addons/library.xbmc.pvr/CMakeLists.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-project(XBMC_pvr)
-core_add_addon_library(${PROJECT_NAME})
-target_include_directories(${PROJECT_NAME} PRIVATE ${CORE_SOURCE_DIR}/xbmc/cores/VideoPlayer/DVDDemuxers)
diff --git a/lib/addons/library.xbmc.pvr/Makefile.in b/lib/addons/library.xbmc.pvr/Makefile.in
deleted file mode 100644
index 472efce274..0000000000
--- a/lib/addons/library.xbmc.pvr/Makefile.in
+++ /dev/null
@@ -1,29 +0,0 @@
-ARCH=@ARCH@
-INCLUDES=-I. -I../../../xbmc/addons/kodi-addon-dev-kit/include -I../../../xbmc/addons/kodi-addon-dev-kit/include -I../../../xbmc -I../../../xbmc/cores/VideoPlayer/DVDDemuxers
-DEFINES+=
-CXXFLAGS=-fPIC
-LIBNAME=libXBMC_pvr
-OBJS=$(LIBNAME).o
-
-ifeq ($(findstring osx,$(ARCH)), osx)
-LIB_SHARED=../../../addons/library.xbmc.pvr/$(LIBNAME)-$(ARCH).dylib
-else
-LIB_SHARED=../../../addons/library.xbmc.pvr/$(LIBNAME)-$(ARCH).so
-endif
-
-all: $(LIB_SHARED)
-
-$(LIB_SHARED): $(OBJS)
-ifeq ($(findstring osx,$(ARCH)), osx)
- $(CXX) $(CXXFLAGS) $(LDFLAGS) -dynamiclib -o $@ $(OBJS)
-else
- $(CXX) $(CFLAGS) $(LDFLAGS) -shared -g -o $(LIB_SHARED) $(OBJS)
-endif
-
-CLEAN_FILES = \
- $(LIB_SHARED) \
-
-DISTCLEAN_FILES= \
- Makefile \
-
-include ../../../Makefile.include
diff --git a/lib/addons/library.xbmc.pvr/libXBMC_pvr.cpp b/lib/addons/library.xbmc.pvr/libXBMC_pvr.cpp
deleted file mode 100644
index c993c43d73..0000000000
--- a/lib/addons/library.xbmc.pvr/libXBMC_pvr.cpp
+++ /dev/null
@@ -1,200 +0,0 @@
-/*
- * Copyright (C) 2012-2013 Team XBMC
- * http://xbmc.org
- *
- * This Program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2, or (at your option)
- * any later version.
- *
- * This Program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with XBMC; see the file COPYING. If not, see
- * <http://www.gnu.org/licenses/>.
- *
- */
-
-#define USE_DEMUX // enable including of the demuxer packet structure
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <stdarg.h>
-#include <string>
-#include "addons/binary/interfaces/api1/PVR/AddonCallbacksPVR.h"
-#include "addons/kodi-addon-dev-kit/include/kodi/libXBMC_pvr.h"
-#include "cores/VideoPlayer/DVDDemuxers/DVDDemuxPacket.h"
-
-#ifdef _WIN32
-#include <windows.h>
-#define DLLEXPORT __declspec(dllexport)
-#else
-#define DLLEXPORT
-#endif
-
-using namespace std;
-using namespace V1::KodiAPI::PVR;
-
-extern "C"
-{
-
-DLLEXPORT void* PVR_register_me(void *hdl)
-{
- CB_PVRLib *cb = NULL;
- if (!hdl)
- fprintf(stderr, "libXBMC_pvr-ERROR: PVRLib_register_me is called with NULL handle !!!\n");
- else
- {
- cb = (CB_PVRLib*)((AddonCB*)hdl)->PVRLib_RegisterMe(((AddonCB*)hdl)->addonData);
- if (!cb)
- fprintf(stderr, "libXBMC_pvr-ERROR: PVRLib_register_me can't get callback table from XBMC !!!\n");
- }
- return cb;
-}
-
-DLLEXPORT void PVR_unregister_me(void *hdl, void* cb)
-{
- if (hdl && cb)
- ((AddonCB*)hdl)->PVRLib_UnRegisterMe(((AddonCB*)hdl)->addonData, (CB_PVRLib*)cb);
-}
-
-DLLEXPORT void PVR_transfer_epg_entry(void *hdl, void* cb, const ADDON_HANDLE handle, const EPG_TAG *epgentry)
-{
- if (cb == NULL)
- return;
-
- ((CB_PVRLib*)cb)->TransferEpgEntry(((AddonCB*)hdl)->addonData, handle, epgentry);
-}
-
-DLLEXPORT void PVR_transfer_channel_entry(void *hdl, void* cb, const ADDON_HANDLE handle, const PVR_CHANNEL *chan)
-{
- if (cb == NULL)
- return;
-
- ((CB_PVRLib*)cb)->TransferChannelEntry(((AddonCB*)hdl)->addonData, handle, chan);
-}
-
-DLLEXPORT void PVR_transfer_timer_entry(void *hdl, void* cb, const ADDON_HANDLE handle, const PVR_TIMER *timer)
-{
- if (cb == NULL)
- return;
-
- ((CB_PVRLib*)cb)->TransferTimerEntry(((AddonCB*)hdl)->addonData, handle, timer);
-}
-
-DLLEXPORT void PVR_transfer_recording_entry(void *hdl, void* cb, const ADDON_HANDLE handle, const PVR_RECORDING *recording)
-{
- if (cb == NULL)
- return;
-
- ((CB_PVRLib*)cb)->TransferRecordingEntry(((AddonCB*)hdl)->addonData, handle, recording);
-}
-
-DLLEXPORT void PVR_add_menu_hook(void *hdl, void* cb, PVR_MENUHOOK *hook)
-{
- if (cb == NULL)
- return;
-
- ((CB_PVRLib*)cb)->AddMenuHook(((AddonCB*)hdl)->addonData, hook);
-}
-
-DLLEXPORT void PVR_recording(void *hdl, void* cb, const char *Name, const char *FileName, bool On)
-{
- if (cb == NULL)
- return;
-
- ((CB_PVRLib*)cb)->Recording(((AddonCB*)hdl)->addonData, Name, FileName, On);
-}
-
-DLLEXPORT void PVR_trigger_channel_update(void *hdl, void* cb)
-{
- if (cb == NULL)
- return;
-
- ((CB_PVRLib*)cb)->TriggerChannelUpdate(((AddonCB*)hdl)->addonData);
-}
-
-DLLEXPORT void PVR_trigger_channel_groups_update(void *hdl, void* cb)
-{
- if (cb == NULL)
- return;
-
- ((CB_PVRLib*)cb)->TriggerChannelGroupsUpdate(((AddonCB*)hdl)->addonData);
-}
-
-DLLEXPORT void PVR_trigger_timer_update(void *hdl, void* cb)
-{
- if (cb == NULL)
- return;
-
- ((CB_PVRLib*)cb)->TriggerTimerUpdate(((AddonCB*)hdl)->addonData);
-}
-
-DLLEXPORT void PVR_trigger_recording_update(void *hdl, void* cb)
-{
- if (cb == NULL)
- return;
-
- ((CB_PVRLib*)cb)->TriggerRecordingUpdate(((AddonCB*)hdl)->addonData);
-}
-
-DLLEXPORT void PVR_trigger_epg_update(void* hdl, void* cb, unsigned int iChannelUid)
-{
- if (cb == NULL)
- return;
-
- ((CB_PVRLib*)cb)->TriggerEpgUpdate(((AddonCB*)hdl)->addonData, iChannelUid);
-}
-
-DLLEXPORT void PVR_free_demux_packet(void *hdl, void* cb, DemuxPacket* pPacket)
-{
- if (cb == NULL)
- return;
-
- ((CB_PVRLib*)cb)->FreeDemuxPacket(((AddonCB*)hdl)->addonData, pPacket);
-}
-
-DLLEXPORT DemuxPacket* PVR_allocate_demux_packet(void *hdl, void* cb, int iDataSize)
-{
- if (cb == NULL)
- return NULL;
-
- return ((CB_PVRLib*)cb)->AllocateDemuxPacket(((AddonCB*)hdl)->addonData, iDataSize);
-}
-
-DLLEXPORT void PVR_connection_state_change(void *hdl, void* cb, const char *strConnectionString, PVR_CONNECTION_STATE newState, const char *strMessage)
-{
- if (cb == NULL)
- return;
-
- ((CB_PVRLib*)cb)->ConnectionStateChange(((AddonCB*)hdl)->addonData, strConnectionString, newState, strMessage);
-}
-
-DLLEXPORT void PVR_epg_event_state_change(void *hdl, void* cb, EPG_TAG *tag, unsigned int iUniqueChannelId, EPG_EVENT_STATE newState)
-{
- if (cb == NULL)
- return;
-
- ((CB_PVRLib*)cb)->EpgEventStateChange(((AddonCB*)hdl)->addonData, tag, iUniqueChannelId, newState);
-}
-
-DLLEXPORT void PVR_transfer_channel_group(void *hdl, void* cb, const ADDON_HANDLE handle, const PVR_CHANNEL_GROUP *group)
-{
- if (cb == NULL)
- return;
-
- ((CB_PVRLib*)cb)->TransferChannelGroup(((AddonCB*)hdl)->addonData, handle, group);
-}
-
-DLLEXPORT void PVR_transfer_channel_group_member(void *hdl, void* cb, const ADDON_HANDLE handle, const PVR_CHANNEL_GROUP_MEMBER *member)
-{
- if (cb == NULL)
- return;
-
- ((CB_PVRLib*)cb)->TransferChannelGroupMember(((AddonCB*)hdl)->addonData, handle, member);
-}
-
-};
diff --git a/lib/addons/library.xbmc.pvr/project/VS2010Express/libXBMC_pvr.vcxproj b/lib/addons/library.xbmc.pvr/project/VS2010Express/libXBMC_pvr.vcxproj
deleted file mode 100644
index 89ba869f9e..0000000000
--- a/lib/addons/library.xbmc.pvr/project/VS2010Express/libXBMC_pvr.vcxproj
+++ /dev/null
@@ -1,84 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <ItemGroup Label="ProjectConfigurations">
- <ProjectConfiguration Include="Debug|Win32">
- <Configuration>Debug</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Release|Win32">
- <Configuration>Release</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- </ItemGroup>
- <PropertyGroup Label="Globals">
- <ProjectGuid>{6D8C91F8-992F-4C83-9DE3-485D64EF8420}</ProjectGuid>
- <RootNamespace>XBMC_VDR</RootNamespace>
- <Keyword>Win32Proj</Keyword>
- <WindowsTargetPlatformVersion>10.0.10240.0</WindowsTargetPlatformVersion>
- </PropertyGroup>
- <Import Project="$(SolutionDir)\XBMC.core-defaults.props" />
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
- <ConfigurationType>DynamicLibrary</ConfigurationType>
- <UseDebugLibraries>false</UseDebugLibraries>
- <CharacterSet>MultiByte</CharacterSet>
- <PlatformToolset>v140</PlatformToolset>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
- <ConfigurationType>DynamicLibrary</ConfigurationType>
- <UseDebugLibraries>true</UseDebugLibraries>
- <PlatformToolset>v140</PlatformToolset>
- </PropertyGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
- <ImportGroup Label="ExtensionSettings">
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Label="PropertySheets">
- <Import Project="$(SolutionDir)\XBMC.defaults.props" />
- </ImportGroup>
- <PropertyGroup Label="UserMacros" />
- <PropertyGroup>
- <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
- <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\..\..\..\..\addons\library.xbmc.pvr\</OutDir>
- <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Debug\</IntDir>
- <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\..\..\..\..\addons\library.xbmc.pvr\</OutDir>
- <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Release\</IntDir>
- <IncludePath Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\..\..\..\..\addons\library.xbmc.addon\;$(IncludePath)</IncludePath>
- <IncludePath Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\..\..\..\..\addons\library.xbmc.addon\;$(IncludePath)</IncludePath>
- </PropertyGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <ClCompile>
- <AdditionalIncludeDirectories>..\..\..\..\..\xbmc;..\..\..\..\..\xbmc\addons\kodi-addon-dev-kit\include;..\..\..\..\..\xbmc\cores\VideoPlayer\DVDDemuxers;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>VDR_EXPORTS;_WIN32PC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <ExceptionHandling>Sync</ExceptionHandling>
- <PrecompiledHeader>
- </PrecompiledHeader>
- </ClCompile>
- <Link>
- <OutputFile>..\..\..\..\..\addons\library.xbmc.pvr\$(ProjectName).dll</OutputFile>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <ClCompile>
- <AdditionalIncludeDirectories>..\..\..\..\..\xbmc;..\..\..\..\..\xbmc\addons\kodi-addon-dev-kit\include;..\..\..\..\..\xbmc\cores\VideoPlayer\DVDDemuxers;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>HAS_SDL;_USRDLL;XBMC_VDR_EXPORTS;_WIN32PC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <ExceptionHandling>Sync</ExceptionHandling>
- <PrecompiledHeader>
- </PrecompiledHeader>
- </ClCompile>
- <Link>
- <OutputFile>..\..\..\..\..\addons\library.xbmc.pvr\$(ProjectName).dll</OutputFile>
- </Link>
- </ItemDefinitionGroup>
- <ItemGroup>
- <ClCompile Include="..\..\libXBMC_pvr.cpp" />
- </ItemGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
- <ImportGroup Label="ExtensionTargets">
- </ImportGroup>
-</Project> \ No newline at end of file
diff --git a/lib/addons/library.xbmc.pvr/project/VS2010Express/libXBMC_pvr.vcxproj.filters b/lib/addons/library.xbmc.pvr/project/VS2010Express/libXBMC_pvr.vcxproj.filters
deleted file mode 100644
index db93c59c90..0000000000
--- a/lib/addons/library.xbmc.pvr/project/VS2010Express/libXBMC_pvr.vcxproj.filters
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <ItemGroup>
- <Filter Include="Source Files">
- <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
- <Extensions>cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
- </Filter>
- <Filter Include="Header Files">
- <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
- <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
- </Filter>
- </ItemGroup>
- <ItemGroup>
- <ClCompile Include="..\..\libXBMC_pvr.cpp">
- <Filter>Source Files</Filter>
- </ClCompile>
- </ItemGroup>
-</Project> \ No newline at end of file
diff --git a/project/cmake/installdata/common/addons.txt b/project/cmake/installdata/common/addons.txt
index 72ec5f1fbe..d412490403 100644
--- a/project/cmake/installdata/common/addons.txt
+++ b/project/cmake/installdata/common/addons.txt
@@ -26,7 +26,6 @@ addons/library.kodi.inputstream/*
addons/library.kodi.peripheral/*
addons/library.xbmc.addon/*
addons/library.xbmc.codec/*
-addons/library.xbmc.pvr/*
addons/repository.xbmc.org/*
addons/webinterface.default/*
addons/screensaver.xbmc.builtin.dim/*
diff --git a/project/cmake/treedata/common/addons.txt b/project/cmake/treedata/common/addons.txt
index 9d76cf375b..1b2c1ea998 100644
--- a/project/cmake/treedata/common/addons.txt
+++ b/project/cmake/treedata/common/addons.txt
@@ -6,4 +6,3 @@ lib/addons/library.kodi.inputstream KODI_inputstream
lib/addons/library.kodi.peripheral KODI_peripheral
lib/addons/library.xbmc.addon XBMC_addon
lib/addons/library.xbmc.codec XBMC_codec
-lib/addons/library.xbmc.pvr XBMC_pvr
diff --git a/xbmc/addons/binary/interfaces/AddonInterfaces.cpp b/xbmc/addons/binary/interfaces/AddonInterfaces.cpp
index 2809cbb0a4..440fbe87ff 100644
--- a/xbmc/addons/binary/interfaces/AddonInterfaces.cpp
+++ b/xbmc/addons/binary/interfaces/AddonInterfaces.cpp
@@ -260,7 +260,7 @@ void CAddonInterfaces::CodecLib_UnRegisterMe(void *addonData, void *cbTable)
}
/*\_____________________________________________________________________________
\*/
-CB_GameLib* CAddonInterfaces::GameLib_RegisterMe(void *addonData)
+void* CAddonInterfaces::GameLib_RegisterMe(void *addonData)
{
CAddonInterfaces* addon = static_cast<CAddonInterfaces*>(addonData);
if (addon == nullptr)
@@ -273,7 +273,7 @@ CB_GameLib* CAddonInterfaces::GameLib_RegisterMe(void *addonData)
return static_cast<V1::KodiAPI::Game::CAddonCallbacksGame*>(addon->m_helperGame)->GetCallbacks();
}
-void CAddonInterfaces::GameLib_UnRegisterMe(void *addonData, CB_GameLib *cbTable)
+void CAddonInterfaces::GameLib_UnRegisterMe(void *addonData, void *cbTable)
{
CAddonInterfaces* addon = static_cast<CAddonInterfaces*>(addonData);
if (addon == nullptr)
@@ -314,7 +314,7 @@ void CAddonInterfaces::INPUTSTREAMLib_UnRegisterMe(void *addonData, void* cbTabl
}
/*\_____________________________________________________________________________
\*/
-CB_PeripheralLib* CAddonInterfaces::PeripheralLib_RegisterMe(void *addonData)
+void* CAddonInterfaces::PeripheralLib_RegisterMe(void *addonData)
{
CAddonInterfaces* addon = static_cast<CAddonInterfaces*>(addonData);
if (addon == nullptr)
@@ -327,7 +327,7 @@ CB_PeripheralLib* CAddonInterfaces::PeripheralLib_RegisterMe(void *addonData)
return static_cast<V1::KodiAPI::Peripheral::CAddonCallbacksPeripheral*>(addon->m_helperPeripheral)->GetCallbacks();
}
-void CAddonInterfaces::PeripheralLib_UnRegisterMe(void *addonData, CB_PeripheralLib* cbTable)
+void CAddonInterfaces::PeripheralLib_UnRegisterMe(void *addonData, void* cbTable)
{
CAddonInterfaces* addon = static_cast<CAddonInterfaces*>(addonData);
if (addon == nullptr)
diff --git a/xbmc/addons/binary/interfaces/AddonInterfaces.h b/xbmc/addons/binary/interfaces/AddonInterfaces.h
index 3c7c56e5a4..c623cc89ad 100644
--- a/xbmc/addons/binary/interfaces/AddonInterfaces.h
+++ b/xbmc/addons/binary/interfaces/AddonInterfaces.h
@@ -23,6 +23,7 @@
#include "IAddonInterface.h"
#include "addons/kodi-addon-dev-kit/include/kodi/kodi_peripheral_callbacks.h"
#include "addons/kodi-addon-dev-kit/include/kodi/kodi_game_callbacks.h"
+#include "addons/kodi-addon-dev-kit/include/kodi/libXBMC_addon.h"
#include <stdint.h>
@@ -34,50 +35,6 @@ namespace MESSAGING
}
}
-typedef void* (*KODIAddOnLib_RegisterMe)(void *addonData);
-typedef void (*KODIAddOnLib_UnRegisterMe)(void *addonData, void *cbTable);
-typedef void* (*KODIAudioEngineLib_RegisterMe)(void *addonData);
-typedef void (*KODIAudioEngineLib_UnRegisterMe)(void *addonData, void *cbTable);
-typedef void* (*KODIGUILib_RegisterMe)(void *addonData);
-typedef void (*KODIGUILib_UnRegisterMe)(void *addonData, void *cbTable);
-typedef void* (*KODIPVRLib_RegisterMe)(void *addonData);
-typedef void (*KODIPVRLib_UnRegisterMe)(void *addonData, void *cbTable);
-typedef void* (*KODIADSPLib_RegisterMe)(void *addonData);
-typedef void (*KODIADSPLib_UnRegisterMe)(void *addonData, void *cbTable);
-typedef void* (*KODICodecLib_RegisterMe)(void *addonData);
-typedef void (*KODICodecLib_UnRegisterMe)(void *addonData, void *cbTable);
-typedef void* (*KODIINPUTSTREAMLib_RegisterMe)(void *addonData);
-typedef void (*KODIINPUTSTREAMLib_UnRegisterMe)(void *addonData, void *cbTable);
-typedef CB_PeripheralLib* (*KODIPeripheralLib_RegisterMe)(void *addonData);
-typedef void (*KODIPeripheralLib_UnRegisterMe)(void *addonData, CB_PeripheralLib *cbTable);
-typedef CB_GameLib* (*KODIGameLib_RegisterMe)(void *addonData);
-typedef void (*KODIGameLib_UnRegisterMe)(void *addonData, CB_GameLib *cbTable);
-
-typedef struct AddonCB
-{
- const char* libBasePath; ///< Never, never change this!!!
- void* addonData;
- KODIAddOnLib_RegisterMe AddOnLib_RegisterMe;
- KODIAddOnLib_UnRegisterMe AddOnLib_UnRegisterMe;
- KODIAudioEngineLib_RegisterMe AudioEngineLib_RegisterMe;
- KODIAudioEngineLib_UnRegisterMe AudioEngineLib_UnRegisterMe;
- KODICodecLib_RegisterMe CodecLib_RegisterMe;
- KODICodecLib_UnRegisterMe CodecLib_UnRegisterMe;
- KODIGUILib_RegisterMe GUILib_RegisterMe;
- KODIGUILib_UnRegisterMe GUILib_UnRegisterMe;
- KODIPVRLib_RegisterMe PVRLib_RegisterMe;
- KODIPVRLib_UnRegisterMe PVRLib_UnRegisterMe;
- KODIADSPLib_RegisterMe ADSPLib_RegisterMe;
- KODIADSPLib_UnRegisterMe ADSPLib_UnRegisterMe;
- KODIINPUTSTREAMLib_RegisterMe INPUTSTREAMLib_RegisterMe;
- KODIINPUTSTREAMLib_UnRegisterMe INPUTSTREAMLib_UnRegisterMe;
- KODIPeripheralLib_RegisterMe PeripheralLib_RegisterMe;
- KODIPeripheralLib_UnRegisterMe PeripheralLib_UnRegisterMe;
- KODIGameLib_RegisterMe GameLib_RegisterMe;
- KODIGameLib_UnRegisterMe GameLib_UnRegisterMe;
-} AddonCB;
-
-
namespace ADDON
{
@@ -129,13 +86,13 @@ namespace ADDON
void* GetHelperInputStream() { return m_helperInputStream; }
/*\_________________________________________________________________________
\*/
- static CB_PeripheralLib* PeripheralLib_RegisterMe (void *addonData);
- static void PeripheralLib_UnRegisterMe (void *addonData, CB_PeripheralLib* cbTable);
+ static void* PeripheralLib_RegisterMe (void *addonData);
+ static void PeripheralLib_UnRegisterMe (void *addonData, void* cbTable);
void* GetHelperPeripheral() { return m_helperPeripheral; }
/*\_________________________________________________________________________
\*/
- static CB_GameLib* GameLib_RegisterMe (void *addonData);
- static void GameLib_UnRegisterMe (void *addonData, CB_GameLib* cbTable);
+ static void* GameLib_RegisterMe (void *addonData);
+ static void GameLib_UnRegisterMe (void *addonData, void* cbTable);
void* GetHelperGame() { return m_helperGame; }
/*
* API level independent functions for Kodi
diff --git a/xbmc/addons/binary/interfaces/api1/PVR/AddonCallbacksPVR.h b/xbmc/addons/binary/interfaces/api1/PVR/AddonCallbacksPVR.h
index 9c8c3c1205..fa9abc2c74 100644
--- a/xbmc/addons/binary/interfaces/api1/PVR/AddonCallbacksPVR.h
+++ b/xbmc/addons/binary/interfaces/api1/PVR/AddonCallbacksPVR.h
@@ -23,6 +23,7 @@
#include "addons/binary/interfaces/AddonInterfaces.h"
#include "addons/kodi-addon-dev-kit/include/kodi/xbmc_epg_types.h"
#include "addons/kodi-addon-dev-kit/include/kodi/xbmc_pvr_types.h"
+#include "addons/kodi-addon-dev-kit/include/kodi/libXBMC_pvr.h"
namespace PVR
{
@@ -41,48 +42,6 @@ namespace KodiAPI
namespace PVR
{
-typedef void (*PVRTransferEpgEntry)(void *userData, const ADDON_HANDLE handle, const EPG_TAG *epgentry);
-typedef void (*PVRTransferChannelEntry)(void *userData, const ADDON_HANDLE handle, const PVR_CHANNEL *chan);
-typedef void (*PVRTransferTimerEntry)(void *userData, const ADDON_HANDLE handle, const PVR_TIMER *timer);
-typedef void (*PVRTransferRecordingEntry)(void *userData, const ADDON_HANDLE handle, const PVR_RECORDING *recording);
-typedef void (*PVRAddMenuHook)(void *addonData, PVR_MENUHOOK *hook);
-typedef void (*PVRRecording)(void *addonData, const char *Name, const char *FileName, bool On);
-typedef void (*PVRTriggerChannelUpdate)(void *addonData);
-typedef void (*PVRTriggerTimerUpdate)(void *addonData);
-typedef void (*PVRTriggerRecordingUpdate)(void *addonData);
-typedef void (*PVRTriggerChannelGroupsUpdate)(void *addonData);
-typedef void (*PVRTriggerEpgUpdate)(void *addonData, unsigned int iChannelUid);
-
-typedef void (*PVRTransferChannelGroup)(void *addonData, const ADDON_HANDLE handle, const PVR_CHANNEL_GROUP *group);
-typedef void (*PVRTransferChannelGroupMember)(void *addonData, const ADDON_HANDLE handle, const PVR_CHANNEL_GROUP_MEMBER *member);
-
-typedef void (*PVRFreeDemuxPacket)(void *addonData, DemuxPacket* pPacket);
-typedef DemuxPacket* (*PVRAllocateDemuxPacket)(void *addonData, int iDataSize);
-
-typedef void (*PVRConnectionStateChange)(void* addonData, const char* strConnectionString, PVR_CONNECTION_STATE newState, const char *strMessage);
-typedef void (*PVREpgEventStateChange)(void* addonData, EPG_TAG* tag, unsigned int iUniqueChannelId, EPG_EVENT_STATE newState);
-
-typedef struct CB_PVRLib
-{
- PVRTransferEpgEntry TransferEpgEntry;
- PVRTransferChannelEntry TransferChannelEntry;
- PVRTransferTimerEntry TransferTimerEntry;
- PVRTransferRecordingEntry TransferRecordingEntry;
- PVRAddMenuHook AddMenuHook;
- PVRRecording Recording;
- PVRTriggerChannelUpdate TriggerChannelUpdate;
- PVRTriggerTimerUpdate TriggerTimerUpdate;
- PVRTriggerRecordingUpdate TriggerRecordingUpdate;
- PVRTriggerChannelGroupsUpdate TriggerChannelGroupsUpdate;
- PVRTriggerEpgUpdate TriggerEpgUpdate;
- PVRFreeDemuxPacket FreeDemuxPacket;
- PVRAllocateDemuxPacket AllocateDemuxPacket;
- PVRTransferChannelGroup TransferChannelGroup;
- PVRTransferChannelGroupMember TransferChannelGroupMember;
- PVRConnectionStateChange ConnectionStateChange;
- PVREpgEventStateChange EpgEventStateChange;
-} CB_PVRLib;
-
struct EpgEventStateChange;
/*!
diff --git a/xbmc/addons/kodi-addon-dev-kit/include/kodi/libXBMC_addon.h b/xbmc/addons/kodi-addon-dev-kit/include/kodi/libXBMC_addon.h
index 70bd19bc64..d9f72c1303 100644
--- a/xbmc/addons/kodi-addon-dev-kit/include/kodi/libXBMC_addon.h
+++ b/xbmc/addons/kodi-addon-dev-kit/include/kodi/libXBMC_addon.h
@@ -116,6 +116,49 @@ typedef intptr_t ssize_t;
/* current addon API version */
#define KODI_ADDON_API_VERSION "1.0.0"
+typedef void* (*KODIAddOnLib_RegisterMe)(void *addonData);
+typedef void (*KODIAddOnLib_UnRegisterMe)(void *addonData, void *cbTable);
+typedef void* (*KODIAudioEngineLib_RegisterMe)(void *addonData);
+typedef void (*KODIAudioEngineLib_UnRegisterMe)(void *addonData, void *cbTable);
+typedef void* (*KODIGUILib_RegisterMe)(void *addonData);
+typedef void (*KODIGUILib_UnRegisterMe)(void *addonData, void *cbTable);
+typedef void* (*KODIPVRLib_RegisterMe)(void *addonData);
+typedef void (*KODIPVRLib_UnRegisterMe)(void *addonData, void *cbTable);
+typedef void* (*KODIADSPLib_RegisterMe)(void *addonData);
+typedef void (*KODIADSPLib_UnRegisterMe)(void *addonData, void *cbTable);
+typedef void* (*KODICodecLib_RegisterMe)(void *addonData);
+typedef void (*KODICodecLib_UnRegisterMe)(void *addonData, void *cbTable);
+typedef void* (*KODIINPUTSTREAMLib_RegisterMe)(void *addonData);
+typedef void (*KODIINPUTSTREAMLib_UnRegisterMe)(void *addonData, void *cbTable);
+typedef void* (*KODIPeripheralLib_RegisterMe)(void *addonData);
+typedef void (*KODIPeripheralLib_UnRegisterMe)(void *addonData, void *cbTable);
+typedef void* (*KODIGameLib_RegisterMe)(void *addonData);
+typedef void (*KODIGameLib_UnRegisterMe)(void *addonData, void *cbTable);
+
+typedef struct AddonCB
+{
+ const char* libBasePath; ///< Never, never change this!!!
+ void* addonData;
+ KODIAddOnLib_RegisterMe AddOnLib_RegisterMe;
+ KODIAddOnLib_UnRegisterMe AddOnLib_UnRegisterMe;
+ KODIAudioEngineLib_RegisterMe AudioEngineLib_RegisterMe;
+ KODIAudioEngineLib_UnRegisterMe AudioEngineLib_UnRegisterMe;
+ KODICodecLib_RegisterMe CodecLib_RegisterMe;
+ KODICodecLib_UnRegisterMe CodecLib_UnRegisterMe;
+ KODIGUILib_RegisterMe GUILib_RegisterMe;
+ KODIGUILib_UnRegisterMe GUILib_UnRegisterMe;
+ KODIPVRLib_RegisterMe PVRLib_RegisterMe;
+ KODIPVRLib_UnRegisterMe PVRLib_UnRegisterMe;
+ KODIADSPLib_RegisterMe ADSPLib_RegisterMe;
+ KODIADSPLib_UnRegisterMe ADSPLib_UnRegisterMe;
+ KODIINPUTSTREAMLib_RegisterMe INPUTSTREAMLib_RegisterMe;
+ KODIINPUTSTREAMLib_UnRegisterMe INPUTSTREAMLib_UnRegisterMe;
+ KODIPeripheralLib_RegisterMe PeripheralLib_RegisterMe;
+ KODIPeripheralLib_UnRegisterMe PeripheralLib_UnRegisterMe;
+ KODIGameLib_RegisterMe GameLib_RegisterMe;
+ KODIGameLib_UnRegisterMe GameLib_UnRegisterMe;
+} AddonCB;
+
namespace ADDON
{
typedef enum addon_log
diff --git a/xbmc/addons/kodi-addon-dev-kit/include/kodi/libXBMC_pvr.h b/xbmc/addons/kodi-addon-dev-kit/include/kodi/libXBMC_pvr.h
index a76932834a..f2c31171b3 100644
--- a/xbmc/addons/kodi-addon-dev-kit/include/kodi/libXBMC_pvr.h
+++ b/xbmc/addons/kodi-addon-dev-kit/include/kodi/libXBMC_pvr.h
@@ -27,29 +27,78 @@
#include "xbmc_pvr_types.h"
#include "libXBMC_addon.h"
-#define PVR_HELPER_DLL_NAME XBMC_DLL_NAME("pvr")
-#define PVR_HELPER_DLL XBMC_DLL("pvr")
-
#define DVD_TIME_BASE 1000000
//! @todo original definition is in DVDClock.h
#define DVD_NOPTS_VALUE 0xFFF0000000000000
+namespace V1
+{
+namespace KodiAPI
+{
+namespace PVR
+{
+
+typedef void (*PVRTransferEpgEntry)(void *userData, const ADDON_HANDLE handle, const EPG_TAG *epgentry);
+typedef void (*PVRTransferChannelEntry)(void *userData, const ADDON_HANDLE handle, const PVR_CHANNEL *chan);
+typedef void (*PVRTransferTimerEntry)(void *userData, const ADDON_HANDLE handle, const PVR_TIMER *timer);
+typedef void (*PVRTransferRecordingEntry)(void *userData, const ADDON_HANDLE handle, const PVR_RECORDING *recording);
+typedef void (*PVRAddMenuHook)(void *addonData, PVR_MENUHOOK *hook);
+typedef void (*PVRRecording)(void *addonData, const char *Name, const char *FileName, bool On);
+typedef void (*PVRTriggerChannelUpdate)(void *addonData);
+typedef void (*PVRTriggerTimerUpdate)(void *addonData);
+typedef void (*PVRTriggerRecordingUpdate)(void *addonData);
+typedef void (*PVRTriggerChannelGroupsUpdate)(void *addonData);
+typedef void (*PVRTriggerEpgUpdate)(void *addonData, unsigned int iChannelUid);
+
+typedef void (*PVRTransferChannelGroup)(void *addonData, const ADDON_HANDLE handle, const PVR_CHANNEL_GROUP *group);
+typedef void (*PVRTransferChannelGroupMember)(void *addonData, const ADDON_HANDLE handle, const PVR_CHANNEL_GROUP_MEMBER *member);
+
+typedef void (*PVRFreeDemuxPacket)(void *addonData, DemuxPacket* pPacket);
+typedef DemuxPacket* (*PVRAllocateDemuxPacket)(void *addonData, int iDataSize);
+
+typedef void (*PVRConnectionStateChange)(void* addonData, const char* strConnectionString, PVR_CONNECTION_STATE newState, const char *strMessage);
+typedef void (*PVREpgEventStateChange)(void* addonData, EPG_TAG* tag, unsigned int iUniqueChannelId, EPG_EVENT_STATE newState);
+
+typedef struct CB_PVRLib
+{
+ PVRTransferEpgEntry TransferEpgEntry;
+ PVRTransferChannelEntry TransferChannelEntry;
+ PVRTransferTimerEntry TransferTimerEntry;
+ PVRTransferRecordingEntry TransferRecordingEntry;
+ PVRAddMenuHook AddMenuHook;
+ PVRRecording Recording;
+ PVRTriggerChannelUpdate TriggerChannelUpdate;
+ PVRTriggerTimerUpdate TriggerTimerUpdate;
+ PVRTriggerRecordingUpdate TriggerRecordingUpdate;
+ PVRTriggerChannelGroupsUpdate TriggerChannelGroupsUpdate;
+ PVRTriggerEpgUpdate TriggerEpgUpdate;
+ PVRFreeDemuxPacket FreeDemuxPacket;
+ PVRAllocateDemuxPacket AllocateDemuxPacket;
+ PVRTransferChannelGroup TransferChannelGroup;
+ PVRTransferChannelGroupMember TransferChannelGroupMember;
+ PVRConnectionStateChange ConnectionStateChange;
+ PVREpgEventStateChange EpgEventStateChange;
+} CB_PVRLib;
+
+} /* namespace PVR */
+} /* namespace PVRLIB */
+} /* namespace V1 */
+
class CHelper_libXBMC_pvr
{
public:
CHelper_libXBMC_pvr(void)
{
- m_libXBMC_pvr = NULL;
- m_Handle = NULL;
+ m_Handle = nullptr;
+ m_Callbacks = nullptr;
}
~CHelper_libXBMC_pvr(void)
{
- if (m_libXBMC_pvr)
+ if (m_Handle && m_Callbacks)
{
- PVR_unregister_me(m_Handle, m_Callbacks);
- dlclose(m_libXBMC_pvr);
+ m_Handle->PVRLib_UnRegisterMe(m_Handle->addonData, m_Callbacks);
}
}
@@ -60,98 +109,12 @@ public:
*/
bool RegisterMe(void* handle)
{
- m_Handle = handle;
-
- std::string libBasePath;
- libBasePath = ((cb_array*)m_Handle)->libPath;
- libBasePath += PVR_HELPER_DLL;
-
- m_libXBMC_pvr = dlopen(libBasePath.c_str(), RTLD_LAZY);
- if (m_libXBMC_pvr == NULL)
- {
- fprintf(stderr, "Unable to load %s\n", dlerror());
- return false;
- }
-
- PVR_register_me = (void* (*)(void *HANDLE))
- dlsym(m_libXBMC_pvr, "PVR_register_me");
- if (PVR_register_me == NULL) { fprintf(stderr, "Unable to assign function %s\n", dlerror()); return false; }
-
- PVR_unregister_me = (void (*)(void* HANDLE, void* CB))
- dlsym(m_libXBMC_pvr, "PVR_unregister_me");
- if (PVR_unregister_me == NULL) { fprintf(stderr, "Unable to assign function %s\n", dlerror()); return false; }
-
- PVR_transfer_epg_entry = (void (*)(void* HANDLE, void* CB, const ADDON_HANDLE handle, const EPG_TAG *epgentry))
- dlsym(m_libXBMC_pvr, "PVR_transfer_epg_entry");
- if (PVR_transfer_epg_entry == NULL) { fprintf(stderr, "Unable to assign function %s\n", dlerror()); return false; }
-
- PVR_transfer_channel_entry = (void (*)(void* HANDLE, void* CB, const ADDON_HANDLE handle, const PVR_CHANNEL *chan))
- dlsym(m_libXBMC_pvr, "PVR_transfer_channel_entry");
- if (PVR_transfer_channel_entry == NULL) { fprintf(stderr, "Unable to assign function %s\n", dlerror()); return false; }
-
- PVR_transfer_timer_entry = (void (*)(void* HANDLE, void* CB, const ADDON_HANDLE handle, const PVR_TIMER *timer))
- dlsym(m_libXBMC_pvr, "PVR_transfer_timer_entry");
- if (PVR_transfer_timer_entry == NULL) { fprintf(stderr, "Unable to assign function %s\n", dlerror()); return false; }
-
- PVR_transfer_recording_entry = (void (*)(void* HANDLE, void* CB, const ADDON_HANDLE handle, const PVR_RECORDING *recording))
- dlsym(m_libXBMC_pvr, "PVR_transfer_recording_entry");
- if (PVR_transfer_recording_entry == NULL) { fprintf(stderr, "Unable to assign function %s\n", dlerror()); return false; }
-
- PVR_add_menu_hook = (void (*)(void* HANDLE, void* CB, PVR_MENUHOOK *hook))
- dlsym(m_libXBMC_pvr, "PVR_add_menu_hook");
- if (PVR_add_menu_hook == NULL) { fprintf(stderr, "Unable to assign function %s\n", dlerror()); return false; }
-
- PVR_recording = (void (*)(void* HANDLE, void* CB, const char *Name, const char *FileName, bool On))
- dlsym(m_libXBMC_pvr, "PVR_recording");
- if (PVR_recording == NULL) { fprintf(stderr, "Unable to assign function %s\n", dlerror()); return false; }
-
- PVR_trigger_timer_update = (void (*)(void* HANDLE, void* CB))
- dlsym(m_libXBMC_pvr, "PVR_trigger_timer_update");
- if (PVR_trigger_timer_update == NULL) { fprintf(stderr, "Unable to assign function %s\n", dlerror()); return false; }
-
- PVR_trigger_recording_update = (void (*)(void* HANDLE, void* CB))
- dlsym(m_libXBMC_pvr, "PVR_trigger_recording_update");
- if (PVR_trigger_recording_update == NULL) { fprintf(stderr, "Unable to assign function %s\n", dlerror()); return false; }
-
- PVR_trigger_channel_update = (void (*)(void* HANDLE, void* CB))
- dlsym(m_libXBMC_pvr, "PVR_trigger_channel_update");
- if (PVR_trigger_channel_update == NULL) { fprintf(stderr, "Unable to assign function %s\n", dlerror()); return false; }
-
- PVR_trigger_channel_groups_update = (void (*)(void* HANDLE, void* CB))
- dlsym(m_libXBMC_pvr, "PVR_trigger_channel_groups_update");
- if (PVR_trigger_channel_groups_update == NULL) { fprintf(stderr, "Unable to assign function %s\n", dlerror()); return false; }
-
- PVR_trigger_epg_update = (void (*)(void* HANDLE, void* CB, unsigned int iChannelUid))
- dlsym(m_libXBMC_pvr, "PVR_trigger_epg_update");
- if (PVR_trigger_epg_update == NULL) { fprintf(stderr, "Unable to assign function %s\n", dlerror()); return false; }
-
- PVR_transfer_channel_group = (void (*)(void* HANDLE, void* CB, const ADDON_HANDLE handle, const PVR_CHANNEL_GROUP *group))
- dlsym(m_libXBMC_pvr, "PVR_transfer_channel_group");
- if (PVR_transfer_channel_group == NULL) { fprintf(stderr, "Unable to assign function %s\n", dlerror()); return false; }
-
- PVR_transfer_channel_group_member = (void (*)(void* HANDLE, void* CB, const ADDON_HANDLE handle, const PVR_CHANNEL_GROUP_MEMBER *member))
- dlsym(m_libXBMC_pvr, "PVR_transfer_channel_group_member");
- if (PVR_transfer_channel_group_member == NULL) { fprintf(stderr, "Unable to assign function %s\n", dlerror()); return false; }
-
-#ifdef USE_DEMUX
- PVR_free_demux_packet = (void (*)(void* HANDLE, void* CB, DemuxPacket* pPacket))
- dlsym(m_libXBMC_pvr, "PVR_free_demux_packet");
- if (PVR_free_demux_packet == NULL) { fprintf(stderr, "Unable to assign function %s\n", dlerror()); return false; }
-
- PVR_allocate_demux_packet = (DemuxPacket* (*)(void* HANDLE, void* CB, int iDataSize))
- dlsym(m_libXBMC_pvr, "PVR_allocate_demux_packet");
- if (PVR_allocate_demux_packet == NULL) { fprintf(stderr, "Unable to assign function %s\n", dlerror()); return false; }
-#endif
-
- PVR_connection_state_change = (void (*)(void* HANDLE, void* CB, const char *strConnectionString, PVR_CONNECTION_STATE newState, const char *strMessage))
- dlsym(m_libXBMC_pvr, "PVR_connection_state_change");
- if (PVR_connection_state_change == NULL) { fprintf(stderr, "Unable to assign function %s\n", dlerror()); return false; }
-
- PVR_epg_event_state_change = (void (*)(void* HANDLE, void* CB, EPG_TAG* tag, unsigned int iUniqueChannelId, EPG_EVENT_STATE newState))
- dlsym(m_libXBMC_pvr, "PVR_epg_event_state_change");
- if (PVR_epg_event_state_change == NULL) { fprintf(stderr, "Unable to assign function %s\n", dlerror()); return false; }
-
- m_Callbacks = PVR_register_me(m_Handle);
+ m_Handle = static_cast<AddonCB*>(handle);
+ if (m_Handle)
+ m_Callbacks = (V1::KodiAPI::PVR::CB_PVRLib*)m_Handle->PVRLib_RegisterMe(m_Handle->addonData);
+ if (!m_Callbacks)
+ fprintf(stderr, "libXBMC_pvr-ERROR: PVRLib_register_me can't get callback table from Kodi !!!\n");
+
return m_Callbacks != NULL;
}
@@ -162,7 +125,7 @@ public:
*/
void TransferEpgEntry(const ADDON_HANDLE handle, const EPG_TAG* entry)
{
- return PVR_transfer_epg_entry(m_Handle, m_Callbacks, handle, entry);
+ return m_Callbacks->TransferEpgEntry(m_Handle->addonData, handle, entry);
}
/*!
@@ -172,7 +135,7 @@ public:
*/
void TransferChannelEntry(const ADDON_HANDLE handle, const PVR_CHANNEL* entry)
{
- return PVR_transfer_channel_entry(m_Handle, m_Callbacks, handle, entry);
+ return m_Callbacks->TransferChannelEntry(m_Handle->addonData, handle, entry);
}
/*!
@@ -182,7 +145,7 @@ public:
*/
void TransferTimerEntry(const ADDON_HANDLE handle, const PVR_TIMER* entry)
{
- return PVR_transfer_timer_entry(m_Handle, m_Callbacks, handle, entry);
+ return m_Callbacks->TransferTimerEntry(m_Handle->addonData, handle, entry);
}
/*!
@@ -192,7 +155,7 @@ public:
*/
void TransferRecordingEntry(const ADDON_HANDLE handle, const PVR_RECORDING* entry)
{
- return PVR_transfer_recording_entry(m_Handle, m_Callbacks, handle, entry);
+ return m_Callbacks->TransferRecordingEntry(m_Handle->addonData, handle, entry);
}
/*!
@@ -202,7 +165,7 @@ public:
*/
void TransferChannelGroup(const ADDON_HANDLE handle, const PVR_CHANNEL_GROUP* entry)
{
- return PVR_transfer_channel_group(m_Handle, m_Callbacks, handle, entry);
+ return m_Callbacks->TransferChannelGroup(m_Handle->addonData, handle, entry);
}
/*!
@@ -212,7 +175,7 @@ public:
*/
void TransferChannelGroupMember(const ADDON_HANDLE handle, const PVR_CHANNEL_GROUP_MEMBER* entry)
{
- return PVR_transfer_channel_group_member(m_Handle, m_Callbacks, handle, entry);
+ return m_Callbacks->TransferChannelGroupMember(m_Handle->addonData, handle, entry);
}
/*!
@@ -221,7 +184,7 @@ public:
*/
void AddMenuHook(PVR_MENUHOOK* hook)
{
- return PVR_add_menu_hook(m_Handle, m_Callbacks, hook);
+ return m_Callbacks->AddMenuHook(m_Handle->addonData, hook);
}
/*!
@@ -232,7 +195,7 @@ public:
*/
void Recording(const char* strRecordingName, const char* strFileName, bool bOn)
{
- return PVR_recording(m_Handle, m_Callbacks, strRecordingName, strFileName, bOn);
+ return m_Callbacks->Recording(m_Handle->addonData, strRecordingName, strFileName, bOn);
}
/*!
@@ -240,7 +203,7 @@ public:
*/
void TriggerTimerUpdate(void)
{
- return PVR_trigger_timer_update(m_Handle, m_Callbacks);
+ return m_Callbacks->TriggerTimerUpdate(m_Handle->addonData);
}
/*!
@@ -248,7 +211,7 @@ public:
*/
void TriggerRecordingUpdate(void)
{
- return PVR_trigger_recording_update(m_Handle, m_Callbacks);
+ return m_Callbacks->TriggerRecordingUpdate(m_Handle->addonData);
}
/*!
@@ -256,7 +219,7 @@ public:
*/
void TriggerChannelUpdate(void)
{
- return PVR_trigger_channel_update(m_Handle, m_Callbacks);
+ return m_Callbacks->TriggerChannelUpdate(m_Handle->addonData);
}
/*!
@@ -265,7 +228,7 @@ public:
*/
void TriggerEpgUpdate(unsigned int iChannelUid)
{
- return PVR_trigger_epg_update(m_Handle, m_Callbacks, iChannelUid);
+ return m_Callbacks->TriggerEpgUpdate(m_Handle->addonData, iChannelUid);
}
/*!
@@ -273,7 +236,7 @@ public:
*/
void TriggerChannelGroupsUpdate(void)
{
- return PVR_trigger_channel_groups_update(m_Handle, m_Callbacks);
+ return m_Callbacks->TriggerChannelGroupsUpdate(m_Handle->addonData);
}
#ifdef USE_DEMUX
@@ -283,7 +246,7 @@ public:
*/
void FreeDemuxPacket(DemuxPacket* pPacket)
{
- return PVR_free_demux_packet(m_Handle, m_Callbacks, pPacket);
+ return m_Callbacks->FreeDemuxPacket(m_Handle->addonData, pPacket);
}
/*!
@@ -293,7 +256,7 @@ public:
*/
DemuxPacket* AllocateDemuxPacket(int iDataSize)
{
- return PVR_allocate_demux_packet(m_Handle, m_Callbacks, iDataSize);
+ return m_Callbacks->AllocateDemuxPacket(m_Handle->addonData, iDataSize);
}
#endif
@@ -306,7 +269,7 @@ public:
*/
void ConnectionStateChange(const char *strConnectionString, PVR_CONNECTION_STATE newState, const char *strMessage)
{
- return PVR_connection_state_change(m_Handle, m_Callbacks, strConnectionString, newState, strMessage);
+ return m_Callbacks->ConnectionStateChange(m_Handle->addonData, strConnectionString, newState, strMessage);
}
/*!
@@ -318,38 +281,10 @@ public:
*/
void EpgEventStateChange(EPG_TAG *tag, unsigned int iUniqueChannelId, EPG_EVENT_STATE newState)
{
- return PVR_epg_event_state_change(m_Handle, m_Callbacks, tag, iUniqueChannelId, newState);
+ return m_Callbacks->EpgEventStateChange(m_Handle->addonData, tag, iUniqueChannelId, newState);
}
-protected:
- void* (*PVR_register_me)(void*);
- void (*PVR_unregister_me)(void*, void*);
- void (*PVR_transfer_epg_entry)(void*, void*, const ADDON_HANDLE, const EPG_TAG*);
- void (*PVR_transfer_channel_entry)(void*, void*, const ADDON_HANDLE, const PVR_CHANNEL*);
- void (*PVR_transfer_timer_entry)(void*, void*, const ADDON_HANDLE, const PVR_TIMER*);
- void (*PVR_transfer_recording_entry)(void*, void*, const ADDON_HANDLE, const PVR_RECORDING*);
- void (*PVR_add_menu_hook)(void*, void*, PVR_MENUHOOK*);
- void (*PVR_recording)(void*, void*, const char*, const char*, bool);
- void (*PVR_trigger_channel_update)(void*, void*);
- void (*PVR_trigger_channel_groups_update)(void*, void*);
- void (*PVR_trigger_timer_update)(void*, void*);
- void (*PVR_trigger_recording_update)(void* , void*);
- void (*PVR_trigger_epg_update)(void*, void*, unsigned int);
- void (*PVR_transfer_channel_group)(void*, void*, const ADDON_HANDLE, const PVR_CHANNEL_GROUP*);
- void (*PVR_transfer_channel_group_member)(void*, void*, const ADDON_HANDLE, const PVR_CHANNEL_GROUP_MEMBER*);
-#ifdef USE_DEMUX
- void (*PVR_free_demux_packet)(void*, void*, DemuxPacket*);
- DemuxPacket* (*PVR_allocate_demux_packet)(void*, void*, int);
-#endif
- void (*PVR_connection_state_change)(void*, void*, const char*, PVR_CONNECTION_STATE, const char*);
- void (*PVR_epg_event_state_change)(void*, void*, EPG_TAG*, unsigned int, EPG_EVENT_STATE);
-
private:
- void* m_libXBMC_pvr;
- void* m_Handle;
- void* m_Callbacks;
- struct cb_array
- {
- const char* libPath;
- };
+ AddonCB* m_Handle;
+ V1::KodiAPI::PVR::CB_PVRLib *m_Callbacks;
};