AtlatestRepositorysigil-audio
sigil-audio / tree / testmain.c
1
/*2
* main.c - Sigil Audio Test Harness3
*4
* Creates a VM, initializes the audio module (with OGG encoding),5
* and runs a test script.6
*/8
#include <sigil/sigil.h>9
#include <stdio.h>10
#include <stdlib.h>12
/* Audio module init function */13
extern void sigil__init_sigil_audio_module(SigilVM *vm);15
int main(int argc, char *argv[])16
{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;60
}