ScummVM API documentation
hmi_interface.h
1/* ScummVM - Graphic Adventure Engine
2 *
3 * ScummVM is the legal property of its developers, whose names
4 * are too numerous to list here. Please refer to the COPYRIGHT
5 * file distributed with this source distribution.
6 *
7 * This program is free software: you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation, either version 3 of the License, or
10 * (at your option) any later version.
11 *
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with this program. If not, see <http://www.gnu.org/licenses/>.
19 *
20 */
21
22#ifndef AUDIO_EFFECTS_HMI_INTERFACE_H
23#define AUDIO_EFFECTS_HMI_INTERFACE_H
24
25#include "audio/effects/hmi/hmi_types.h"
26
27namespace Audio {
28
29typedef const char *const *HMIParamNames;
30
32public:
33 virtual ~HMIInterface() {}
34
35 virtual int init(HMIPreset *preset, HMIEffectNode *base) = 0;
36 virtual int uninit(HMIPreset *preset, HMIEffectNode *base) = 0;
37 virtual int getMinDuration(HMIEffectNode *n, uint32 *out);
38 virtual int processBlock(HMIPreset *preset, HMIEffectNode *base) = 0;
39 virtual int initEffect(HMIPreset *preset, HMIEffectNode *base) = 0;
40 virtual int getEffectParam(HMIEffectNode *base, int param, float *value, int *type) = 0;
41 virtual int setEffectParam(HMIEffectNode *base, int param, float value) = 0;
42
43 int effectStructSize() const { return _effectStructSize; }
44 int outChannels() const { return _outChannels; }
45 const char *interfaceName() const { return _interfaceName; }
46 HMIParamNames effectParams() const { return _effectParams; }
47 const float *paramMinValues() const { return _paramMinValues; }
48 const float *paramMaxValues() const { return _paramMaxValues; }
49 const float *paramDefaultValues() const { return _paramDefaultValues; }
50 const char *presetName() const { return _presetName; }
51 int presetId() const { return _presetId; }
52 int paramCount() const { return _paramCount; }
53
54protected:
55 static const double kHmiPi;
56 static const double kHmiTwoPi;
57 static const double kHmiMillis;
58
59 HMIInterface(int size, int channels,
60 const char *dialogName, HMIParamNames params, const float *mins,
61 const float *maxs, const float *defaults, const char *name, int id,
62 int paramCount);
63
64private:
65 int _effectStructSize = 0;
66 int _outChannels = 0;
67 const char *_interfaceName = nullptr;
68 HMIParamNames _effectParams = nullptr;
69 const float *_paramMinValues = nullptr;
70 const float *_paramMaxValues = nullptr;
71 const float *_paramDefaultValues = nullptr;
72 char _presetName[64] = {0};
73 int _presetId = 0;
74 int _paramCount = 0;
75};
76
77} // End of namespace Audio
78
79#endif
Definition: hmi_interface.h:31
Definition: system.h:39
Definition: hmi_types.h:70
Definition: hmi_types.h:89