forked from Allen-Synthesis/EuroPi
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmenu.py
67 lines (59 loc) · 3.07 KB
/
menu.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
"""See menu.md for details."""
# Reset the module state and display bootsplash screen.
from europi import bootsplash, usb_connected
# This is a fix for a USB connection issue documented in GitHub issue #179, and its removal condition is set out in GitHub issue #184
if usb_connected.value() == 0:
from time import sleep
sleep(0.5)
bootsplash()
from bootloader import BootloaderMenu
from collections import OrderedDict
## Scripts that are included in the menu
#
# Keys are the names displayed in the menu, values are the fully-qualified names
# of the classes to launch. The classes MUST be EuriPiScript subclasses
#
# The OLED can display up to 16 characters horizontally, so make sure the names fit
# that width requirement
#
# fmt: off
EUROPI_SCRIPTS = OrderedDict([
# ["0123456789abcdef", "contrib.spam.Eggs"],
["Bernoulli Gates", "contrib.bernoulli_gates.BernoulliGates"],
["Clock Modifier", "contrib.clock_mod.ClockModifier"],
["Coin Toss", "contrib.coin_toss.CoinToss"],
["Consequencer", "contrib.consequencer.Consequencer"],
["Conway", "contrib.conway.Conway"],
["CVecorder", "contrib.cvecorder.CVecorder"],
["Diagnostic", "contrib.diagnostic.Diagnostic"],
["EnvelopeGen", "contrib.envelope_generator.EnvelopeGenerator"],
["Euclid", "contrib.euclid.EuclideanRhythms"],
["Gates & Triggers", "contrib.gates_and_triggers.GatesAndTriggers"],
["Hamlet", "contrib.hamlet.Hamlet"],
["HarmonicLFOs", "contrib.harmonic_lfos.HarmonicLFOs"],
["HelloWorld", "contrib.hello_world.HelloWorld"],
["KnobPlayground", "contrib.knob_playground.KnobPlayground"],
["Kompari", "contrib.kompari.Kompari"],
["Logic", "contrib.logic.Logic"],
["MasterClock", "contrib.master_clock.MasterClock"],
["NoddyHolder", "contrib.noddy_holder.NoddyHolder"],
["Pam's Workout", "contrib.pams.PamsWorkout"],
["Particle Phys.", "contrib.particle_physics.ParticlePhysics"],
["Piconacci", "contrib.piconacci.Piconacci"],
["PolyrhythmSeq", "contrib.polyrhythmic_sequencer.PolyrhythmSeq"],
["PolySquare", "contrib.poly_square.PolySquare"],
["Probapoly", "contrib.probapoly.Probapoly"],
["Quantizer", "contrib.quantizer.QuantizerScript"],
["RadioScanner", "contrib.radio_scanner.RadioScanner"],
["Scope", "contrib.scope.Scope"],
["Seq. Switch", "contrib.sequential_switch.SequentialSwitch"],
["Smooth Rnd Volts", "contrib.smooth_random_voltages.SmoothRandomVoltages"],
["StrangeAttractor", "contrib.strange_attractor.StrangeAttractor"],
["Traffic", "contrib.traffic.Traffic"],
["Turing Machine", "contrib.turing_machine.EuroPiTuringMachine"],
["_Calibrate", "calibrate.Calibrate"], # this one should always be second to last!
["_BootloaderMode", "bootloader_mode.BootloaderMode"] # this one should always be last!
])
# fmt: on
if __name__ == "__main__":
BootloaderMenu(EUROPI_SCRIPTS).main()