Deluge Firmware
1.3.0
Build date: 2026.08.22
Toggle main menu visibility
Loading...
Searching...
No Matches
sample_cluster.h
1
/*
2
* Copyright © 2017-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 "definitions_cxx.hpp"
21
22
class
Cluster
;
23
class
Sample
;
24
25
// This is a quick list item within Sample storing minimal info about one Cluster (which often won't be loaded yet) of
26
// audio data for that Sample.
27
class
SampleCluster {
28
public
:
29
SampleCluster() =
default
;
30
~SampleCluster();
31
32
// TODO: This should return a std::expected<Cluster*, Error), removing the last parameter
33
Cluster
* getCluster(
Sample
* sample, uint32_t clusterIndex, int32_t loadInstruction = CLUSTER_ENQUEUE,
34
uint32_t priorityRating = 0xFFFFFFFF, Error* error =
nullptr
);
35
void
ensureNoReason(
Sample
* sample);
36
37
// In sectors. (Those 512 byte things. Not to be confused with clusters.)
38
// 0 means invalid, and we check for this as a last resort before writing
39
uint32_t sdAddress = 0;
40
41
Cluster
* cluster =
nullptr
;
// May automatically be set to NULL if the Cluster needs to be deallocated (can only
42
// happen if it has no "reasons" left)
43
int8_t minValue = 127;
44
int8_t maxValue = -128;
45
bool
investigatedWholeLength =
false
;
46
};
Cluster
Definition
cluster.h:34
Sample
Definition
sample.h:50