@@ -3272,6 +3272,7 @@ def clear(self):
32723272 self .parameterData = []
32733273 self .parameterRanges = []
32743274 self .parameterValues = []
3275+ self .parameterScalePoints = []
32753276 self .programCount = 0
32763277 self .programCurrent = - 1
32773278 self .programNames = []
@@ -3484,7 +3485,7 @@ def get_parameter_info(self, pluginId, parameterId):
34843485 return self .fPluginsInfo .get (pluginId , self .fFallbackPluginInfo ).parameterInfo [parameterId ]
34853486
34863487 def get_parameter_scalepoint_info (self , pluginId , parameterId , scalePointId ):
3487- return PyCarlaScalePointInfo
3488+ return self . fPluginsInfo . get ( pluginId , self . fFallbackPluginInfo ). parameterScalePoints [ parameterId ][ scalePointId ]
34883489
34893490 def get_parameter_data (self , pluginId , parameterId ):
34903491 return self .fPluginsInfo .get (pluginId , self .fFallbackPluginInfo ).parameterData [parameterId ]
@@ -3765,13 +3766,34 @@ def _set_parameterCountInfo(self, pluginId, count, info):
37653766 plugin .parameterData = []
37663767 plugin .parameterRanges = []
37673768 plugin .parameterValues = []
3769+ plugin .parameterScalePoints = []
37683770
37693771 # add placeholders
37703772 for _ in range (count ):
37713773 plugin .parameterInfo .append (PyCarlaParameterInfo .copy ())
37723774 plugin .parameterData .append (PyParameterData .copy ())
37733775 plugin .parameterRanges .append (PyParameterRanges .copy ())
37743776 plugin .parameterValues .append (0.0 )
3777+ plugin .parameterScalePoints .append ([])
3778+
3779+ def _set_parameterScalePoint (self , pluginId , param , point , value , label ):
3780+ plugin = self .fPluginsInfo .get (pluginId , None )
3781+ if plugin is None :
3782+ print ("_set_parameterScalePointCount failed for" , pluginId )
3783+ return
3784+
3785+ if param < 0 or param >= plugin .parameterCount :
3786+ print ("_set_parameterScalePointCount failed for parameter" , param )
3787+ return
3788+
3789+ if point < 0 or point >= plugin .parameterInfo [param ]["scalePointCount" ]:
3790+ print ("_set_parameterScalePointCount failed for scale point" , point )
3791+ return
3792+
3793+ plugin .parameterScalePoints [param ][point ] = {
3794+ "value" : value ,
3795+ "label" : label ,
3796+ }
37753797
37763798 def _set_programCount (self , pluginId , count ):
37773799 plugin = self .fPluginsInfo .get (pluginId , None )
@@ -3810,6 +3832,11 @@ def _set_parameterInfo(self, pluginId, paramIndex, info):
38103832 else :
38113833 print ("_set_parameterInfo failed for" , pluginId , "and index" , paramIndex )
38123834
3835+ # add placeholders
3836+ plugin .parameterScalePoints [paramIndex ] = []
3837+ for _ in range (info ["scalePointCount" ]):
3838+ plugin .parameterScalePoints [paramIndex ].append ({})
3839+
38133840 def _set_parameterData (self , pluginId , paramIndex , data ):
38143841 plugin = self .fPluginsInfo .get (pluginId , None )
38153842 if plugin is None :
0 commit comments