Posted to tcl by saedelaere at Sat Jan 02 12:15:05 GMT 2010view raw
- proc command_socket {} {
- catch {puts $::main(debug_msg) "\033\[0;1;33mDebug: command_socket \033\[0m"}
- if {[file exists "$::option(where_is_home)/tmp/comSocket"] == 0} {
- catch {exec mkfifo "$::option(where_is_home)/tmp/comSocket"}
- }
- if {[file exists "$::option(where_is_home)/tmp/comSocket"]} {
- set ::data(comsocket) [open "$::option(where_is_home)/tmp/comSocket" r+]
- fconfigure $::data(comsocket) -blocking 0 -buffering line
- fileevent $::data(comsocket) readable [list command_getData]
- }
-
- proc command_getData {} {
- if {[info exists ::data(comsocket)]} {
- gets $::data(comsocket) line
- if {"$::option(appname)" == "tv-viewer_scheduler"} {
- puts "line ::data(comsocket) $line"
- }
- if {[eof $::data(comsocket)]} {
- puts "EOF ::data(comsocket)"
- catch {close $::data(comsocket)}
- unset -nocomplain ::data(comsocket)
- }
-
- if {[string length $line] > 0} {
- if {"[lindex $line 0]" == "$::option(appname)"} {
- set com [lrange $line 1 end]
- {*}$com
- }
- }
- }
- }
-
- proc command_WritePipe {com} {
- if {"$::option(appname)" == "tv-viewer_main"} {
- puts $::main(debug_msg) "\033\[0;1;33mDebug: command_WritePipe \033\[0m \{$com\}"
- }
- if {[info exists ::data(comsocket)] == 0} {return 1}
- if {[string trim $::data(comsocket)] != {}} {
- puts "Sending command
- $com
- to Application remote channel."
- catch {puts -nonewline $::data(comsocket) "$com \n"}
- flush $::data(comsocket)
- return 0
- } else {
- if {"$::option(appname)" == "tv-viewer_main"} {
- log_writeOutTv 2 "Can't access application command pipe."
- }
- if {"$::option(appname)" == "tv-viewer_scheduler"} {
- scheduler_logWriteOut 2 "Can't access application command pipe."
- }
- return 1
- }
- }
-