Monorepo for Aesthetic.Computer
aesthetic.computer
1;;; Package definitions for AC Native OS
2
3(defpackage :ac-native.util
4 (:use :cl)
5 (:export #:ac-log #:monotonic-time-ms #:frame-sync-60fps))
6
7(defpackage :ac-native.syscalls
8 (:use :cl :cffi)
9 (:export #:sys-open #:sys-close #:sys-read #:sys-write
10 #:sys-ioctl #:sys-mmap #:sys-munmap
11 #:sys-mount #:sys-umount
12 #:sys-reboot #:sys-poweroff #:sys-getpid
13 #:sys-fork #:sys-execvp #:sys-waitpid
14 #:+o-rdonly+ #:+o-wronly+ #:+o-rdwr+ #:+o-nonblock+ #:+o-cloexec+
15 #:+prot-read+ #:+prot-write+ #:+map-shared+
16 #:+clock-monotonic+))
17
18(defpackage :ac-native.color
19 (:use :cl)
20 (:export #:make-color #:color-r #:color-g #:color-b #:color-a
21 #:color-pack-argb32 #:color-blend))
22
23(defpackage :ac-native.framebuffer
24 (:use :cl :cffi :ac-native.color)
25 (:export #:make-framebuffer #:fb-create #:fb-destroy
26 #:fb-width #:fb-height #:fb-stride #:fb-pixels
27 #:fb-clear #:fb-put-pixel #:fb-blend-pixel
28 #:fb-copy-scaled))
29
30(defpackage :ac-native.drm
31 (:use :cl :cffi :ac-native.syscalls :ac-native.framebuffer)
32 (:export #:drm-init #:drm-destroy #:drm-present #:drm-flip
33 #:display-width #:display-height))
34
35(defpackage :ac-native.graph
36 (:use :cl :ac-native.color :ac-native.framebuffer)
37 (:export #:make-graph #:graph-wipe #:graph-ink
38 #:graph-plot #:graph-line #:graph-box #:graph-circle))
39
40(defpackage :ac-native.font
41 (:use :cl :ac-native.color :ac-native.graph :ac-native.framebuffer)
42 (:export #:font-init #:font-draw #:font-measure))
43
44(defpackage :ac-native.input
45 (:use :cl :cffi :ac-native.syscalls)
46 (:export #:input-init #:input-destroy #:input-poll
47 #:make-event #:event-type #:event-key #:event-code #:event-x #:event-y
48 ;; Special keys
49 #:+key-esc+ #:+key-backspace+ #:+key-tab+ #:+key-enter+
50 #:+key-leftctrl+ #:+key-space+ #:+key-f1+
51 #:+key-up+ #:+key-down+ #:+key-left+ #:+key-right+
52 #:+key-home+ #:+key-end+ #:+key-power+
53 #:+key-minus+ #:+key-equal+
54 ;; Number row
55 #:+key-1+ #:+key-2+ #:+key-3+ #:+key-4+ #:+key-5+
56 #:+key-6+ #:+key-7+ #:+key-8+ #:+key-9+ #:+key-0+
57 ;; QWERTY rows
58 #:+key-q+ #:+key-w+ #:+key-e+ #:+key-r+ #:+key-t+
59 #:+key-y+ #:+key-u+ #:+key-i+ #:+key-o+ #:+key-p+
60 #:+key-leftbrace+ #:+key-rightbrace+
61 #:+key-a+ #:+key-s+ #:+key-d+ #:+key-f+ #:+key-g+
62 #:+key-h+ #:+key-j+ #:+key-k+ #:+key-l+
63 #:+key-semicolon+ #:+key-apostrophe+
64 #:+key-z+ #:+key-x+ #:+key-c+ #:+key-v+ #:+key-b+
65 #:+key-n+ #:+key-m+))
66
67(defpackage :ac-native.alsa
68 (:use :cl :cffi)
69 (:export #:pcm-open #:pcm-close #:pcm-writei #:pcm-prepare #:pcm-recover
70 #:pcm-set-params #:mixer-set-capture-volume
71 #:snd-strerror
72 #:+snd-pcm-stream-playback+ #:+snd-pcm-stream-capture+
73 #:+snd-pcm-format-s16-le+ #:+snd-pcm-format-float-le+
74 #:+snd-pcm-access-rw-interleaved+))
75
76(defpackage :ac-native.audio
77 (:use :cl :cffi :bordeaux-threads
78 :ac-native.alsa :ac-native.util)
79 (:export #:audio-init #:audio-destroy
80 #:audio-synth #:audio-synth-kill
81 #:audio-sample-play #:audio-sample-load-data))
82
83(defpackage :ac-native.config
84 (:use :cl)
85 (:export #:load-config #:make-config #:config-handle #:config-piece
86 #:config-claude-token #:config-github-pat #:config-wifi
87 #:write-device-tokens))
88
89(defpackage :ac-native.quickjs
90 (:use :cl :cffi)
91 (:export #:js-new-runtime #:js-free-runtime
92 #:js-new-context #:js-free-context
93 #:qjs-eval #:qjs-eval-module
94 #:qjs-get-global-string #:qjs-set-global-int
95 #:qjs-set-global-float #:qjs-set-global-string
96 #:qjs-register-func #:qjs-call-global #:qjs-call-with-api
97 #:qjs-arg-int #:qjs-arg-float #:qjs-arg-string
98 #:qjs-check-exception #:qjs-execute-pending
99 #:qjs-has-global-func))
100
101(defpackage :ac-native.js-bridge
102 (:use :cl)
103 (:export #:js-init #:js-destroy #:js-load-piece
104 #:js-boot #:js-paint #:js-act #:js-sim))
105
106(defpackage :ac-native
107 (:use :cl :ac-native.util :ac-native.color :ac-native.framebuffer
108 :ac-native.drm :ac-native.graph :ac-native.font
109 :ac-native.input :ac-native.audio :ac-native.config
110 :ac-native.js-bridge)
111 (:export #:main))
112
113(defpackage :ac-native.build
114 (:use :cl)
115 (:export #:build))