LMMS
Loading...
Searching...
No Matches
ysfx.cpp File Reference
#include "ysfx.hpp"
#include "ysfx_config.hpp"
#include "ysfx_eel_utils.hpp"
#include <type_traits>
#include <algorithm>
#include <functional>
#include <deque>
#include <set>
#include <new>
#include <stdexcept>
#include <cstring>
#include <cassert>

Classes

struct  ysfx_api_initializer

Macros

#define AUTOVAR(name, value)

Enumerations

enum  { ysfx_max_file_handles = 64 }

Functions

ysfx_thread_id_t ysfx_get_thread_id ()
void ysfx_set_thread_id (ysfx_thread_id_t id)
ysfx_tysfx_new (ysfx_config_t *config)
void ysfx_free (ysfx_t *fx)
void ysfx_add_ref (ysfx_t *fx)
ysfx_config_tysfx_get_config (ysfx_t *fx)
bool ysfx_load_file (ysfx_t *fx, const char *filepath, uint32_t loadopts)
bool ysfx_compile (ysfx_t *fx, uint32_t compileopts)
bool ysfx_is_compiled (ysfx_t *fx)
void ysfx_unload_source (ysfx_t *fx)
void ysfx_unload_code (ysfx_t *fx)
void ysfx_unload (ysfx_t *fx)
bool ysfx_is_loaded (ysfx_t *fx)
void ysfx_fill_file_enums (ysfx_t *fx)
void ysfx_fix_invalid_enums (ysfx_t *fx)
const char * ysfx_get_name (ysfx_t *fx)
const char * ysfx_get_file_path (ysfx_t *fx)
const char * ysfx_get_author (ysfx_t *fx)
uint32_t ysfx_get_tags (ysfx_t *fx, const char **dest, uint32_t destsize)
const char * ysfx_get_tag (ysfx_t *fx, uint32_t index)
uint32_t ysfx_get_num_inputs (ysfx_t *fx)
uint32_t ysfx_get_num_outputs (ysfx_t *fx)
const char * ysfx_get_input_name (ysfx_t *fx, uint32_t index)
const char * ysfx_get_output_name (ysfx_t *fx, uint32_t index)
bool ysfx_wants_meters (ysfx_t *fx)
bool ysfx_get_gfx_dim (ysfx_t *fx, uint32_t dim[2])
ysfx_section_t * ysfx_search_section (ysfx_t *fx, uint32_t type, ysfx_toplevel_t **origin)
bool ysfx_has_section (ysfx_t *fx, uint32_t type)
bool ysfx_slider_exists (ysfx_t *fx, uint32_t index)
const char * ysfx_slider_get_name (ysfx_t *fx, uint32_t index)
bool ysfx_slider_get_range (ysfx_t *fx, uint32_t index, ysfx_slider_range_t *range)
bool ysfx_slider_is_enum (ysfx_t *fx, uint32_t index)
uint32_t ysfx_slider_get_enum_names (ysfx_t *fx, uint32_t index, const char **dest, uint32_t destsize)
const char * ysfx_slider_get_enum_name (ysfx_t *fx, uint32_t slider_index, uint32_t enum_index)
bool ysfx_slider_is_path (ysfx_t *fx, uint32_t index)
bool ysfx_slider_is_initially_visible (ysfx_t *fx, uint32_t index)
ysfx_real ysfx_slider_get_value (ysfx_t *fx, uint32_t index)
void ysfx_slider_set_value (ysfx_t *fx, uint32_t index, ysfx_real value)
std::string ysfx_resolve_import_path (ysfx_t *fx, const std::string &name, const std::string &origin)
uint32_t ysfx_get_block_size (ysfx_t *fx)
ysfx_real ysfx_get_sample_rate (ysfx_t *fx)
void ysfx_set_block_size (ysfx_t *fx, uint32_t blocksize)
void ysfx_set_sample_rate (ysfx_t *fx, ysfx_real samplerate)
void ysfx_set_midi_capacity (ysfx_t *fx, uint32_t capacity, bool extensible)
void ysfx_init (ysfx_t *fx)
void ysfx_first_init (ysfx_t *fx)
ysfx_real ysfx_get_pdc_delay (ysfx_t *fx)
void ysfx_get_pdc_channels (ysfx_t *fx, uint32_t channels[2])
bool ysfx_get_pdc_midi (ysfx_t *fx)
void ysfx_update_slider_visibility_mask (ysfx_t *fx)
void ysfx_set_time_info (ysfx_t *fx, const ysfx_time_info_t *info)
bool ysfx_send_midi (ysfx_t *fx, const ysfx_midi_event_t *event)
bool ysfx_receive_midi (ysfx_t *fx, ysfx_midi_event_t *event)
bool ysfx_receive_midi_from_bus (ysfx_t *fx, uint32_t bus, ysfx_midi_event_t *event)
uint32_t ysfx_current_midi_bus (ysfx_t *fx)
bool ysfx_send_trigger (ysfx_t *fx, uint32_t index)
uint64_t ysfx_fetch_slider_changes (ysfx_t *fx)
uint64_t ysfx_fetch_slider_automations (ysfx_t *fx)
uint64_t ysfx_get_slider_visibility (ysfx_t *fx)
template<class Real>
void ysfx_process_generic (ysfx_t *fx, const Real *const *ins, Real *const *outs, uint32_t num_ins, uint32_t num_outs, uint32_t num_frames)
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)
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)
void ysfx_clear_files (ysfx_t *fx)
ysfx_file_t * ysfx_get_file (ysfx_t *fx, uint32_t handle, std::unique_lock< ysfx::mutex > &lock, std::unique_lock< ysfx::mutex > *list_lock)
int32_t ysfx_insert_file (ysfx_t *fx, ysfx_file_t *file)
bool ysfx_load_state (ysfx_t *fx, ysfx_state_t *state)
ysfx_state_tysfx_save_state (ysfx_t *fx)
void ysfx_state_free (ysfx_state_t *state)
ysfx_state_tysfx_state_dup (ysfx_state_t *state_in)
void ysfx_serialize (ysfx_t *fx)
uint32_t ysfx_get_slider_of_var (ysfx_t *fx, EEL_F *var)
const char * ysfx_get_bank_path (ysfx_t *fx)
void ysfx_enum_vars (ysfx_t *fx, ysfx_enum_vars_callback_t *callback, void *userdata)
ysfx_realysfx_find_var (ysfx_t *fx, const char *name)
void ysfx_read_vmem (ysfx_t *fx, uint32_t addr, ysfx_real *dest, uint32_t count)
bool ysfx_find_data_file (ysfx_t *fx, EEL_F *file, std::string &result)
ysfx_file_type_t ysfx_detect_file_type (ysfx_t *fx, const char *path, void **fmtobj)
void ysfx_gfx_setup (ysfx_t *fx, ysfx_gfx_config_t *gc)
bool ysfx_gfx_wants_retina (ysfx_t *fx)
void ysfx_gfx_add_key (ysfx_t *fx, uint32_t mods, uint32_t key, bool press)
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)
bool ysfx_gfx_run (ysfx_t *fx)

