File: _cycle_machine.tcl

package info (click to toggle)
openmsx 0.10.1-2
  • links: PTS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 16,628 kB
  • ctags: 19,723
  • sloc: cpp: 131,938; xml: 25,418; tcl: 15,394; python: 4,012; sh: 365; makefile: 26
file content (30 lines) | stat: -rw-r--r-- 768 bytes parent folder | download | duplicates (7)
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
namespace eval cycle_machine {

set help_cycle_machine \
{Cycle through the currently running machines.
'cycle_back_machine' does the same as 'cycle_machine', but it goes in the
opposite direction.
}

set_help_text cycle_machine $help_cycle_machine
set_help_text cycle_back_machine $help_cycle_machine

proc cycle_machine {{step 1}} {
	set cycle_list [utils::get_ordered_machine_list]
	if {[llength $cycle_list] > 0} {
		set cur [lsearch -exact $cycle_list [activate_machine]]
		set new [expr {($cur + $step) % [llength $cycle_list]}]
		activate_machine [lindex $cycle_list $new]
	}
}

proc cycle_back_machine {} {
	cycle_machine -1
}

namespace export cycle_machine
namespace export cycle_back_machine

} ;# namespace cycle_machine

namespace import cycle_machine::*