
# Install the IR codes for my Samsung SV-660B VCR.  The VCR manual
# covers models:
#     SV-665B    SV-665X
#     SV-660B    SV-660X
#     SV-460B    SV-460X
#     SV-265B
#     SV-260B    SV-260X
# so there's a chance these codes would work on those models.
# Note that I've only used digits 0, 1, 2, 3, 7, 9 on my VCR
# so I haven't verified the others are working correctly.

source /tvlib/tcl/tv/mfslib.tcl

proc setIr { irObj field irSequence } {
    
    set savedInitial 0

    foreach irPart $irSequence {

        if {$savedInitial == 0} {
            set savedInitial 1
            dbobj $irObj set $field $irPart
        } else {
            dbobj $irObj add $field $irPart
        }

    }
}


proc SamsungSV660 {} {

    set db [dbopen]

    puts "Setting Samsung SV-660 codes for TiVo 30001..."

    RetryTransaction {

        set tivoir [db $db open /Component/Ir/TivoFormat/30001]

        setIr $tivoir "Dig0" "0 39 34 0 260 254 31 92 30 28 31 91 29 30 30 28 31 27 31 27 31 27 31 92 31 27 31 93 28 30 30 28 31 27 31 27 31 27 31 92 31 27 31 27 31 27 31 92 31 27 31 27 31 27 31 27 31 92 31 92 29 93 31 27 30 93 31 92 31 91 33 367"
        setIr $tivoir "Dig1" "0 39 34 0 259 254 31 92 31 27 30 93 28 29 30 28 31 27 31 27 31 27 31 92 31 27 31 92 29 28 31 27 31 27 31 27 31 27 31 27 31 27 30 93 31 26 31 27 30 28 30 28 29 30 29 92 30 93 31 27 31 92 31 91 29 93 31 92 31 91 32 366"
        setIr $tivoir "Dig2" "0 39 34 0 260 254 31 92 31 27 31 92 30 29 28 29 30 27 31 27 31 27 31 92 30 27 31 92 28 30 29 29 31 27 31 27 31 27 31 93 31 27 31 92 28 30 29 29 31 27 31 27 31 27 31 26 31 92 31 27 31 92 31 91 31 92 31 92 31 91 33 366"
        setIr $tivoir "Dig3" "0 39 34 0 260 253 31 92 30 27 30 93 29 29 29 29 30 27 31 27 31 27 31 92 31 27 30 93 29 29 30 28 31 28 31 27 31 27 31 27 31 93 31 92 29 29 30 28 31 27 31 27 31 27 31 92 31 27 31 27 31 92 31 92 30 93 31 93 31 91 32 367"
        setIr $tivoir "Dig4" "0 39 34 0 260 254 31 92 30 27 31 92 29 29 30 28 31 27 31 27 31 27 31 92 31 27 31 92 30 28 30 28 31 27 31 27 31 27 31 27 31 27 29 28 30 93 31 27 31 28 29 28 30 29 30 92 31 92 31 92 30 28 30 92 29 93 31 92 31 90 33 367"
        setIr $tivoir "Dig5" "0 39 34 0 259 254 31 92 30 27 31 92 29 29 30 28 31 27 31 27 31 27 31 92 31 27 31 92 29 29 30 28 31 27 31 27 31 27 31 92 31 27 31 27 31 92 31 27 31 27 31 27 31 27 31 27 31 92 31 92 30 28 30 92 30 93 31 92 31 91 32 368"
        setIr $tivoir "Dig6" "0 39 34 0 260 253 31 92 30 28 31 92 29 29 29 28 30 28 31 27 31 27 31 92 31 27 31 92 29 29 30 28 31 27 31 27 31 27 31 27 31 92 31 27 31 92 30 28 31 27 31 27 31 27 31 92 31 27 31 92 29 28 30 92 30 92 31 92 31 91 32 365"
        setIr $tivoir "Dig7" "0 39 34 0 258 254 31 92 31 27 31 92 29 28 30 28 31 27 31 27 31 27 31 92 31 27 31 92 30 28 30 27 31 27 31 27 31 27 31 27 30 28 30 93 31 93 31 27 31 27 31 27 31 27 31 92 31 92 29 28 30 28 31 92 29 93 31 92 31 92 32 367"
        setIr $tivoir "Dig8" "0 39 34 0 260 253 31 93 30 28 31 92 30 29 29 29 30 27 31 27 31 27 31 92 30 27 31 92 29 29 29 28 31 27 31 27 31 27 31 92 31 27 31 92 29 92 31 27 31 28 29 29 29 29 31 27 31 92 29 29 29 29 30 92 30 93 31 92 31 91 33 367"
        setIr $tivoir "Dig9" "0 39 34 0 259 254 31 92 30 28 31 92 29 29 29 29 30 27 31 27 31 27 31 92 31 27 31 92 28 29 30 28 31 27 31 27 31 27 31 27 31 92 31 92 29 93 31 27 31 28 28 30 29 29 30 92 31 29 28 29 30 28 31 91 30 93 31 92 31 91 32 368"
    }

    puts "Finished! Reboot your TiVo for the new codes to take effect."

    dbclose $db

}