Variables

static ysfx_thread_id_t ysfx_thread_id

Macro Definition Documentation

◆ AUTOVAR

#define AUTOVAR ( name,
value )
Value:
*(fx->var.name = NSEEL_VM_regvar(vm, #name)) = (value)
EEL_F *(* NSEEL_VM_regvar)(NSEEL_VMCTX ctx, const char *name)
Definition eel_import.h:13
static PuglViewHint int value
Definition pugl.h:1708
static const char * name
Definition pugl.h:1582

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
ysfx_max_file_handles 

Function Documentation

◆ ysfx_add_ref()

void ysfx_add_ref ( ysfx_t * fx)

◆ ysfx_clear_files()

void ysfx_clear_files ( ysfx_t * fx)

◆ ysfx_compile()

bool ysfx_compile ( ysfx_t * fx,
uint32_t compileopts )

◆ ysfx_current_midi_bus()

uint32_t ysfx_current_midi_bus ( ysfx_t * fx)

◆ ysfx_detect_file_type()

ysfx_file_type_t ysfx_detect_file_type ( ysfx_t * fx,
const char * path,
void ** fmtobj )

◆ ysfx_enum_vars()

void ysfx_enum_vars ( ysfx_t * fx,
ysfx_enum_vars_callback_t * callback,
void * userdata )

◆ ysfx_fetch_slider_automations()

uint64_t ysfx_fetch_slider_automations ( ysfx_t * fx)

◆ ysfx_fetch_slider_changes()

uint64_t ysfx_fetch_slider_changes ( ysfx_t * fx)

◆ ysfx_fill_file_enums()

void ysfx_fill_file_enums ( ysfx_t * fx)

◆ ysfx_find_data_file()

bool ysfx_find_data_file ( ysfx_t * fx,
EEL_F * file,
std::string & result )

◆ ysfx_find_var()

ysfx_real * ysfx_find_var ( ysfx_t * fx,
const char * name )

◆ ysfx_first_init()

void ysfx_first_init ( ysfx_t * fx)

◆ ysfx_fix_invalid_enums()

void ysfx_fix_invalid_enums ( ysfx_t * fx)

◆ ysfx_free()

void ysfx_free ( ysfx_t * fx)

◆ ysfx_get_author()

const char * ysfx_get_author ( ysfx_t * fx)

◆ ysfx_get_bank_path()

const char * ysfx_get_bank_path ( ysfx_t * fx)

◆ ysfx_get_block_size()

uint32_t ysfx_get_block_size ( ysfx_t * fx)

◆ ysfx_get_config()

ysfx_config_t * ysfx_get_config ( ysfx_t * fx)

◆ ysfx_get_file()

ysfx_file_t * ysfx_get_file ( ysfx_t * fx,
uint32_t handle,
std::unique_lock< ysfx::mutex > & lock,
std::unique_lock< ysfx::mutex > * list_lock )

◆ ysfx_get_file_path()

const char * ysfx_get_file_path ( ysfx_t * fx)

◆ ysfx_get_gfx_dim()

bool ysfx_get_gfx_dim ( ysfx_t * fx,
uint32_t dim[2] )

◆ ysfx_get_input_name()

const char * ysfx_get_input_name ( ysfx_t * fx,
uint32_t index )

◆ ysfx_get_name()

const char * ysfx_get_name ( ysfx_t * fx)

◆ ysfx_get_num_inputs()

uint32_t ysfx_get_num_inputs ( ysfx_t * fx)

◆ ysfx_get_num_outputs()

uint32_t ysfx_get_num_outputs ( ysfx_t * fx)

◆ ysfx_get_output_name()

const char * ysfx_get_output_name ( ysfx_t * fx,
uint32_t index )

◆ ysfx_get_pdc_channels()

void ysfx_get_pdc_channels ( ysfx_t * fx,
uint32_t channels[2] )

◆ ysfx_get_pdc_delay()

ysfx_real ysfx_get_pdc_delay ( ysfx_t * fx)

◆ ysfx_get_pdc_midi()

bool ysfx_get_pdc_midi ( ysfx_t * fx)

◆ ysfx_get_sample_rate()

ysfx_real ysfx_get_sample_rate ( ysfx_t * fx)

◆ ysfx_get_slider_of_var()

uint32_t ysfx_get_slider_of_var ( ysfx_t * fx,
EEL_F * var )

◆ ysfx_get_slider_visibility()

uint64_t ysfx_get_slider_visibility ( ysfx_t * fx)

◆ ysfx_get_tag()

const char * ysfx_get_tag ( ysfx_t * fx,
uint32_t index )

◆ ysfx_get_tags()

uint32_t ysfx_get_tags ( ysfx_t * fx,
const char ** dest,
uint32_t destsize )

◆ ysfx_get_thread_id()

ysfx_thread_id_t ysfx_get_thread_id ( )

◆ ysfx_gfx_add_key()

void ysfx_gfx_add_key ( ysfx_t * fx,
uint32_t mods,
uint32_t key,
bool press )

◆ ysfx_gfx_run()

bool ysfx_gfx_run ( ysfx_t * fx)

◆ ysfx_gfx_setup()

void ysfx_gfx_setup ( ysfx_t * fx,
ysfx_gfx_config_t * gc )

◆ ysfx_gfx_update_mouse()

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 )

◆ ysfx_gfx_wants_retina()

bool ysfx_gfx_wants_retina ( ysfx_t * fx)

◆ ysfx_has_section()

bool ysfx_has_section ( ysfx_t * fx,
uint32_t type )

◆ ysfx_init()

void ysfx_init ( ysfx_t * fx)

◆ ysfx_insert_file()

int32_t ysfx_insert_file ( ysfx_t * fx,
ysfx_file_t * file )

◆ ysfx_is_compiled()

bool ysfx_is_compiled ( ysfx_t * fx)

◆ ysfx_is_loaded()

bool ysfx_is_loaded ( ysfx_t * fx)

◆ ysfx_load_file()

bool ysfx_load_file ( ysfx_t * fx,
const char * filepath,
uint32_t loadopts )

◆ ysfx_load_state()

bool ysfx_load_state ( ysfx_t * fx,
ysfx_state_t * state )

◆ ysfx_new()

ysfx_t * ysfx_new ( ysfx_config_t * config)

◆ ysfx_process_double()

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 )

