AtlatestRepositorysigil-audio
1/*
2 * main.c - Sigil Audio Test Harness
3 *
4 * Creates a VM, initializes the audio module (with OGG encoding),
5 * and runs a test script.
6 */
7
8#include <sigil/sigil.h>
9#include <stdio.h>
10#include <stdlib.h>
12/* Audio module init function */
13extern void sigil__init_sigil_audio_module(SigilVM *vm);
15int main(int argc, char *argv[])
17 const char *script_path = "test/test-ogg-encode.sgl";
19 if (argc >= 2) {
20 script_path = argv[1];
21 }
23 /* Create VM */
24 SigilVM *vm = sigil_vm_create();
25 if (!vm) {
26 fprintf(stderr, "Failed to create VM\n");
27 return 1;
28 }
30 /* Add load paths */
31 const char *stdlib_override = getenv("SIGIL_STDLIB_LIB");
32 if (stdlib_override) {
33 sigil_vm_add_load_path(vm, stdlib_override);
34 }
35 sigil_vm_add_load_path(vm, "deps/sigil-stdlib/src");
36 sigil_vm_add_load_path(vm, "build/release/lib");
37 sigil_vm_add_load_path(vm, "build/dev/lib");
38 sigil_vm_add_load_path(vm, "src/sigil");
40 /* Initialize audio native module */
41 sigil__init_sigil_audio_module(vm);
43 /* Load and run the script */
44 printf("Loading %s...\n", script_path);
45 int result = sigil_eval_file(vm, script_path);
47 if (result != 0) {
48 const char *err = sigil_error_message(vm);
49 if (err) {
50 fprintf(stderr, "Error: %s\n", err);
51 } else {
52 fprintf(stderr, "Script execution failed (no error message)\n");
53 }
54 }
56 /* Cleanup */
57 sigil_vm_destroy(vm);
59 return result;