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