MCPcopy Create free account
hub / github.com/WarmUpTill/SceneSwitcher / GetNextMacro

Method GetNextMacro

plugins/base/macro-action-sequence.cpp:37–68  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

35}
36
37MacroRef MacroActionSequence::GetNextMacro(bool advance)
38{
39 int idx = _lastIdx;
40 MacroRef res;
41
42 int nextUnpausedIdx = getNextUnpausedMacroIdx(_macros, idx + 1);
43 if (nextUnpausedIdx != -1) {
44 res = _macros[nextUnpausedIdx];
45 idx = nextUnpausedIdx;
46 } else {
47 if (_restart) {
48 idx = getNextUnpausedMacroIdx(_macros, 0);
49 if (idx != -1) {
50 res = _macros[idx];
51 } else {
52 // End of sequence reached, as all available
53 // macros are either paused or the macro list
54 // is empty
55 idx = _macros.size();
56 }
57 } else {
58 // End of sequence reached
59 idx = _macros.size();
60 }
61 }
62
63 if (advance) {
64 _lastIdx = idx;
65 _lastSequenceMacro = res;
66 }
67 return res;
68}
69
70std::shared_ptr<MacroAction> MacroActionSequence::Create(Macro *m)
71{

Callers 2

SetSequenceIndexMethod · 0.80
UpdateStatusLineMethod · 0.80

Calls 2

getNextUnpausedMacroIdxFunction · 0.85
sizeMethod · 0.80

Tested by

no test coverage detected