Loading...
Searching...
No Matches
LibraryDeviceEnumerator.hpp
1#pragma once
2#include <Device/Protocol/ProtocolFactoryInterface.hpp>
3
4#include <score/tools/RecursiveWatch.hpp>
5
6#include <functional>
7
8#include <score_plugin_protocols_export.h>
9
10namespace Protocols
11{
12
13class SCORE_PLUGIN_PROTOCOLS_EXPORT LibraryDeviceEnumerator
15{
16public:
17 std::string m_pattern;
18 Device::ProtocolFactory::ConcreteKey m_key;
23 std::function<QVariant(QByteArray, const QString&)> m_createDeviceSettings;
25
28 std::string pattern, QStringList extension, Device::ProtocolFactory::ConcreteKey k,
29 std::function<QVariant(QByteArray)> createDev, const score::DocumentContext& ctx);
30
33 std::string pattern, QStringList extension, Device::ProtocolFactory::ConcreteKey k,
34 std::function<QVariant(QByteArray, const QString&)> createDev,
35 const score::DocumentContext& ctx);
36
37 void next(std::string_view path);
38 std::function<void()> asyncNext(std::string_view path);
39
40 void enumerate(std::function<void(const QString&, const Device::DeviceSettings&)>
41 onDevice) const override;
42};
43
44class SCORE_PLUGIN_PROTOCOLS_EXPORT SubfolderDeviceEnumerator
46{
47public:
48 using ret_type = std::vector<std::pair<QString, QVariant>>;
49 using func_type = std::function<ret_type(QString)>;
50 Device::ProtocolFactory::ConcreteKey m_key;
51 func_type m_createDeviceSettings;
52
54 QStringList rootFolder, Device::ProtocolFactory::ConcreteKey k,
55 func_type createDev, const score::DocumentContext& ctx);
56
57 void next(std::string_view path);
58
59 void enumerate(std::function<void(const QString&, const Device::DeviceSettings&)>
60 onDevice) const override;
61
62 int m_finished = 0;
63};
64}
Definition ProtocolFactoryInterface.hpp:32
Definition LibraryDeviceEnumerator.hpp:15
std::function< QVariant(QByteArray, const QString &)> m_createDeviceSettings
Definition LibraryDeviceEnumerator.hpp:23
Definition LibraryDeviceEnumerator.hpp:46
Definition RecursiveWatch.hpp:19
Definition DeviceSettings.hpp:20
Definition DocumentContext.hpp:18