Deluge Firmware
1.3.0
Build date: 2026.08.22
Toggle main menu visibility
Loading...
Searching...
No Matches
iterance.h
1
/*
2
* Copyright © 2014-2023 Synthstrom Audible Limited
3
*
4
* This file is part of The Synthstrom Audible Deluge Firmware.
5
*
6
* The Synthstrom Audible Deluge Firmware is free software: you can redistribute it and/or modify it under the
7
* terms of the GNU General Public License as published by the Free Software Foundation,
8
* either version 3 of the License, or (at your option) any later version.
9
*
10
* This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
11
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
12
* See the GNU General Public License for more details.
13
*
14
* You should have received a copy of the GNU General Public License along with this program.
15
* If not, see <https://www.gnu.org/licenses/>.
16
*/
17
18
#pragma once
19
20
#include <bitset>
21
#include <cstdint>
22
23
struct
Iterance
{
24
uint8_t divisor;
25
std::bitset<8> iteranceStep;
26
27
bool
operator==(
Iterance
const
& other)
const
{
28
return
other.divisor == divisor && other.iteranceStep == iteranceStep;
29
}
30
31
[[nodiscard]]
bool
passesCheck(int32_t repeatCount)
const
{
return
iteranceStep[repeatCount % divisor]; }
32
33
[[nodiscard]] uint16_t toInt();
34
static
Iterance
fromInt(int32_t value);
35
36
[[nodiscard]] int32_t toPresetIndex();
37
static
Iterance
fromPresetIndex(int32_t presetIndex);
38
};
Iterance
Definition
iterance.h:23