libsidplayfp
3.0.0
Main Page
Classes
Files
Examples
File List
src
builders
sidlite-builder
sidlite
ADSR.h
1
/*
2
* This file is part of libsidplayfp, a SID player engine.
3
*
4
* Copyright (C) 2025-2026 Leandro Nini
5
*
6
* This program is free software; you can redistribute it and/or modify
7
* it under the terms of the GNU General Public License as published by
8
* the Free Software Foundation; either version 2 of the License, or
9
* (at your option) any later version.
10
*
11
* This program is distributed in the hope that it will be useful,
12
* but WITHOUT ANY WARRANTY; without even the implied warranty of
13
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
* GNU General Public License for more details.
15
*
16
* You should have received a copy of the GNU General Public License
17
* along with this program; if not, write to the Free Software
18
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
19
*/
20
21
// Based on cRSID lightweight RealSID by Hermit (Mihaly Horvath)
22
23
#ifndef SIDLITE_ADSR_H
24
#define SIDLITE_ADSR_H
25
26
namespace
SIDLite
27
{
28
29
class
ADSR
30
{
31
public
:
32
explicit
ADSR(
unsigned
char
*regs);
33
void
reset();
34
void
clock(
char
cycles);
35
36
inline
unsigned
char
counter(
int
channel)
const
{
return
EnvelopeCounter[channel]; }
37
38
private
:
39
unsigned
char
*regs;
40
41
unsigned
short
RateCounter[3];
42
unsigned
char
ADSRstate[3];
43
unsigned
char
EnvelopeCounter[3];
44
unsigned
char
ExponentCounter[3];
45
};
46
47
}
48
49
#endif
// SIDLITE_ADSR_H
Generated by
1.15.0