[SCM] kodi-pvr-hts/master: Fix async state handling.
tiber-guest at users.alioth.debian.org
tiber-guest at users.alioth.debian.org
Fri Nov 4 23:23:40 UTC 2016
The following commit has been merged in the master branch:
commit 6f1561909704371c5139e2f4c5750ee24711975c
Author: Kai Sommerfeld <kai.sommerfeld at gmx.com>
Date: Wed Apr 20 23:21:24 2016 +0200
Fix async state handling.
diff --git a/src/Tvheadend.cpp b/src/Tvheadend.cpp
index db9a47a..3877d84 100644
--- a/src/Tvheadend.cpp
+++ b/src/Tvheadend.cpp
@@ -1356,8 +1356,8 @@ bool CTvheadend::Connected ( void )
for (auto &entry : m_schedules)
entry.second.SetDirty(true);
- /* Request Async data */
- m_asyncState.SetState(ASYNC_NONE);
+ /* Request Async data, first is channels */
+ m_asyncState.SetState(ASYNC_CHN);
msg = htsmsg_create_map();
if (Settings::GetInstance().GetAsyncEpg())
@@ -1370,7 +1370,10 @@ bool CTvheadend::Connected ( void )
htsmsg_add_u32(msg, "epg", 0);
if ((msg = m_conn.SendAndWait0("enableAsyncMetadata", msg)) == NULL)
+ {
+ m_asyncState.SetState(ASYNC_NONE);
return false;
+ }
htsmsg_destroy(msg);
Logger::Log(LogLevel::LEVEL_DEBUG, "async updates requested");
@@ -1567,8 +1570,8 @@ void CTvheadend::SyncCompleted ( void )
void CTvheadend::SyncChannelsCompleted ( void )
{
- /* Already done */
- if (m_asyncState.GetState() > ASYNC_CHN)
+ /* check state engine */
+ if (m_asyncState.GetState() != ASYNC_CHN)
return;
/* Tags */
@@ -1593,8 +1596,8 @@ void CTvheadend::SyncChannelsCompleted ( void )
void CTvheadend::SyncDvrCompleted ( void )
{
- /* Done */
- if (m_asyncState.GetState() > ASYNC_DVR)
+ /* check state engine */
+ if (m_asyncState.GetState() != ASYNC_DVR)
return;
/* Recordings */
@@ -1618,8 +1621,15 @@ void CTvheadend::SyncDvrCompleted ( void )
void CTvheadend::SyncEpgCompleted ( void )
{
- /* Done */
- if (!Settings::GetInstance().GetAsyncEpg() || m_asyncState.GetState() > ASYNC_EPG)
+ /* check state engine */
+ if (!Settings::GetInstance().GetAsyncEpg())
+ {
+ m_asyncState.SetState(ASYNC_DONE);
+ return;
+ }
+
+ /* check state engine */
+ if (m_asyncState.GetState() != ASYNC_EPG)
return;
/* Schedules */
@@ -1661,6 +1671,9 @@ void CTvheadend::SyncEpgCompleted ( void )
evt.SetChannel(entry.second);
PushEpgEventUpdate(evt, EPG_EVENT_DELETED);
}
+
+ /* Next */
+ m_asyncState.SetState(ASYNC_DONE);
}
void CTvheadend::ParseTagAddOrUpdate ( htsmsg_t *msg, bool bAdd )
--
kodi-pvr-hts packaging
More information about the pkg-multimedia-commits
mailing list