◆ ysfx_process_float()

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 )

◆ ysfx_process_generic()

template<class Real>
void ysfx_process_generic ( ysfx_t * fx,
const Real *const * ins,
Real *const * outs,
uint32_t num_ins,
uint32_t num_outs,
uint32_t num_frames )

◆ ysfx_read_vmem()

void ysfx_read_vmem ( ysfx_t * fx,
uint32_t addr,
ysfx_real * dest,
uint32_t count )

◆ ysfx_receive_midi()

bool ysfx_receive_midi ( ysfx_t * fx,
ysfx_midi_event_t * event )

◆ ysfx_receive_midi_from_bus()

bool ysfx_receive_midi_from_bus ( ysfx_t * fx,
uint32_t bus,
ysfx_midi_event_t * event )

◆ ysfx_resolve_import_path()

std::string ysfx_resolve_import_path ( ysfx_t * fx,
const std::string & name,
const std::string & origin )

◆ ysfx_save_state()

ysfx_state_t * ysfx_save_state ( ysfx_t * fx)

◆ ysfx_search_section()

ysfx_section_t * ysfx_search_section ( ysfx_t * fx,
uint32_t type,
ysfx_toplevel_t ** origin )

◆ ysfx_send_midi()

bool ysfx_send_midi ( ysfx_t * fx,
const ysfx_midi_event_t * event )

