3 ;; This is a test program for the lsp-dbus provided dbus API.
8 ; Log system bus details
9 (println Dbus:SYSTEM-BUS)
10 (println (setf ME (Dbus "/au/rrq")))
11 (println (setf ROOT (Dbus "/org/freedesktop/DBus")))
13 (define (unpack-messages DATA)
14 (let ((AT 0) (OUT '()) (M nil) (D nil))
15 (while (and (< AT (length DATA))
16 (setf M (Dbus:unpack-data "yyyyuua(yv)" DATA AT)))
18 (dotimes (i (length (M 0 -1)))
19 (setf (M 0 -1 i 0) (Dbus:MESSAGE-HEADERS (M 0 -1 i 0) 0)))
22 (setf S ((lookup 'Dbus:SIGNATURE (M 0 -1)) 0))
23 (println "AT=" AT " " (unpack (dup "b" 20) (AT DATA)))
24 (if (and (< AT (length DATA)) (!= s ""))
25 (when (setf D (Dbus:unpack-data S DATA AT))
28 (push (list M (D 0)) OUT -1))
29 (push (list M nil) OUT -1))
32 ;;(println (octals-string (AT DATA)))
36 (setf M (:invoke ROOT "Hello" "org.freedesktop.DBus"))
37 (println (unpack-messages M))