2 * Copyright (C) 2015-2018 Team Kodi
3 * This file is part of Kodi - https://kodi.tv
5 * SPDX-License-Identifier: GPL-2.0-or-later
6 * See LICENSES/README.md for more information.
11 #include "guilib/LocalizeStrings.h"
12 #include "utils/StringUtils.h"
17 CBaseEvent::CBaseEvent(const std::string
& identifier
, const CVariant
& label
, const CVariant
& description
, EventLevel level
/* = EventLevel::Information */)
19 m_identifier(identifier
),
22 m_description(description
),
25 m_timestamp(GetInternalTimestamp()),
26 m_dateTime(CDateTime::GetCurrentDateTime())
29 CBaseEvent::CBaseEvent(const std::string
& identifier
, const CVariant
& label
, const CVariant
& description
, const std::string
& icon
, EventLevel level
/* = EventLevel::Information */)
31 m_identifier(identifier
),
34 m_description(description
),
37 m_timestamp(GetInternalTimestamp()),
38 m_dateTime(CDateTime::GetCurrentDateTime())
41 CBaseEvent::CBaseEvent(const std::string
& identifier
, const CVariant
& label
, const CVariant
& description
, const std::string
& icon
, const CVariant
& details
, EventLevel level
/* = EventLevel::Information */)
43 m_identifier(identifier
),
46 m_description(description
),
49 m_timestamp(GetInternalTimestamp()),
50 m_dateTime(CDateTime::GetCurrentDateTime())
53 CBaseEvent::CBaseEvent(const std::string
& identifier
, const CVariant
& label
, const CVariant
& description
, const std::string
& icon
, const CVariant
& details
, const CVariant
& executionLabel
, EventLevel level
/* = EventLevel::Information */)
55 m_identifier(identifier
),
58 m_description(description
),
60 m_executionLabel(executionLabel
),
61 m_timestamp(GetInternalTimestamp()),
62 m_dateTime(CDateTime::GetCurrentDateTime())
65 uint64_t CBaseEvent::GetInternalTimestamp()
67 return std::chrono::time_point_cast
<std::chrono::microseconds
>(std::chrono::steady_clock::now()).time_since_epoch().count();
70 std::string
CBaseEvent::GetLabel() const
72 return VariantToLocalizedString(m_label
);
75 std::string
CBaseEvent::GetDescription() const
77 return VariantToLocalizedString(m_description
);
80 std::string
CBaseEvent::GetDetails() const
82 return VariantToLocalizedString(m_details
);
85 std::string
CBaseEvent::GetExecutionLabel() const
87 return VariantToLocalizedString(m_executionLabel
);
90 std::string
CBaseEvent::VariantToLocalizedString(const CVariant
& variant
)
92 if (variant
.isString())
93 return variant
.asString();
95 if (variant
.isInteger() && variant
.asInteger() > 0)
96 return g_localizeStrings
.Get(static_cast<uint32_t>(variant
.asInteger()));
97 if (variant
.isUnsignedInteger() && variant
.asUnsignedInteger() > 0)
98 return g_localizeStrings
.Get(static_cast<uint32_t>(variant
.asUnsignedInteger()));
103 void CBaseEvent::ToSortable(SortItem
& sortable
, Field field
) const
105 if (field
== FieldDate
)
106 sortable
[FieldDate
] = StringUtils::Format("{:020}", m_timestamp
);