diff --git a/debian/copyright b/debian/copyright index e6a8b01c..908c3550 100644 --- a/debian/copyright +++ b/debian/copyright @@ -2,8 +2,8 @@ Format: http://dep.debian.net/deps/dep5 Upstream-Name: pvr.dvbviewer Files: * -Copyright: 2005-2021 Team Kodi - 2013-2021 Manuel Mausz +Copyright: 2005-2022 Team Kodi + 2013-2022 Manuel Mausz 2012-2013 A600 License: GPL-2+ This package is free software; you can redistribute it and/or modify @@ -24,7 +24,7 @@ License: GPL-2+ Files: debian/* -Copyright: 2020-2021 Team Kodi +Copyright: 2020-2022 Team Kodi 2015 Manuel Mausz 2013 wsnipex License: GPL-2+ diff --git a/pvr.dvbviewer/addon.xml.in b/pvr.dvbviewer/addon.xml.in index 74b21c48..d6dc58be 100644 --- a/pvr.dvbviewer/addon.xml.in +++ b/pvr.dvbviewer/addon.xml.in @@ -1,7 +1,7 @@ @ADDON_DEPENDS@ diff --git a/pvr.dvbviewer/changelog.txt b/pvr.dvbviewer/changelog.txt index ab315ae8..a7d16a55 100644 --- a/pvr.dvbviewer/changelog.txt +++ b/pvr.dvbviewer/changelog.txt @@ -1,23 +1,27 @@ +v19.1.0 +- Require DMS 3.0.0 or higher +- Make sure to only reference non-hidden channels + v19.0.2 - Translations updates from Weblate - - be_by, ca_es, da_dk, es_mx, et_ee, lt_lt, nl_nl, tr_tr, zh_tw +- be_by, ca_es, da_dk, es_mx, et_ee, lt_lt, nl_nl, tr_tr, zh_tw v19.0.1 - Translations updates from Weblate - - da_dk, eo, et_ee, ko_kr, pl_pl +- da_dk, eo, et_ee, ko_kr, pl_pl v19.0.0 - Translations updates from Weblate - - Korean (ko_kr), Esperanto, Danish (da_dk) - - Also allow addon.xml content update by Weblate +- Korean (ko_kr), Esperanto, Danish (da_dk) +- Also allow addon.xml content update by Weblate - Changed test builds to 'Kodi 19 Matrix' - Increased version to 19.0.0 - - With start of Kodi 20 Nexus, takes addon as major the same version number as Kodi. - This done to know easier to which Kodi the addon works. +- With start of Kodi 20 Nexus, takes addon as major the same version number as Kodi. + This done to know easier to which Kodi the addon works. v7.3.3 - Translations updates from Weblate - - pl_pl +- pl_pl v7.3.2 - Fix for extra assets tag in addon.xml diff --git a/pvr.dvbviewer/resources/language/resource.language.en_gb/strings.po b/pvr.dvbviewer/resources/language/resource.language.en_gb/strings.po index 55fb126a..b6d2ad26 100644 --- a/pvr.dvbviewer/resources/language/resource.language.en_gb/strings.po +++ b/pvr.dvbviewer/resources/language/resource.language.en_gb/strings.po @@ -354,10 +354,6 @@ msgctxt "#30510" msgid "The time period cannot span more than 24 hours" msgstr "" -msgctxt "#30511" -msgid "EDL support requires DVBViewer Media Server %s or higher" -msgstr "" - msgctxt "#30512" msgid "PVR is running with guest permissions" msgstr "" diff --git a/src/DvbData.cpp b/src/DvbData.cpp index b16d6fa2..fb9340d5 100644 --- a/src/DvbData.cpp +++ b/src/DvbData.cpp @@ -1,6 +1,6 @@ /* - * Copyright (C) 2005-2021 Team Kodi (https://kodi.tv) - * Copyright (C) 2013-2021 Manuel Mausz + * Copyright (C) 2005-2022 Team Kodi (https://kodi.tv) + * Copyright (C) 2013-2022 Manuel Mausz * * SPDX-License-Identifier: GPL-2.0-or-later * See LICENSE.md for more information. @@ -188,8 +188,8 @@ PVR_ERROR Dvb::GetCapabilities(kodi::addon::PVRCapabilities& capabilities) capabilities.SetSupportsChannelSettings(false); capabilities.SetHandlesInputStream(true); capabilities.SetHandlesDemuxing(false); - capabilities.SetSupportsRecordingPlayCount(false); - capabilities.SetSupportsLastPlayedPosition(false); + capabilities.SetSupportsRecordingPlayCount(true); + capabilities.SetSupportsLastPlayedPosition(true); capabilities.SetSupportsRecordingEdl(true); capabilities.SetSupportsRecordingsRename(false); capabilities.SetSupportsRecordingsLifetimeChange(false); @@ -199,12 +199,6 @@ PVR_ERROR Dvb::GetCapabilities(kodi::addon::PVRCapabilities& capabilities) { if (IsGuest()) capabilities.SetSupportsTimers(false); - - if (HasKVStore()) - { - capabilities.SetSupportsRecordingPlayCount(true); - capabilities.SetSupportsLastPlayedPosition(true); - } } return PVR_ERROR_NO_ERROR; } @@ -719,13 +713,10 @@ PVR_ERROR Dvb::GetRecordings(bool deleted, recording.group = groups.emplace(group, 0).first; ++recording.group->second; - if (m_kvstore.IsSupported()) - { - m_kvstore.Get("recplaycount_" + recording.id, - recording.playCount, KVStore::Hint::FETCH_ALL); - m_kvstore.Get("recplaypos_" + recording.id, - recording.lastPlayPosition, KVStore::Hint::FETCH_ALL); - } + m_kvstore.Get("recplaycount_" + recording.id, + recording.playCount, KVStore::Hint::FETCH_ALL); + m_kvstore.Get("recplaypos_" + recording.id, + recording.lastPlayPosition, KVStore::Hint::FETCH_ALL); recordings.push_back(recording); } @@ -888,15 +879,6 @@ PVR_ERROR Dvb::GetRecordingEdl(const kodi::addon::PVRRecording& recinfo, if (!IsConnected()) return PVR_ERROR_SERVER_ERROR; - if (m_backendVersion < DMS_VERSION_NUM(2, 1, 0, 0)) - { - kodi::Log(ADDON_LOG_ERROR, "Backend server is too old. Disabling EDL support."); - kodi::QueueFormattedNotification(QUEUE_ERROR, kodi::GetLocalizedString(30511).c_str(), - DMS_VERSION_STR(2, 1, 0, 0)); - m_settings.m_edl.enabled = false; - return PVR_ERROR_NOT_IMPLEMENTED; - } - std::unique_ptr res = OpenFromAPI("api/sideload.html?rec=1&file=.edl" "&fileid=%s", recinfo.GetRecordingId().c_str()); if (res->error) @@ -945,8 +927,6 @@ PVR_ERROR Dvb::SetRecordingPlayCount(const kodi::addon::PVRRecording& recinfo, { if (!IsConnected()) return PVR_ERROR_SERVER_ERROR; - if (!HasKVStore()) - return PVR_ERROR_NOT_IMPLEMENTED; const std::string value = std::string("recplaycount_") + recinfo.GetRecordingId(); return m_kvstore.Set(value, count) @@ -958,8 +938,6 @@ PVR_ERROR Dvb::SetRecordingLastPlayedPosition( { if (!IsConnected()) return PVR_ERROR_SERVER_ERROR; - if (!HasKVStore()) - return PVR_ERROR_NOT_IMPLEMENTED; const std::string value = std::string("recplaypos_") + recinfo.GetRecordingId(); return m_kvstore.Set(value, lastplayedposition) @@ -971,8 +949,6 @@ PVR_ERROR Dvb::GetRecordingLastPlayedPosition( { if (!IsConnected()) return PVR_ERROR_SERVER_ERROR; - if (!HasKVStore()) - return PVR_ERROR_NOT_IMPLEMENTED; const std::string value = std::string("recplaypos_") + recinfo.GetRecordingId(); return m_kvstore.Get(value, position) @@ -1219,8 +1195,7 @@ void Dvb::Process() kodi::addon::CInstancePVRClient::TriggerRecordingUpdate(); /* actually the DMS should do this itself... */ - if (m_kvstore.IsSupported()) - m_kvstore.Save(); + m_kvstore.Save(); } } } @@ -1432,6 +1407,18 @@ bool Dvb::LoadChannels() } } + auto searchChannelByBackendId = [&](uint64_t backendId) -> DvbChannel* { + for (auto channel : m_channels) + { + bool found = (std::find(channel->backendIds.begin(), + channel->backendIds.end(), backendId) + != channel->backendIds.end()); + if (found) + return channel; + } + return nullptr; + }; + if (m_settings.m_useFavourites && !m_settings.m_useFavouritesFile) { m_groups.clear(); @@ -1454,12 +1441,7 @@ bool Dvb::LoadChannels() { uint64_t backendId = 0; xChannel->QueryValueAttribute("ID", &backendId); - DvbChannel *channel = GetChannel([&](const DvbChannel *channel) - { - return (std::find(channel->backendIds.begin(), - channel->backendIds.end(), backendId) - != channel->backendIds.end()); - }); + DvbChannel *channel = searchChannelByBackendId(backendId); if (!channel) { kodi::Log(ADDON_LOG_INFO, "Favourites contains unresolvable channel: %s." @@ -1559,12 +1541,7 @@ bool Dvb::LoadChannels() channelName = ConvertToUtf8(channelName); } - DvbChannel *channel = GetChannel([&](const DvbChannel *channel) - { - return (std::find(channel->backendIds.begin(), - channel->backendIds.end(), backendId) - != channel->backendIds.end()); - }); + DvbChannel *channel = searchChannelByBackendId(backendId); if (!channel) { const char *descr = (channelName.empty()) ? xEntry->GetText() @@ -1628,6 +1605,8 @@ DvbChannel *Dvb::GetChannel(std::function func) { for (auto channel : m_channels) { + if (channel->hidden) + continue; if (func(channel)) return channel; } diff --git a/src/DvbData.h b/src/DvbData.h index 83b3cf85..c1ce9464 100644 --- a/src/DvbData.h +++ b/src/DvbData.h @@ -1,6 +1,6 @@ /* - * Copyright (C) 2005-2021 Team Kodi (https://kodi.tv) - * Copyright (C) 2013-2021 Manuel Mausz + * Copyright (C) 2005-2022 Team Kodi (https://kodi.tv) + * Copyright (C) 2013-2022 Manuel Mausz * * SPDX-License-Identifier: GPL-2.0-or-later * See LICENSE.md for more information. @@ -25,7 +25,7 @@ #include // minimum version required -#define DMS_MIN_VERSION 1, 33, 2, 0 +#define DMS_MIN_VERSION 3, 0, 0, 0 #define DMS_MIN_VERSION_NUM DMS_VERSION_NUM2(DMS_MIN_VERSION) #define DMS_MIN_VERSION_STR DMS_VERSION_STR2(DMS_MIN_VERSION) @@ -158,8 +158,6 @@ class Dvb unsigned int GetBackendVersion(); bool IsGuest() { return m_isguest; } - bool HasKVStore() - { return m_kvstore.IsSupported(); }; dvbviewer::Settings &GetSettings() { return m_settings; }; diff --git a/src/IStreamReader.h b/src/IStreamReader.h index a44a5a03..5f20222d 100644 --- a/src/IStreamReader.h +++ b/src/IStreamReader.h @@ -1,6 +1,6 @@ /* - * Copyright (C) 2005-2021 Team Kodi (https://kodi.tv) - * Copyright (C) 2013-2021 Manuel Mausz + * Copyright (C) 2005-2022 Team Kodi (https://kodi.tv) + * Copyright (C) 2013-2022 Manuel Mausz * * SPDX-License-Identifier: GPL-2.0-or-later * See LICENSE.md for more information. diff --git a/src/KVStore.cpp b/src/KVStore.cpp index 41cc4f97..f506beb8 100644 --- a/src/KVStore.cpp +++ b/src/KVStore.cpp @@ -1,6 +1,6 @@ /* - * Copyright (C) 2005-2021 Team Kodi (https://kodi.tv) - * Copyright (C) 2013-2021 Manuel Mausz + * Copyright (C) 2005-2022 Team Kodi (https://kodi.tv) + * Copyright (C) 2013-2022 Manuel Mausz * * SPDX-License-Identifier: GPL-2.0-or-later * See LICENSE.md for more information. @@ -16,11 +16,6 @@ using namespace dvbviewer; -bool KVStore::IsSupported() const -{ - return m_cli.GetBackendVersion() >= DMS_VERSION_NUM(2, 1, 2, 0); -} - bool KVStore::IsErrorState() const { return m_error; diff --git a/src/KVStore.h b/src/KVStore.h index 93544576..2fe51d7b 100644 --- a/src/KVStore.h +++ b/src/KVStore.h @@ -1,6 +1,6 @@ /* - * Copyright (C) 2005-2021 Team Kodi (https://kodi.tv) - * Copyright (C) 2013-2021 Manuel Mausz + * Copyright (C) 2005-2022 Team Kodi (https://kodi.tv) + * Copyright (C) 2013-2022 Manuel Mausz * * SPDX-License-Identifier: GPL-2.0-or-later * See LICENSE.md for more information. @@ -48,7 +48,6 @@ class KVStore {}; KVStore(const KVStore &kvstore) = delete; - bool IsSupported() const; bool IsErrorState() const; void Reset(); diff --git a/src/RecordingReader.cpp b/src/RecordingReader.cpp index cb1e68e2..66bbbe0b 100644 --- a/src/RecordingReader.cpp +++ b/src/RecordingReader.cpp @@ -1,6 +1,6 @@ /* - * Copyright (C) 2005-2021 Team Kodi (https://kodi.tv) - * Copyright (C) 2013-2021 Manuel Mausz + * Copyright (C) 2005-2022 Team Kodi (https://kodi.tv) + * Copyright (C) 2013-2022 Manuel Mausz * * SPDX-License-Identifier: GPL-2.0-or-later * See LICENSE.md for more information. diff --git a/src/RecordingReader.h b/src/RecordingReader.h index a06ab9e1..788c6416 100644 --- a/src/RecordingReader.h +++ b/src/RecordingReader.h @@ -1,6 +1,6 @@ /* - * Copyright (C) 2005-2021 Team Kodi (https://kodi.tv) - * Copyright (C) 2013-2021 Manuel Mausz + * Copyright (C) 2005-2022 Team Kodi (https://kodi.tv) + * Copyright (C) 2013-2022 Manuel Mausz * * SPDX-License-Identifier: GPL-2.0-or-later * See LICENSE.md for more information. diff --git a/src/Settings.cpp b/src/Settings.cpp index cc64e24b..776dee5d 100644 --- a/src/Settings.cpp +++ b/src/Settings.cpp @@ -1,6 +1,6 @@ /* - * Copyright (C) 2005-2021 Team Kodi (https://kodi.tv) - * Copyright (C) 2013-2021 Manuel Mausz + * Copyright (C) 2005-2022 Team Kodi (https://kodi.tv) + * Copyright (C) 2013-2022 Manuel Mausz * * SPDX-License-Identifier: GPL-2.0-or-later * See LICENSE.md for more information. diff --git a/src/Settings.h b/src/Settings.h index fcd30a79..a8361280 100644 --- a/src/Settings.h +++ b/src/Settings.h @@ -1,6 +1,6 @@ /* - * Copyright (C) 2005-2021 Team Kodi (https://kodi.tv) - * Copyright (C) 2013-2021 Manuel Mausz + * Copyright (C) 2005-2022 Team Kodi (https://kodi.tv) + * Copyright (C) 2013-2022 Manuel Mausz * * SPDX-License-Identifier: GPL-2.0-or-later * See LICENSE.md for more information. diff --git a/src/StreamReader.cpp b/src/StreamReader.cpp index f182114f..e0cacbf9 100644 --- a/src/StreamReader.cpp +++ b/src/StreamReader.cpp @@ -1,6 +1,6 @@ /* - * Copyright (C) 2005-2021 Team Kodi (https://kodi.tv) - * Copyright (C) 2013-2021 Manuel Mausz + * Copyright (C) 2005-2022 Team Kodi (https://kodi.tv) + * Copyright (C) 2013-2022 Manuel Mausz * * SPDX-License-Identifier: GPL-2.0-or-later * See LICENSE.md for more information. diff --git a/src/StreamReader.h b/src/StreamReader.h index 445208fe..73969a98 100644 --- a/src/StreamReader.h +++ b/src/StreamReader.h @@ -1,6 +1,6 @@ /* - * Copyright (C) 2005-2021 Team Kodi (https://kodi.tv) - * Copyright (C) 2013-2021 Manuel Mausz + * Copyright (C) 2005-2022 Team Kodi (https://kodi.tv) + * Copyright (C) 2013-2022 Manuel Mausz * * SPDX-License-Identifier: GPL-2.0-or-later * See LICENSE.md for more information. diff --git a/src/Timers.cpp b/src/Timers.cpp index 66ca67c3..5ce74d22 100644 --- a/src/Timers.cpp +++ b/src/Timers.cpp @@ -1,6 +1,6 @@ /* - * Copyright (C) 2005-2021 Team Kodi (https://kodi.tv) - * Copyright (C) 2013-2021 Manuel Mausz + * Copyright (C) 2005-2022 Team Kodi (https://kodi.tv) + * Copyright (C) 2013-2022 Manuel Mausz * * SPDX-License-Identifier: GPL-2.0-or-later * See LICENSE.md for more information. @@ -148,56 +148,53 @@ void Timers::GetTimerTypes(std::vector< std::unique_ptr deDupValues = { - /* PVR_Timer.iPreventDuplicateEpisodes values and presentation.*/ - static std::vector deDupValues = - { - { AutoTimer::DeDup::DISABLED, kodi::GetLocalizedString(30430) }, - { AutoTimer::DeDup::CHECK_TITLE, kodi::GetLocalizedString(30431) }, - { AutoTimer::DeDup::CHECK_SUBTITLE, kodi::GetLocalizedString(30432) }, - { AutoTimer::DeDup::CHECK_TITLE_SUBTITLE, kodi::GetLocalizedString(30433) }, - }; - - /* epg auto search */ - types.emplace_back(std::unique_ptr(new TimerType( - Timer::Type::EPG_AUTO_SEARCH, - PVR_TIMER_TYPE_IS_REPEATING | - PVR_TIMER_TYPE_SUPPORTS_ENABLE_DISABLE | - PVR_TIMER_TYPE_SUPPORTS_CHANNELS | - PVR_TIMER_TYPE_SUPPORTS_ANY_CHANNEL | - PVR_TIMER_TYPE_SUPPORTS_FIRST_DAY | - PVR_TIMER_TYPE_SUPPORTS_START_TIME | - PVR_TIMER_TYPE_SUPPORTS_END_TIME | - PVR_TIMER_TYPE_SUPPORTS_START_ANYTIME | - PVR_TIMER_TYPE_SUPPORTS_END_ANYTIME | - PVR_TIMER_TYPE_SUPPORTS_WEEKDAYS | - PVR_TIMER_TYPE_SUPPORTS_START_END_MARGIN | - PVR_TIMER_TYPE_SUPPORTS_PRIORITY | - PVR_TIMER_TYPE_SUPPORTS_TITLE_EPG_MATCH | - PVR_TIMER_TYPE_SUPPORTS_FULLTEXT_EPG_MATCH | - PVR_TIMER_TYPE_SUPPORTS_RECORDING_GROUP | - PVR_TIMER_TYPE_SUPPORTS_RECORD_ONLY_NEW_EPISODES, - "", /* Let Kodi generate the description */ - priorityValues, groupValues, deDupValues))); - types.back()->SetPreventDuplicateEpisodesDefault( - AutoTimer::DeDup::CHECK_TITLE_SUBTITLE); - - /* One-shot created by epg auto search */ - types.emplace_back(std::unique_ptr(new TimerType( - Timer::Type::EPG_AUTO_ONCE, - PVR_TIMER_TYPE_IS_MANUAL | - PVR_TIMER_TYPE_FORBIDS_NEW_INSTANCES | - PVR_TIMER_TYPE_SUPPORTS_ENABLE_DISABLE | - PVR_TIMER_TYPE_SUPPORTS_CHANNELS | - PVR_TIMER_TYPE_SUPPORTS_START_TIME | - PVR_TIMER_TYPE_SUPPORTS_END_TIME | - PVR_TIMER_TYPE_SUPPORTS_START_END_MARGIN | - PVR_TIMER_TYPE_SUPPORTS_PRIORITY | - PVR_TIMER_TYPE_SUPPORTS_RECORDING_GROUP, - kodi::GetLocalizedString(30420), - priorityValues, groupValues))); - } + { AutoTimer::DeDup::DISABLED, kodi::GetLocalizedString(30430) }, + { AutoTimer::DeDup::CHECK_TITLE, kodi::GetLocalizedString(30431) }, + { AutoTimer::DeDup::CHECK_SUBTITLE, kodi::GetLocalizedString(30432) }, + { AutoTimer::DeDup::CHECK_TITLE_SUBTITLE, kodi::GetLocalizedString(30433) }, + }; + + /* epg auto search */ + types.emplace_back(std::unique_ptr(new TimerType( + Timer::Type::EPG_AUTO_SEARCH, + PVR_TIMER_TYPE_IS_REPEATING | + PVR_TIMER_TYPE_SUPPORTS_ENABLE_DISABLE | + PVR_TIMER_TYPE_SUPPORTS_CHANNELS | + PVR_TIMER_TYPE_SUPPORTS_ANY_CHANNEL | + PVR_TIMER_TYPE_SUPPORTS_FIRST_DAY | + PVR_TIMER_TYPE_SUPPORTS_START_TIME | + PVR_TIMER_TYPE_SUPPORTS_END_TIME | + PVR_TIMER_TYPE_SUPPORTS_START_ANYTIME | + PVR_TIMER_TYPE_SUPPORTS_END_ANYTIME | + PVR_TIMER_TYPE_SUPPORTS_WEEKDAYS | + PVR_TIMER_TYPE_SUPPORTS_START_END_MARGIN | + PVR_TIMER_TYPE_SUPPORTS_PRIORITY | + PVR_TIMER_TYPE_SUPPORTS_TITLE_EPG_MATCH | + PVR_TIMER_TYPE_SUPPORTS_FULLTEXT_EPG_MATCH | + PVR_TIMER_TYPE_SUPPORTS_RECORDING_GROUP | + PVR_TIMER_TYPE_SUPPORTS_RECORD_ONLY_NEW_EPISODES, + "", /* Let Kodi generate the description */ + priorityValues, groupValues, deDupValues))); + types.back()->SetPreventDuplicateEpisodesDefault( + AutoTimer::DeDup::CHECK_TITLE_SUBTITLE); + + /* One-shot created by epg auto search */ + types.emplace_back(std::unique_ptr(new TimerType( + Timer::Type::EPG_AUTO_ONCE, + PVR_TIMER_TYPE_IS_MANUAL | + PVR_TIMER_TYPE_FORBIDS_NEW_INSTANCES | + PVR_TIMER_TYPE_SUPPORTS_ENABLE_DISABLE | + PVR_TIMER_TYPE_SUPPORTS_CHANNELS | + PVR_TIMER_TYPE_SUPPORTS_START_TIME | + PVR_TIMER_TYPE_SUPPORTS_END_TIME | + PVR_TIMER_TYPE_SUPPORTS_START_END_MARGIN | + PVR_TIMER_TYPE_SUPPORTS_PRIORITY | + PVR_TIMER_TYPE_SUPPORTS_RECORDING_GROUP, + kodi::GetLocalizedString(30420), + priorityValues, groupValues))); } Timers::Error Timers::RefreshAllTimers(bool &changes) @@ -205,7 +202,7 @@ Timers::Error Timers::RefreshAllTimers(bool &changes) bool changesAutotimers, changesTimers; /* refresh epg auto search first */ Timers::Error err = Timers::SUCCESS; - if (err == Timers::SUCCESS && CanAutoTimers()) + if (err == Timers::SUCCESS) err = RefreshAutoTimers(changesAutotimers); if (err == Timers::SUCCESS) err = RefreshTimers(changesTimers); @@ -581,11 +578,6 @@ void AutoTimer::CalcGUID() guid = title + "/" + searchPhrase; } -bool Timers::CanAutoTimers() const -{ - return m_cli.GetBackendVersion() >= DMS_VERSION_NUM(2, 1, 0, 0); -} - bool Timers::IsAutoTimer(const kodi::addon::PVRTimer &timer) { return timer.GetTimerType() == Timer::Type::EPG_AUTO_SEARCH; diff --git a/src/Timers.h b/src/Timers.h index 3c9d80eb..938155df 100644 --- a/src/Timers.h +++ b/src/Timers.h @@ -1,6 +1,6 @@ /* - * Copyright (C) 2005-2021 Team Kodi (https://kodi.tv) - * Copyright (C) 2013-2021 Manuel Mausz + * Copyright (C) 2005-2022 Team Kodi (https://kodi.tv) + * Copyright (C) 2013-2022 Manuel Mausz * * SPDX-License-Identifier: GPL-2.0-or-later * See LICENSE.md for more information. @@ -164,7 +164,6 @@ class Timers const char *xmltag, std::map &timerlist, bool &changes); Error RefreshTimers(bool &changes); Error RefreshAutoTimers(bool &changes); - bool CanAutoTimers() const; bool IsAutoTimer(const kodi::addon::PVRTimer &timer); Error ParseTimerFrom(const kodi::addon::PVRTimer &tmr, Timer &timer); diff --git a/src/TimeshiftBuffer.cpp b/src/TimeshiftBuffer.cpp index b8bfd702..d746d254 100644 --- a/src/TimeshiftBuffer.cpp +++ b/src/TimeshiftBuffer.cpp @@ -1,6 +1,6 @@ /* - * Copyright (C) 2005-2021 Team Kodi (https://kodi.tv) - * Copyright (C) 2013-2021 Manuel Mausz + * Copyright (C) 2005-2022 Team Kodi (https://kodi.tv) + * Copyright (C) 2013-2022 Manuel Mausz * * SPDX-License-Identifier: GPL-2.0-or-later * See LICENSE.md for more information. diff --git a/src/TimeshiftBuffer.h b/src/TimeshiftBuffer.h index e9193ece..c0bf9ff0 100644 --- a/src/TimeshiftBuffer.h +++ b/src/TimeshiftBuffer.h @@ -1,6 +1,6 @@ /* - * Copyright (C) 2005-2021 Team Kodi (https://kodi.tv) - * Copyright (C) 2013-2021 Manuel Mausz + * Copyright (C) 2005-2022 Team Kodi (https://kodi.tv) + * Copyright (C) 2013-2022 Manuel Mausz * * SPDX-License-Identifier: GPL-2.0-or-later * See LICENSE.md for more information. diff --git a/src/client.cpp b/src/client.cpp index 963669ce..99ea69d9 100644 --- a/src/client.cpp +++ b/src/client.cpp @@ -1,6 +1,6 @@ /* - * Copyright (C) 2005-2021 Team Kodi (https://kodi.tv) - * Copyright (C) 2013-2021 Manuel Mausz + * Copyright (C) 2005-2022 Team Kodi (https://kodi.tv) + * Copyright (C) 2013-2022 Manuel Mausz * * SPDX-License-Identifier: GPL-2.0-or-later * See LICENSE.md for more information. diff --git a/src/client.h b/src/client.h index b1d561e4..0122751c 100644 --- a/src/client.h +++ b/src/client.h @@ -1,6 +1,6 @@ /* - * Copyright (C) 2005-2021 Team Kodi (https://kodi.tv) - * Copyright (C) 2013-2021 Manuel Mausz + * Copyright (C) 2005-2022 Team Kodi (https://kodi.tv) + * Copyright (C) 2013-2022 Manuel Mausz * * SPDX-License-Identifier: GPL-2.0-or-later * See LICENSE.md for more information.