mirror of
				https://github.com/DigitalDevices/pvr.octonet.git
				synced 2025-03-01 10:53:09 +00:00 
			
		
		
		
	Compare commits
	
		
			11 Commits
		
	
	
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|  | 5c0f000a91 | ||
|  | 2b020cec9c | ||
|  | 96a19310ca | ||
|  | 3a6f4eb7b5 | ||
|  | 2067aba378 | ||
|  | b52f50ef30 | ||
|  | d1f9af2225 | ||
|  | 880d313bef | ||
|  | 94eb166783 | ||
|  | ba7e50e79c | ||
|  | 5fc6fc2ebc | 
							
								
								
									
										47
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										47
									
								
								README.md
									
									
									
									
									
								
							| @@ -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) | [](https://travis-ci.org/julianscheel/pvr.octonet) | | ||||||
|  | | Windows (AppVeyor) | [](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
									
									
								
							
							
						
						
									
										7
									
								
								debian/control
									
									
									
									
										vendored
									
									
								
							| @@ -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 | ||||||
|  |  | ||||||
|   | |||||||
| @@ -1,8 +1,8 @@ | |||||||
| <?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.5" | ||||||
| 	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" /> | ||||||
| @@ -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> | ||||||
|   | |||||||
| @@ -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; | ||||||
|   | |||||||
| @@ -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; } | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user