OXYGENHUB
◆ main openmsx / share / scripts / _cycle_machine.tcl
768 B · Tcl · last changed chore(): initial commit 1 month ago source blame history raw
1
namespace eval cycle_machine {
2
3
set help_cycle_machine \
4
{Cycle through the currently running machines.
5
'cycle_back_machine' does the same as 'cycle_machine', but it goes in the
6
opposite direction.
7
}
8
9
set_help_text cycle_machine $help_cycle_machine
10
set_help_text cycle_back_machine $help_cycle_machine
11
12
proc cycle_machine {{step 1}} {
13
	set cycle_list [utils::get_ordered_machine_list]
14
	if {[llength $cycle_list] > 0} {
15
		set cur [lsearch -exact $cycle_list [activate_machine]]
16
		set new [expr {($cur + $step) % [llength $cycle_list]}]
17
		activate_machine [lindex $cycle_list $new]
18
	}
19
}
20
21
proc cycle_back_machine {} {
22
	cycle_machine -1
23
}
24
25
namespace export cycle_machine
26
namespace export cycle_back_machine
27
28
} ;# namespace cycle_machine
29
30
namespace import cycle_machine::*