Update 210319 #6
@@ -13,6 +13,7 @@ class Litsimaja(object):
|
|||||||
self._strip.begin()
|
self._strip.begin()
|
||||||
self._regions: Regions = Regions(self.count_pixels(), [46, 96, 191, 241])
|
self._regions: Regions = Regions(self.count_pixels(), [46, 96, 191, 241])
|
||||||
self._tempo: Tempo = Tempo(60)
|
self._tempo: Tempo = Tempo(60)
|
||||||
|
self._selected_program = None
|
||||||
|
|
||||||
def count_pixels(self) -> int:
|
def count_pixels(self) -> int:
|
||||||
return self._strip.numPixels()
|
return self._strip.numPixels()
|
||||||
@@ -47,9 +48,10 @@ class Litsimaja(object):
|
|||||||
def build_status_array(self):
|
def build_status_array(self):
|
||||||
data = {'success': True}
|
data = {'success': True}
|
||||||
features = {
|
features = {
|
||||||
|
'program': self._selected_program,
|
||||||
'tempo': {
|
'tempo': {
|
||||||
'bpm': self.get_tempo().get_bpm()
|
'bpm': self.get_tempo().get_bpm()
|
||||||
}
|
},
|
||||||
}
|
}
|
||||||
regions = []
|
regions = []
|
||||||
for region_id in self._regions.list_region_ids():
|
for region_id in self._regions.list_region_ids():
|
||||||
@@ -60,3 +62,6 @@ class Litsimaja(object):
|
|||||||
|
|
||||||
def get_tempo(self):
|
def get_tempo(self):
|
||||||
return self._tempo
|
return self._tempo
|
||||||
|
|
||||||
|
def set_selected_program(self, program_name: str):
|
||||||
|
self._selected_program = program_name
|
||||||
|
|||||||
@@ -15,6 +15,7 @@ def run(namespace: str, class_name: str, lm: Litsimaja, logger, args: [] = None)
|
|||||||
program = loaded_class(lm)
|
program = loaded_class(lm)
|
||||||
logger.info('Loaded "' + module.name() + '" from ' + namespace + '.' + class_name + ' with args: ' + repr(args))
|
logger.info('Loaded "' + module.name() + '" from ' + namespace + '.' + class_name + ' with args: ' + repr(args))
|
||||||
lm.add_loop(program.get_loop())
|
lm.add_loop(program.get_loop())
|
||||||
|
lm.set_selected_program(namespace + '.' + class_name)
|
||||||
program.run(args)
|
program.run(args)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -55,19 +55,23 @@
|
|||||||
let status = JSON.parse(json);
|
let status = JSON.parse(json);
|
||||||
document.getElementById('tempo').value = status.features.tempo.bpm;
|
document.getElementById('tempo').value = status.features.tempo.bpm;
|
||||||
let regions = status.features.region;
|
let regions = status.features.region;
|
||||||
let regLen = regions.length;
|
for (let i = 0, len = regions.length; i < len; i++) {
|
||||||
for(let i = 0; i < regLen; i++) {
|
|
||||||
if (regions[i]) {
|
if (regions[i]) {
|
||||||
document.getElementById('region_' + i).classList.remove('region_off');
|
document.getElementById('region_' + i).classList.remove('region_off');
|
||||||
} else {
|
} else {
|
||||||
document.getElementById('region_' + i).classList.add('region_off');
|
document.getElementById('region_' + i).classList.add('region_off');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
let programs = document.getElementsByName('program_select');
|
||||||
|
for (var i = 0, len = programs.length; i < len; i++) {
|
||||||
|
if (programs[i].value === status.features.program) {
|
||||||
|
programs[i].checked = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function getProgramSelection() {
|
function getProgramSelection() {
|
||||||
let radios = document.getElementsByName('program_select');
|
let radios = document.getElementsByName('program_select');
|
||||||
|
|
||||||
for (var i = 0, length = radios.length; i < length; i++) {
|
for (var i = 0, length = radios.length; i < length; i++) {
|
||||||
if (radios[i].checked) {
|
if (radios[i].checked) {
|
||||||
return radios[i].value;
|
return radios[i].value;
|
||||||
@@ -136,14 +140,18 @@
|
|||||||
<ul>
|
<ul>
|
||||||
<li>{{ group.group }}</li>
|
<li>{{ group.group }}</li>
|
||||||
{% for program in group.programs %}
|
{% for program in group.programs %}
|
||||||
<li>
|
{% set pr_checked = '' %}
|
||||||
<label>
|
{% if status.features.program == program.prg %}
|
||||||
<input type="radio" name="program_select" value="{{ program.prg }}">
|
{% set pr_checked = ' checked' %}
|
||||||
{{ program.name }}
|
{% endif %}
|
||||||
</label>
|
<li>
|
||||||
</li>
|
<label>
|
||||||
{% endfor %}
|
<input type="radio" name="program_select" value="{{ program.prg }}"{{ pr_checked }}>
|
||||||
</ul>
|
{{ program.name }}
|
||||||
|
</label>
|
||||||
|
</li>
|
||||||
|
{% endfor %}
|
||||||
|
</ul>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
Reference in New Issue
Block a user