diff options
Diffstat (limited to 'src/frontend.h')
-rw-r--r-- | src/frontend.h | 31 |
1 files changed, 24 insertions, 7 deletions
diff --git a/src/frontend.h b/src/frontend.h index 774796d..e95fa6d 100644 --- a/src/frontend.h +++ b/src/frontend.h @@ -8,17 +8,26 @@ #include "options.h" #include "types.h" -#include "lilv/lilv.h" +#include <lilv/lilv.h> #include <stdbool.h> +#include <stdint.h> +// Interface that must be implemented by UIs JALV_BEGIN_DECLS -// Interface that must be implemented by UIs +/// Arbitrary return code for successful early exit (for --help and so on) +#define JALV_EARLY_EXIT_STATUS (-431) -/// Read command-line arguments and set `opts` accordingly +/// Command-line arguments passed to an executable +typedef struct { + int* argc; ///< Pointer to `argc` like in `main` + char*** argv; ///< Pointer to `argv` like in `main` +} JalvFrontendArgs; + +/// Consume command-line arguments and set `opts` accordingly int -jalv_frontend_init(int* argc, char*** argv, JalvOptions* opts); +jalv_frontend_init(JalvFrontendArgs* args, JalvOptions* opts); /// Return the URI of the "native" LV2 UI type const char* @@ -26,15 +35,15 @@ jalv_frontend_ui_type(void); /// Return true if an interactive frontend is available bool -jalv_frontend_discover(Jalv* jalv); +jalv_frontend_discover(const Jalv* jalv); /// Return the ideal refresh rate of the frontend in Hz float -jalv_frontend_refresh_rate(Jalv* jalv); +jalv_frontend_refresh_rate(const Jalv* jalv); /// Return the scale factor of the frontend (for example 2.0 for double sized) float -jalv_frontend_scale_factor(Jalv* jalv); +jalv_frontend_scale_factor(const Jalv* jalv); /// Attempt to get a plugin URI selection from the user LilvNode* @@ -48,6 +57,14 @@ jalv_frontend_open(Jalv* jalv); int jalv_frontend_close(Jalv* jalv); +/// Called when a port event (control change or other message) is sent to the UI +void +jalv_frontend_port_event(Jalv* jalv, + uint32_t port_index, + uint32_t buffer_size, + uint32_t protocol, + const void* buffer); + JALV_END_DECLS #endif // JALV_UI_H |