Callback-based program structure using Banjo's automain feature.
Callback-based program structure using Banjo's automain feature.This demonstrates an alternative to writing main() yourself. Instead of managing the program loop manually, you define three callbacks that Banjo invokes at the right times. This pattern is required for Emscripten/web builds and provides cleaner separation of initialization, iteration, and cleanup phases.
#define BJ_AUTOMAIN_CALLBACKS
int bj_app_begin(
void** user_data,
int argc,
char* argv[]) {
(void)user_data; (void)argc; (void)argv;
return bj_callback_exit_error;
}
return bj_callback_continue;
}
(void)user_data;
return bj_callback_exit_success;
}
(void)user_data;
return status;
}
int bj_app_begin(void **user_data, int argc, char *argv[])
Definition audio_pcm.c:25
int bj_app_iterate(void *user_data)
Definition audio_pcm.c:60
int bj_app_end(void *user_data, int status)
Definition audio_pcm.c:84
#define bj_info(...)
Log a message using the BJ_LOG_INFO level.
Definition log.h:105
bj_bool bj_begin(int systems, struct bj_error **error)
Initializes the system.
void bj_end(void)
De-initializes the system.
@ BJ_VIDEO_SYSTEM
Definition system.h:20
@ BJ_AUDIO_SYSTEM
Definition system.h:19
Logging utility functions.
Portable main substitution and application callback facilities.
Header file for system interactions.