summaryrefslogtreecommitdiffstats
path: root/xbmc/pvr/guilib/PVRGUIProgressHandler.h
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/pvr/guilib/PVRGUIProgressHandler.h
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/pvr/guilib/PVRGUIProgressHandler.h')
-rw-r--r--xbmc/pvr/guilib/PVRGUIProgressHandler.h59
1 files changed, 59 insertions, 0 deletions
diff --git a/xbmc/pvr/guilib/PVRGUIProgressHandler.h b/xbmc/pvr/guilib/PVRGUIProgressHandler.h
new file mode 100644
index 0000000..6e7b72f
--- /dev/null
+++ b/xbmc/pvr/guilib/PVRGUIProgressHandler.h
@@ -0,0 +1,59 @@
+/*
+ * Copyright (C) 2017-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.
+ */
+
+#pragma once
+
+#include "threads/CriticalSection.h"
+#include "threads/Thread.h"
+
+#include <string>
+
+namespace PVR
+{
+ class CPVRGUIProgressHandler : private CThread
+ {
+ public:
+ CPVRGUIProgressHandler() = delete;
+
+ /*!
+ * @brief Creates and asynchronously shows a progress dialog with the given title.
+ * @param strTitle The title for the progress dialog.
+ */
+ explicit CPVRGUIProgressHandler(const std::string& strTitle);
+
+ ~CPVRGUIProgressHandler() override = default;
+
+ /*!
+ * @brief Update the progress dialogs's content.
+ * @param strText The new progress text.
+ * @param fProgress The new progress value, in a range from 0.0 to 100.0.
+ */
+ void UpdateProgress(const std::string& strText, float fProgress);
+
+ /*!
+ * @brief Update the progress dialogs's content.
+ * @param strText The new progress text.
+ * @param iCurrent The new current progress value, must be less or equal iMax.
+ * @param iMax The new maximum progress value, must be greater or equal iCurrent.
+ */
+ void UpdateProgress(const std::string& strText, int iCurrent, int iMax);
+
+ protected:
+ // CThread implementation
+ void Process() override;
+
+ private:
+ CCriticalSection m_critSection;
+ const std::string m_strTitle;
+ std::string m_strText;
+ float m_fProgress{0.0f};
+ bool m_bChanged{false};
+ bool m_bCreated{false};
+ };
+
+} // namespace PVR