Skip to content

Commit c862f48

Browse files
committed
Added the ability to set a device parameter.
1 parent 6a4d915 commit c862f48

File tree

1 file changed

+25
-1
lines changed

1 file changed

+25
-1
lines changed

LO2DeviceComponent.py

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,7 @@ def _device_range(self, msg, src):
8080
if p is not None:
8181
if p < len(self._device.parameters):
8282
prm = self._device.parameters[p]
83+
# type 2 = master track
8384
if self._type == 2:
8485
self.send('/live/'+self._track_types[self._type]+'device/range', self._device_id, p, prm.min, prm.max)
8586
else:
@@ -90,6 +91,7 @@ def _device_range(self, msg, src):
9091
for i,p in enumerate(self._device.parameters):
9192
prms.extend([i,p.min,p.max])
9293

94+
# type 2 = master track
9395
if self._type == 2:
9496
self.send('/live/'+self._track_types[self._type]+'device/range', self._device_id, *prms)
9597
else:
@@ -98,26 +100,48 @@ def _device_range(self, msg, src):
98100

99101

100102
def _device_param(self, msg, src):
103+
self.log_message('_device_param message received')
104+
self.log_message(str(msg))
105+
101106
if self._is_device(msg) and self._device is not None:
102107
if self._type == 2:
103108
p = msg[3] if len(msg) >= 4 else None
109+
v = msg[4] if len(msg) >= 5 else None
104110
else:
105111
p = msg[4] if len(msg) >= 5 else None
112+
v = msg[5] if len(msg) >= 6 else None
106113

107-
114+
self.log_message('number of parameters = ' + str(len(self._device.parameters)))
115+
self.log_message('p is ' + str(p))
116+
self.log_message('v is ' + str(v))
117+
self.log_message('p.value is ' + str(self._device.parameters[p].value))
118+
108119
if p is not None:
109120
if p < len(self._device.parameters):
110121
prm = self._device.parameters[p]
122+
123+
# If a parameter value was passed, set it.
124+
if v is not None:
125+
self.log_message('parameter ' + prm.name )
126+
self.log_message('max = ' + str(prm.max))
127+
self.log_message('min = ' + str(prm.min))
128+
prm.value = v
129+
self.log_message('Set prm.value to ' + str(prm.value))
130+
131+
# Send the current value of the parameter.
132+
# type 2 = master track
111133
if self._type == 2:
112134
self.send('/live/'+self._track_types[self._type]+'device/param', p, prm.value, prm.name)
113135
else:
114136
self.send_default('/live/'+self._track_types[self._type]+'device/param', p, prm.value, prm.name)
115137

138+
# If a parameter id wasn't sent, send all the information about available parameters for this device.
116139
else:
117140
prms = []
118141
for i,p in enumerate(self._device.parameters):
119142
prms.extend([i,p.value,p.name])
120143

144+
# type 2 = master track
121145
if self._type == 2:
122146
self.send('/live/'+self._track_types[self._type]+'device/param', *prms)
123147
else:

0 commit comments

Comments
 (0)