Artifact
698da6411516e6c6c11c0d671d4cfa3e5f0a3f03 :
File
assets/tclmixer1.2.3/test.tcl
— part of check-in
[7e37bab220]
at
2015-08-10 14:44:04
on branch trunk
— refactored tclmixer for thread safety
(user:
chw
size: 523)
0000: 70 61 63 6b 61 67 65 20 72 65 71 75 69 72 65 20 package require
0010: 54 63 6c 4d 69 78 65 72 0a 0a 70 72 6f 63 20 65 TclMixer..proc e
0020: 6e 64 5f 4d 55 53 49 43 20 7b 7d 20 7b 0a 20 20 nd_MUSIC {} {.
0030: 20 20 74 63 6c 6d 69 78 65 72 3a 3a 66 72 65 65 tclmixer::free
0040: 20 24 3a 3a 6d 75 73 0a 20 20 20 20 75 6e 73 65 $::mus. unse
0050: 74 20 3a 3a 6d 75 73 0a 7d 0a 0a 70 72 6f 63 20 t ::mus.}..proc
0060: 65 6e 64 5f 53 4f 55 4e 44 20 63 68 61 6e 6e 65 end_SOUND channe
0070: 6c 20 7b 0a 20 20 20 20 69 6e 63 72 20 3a 3a 63 l {. incr ::c
0080: 6f 75 6e 74 0a 20 20 20 20 69 66 20 7b 24 3a 3a ount. if {$::
0090: 63 6f 75 6e 74 20 3c 20 31 30 7d 20 7b 0a 09 74 count < 10} {..t
00a0: 63 6c 6d 69 78 65 72 3a 3a 70 6c 61 79 20 24 3a clmixer::play $:
00b0: 3a 73 6e 64 0a 09 72 65 74 75 72 6e 0a 20 20 20 :snd..return.
00c0: 20 7d 0a 20 20 20 20 74 63 6c 6d 69 78 65 72 3a }. tclmixer:
00d0: 3a 66 72 65 65 20 24 3a 3a 73 6e 64 0a 20 20 20 :free $::snd.
00e0: 20 75 6e 73 65 74 20 3a 3a 73 6e 64 0a 7d 0a 0a unset ::snd.}..
00f0: 0a 73 65 74 20 6d 75 73 20 5b 74 63 6c 6d 69 78 .set mus [tclmix
0100: 65 72 3a 3a 6d 75 73 69 63 20 5b 66 69 6c 65 20 er::music [file
0110: 6a 6f 69 6e 20 5b 66 69 6c 65 20 64 69 72 6e 61 join [file dirna
0120: 6d 65 20 5b 69 6e 66 6f 20 73 63 72 69 70 74 5d me [info script]
0130: 5d 20 74 65 73 74 2e 6d 6f 64 5d 5d 0a 74 63 6c ] test.mod]].tcl
0140: 6d 69 78 65 72 3a 3a 6d 69 78 43 6f 6e 66 69 67 mixer::mixConfig
0150: 20 2d 6d 75 73 69 63 20 65 6e 64 5f 4d 55 53 49 -music end_MUSI
0160: 43 0a 74 63 6c 6d 69 78 65 72 3a 3a 70 6c 61 79 C.tclmixer::play
0170: 20 24 6d 75 73 0a 0a 73 65 74 20 63 6f 75 6e 74 $mus..set count
0180: 20 30 0a 73 65 74 20 73 6e 64 20 5b 74 63 6c 6d 0.set snd [tclm
0190: 69 78 65 72 3a 3a 73 6f 75 6e 64 20 5b 66 69 6c ixer::sound [fil
01a0: 65 20 6a 6f 69 6e 20 5b 66 69 6c 65 20 64 69 72 e join [file dir
01b0: 6e 61 6d 65 20 5b 69 6e 66 6f 20 73 63 72 69 70 name [info scrip
01c0: 74 5d 5d 20 72 65 6c 6f 61 64 2e 6f 67 67 5d 5d t]] reload.ogg]]
01d0: 0a 74 63 6c 6d 69 78 65 72 3a 3a 6d 69 78 43 6f .tclmixer::mixCo
01e0: 6e 66 69 67 20 2d 73 6f 75 6e 64 20 65 6e 64 5f nfig -sound end_
01f0: 53 4f 55 4e 44 0a 74 63 6c 6d 69 78 65 72 3a 3a SOUND.tclmixer::
0200: 70 6c 61 79 20 24 73 6e 64 0a 0a play $snd..