Compare commits

...

13 Commits
0.3.2 ... 0.3.6

Author SHA1 Message Date
Dennis Hamester
8549a31c8d Bump version to 0.3.6 2016-11-28 15:09:54 +01:00
Dennis Hamester
0a7fb087ac Bump pvr api version to 5.2.1 2016-11-28 15:09:25 +01:00
Dennis Hamester
5c0f000a91 Bump version to 0.3.5 2016-11-28 14:14:57 +01:00
Dennis Hamester
2b020cec9c README: Rewrite build instructions 2016-11-28 14:00:01 +01:00
Dennis Hamester
96a19310ca Change time parameter of SeekTime from int to double
See xbmc/xbmc#10985
2016-11-28 10:40:36 +01:00
Dennis Hamester
3a6f4eb7b5 Bump version to 0.3.4 2016-11-18 10:28:37 +01:00
Dennis Hamester
2067aba378 OctonetData: Remove unused variable 2016-11-16 12:32:36 +01:00
Dennis Hamester
b52f50ef30 OctonetData: Fix missing EPG data for the first channel 2016-11-16 12:31:27 +01:00
Dennis Hamester
d1f9af2225 OctonetData: Fix computing last_end in getEPG() 2016-11-14 11:36:51 +01:00
Julian Scheel
880d313bef Unify Digital Devices naming
Always write Digital Devices with a blank in between.

Signed-off-by: Julian Scheel <julian@jusst.de>
2016-11-11 20:49:27 +01:00
Julian Scheel
94eb166783 README: Add AppVeyor badge
Add a badge for AppVeyor (Windows) build status.

Signed-off-by: Julian Scheel <julian@jusst.de>
2016-11-10 17:54:14 +01:00
Dennis Hamester
ba7e50e79c client: Clear incoming signalStatus before filling it 2016-11-10 17:23:47 +01:00
Julian Scheel
5fc6fc2ebc README: Add build status
Signed-off-by: Julian Scheel <julian@jusst.de>
2016-11-10 17:20:24 +01:00
5 changed files with 66 additions and 33 deletions

View File

