19#if !defined(YSFX_INCLUDED_YSFX_H)
20#define YSFX_INCLUDED_YSFX_H
37# if defined(_WIN32) && defined(YSFX_DLL_BUILD)
38# define YSFX_API __declspec(dllexport)
39# elif defined(__GNUC__)
40# define YSFX_API __attribute__((visibility("default")))
134#define ysfx_get_num_tags(fx) ysfx_get_tags((fx), NULL, 0)
180#define ysfx_slider_get_enum_size(fx, index) ysfx_slider_get_enum_names((fx), (index), NULL, 0)
513#if defined(__cplusplus) && (__cplusplus >= 201103L || (defined(_MSC_VER) && _MSVC_LANG >= 201103L))
516#define YSFX_DEFINE_AUTO_PTR(aptr, styp, freefn) \
517 struct aptr##_deleter { \
518 void operator()(styp *x) const noexcept { freefn(x); } \
520 using aptr = std::unique_ptr<styp, aptr##_deleter>
CAdPlugDatabase::CRecord::RecordType type
Definition adplugdb.cpp:93
static void message(int level, const char *fmt,...)
Definition adplugdb.cpp:120
static PuglViewHint int value
Definition pugl.h:1708
static const char * name
Definition pugl.h:1582
struct backing_store_struct * info
Definition jmemsys.h:183
int int32_t
Definition mid.cpp:97
unsigned int uint32_t
Definition mid.cpp:100
unsigned char uint8_t
Definition mid.cpp:98
ysfx_real sample_rate
Definition ysfx.h:484
uint32_t channels
Definition ysfx.h:483
uint32_t preset_count
Definition ysfx.h:326
char * name
Definition ysfx.h:322
ysfx_preset_t * presets
Definition ysfx.h:324
void * user_data
Definition ysfx.h:352
uint8_t * pixels
Definition ysfx.h:362
uint32_t pixel_stride
Definition ysfx.h:359
int32_t(* show_menu)(void *user_data, const char *menu_spec, int32_t xpos, int32_t ypos)
Definition ysfx.h:366
uint32_t pixel_height
Definition ysfx.h:356
uint32_t pixel_width
Definition ysfx.h:354
ysfx_real scale_factor
Definition ysfx.h:364
void(* set_cursor)(void *user_data, int32_t cursor)
Definition ysfx.h:368
uint32_t size
Definition ysfx.h:259
const uint8_t * data
Definition ysfx.h:261
uint32_t offset
Definition ysfx.h:257
uint32_t bus
Definition ysfx.h:255
char * name
Definition ysfx.h:315
ysfx_state_t * state
Definition ysfx.h:317
ysfx_real inc
Definition ysfx.h:168
ysfx_real def
Definition ysfx.h:165
ysfx_real max
Definition ysfx.h:167
ysfx_real min
Definition ysfx.h:166
size_t data_size
Definition ysfx.h:301
uint32_t slider_count
Definition ysfx.h:297
uint8_t * data
Definition ysfx.h:299
ysfx_state_slider_t * sliders
Definition ysfx.h:295
uint32_t index
Definition ysfx.h:288
ysfx_real value
Definition ysfx.h:290
ysfx_real tempo
Definition ysfx.h:239
ysfx_real time_position
Definition ysfx.h:243
ysfx_real beat_position
Definition ysfx.h:245
uint32_t time_signature[2]
Definition ysfx.h:247
uint32_t playback_state
Definition ysfx.h:241
const char * text
Definition swell-functions.h:167
RECT const char void(* callback)(const char *droppath))) SWELL_API_DEFINE(BOOL
Definition swell-functions.h:1004
ZCONST char * key
Definition crypt.c:587
typedef int(UZ_EXP MsgFn)()
#define void
Definition unzip.h:396
_WDL_CSTRING_PREFIX void INT_PTR count
Definition wdlcstring.h:263
YSFX_API bool ysfx_send_midi(ysfx_t *fx, const ysfx_midi_event_t *event)
Definition ysfx.cpp:1010
struct ysfx_menu_s ysfx_menu_t
YSFX_API ysfx_real * ysfx_find_var(ysfx_t *fx, const char *name)
Definition ysfx.cpp:1332
enum ysfx_playback_state_e ysfx_playback_state_t
YSFX_API void ysfx_read_vmem(ysfx_t *fx, uint32_t addr, ysfx_real *dest, uint32_t count)
Definition ysfx.cpp:1351
YSFX_API bool ysfx_compile(ysfx_t *fx, uint32_t compileopts)
Definition ysfx.cpp:347
YSFX_API bool ysfx_receive_midi(ysfx_t *fx, ysfx_midi_event_t *event)
Definition ysfx.cpp:1015
YSFX_API uint32_t ysfx_slider_get_enum_names(ysfx_t *fx, uint32_t index, const char **dest, uint32_t destsize)
Definition ysfx.cpp:747
struct ysfx_audio_format_s ysfx_audio_format_t
Definition ysfx.h:70
ysfx_playback_state_e
Definition ysfx.h:229
@ ysfx_playback_paused
Definition ysfx.h:232
@ ysfx_playback_error
Definition ysfx.h:230
@ ysfx_playback_recording
Definition ysfx.h:233
@ ysfx_playback_recording_paused
Definition ysfx.h:234
@ ysfx_playback_playing
Definition ysfx.h:231
struct ysfx_state_s ysfx_state_t
YSFX_API bool ysfx_send_trigger(ysfx_t *fx, uint32_t index)
Definition ysfx.cpp:1033
YSFX_API void ysfx_process_float(ysfx_t *fx, const float *const *ins, float *const *outs, uint32_t num_ins, uint32_t num_outs, uint32_t num_frames)
Definition ysfx.cpp:1127
void ysfx_log_reporter_t(intptr_t userdata, ysfx_log_level level, const char *message)
Definition ysfx.h:64
YSFX_API uint64_t ysfx_fetch_slider_automations(ysfx_t *fx)
Definition ysfx.cpp:1047
@ ysfx_max_triggers
Definition ysfx.h:55
@ ysfx_max_channels
Definition ysfx.h:53
@ ysfx_max_midi_buses
Definition ysfx.h:54
@ ysfx_max_sliders
Definition ysfx.h:52
enum ysfx_menu_item_flag_e ysfx_menu_item_flag_t
@ ysfx_key_f1
Definition ysfx.h:402
@ ysfx_key_page_down
Definition ysfx.h:419
@ ysfx_key_f9
Definition ysfx.h:410
@ ysfx_key_insert
Definition ysfx.h:422
@ ysfx_key_delete
Definition ysfx.h:400
@ ysfx_key_up
Definition ysfx.h:415
@ ysfx_key_f11
Definition ysfx.h:412
@ ysfx_key_left
Definition ysfx.h:414
@ ysfx_key_f3
Definition ysfx.h:404
@ ysfx_key_f10
Definition ysfx.h:411
@ ysfx_key_backspace
Definition ysfx.h:398
@ ysfx_key_down
Definition ysfx.h:417
@ ysfx_key_f6
Definition ysfx.h:407
@ ysfx_key_f12
Definition ysfx.h:413
@ ysfx_key_end
Definition ysfx.h:421
@ ysfx_key_right
Definition ysfx.h:416
@ ysfx_key_f8
Definition ysfx.h:409
@ ysfx_key_escape
Definition ysfx.h:399
@ ysfx_key_page_up
Definition ysfx.h:418
@ ysfx_key_f2
Definition ysfx.h:403
@ ysfx_key_f4
Definition ysfx.h:405
@ ysfx_key_home
Definition ysfx.h:420
@ ysfx_key_f5
Definition ysfx.h:406
@ ysfx_key_f7
Definition ysfx.h:408
YSFX_API const char * ysfx_get_tag(ysfx_t *fx, uint32_t index)
Definition ysfx.cpp:592
YSFX_API ysfx_real ysfx_get_sample_rate(ysfx_t *fx)
Definition ysfx.cpp:879
YSFX_API ysfx_state_t * ysfx_save_state(ysfx_t *fx)
Definition ysfx.cpp:1231
YSFX_API bool ysfx_gfx_wants_retina(ysfx_t *fx)
Definition ysfx.cpp:1453
@ ysfx_button_left
Definition ysfx.h:426
@ ysfx_button_right
Definition ysfx.h:428
@ ysfx_button_middle
Definition ysfx.h:427
YSFX_API bool ysfx_get_gfx_dim(ysfx_t *fx, uint32_t dim[2])
Definition ysfx.cpp:641
YSFX_API const char * ysfx_get_bank_path(ysfx_t *fx)
Definition ysfx.cpp:1322
YSFX_API uint64_t ysfx_fetch_slider_changes(ysfx_t *fx)
Definition ysfx.cpp:1042
YSFX_API void ysfx_set_time_info(ysfx_t *fx, const ysfx_time_info_t *info)
Definition ysfx.cpp:987
ysfx_section_type_e
Definition ysfx.h:152
@ ysfx_section_gfx
Definition ysfx.h:157
@ ysfx_section_serialize
Definition ysfx.h:158
@ ysfx_section_init
Definition ysfx.h:153
@ ysfx_section_sample
Definition ysfx.h:156
@ ysfx_section_block
Definition ysfx.h:155
@ ysfx_section_slider
Definition ysfx.h:154
YSFX_API bool ysfx_is_loaded(ysfx_t *fx)
Definition ysfx.cpp:492
YSFX_API bool ysfx_receive_midi_from_bus(ysfx_t *fx, uint32_t bus, ysfx_midi_event_t *event)
Definition ysfx.cpp:1020
struct ysfx_menu_insn_s ysfx_menu_insn_t
Definition ysfx.h:434
YSFX_API void ysfx_slider_set_value(ysfx_t *fx, uint32_t index, ysfx_real value)
Definition ysfx.cpp:803
YSFX_API const char * ysfx_get_author(ysfx_t *fx)
Definition ysfx.cpp:569
YSFX_API void ysfx_enum_vars(ysfx_t *fx, ysfx_enum_vars_callback_t *callback, void *userdata)
Definition ysfx.cpp:1327
YSFX_API void ysfx_set_midi_capacity(ysfx_t *fx, uint32_t capacity, bool extensible)
Definition ysfx.cpp:900
struct ysfx_preset_s ysfx_preset_t
YSFX_API void ysfx_process_double(ysfx_t *fx, const double *const *ins, double *const *outs, uint32_t num_ins, uint32_t num_outs, uint32_t num_frames)
Definition ysfx.cpp:1132
YSFX_API ysfx_t * ysfx_new(ysfx_config_t *config)
Definition ysfx.cpp:82
YSFX_API void ysfx_register_builtin_audio_formats(ysfx_config_t *config)
Definition ysfx_config.cpp:105
YSFX_API ysfx_real ysfx_get_pdc_delay(ysfx_t *fx)
Definition ysfx.cpp:950
YSFX_API void ysfx_gfx_update_mouse(ysfx_t *fx, uint32_t mods, int32_t xpos, int32_t ypos, uint32_t buttons, ysfx_real wheel, ysfx_real hwheel)
Definition ysfx.cpp:1480
YSFX_API void ysfx_set_user_data(ysfx_config_t *config, intptr_t userdata)
Definition ysfx_config.cpp:116
YSFX_API ysfx_config_t * ysfx_config_new()
Definition ysfx_config.cpp:24
YSFX_API uint64_t ysfx_get_slider_visibility(ysfx_t *fx)
Definition ysfx.cpp:1052
YSFX_API bool ysfx_load_file(ysfx_t *fx, const char *filepath, uint32_t loadopts)
Definition ysfx.cpp:197
struct ysfx_bank_s ysfx_bank_t
enum ysfx_menu_opcode_e ysfx_menu_opcode_t
YSFX_API void ysfx_guess_file_roots(ysfx_config_t *config, const char *sourcepath)
Definition ysfx_config.cpp:63
YSFX_API bool ysfx_slider_is_initially_visible(ysfx_t *fx, uint32_t index)
Definition ysfx.cpp:786
ysfx_log_level_e
Definition ysfx.h:58
@ ysfx_log_info
Definition ysfx.h:59
@ ysfx_log_error
Definition ysfx.h:61
@ ysfx_log_warning
Definition ysfx.h:60
YSFX_API const char * ysfx_get_import_root(ysfx_config_t *config)
Definition ysfx_config.cpp:53
struct ysfx_time_info_s ysfx_time_info_t
YSFX_API bool ysfx_slider_get_range(ysfx_t *fx, uint32_t index, ysfx_slider_range_t *range)
Definition ysfx.cpp:723
YSFX_API uint32_t ysfx_get_num_outputs(ysfx_t *fx)
Definition ysfx.cpp:608
enum ysfx_compile_option_e ysfx_compile_option_t
YSFX_API bool ysfx_gfx_run(ysfx_t *fx)
Definition ysfx.cpp:1522
YSFX_API bool ysfx_get_pdc_midi(ysfx_t *fx)
Definition ysfx.cpp:972
YSFX_API const char * ysfx_log_level_string(ysfx_log_level level)
Definition ysfx_config.cpp:122
enum ysfx_section_type_e ysfx_section_type_t
ysfx_menu_item_flag_e
Definition ysfx.h:454
@ ysfx_menu_item_disabled
Definition ysfx.h:456
@ ysfx_menu_item_checked
Definition ysfx.h:458
YSFX_API bool ysfx_load_state(ysfx_t *fx, ysfx_state_t *state)
Definition ysfx.cpp:1197
YSFX_API ysfx_state_t * ysfx_state_dup(ysfx_state_t *state)
Definition ysfx.cpp:1286
double ysfx_real
Definition ysfx.h:49
YSFX_API void ysfx_set_block_size(ysfx_t *fx, uint32_t blocksize)
Definition ysfx.cpp:884
YSFX_API void ysfx_config_free(ysfx_config_t *config)
Definition ysfx_config.cpp:29
struct ysfx_s ysfx_t
Definition ysfx.h:103
YSFX_API void ysfx_unload(ysfx_t *fx)
Definition ysfx.cpp:486
ysfx_menu_opcode_e
Definition ysfx.h:443
@ ysfx_menu_endsub
Definition ysfx.h:451
@ ysfx_menu_sub
Definition ysfx.h:449
@ ysfx_menu_separator
Definition ysfx.h:447
@ ysfx_menu_item
Definition ysfx.h:445
struct ysfx_midi_event_s ysfx_midi_event_t
YSFX_API bool ysfx_slider_exists(ysfx_t *fx, uint32_t index)
Definition ysfx.cpp:703
struct ysfx_audio_reader_s ysfx_audio_reader_t
Definition ysfx.h:480
YSFX_API ysfx_bank_t * ysfx_load_bank(const char *path)
Definition ysfx_preset.cpp:31
YSFX_API void ysfx_state_free(ysfx_state_t *state)
Definition ysfx.cpp:1276
ysfx_load_option_e
Definition ysfx.h:115
@ ysfx_load_ignoring_imports
Definition ysfx.h:117
YSFX_API const char * ysfx_get_input_name(ysfx_t *fx, uint32_t index)
Definition ysfx.cpp:616
YSFX_API uint32_t ysfx_get_tags(ysfx_t *fx, const char **dest, uint32_t destsize)
Definition ysfx.cpp:577
YSFX_API uint32_t ysfx_get_block_size(ysfx_t *fx)
Definition ysfx.cpp:874
struct ysfx_audio_file_info_s ysfx_audio_file_info_t
YSFX_API ysfx_config_t * ysfx_get_config(ysfx_t *fx)
Definition ysfx.cpp:192
YSFX_API bool ysfx_slider_is_path(ysfx_t *fx, uint32_t index)
Definition ysfx.cpp:776
YSFX_API void ysfx_free(ysfx_t *fx)
Definition ysfx.cpp:178
YSFX_API const char * ysfx_slider_get_name(ysfx_t *fx, uint32_t index)
Definition ysfx.cpp:713
YSFX_API void ysfx_menu_free(ysfx_menu_t *menu)
Definition ysfx_parse_menu.cpp:147
YSFX_API uint32_t ysfx_get_num_inputs(ysfx_t *fx)
Definition ysfx.cpp:600
YSFX_API void ysfx_bank_free(ysfx_bank_t *bank)
Definition ysfx_preset.cpp:59
int ysfx_enum_vars_callback_t(const char *name, ysfx_real *var, void *userdata)
Definition ysfx.h:337
YSFX_API const char * ysfx_get_output_name(ysfx_t *fx, uint32_t index)
Definition ysfx.cpp:624
YSFX_API ysfx_menu_t * ysfx_parse_menu(const char *text)
Definition ysfx_parse_menu.cpp:122
struct ysfx_state_slider_s ysfx_state_slider_t
YSFX_API bool ysfx_has_section(ysfx_t *fx, uint32_t type)
Definition ysfx.cpp:698
YSFX_API bool ysfx_is_compiled(ysfx_t *fx)
Definition ysfx.cpp:450
@ ysfx_mod_super
Definition ysfx.h:394
@ ysfx_mod_alt
Definition ysfx.h:393
@ ysfx_mod_shift
Definition ysfx.h:391
@ ysfx_mod_ctrl
Definition ysfx.h:392
YSFX_API void ysfx_register_audio_format(ysfx_config_t *config, ysfx_audio_format_t *afmt)
Definition ysfx_config.cpp:100
YSFX_API void ysfx_set_data_root(ysfx_config_t *config, const char *root)
Definition ysfx_config.cpp:48
YSFX_API void ysfx_config_add_ref(ysfx_config_t *config)
Definition ysfx_config.cpp:38
struct ysfx_config_s ysfx_config_t
Definition ysfx.h:69
YSFX_API ysfx_real ysfx_slider_get_value(ysfx_t *fx, uint32_t index)
Definition ysfx.cpp:796
YSFX_API const char * ysfx_slider_get_enum_name(ysfx_t *fx, uint32_t slider_index, uint32_t enum_index)
Definition ysfx.cpp:763
YSFX_API void ysfx_gfx_add_key(ysfx_t *fx, uint32_t mods, uint32_t key, bool press)
Definition ysfx.cpp:1463
YSFX_API void ysfx_init(ysfx_t *fx)
Definition ysfx.cpp:906
YSFX_API bool ysfx_slider_is_enum(ysfx_t *fx, uint32_t index)
Definition ysfx.cpp:737
YSFX_API const char * ysfx_get_file_path(ysfx_t *fx)
Definition ysfx.cpp:564
YSFX_API void ysfx_set_sample_rate(ysfx_t *fx, ysfx_real samplerate)
Definition ysfx.cpp:892
ysfx_compile_option_e
Definition ysfx.h:195
@ ysfx_compile_no_serialize
Definition ysfx.h:197
@ ysfx_compile_no_gfx
Definition ysfx.h:199
enum ysfx_log_level_e ysfx_log_level
#define YSFX_API
Definition ysfx.h:42
YSFX_API void ysfx_gfx_setup(ysfx_t *fx, ysfx_gfx_config_t *gc)
Definition ysfx.cpp:1433
YSFX_API void ysfx_set_log_reporter(ysfx_config_t *config, ysfx_log_reporter_t *reporter)
Definition ysfx_config.cpp:111
YSFX_API bool ysfx_wants_meters(ysfx_t *fx)
Definition ysfx.cpp:632
YSFX_API void ysfx_get_pdc_channels(ysfx_t *fx, uint32_t channels[2])
Definition ysfx.cpp:956
struct ysfx_gfx_config_s ysfx_gfx_config_t
YSFX_API const char * ysfx_get_name(ysfx_t *fx)
Definition ysfx.cpp:556
struct ysfx_slider_range_s ysfx_slider_range_t
YSFX_API void ysfx_add_ref(ysfx_t *fx)
Definition ysfx.cpp:187
enum ysfx_load_option_e ysfx_load_option_t
YSFX_API const char * ysfx_get_data_root(ysfx_config_t *config)
Definition ysfx_config.cpp:58
YSFX_API void ysfx_set_import_root(ysfx_config_t *config, const char *root)
Definition ysfx_config.cpp:43