Blob Blame History Raw
#!/usr/bin/wish
# Matt Willis - simple tk interface to fmtools 
# The radio keeps on after leaving.
# -*- tcl -*-

# These are stations in the Rio de Janeiro area. Customize for your own locale.
set stations \
        "
	MPB          90.3 
        CBN          92.5 
	BandNews     94.9
        PARADISO     95.7
	Nativa       96.5
	98FM         98.0 
	MEC          98.9 
	JBFM         99.7
	O_Dia        100.5
	Transamerica 101.3
	JovenPan     102.1
	Oi           102.9
	Antena1	     103.7
	"

# intial volume
set volume 100
set n [expr [llength $stations]/2]
# default radio station
set radbut 3

# make tuner buttons
frame .labels
for {set i 0} {$i<$n} {incr i 1} {
    radiobutton .r$i -value $i -variable radbut \
	    -text [lindex $stations [expr $i *2]] -command setstation
    pack .r$i -anchor w -in .labels
}

# turns the radio on
eval exec fm on

frame .rhs
scale .vol -orient horizontal -from 0 -to 100 -showvalue 0 \
	-variable volume -label Volume:
entry .stn -bg black -fg yellow -font "-*-helvetica-*-r-*-*-60-*-*-*-*-*-*-*" \
	-width 6 -justify right -state disabled
button .exit -command exit -text exit
pack .vol .stn .exit -in .rhs

pack .labels .rhs -side left
.vol configure -command setvolume

proc setstation {} {
    global stations radbut volume
#   roma 20091221
#   eval exec fm [lindex $stations [expr $radbut*2+1]] $volume
    eval exec fm [lindex $stations [expr $radbut*2+1]]
    eval exec amixer -q -c 0 set PCM $volume%
    .stn configure -state normal
    .stn delete 0 end
    .stn insert 0  [lindex $stations [expr $radbut*2+1]]
    .stn configure -state disabled
}

proc setvolume {sliderval} {
    setstation
}