@@ -1,27 +1,40 @@
# Octonet PVR # Octonet PVR
DigitalDevices [Octonet] (http://www.digital-devices.eu/shop/de/netzwerk-tv/) PVR client addon for [Kodi] (http://kodi.tv) Digital Devices [Octonet](http://www.digital-devices.eu/shop/de/netzwerk-tv/) PVR client addon for [Kodi](http://kodi.tv)
| Platform | Status |
|----------|--------|
| Linux + OS X (Travis) | [![Build Status](https://travis-ci.org/julianscheel/pvr.octonet.svg?branch=master)](https://travis-ci.org/julianscheel/pvr.octonet) |
| Windows (AppVeyor) | [![Build status](https://ci.appveyor.com/api/projects/status/m7dhmpmuf5coir5h?svg=true)](https://ci.appveyor.com/project/julianscheel/pvr-octonet) |
# Building # Building
## Windows These instructions work on all supported platforms for the most part. Obviously, paths need to be
1. Create a file `project/cmake/addons/addons/kodi.pvr.octonet/kodi.pvr.octonet.txt` containing a adjusted according to your OS (`/` vs `\`). We use Linux paths here as an example.
single line `kodi.pvr.octonet file://C:\some\path`. The path doesn't matter and doesn't need to
actually exist.
2. Use a shell that has environment variables setup by Visual Studio for the native x86 toolchain. Clone the `pvr.octonet` repository:
Run the following in a new build directory and adjust paths accordingly:
``` ```
cmake -G "NMake Makefiles" ^ $ git clone https://github.com/DigitalDevices/pvr.octonet.git
-DCMAKE_BUILD_TYPE=Release ^
-DADDONS_TO_BUILD="kodi.pvr.octonet" ^
-DADDON_SRC_PREFIX="path_to_where_kodi.pvr.octonet_is" ^
-DCMAKE_INSTALL_PREFIX="some_subdirectory" ^
-DPACKAGE_ZIP=ON ^
"path_to_kodi\project\cmake\addons"
``` ```
Make sure `ADDON_SRC_PREFIX` points to the parent directory of `kodi.pvr.octonet`. Clone the Kodi repository:
4. Build the addon by running `nmake`. Run `nmake package-addons` to package a zip file of the ```
addon. $ git clone https://github.com/xbmc/xbmc.git
```
If you already have a local Kodi checkout, you can use that one. Just make sure it is recent enough
(Kodi 17 Beta 5 or later should work).
```
$ cd pvr.octonet
$ mkdir build
$ cd build
$ cmake -DCMAKE_BUILD_TYPE=Release -DADDONS_TO_BUILD="pvr.octonet" -DADDON_SRC_PREFIX="path to parent of pvr.octonet" -DCMAKE_INSTALL_PREFIX="install" -DPACKAGE_ZIP=ON "path to kodi/project/cmake/addons"
```
On Windows, you should add `-G "NMake Makefiles"` to the CMake invocation. Make sure that
`ADDON_SRC_PREFIX` does _not_ point directly to `pvr.octonet` but instead to its parent directory.
Finally, build the plugin with `make` (or `nmake` on Windows). The plugin should be in an `install`
subdirectory.

7
debian/control vendored
View File

@@ -11,13 +11,12 @@ Package: kodi-pvr-octonet
Section: libs Section: libs
Architecture: any Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends} Depends: ${shlibs:Depends}, ${misc:Depends}
Description: DigitalDevices Octopus NET PVR for Kodi Description: Digital Devices Octopus NET PVR for Kodi
Digital Devices Octopus NET PVR for Kodi Digital Devices Octopus NET PVR for Kodi
Package: kodi-pvr-octonet-dbg Package: kodi-pvr-octonet-dbg
Section: libs Section: libs
Architecture: any Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends} Depends: ${shlibs:Depends}, ${misc:Depends}
Description: debug symbols for DigitalDevices Octopus NET PVR for Kodi Description: debug symbols for Digital Devices Octopus NET PVR for Kodi
debug symbols for DigitalDevices Octopus NET PVR for Kodi debug symbols for Digital Devices Octopus NET PVR for Kodi

View File

@@ -1,12 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<addon <addon
id="pvr.octonet" id="pvr.octonet"
version="0.3.2" version="0.3.6"
name="PVR DigitalDevices Octopus NET Client" name="Digital Devices Octopus NET Client"
provider-name="digitaldevices"> provider-name="digitaldevices">
<requires> <requires>
<c-pluff version="0.1" /> <c-pluff version="0.1" />
<import addon="xbmc.pvr" version="5.2.0" /> <import addon="xbmc.pvr" version="5.2.1" />
</requires> </requires>
<extension <extension
point="xbmc.pvrclient" point="xbmc.pvrclient"
@@ -16,8 +16,8 @@
library_windx="pvr.octonet.dll" library_windx="pvr.octonet.dll"
library_android="libpvr.octonet.so" /> library_android="libpvr.octonet.so" />
<extension point="xbmc.addon.metadata"> <extension point="xbmc.addon.metadata">
<summary lang="de_DE">Kodi PVR Addon für DigitalDevices Octopus NET Streams</summary> <summary lang="de_DE">Kodi PVR Addon für Digital Devices Octopus NET Streams</summary>
<summary lang="en_US">Kodi PVR Addon for DigitalDevices Octopus NET Streams</summary> <summary lang="en_US">Kodi PVR Addon for Digital Devices Octopus NET Streams</summary>
<platform>all</platform> <platform>all</platform>
</extension> </extension>
</addon> </addon>

View File

@@ -125,7 +125,6 @@ OctonetChannel* OctonetData::findChannel(int64_t nativeId)
time_t OctonetData::parseDateTime(std::string date) time_t OctonetData::parseDateTime(std::string date)
{ {
struct tm timeinfo; struct tm timeinfo;
time_t time;
memset(&timeinfo, 0, sizeof(timeinfo)); memset(&timeinfo, 0, sizeof(timeinfo));
@@ -237,20 +236,23 @@ PVR_ERROR OctonetData::getChannels(ADDON_HANDLE handle, bool bRadio)
PVR_ERROR OctonetData::getEPG(ADDON_HANDLE handle, const PVR_CHANNEL &channel, time_t start, time_t end) PVR_ERROR OctonetData::getEPG(ADDON_HANDLE handle, const PVR_CHANNEL &channel, time_t start, time_t end)
{ {
bool needs_reload = false;
for (unsigned int i = 0; i < channels.size(); i++) for (unsigned int i = 0; i < channels.size(); i++)
{ {
OctonetChannel &chan = channels.at(i); OctonetChannel &chan = channels.at(i);
if (channel.iUniqueId != chan.id) if (channel.iUniqueId != chan.id)
continue; continue;
if(chan.epg.empty()) {
loadEPG();
}
// FIXME: Check if reload is needed!? // FIXME: Check if reload is needed!?
std::vector<OctonetEpgEntry>::iterator it; std::vector<OctonetEpgEntry>::iterator it;
time_t last_end = 0; time_t last_end = 0;
for (it = chan.epg.begin(); it < chan.epg.end(); ++it) { for (it = chan.epg.begin(); it != chan.epg.end(); ++it) {
if (end > last_end) if (it->end > last_end)
last_end = end; last_end = it->end;
if (it->end < start || it->start > end) { if (it->end < start || it->start > end) {
continue; continue;
@@ -271,6 +273,24 @@ PVR_ERROR OctonetData::getEPG(ADDON_HANDLE handle, const PVR_CHANNEL &channel, t
if (last_end < end) if (last_end < end)
loadEPG(); loadEPG();
for (it = chan.epg.begin(); it != chan.epg.end(); ++it) {
if (it->end < start || it->start > end) {
continue;
}
EPG_TAG entry;
memset(&entry, 0, sizeof(EPG_TAG));
entry.iChannelNumber = i;
entry.iUniqueBroadcastId = it->id;
entry.strTitle = it->title.c_str();
entry.strPlotOutline = it->subtitle.c_str();
entry.startTime = it->start;
entry.endTime = it->end;
pvr->TransferEpgEntry(handle, &entry);
}
} }
return PVR_ERROR_NO_ERROR; return PVR_ERROR_NO_ERROR;

View File

@@ -157,7 +157,7 @@ PVR_ERROR GetAddonCapabilities(PVR_ADDON_CAPABILITIES *pCapabilities)
const char* GetBackendName(void) const char* GetBackendName(void)
{ {
return "DigitalDevices Octopus NET Client"; return "Digital Devices Octopus NET Client";
} }
const char* GetBackendVersion(void) const char* GetBackendVersion(void)
@@ -271,6 +271,7 @@ bool SwitchChannel(const PVR_CHANNEL& channel) {
} }
PVR_ERROR SignalStatus(PVR_SIGNAL_STATUS& signalStatus) { PVR_ERROR SignalStatus(PVR_SIGNAL_STATUS& signalStatus) {
memset(&signalStatus, 0, sizeof(PVR_SIGNAL_STATUS));
rtsp_fill_signal_status(signalStatus); rtsp_fill_signal_status(signalStatus);
return PVR_ERROR_NO_ERROR; return PVR_ERROR_NO_ERROR;
} }
@@ -301,7 +302,7 @@ bool CanSeekStream() { return false; }
/* Callbacks */ /* Callbacks */
void PauseStream(bool bPaused) {} void PauseStream(bool bPaused) {}
bool SeekTime(int time, bool backwards, double *startpts) { return false; } bool SeekTime(double time, bool backwards, double *startpts) { return false; }
void SetSpeed(int speed) {} void SetSpeed(int speed) {}
PVR_ERROR SetEPGTimeFrame(int) { return PVR_ERROR_NOT_IMPLEMENTED; } PVR_ERROR SetEPGTimeFrame(int) { return PVR_ERROR_NOT_IMPLEMENTED; }