summaryrefslogtreecommitdiffstats
path: root/xbmc/pvr/PVREventLogJob.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/pvr/PVREventLogJob.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/pvr/PVREventLogJob.cpp')
-rw-r--r--xbmc/pvr/PVREventLogJob.cpp56
1 files changed, 56 insertions, 0 deletions
diff --git a/xbmc/pvr/PVREventLogJob.cpp b/xbmc/pvr/PVREventLogJob.cpp
new file mode 100644
index 0000000..b70ad1c
--- /dev/null
+++ b/xbmc/pvr/PVREventLogJob.cpp
@@ -0,0 +1,56 @@
+/*
+ * Copyright (C) 2012-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 "PVREventLogJob.h"
+
+#include "ServiceBroker.h"
+#include "dialogs/GUIDialogKaiToast.h"
+#include "events/EventLog.h"
+#include "events/NotificationEvent.h"
+
+namespace PVR
+{
+
+CPVREventLogJob::CPVREventLogJob(bool bNotifyUser,
+ EventLevel eLevel,
+ const std::string& label,
+ const std::string& msg,
+ const std::string& icon)
+{
+ AddEvent(bNotifyUser, eLevel, label, msg, icon);
+}
+
+void CPVREventLogJob::AddEvent(bool bNotifyUser,
+ EventLevel eLevel,
+ const std::string& label,
+ const std::string& msg,
+ const std::string& icon)
+{
+ m_events.emplace_back(Event(bNotifyUser, eLevel, label, msg, icon));
+}
+
+bool CPVREventLogJob::DoWork()
+{
+ for (const auto& event : m_events)
+ {
+ if (event.m_bNotifyUser)
+ CGUIDialogKaiToast::QueueNotification(event.m_eLevel == EventLevel::Error
+ ? CGUIDialogKaiToast::Error
+ : CGUIDialogKaiToast::Info,
+ event.m_label, event.m_msg, 5000, true);
+
+ // Write event log entry.
+ auto eventLog = CServiceBroker::GetEventLog();
+ if (eventLog)
+ eventLog->Add(std::make_shared<CNotificationEvent>(event.m_label, event.m_msg, event.m_icon,
+ event.m_eLevel));
+ }
+ return true;
+}
+
+} // namespace PVR