Jamba C++ API 7.5.0
Loading...
Searching...
No Matches
ParamAware.hpp
Go to the documentation of this file.
1/*
2 * Copyright (c) 2018-2019 pongasoft
3 *
4 * Licensed under the Apache License, Version 2.0 or the MIT license,
5 * at your option. You may not use this file except in compliance with
6 * one of these licenses. You may obtain copies of the licenses at:
7 *
8 * https://www.apache.org/licenses/LICENSE-2.0
9 * https://opensource.org/licenses/MIT
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
13 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
14 * License for the specific language governing permissions and limitations under
15 * the License.
16 *
17 * @author Yan Pujante
18 */
19#pragma once
20
21#include "ParamAware.h"
22#include "GUIParamCxMgr.h"
23
25
26
27//------------------------------------------------------------------------
28// ParamAware::registerOptionalParam
29//------------------------------------------------------------------------
30template<typename T>
31GUIOptionalParam<T> ParamAware::registerOptionalParam(ParamID iParamID, bool iSubscribeToChanges)
32{
33 if(fParamCxMgr)
34 {
35 return fParamCxMgr->registerOptionalParam<T>(iParamID, iSubscribeToChanges ? this : nullptr);
36 }
37 else
38 return GUIOptionalParam<T>();
39}
40
41//------------------------------------------------------------------------
42// ParamAware::registerOptionalCallback
43//------------------------------------------------------------------------
44template<typename T>
46 Parameters::ChangeCallback iChangeCallback,
47 bool iInvokeCallback)
48{
49 if(fParamCxMgr)
50 {
51 return fParamCxMgr->registerOptionalCallback<T>(iParamID, std::move(iChangeCallback), iInvokeCallback);
52 }
53 else
54 return GUIOptionalParam<T>();
55}
56
57//------------------------------------------------------------------------
58// ParamAware::registerOptionalCallback
59//------------------------------------------------------------------------
60template<typename T>
63 bool iInvokeCallback)
64{
65 if(fParamCxMgr)
66 {
67 return fParamCxMgr->registerOptionalCallback<T>(iParamID, std::move(iChangeCallback), iInvokeCallback);
68 }
69 else
70 return GUIOptionalParam<T>();
71}
72
73//------------------------------------------------------------------------
74// ParamAware::registerVstParam
75//------------------------------------------------------------------------
76template<typename T>
77GUIVstParam<T> ParamAware::registerVstParam(ParamID iParamID, bool iSubscribeToChanges)
78{
79 if(fParamCxMgr)
80 return fParamCxMgr->registerVstParam<T>(iParamID, iSubscribeToChanges ? this : nullptr);
81 else
82 return GUIVstParam<T>{};
83}
84
85//------------------------------------------------------------------------
86// ParamAware::registerVstCallback
87//------------------------------------------------------------------------
88template<typename T>
90 Parameters::ChangeCallback iChangeCallback,
91 bool iInvokeCallback)
92{
93 if(fParamCxMgr)
94 return fParamCxMgr->registerVstCallback<T>(iParamID, std::move(iChangeCallback), iInvokeCallback);
95 else
96 return GUIVstParam<T>{};
97}
98
99//------------------------------------------------------------------------
100// ParamAware::registerVstCallback
101//------------------------------------------------------------------------
102template<typename T>
105 bool iInvokeCallback)
106{
107 if(fParamCxMgr)
108 return fParamCxMgr->registerVstCallback<T>(iParamID, std::move(iChangeCallback), iInvokeCallback);
109 else
110 return GUIVstParam<T>{};
111}
112
113//------------------------------------------------------------------------
114// ParamAware::registerJmbParam
115//------------------------------------------------------------------------
116template<typename T>
117GUIJmbParam<T> ParamAware::registerJmbParam(ParamID iParamID, bool iSubscribeToChanges)
118{
119 if(fParamCxMgr)
120 return fParamCxMgr->registerJmbParam<T>(iParamID, iSubscribeToChanges ? this : nullptr);
121 else
122 return GUIJmbParam<T>{};
123}
124
125//------------------------------------------------------------------------
126// ParamAware::registerJmbCallback
127//------------------------------------------------------------------------
128template<typename T>
130 Parameters::ChangeCallback iChangeCallback,
131 bool iInvokeCallback)
132{
133 if(fParamCxMgr)
134 return fParamCxMgr->registerJmbCallback<T>(iParamID, std::move(iChangeCallback), iInvokeCallback);
135 else
136 return GUIJmbParam<T>{};
137}
138
139//------------------------------------------------------------------------
140// ParamAware::registerJmbCallback
141//------------------------------------------------------------------------
142template<typename T>
145 bool iInvokeCallback)
146{
147 if(fParamCxMgr)
148 return fParamCxMgr->registerJmbCallback<T>(iParamID, std::move(iChangeCallback), iInvokeCallback);
149 else
150 return GUIJmbParam<T>{};
151}
152
153}
This is the main class that the plugin should use as it exposes only the necessary methods of the par...
Definition GUIJmbParameter.h:497
Represents an optional parameter (Jmb, Vst or no param at all).
Definition GUIOptionalParam.h:50
This is the main class that the plugin should use as it exposes only the necessary methods of the par...
Definition GUIVstParameter.h:280
GUIVstParam< T > registerVstParam(ParamID iParamID, bool iSubscribeToChanges=true)
Register a Vst parameter simply given its id onParameterChange() will be called on changes (if iSubsc...
Definition ParamAware.hpp:77
GUIOptionalParam< T > registerOptionalParam(ParamID iParamID, bool iSubscribeToChanges=true)
Registers an optional parameter which handles Vst, Jmb or no parameter at all.
Definition ParamAware.hpp:31
std::unique_ptr< GUIParamCxMgr > fParamCxMgr
Definition ParamAware.h:552
GUIVstParam< T > registerVstCallback(ParamID iParamID, Parameters::ChangeCallback iChangeCallback, bool iInvokeCallback=false)
Register a callback for a Vst parameter simply given its id The callback will be invoked when the par...
Definition ParamAware.hpp:89
GUIJmbParam< T > registerJmbCallback(ParamID iParamID, Parameters::ChangeCallback iChangeCallback, bool iInvokeCallback=false)
Registers a callback for the Jmb param by its id and return the wrapper to the param.
Definition ParamAware.hpp:129
GUIJmbParam< T > registerJmbParam(ParamID iParamID, bool iSubscribeToChanges=true)
Registers the Jmb param by its id and return the wrapper to the param.
Definition ParamAware.hpp:117
GUIOptionalParam< T > registerOptionalCallback(ParamID iParamID, Parameters::ChangeCallback iChangeCallback, bool iInvokeCallback=false)
Registers an optional parameter which handles Vst, Jmb or no parameter at all.
Definition ParamAware.hpp:45
std::function< void()> ChangeCallback
A callback that will be invoked for changes.
Definition Parameters.h:56
std::function< void(Param &)> ChangeCallback1
A callback which will be invoked for changes with the param as an argument.
Definition Parameters.h:62
Definition GUIState.h:38