summaryrefslogtreecommitdiffstats
path: root/xbmc/utils/InfoLoader.cpp
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-10 18:07:22 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-10 18:07:22 +0000
commitc04dcc2e7d834218ef2d4194331e383402495ae1 (patch)
tree7333e38d10d75386e60f336b80c2443c1166031d /xbmc/utils/InfoLoader.cpp
parentInitial commit. (diff)
downloadkodi-c04dcc2e7d834218ef2d4194331e383402495ae1.tar.xz
kodi-c04dcc2e7d834218ef2d4194331e383402495ae1.zip
Adding upstream version 2:20.4+dfsg.upstream/2%20.4+dfsg
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'xbmc/utils/InfoLoader.cpp')
-rw-r--r--xbmc/utils/InfoLoader.cpp60
1 files changed, 60 insertions, 0 deletions
diff --git a/xbmc/utils/InfoLoader.cpp b/xbmc/utils/InfoLoader.cpp
new file mode 100644
index 0000000..be4697c
--- /dev/null
+++ b/xbmc/utils/InfoLoader.cpp
@@ -0,0 +1,60 @@
+/*
+ * Copyright (C) 2005-2018 Team Kodi
+ * This file is part of Kodi - https://kodi.tv
+ *
+ * SPDX-License-Identifier: GPL-2.0-or-later
+ * See LICENSES/README.md for more information.
+ */
+
+#include "InfoLoader.h"
+
+#include "JobManager.h"
+#include "ServiceBroker.h"
+#include "TimeUtils.h"
+#include "guilib/LocalizeStrings.h"
+
+CInfoLoader::CInfoLoader(unsigned int timeToRefresh)
+{
+ m_refreshTime = 0;
+ m_timeToRefresh = timeToRefresh;
+ m_busy = false;
+}
+
+CInfoLoader::~CInfoLoader() = default;
+
+void CInfoLoader::OnJobComplete(unsigned int jobID, bool success, CJob *job)
+{
+ m_refreshTime = CTimeUtils::GetFrameTime() + m_timeToRefresh;
+ m_busy = false;
+}
+
+std::string CInfoLoader::GetInfo(int info)
+{
+ // Refresh if need be
+ if (m_refreshTime < CTimeUtils::GetFrameTime() && !m_busy)
+ { // queue up the job
+ m_busy = true;
+ CServiceBroker::GetJobManager()->AddJob(GetJob(), this);
+ }
+ if (m_busy && CTimeUtils::GetFrameTime() - m_refreshTime > 1000)
+ {
+ return BusyInfo(info);
+ }
+ return TranslateInfo(info);
+}
+
+std::string CInfoLoader::BusyInfo(int info) const
+{
+ return g_localizeStrings.Get(503);
+}
+
+std::string CInfoLoader::TranslateInfo(int info) const
+{
+ return "";
+}
+
+void CInfoLoader::Refresh()
+{
+ m_refreshTime = CTimeUtils::GetFrameTime();
+}
+