libpromeki
1.0.0-alpha
PROfessional MEdia toolKIt
Loading...
Searching...
No Matches
audiogen.h
Go to the documentation of this file.
1
8
#pragma once
9
10
11
#include <promeki/config.h>
12
#if PROMEKI_ENABLE_PROAV
13
#include <
promeki/namespace.h
>
14
#include <
promeki/audiolevel.h
>
15
#include <
promeki/audiodesc.h
>
16
#include <
promeki/list.h
>
17
18
PROMEKI_NAMESPACE_BEGIN
19
43
class
AudioGen {
44
public
:
46
enum
Type {
47
Silence = 0,
48
Sine
49
};
50
52
struct
Config {
53
Type type;
54
float
freq;
55
AudioLevel level;
56
float
phase;
57
float
dutyCycle;
58
float
linearGain;
59
};
60
65
AudioGen(
const
AudioDesc &desc);
66
81
bool
generate(
float
*out,
size_t
samples);
82
88
const
Config &config(
size_t
chan)
const
{
return
_chanConfig[chan]; }
89
95
void
setConfig(
size_t
chan, Config val);
96
97
private
:
98
AudioDesc _desc;
99
List<Config> _chanConfig;
100
size_t
_sampleCount = 0;
101
102
void
genSilence(
size_t
chan,
float
*data,
size_t
samples)
const
;
103
void
genSine(
size_t
chan,
float
*data,
size_t
samples)
const
;
104
};
105
106
PROMEKI_NAMESPACE_END
107
108
#endif
// PROMEKI_ENABLE_PROAV
audiodesc.h
audiolevel.h
list.h
namespace.h
include
promeki
audiogen.h
Generated on 2026-05-21 02:27:58 from commit ffbc5cc (1.0.0-alpha).