◆ ysfx_send_trigger()

bool ysfx_send_trigger ( ysfx_t * fx,
uint32_t index )

◆ ysfx_serialize()

void ysfx_serialize ( ysfx_t * fx)

◆ ysfx_set_block_size()

void ysfx_set_block_size ( ysfx_t * fx,
uint32_t blocksize )

◆ ysfx_set_midi_capacity()

void ysfx_set_midi_capacity ( ysfx_t * fx,
uint32_t capacity,
bool extensible )

◆ ysfx_set_sample_rate()

void ysfx_set_sample_rate ( ysfx_t * fx,
ysfx_real samplerate )

◆ ysfx_set_thread_id()

void ysfx_set_thread_id ( ysfx_thread_id_t id)

◆ ysfx_set_time_info()

void ysfx_set_time_info ( ysfx_t * fx,
const ysfx_time_info_t * info )

◆ ysfx_slider_exists()

bool ysfx_slider_exists ( ysfx_t * fx,
uint32_t index )

◆ ysfx_slider_get_enum_name()

const char * ysfx_slider_get_enum_name ( ysfx_t * fx,
uint32_t slider_index,
uint32_t enum_index )

◆ ysfx_slider_get_enum_names()

uint32_t ysfx_slider_get_enum_names ( ysfx_t * fx,
uint32_t index,
const char ** dest,
uint32_t destsize )

◆ ysfx_slider_get_name()

const char * ysfx_slider_get_name ( ysfx_t * fx,
uint32_t index )

◆ ysfx_slider_get_range()

bool ysfx_slider_get_range ( ysfx_t * fx,
uint32_t index,
ysfx_slider_range_t * range )

◆ ysfx_slider_get_value()

ysfx_real ysfx_slider_get_value ( ysfx_t * fx,
uint32_t index )

◆ ysfx_slider_is_enum()

bool ysfx_slider_is_enum ( ysfx_t * fx,
uint32_t index )

◆ ysfx_slider_is_initially_visible()

bool ysfx_slider_is_initially_visible ( ysfx_t * fx,
uint32_t index )

◆ ysfx_slider_is_path()

bool ysfx_slider_is_path ( ysfx_t * fx,
uint32_t index )

◆ ysfx_slider_set_value()

void ysfx_slider_set_value ( ysfx_t * fx,
uint32_t index,
ysfx_real value )

◆ ysfx_state_dup()

ysfx_state_t * ysfx_state_dup ( ysfx_state_t * state_in)

◆ ysfx_state_free()

void ysfx_state_free ( ysfx_state_t * state)

◆ ysfx_unload()

void ysfx_unload ( ysfx_t * fx)

◆ ysfx_unload_code()

void ysfx_unload_code ( ysfx_t * fx)

◆ ysfx_unload_source()

void ysfx_unload_source ( ysfx_t * fx)

◆ ysfx_update_slider_visibility_mask()

void ysfx_update_slider_visibility_mask ( ysfx_t * fx)

◆ ysfx_wants_meters()

bool ysfx_wants_meters ( ysfx_t * fx)

Variable Documentation

◆ ysfx_thread_id

ysfx_thread_id_t ysfx_thread_id
thread_localstatic