mirror of
https://github.com/DigitalDevices/pvr.octonet.git
synced 2025-03-01 10:53:09 +00:00
Compare commits
13 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
8549a31c8d | ||
|
|
0a7fb087ac | ||
|
|
5c0f000a91 | ||
|
|
2b020cec9c | ||
|
|
96a19310ca | ||
|
|
3a6f4eb7b5 | ||
|
|
2067aba378 | ||
|
|
b52f50ef30 | ||
|
|
d1f9af2225 | ||
|
|
880d313bef | ||
|
|
94eb166783 | ||
|
|
ba7e50e79c | ||
|
|
5fc6fc2ebc |
47
README.md
47
README.md
@@ -1,27 +1,40 @@
|
||||
# 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) | [](https://travis-ci.org/julianscheel/pvr.octonet) |
|
||||
| Windows (AppVeyor) | [](https://ci.appveyor.com/project/julianscheel/pvr-octonet) |
|
||||
|
||||
# Building
|
||||
|
||||
## Windows
|
||||
1. Create a file `project/cmake/addons/addons/kodi.pvr.octonet/kodi.pvr.octonet.txt` containing a
|
||||
single line `kodi.pvr.octonet file://C:\some\path`. The path doesn't matter and doesn't need to
|
||||
actually exist.
|
||||
These instructions work on all supported platforms for the most part. Obviously, paths need to be
|
||||
adjusted according to your OS (`/` vs `\`). We use Linux paths here as an example.
|
||||
|
||||
2. Use a shell that has environment variables setup by Visual Studio for the native x86 toolchain.
|
||||
Run the following in a new build directory and adjust paths accordingly:
|
||||
Clone the `pvr.octonet` repository:
|
||||
|
||||
```
|
||||
cmake -G "NMake Makefiles" ^
|
||||
-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"
|
||||
$ git clone https://github.com/DigitalDevices/pvr.octonet.git
|
||||
```
|
||||
|
||||
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
7
debian/control
vendored
@@ -11,13 +11,12 @@ Package: kodi-pvr-octonet
|
||||
Section: libs
|
||||
Architecture: any
|
||||
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
|
||||
|
||||
Package: kodi-pvr-octonet-dbg
|
||||
Section: libs
|
||||
Architecture: any
|
||||
Depends: ${shlibs:Depends}, ${misc:Depends}
|
||||
Description: debug symbols for DigitalDevices Octopus NET PVR for Kodi
|
||||
debug symbols for DigitalDevices Octopus NET PVR for Kodi
|
||||
|
||||
Description: debug symbols for Digital Devices Octopus NET PVR for Kodi
|
||||
debug symbols for Digital Devices Octopus NET PVR for Kodi
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<addon
|
||||
id="pvr.octonet"
|
||||
version="0.3.2"
|
||||
name="PVR DigitalDevices Octopus NET Client"
|
||||
version="0.3.6"
|
||||
name="Digital Devices Octopus NET Client"
|
||||
provider-name="digitaldevices">
|
||||
<requires>
|
||||
<c-pluff version="0.1" />
|
||||
<import addon="xbmc.pvr" version="5.2.0" />
|
||||
<import addon="xbmc.pvr" version="5.2.1" />
|
||||
</requires>
|
||||
<extension
|
||||
point="xbmc.pvrclient"
|
||||
@@ -16,8 +16,8 @@
|
||||
library_windx="pvr.octonet.dll"
|
||||
library_android="libpvr.octonet.so" />
|
||||
<extension point="xbmc.addon.metadata">
|
||||
<summary lang="de_DE">Kodi PVR Addon für DigitalDevices Octopus NET Streams</summary>
|
||||
<summary lang="en_US">Kodi PVR Addon for 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 Digital Devices Octopus NET Streams</summary>
|
||||
<platform>all</platform>
|
||||
</extension>
|
||||
</addon>
|
||||
|
||||
@@ -125,7 +125,6 @@ OctonetChannel* OctonetData::findChannel(int64_t nativeId)
|
||||
time_t OctonetData::parseDateTime(std::string date)
|
||||
{
|
||||
struct tm timeinfo;
|
||||
time_t time;
|
||||
|
||||
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)
|
||||
{
|
||||
bool needs_reload = false;
|
||||
for (unsigned int i = 0; i < channels.size(); i++)
|
||||
{
|
||||
OctonetChannel &chan = channels.at(i);
|
||||
if (channel.iUniqueId != chan.id)
|
||||
continue;
|
||||
|
||||
if(chan.epg.empty()) {
|
||||
loadEPG();
|
||||
}
|
||||
|
||||
// FIXME: Check if reload is needed!?
|
||||
|
||||
std::vector<OctonetEpgEntry>::iterator it;
|
||||
time_t last_end = 0;
|
||||
for (it = chan.epg.begin(); it < chan.epg.end(); ++it) {
|
||||
if (end > last_end)
|
||||
last_end = end;
|
||||
for (it = chan.epg.begin(); it != chan.epg.end(); ++it) {
|
||||
if (it->end > last_end)
|
||||
last_end = it->end;
|
||||
|
||||
if (it->end < start || it->start > end) {
|
||||
continue;
|
||||
@@ -271,6 +273,24 @@ PVR_ERROR OctonetData::getEPG(ADDON_HANDLE handle, const PVR_CHANNEL &channel, t
|
||||
|
||||
if (last_end < end)
|
||||
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;
|
||||
|
||||
@@ -157,7 +157,7 @@ PVR_ERROR GetAddonCapabilities(PVR_ADDON_CAPABILITIES *pCapabilities)
|
||||
|
||||
const char* GetBackendName(void)
|
||||
{
|
||||
return "DigitalDevices Octopus NET Client";
|
||||
return "Digital Devices Octopus NET Client";
|
||||
}
|
||||
|
||||
const char* GetBackendVersion(void)
|
||||
@@ -271,6 +271,7 @@ bool SwitchChannel(const PVR_CHANNEL& channel) {
|
||||
}
|
||||
|
||||
PVR_ERROR SignalStatus(PVR_SIGNAL_STATUS& signalStatus) {
|
||||
memset(&signalStatus, 0, sizeof(PVR_SIGNAL_STATUS));
|
||||
rtsp_fill_signal_status(signalStatus);
|
||||
return PVR_ERROR_NO_ERROR;
|
||||
}
|
||||
@@ -301,7 +302,7 @@ bool CanSeekStream() { return false; }
|
||||
|
||||
/* Callbacks */
|
||||
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) {}
|
||||
PVR_ERROR SetEPGTimeFrame(int) { return PVR_ERROR_NOT_IMPLEMENTED; }
|
||||
|
||||
|
||||
Reference in New Issue
Block a user