aboutsummaryrefslogtreecommitdiff
path: root/exists.tcl
diff options
context:
space:
mode:
Diffstat (limited to 'exists.tcl')
-rw-r--r--exists.tcl35
1 files changed, 35 insertions, 0 deletions
diff --git a/exists.tcl b/exists.tcl
new file mode 100644
index 0000000..c927ac6
--- /dev/null
+++ b/exists.tcl
@@ -0,0 +1,35 @@
+package require Tclpd 0.2.3
+package require TclpdLib 0.19
+
+proc+ exists::constructor {self args} {
+ # add second inlet (first created by default)
+ pd::add_inlet $self list
+
+ # add outlet
+ pd::add_outlet $self list
+}
+
+proc+ exists::0_symbol {self args} {
+ # HOT inlet
+ set @filename [lindex {*}$args 1]
+ exists::0_bang $self
+}
+
+proc+ exists::0_anything {self args} {
+ # HOT inlet
+ set @filename [lindex {*}$args 1]
+ pd::post "anything: $@filename"
+ exists::0_bang $self
+}
+
+proc+ exists::0_bang {self} {
+ if {$@filename == {}} return
+ pd::outlet $self 0 [list float [file exists $@filename]]
+}
+
+proc+ exists::1_anything {self args} {
+ # COLD inlet
+ set @filename [lindex {*}$args 1]
+}
+
+pd::class exists