summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorThomas White <taw@physics.org>2020-02-20 15:07:03 +0100
committerThomas White <taw@physics.org>2020-02-20 15:07:03 +0100
commit27c34a9e2d210eb00d8bb5a07b57c5373edea98c (patch)
tree5cfd62d29065503767615ebd87781b6f9bbcf80d /src
parenta8edc2496b37622374ee1077a508265545bc015f (diff)
Add init.scm
Diffstat (limited to 'src')
-rw-r--r--src/init.scm16
-rw-r--r--src/nanolight.gresource.xml7
-rw-r--r--src/scheme.c18
3 files changed, 41 insertions, 0 deletions
diff --git a/src/init.scm b/src/init.scm
new file mode 100644
index 0000000..b6069aa
--- /dev/null
+++ b/src/init.scm
@@ -0,0 +1,16 @@
+(define off
+ (lambda (fix)
+ (set-intensity fix 0)))
+
+(define set-all
+ (lambda (fixtures level)
+ (for-each (lambda (fix)
+ (set-intensity fix level))
+ fixtures)))
+
+(define find-fixture
+ (lambda (fixtures name)
+ (cond
+ [(null? fixtures) #f]
+ [(eq? (fixture-name (car fixtures)) name) (car fixtures)]
+ [else (find-fixture (cdr fixtures) name)])))
diff --git a/src/nanolight.gresource.xml b/src/nanolight.gresource.xml
new file mode 100644
index 0000000..f938d90
--- /dev/null
+++ b/src/nanolight.gresource.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<gresources>
+ <gresource prefix="/uk/me/bitwiz/NanoLight">
+ <file>src/init.scm</file>
+ </gresource>
+</gresources>
+
diff --git a/src/scheme.c b/src/scheme.c
index d37578f..b81b1a3 100644
--- a/src/scheme.c
+++ b/src/scheme.c
@@ -84,9 +84,27 @@ void *register_scheme_funcs(void *data)
}
+static void run_init()
+{
+ GBytes *bytes;
+ GError *error = NULL;
+ gsize size;
+ gconstpointer initscm;
+
+ bytes = g_resources_lookup_data("/uk/me/bitwiz/NanoLight/src/init.scm",
+ G_RESOURCE_LOOKUP_FLAGS_NONE,
+ &error);
+ initscm = g_bytes_get_data(bytes, &size);
+ printf("got %p\n", initscm);
+ scm_c_eval_string(initscm);
+ g_bytes_unref(bytes);
+}
+
+
void *run_repl(void *pargsv)
{
scm_with_guile(&register_scheme_funcs, pargsv);
+ run_init();
scm_shell(0, NULL);
return NULL;
}