recovered
[rrq/lsp-utils.git] / lsp-dbus-test.lsp
index 82c5ecb4fa8a2402527ff3329e45d9de07e95cbd..af8af95a0e18c86cb7d6558026c52811d31d129e 100644 (file)
@@ -1,27 +1,51 @@
 ;; This is a test program for the lsp-dbus provided dbus API.
 
 (load "lsp-dbus.lsp")
+;; Loading that module sets up core framework API and connects to
+;; dbus' system bus registering this application. This includes
+;; Dbus:ROOT for the "/org/freedektop/DBus" path, and Dbus:DBus for
+;; the interrface "org.freedektop.DBus".
 
-;; Connect to system bus and set up core framework API
+;; Register a handler for the NameAcquired signal, to replace the one
+;; installed by lsp-dbus.lsp
 
-;; Install my own framework object
-(die nil (setf au.rrq (Dbus "/au/rrq")))
-
-;; Request a bus name
-(println (if (:invoke Dbus:ROOT
-                      (print "RequestName(su)")
-                      (println (list (:bus-name au.rrq) 0)))
+;; Request a bus name "au.rrq" for this client
+(println "RequestName: "
+         (if (:invoke Dbus:ROOT (:m ObjectManager "RequestName(su)")
+                      '("au.rrq" 0))
              (!= ($it -1 -1 -1)) ; returns BOOLEAN
            ))
-(Dbus:process-all-pending)
+
+;; Set up a Match rule to see stuff
+(setf MATCH-RULE
+      (join (list "type='signal'"
+                  ;;"sender='org.example.App2'"
+                  ;;"path_namespace='/au/rrq'"
+                  ;;"eavesdrop='true'"
+                  )
+            ","))
+(println "AddMatch:\n" MATCH-RULE "\n"
+         (if (:invoke Dbus:ROOT (:m Dbus:DBus "AddMatch(s)")
+                      (list MATCH-RULE))
+             ($it -1 -1 -1) ; returns OOM on error
+           ))
+
+(reset)
+
 
 (println (if (:invoke Dbus:ROOT
                       (print "GetNameOwner(s)")
                       (println (list "org.bluez")))
-             ($it -1 -1 -1) ; Returns value
+             ($it -1 -1 -1) ; Return value
            ))
 (Dbus:process-all-pending)
 
+(println (setf org.bluez (Dbus "/" "org.bluez")))
+(println (if (:invoke org.bluez (:m ObjectManager "GetManagedObjects()"))
+             ($it -1 -1 -1) ; Return value
+           ))
+
+
 (reset) ; 
 
 "lsp-dbus-test.lsp"