From 27c34a9e2d210eb00d8bb5a07b57c5373edea98c Mon Sep 17 00:00:00 2001 From: Thomas White Date: Thu, 20 Feb 2020 15:07:03 +0100 Subject: Add init.scm --- meson.build | 9 +++++++++ src/init.scm | 16 ++++++++++++++++ src/nanolight.gresource.xml | 7 +++++++ src/scheme.c | 18 ++++++++++++++++++ 4 files changed, 50 insertions(+) create mode 100644 src/init.scm create mode 100644 src/nanolight.gresource.xml diff --git a/meson.build b/meson.build index 87e9882..802b7e2 100644 --- a/meson.build +++ b/meson.build @@ -10,6 +10,7 @@ add_project_arguments('-DLOCALEDIR="'+join_paths(get_option('prefix'), get_optio language : 'c') # Dependencies +gnome = import('gnome') cc = meson.get_compiler('c') mdep = cc.find_library('m', required : false) gtk_dep = dependency('gtk+-3.0', required : true) @@ -20,6 +21,13 @@ soup_dep = dependency('libsoup-2.4', required : true) guile_dep = dependency('guile-2.2', required : true) thread_dep = dependency('threads') + +# Compiled-in resources +gresources = gnome.compile_resources('nanolight-resources', + 'src/nanolight.gresource.xml', + source_dir: 'data', c_name: 'nanolight') + + # Main program executable('nanolight', ['src/nanolight.c', @@ -30,5 +38,6 @@ executable('nanolight', 'src/crossfade.c', 'src/scheme.c', ], + gresources, dependencies : [gtk_dep, mdep, soup_dep, guile_dep, thread_dep], install : true) 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 @@ + + + + src/init.scm + + + 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(®ister_scheme_funcs, pargsv); + run_init(); scm_shell(0, NULL); return NULL; } -- cgit v1.2.3