-
Notifications
You must be signed in to change notification settings - Fork 1
/
ffbdevice.cpp
65 lines (49 loc) · 1.48 KB
/
ffbdevice.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#include "ffbdevice.h"
const std::vector<ConditionSubtypes>& FFBDevice::availableConditionSubtypesList() const
{
return m_availableConditionSubtypes;
}
const std::vector<FFBEffectTypes>& FFBDevice::availableEffectsList() const
{
return m_availableEffects;
}
const std::vector<PeriodicWaveforms>& FFBDevice::availableWaveformsList() const
{
return m_availablePeriodicWaveforms;
}
const std::shared_ptr<FFBEffectParameters> FFBDevice::effectParameters(const int idx)
{
if (idx >= c_maxEffectCount || idx < 0)
return nullptr;
if (m_effects[idx] == nullptr)
return nullptr;
return m_effects[idx]->parameters();
}
FFBEffect::FFBEffectStatus FFBDevice::effectStatusByIdx(const int idx) const
{
if (idx >= c_maxEffectCount || idx < 0)
return FFBEffect::FFBEffectStatus::NOT_LOADED;
if (m_effects[idx] == nullptr)
return FFBEffect::FFBEffectStatus::NOT_LOADED;
return m_effects[idx]->status();
}
FFBEffectTypes FFBDevice::effectTypeByEffectIdx(const int idx) const
{
if (idx >= c_maxEffectCount || idx < 0)
return FFBEffectTypes::NONE;
if (m_effects[idx] == nullptr)
return FFBEffectTypes::NONE;
return m_effects[idx]->type();
}
bool FFBDevice::hasEffect(FFBEffectTypes id) const
{
for (const FFBEffectTypes e : m_availableEffects)
if (e == id) return true;
return false;
}
bool FFBDevice::hasPeriodicWaveform(PeriodicWaveforms id) const
{
for (const PeriodicWaveforms w : m_availablePeriodicWaveforms)
if (w == id) return true;
return false;
}