Page Menu
Home
Phorge
Search
Configure Global Search
Log In
Files
F1037403
matrix-device-list.cpp
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Award Token
Flag For Later
Size
1 KB
Referenced Files
None
Subscribers
None
matrix-device-list.cpp
View Options
/*
* This file is part of kazv.
* SPDX-FileCopyrightText: 2023 tusooa <tusooa@kazv.moe>
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
#include
<libkazv-config.hpp>
#include
<immer/config.hpp>
// https://github.com/arximboldi/immer/issues/168
#include
<lager/lenses/optional.hpp>
#include
"matrix-device.hpp"
#include
"matrix-device-list.hpp"
using
namespace
Kazv
;
MatrixDeviceList
::
MatrixDeviceList
(
lager
::
reader
<
immer
::
flex_vector
<
DeviceKeyInfo
>>
devices
,
QObject
*
parent
)
:
QObject
(
parent
)
,
m_devices
(
devices
)
,
LAGER_QT
(
count
)(
m_devices
.
map
([](
const
auto
&
vec
)
->
int
{
return
vec
.
size
();
}))
{
}
MatrixDeviceList
::~
MatrixDeviceList
()
=
default
;
MatrixDevice
*
MatrixDeviceList::at
(
int
index
)
const
{
return
new
MatrixDevice
(
m_devices
.
map
([
index
](
const
auto
&
devices
)
{
if
(
index
<
static_cast
<
int
>
(
devices
.
size
()))
{
return
devices
[
index
];
}
else
{
return
DeviceKeyInfo
{};
}
}));
}
MatrixDevice
*
MatrixDeviceList::deviceById
(
QString
deviceId
)
const
{
return
new
MatrixDevice
(
m_devices
.
map
([
deviceId
=
deviceId
.
toStdString
()](
const
auto
&
devices
)
{
auto
it
=
std
::
find_if
(
devices
.
begin
(),
devices
.
end
(),
[
deviceId
](
const
auto
&
dev
)
{
return
dev
.
deviceId
==
deviceId
;
});
if
(
it
!=
devices
.
end
())
{
return
*
it
;
}
else
{
return
DeviceKeyInfo
{};
}
}));
}
File Metadata
Details
Attached
Mime Type
text/x-c
Expires
Wed, May 14, 7:13 AM (1 d, 11 h)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
90189
Default Alt Text
matrix-device-list.cpp (1 KB)
Attached To
Mode
rK kazv
Attached
Detach File
Event Timeline
Log In to Comment