diff options
289 files changed, 29961 insertions, 5829 deletions
diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index c101a94c88..09ff2454ee 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -2,6 +2,14 @@ # Each line is a file pattern followed by one or more owners. # Owners can be @users, @org/teams or emails +# Buildsystem + +.* @godotengine/buildsystem +.github/ @godotengine/buildsystem +*.py @godotengine/buildsystem +SConstruct @godotengine/buildsystem +SCsub @godotengine/buildsystem + # Core /core/ @godotengine/core @@ -35,6 +43,9 @@ doc_classes/* @godotengine/documentation /drivers/unix/ @godotengine/_platforms /drivers/windows/ @godotengine/windows +## Misc +/drivers/png/ @godotengine/import + # Editor /editor/*debugger* @godotengine/debugger @@ -129,9 +140,9 @@ doc_classes/* @godotengine/documentation # Platform /platform/android/ @godotengine/android -/platform/iphone/ @godotengine/iphone +/platform/iphone/ @godotengine/ios /platform/javascript/ @godotengine/html5 -/platform/linuxbsd/ @godotengine/linuxbsd +/platform/linuxbsd/ @godotengine/linux-bsd /platform/osx/ @godotengine/macos /platform/uwp/ @godotengine/uwp /platform/windows/ @godotengine/windows @@ -145,9 +156,11 @@ doc_classes/* @godotengine/documentation /scene/debugger/ @godotengine/debugger /scene/gui/ @godotengine/gui-nodes /scene/main/ @godotengine/core +/scene/resources/default_theme/ @godotengine/gui-nodes /scene/resources/font.* @godotengine/gui-nodes /scene/resources/text_line.* @godotengine/gui-nodes /scene/resources/text_paragraph.* @godotengine/gui-nodes +/scene/resources/visual_shader*.* @godotengine/shaders # Servers diff --git a/SConstruct b/SConstruct index 000c918808..90cc99dd47 100644 --- a/SConstruct +++ b/SConstruct @@ -617,7 +617,7 @@ if selected_platform in platform_list: if env["minizip"]: env.Append(CPPDEFINES=["MINIZIP_ENABLED"]) - editor_module_list = ["regex"] + editor_module_list = ["freetype", "regex"] if env["tools"] and not env.module_check_dependencies("tools", editor_module_list): print( "Build option 'module_" diff --git a/core/config/project_settings.cpp b/core/config/project_settings.cpp index b4ca31d77a..c872ae2162 100644 --- a/core/config/project_settings.cpp +++ b/core/config/project_settings.cpp @@ -32,6 +32,7 @@ #include "core/core_bind.h" #include "core/core_string_names.h" +#include "core/input/input_map.h" #include "core/io/file_access_network.h" #include "core/io/file_access_pack.h" #include "core/io/marshalls.h" @@ -124,6 +125,11 @@ void ProjectSettings::set_restart_if_changed(const String &p_name, bool p_restar props[p_name].restart_if_changed = p_restart; } +void ProjectSettings::set_as_basic(const String &p_name, bool p_basic) { + ERR_FAIL_COND_MSG(!props.has(p_name), "Request for nonexistent project setting: " + p_name + "."); + props[p_name].basic = p_basic; +} + void ProjectSettings::set_ignore_value_in_docs(const String &p_name, bool p_ignore) { ERR_FAIL_COND_MSG(!props.has(p_name), "Request for nonexistent project setting: " + p_name + "."); #ifdef DEBUG_METHODS_ENABLED @@ -269,6 +275,10 @@ void ProjectSettings::_get_property_list(List<PropertyInfo> *p_list) const { vc.flags = PROPERTY_USAGE_EDITOR | PROPERTY_USAGE_STORAGE; } + if (v->basic) { + vc.flags |= PROPERTY_USAGE_EDITOR_BASIC_SETTING; + } + if (v->restart_if_changed) { vc.flags |= PROPERTY_USAGE_RESTART_IF_CHANGED; } @@ -278,7 +288,7 @@ void ProjectSettings::_get_property_list(List<PropertyInfo> *p_list) const { for (Set<_VCSort>::Element *E = vclist.front(); E; E = E->next()) { String prop_info_name = E->get().name; int dot = prop_info_name.find("."); - if (dot != -1) { + if (dot != -1 && !custom_prop_info.has(prop_info_name)) { prop_info_name = prop_info_name.substr(0, dot); } @@ -908,7 +918,7 @@ Error ProjectSettings::save_custom(const String &p_path, const CustomMap &p_cust } } -Variant _GLOBAL_DEF(const String &p_var, const Variant &p_default, bool p_restart_if_changed, bool p_ignore_value_in_docs) { +Variant _GLOBAL_DEF(const String &p_var, const Variant &p_default, bool p_restart_if_changed, bool p_ignore_value_in_docs, bool p_basic) { Variant ret; if (!ProjectSettings::get_singleton()->has_setting(p_var)) { ProjectSettings::get_singleton()->set(p_var, p_default); @@ -917,6 +927,7 @@ Variant _GLOBAL_DEF(const String &p_var, const Variant &p_default, bool p_restar ProjectSettings::get_singleton()->set_initial_value(p_var, p_default); ProjectSettings::get_singleton()->set_builtin_order(p_var); + ProjectSettings::get_singleton()->set_as_basic(p_var, p_basic); ProjectSettings::get_singleton()->set_restart_if_changed(p_var, p_restart_if_changed); ProjectSettings::get_singleton()->set_ignore_value_in_docs(p_var, p_ignore_value_in_docs); return ret; @@ -1047,29 +1058,47 @@ void ProjectSettings::_bind_methods() { ClassDB::bind_method(D_METHOD("save_custom", "file"), &ProjectSettings::_save_custom_bnd); } +void ProjectSettings::_add_builtin_input_map() { + if (InputMap::get_singleton()) { + OrderedHashMap<String, List<Ref<InputEvent>>> builtins = InputMap::get_singleton()->get_builtins(); + + for (OrderedHashMap<String, List<Ref<InputEvent>>>::Element E = builtins.front(); E; E = E.next()) { + Array events; + + // Convert list of input events into array + for (List<Ref<InputEvent>>::Element *I = E.get().front(); I; I = I->next()) { + events.push_back(I->get()); + } + + Dictionary action; + action["deadzone"] = Variant(0.5f); + action["events"] = events; + + String action_name = "input/" + E.key(); + GLOBAL_DEF(action_name, action); + input_presets.push_back(action_name); + } + } +} + ProjectSettings::ProjectSettings() { // Initialization of engine variables should be done in the setup() method, // so that the values can be overridden from project.godot or project.binary. singleton = this; - Array events; - Dictionary action; - Ref<InputEventKey> key; - Ref<InputEventJoypadButton> joyb; - - GLOBAL_DEF("application/config/name", ""); - GLOBAL_DEF("application/config/description", ""); + GLOBAL_DEF_BASIC("application/config/name", ""); + GLOBAL_DEF_BASIC("application/config/description", ""); custom_prop_info["application/config/description"] = PropertyInfo(Variant::STRING, "application/config/description", PROPERTY_HINT_MULTILINE_TEXT); - GLOBAL_DEF("application/run/main_scene", ""); + GLOBAL_DEF_BASIC("application/run/main_scene", ""); custom_prop_info["application/run/main_scene"] = PropertyInfo(Variant::STRING, "application/run/main_scene", PROPERTY_HINT_FILE, "*.tscn,*.scn,*.res"); GLOBAL_DEF("application/run/disable_stdout", false); GLOBAL_DEF("application/run/disable_stderr", false); GLOBAL_DEF("application/config/use_custom_user_dir", false); GLOBAL_DEF("application/config/custom_user_dir_name", ""); GLOBAL_DEF("application/config/project_settings_override", ""); - GLOBAL_DEF("audio/default_bus_layout", "res://default_bus_layout.tres"); - custom_prop_info["audio/default_bus_layout"] = PropertyInfo(Variant::STRING, "audio/default_bus_layout", PROPERTY_HINT_FILE, "*.tres"); + GLOBAL_DEF_BASIC("audio/buses/default_bus_layout", "res://default_bus_layout.tres"); + custom_prop_info["audio/buses/default_bus_layout"] = PropertyInfo(Variant::STRING, "audio/buses/default_bus_layout", PROPERTY_HINT_FILE, "*.tres"); PackedStringArray extensions = PackedStringArray(); extensions.push_back("gd"); @@ -1078,172 +1107,16 @@ ProjectSettings::ProjectSettings() { } extensions.push_back("shader"); - GLOBAL_DEF("editor/search_in_file_extensions", extensions); - custom_prop_info["editor/search_in_file_extensions"] = PropertyInfo(Variant::PACKED_STRING_ARRAY, "editor/search_in_file_extensions"); - - GLOBAL_DEF("editor/script_templates_search_path", "res://script_templates"); - custom_prop_info["editor/script_templates_search_path"] = PropertyInfo(Variant::STRING, "editor/script_templates_search_path", PROPERTY_HINT_DIR); - - action = Dictionary(); - action["deadzone"] = Variant(0.5f); - events = Array(); - key.instance(); - key->set_keycode(KEY_ENTER); - events.push_back(key); - key.instance(); - key->set_keycode(KEY_KP_ENTER); - events.push_back(key); - key.instance(); - key->set_keycode(KEY_SPACE); - events.push_back(key); - joyb.instance(); - joyb->set_button_index(JOY_BUTTON_A); - events.push_back(joyb); - action["events"] = events; - GLOBAL_DEF("input/ui_accept", action); - input_presets.push_back("input/ui_accept"); - - action = Dictionary(); - action["deadzone"] = Variant(0.5f); - events = Array(); - key.instance(); - key->set_keycode(KEY_SPACE); - events.push_back(key); - joyb.instance(); - joyb->set_button_index(JOY_BUTTON_Y); - events.push_back(joyb); - action["events"] = events; - GLOBAL_DEF("input/ui_select", action); - input_presets.push_back("input/ui_select"); - - action = Dictionary(); - action["deadzone"] = Variant(0.5f); - events = Array(); - key.instance(); - key->set_keycode(KEY_ESCAPE); - events.push_back(key); - joyb.instance(); - joyb->set_button_index(JOY_BUTTON_B); - events.push_back(joyb); - action["events"] = events; - GLOBAL_DEF("input/ui_cancel", action); - input_presets.push_back("input/ui_cancel"); - - action = Dictionary(); - action["deadzone"] = Variant(0.5f); - events = Array(); - key.instance(); - key->set_keycode(KEY_TAB); - events.push_back(key); - action["events"] = events; - GLOBAL_DEF("input/ui_focus_next", action); - input_presets.push_back("input/ui_focus_next"); - - action = Dictionary(); - action["deadzone"] = Variant(0.5f); - events = Array(); - key.instance(); - key->set_keycode(KEY_TAB); - key->set_shift(true); - events.push_back(key); - action["events"] = events; - GLOBAL_DEF("input/ui_focus_prev", action); - input_presets.push_back("input/ui_focus_prev"); - - action = Dictionary(); - action["deadzone"] = Variant(0.5f); - events = Array(); - key.instance(); - key->set_keycode(KEY_LEFT); - events.push_back(key); - joyb.instance(); - joyb->set_button_index(JOY_BUTTON_DPAD_LEFT); - events.push_back(joyb); - action["events"] = events; - GLOBAL_DEF("input/ui_left", action); - input_presets.push_back("input/ui_left"); - - action = Dictionary(); - action["deadzone"] = Variant(0.5f); - events = Array(); - key.instance(); - key->set_keycode(KEY_RIGHT); - events.push_back(key); - joyb.instance(); - joyb->set_button_index(JOY_BUTTON_DPAD_RIGHT); - events.push_back(joyb); - action["events"] = events; - GLOBAL_DEF("input/ui_right", action); - input_presets.push_back("input/ui_right"); - - action = Dictionary(); - action["deadzone"] = Variant(0.5f); - events = Array(); - key.instance(); - key->set_keycode(KEY_UP); - events.push_back(key); - joyb.instance(); - joyb->set_button_index(JOY_BUTTON_DPAD_UP); - events.push_back(joyb); - action["events"] = events; - GLOBAL_DEF("input/ui_up", action); - input_presets.push_back("input/ui_up"); - - action = Dictionary(); - action["deadzone"] = Variant(0.5f); - events = Array(); - key.instance(); - key->set_keycode(KEY_DOWN); - events.push_back(key); - joyb.instance(); - joyb->set_button_index(JOY_BUTTON_DPAD_DOWN); - events.push_back(joyb); - action["events"] = events; - GLOBAL_DEF("input/ui_down", action); - input_presets.push_back("input/ui_down"); - - action = Dictionary(); - action["deadzone"] = Variant(0.5f); - events = Array(); - key.instance(); - key->set_keycode(KEY_PAGEUP); - events.push_back(key); - action["events"] = events; - GLOBAL_DEF("input/ui_page_up", action); - input_presets.push_back("input/ui_page_up"); - - action = Dictionary(); - action["deadzone"] = Variant(0.5f); - events = Array(); - key.instance(); - key->set_keycode(KEY_PAGEDOWN); - events.push_back(key); - action["events"] = events; - GLOBAL_DEF("input/ui_page_down", action); - input_presets.push_back("input/ui_page_down"); - - action = Dictionary(); - action["deadzone"] = Variant(0.5f); - events = Array(); - key.instance(); - key->set_keycode(KEY_HOME); - events.push_back(key); - action["events"] = events; - GLOBAL_DEF("input/ui_home", action); - input_presets.push_back("input/ui_home"); - - action = Dictionary(); - action["deadzone"] = Variant(0.5f); - events = Array(); - key.instance(); - key->set_keycode(KEY_END); - events.push_back(key); - action["events"] = events; - GLOBAL_DEF("input/ui_end", action); - input_presets.push_back("input/ui_end"); + GLOBAL_DEF("editor/script/search_in_file_extensions", extensions); + custom_prop_info["editor/script/search_in_file_extensions"] = PropertyInfo(Variant::PACKED_STRING_ARRAY, "editor/script/search_in_file_extensions"); + + GLOBAL_DEF("editor/script/templates_search_path", "res://script_templates"); + custom_prop_info["editor/script/templates_search_path"] = PropertyInfo(Variant::STRING, "editor/script/templates_search_path", PROPERTY_HINT_DIR); + + _add_builtin_input_map(); custom_prop_info["display/window/handheld/orientation"] = PropertyInfo(Variant::STRING, "display/window/handheld/orientation", PROPERTY_HINT_ENUM, "landscape,portrait,reverse_landscape,reverse_portrait,sensor_landscape,sensor_portrait,sensor"); - custom_prop_info["rendering/threads/thread_model"] = PropertyInfo(Variant::INT, "rendering/threads/thread_model", PROPERTY_HINT_ENUM, "Single-Unsafe,Single-Safe,Multi-Threaded"); + custom_prop_info["rendering/driver/threads/thread_model"] = PropertyInfo(Variant::INT, "rendering/driver/threads/thread_model", PROPERTY_HINT_ENUM, "Single-Unsafe,Single-Safe,Multi-Threaded"); GLOBAL_DEF("physics/2d/run_on_thread", false); GLOBAL_DEF("physics/3d/run_on_thread", false); diff --git a/core/config/project_settings.h b/core/config/project_settings.h index 645506f302..ed8fb19fa0 100644 --- a/core/config/project_settings.h +++ b/core/config/project_settings.h @@ -58,6 +58,7 @@ protected: struct VariantContainer { int order = 0; bool persist = false; + bool basic = false; Variant variant; Variant initial; bool hide_from_editor = false; @@ -115,6 +116,9 @@ protected: Error _setup(const String &p_path, const String &p_main_pack, bool p_upwards = false); + void _add_builtin_input_map(); + +protected: static void _bind_methods(); public: @@ -128,6 +132,7 @@ public: String globalize_path(const String &p_path) const; void set_initial_value(const String &p_name, const Variant &p_value); + void set_as_basic(const String &p_name, bool p_basic); void set_restart_if_changed(const String &p_name, bool p_restart); void set_ignore_value_in_docs(const String &p_name, bool p_ignore); bool get_ignore_value_in_docs(const String &p_name) const; @@ -174,11 +179,16 @@ public: }; //not a macro any longer -Variant _GLOBAL_DEF(const String &p_var, const Variant &p_default, bool p_restart_if_changed = false, bool p_ignore_value_in_docs = false); +Variant _GLOBAL_DEF(const String &p_var, const Variant &p_default, bool p_restart_if_changed = false, bool p_ignore_value_in_docs = false, bool p_basic = false); #define GLOBAL_DEF(m_var, m_value) _GLOBAL_DEF(m_var, m_value) #define GLOBAL_DEF_RST(m_var, m_value) _GLOBAL_DEF(m_var, m_value, true) #define GLOBAL_DEF_NOVAL(m_var, m_value) _GLOBAL_DEF(m_var, m_value, false, true) #define GLOBAL_DEF_RST_NOVAL(m_var, m_value) _GLOBAL_DEF(m_var, m_value, true, true) #define GLOBAL_GET(m_var) ProjectSettings::get_singleton()->get(m_var) +#define GLOBAL_DEF_BASIC(m_var, m_value) _GLOBAL_DEF(m_var, m_value, false, false, true) +#define GLOBAL_DEF_RST_BASIC(m_var, m_value) _GLOBAL_DEF(m_var, m_value, true, false, true) +#define GLOBAL_DEF_NOVAL_BASIC(m_var, m_value) _GLOBAL_DEF(m_var, m_value, false, true, true) +#define GLOBAL_DEF_RST_NOVAL_BASIC(m_var, m_value) _GLOBAL_DEF(m_var, m_value, true, true, true) + #endif // PROJECT_SETTINGS_H diff --git a/core/core_bind.cpp b/core/core_bind.cpp index dd99c32fa8..b446f4c827 100644 --- a/core/core_bind.cpp +++ b/core/core_bind.cpp @@ -681,22 +681,6 @@ String _OS::get_unique_id() const { return OS::get_singleton()->get_unique_id(); } -int _OS::get_tablet_driver_count() const { - return OS::get_singleton()->get_tablet_driver_count(); -} - -String _OS::get_tablet_driver_name(int p_driver) const { - return OS::get_singleton()->get_tablet_driver_name(p_driver); -} - -String _OS::get_current_tablet_driver() const { - return OS::get_singleton()->get_current_tablet_driver(); -} - -void _OS::set_current_tablet_driver(const String &p_driver) { - OS::get_singleton()->set_current_tablet_driver(p_driver); -} - _OS *_OS::singleton = nullptr; void _OS::_bind_methods() { @@ -780,19 +764,12 @@ void _OS::_bind_methods() { ClassDB::bind_method(D_METHOD("request_permissions"), &_OS::request_permissions); ClassDB::bind_method(D_METHOD("get_granted_permissions"), &_OS::get_granted_permissions); - ClassDB::bind_method(D_METHOD("get_tablet_driver_count"), &_OS::get_tablet_driver_count); - ClassDB::bind_method(D_METHOD("get_tablet_driver_name", "idx"), &_OS::get_tablet_driver_name); - ClassDB::bind_method(D_METHOD("get_current_tablet_driver"), &_OS::get_current_tablet_driver); - ClassDB::bind_method(D_METHOD("set_current_tablet_driver", "name"), &_OS::set_current_tablet_driver); - ADD_PROPERTY(PropertyInfo(Variant::INT, "exit_code"), "set_exit_code", "get_exit_code"); ADD_PROPERTY(PropertyInfo(Variant::BOOL, "low_processor_usage_mode"), "set_low_processor_usage_mode", "is_in_low_processor_usage_mode"); ADD_PROPERTY(PropertyInfo(Variant::INT, "low_processor_usage_mode_sleep_usec"), "set_low_processor_usage_mode_sleep_usec", "get_low_processor_usage_mode_sleep_usec"); - ADD_PROPERTY(PropertyInfo(Variant::STRING, "tablet_driver"), "set_current_tablet_driver", "get_current_tablet_driver"); // Those default values need to be specified for the docs generator, // to avoid using values from the documentation writer's own OS instance. - ADD_PROPERTY_DEFAULT("tablet_driver", ""); ADD_PROPERTY_DEFAULT("exit_code", 0); ADD_PROPERTY_DEFAULT("low_processor_usage_mode", false); ADD_PROPERTY_DEFAULT("low_processor_usage_mode_sleep_usec", 6900); @@ -1990,7 +1967,7 @@ void _Thread::_start_func(void *ud) { } Error _Thread::start(Object *p_instance, const StringName &p_method, const Variant &p_userdata, Priority p_priority) { - ERR_FAIL_COND_V_MSG(active, ERR_ALREADY_IN_USE, "Thread already started."); + ERR_FAIL_COND_V_MSG(active.is_set(), ERR_ALREADY_IN_USE, "Thread already started."); ERR_FAIL_COND_V(!p_instance, ERR_INVALID_PARAMETER); ERR_FAIL_COND_V(p_method == StringName(), ERR_INVALID_PARAMETER); ERR_FAIL_INDEX_V(p_priority, PRIORITY_MAX, ERR_INVALID_PARAMETER); @@ -1999,7 +1976,7 @@ Error _Thread::start(Object *p_instance, const StringName &p_method, const Varia target_method = p_method; target_instance = p_instance; userdata = p_userdata; - active = true; + active.set(); Ref<_Thread> *ud = memnew(Ref<_Thread>(this)); @@ -2015,14 +1992,14 @@ String _Thread::get_id() const { } bool _Thread::is_active() const { - return active; + return active.is_set(); } Variant _Thread::wait_to_finish() { - ERR_FAIL_COND_V_MSG(!active, Variant(), "Thread must be active to wait for its completion."); + ERR_FAIL_COND_V_MSG(!active.is_set(), Variant(), "Thread must be active to wait for its completion."); thread.wait_to_finish(); Variant r = ret; - active = false; + active.clear(); target_method = StringName(); target_instance = nullptr; userdata = Variant(); diff --git a/core/core_bind.h b/core/core_bind.h index 7f945a9314..435269dac5 100644 --- a/core/core_bind.h +++ b/core/core_bind.h @@ -40,6 +40,7 @@ #include "core/os/os.h" #include "core/os/semaphore.h" #include "core/os/thread.h" +#include "core/templates/safe_refcount.h" class _ResourceLoader : public Object { GDCLASS(_ResourceLoader, Object); @@ -247,11 +248,6 @@ public: bool request_permissions(); Vector<String> get_granted_permissions() const; - int get_tablet_driver_count() const; - String get_tablet_driver_name(int p_driver) const; - String get_current_tablet_driver() const; - void set_current_tablet_driver(const String &p_driver); - static _OS *get_singleton() { return singleton; } _OS() { singleton = this; } @@ -559,7 +555,7 @@ class _Thread : public Reference { protected: Variant ret; Variant userdata; - volatile bool active = false; + SafeFlag active; Object *target_instance = nullptr; StringName target_method; Thread thread; diff --git a/core/error/error_macros.h b/core/error/error_macros.h index 8eb6217ce8..f909a67d55 100644 --- a/core/error/error_macros.h +++ b/core/error/error_macros.h @@ -33,6 +33,8 @@ #include "core/typedefs.h" +#include "core/templates/safe_refcount.h" + class String; enum ErrorHandlerType { @@ -577,10 +579,10 @@ void _err_print_index_error(const char *p_function, const char *p_file, int p_li */ #define WARN_DEPRECATED \ if (true) { \ - static volatile bool warning_shown = false; \ - if (!warning_shown) { \ + static SafeFlag warning_shown; \ + if (!warning_shown.is_set()) { \ _err_print_error(FUNCTION_STR, __FILE__, __LINE__, "This method has been deprecated and will be removed in the future.", ERR_HANDLER_WARNING); \ - warning_shown = true; \ + warning_shown.set(); \ } \ } else \ ((void)0) @@ -590,10 +592,10 @@ void _err_print_index_error(const char *p_function, const char *p_file, int p_li */ #define WARN_DEPRECATED_MSG(m_msg) \ if (true) { \ - static volatile bool warning_shown = false; \ - if (!warning_shown) { \ + static SafeFlag warning_shown; \ + if (!warning_shown.is_set()) { \ _err_print_error(FUNCTION_STR, __FILE__, __LINE__, "This method has been deprecated and will be removed in the future.", DEBUG_STR(m_msg), ERR_HANDLER_WARNING); \ - warning_shown = true; \ + warning_shown.set(); \ } \ } else \ ((void)0) diff --git a/core/input/input.cpp b/core/input/input.cpp index 48e573626d..90d96e3876 100644 --- a/core/input/input.cpp +++ b/core/input/input.cpp @@ -604,21 +604,21 @@ void Input::_parse_input_event_impl(const Ref<InputEvent> &p_event, bool p_is_em } } - for (const Map<StringName, InputMap::Action>::Element *E = InputMap::get_singleton()->get_action_map().front(); E; E = E->next()) { - if (InputMap::get_singleton()->event_is_action(p_event, E->key())) { + for (OrderedHashMap<StringName, InputMap::Action>::ConstElement E = InputMap::get_singleton()->get_action_map().front(); E; E = E.next()) { + if (InputMap::get_singleton()->event_is_action(p_event, E.key())) { // If not echo and action pressed state has changed - if (!p_event->is_echo() && is_action_pressed(E->key(), false) != p_event->is_action_pressed(E->key())) { + if (!p_event->is_echo() && is_action_pressed(E.key(), false) != p_event->is_action_pressed(E.key())) { Action action; action.physics_frame = Engine::get_singleton()->get_physics_frames(); action.process_frame = Engine::get_singleton()->get_process_frames(); - action.pressed = p_event->is_action_pressed(E->key()); + action.pressed = p_event->is_action_pressed(E.key()); action.strength = 0.0f; action.raw_strength = 0.0f; - action.exact = InputMap::get_singleton()->event_is_action(p_event, E->key(), true); - action_state[E->key()] = action; + action.exact = InputMap::get_singleton()->event_is_action(p_event, E.key(), true); + action_state[E.key()] = action; } - action_state[E->key()].strength = p_event->get_action_strength(E->key()); - action_state[E->key()].raw_strength = p_event->get_action_raw_strength(E->key()); + action_state[E.key()].strength = p_event->get_action_strength(E.key()); + action_state[E.key()].raw_strength = p_event->get_action_raw_strength(E.key()); } } diff --git a/core/input/input_event.cpp b/core/input/input_event.cpp index b1c8f1ad66..c6910d2b1f 100644 --- a/core/input/input_event.cpp +++ b/core/input/input_event.cpp @@ -384,6 +384,31 @@ String InputEventKey::to_string() { return vformat("InputEventKey: keycode=%s mods=%s physical=%s pressed=%s echo=%s", kc, mods, physical, p, e); } +Ref<InputEventKey> InputEventKey::create_reference(uint32_t p_keycode) { + Ref<InputEventKey> ie; + ie.instance(); + ie->set_keycode(p_keycode & KEY_CODE_MASK); + ie->set_unicode(p_keycode & KEY_CODE_MASK); + + if (p_keycode & KEY_MASK_SHIFT) { + ie->set_shift(true); + } + if (p_keycode & KEY_MASK_ALT) { + ie->set_alt(true); + } + if (p_keycode & KEY_MASK_CTRL) { + ie->set_control(true); + } + if (p_keycode & KEY_MASK_CMD) { + ie->set_command(true); + } + if (p_keycode & KEY_MASK_META) { + ie->set_metakey(true); + } + + return ie; +} + bool InputEventKey::action_match(const Ref<InputEvent> &p_event, bool *p_pressed, float *p_strength, float *p_raw_strength, float p_deadzone) const { Ref<InputEventKey> key = p_event; if (key.is_null()) { @@ -1011,6 +1036,14 @@ String InputEventJoypadButton::to_string() { return "InputEventJoypadButton : button_index=" + itos(button_index) + ", pressed=" + (pressed ? "true" : "false") + ", pressure=" + String(Variant(pressure)); } +Ref<InputEventJoypadButton> InputEventJoypadButton::create_reference(int p_btn_index) { + Ref<InputEventJoypadButton> ie; + ie.instance(); + ie->set_button_index(p_btn_index); + + return ie; +} + void InputEventJoypadButton::_bind_methods() { ClassDB::bind_method(D_METHOD("set_button_index", "button_index"), &InputEventJoypadButton::set_button_index); ClassDB::bind_method(D_METHOD("get_button_index"), &InputEventJoypadButton::get_button_index); diff --git a/core/input/input_event.h b/core/input/input_event.h index 1ce1fad9c2..df81b9fc75 100644 --- a/core/input/input_event.h +++ b/core/input/input_event.h @@ -260,6 +260,8 @@ public: virtual String as_text() const override; virtual String to_string() override; + static Ref<InputEventKey> create_reference(uint32_t p_keycode_with_modifier_masks); + InputEventKey() {} }; @@ -406,6 +408,8 @@ public: virtual String as_text() const override; virtual String to_string() override; + static Ref<InputEventJoypadButton> create_reference(int p_btn_index); + InputEventJoypadButton() {} }; diff --git a/core/input/input_map.cpp b/core/input/input_map.cpp index c03e64eaf4..b31c431ead 100644 --- a/core/input/input_map.cpp +++ b/core/input/input_map.cpp @@ -88,8 +88,8 @@ List<StringName> InputMap::get_actions() const { return actions; } - for (Map<StringName, Action>::Element *E = input_map.front(); E; E = E->next()) { - actions.push_back(E->key()); + for (OrderedHashMap<StringName, Action>::Element E = input_map.front(); E; E = E.next()) { + actions.push_back(E.key()); } return actions; @@ -179,12 +179,12 @@ Array InputMap::_action_get_events(const StringName &p_action) { } const List<Ref<InputEvent>> *InputMap::action_get_events(const StringName &p_action) { - const Map<StringName, Action>::Element *E = input_map.find(p_action); + const OrderedHashMap<StringName, Action>::Element E = input_map.find(p_action); if (!E) { return nullptr; } - return &E->get().inputs; + return &E.get().inputs; } bool InputMap::event_is_action(const Ref<InputEvent> &p_event, const StringName &p_action, bool p_exact_match) const { @@ -192,7 +192,7 @@ bool InputMap::event_is_action(const Ref<InputEvent> &p_event, const StringName } bool InputMap::event_get_action_status(const Ref<InputEvent> &p_event, const StringName &p_action, bool p_exact_match, bool *p_pressed, float *p_strength, float *p_raw_strength) const { - Map<StringName, Action>::Element *E = input_map.find(p_action); + OrderedHashMap<StringName, Action>::Element E = input_map.find(p_action); ERR_FAIL_COND_V_MSG(!E, false, "Request for nonexistent InputMap action '" + String(p_action) + "'."); Ref<InputEventAction> input_event_action = p_event; @@ -209,7 +209,7 @@ bool InputMap::event_get_action_status(const Ref<InputEvent> &p_event, const Str bool pressed; float strength; float raw_strength; - List<Ref<InputEvent>>::Element *event = _find_event(E->get(), p_event, p_exact_match, &pressed, &strength, &raw_strength); + List<Ref<InputEvent>>::Element *event = _find_event(E.get(), p_event, p_exact_match, &pressed, &strength, &raw_strength); if (event != nullptr) { if (p_pressed != nullptr) { *p_pressed = pressed; @@ -226,7 +226,7 @@ bool InputMap::event_get_action_status(const Ref<InputEvent> &p_event, const Str } } -const Map<StringName, InputMap::Action> &InputMap::get_action_map() const { +const OrderedHashMap<StringName, InputMap::Action> &InputMap::get_action_map() const { return input_map; } @@ -260,84 +260,444 @@ void InputMap::load_from_project_settings() { } } +struct _BuiltinActionDisplayName { + const char *name; + const char *display_name; +}; + +static const _BuiltinActionDisplayName _builtin_action_display_names[] = { + /* clang-format off */ + { "ui_accept", TTRC("Accept") }, + { "ui_select", TTRC("Select") }, + { "ui_cancel", TTRC("Cancel") }, + { "ui_focus_next", TTRC("Focus Next") }, + { "ui_focus_prev", TTRC("Focus Prev") }, + { "ui_left", TTRC("Left") }, + { "ui_right", TTRC("Right") }, + { "ui_up", TTRC("Up") }, + { "ui_down", TTRC("Down") }, + { "ui_page_up", TTRC("Page Up") }, + { "ui_page_down", TTRC("Page Down") }, + { "ui_home", TTRC("Home") }, + { "ui_end", TTRC("End") }, + { "ui_cut", TTRC("Cut") }, + { "ui_copy", TTRC("Copy") }, + { "ui_paste", TTRC("Paste") }, + { "ui_undo", TTRC("Undo") }, + { "ui_redo", TTRC("Redo") }, + { "ui_text_completion_query", TTRC("Completion Query") }, + { "ui_text_newline", TTRC("New Line") }, + { "ui_text_newline_blank", TTRC("New Blank Line") }, + { "ui_text_newline_above", TTRC("New Line Above") }, + { "ui_text_indent", TTRC("Indent") }, + { "ui_text_dedent", TTRC("Dedent") }, + { "ui_text_backspace", TTRC("Backspace") }, + { "ui_text_backspace_word", TTRC("Backspace Word") }, + { "ui_text_backspace_word.OSX", TTRC("Backspace Word") }, + { "ui_text_backspace_all_to_left", TTRC("Backspace all to Left") }, + { "ui_text_backspace_all_to_left.OSX", TTRC("Backspace all to Left") }, + { "ui_text_delete", TTRC("Delete") }, + { "ui_text_delete_word", TTRC("Delete Word") }, + { "ui_text_delete_word.OSX", TTRC("Delete Word") }, + { "ui_text_delete_all_to_right", TTRC("Delete all to Right") }, + { "ui_text_delete_all_to_right.OSX", TTRC("Delete all to Right") }, + { "ui_text_caret_left", TTRC("Caret Left") }, + { "ui_text_caret_word_left", TTRC("Caret Word Left") }, + { "ui_text_caret_word_left.OSX", TTRC("Caret Word Left") }, + { "ui_text_caret_right", TTRC("Caret Right") }, + { "ui_text_caret_word_right", TTRC("Caret Word Right") }, + { "ui_text_caret_word_right.OSX", TTRC("Caret Word Right") }, + { "ui_text_caret_up", TTRC("Caret Up") }, + { "ui_text_caret_down", TTRC("Caret Down") }, + { "ui_text_caret_line_start", TTRC("Caret Line Start") }, + { "ui_text_caret_line_start.OSX", TTRC("Caret Line Start") }, + { "ui_text_caret_line_end", TTRC("Caret Line End") }, + { "ui_text_caret_line_end.OSX", TTRC("Caret Line End") }, + { "ui_text_caret_page_up", TTRC("Caret Page Up") }, + { "ui_text_caret_page_down", TTRC("Caret Page Down") }, + { "ui_text_caret_document_start", TTRC("Caret Document Start") }, + { "ui_text_caret_document_start.OSX", TTRC("Caret Document Start") }, + { "ui_text_caret_document_end", TTRC("Caret Document End") }, + { "ui_text_caret_document_end.OSX", TTRC("Caret Document End") }, + { "ui_text_scroll_up", TTRC("Scroll Up") }, + { "ui_text_scroll_up.OSX", TTRC("Scroll Up") }, + { "ui_text_scroll_down", TTRC("Scroll Down") }, + { "ui_text_scroll_down.OSX", TTRC("Scroll Down") }, + { "ui_text_select_all", TTRC("Select All") }, + { "ui_text_toggle_insert_mode", TTRC("Toggle Insert Mode") }, + { "ui_graph_duplicate", TTRC("Duplicate Nodes") }, + { "ui_graph_delete", TTRC("Delete Nodes") }, + { "ui_filedialog_up_one_level", TTRC("Go Up One Level") }, + { "ui_filedialog_refresh", TTRC("Refresh") }, + { "ui_filedialog_show_hidden", TTRC("Show Hidden") }, + { "ui_swap_input_direction ", TTRC("Swap Input Direction") }, + { "", TTRC("")} + /* clang-format on */ +}; + +String InputMap::get_builtin_display_name(const String &p_name) const { + int len = sizeof(_builtin_action_display_names) / sizeof(_BuiltinActionDisplayName); + + for (int i = 0; i < len; i++) { + if (_builtin_action_display_names[i].name == p_name) { + return RTR(_builtin_action_display_names[i].display_name); + } + } + + return p_name; +} + +const OrderedHashMap<String, List<Ref<InputEvent>>> &InputMap::get_builtins() { + // Return cache if it has already been built. + if (default_builtin_cache.size()) { + return default_builtin_cache; + } + + List<Ref<InputEvent>> inputs; + inputs.push_back(InputEventKey::create_reference(KEY_ENTER)); + inputs.push_back(InputEventKey::create_reference(KEY_KP_ENTER)); + inputs.push_back(InputEventKey::create_reference(KEY_SPACE)); + default_builtin_cache.insert("ui_accept", inputs); + + inputs = List<Ref<InputEvent>>(); + inputs.push_back(InputEventJoypadButton::create_reference(JOY_BUTTON_Y)); + inputs.push_back(InputEventKey::create_reference(KEY_SPACE)); + default_builtin_cache.insert("ui_select", inputs); + + inputs = List<Ref<InputEvent>>(); + inputs.push_back(InputEventKey::create_reference(KEY_ESCAPE)); + default_builtin_cache.insert("ui_cancel", inputs); + + inputs = List<Ref<InputEvent>>(); + inputs.push_back(InputEventKey::create_reference(KEY_TAB)); + default_builtin_cache.insert("ui_focus_next", inputs); + + inputs = List<Ref<InputEvent>>(); + inputs.push_back(InputEventKey::create_reference(KEY_TAB | KEY_MASK_SHIFT)); + default_builtin_cache.insert("ui_focus_prev", inputs); + + inputs = List<Ref<InputEvent>>(); + inputs.push_back(InputEventKey::create_reference(KEY_LEFT)); + inputs.push_back(InputEventJoypadButton::create_reference(JOY_BUTTON_DPAD_LEFT)); + default_builtin_cache.insert("ui_left", inputs); + + inputs = List<Ref<InputEvent>>(); + inputs.push_back(InputEventKey::create_reference(KEY_RIGHT)); + inputs.push_back(InputEventJoypadButton::create_reference(JOY_BUTTON_DPAD_RIGHT)); + default_builtin_cache.insert("ui_right", inputs); + + inputs = List<Ref<InputEvent>>(); + inputs.push_back(InputEventKey::create_reference(KEY_UP)); + inputs.push_back(InputEventJoypadButton::create_reference(JOY_BUTTON_DPAD_UP)); + default_builtin_cache.insert("ui_up", inputs); + + inputs = List<Ref<InputEvent>>(); + inputs.push_back(InputEventKey::create_reference(KEY_DOWN)); + inputs.push_back(InputEventJoypadButton::create_reference(JOY_BUTTON_DPAD_DOWN)); + default_builtin_cache.insert("ui_down", inputs); + + inputs = List<Ref<InputEvent>>(); + inputs.push_back(InputEventKey::create_reference(KEY_PAGEUP)); + default_builtin_cache.insert("ui_page_up", inputs); + + inputs = List<Ref<InputEvent>>(); + inputs.push_back(InputEventKey::create_reference(KEY_PAGEDOWN)); + default_builtin_cache.insert("ui_page_down", inputs); + + inputs = List<Ref<InputEvent>>(); + inputs.push_back(InputEventKey::create_reference(KEY_HOME)); + default_builtin_cache.insert("ui_home", inputs); + + inputs = List<Ref<InputEvent>>(); + inputs.push_back(InputEventKey::create_reference(KEY_END)); + default_builtin_cache.insert("ui_end", inputs); + + // ///// UI basic Shortcuts ///// + + inputs = List<Ref<InputEvent>>(); + inputs.push_back(InputEventKey::create_reference(KEY_X | KEY_MASK_CMD)); + inputs.push_back(InputEventKey::create_reference(KEY_DELETE | KEY_MASK_SHIFT)); + default_builtin_cache.insert("ui_cut", inputs); + + inputs = List<Ref<InputEvent>>(); + inputs.push_back(InputEventKey::create_reference(KEY_C | KEY_MASK_CMD)); + inputs.push_back(InputEventKey::create_reference(KEY_INSERT | KEY_MASK_CMD)); + default_builtin_cache.insert("ui_copy", inputs); + + inputs = List<Ref<InputEvent>>(); + inputs.push_back(InputEventKey::create_reference(KEY_V | KEY_MASK_CMD)); + inputs.push_back(InputEventKey::create_reference(KEY_INSERT | KEY_MASK_SHIFT)); + default_builtin_cache.insert("ui_paste", inputs); + + inputs = List<Ref<InputEvent>>(); + inputs.push_back(InputEventKey::create_reference(KEY_Z | KEY_MASK_CMD)); + default_builtin_cache.insert("ui_undo", inputs); + + inputs = List<Ref<InputEvent>>(); + inputs.push_back(InputEventKey::create_reference(KEY_Y | KEY_MASK_CMD)); + inputs.push_back(InputEventKey::create_reference(KEY_Z | KEY_MASK_CMD | KEY_MASK_SHIFT)); + default_builtin_cache.insert("ui_redo", inputs); + + // ///// UI Text Input Shortcuts ///// + inputs = List<Ref<InputEvent>>(); + inputs.push_back(InputEventKey::create_reference(KEY_SPACE | KEY_MASK_CMD)); + default_builtin_cache.insert("ui_text_completion_query", inputs); + + inputs = List<Ref<InputEvent>>(); + inputs.push_back(InputEventKey::create_reference(KEY_TAB)); + default_builtin_cache.insert("ui_text_completion_accept", inputs); + + // Newlines + inputs = List<Ref<InputEvent>>(); + inputs.push_back(InputEventKey::create_reference(KEY_ENTER)); + inputs.push_back(InputEventKey::create_reference(KEY_KP_ENTER)); + default_builtin_cache.insert("ui_text_newline", inputs); + + inputs = List<Ref<InputEvent>>(); + + inputs.push_back(InputEventKey::create_reference(KEY_ENTER | KEY_MASK_CMD)); + inputs.push_back(InputEventKey::create_reference(KEY_KP_ENTER | KEY_MASK_CMD)); + default_builtin_cache.insert("ui_text_newline_blank", inputs); + + inputs = List<Ref<InputEvent>>(); + inputs.push_back(InputEventKey::create_reference(KEY_ENTER | KEY_MASK_SHIFT | KEY_MASK_CMD)); + inputs.push_back(InputEventKey::create_reference(KEY_KP_ENTER | KEY_MASK_SHIFT | KEY_MASK_CMD)); + default_builtin_cache.insert("ui_text_newline_above", inputs); + + // Indentation + inputs = List<Ref<InputEvent>>(); + inputs.push_back(InputEventKey::create_reference(KEY_TAB)); + default_builtin_cache.insert("ui_text_indent", inputs); + + inputs = List<Ref<InputEvent>>(); + inputs.push_back(InputEventKey::create_reference(KEY_TAB | KEY_MASK_SHIFT)); + default_builtin_cache.insert("ui_text_dedent", inputs); + + // Text Backspace and Delete + inputs = List<Ref<InputEvent>>(); + inputs.push_back(InputEventKey::create_reference(KEY_BACKSPACE)); + default_builtin_cache.insert("ui_text_backspace", inputs); + + inputs = List<Ref<InputEvent>>(); + inputs.push_back(InputEventKey::create_reference(KEY_BACKSPACE | KEY_MASK_CMD)); + default_builtin_cache.insert("ui_text_backspace_word", inputs); + + inputs = List<Ref<InputEvent>>(); + inputs.push_back(InputEventKey::create_reference(KEY_BACKSPACE | KEY_MASK_ALT)); + default_builtin_cache.insert("ui_text_backspace_word.OSX", inputs); + + inputs = List<Ref<InputEvent>>(); + default_builtin_cache.insert("ui_text_backspace_all_to_left", inputs); + + inputs = List<Ref<InputEvent>>(); + inputs.push_back(InputEventKey::create_reference(KEY_BACKSPACE | KEY_MASK_CMD)); + default_builtin_cache.insert("ui_text_backspace_all_to_left.OSX", inputs); + + inputs = List<Ref<InputEvent>>(); + inputs.push_back(InputEventKey::create_reference(KEY_DELETE)); + default_builtin_cache.insert("ui_text_delete", inputs); + + inputs = List<Ref<InputEvent>>(); + inputs.push_back(InputEventKey::create_reference(KEY_DELETE | KEY_MASK_CMD)); + default_builtin_cache.insert("ui_text_delete_word", inputs); + + inputs = List<Ref<InputEvent>>(); + inputs.push_back(InputEventKey::create_reference(KEY_DELETE | KEY_MASK_ALT)); + default_builtin_cache.insert("ui_text_delete_word.OSX", inputs); + + inputs = List<Ref<InputEvent>>(); + default_builtin_cache.insert("ui_text_delete_all_to_right", inputs); + + inputs = List<Ref<InputEvent>>(); + inputs.push_back(InputEventKey::create_reference(KEY_DELETE | KEY_MASK_CMD)); + default_builtin_cache.insert("ui_text_delete_all_to_right.OSX", inputs); + + // Text Caret Movement Left/Right + + inputs = List<Ref<InputEvent>>(); + inputs.push_back(InputEventKey::create_reference(KEY_LEFT)); + default_builtin_cache.insert("ui_text_caret_left", inputs); + + inputs = List<Ref<InputEvent>>(); + inputs.push_back(InputEventKey::create_reference(KEY_LEFT | KEY_MASK_CMD)); + default_builtin_cache.insert("ui_text_caret_word_left", inputs); + + inputs = List<Ref<InputEvent>>(); + inputs.push_back(InputEventKey::create_reference(KEY_LEFT | KEY_MASK_ALT)); + default_builtin_cache.insert("ui_text_caret_word_left.OSX", inputs); + + inputs = List<Ref<InputEvent>>(); + inputs.push_back(InputEventKey::create_reference(KEY_RIGHT)); + default_builtin_cache.insert("ui_text_caret_right", inputs); + + inputs = List<Ref<InputEvent>>(); + inputs.push_back(InputEventKey::create_reference(KEY_RIGHT | KEY_MASK_CMD)); + default_builtin_cache.insert("ui_text_caret_word_right", inputs); + + inputs = List<Ref<InputEvent>>(); + inputs.push_back(InputEventKey::create_reference(KEY_RIGHT | KEY_MASK_ALT)); + default_builtin_cache.insert("ui_text_caret_word_right.OSX", inputs); + + // Text Caret Movement Up/Down + + inputs = List<Ref<InputEvent>>(); + inputs.push_back(InputEventKey::create_reference(KEY_UP)); + default_builtin_cache.insert("ui_text_caret_up", inputs); + + inputs = List<Ref<InputEvent>>(); + inputs.push_back(InputEventKey::create_reference(KEY_DOWN)); + default_builtin_cache.insert("ui_text_caret_down", inputs); + + // Text Caret Movement Line Start/End + + inputs = List<Ref<InputEvent>>(); + inputs.push_back(InputEventKey::create_reference(KEY_HOME)); + default_builtin_cache.insert("ui_text_caret_line_start", inputs); + + inputs = List<Ref<InputEvent>>(); + inputs.push_back(InputEventKey::create_reference(KEY_A | KEY_MASK_CTRL)); + inputs.push_back(InputEventKey::create_reference(KEY_LEFT | KEY_MASK_CMD)); + default_builtin_cache.insert("ui_text_caret_line_start.OSX", inputs); + + inputs = List<Ref<InputEvent>>(); + inputs.push_back(InputEventKey::create_reference(KEY_END)); + default_builtin_cache.insert("ui_text_caret_line_end", inputs); + + inputs = List<Ref<InputEvent>>(); + inputs.push_back(InputEventKey::create_reference(KEY_E | KEY_MASK_CTRL)); + inputs.push_back(InputEventKey::create_reference(KEY_RIGHT | KEY_MASK_CMD)); + default_builtin_cache.insert("ui_text_caret_line_end.OSX", inputs); + // Text Caret Movement Page Up/Down + + inputs = List<Ref<InputEvent>>(); + inputs.push_back(InputEventKey::create_reference(KEY_PAGEUP)); + default_builtin_cache.insert("ui_text_caret_page_up", inputs); + + inputs = List<Ref<InputEvent>>(); + inputs.push_back(InputEventKey::create_reference(KEY_PAGEDOWN)); + default_builtin_cache.insert("ui_text_caret_page_down", inputs); + + // Text Caret Movement Document Start/End + + inputs = List<Ref<InputEvent>>(); + inputs.push_back(InputEventKey::create_reference(KEY_HOME | KEY_MASK_CMD)); + default_builtin_cache.insert("ui_text_caret_document_start", inputs); + + inputs = List<Ref<InputEvent>>(); + inputs.push_back(InputEventKey::create_reference(KEY_UP | KEY_MASK_CMD)); + default_builtin_cache.insert("ui_text_caret_document_start.OSX", inputs); + + inputs = List<Ref<InputEvent>>(); + inputs.push_back(InputEventKey::create_reference(KEY_END | KEY_MASK_CMD)); + default_builtin_cache.insert("ui_text_caret_document_end", inputs); + + inputs = List<Ref<InputEvent>>(); + inputs.push_back(InputEventKey::create_reference(KEY_DOWN | KEY_MASK_CMD)); + default_builtin_cache.insert("ui_text_caret_document_end.OSX", inputs); + + // Text Scrolling + + inputs = List<Ref<InputEvent>>(); + inputs.push_back(InputEventKey::create_reference(KEY_UP | KEY_MASK_CMD)); + default_builtin_cache.insert("ui_text_scroll_up", inputs); + + inputs = List<Ref<InputEvent>>(); + inputs.push_back(InputEventKey::create_reference(KEY_UP | KEY_MASK_CMD | KEY_MASK_ALT)); + default_builtin_cache.insert("ui_text_scroll_up.OSX", inputs); + + inputs = List<Ref<InputEvent>>(); + inputs.push_back(InputEventKey::create_reference(KEY_DOWN | KEY_MASK_CMD)); + default_builtin_cache.insert("ui_text_scroll_down", inputs); + + inputs = List<Ref<InputEvent>>(); + inputs.push_back(InputEventKey::create_reference(KEY_DOWN | KEY_MASK_CMD | KEY_MASK_ALT)); + default_builtin_cache.insert("ui_text_scroll_down.OSX", inputs); + + // Text Misc + + inputs = List<Ref<InputEvent>>(); + inputs.push_back(InputEventKey::create_reference(KEY_A | KEY_MASK_CMD)); + default_builtin_cache.insert("ui_text_select_all", inputs); + + inputs = List<Ref<InputEvent>>(); + inputs.push_back(InputEventKey::create_reference(KEY_INSERT)); + default_builtin_cache.insert("ui_text_toggle_insert_mode", inputs); + + inputs = List<Ref<InputEvent>>(); + inputs.push_back(InputEventKey::create_reference(KEY_MENU)); + default_builtin_cache.insert("ui_menu", inputs); + + // ///// UI Graph Shortcuts ///// + + inputs = List<Ref<InputEvent>>(); + inputs.push_back(InputEventKey::create_reference(KEY_D | KEY_MASK_CMD)); + default_builtin_cache.insert("ui_graph_duplicate", inputs); + + inputs = List<Ref<InputEvent>>(); + inputs.push_back(InputEventKey::create_reference(KEY_DELETE)); + default_builtin_cache.insert("ui_graph_delete", inputs); + + // ///// UI File Dialog Shortcuts ///// + inputs = List<Ref<InputEvent>>(); + inputs.push_back(InputEventKey::create_reference(KEY_BACKSPACE)); + default_builtin_cache.insert("ui_filedialog_up_one_level", inputs); + + inputs = List<Ref<InputEvent>>(); + inputs.push_back(InputEventKey::create_reference(KEY_F5)); + default_builtin_cache.insert("ui_filedialog_refresh", inputs); + + inputs = List<Ref<InputEvent>>(); + inputs.push_back(InputEventKey::create_reference(KEY_H)); + default_builtin_cache.insert("ui_filedialog_show_hidden", inputs); + + inputs = List<Ref<InputEvent>>(); + inputs.push_back(InputEventKey::create_reference(KEY_QUOTELEFT | KEY_MASK_CMD)); + default_builtin_cache.insert("ui_swap_input_direction", inputs); + + return default_builtin_cache; +} + void InputMap::load_default() { - Ref<InputEventKey> key; - - add_action("ui_accept"); - key.instance(); - key->set_keycode(KEY_ENTER); - action_add_event("ui_accept", key); - - key.instance(); - key->set_keycode(KEY_KP_ENTER); - action_add_event("ui_accept", key); - - key.instance(); - key->set_keycode(KEY_SPACE); - action_add_event("ui_accept", key); - - add_action("ui_select"); - key.instance(); - key->set_keycode(KEY_SPACE); - action_add_event("ui_select", key); - - add_action("ui_cancel"); - key.instance(); - key->set_keycode(KEY_ESCAPE); - action_add_event("ui_cancel", key); - - add_action("ui_focus_next"); - key.instance(); - key->set_keycode(KEY_TAB); - action_add_event("ui_focus_next", key); - - add_action("ui_focus_prev"); - key.instance(); - key->set_keycode(KEY_TAB); - key->set_shift(true); - action_add_event("ui_focus_prev", key); - - add_action("ui_left"); - key.instance(); - key->set_keycode(KEY_LEFT); - action_add_event("ui_left", key); - - add_action("ui_right"); - key.instance(); - key->set_keycode(KEY_RIGHT); - action_add_event("ui_right", key); - - add_action("ui_up"); - key.instance(); - key->set_keycode(KEY_UP); - action_add_event("ui_up", key); - - add_action("ui_down"); - key.instance(); - key->set_keycode(KEY_DOWN); - action_add_event("ui_down", key); - - add_action("ui_page_up"); - key.instance(); - key->set_keycode(KEY_PAGEUP); - action_add_event("ui_page_up", key); - - add_action("ui_page_down"); - key.instance(); - key->set_keycode(KEY_PAGEDOWN); - action_add_event("ui_page_down", key); - - add_action("ui_home"); - key.instance(); - key->set_keycode(KEY_HOME); - action_add_event("ui_home", key); - - add_action("ui_end"); - key.instance(); - key->set_keycode(KEY_END); - action_add_event("ui_end", key); - - //set("display/window/handheld/orientation", "landscape"); + OrderedHashMap<String, List<Ref<InputEvent>>> builtins = get_builtins(); + + // List of Builtins which have an override for OSX. + Vector<String> osx_builtins; + for (OrderedHashMap<String, List<Ref<InputEvent>>>::Element E = builtins.front(); E; E = E.next()) { + if (String(E.key()).ends_with(".OSX")) { + // Strip .OSX from name: some_input_name.OSX -> some_input_name + osx_builtins.push_back(String(E.key()).split(".")[0]); + } + } + + for (OrderedHashMap<String, List<Ref<InputEvent>>>::Element E = builtins.front(); E; E = E.next()) { + String fullname = E.key(); + String name = fullname.split(".")[0]; + String override_for = fullname.split(".").size() > 1 ? fullname.split(".")[1] : ""; + +#ifdef APPLE_STYLE_KEYS + if (osx_builtins.has(name) && override_for != "OSX") { + // Name has osx builtin but this particular one is for non-osx systems - so skip. + continue; + } +#else + if (override_for == "OSX") { + // Override for OSX - not needed on non-osx platforms. + continue; + } +#endif + + add_action(name); + + List<Ref<InputEvent>> inputs = E.get(); + for (List<Ref<InputEvent>>::Element *I = inputs.front(); I; I = I->next()) { + Ref<InputEventKey> iek = I->get(); + + // For the editor, only add keyboard actions. + if (iek.is_valid()) { + action_add_event(fullname, I->get()); + } + } + } } InputMap::InputMap() { diff --git a/core/input/input_map.h b/core/input/input_map.h index 28c692c7ba..99c71e1e53 100644 --- a/core/input/input_map.h +++ b/core/input/input_map.h @@ -33,6 +33,8 @@ #include "core/input/input_event.h" #include "core/object/class_db.h" +#include "core/object/object.h" +#include "core/templates/ordered_hash_map.h" class InputMap : public Object { GDCLASS(InputMap, Object); @@ -52,7 +54,8 @@ public: private: static InputMap *singleton; - mutable Map<StringName, Action> input_map; + mutable OrderedHashMap<StringName, Action> input_map; + OrderedHashMap<String, List<Ref<InputEvent>>> default_builtin_cache; List<Ref<InputEvent>>::Element *_find_event(Action &p_action, const Ref<InputEvent> &p_event, bool p_exact_match = false, bool *p_pressed = nullptr, float *p_strength = nullptr, float *p_raw_strength = nullptr) const; @@ -81,10 +84,14 @@ public: bool event_is_action(const Ref<InputEvent> &p_event, const StringName &p_action, bool p_exact_match = false) const; bool event_get_action_status(const Ref<InputEvent> &p_event, const StringName &p_action, bool p_exact_match = false, bool *p_pressed = nullptr, float *p_strength = nullptr, float *p_raw_strength = nullptr) const; - const Map<StringName, Action> &get_action_map() const; + const OrderedHashMap<StringName, Action> &get_action_map() const; void load_from_project_settings(); void load_default(); + String get_builtin_display_name(const String &p_name) const; + // Use an Ordered Map so insertion order is preserved. We want the elements to be 'grouped' somewhat. + const OrderedHashMap<String, List<Ref<InputEvent>>> &get_builtins(); + InputMap(); }; diff --git a/core/io/ip.cpp b/core/io/ip.cpp index df95785000..e1d9c19f10 100644 --- a/core/io/ip.cpp +++ b/core/io/ip.cpp @@ -40,13 +40,13 @@ VARIANT_ENUM_CAST(IP::ResolverStatus); struct _IP_ResolverPrivate { struct QueueItem { - volatile IP::ResolverStatus status; + SafeNumeric<IP::ResolverStatus> status; IP_Address response; String hostname; IP::Type type; void clear() { - status = IP::RESOLVER_STATUS_NONE; + status.set(IP::RESOLVER_STATUS_NONE); response = IP_Address(); type = IP::TYPE_NONE; hostname = ""; @@ -61,7 +61,7 @@ struct _IP_ResolverPrivate { IP::ResolverID find_empty_id() const { for (int i = 0; i < IP::RESOLVER_MAX_QUERIES; i++) { - if (queue[i].status == IP::RESOLVER_STATUS_NONE) { + if (queue[i].status.get() == IP::RESOLVER_STATUS_NONE) { return i; } } @@ -77,15 +77,15 @@ struct _IP_ResolverPrivate { void resolve_queues() { for (int i = 0; i < IP::RESOLVER_MAX_QUERIES; i++) { - if (queue[i].status != IP::RESOLVER_STATUS_WAITING) { + if (queue[i].status.get() != IP::RESOLVER_STATUS_WAITING) { continue; } queue[i].response = IP::get_singleton()->resolve_hostname(queue[i].hostname, queue[i].type); if (!queue[i].response.is_valid()) { - queue[i].status = IP::RESOLVER_STATUS_ERROR; + queue[i].status.set(IP::RESOLVER_STATUS_ERROR); } else { - queue[i].status = IP::RESOLVER_STATUS_DONE; + queue[i].status.set(IP::RESOLVER_STATUS_DONE); } } } @@ -137,10 +137,10 @@ IP::ResolverID IP::resolve_hostname_queue_item(const String &p_hostname, IP::Typ resolver->queue[id].type = p_type; if (resolver->cache.has(key) && resolver->cache[key].is_valid()) { resolver->queue[id].response = resolver->cache[key]; - resolver->queue[id].status = IP::RESOLVER_STATUS_DONE; + resolver->queue[id].status.set(IP::RESOLVER_STATUS_DONE); } else { resolver->queue[id].response = IP_Address(); - resolver->queue[id].status = IP::RESOLVER_STATUS_WAITING; + resolver->queue[id].status.set(IP::RESOLVER_STATUS_WAITING); if (resolver->thread.is_started()) { resolver->sem.post(); } else { @@ -156,12 +156,12 @@ IP::ResolverStatus IP::get_resolve_item_status(ResolverID p_id) const { MutexLock lock(resolver->mutex); - if (resolver->queue[p_id].status == IP::RESOLVER_STATUS_NONE) { + if (resolver->queue[p_id].status.get() == IP::RESOLVER_STATUS_NONE) { ERR_PRINT("Condition status == IP::RESOLVER_STATUS_NONE"); resolver->mutex.unlock(); return IP::RESOLVER_STATUS_NONE; } - return resolver->queue[p_id].status; + return resolver->queue[p_id].status.get(); } IP_Address IP::get_resolve_item_address(ResolverID p_id) const { @@ -169,7 +169,7 @@ IP_Address IP::get_resolve_item_address(ResolverID p_id) const { MutexLock lock(resolver->mutex); - if (resolver->queue[p_id].status != IP::RESOLVER_STATUS_DONE) { + if (resolver->queue[p_id].status.get() != IP::RESOLVER_STATUS_DONE) { ERR_PRINT("Resolve of '" + resolver->queue[p_id].hostname + "'' didn't complete yet."); resolver->mutex.unlock(); return IP_Address(); @@ -183,7 +183,7 @@ void IP::erase_resolve_item(ResolverID p_id) { MutexLock lock(resolver->mutex); - resolver->queue[p_id].status = IP::RESOLVER_STATUS_NONE; + resolver->queue[p_id].status.set(IP::RESOLVER_STATUS_NONE); } void IP::clear_cache(const String &p_hostname) { diff --git a/core/io/resource_loader.cpp b/core/io/resource_loader.cpp index 588af0f0ae..b34a083f1e 100644 --- a/core/io/resource_loader.cpp +++ b/core/io/resource_loader.cpp @@ -968,11 +968,11 @@ void ResourceLoader::reload_translation_remaps() { } void ResourceLoader::load_translation_remaps() { - if (!ProjectSettings::get_singleton()->has_setting("locale/translation_remaps")) { + if (!ProjectSettings::get_singleton()->has_setting("internationalization/locale/translation_remaps")) { return; } - Dictionary remaps = ProjectSettings::get_singleton()->get("locale/translation_remaps"); + Dictionary remaps = ProjectSettings::get_singleton()->get("internationalization/locale/translation_remaps"); List<Variant> keys; remaps.get_key_list(&keys); for (List<Variant>::Element *E = keys.front(); E; E = E->next()) { diff --git a/core/math/transform.h b/core/math/transform.h index 60da6f5593..1c05dbe554 100644 --- a/core/math/transform.h +++ b/core/math/transform.h @@ -51,8 +51,8 @@ public: void rotate(const Vector3 &p_axis, real_t p_phi); void rotate_basis(const Vector3 &p_axis, real_t p_phi); - void set_look_at(const Vector3 &p_eye, const Vector3 &p_target, const Vector3 &p_up); - Transform looking_at(const Vector3 &p_target, const Vector3 &p_up) const; + void set_look_at(const Vector3 &p_eye, const Vector3 &p_target, const Vector3 &p_up = Vector3(0, 1, 0)); + Transform looking_at(const Vector3 &p_target, const Vector3 &p_up = Vector3(0, 1, 0)) const; void scale(const Vector3 &p_scale); Transform scaled(const Vector3 &p_scale) const; diff --git a/core/math/vector3.h b/core/math/vector3.h index 6b4ff3f9a8..377581bb45 100644 --- a/core/math/vector3.h +++ b/core/math/vector3.h @@ -110,6 +110,7 @@ struct Vector3 { _FORCE_INLINE_ Vector3 project(const Vector3 &p_to) const; _FORCE_INLINE_ real_t angle_to(const Vector3 &p_to) const; + _FORCE_INLINE_ real_t signed_angle_to(const Vector3 &p_to, const Vector3 &p_axis) const; _FORCE_INLINE_ Vector3 direction_to(const Vector3 &p_to) const; _FORCE_INLINE_ Vector3 slide(const Vector3 &p_normal) const; @@ -230,6 +231,13 @@ real_t Vector3::angle_to(const Vector3 &p_to) const { return Math::atan2(cross(p_to).length(), dot(p_to)); } +real_t Vector3::signed_angle_to(const Vector3 &p_to, const Vector3 &p_axis) const { + Vector3 cross_to = cross(p_to); + real_t unsigned_angle = Math::atan2(cross_to.length(), dot(p_to)); + real_t sign = cross_to.dot(p_axis); + return (sign < 0) ? -unsigned_angle : unsigned_angle; +} + Vector3 Vector3::direction_to(const Vector3 &p_to) const { Vector3 ret(p_to.x - x, p_to.y - y, p_to.z - z); ret.normalize(); diff --git a/core/object/object.cpp b/core/object/object.cpp index 8f2eed3200..1a9cce49d8 100644 --- a/core/object/object.cpp +++ b/core/object/object.cpp @@ -1727,7 +1727,7 @@ void *Object::get_script_instance_binding(int p_script_language_index) { if (!_script_instance_bindings[p_script_language_index]) { void *script_data = ScriptServer::get_language(p_script_language_index)->alloc_instance_binding_data(this); if (script_data) { - atomic_increment(&instance_binding_count); + instance_binding_count.increment(); _script_instance_bindings[p_script_language_index] = script_data; } } diff --git a/core/object/object.h b/core/object/object.h index b695ce9bc3..029478873d 100644 --- a/core/object/object.h +++ b/core/object/object.h @@ -37,6 +37,7 @@ #include "core/templates/hash_map.h" #include "core/templates/list.h" #include "core/templates/map.h" +#include "core/templates/safe_refcount.h" #include "core/templates/set.h" #include "core/templates/vmap.h" #include "core/variant/callable_bind.h" @@ -125,6 +126,7 @@ enum PropertyUsageFlags { PROPERTY_USAGE_KEYING_INCREMENTS = 1 << 25, // Used in inspector to increment property when keyed in animation player PROPERTY_USAGE_DEFERRED_SET_RESOURCE = 1 << 26, // when loading, the resource for this property can be set at the end of loading PROPERTY_USAGE_EDITOR_INSTANTIATE_OBJECT = 1 << 27, // For Object properties, instantiate them when creating in editor. + PROPERTY_USAGE_EDITOR_BASIC_SETTING = 1 << 28, //for project or editor settings, show when basic settings are selected PROPERTY_USAGE_DEFAULT = PROPERTY_USAGE_STORAGE | PROPERTY_USAGE_EDITOR | PROPERTY_USAGE_NETWORK, PROPERTY_USAGE_DEFAULT_INTL = PROPERTY_USAGE_STORAGE | PROPERTY_USAGE_EDITOR | PROPERTY_USAGE_NETWORK | PROPERTY_USAGE_INTERNATIONALIZED, @@ -485,7 +487,7 @@ private: friend class Reference; bool type_is_reference = false; - uint32_t instance_binding_count = 0; + SafeNumeric<uint32_t> instance_binding_count; void *_script_instance_bindings[MAX_SCRIPT_INSTANCE_BINDINGS]; Object(bool p_reference); diff --git a/core/object/reference.cpp b/core/object/reference.cpp index 71a52a9ba5..22e4e8a336 100644 --- a/core/object/reference.cpp +++ b/core/object/reference.cpp @@ -62,7 +62,7 @@ bool Reference::reference() { if (get_script_instance()) { get_script_instance()->refcount_incremented(); } - if (instance_binding_count > 0 && !ScriptServer::are_languages_finished()) { + if (instance_binding_count.get() > 0 && !ScriptServer::are_languages_finished()) { for (int i = 0; i < MAX_SCRIPT_INSTANCE_BINDINGS; i++) { if (_script_instance_bindings[i]) { ScriptServer::get_language(i)->refcount_incremented_instance_binding(this); @@ -83,7 +83,7 @@ bool Reference::unreference() { bool script_ret = get_script_instance()->refcount_decremented(); die = die && script_ret; } - if (instance_binding_count > 0 && !ScriptServer::are_languages_finished()) { + if (instance_binding_count.get() > 0 && !ScriptServer::are_languages_finished()) { for (int i = 0; i < MAX_SCRIPT_INSTANCE_BINDINGS; i++) { if (_script_instance_bindings[i]) { bool script_ret = ScriptServer::get_language(i)->refcount_decremented_instance_binding(this); diff --git a/core/os/memory.cpp b/core/os/memory.cpp index 14808c2ce6..5910cb0e7b 100644 --- a/core/os/memory.cpp +++ b/core/os/memory.cpp @@ -60,11 +60,11 @@ void operator delete(void *p_mem, void *p_pointer, size_t check, const char *p_d #endif #ifdef DEBUG_ENABLED -uint64_t Memory::mem_usage = 0; -uint64_t Memory::max_usage = 0; +SafeNumeric<uint64_t> Memory::mem_usage; +SafeNumeric<uint64_t> Memory::max_usage; #endif -uint64_t Memory::alloc_count = 0; +SafeNumeric<uint64_t> Memory::alloc_count; void *Memory::alloc_static(size_t p_bytes, bool p_pad_align) { #ifdef DEBUG_ENABLED @@ -77,7 +77,7 @@ void *Memory::alloc_static(size_t p_bytes, bool p_pad_align) { ERR_FAIL_COND_V(!mem, nullptr); - atomic_increment(&alloc_count); + alloc_count.increment(); if (prepad) { uint64_t *s = (uint64_t *)mem; @@ -86,8 +86,8 @@ void *Memory::alloc_static(size_t p_bytes, bool p_pad_align) { uint8_t *s8 = (uint8_t *)mem; #ifdef DEBUG_ENABLED - atomic_add(&mem_usage, p_bytes); - atomic_exchange_if_greater(&max_usage, mem_usage); + uint64_t new_mem_usage = mem_usage.add(p_bytes); + max_usage.exchange_if_greater(new_mem_usage); #endif return s8 + PAD_ALIGN; } else { @@ -114,10 +114,10 @@ void *Memory::realloc_static(void *p_memory, size_t p_bytes, bool p_pad_align) { #ifdef DEBUG_ENABLED if (p_bytes > *s) { - atomic_add(&mem_usage, p_bytes - *s); - atomic_exchange_if_greater(&max_usage, mem_usage); + uint64_t new_mem_usage = mem_usage.add(p_bytes - *s); + max_usage.exchange_if_greater(new_mem_usage); } else { - atomic_sub(&mem_usage, *s - p_bytes); + mem_usage.sub(*s - p_bytes); } #endif @@ -156,14 +156,14 @@ void Memory::free_static(void *p_ptr, bool p_pad_align) { bool prepad = p_pad_align; #endif - atomic_decrement(&alloc_count); + alloc_count.decrement(); if (prepad) { mem -= PAD_ALIGN; #ifdef DEBUG_ENABLED uint64_t *s = (uint64_t *)mem; - atomic_sub(&mem_usage, *s); + mem_usage.sub(*s); #endif free(mem); @@ -178,7 +178,7 @@ uint64_t Memory::get_mem_available() { uint64_t Memory::get_mem_usage() { #ifdef DEBUG_ENABLED - return mem_usage; + return mem_usage.get(); #else return 0; #endif @@ -186,7 +186,7 @@ uint64_t Memory::get_mem_usage() { uint64_t Memory::get_mem_max_usage() { #ifdef DEBUG_ENABLED - return max_usage; + return max_usage.get(); #else return 0; #endif diff --git a/core/os/memory.h b/core/os/memory.h index c2ae3f4ae7..10e678103d 100644 --- a/core/os/memory.h +++ b/core/os/memory.h @@ -43,11 +43,11 @@ class Memory { Memory(); #ifdef DEBUG_ENABLED - static uint64_t mem_usage; - static uint64_t max_usage; + static SafeNumeric<uint64_t> mem_usage; + static SafeNumeric<uint64_t> max_usage; #endif - static uint64_t alloc_count; + static SafeNumeric<uint64_t> alloc_count; public: static void *alloc_static(size_t p_bytes, bool p_pad_align = false); diff --git a/core/os/os.h b/core/os/os.h index e02ce7d5ec..77a54ba68a 100644 --- a/core/os/os.h +++ b/core/os/os.h @@ -149,11 +149,6 @@ public: bool is_layered_allowed() const { return _allow_layered; } bool is_hidpi_allowed() const { return _allow_hidpi; } - virtual int get_tablet_driver_count() const { return 0; }; - virtual String get_tablet_driver_name(int p_driver) const { return ""; }; - virtual String get_current_tablet_driver() const { return ""; }; - virtual void set_current_tablet_driver(const String &p_driver){}; - void ensure_user_data_dir(); virtual MainLoop *get_main_loop() const = 0; diff --git a/core/os/thread.cpp b/core/os/thread.cpp index 936e5d5500..88744eed63 100644 --- a/core/os/thread.cpp +++ b/core/os/thread.cpp @@ -34,13 +34,15 @@ #if !defined(NO_THREADS) +#include "core/templates/safe_refcount.h" + Error (*Thread::set_name_func)(const String &) = nullptr; void (*Thread::set_priority_func)(Thread::Priority) = nullptr; void (*Thread::init_func)() = nullptr; void (*Thread::term_func)() = nullptr; Thread::ID Thread::main_thread_id = 1; -Thread::ID Thread::last_thread_id = 1; +SafeNumeric<Thread::ID> Thread::last_thread_id{ 1 }; thread_local Thread::ID Thread::caller_id = 1; void Thread::_set_platform_funcs( @@ -79,7 +81,7 @@ void Thread::start(Thread::Callback p_callback, void *p_user, const Settings &p_ std::thread empty_thread; thread.swap(empty_thread); } - id = atomic_increment(&last_thread_id); + id = last_thread_id.increment(); std::thread new_thread(&Thread::callback, this, p_settings, p_callback, p_user); thread.swap(new_thread); } diff --git a/core/os/thread.h b/core/os/thread.h index b5449d2ed6..76f5be182e 100644 --- a/core/os/thread.h +++ b/core/os/thread.h @@ -34,6 +34,7 @@ #include "core/typedefs.h" #if !defined(NO_THREADS) +#include "core/templates/safe_refcount.h" #include <thread> #endif @@ -61,7 +62,7 @@ private: friend class Main; static ID main_thread_id; - static ID last_thread_id; + static SafeNumeric<Thread::ID> last_thread_id; ID id = 0; static thread_local ID caller_id; diff --git a/core/os/threaded_array_processor.h b/core/os/threaded_array_processor.h index 9538ac5957..4f270001d3 100644 --- a/core/os/threaded_array_processor.h +++ b/core/os/threaded_array_processor.h @@ -40,7 +40,7 @@ template <class C, class U> struct ThreadArrayProcessData { uint32_t elements; - uint32_t index; + SafeNumeric<uint32_t> index; C *instance; U userdata; void (C::*method)(uint32_t, U); @@ -56,7 +56,7 @@ template <class T> void process_array_thread(void *ud) { T &data = *(T *)ud; while (true) { - uint32_t index = atomic_increment(&data.index); + uint32_t index = data.index.increment(); if (index >= data.elements) { break; } @@ -70,9 +70,9 @@ void thread_process_array(uint32_t p_elements, C *p_instance, M p_method, U p_us data.method = p_method; data.instance = p_instance; data.userdata = p_userdata; - data.index = 0; + data.index.set(0); data.elements = p_elements; - data.process(data.index); //process first, let threads increment for next + data.process(0); //process first, let threads increment for next int thread_count = OS::get_singleton()->get_processor_count(); Thread *threads = memnew_arr(Thread, thread_count); diff --git a/core/string/translation.cpp b/core/string/translation.cpp index 5337d46aa3..0901944360 100644 --- a/core/string/translation.cpp +++ b/core/string/translation.cpp @@ -1191,14 +1191,14 @@ bool TranslationServer::_load_translations(const String &p_from) { } void TranslationServer::setup() { - String test = GLOBAL_DEF("locale/test", ""); + String test = GLOBAL_DEF("internationalization/locale/test", ""); test = test.strip_edges(); if (test != "") { set_locale(test); } else { set_locale(OS::get_singleton()->get_locale()); } - fallback = GLOBAL_DEF("locale/fallback", "en"); + fallback = GLOBAL_DEF("internationalization/locale/fallback", "en"); #ifdef TOOLS_ENABLED { String options = ""; @@ -1210,7 +1210,7 @@ void TranslationServer::setup() { options += locale_list[idx]; idx++; } - ProjectSettings::get_singleton()->set_custom_property_info("locale/fallback", PropertyInfo(Variant::STRING, "locale/fallback", PROPERTY_HINT_ENUM, options)); + ProjectSettings::get_singleton()->set_custom_property_info("internationalization/locale/fallback", PropertyInfo(Variant::STRING, "internationalization/locale/fallback", PROPERTY_HINT_ENUM, options)); } #endif } @@ -1307,11 +1307,11 @@ void TranslationServer::_bind_methods() { void TranslationServer::load_translations() { String locale = get_locale(); - _load_translations("locale/translations"); //all - _load_translations("locale/translations_" + locale.substr(0, 2)); + _load_translations("internationalization/locale/translations"); //all + _load_translations("internationalization/locale/translations_" + locale.substr(0, 2)); if (locale.substr(0, 2) != locale) { - _load_translations("locale/translations_" + locale); + _load_translations("internationalization/locale/translations_" + locale); } } diff --git a/core/templates/cowdata.h b/core/templates/cowdata.h index 4becb1be59..6077f5f107 100644 --- a/core/templates/cowdata.h +++ b/core/templates/cowdata.h @@ -45,6 +45,9 @@ class CharString; template <class T, class V> class VMap; +// CowData is relying on this to be true +static_assert(sizeof(SafeNumeric<uint32_t>) == sizeof(uint32_t)); + template <class T> class CowData { template <class TV> @@ -60,12 +63,12 @@ private: // internal helpers - _FORCE_INLINE_ uint32_t *_get_refcount() const { + _FORCE_INLINE_ SafeNumeric<uint32_t> *_get_refcount() const { if (!_ptr) { return nullptr; } - return reinterpret_cast<uint32_t *>(_ptr) - 2; + return reinterpret_cast<SafeNumeric<uint32_t> *>(_ptr) - 2; } _FORCE_INLINE_ uint32_t *_get_size() const { @@ -192,9 +195,9 @@ void CowData<T>::_unref(void *p_data) { return; } - uint32_t *refc = _get_refcount(); + SafeNumeric<uint32_t> *refc = _get_refcount(); - if (atomic_decrement(refc) > 0) { + if (refc->decrement() > 0) { return; // still in use } // clean up @@ -219,15 +222,15 @@ void CowData<T>::_copy_on_write() { return; } - uint32_t *refc = _get_refcount(); + SafeNumeric<uint32_t> *refc = _get_refcount(); - if (unlikely(*refc > 1)) { + if (unlikely(refc->get() > 1)) { /* in use by more than me */ uint32_t current_size = *_get_size(); uint32_t *mem_new = (uint32_t *)Memory::alloc_static(_get_alloc_size(current_size), true); - *(mem_new - 2) = 1; //refcount + reinterpret_cast<SafeNumeric<uint32_t> *>(mem_new - 2)->set(1); //refcount *(mem_new - 1) = current_size; //size T *_data = (T *)(mem_new); @@ -278,7 +281,7 @@ Error CowData<T>::resize(int p_size) { uint32_t *ptr = (uint32_t *)Memory::alloc_static(alloc_size, true); ERR_FAIL_COND_V(!ptr, ERR_OUT_OF_MEMORY); *(ptr - 1) = 0; //size, currently none - *(ptr - 2) = 1; //refcount + reinterpret_cast<SafeNumeric<uint32_t> *>(ptr - 2)->set(1); //refcount _ptr = (T *)ptr; @@ -359,7 +362,7 @@ void CowData<T>::_ref(const CowData &p_from) { return; //nothing to do } - if (atomic_conditional_increment(p_from._get_refcount()) > 0) { // could reference + if (p_from._get_refcount()->increment() > 0) { // could reference _ptr = p_from._ptr; } } diff --git a/core/templates/rid_owner.cpp b/core/templates/rid_owner.cpp index f75a2eb9df..56f39ab779 100644 --- a/core/templates/rid_owner.cpp +++ b/core/templates/rid_owner.cpp @@ -30,4 +30,4 @@ #include "rid_owner.h" -volatile uint64_t RID_AllocBase::base_id = 1; +SafeNumeric<uint64_t> RID_AllocBase::base_id{ 1 }; diff --git a/core/templates/rid_owner.h b/core/templates/rid_owner.h index 3edc73b1a9..c4aa93c394 100644 --- a/core/templates/rid_owner.h +++ b/core/templates/rid_owner.h @@ -44,7 +44,7 @@ #include <typeinfo> class RID_AllocBase { - static volatile uint64_t base_id; + static SafeNumeric<uint64_t> base_id; protected: static RID _make_from_id(uint64_t p_id) { @@ -54,7 +54,7 @@ protected: } static uint64_t _gen_id() { - return atomic_increment(&base_id); + return base_id.increment(); } static RID _gen_rid() { diff --git a/core/templates/safe_refcount.cpp b/core/templates/safe_refcount.cpp deleted file mode 100644 index a915ee662f..0000000000 --- a/core/templates/safe_refcount.cpp +++ /dev/null @@ -1,161 +0,0 @@ -/*************************************************************************/ -/* safe_refcount.cpp */ -/*************************************************************************/ -/* This file is part of: */ -/* GODOT ENGINE */ -/* https://godotengine.org */ -/*************************************************************************/ -/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */ -/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */ -/* */ -/* Permission is hereby granted, free of charge, to any person obtaining */ -/* a copy of this software and associated documentation files (the */ -/* "Software"), to deal in the Software without restriction, including */ -/* without limitation the rights to use, copy, modify, merge, publish, */ -/* distribute, sublicense, and/or sell copies of the Software, and to */ -/* permit persons to whom the Software is furnished to do so, subject to */ -/* the following conditions: */ -/* */ -/* The above copyright notice and this permission notice shall be */ -/* included in all copies or substantial portions of the Software. */ -/* */ -/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */ -/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */ -/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/ -/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */ -/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */ -/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */ -/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -/*************************************************************************/ - -#include "safe_refcount.h" - -#if defined(_MSC_VER) - -/* Implementation for MSVC-Windows */ - -// don't pollute my namespace! -#include <windows.h> - -#define ATOMIC_CONDITIONAL_INCREMENT_BODY(m_pw, m_win_type, m_win_cmpxchg, m_cpp_type) \ - /* try to increment until it actually works */ \ - /* taken from boost */ \ - while (true) { \ - m_cpp_type tmp = static_cast<m_cpp_type const volatile &>(*(m_pw)); \ - if (tmp == 0) { \ - return 0; /* if zero, can't add to it anymore */ \ - } \ - if (m_win_cmpxchg((m_win_type volatile *)(m_pw), tmp + 1, tmp) == tmp) { \ - return tmp + 1; \ - } \ - } - -#define ATOMIC_EXCHANGE_IF_GREATER_BODY(m_pw, m_val, m_win_type, m_win_cmpxchg, m_cpp_type) \ - while (true) { \ - m_cpp_type tmp = static_cast<m_cpp_type const volatile &>(*(m_pw)); \ - if (tmp >= m_val) { \ - return tmp; /* already greater, or equal */ \ - } \ - if (m_win_cmpxchg((m_win_type volatile *)(m_pw), m_val, tmp) == tmp) { \ - return m_val; \ - } \ - } - -_ALWAYS_INLINE_ uint32_t _atomic_conditional_increment_impl(volatile uint32_t *pw) { - ATOMIC_CONDITIONAL_INCREMENT_BODY(pw, LONG, InterlockedCompareExchange, uint32_t); -} - -_ALWAYS_INLINE_ uint32_t _atomic_decrement_impl(volatile uint32_t *pw) { - return InterlockedDecrement((LONG volatile *)pw); -} - -_ALWAYS_INLINE_ uint32_t _atomic_increment_impl(volatile uint32_t *pw) { - return InterlockedIncrement((LONG volatile *)pw); -} - -_ALWAYS_INLINE_ uint32_t _atomic_sub_impl(volatile uint32_t *pw, volatile uint32_t val) { - return InterlockedExchangeAdd((LONG volatile *)pw, -(int32_t)val) - val; -} - -_ALWAYS_INLINE_ uint32_t _atomic_add_impl(volatile uint32_t *pw, volatile uint32_t val) { - return InterlockedAdd((LONG volatile *)pw, val); -} - -_ALWAYS_INLINE_ uint32_t _atomic_exchange_if_greater_impl(volatile uint32_t *pw, volatile uint32_t val) { - ATOMIC_EXCHANGE_IF_GREATER_BODY(pw, val, LONG, InterlockedCompareExchange, uint32_t); -} - -_ALWAYS_INLINE_ uint64_t _atomic_conditional_increment_impl(volatile uint64_t *pw) { - ATOMIC_CONDITIONAL_INCREMENT_BODY(pw, LONGLONG, InterlockedCompareExchange64, uint64_t); -} - -_ALWAYS_INLINE_ uint64_t _atomic_decrement_impl(volatile uint64_t *pw) { - return InterlockedDecrement64((LONGLONG volatile *)pw); -} - -_ALWAYS_INLINE_ uint64_t _atomic_increment_impl(volatile uint64_t *pw) { - return InterlockedIncrement64((LONGLONG volatile *)pw); -} - -_ALWAYS_INLINE_ uint64_t _atomic_sub_impl(volatile uint64_t *pw, volatile uint64_t val) { - return InterlockedExchangeAdd64((LONGLONG volatile *)pw, -(int64_t)val) - val; -} - -_ALWAYS_INLINE_ uint64_t _atomic_add_impl(volatile uint64_t *pw, volatile uint64_t val) { - return InterlockedAdd64((LONGLONG volatile *)pw, val); -} - -_ALWAYS_INLINE_ uint64_t _atomic_exchange_if_greater_impl(volatile uint64_t *pw, volatile uint64_t val) { - ATOMIC_EXCHANGE_IF_GREATER_BODY(pw, val, LONGLONG, InterlockedCompareExchange64, uint64_t); -} - -// The actual advertised functions; they'll call the right implementation - -uint32_t atomic_conditional_increment(volatile uint32_t *pw) { - return _atomic_conditional_increment_impl(pw); -} - -uint32_t atomic_decrement(volatile uint32_t *pw) { - return _atomic_decrement_impl(pw); -} - -uint32_t atomic_increment(volatile uint32_t *pw) { - return _atomic_increment_impl(pw); -} - -uint32_t atomic_sub(volatile uint32_t *pw, volatile uint32_t val) { - return _atomic_sub_impl(pw, val); -} - -uint32_t atomic_add(volatile uint32_t *pw, volatile uint32_t val) { - return _atomic_add_impl(pw, val); -} - -uint32_t atomic_exchange_if_greater(volatile uint32_t *pw, volatile uint32_t val) { - return _atomic_exchange_if_greater_impl(pw, val); -} - -uint64_t atomic_conditional_increment(volatile uint64_t *pw) { - return _atomic_conditional_increment_impl(pw); -} - -uint64_t atomic_decrement(volatile uint64_t *pw) { - return _atomic_decrement_impl(pw); -} - -uint64_t atomic_increment(volatile uint64_t *pw) { - return _atomic_increment_impl(pw); -} - -uint64_t atomic_sub(volatile uint64_t *pw, volatile uint64_t val) { - return _atomic_sub_impl(pw, val); -} - -uint64_t atomic_add(volatile uint64_t *pw, volatile uint64_t val) { - return _atomic_add_impl(pw, val); -} - -uint64_t atomic_exchange_if_greater(volatile uint64_t *pw, volatile uint64_t val) { - return _atomic_exchange_if_greater_impl(pw, val); -} -#endif diff --git a/core/templates/safe_refcount.h b/core/templates/safe_refcount.h index d94444fad6..6aebc24ec3 100644 --- a/core/templates/safe_refcount.h +++ b/core/templates/safe_refcount.h @@ -31,167 +31,281 @@ #ifndef SAFE_REFCOUNT_H #define SAFE_REFCOUNT_H -#include "core/os/mutex.h" #include "core/typedefs.h" -#include "platform_config.h" -// Atomic functions, these are used for multithread safe reference counters! +#if !defined(NO_THREADS) -#ifdef NO_THREADS +#include <atomic> -/* Bogus implementation unaware of multiprocessing */ +// Design goals for these classes: +// - No automatic conversions or arithmetic operators, +// to keep explicit the use of atomics everywhere. +// - Using acquire-release semantics, even to set the first value. +// The first value may be set relaxedly in many cases, but adding the distinction +// between relaxed and unrelaxed operation to the interface would make it needlessly +// flexible. There's negligible waste in having release semantics for the initial +// value and, as an important benefit, you can be sure the value is properly synchronized +// even with threads that are already running. template <class T> -static _ALWAYS_INLINE_ T atomic_conditional_increment(volatile T *pw) { - if (*pw == 0) { - return 0; +class SafeNumeric { + std::atomic<T> value; + +public: + _ALWAYS_INLINE_ void set(T p_value) { + value.store(p_value, std::memory_order_release); } - (*pw)++; + _ALWAYS_INLINE_ T get() const { + return value.load(std::memory_order_acquire); + } - return *pw; -} + _ALWAYS_INLINE_ T increment() { + return value.fetch_add(1, std::memory_order_acq_rel) + 1; + } -template <class T> -static _ALWAYS_INLINE_ T atomic_decrement(volatile T *pw) { - (*pw)--; + // Returns the original value instead of the new one + _ALWAYS_INLINE_ T postincrement() { + return value.fetch_add(1, std::memory_order_acq_rel); + } - return *pw; -} + _ALWAYS_INLINE_ T decrement() { + return value.fetch_sub(1, std::memory_order_acq_rel) - 1; + } -template <class T> -static _ALWAYS_INLINE_ T atomic_increment(volatile T *pw) { - (*pw)++; + // Returns the original value instead of the new one + _ALWAYS_INLINE_ T postdecrement() { + return value.fetch_sub(1, std::memory_order_acq_rel); + } - return *pw; -} + _ALWAYS_INLINE_ T add(T p_value) { + return value.fetch_add(p_value, std::memory_order_acq_rel) + p_value; + } -template <class T, class V> -static _ALWAYS_INLINE_ T atomic_sub(volatile T *pw, volatile V val) { - (*pw) -= val; + // Returns the original value instead of the new one + _ALWAYS_INLINE_ T postadd(T p_value) { + return value.fetch_add(p_value, std::memory_order_acq_rel); + } - return *pw; -} + _ALWAYS_INLINE_ T sub(T p_value) { + return value.fetch_sub(p_value, std::memory_order_acq_rel) - p_value; + } -template <class T, class V> -static _ALWAYS_INLINE_ T atomic_add(volatile T *pw, volatile V val) { - (*pw) += val; + // Returns the original value instead of the new one + _ALWAYS_INLINE_ T postsub(T p_value) { + return value.fetch_sub(p_value, std::memory_order_acq_rel); + } - return *pw; -} + _ALWAYS_INLINE_ T exchange_if_greater(T p_value) { + while (true) { + T tmp = value.load(std::memory_order_acquire); + if (tmp >= p_value) { + return tmp; // already greater, or equal + } + if (value.compare_exchange_weak(tmp, p_value, std::memory_order_release)) { + return p_value; + } + } + } -template <class T, class V> -static _ALWAYS_INLINE_ T atomic_exchange_if_greater(volatile T *pw, volatile V val) { - if (val > *pw) { - *pw = val; + _ALWAYS_INLINE_ T conditional_increment() { + while (true) { + T c = value.load(std::memory_order_acquire); + if (c == 0) { + return 0; + } + if (value.compare_exchange_weak(c, c + 1, std::memory_order_release)) { + return c + 1; + } + } } - return *pw; -} + _ALWAYS_INLINE_ explicit SafeNumeric<T>(T p_value = static_cast<T>(0)) { + set(p_value); + } +}; -#elif defined(__GNUC__) +class SafeFlag { + std::atomic_bool flag; -/* Implementation for GCC & Clang */ +public: + _ALWAYS_INLINE_ bool is_set() const { + return flag.load(std::memory_order_acquire); + } -// GCC guarantees atomic intrinsics for sizes of 1, 2, 4 and 8 bytes. -// Clang states it supports GCC atomic builtins. + _ALWAYS_INLINE_ void set() { + flag.store(true, std::memory_order_release); + } -template <class T> -static _ALWAYS_INLINE_ T atomic_conditional_increment(volatile T *pw) { - while (true) { - T tmp = static_cast<T const volatile &>(*pw); - if (tmp == 0) { - return 0; // if zero, can't add to it anymore - } - if (__sync_val_compare_and_swap(pw, tmp, tmp + 1) == tmp) { - return tmp + 1; - } + _ALWAYS_INLINE_ void clear() { + flag.store(false, std::memory_order_release); } -} -template <class T> -static _ALWAYS_INLINE_ T atomic_decrement(volatile T *pw) { - return __sync_sub_and_fetch(pw, 1); -} + _ALWAYS_INLINE_ void set_to(bool p_value) { + flag.store(p_value, std::memory_order_release); + } + + _ALWAYS_INLINE_ explicit SafeFlag(bool p_value = false) { + set_to(p_value); + } +}; + +class SafeRefCount { + SafeNumeric<uint32_t> count; + +public: + _ALWAYS_INLINE_ bool ref() { // true on success + return count.conditional_increment() != 0; + } + + _ALWAYS_INLINE_ uint32_t refval() { // none-zero on success + return count.conditional_increment(); + } + + _ALWAYS_INLINE_ bool unref() { // true if must be disposed of + return count.decrement() == 0; + } + + _ALWAYS_INLINE_ uint32_t unrefval() { // 0 if must be disposed of + return count.decrement(); + } + + _ALWAYS_INLINE_ uint32_t get() const { + return count.get(); + } + + _ALWAYS_INLINE_ void init(uint32_t p_value = 1) { + count.set(p_value); + } +}; + +#else template <class T> -static _ALWAYS_INLINE_ T atomic_increment(volatile T *pw) { - return __sync_add_and_fetch(pw, 1); -} - -template <class T, class V> -static _ALWAYS_INLINE_ T atomic_sub(volatile T *pw, volatile V val) { - return __sync_sub_and_fetch(pw, val); -} - -template <class T, class V> -static _ALWAYS_INLINE_ T atomic_add(volatile T *pw, volatile V val) { - return __sync_add_and_fetch(pw, val); -} - -template <class T, class V> -static _ALWAYS_INLINE_ T atomic_exchange_if_greater(volatile T *pw, volatile V val) { - while (true) { - T tmp = static_cast<T const volatile &>(*pw); - if (tmp >= val) { - return tmp; // already greater, or equal +class SafeNumeric { +protected: + T value; + +public: + _ALWAYS_INLINE_ void set(T p_value) { + value = p_value; + } + + _ALWAYS_INLINE_ T get() const { + return value; + } + + _ALWAYS_INLINE_ T increment() { + return ++value; + } + + _ALWAYS_INLINE_ T postincrement() { + return value++; + } + + _ALWAYS_INLINE_ T decrement() { + return --value; + } + + _ALWAYS_INLINE_ T postdecrement() { + return value--; + } + + _ALWAYS_INLINE_ T add(T p_value) { + return value += p_value; + } + + _ALWAYS_INLINE_ T postadd(T p_value) { + T old = value; + value += p_value; + return old; + } + + _ALWAYS_INLINE_ T sub(T p_value) { + return value -= p_value; + } + + _ALWAYS_INLINE_ T postsub(T p_value) { + T old = value; + value -= p_value; + return old; + } + + _ALWAYS_INLINE_ T exchange_if_greater(T p_value) { + if (value < p_value) { + value = p_value; } - if (__sync_val_compare_and_swap(pw, tmp, val) == tmp) { - return val; + return value; + } + + _ALWAYS_INLINE_ T conditional_increment() { + if (value != 0) { + return 0; + } else { + return ++value; } } -} - -#elif defined(_MSC_VER) -// For MSVC use a separate compilation unit to prevent windows.h from polluting -// the global namespace. -uint32_t atomic_conditional_increment(volatile uint32_t *pw); -uint32_t atomic_decrement(volatile uint32_t *pw); -uint32_t atomic_increment(volatile uint32_t *pw); -uint32_t atomic_sub(volatile uint32_t *pw, volatile uint32_t val); -uint32_t atomic_add(volatile uint32_t *pw, volatile uint32_t val); -uint32_t atomic_exchange_if_greater(volatile uint32_t *pw, volatile uint32_t val); - -uint64_t atomic_conditional_increment(volatile uint64_t *pw); -uint64_t atomic_decrement(volatile uint64_t *pw); -uint64_t atomic_increment(volatile uint64_t *pw); -uint64_t atomic_sub(volatile uint64_t *pw, volatile uint64_t val); -uint64_t atomic_add(volatile uint64_t *pw, volatile uint64_t val); -uint64_t atomic_exchange_if_greater(volatile uint64_t *pw, volatile uint64_t val); -#else -//no threads supported? -#error Must provide atomic functions for this platform or compiler! -#endif + _ALWAYS_INLINE_ explicit SafeNumeric<T>(T p_value = static_cast<T>(0)) : + value(p_value) { + } +}; -struct SafeRefCount { - uint32_t count = 0; +class SafeFlag { +protected: + bool flag; public: - // destroy() is called when weak_count_ drops to zero. - - _ALWAYS_INLINE_ bool ref() { // true on success + _ALWAYS_INLINE_ bool is_set() const { + return flag; + } - return atomic_conditional_increment(&count) != 0; + _ALWAYS_INLINE_ void set() { + flag = true; } - _ALWAYS_INLINE_ uint32_t refval() { // none-zero on success + _ALWAYS_INLINE_ void clear() { + flag = false; + } - return atomic_conditional_increment(&count); + _ALWAYS_INLINE_ void set_to(bool p_value) { + flag = p_value; } - _ALWAYS_INLINE_ bool unref() { // true if must be disposed of + _ALWAYS_INLINE_ explicit SafeFlag(bool p_value = false) : + flag(p_value) {} +}; + +class SafeRefCount { + uint32_t count = 0; - return atomic_decrement(&count) == 0; +public: + _ALWAYS_INLINE_ bool ref() { // true on success + if (count != 0) { + ++count; + return true; + } else { + return false; + } } - _ALWAYS_INLINE_ uint32_t unrefval() { // 0 if must be disposed of + _ALWAYS_INLINE_ uint32_t refval() { // none-zero on success + if (count != 0) { + return ++count; + } else { + return 0; + } + } - return atomic_decrement(&count); + _ALWAYS_INLINE_ bool unref() { // true if must be disposed of + return --count == 0; } - _ALWAYS_INLINE_ uint32_t get() const { // nothrow + _ALWAYS_INLINE_ uint32_t unrefval() { // 0 if must be disposed of + return --count; + } + _ALWAYS_INLINE_ uint32_t get() const { return count; } @@ -200,4 +314,6 @@ public: } }; +#endif + #endif // SAFE_REFCOUNT_H diff --git a/core/variant/variant_call.cpp b/core/variant/variant_call.cpp index 8f2cba138b..54ca1a911d 100644 --- a/core/variant/variant_call.cpp +++ b/core/variant/variant_call.cpp @@ -1059,6 +1059,7 @@ static void _register_variant_builtin_methods() { bind_method(Vector3, min_axis, sarray(), varray()); bind_method(Vector3, max_axis, sarray(), varray()); bind_method(Vector3, angle_to, sarray("to"), varray()); + bind_method(Vector3, signed_angle_to, sarray("to", "axis"), varray()); bind_method(Vector3, direction_to, sarray("b"), varray()); bind_method(Vector3, distance_to, sarray("b"), varray()); bind_method(Vector3, distance_squared_to, sarray("b"), varray()); @@ -1256,7 +1257,7 @@ static void _register_variant_builtin_methods() { bind_method(Transform, rotated, sarray("axis", "phi"), varray()); bind_method(Transform, scaled, sarray("scale"), varray()); bind_method(Transform, translated, sarray("offset"), varray()); - bind_method(Transform, looking_at, sarray("target", "up"), varray()); + bind_method(Transform, looking_at, sarray("target", "up"), varray(Vector3(0, 1, 0))); bind_method(Transform, interpolate_with, sarray("xform", "weight"), varray()); bind_method(Transform, is_equal_approx, sarray("xform"), varray()); diff --git a/doc/classes/AnimatedSprite3D.xml b/doc/classes/AnimatedSprite3D.xml index e1fb78e5b5..02ccab4e05 100644 --- a/doc/classes/AnimatedSprite3D.xml +++ b/doc/classes/AnimatedSprite3D.xml @@ -49,6 +49,11 @@ </member> </members> <signals> + <signal name="animation_finished"> + <description> + Emitted when the animation is finished (when it plays the last frame). If the animation is looping, this signal is emitted every time the last frame is drawn. + </description> + </signal> <signal name="frame_changed"> <description> Emitted when [member frame] changed. diff --git a/doc/classes/DisplayServer.xml b/doc/classes/DisplayServer.xml index d91ea6528a..a4b5e28797 100644 --- a/doc/classes/DisplayServer.xml +++ b/doc/classes/DisplayServer.xml @@ -635,6 +635,42 @@ <description> </description> </method> + <method name="tablet_get_current_driver" qualifiers="const"> + <return type="String"> + </return> + <description> + Returns current active tablet driver name. + [b]Note:[/b] This method is implemented on Windows. + </description> + </method> + <method name="tablet_get_driver_count" qualifiers="const"> + <return type="int"> + </return> + <description> + Returns the total number of available tablet drivers. + [b]Note:[/b] This method is implemented on Windows. + </description> + </method> + <method name="tablet_get_driver_name" qualifiers="const"> + <return type="String"> + </return> + <argument index="0" name="idx" type="int"> + </argument> + <description> + Returns the tablet driver name for the given index. + [b]Note:[/b] This method is implemented on Windows. + </description> + </method> + <method name="tablet_set_current_driver"> + <return type="void"> + </return> + <argument index="0" name="name" type="String"> + </argument> + <description> + Set active tablet driver name. + [b]Note:[/b] This method is implemented on Windows. + </description> + </method> <method name="virtual_keyboard_get_height" qualifiers="const"> <return type="int"> </return> diff --git a/doc/classes/OS.xml b/doc/classes/OS.xml index 8620de1378..ffcd0d4c98 100644 --- a/doc/classes/OS.xml +++ b/doc/classes/OS.xml @@ -304,24 +304,6 @@ [b]Note:[/b] This method is implemented on Android, Linux, macOS and Windows. </description> </method> - <method name="get_tablet_driver_count" qualifiers="const"> - <return type="int"> - </return> - <description> - Returns the total number of available tablet drivers. - [b]Note:[/b] This method is implemented on Windows. - </description> - </method> - <method name="get_tablet_driver_name" qualifiers="const"> - <return type="String"> - </return> - <argument index="0" name="idx" type="int"> - </argument> - <description> - Returns the tablet driver name for the given index. - [b]Note:[/b] This method is implemented on Windows. - </description> - </method> <method name="get_thread_caller_id" qualifiers="const"> <return type="int"> </return> @@ -563,9 +545,6 @@ <member name="low_processor_usage_mode_sleep_usec" type="int" setter="set_low_processor_usage_mode_sleep_usec" getter="get_low_processor_usage_mode_sleep_usec" default="6900"> The amount of sleeping between frames when the low-processor usage mode is enabled (in microseconds). Higher values will result in lower CPU usage. </member> - <member name="tablet_driver" type="String" setter="set_current_tablet_driver" getter="get_current_tablet_driver" default=""""> - The current tablet driver in use. - </member> </members> <constants> <constant name="VIDEO_DRIVER_GLES2" value="0" enum="VideoDriver"> diff --git a/doc/classes/ProjectSettings.xml b/doc/classes/ProjectSettings.xml index be72f83406..e075ca46cf 100644 --- a/doc/classes/ProjectSettings.xml +++ b/doc/classes/ProjectSettings.xml @@ -469,6 +469,12 @@ <member name="display/mouse_cursor/tooltip_position_offset" type="Vector2" setter="" getter="" default="Vector2( 10, 10 )"> Position offset for tooltips, relative to the mouse cursor's hotspot. </member> + <member name="input_devices/pen_tablet/driver" type="String" setter="" getter=""> + Specifies the tablet driver to use. If left empty, the default driver will be used. + </member> + <member name="input_devices/pen_tablet/driver.windows" type="String" setter="" getter=""> + Override for [member input_devices/pen_tablet/driver] on Windows. + </member> <member name="display/window/dpi/allow_hidpi" type="bool" setter="" getter="" default="false"> If [code]true[/code], allows HiDPI display on Windows and macOS. This setting has no effect on desktop Linux, as DPI-awareness fallbacks are not supported there. </member> @@ -513,9 +519,6 @@ <member name="display/window/size/width" type="int" setter="" getter="" default="1024"> Sets the game's main viewport width. On desktop platforms, this is the default window size. Stretch mode settings also use this as a reference when enabled. </member> - <member name="display/window/tablet_driver" type="String" setter="" getter=""> - Specifies the tablet driver to use. If left empty, the default driver will be used. - </member> <member name="display/window/text_name" type="String" setter="" getter="" default=""""> Specifies the [TextServer] to use. If left empty, the default will be used. </member> diff --git a/doc/classes/RichTextLabel.xml b/doc/classes/RichTextLabel.xml index fd32e86d7e..7ca70f5a7a 100644 --- a/doc/classes/RichTextLabel.xml +++ b/doc/classes/RichTextLabel.xml @@ -80,6 +80,27 @@ Returns the total number of paragraphs (newlines or [code]p[/code] tags in the tag stack's text tags). Considers wrapped text as one paragraph. </description> </method> + <method name="get_selected_text" qualifiers="const"> + <return type="String"> + </return> + <description> + Returns the current selection text. Does not include BBCodes. + </description> + </method> + <method name="get_selection_from" qualifiers="const"> + <return type="int"> + </return> + <description> + Returns the current selection first character index if a selection is active, [code]-1[/code] otherwise. Does not include BBCodes. + </description> + </method> + <method name="get_selection_to" qualifiers="const"> + <return type="int"> + </return> + <description> + Returns the current selection last character index if a selection is active, [code]-1[/code] otherwise. Does not include BBCodes. + </description> + </method> <method name="get_total_character_count" qualifiers="const"> <return type="int"> </return> diff --git a/doc/classes/Vector3.xml b/doc/classes/Vector3.xml index 2d129a2c86..ea80b7c248 100644 --- a/doc/classes/Vector3.xml +++ b/doc/classes/Vector3.xml @@ -68,7 +68,7 @@ <argument index="0" name="to" type="Vector3"> </argument> <description> - Returns the minimum angle to the given vector, in radians. + Returns the unsigned minimum angle to the given vector, in radians. </description> </method> <method name="bounce"> @@ -465,6 +465,17 @@ Returns a vector with each component set to one or negative one, depending on the signs of this vector's components, or zero if the component is zero, by calling [method @GlobalScope.sign] on each component. </description> </method> + <method name="signed_angle_to"> + <return type="float"> + </return> + <argument index="0" name="to" type="Vector3"> + </argument> + <argument index="1" name="axis" type="Vector3"> + </argument> + <description> + Returns the signed angle to the given vector, in radians. The sign of the angle is positive in a counter-clockwise direction and negative in a clockwise direction when viewed from the side specified by the [code]axis[/code]. + </description> + </method> <method name="slerp"> <return type="Vector3"> </return> diff --git a/drivers/alsa/SCsub b/drivers/alsa/SCsub index 91e1140b75..1d76bb18c4 100644 --- a/drivers/alsa/SCsub +++ b/drivers/alsa/SCsub @@ -2,4 +2,7 @@ Import("env") +if "alsa" in env and env["alsa"]: + env.add_source_files(env.drivers_sources, "asound-so_wrap.c") + env.add_source_files(env.drivers_sources, "*.cpp") diff --git a/drivers/alsa/asound-so_wrap.c b/drivers/alsa/asound-so_wrap.c new file mode 100644 index 0000000000..1821f683f6 --- /dev/null +++ b/drivers/alsa/asound-so_wrap.c @@ -0,0 +1,11566 @@ +// This file is generated. Do not edit! +// see https://github.com/hpvb/dynload-wrapper for details +// generated by /home/hp/Projects/godot/pulse/generate-wrapper.py 0.2 on 2021-02-18 00:19:14 +// flags: /home/hp/Projects/godot/pulse/generate-wrapper.py --include /usr/include/alsa/asoundlib.h --sys-include <alsa/asoundlib.h> --soname libasound.so.2 --init-name asound --output-header asound-so_wrap.h --output-implementation asound-so_wrap.c +// +#define snd_asoundlib_version snd_asoundlib_version_dylibloader_orig_asound +#define snd_dlpath snd_dlpath_dylibloader_orig_asound +#define snd_dlopen snd_dlopen_dylibloader_orig_asound +#define snd_dlsym snd_dlsym_dylibloader_orig_asound +#define snd_dlclose snd_dlclose_dylibloader_orig_asound +#define snd_async_add_handler snd_async_add_handler_dylibloader_orig_asound +#define snd_async_del_handler snd_async_del_handler_dylibloader_orig_asound +#define snd_async_handler_get_fd snd_async_handler_get_fd_dylibloader_orig_asound +#define snd_async_handler_get_signo snd_async_handler_get_signo_dylibloader_orig_asound +#define snd_async_handler_get_callback_private snd_async_handler_get_callback_private_dylibloader_orig_asound +#define snd_shm_area_create snd_shm_area_create_dylibloader_orig_asound +#define snd_shm_area_share snd_shm_area_share_dylibloader_orig_asound +#define snd_shm_area_destroy snd_shm_area_destroy_dylibloader_orig_asound +#define snd_user_file snd_user_file_dylibloader_orig_asound +#define snd_input_stdio_open snd_input_stdio_open_dylibloader_orig_asound +#define snd_input_stdio_attach snd_input_stdio_attach_dylibloader_orig_asound +#define snd_input_buffer_open snd_input_buffer_open_dylibloader_orig_asound +#define snd_input_close snd_input_close_dylibloader_orig_asound +#define snd_input_scanf snd_input_scanf_dylibloader_orig_asound +#define snd_input_gets snd_input_gets_dylibloader_orig_asound +#define snd_input_getc snd_input_getc_dylibloader_orig_asound +#define snd_input_ungetc snd_input_ungetc_dylibloader_orig_asound +#define snd_output_stdio_open snd_output_stdio_open_dylibloader_orig_asound +#define snd_output_stdio_attach snd_output_stdio_attach_dylibloader_orig_asound +#define snd_output_buffer_open snd_output_buffer_open_dylibloader_orig_asound +#define snd_output_buffer_string snd_output_buffer_string_dylibloader_orig_asound +#define snd_output_close snd_output_close_dylibloader_orig_asound +#define snd_output_printf snd_output_printf_dylibloader_orig_asound +#define snd_output_vprintf snd_output_vprintf_dylibloader_orig_asound +#define snd_output_puts snd_output_puts_dylibloader_orig_asound +#define snd_output_putc snd_output_putc_dylibloader_orig_asound +#define snd_output_flush snd_output_flush_dylibloader_orig_asound +#define snd_strerror snd_strerror_dylibloader_orig_asound +#define snd_lib_error_set_handler snd_lib_error_set_handler_dylibloader_orig_asound +#define snd_lib_error_set_local snd_lib_error_set_local_dylibloader_orig_asound +#define snd_config_topdir snd_config_topdir_dylibloader_orig_asound +#define snd_config_top snd_config_top_dylibloader_orig_asound +#define snd_config_load snd_config_load_dylibloader_orig_asound +#define snd_config_load_override snd_config_load_override_dylibloader_orig_asound +#define snd_config_save snd_config_save_dylibloader_orig_asound +#define snd_config_update snd_config_update_dylibloader_orig_asound +#define snd_config_update_r snd_config_update_r_dylibloader_orig_asound +#define snd_config_update_free snd_config_update_free_dylibloader_orig_asound +#define snd_config_update_free_global snd_config_update_free_global_dylibloader_orig_asound +#define snd_config_update_ref snd_config_update_ref_dylibloader_orig_asound +#define snd_config_ref snd_config_ref_dylibloader_orig_asound +#define snd_config_unref snd_config_unref_dylibloader_orig_asound +#define snd_config_search snd_config_search_dylibloader_orig_asound +#define snd_config_searchv snd_config_searchv_dylibloader_orig_asound +#define snd_config_search_definition snd_config_search_definition_dylibloader_orig_asound +#define snd_config_expand snd_config_expand_dylibloader_orig_asound +#define snd_config_evaluate snd_config_evaluate_dylibloader_orig_asound +#define snd_config_add snd_config_add_dylibloader_orig_asound +#define snd_config_add_before snd_config_add_before_dylibloader_orig_asound +#define snd_config_add_after snd_config_add_after_dylibloader_orig_asound +#define snd_config_remove snd_config_remove_dylibloader_orig_asound +#define snd_config_delete snd_config_delete_dylibloader_orig_asound +#define snd_config_delete_compound_members snd_config_delete_compound_members_dylibloader_orig_asound +#define snd_config_copy snd_config_copy_dylibloader_orig_asound +#define snd_config_make snd_config_make_dylibloader_orig_asound +#define snd_config_make_integer snd_config_make_integer_dylibloader_orig_asound +#define snd_config_make_integer64 snd_config_make_integer64_dylibloader_orig_asound +#define snd_config_make_real snd_config_make_real_dylibloader_orig_asound +#define snd_config_make_string snd_config_make_string_dylibloader_orig_asound +#define snd_config_make_pointer snd_config_make_pointer_dylibloader_orig_asound +#define snd_config_make_compound snd_config_make_compound_dylibloader_orig_asound +#define snd_config_imake_integer snd_config_imake_integer_dylibloader_orig_asound +#define snd_config_imake_integer64 snd_config_imake_integer64_dylibloader_orig_asound +#define snd_config_imake_real snd_config_imake_real_dylibloader_orig_asound +#define snd_config_imake_string snd_config_imake_string_dylibloader_orig_asound +#define snd_config_imake_safe_string snd_config_imake_safe_string_dylibloader_orig_asound +#define snd_config_imake_pointer snd_config_imake_pointer_dylibloader_orig_asound +#define snd_config_get_type snd_config_get_type_dylibloader_orig_asound +#define snd_config_is_array snd_config_is_array_dylibloader_orig_asound +#define snd_config_set_id snd_config_set_id_dylibloader_orig_asound +#define snd_config_set_integer snd_config_set_integer_dylibloader_orig_asound +#define snd_config_set_integer64 snd_config_set_integer64_dylibloader_orig_asound +#define snd_config_set_real snd_config_set_real_dylibloader_orig_asound +#define snd_config_set_string snd_config_set_string_dylibloader_orig_asound +#define snd_config_set_ascii snd_config_set_ascii_dylibloader_orig_asound +#define snd_config_set_pointer snd_config_set_pointer_dylibloader_orig_asound +#define snd_config_get_id snd_config_get_id_dylibloader_orig_asound +#define snd_config_get_integer snd_config_get_integer_dylibloader_orig_asound +#define snd_config_get_integer64 snd_config_get_integer64_dylibloader_orig_asound +#define snd_config_get_real snd_config_get_real_dylibloader_orig_asound +#define snd_config_get_ireal snd_config_get_ireal_dylibloader_orig_asound +#define snd_config_get_string snd_config_get_string_dylibloader_orig_asound +#define snd_config_get_ascii snd_config_get_ascii_dylibloader_orig_asound +#define snd_config_get_pointer snd_config_get_pointer_dylibloader_orig_asound +#define snd_config_test_id snd_config_test_id_dylibloader_orig_asound +#define snd_config_iterator_first snd_config_iterator_first_dylibloader_orig_asound +#define snd_config_iterator_next snd_config_iterator_next_dylibloader_orig_asound +#define snd_config_iterator_end snd_config_iterator_end_dylibloader_orig_asound +#define snd_config_iterator_entry snd_config_iterator_entry_dylibloader_orig_asound +#define snd_config_get_bool_ascii snd_config_get_bool_ascii_dylibloader_orig_asound +#define snd_config_get_bool snd_config_get_bool_dylibloader_orig_asound +#define snd_config_get_ctl_iface_ascii snd_config_get_ctl_iface_ascii_dylibloader_orig_asound +#define snd_config_get_ctl_iface snd_config_get_ctl_iface_dylibloader_orig_asound +#define snd_names_list snd_names_list_dylibloader_orig_asound +#define snd_names_list_free snd_names_list_free_dylibloader_orig_asound +#define snd_pcm_open snd_pcm_open_dylibloader_orig_asound +#define snd_pcm_open_lconf snd_pcm_open_lconf_dylibloader_orig_asound +#define snd_pcm_open_fallback snd_pcm_open_fallback_dylibloader_orig_asound +#define snd_pcm_close snd_pcm_close_dylibloader_orig_asound +#define snd_pcm_name snd_pcm_name_dylibloader_orig_asound +#define snd_pcm_type snd_pcm_type_dylibloader_orig_asound +#define snd_pcm_stream snd_pcm_stream_dylibloader_orig_asound +#define snd_pcm_poll_descriptors_count snd_pcm_poll_descriptors_count_dylibloader_orig_asound +#define snd_pcm_poll_descriptors snd_pcm_poll_descriptors_dylibloader_orig_asound +#define snd_pcm_poll_descriptors_revents snd_pcm_poll_descriptors_revents_dylibloader_orig_asound +#define snd_pcm_nonblock snd_pcm_nonblock_dylibloader_orig_asound +#define snd_async_add_pcm_handler snd_async_add_pcm_handler_dylibloader_orig_asound +#define snd_async_handler_get_pcm snd_async_handler_get_pcm_dylibloader_orig_asound +#define snd_pcm_info snd_pcm_info_dylibloader_orig_asound +#define snd_pcm_hw_params_current snd_pcm_hw_params_current_dylibloader_orig_asound +#define snd_pcm_hw_params snd_pcm_hw_params_dylibloader_orig_asound +#define snd_pcm_hw_free snd_pcm_hw_free_dylibloader_orig_asound +#define snd_pcm_sw_params_current snd_pcm_sw_params_current_dylibloader_orig_asound +#define snd_pcm_sw_params snd_pcm_sw_params_dylibloader_orig_asound +#define snd_pcm_prepare snd_pcm_prepare_dylibloader_orig_asound +#define snd_pcm_reset snd_pcm_reset_dylibloader_orig_asound +#define snd_pcm_status snd_pcm_status_dylibloader_orig_asound +#define snd_pcm_start snd_pcm_start_dylibloader_orig_asound +#define snd_pcm_drop snd_pcm_drop_dylibloader_orig_asound +#define snd_pcm_drain snd_pcm_drain_dylibloader_orig_asound +#define snd_pcm_pause snd_pcm_pause_dylibloader_orig_asound +#define snd_pcm_state snd_pcm_state_dylibloader_orig_asound +#define snd_pcm_hwsync snd_pcm_hwsync_dylibloader_orig_asound +#define snd_pcm_delay snd_pcm_delay_dylibloader_orig_asound +#define snd_pcm_resume snd_pcm_resume_dylibloader_orig_asound +#define snd_pcm_htimestamp snd_pcm_htimestamp_dylibloader_orig_asound +#define snd_pcm_avail snd_pcm_avail_dylibloader_orig_asound +#define snd_pcm_avail_update snd_pcm_avail_update_dylibloader_orig_asound +#define snd_pcm_avail_delay snd_pcm_avail_delay_dylibloader_orig_asound +#define snd_pcm_rewindable snd_pcm_rewindable_dylibloader_orig_asound +#define snd_pcm_rewind snd_pcm_rewind_dylibloader_orig_asound +#define snd_pcm_forwardable snd_pcm_forwardable_dylibloader_orig_asound +#define snd_pcm_forward snd_pcm_forward_dylibloader_orig_asound +#define snd_pcm_writei snd_pcm_writei_dylibloader_orig_asound +#define snd_pcm_readi snd_pcm_readi_dylibloader_orig_asound +#define snd_pcm_writen snd_pcm_writen_dylibloader_orig_asound +#define snd_pcm_readn snd_pcm_readn_dylibloader_orig_asound +#define snd_pcm_wait snd_pcm_wait_dylibloader_orig_asound +#define snd_pcm_link snd_pcm_link_dylibloader_orig_asound +#define snd_pcm_unlink snd_pcm_unlink_dylibloader_orig_asound +#define snd_pcm_query_chmaps snd_pcm_query_chmaps_dylibloader_orig_asound +#define snd_pcm_query_chmaps_from_hw snd_pcm_query_chmaps_from_hw_dylibloader_orig_asound +#define snd_pcm_free_chmaps snd_pcm_free_chmaps_dylibloader_orig_asound +#define snd_pcm_get_chmap snd_pcm_get_chmap_dylibloader_orig_asound +#define snd_pcm_set_chmap snd_pcm_set_chmap_dylibloader_orig_asound +#define snd_pcm_chmap_type_name snd_pcm_chmap_type_name_dylibloader_orig_asound +#define snd_pcm_chmap_name snd_pcm_chmap_name_dylibloader_orig_asound +#define snd_pcm_chmap_long_name snd_pcm_chmap_long_name_dylibloader_orig_asound +#define snd_pcm_chmap_print snd_pcm_chmap_print_dylibloader_orig_asound +#define snd_pcm_chmap_from_string snd_pcm_chmap_from_string_dylibloader_orig_asound +#define snd_pcm_chmap_parse_string snd_pcm_chmap_parse_string_dylibloader_orig_asound +#define snd_pcm_recover snd_pcm_recover_dylibloader_orig_asound +#define snd_pcm_set_params snd_pcm_set_params_dylibloader_orig_asound +#define snd_pcm_get_params snd_pcm_get_params_dylibloader_orig_asound +#define snd_pcm_info_sizeof snd_pcm_info_sizeof_dylibloader_orig_asound +#define snd_pcm_info_malloc snd_pcm_info_malloc_dylibloader_orig_asound +#define snd_pcm_info_free snd_pcm_info_free_dylibloader_orig_asound +#define snd_pcm_info_copy snd_pcm_info_copy_dylibloader_orig_asound +#define snd_pcm_info_get_device snd_pcm_info_get_device_dylibloader_orig_asound +#define snd_pcm_info_get_subdevice snd_pcm_info_get_subdevice_dylibloader_orig_asound +#define snd_pcm_info_get_stream snd_pcm_info_get_stream_dylibloader_orig_asound +#define snd_pcm_info_get_card snd_pcm_info_get_card_dylibloader_orig_asound +#define snd_pcm_info_get_id snd_pcm_info_get_id_dylibloader_orig_asound +#define snd_pcm_info_get_name snd_pcm_info_get_name_dylibloader_orig_asound +#define snd_pcm_info_get_subdevice_name snd_pcm_info_get_subdevice_name_dylibloader_orig_asound +#define snd_pcm_info_get_class snd_pcm_info_get_class_dylibloader_orig_asound +#define snd_pcm_info_get_subclass snd_pcm_info_get_subclass_dylibloader_orig_asound +#define snd_pcm_info_get_subdevices_count snd_pcm_info_get_subdevices_count_dylibloader_orig_asound +#define snd_pcm_info_get_subdevices_avail snd_pcm_info_get_subdevices_avail_dylibloader_orig_asound +#define snd_pcm_info_get_sync snd_pcm_info_get_sync_dylibloader_orig_asound +#define snd_pcm_info_set_device snd_pcm_info_set_device_dylibloader_orig_asound +#define snd_pcm_info_set_subdevice snd_pcm_info_set_subdevice_dylibloader_orig_asound +#define snd_pcm_info_set_stream snd_pcm_info_set_stream_dylibloader_orig_asound +#define snd_pcm_hw_params_any snd_pcm_hw_params_any_dylibloader_orig_asound +#define snd_pcm_hw_params_can_mmap_sample_resolution snd_pcm_hw_params_can_mmap_sample_resolution_dylibloader_orig_asound +#define snd_pcm_hw_params_is_double snd_pcm_hw_params_is_double_dylibloader_orig_asound +#define snd_pcm_hw_params_is_batch snd_pcm_hw_params_is_batch_dylibloader_orig_asound +#define snd_pcm_hw_params_is_block_transfer snd_pcm_hw_params_is_block_transfer_dylibloader_orig_asound +#define snd_pcm_hw_params_is_monotonic snd_pcm_hw_params_is_monotonic_dylibloader_orig_asound +#define snd_pcm_hw_params_can_overrange snd_pcm_hw_params_can_overrange_dylibloader_orig_asound +#define snd_pcm_hw_params_can_pause snd_pcm_hw_params_can_pause_dylibloader_orig_asound +#define snd_pcm_hw_params_can_resume snd_pcm_hw_params_can_resume_dylibloader_orig_asound +#define snd_pcm_hw_params_is_half_duplex snd_pcm_hw_params_is_half_duplex_dylibloader_orig_asound +#define snd_pcm_hw_params_is_joint_duplex snd_pcm_hw_params_is_joint_duplex_dylibloader_orig_asound +#define snd_pcm_hw_params_can_sync_start snd_pcm_hw_params_can_sync_start_dylibloader_orig_asound +#define snd_pcm_hw_params_can_disable_period_wakeup snd_pcm_hw_params_can_disable_period_wakeup_dylibloader_orig_asound +#define snd_pcm_hw_params_supports_audio_wallclock_ts snd_pcm_hw_params_supports_audio_wallclock_ts_dylibloader_orig_asound +#define snd_pcm_hw_params_supports_audio_ts_type snd_pcm_hw_params_supports_audio_ts_type_dylibloader_orig_asound +#define snd_pcm_hw_params_get_rate_numden snd_pcm_hw_params_get_rate_numden_dylibloader_orig_asound +#define snd_pcm_hw_params_get_sbits snd_pcm_hw_params_get_sbits_dylibloader_orig_asound +#define snd_pcm_hw_params_get_fifo_size snd_pcm_hw_params_get_fifo_size_dylibloader_orig_asound +#define snd_pcm_hw_params_sizeof snd_pcm_hw_params_sizeof_dylibloader_orig_asound +#define snd_pcm_hw_params_malloc snd_pcm_hw_params_malloc_dylibloader_orig_asound +#define snd_pcm_hw_params_free snd_pcm_hw_params_free_dylibloader_orig_asound +#define snd_pcm_hw_params_copy snd_pcm_hw_params_copy_dylibloader_orig_asound +#define snd_pcm_hw_params_get_access snd_pcm_hw_params_get_access_dylibloader_orig_asound +#define snd_pcm_hw_params_test_access snd_pcm_hw_params_test_access_dylibloader_orig_asound +#define snd_pcm_hw_params_set_access snd_pcm_hw_params_set_access_dylibloader_orig_asound +#define snd_pcm_hw_params_set_access_first snd_pcm_hw_params_set_access_first_dylibloader_orig_asound +#define snd_pcm_hw_params_set_access_last snd_pcm_hw_params_set_access_last_dylibloader_orig_asound +#define snd_pcm_hw_params_set_access_mask snd_pcm_hw_params_set_access_mask_dylibloader_orig_asound +#define snd_pcm_hw_params_get_access_mask snd_pcm_hw_params_get_access_mask_dylibloader_orig_asound +#define snd_pcm_hw_params_get_format snd_pcm_hw_params_get_format_dylibloader_orig_asound +#define snd_pcm_hw_params_test_format snd_pcm_hw_params_test_format_dylibloader_orig_asound +#define snd_pcm_hw_params_set_format snd_pcm_hw_params_set_format_dylibloader_orig_asound +#define snd_pcm_hw_params_set_format_first snd_pcm_hw_params_set_format_first_dylibloader_orig_asound +#define snd_pcm_hw_params_set_format_last snd_pcm_hw_params_set_format_last_dylibloader_orig_asound +#define snd_pcm_hw_params_set_format_mask snd_pcm_hw_params_set_format_mask_dylibloader_orig_asound +#define snd_pcm_hw_params_get_format_mask snd_pcm_hw_params_get_format_mask_dylibloader_orig_asound +#define snd_pcm_hw_params_get_subformat snd_pcm_hw_params_get_subformat_dylibloader_orig_asound +#define snd_pcm_hw_params_test_subformat snd_pcm_hw_params_test_subformat_dylibloader_orig_asound +#define snd_pcm_hw_params_set_subformat snd_pcm_hw_params_set_subformat_dylibloader_orig_asound +#define snd_pcm_hw_params_set_subformat_first snd_pcm_hw_params_set_subformat_first_dylibloader_orig_asound +#define snd_pcm_hw_params_set_subformat_last snd_pcm_hw_params_set_subformat_last_dylibloader_orig_asound +#define snd_pcm_hw_params_set_subformat_mask snd_pcm_hw_params_set_subformat_mask_dylibloader_orig_asound +#define snd_pcm_hw_params_get_subformat_mask snd_pcm_hw_params_get_subformat_mask_dylibloader_orig_asound +#define snd_pcm_hw_params_get_channels snd_pcm_hw_params_get_channels_dylibloader_orig_asound +#define snd_pcm_hw_params_get_channels_min snd_pcm_hw_params_get_channels_min_dylibloader_orig_asound +#define snd_pcm_hw_params_get_channels_max snd_pcm_hw_params_get_channels_max_dylibloader_orig_asound +#define snd_pcm_hw_params_test_channels snd_pcm_hw_params_test_channels_dylibloader_orig_asound +#define snd_pcm_hw_params_set_channels snd_pcm_hw_params_set_channels_dylibloader_orig_asound +#define snd_pcm_hw_params_set_channels_min snd_pcm_hw_params_set_channels_min_dylibloader_orig_asound +#define snd_pcm_hw_params_set_channels_max snd_pcm_hw_params_set_channels_max_dylibloader_orig_asound +#define snd_pcm_hw_params_set_channels_minmax snd_pcm_hw_params_set_channels_minmax_dylibloader_orig_asound +#define snd_pcm_hw_params_set_channels_near snd_pcm_hw_params_set_channels_near_dylibloader_orig_asound +#define snd_pcm_hw_params_set_channels_first snd_pcm_hw_params_set_channels_first_dylibloader_orig_asound +#define snd_pcm_hw_params_set_channels_last snd_pcm_hw_params_set_channels_last_dylibloader_orig_asound +#define snd_pcm_hw_params_get_rate snd_pcm_hw_params_get_rate_dylibloader_orig_asound +#define snd_pcm_hw_params_get_rate_min snd_pcm_hw_params_get_rate_min_dylibloader_orig_asound +#define snd_pcm_hw_params_get_rate_max snd_pcm_hw_params_get_rate_max_dylibloader_orig_asound +#define snd_pcm_hw_params_test_rate snd_pcm_hw_params_test_rate_dylibloader_orig_asound +#define snd_pcm_hw_params_set_rate snd_pcm_hw_params_set_rate_dylibloader_orig_asound +#define snd_pcm_hw_params_set_rate_min snd_pcm_hw_params_set_rate_min_dylibloader_orig_asound +#define snd_pcm_hw_params_set_rate_max snd_pcm_hw_params_set_rate_max_dylibloader_orig_asound +#define snd_pcm_hw_params_set_rate_minmax snd_pcm_hw_params_set_rate_minmax_dylibloader_orig_asound +#define snd_pcm_hw_params_set_rate_near snd_pcm_hw_params_set_rate_near_dylibloader_orig_asound +#define snd_pcm_hw_params_set_rate_first snd_pcm_hw_params_set_rate_first_dylibloader_orig_asound +#define snd_pcm_hw_params_set_rate_last snd_pcm_hw_params_set_rate_last_dylibloader_orig_asound +#define snd_pcm_hw_params_set_rate_resample snd_pcm_hw_params_set_rate_resample_dylibloader_orig_asound +#define snd_pcm_hw_params_get_rate_resample snd_pcm_hw_params_get_rate_resample_dylibloader_orig_asound +#define snd_pcm_hw_params_set_export_buffer snd_pcm_hw_params_set_export_buffer_dylibloader_orig_asound +#define snd_pcm_hw_params_get_export_buffer snd_pcm_hw_params_get_export_buffer_dylibloader_orig_asound +#define snd_pcm_hw_params_set_period_wakeup snd_pcm_hw_params_set_period_wakeup_dylibloader_orig_asound +#define snd_pcm_hw_params_get_period_wakeup snd_pcm_hw_params_get_period_wakeup_dylibloader_orig_asound +#define snd_pcm_hw_params_get_period_time snd_pcm_hw_params_get_period_time_dylibloader_orig_asound +#define snd_pcm_hw_params_get_period_time_min snd_pcm_hw_params_get_period_time_min_dylibloader_orig_asound +#define snd_pcm_hw_params_get_period_time_max snd_pcm_hw_params_get_period_time_max_dylibloader_orig_asound +#define snd_pcm_hw_params_test_period_time snd_pcm_hw_params_test_period_time_dylibloader_orig_asound +#define snd_pcm_hw_params_set_period_time snd_pcm_hw_params_set_period_time_dylibloader_orig_asound +#define snd_pcm_hw_params_set_period_time_min snd_pcm_hw_params_set_period_time_min_dylibloader_orig_asound +#define snd_pcm_hw_params_set_period_time_max snd_pcm_hw_params_set_period_time_max_dylibloader_orig_asound +#define snd_pcm_hw_params_set_period_time_minmax snd_pcm_hw_params_set_period_time_minmax_dylibloader_orig_asound +#define snd_pcm_hw_params_set_period_time_near snd_pcm_hw_params_set_period_time_near_dylibloader_orig_asound +#define snd_pcm_hw_params_set_period_time_first snd_pcm_hw_params_set_period_time_first_dylibloader_orig_asound +#define snd_pcm_hw_params_set_period_time_last snd_pcm_hw_params_set_period_time_last_dylibloader_orig_asound +#define snd_pcm_hw_params_get_period_size snd_pcm_hw_params_get_period_size_dylibloader_orig_asound +#define snd_pcm_hw_params_get_period_size_min snd_pcm_hw_params_get_period_size_min_dylibloader_orig_asound +#define snd_pcm_hw_params_get_period_size_max snd_pcm_hw_params_get_period_size_max_dylibloader_orig_asound +#define snd_pcm_hw_params_test_period_size snd_pcm_hw_params_test_period_size_dylibloader_orig_asound +#define snd_pcm_hw_params_set_period_size snd_pcm_hw_params_set_period_size_dylibloader_orig_asound +#define snd_pcm_hw_params_set_period_size_min snd_pcm_hw_params_set_period_size_min_dylibloader_orig_asound +#define snd_pcm_hw_params_set_period_size_max snd_pcm_hw_params_set_period_size_max_dylibloader_orig_asound +#define snd_pcm_hw_params_set_period_size_minmax snd_pcm_hw_params_set_period_size_minmax_dylibloader_orig_asound +#define snd_pcm_hw_params_set_period_size_near snd_pcm_hw_params_set_period_size_near_dylibloader_orig_asound +#define snd_pcm_hw_params_set_period_size_first snd_pcm_hw_params_set_period_size_first_dylibloader_orig_asound +#define snd_pcm_hw_params_set_period_size_last snd_pcm_hw_params_set_period_size_last_dylibloader_orig_asound +#define snd_pcm_hw_params_set_period_size_integer snd_pcm_hw_params_set_period_size_integer_dylibloader_orig_asound +#define snd_pcm_hw_params_get_periods snd_pcm_hw_params_get_periods_dylibloader_orig_asound +#define snd_pcm_hw_params_get_periods_min snd_pcm_hw_params_get_periods_min_dylibloader_orig_asound +#define snd_pcm_hw_params_get_periods_max snd_pcm_hw_params_get_periods_max_dylibloader_orig_asound +#define snd_pcm_hw_params_test_periods snd_pcm_hw_params_test_periods_dylibloader_orig_asound +#define snd_pcm_hw_params_set_periods snd_pcm_hw_params_set_periods_dylibloader_orig_asound +#define snd_pcm_hw_params_set_periods_min snd_pcm_hw_params_set_periods_min_dylibloader_orig_asound +#define snd_pcm_hw_params_set_periods_max snd_pcm_hw_params_set_periods_max_dylibloader_orig_asound +#define snd_pcm_hw_params_set_periods_minmax snd_pcm_hw_params_set_periods_minmax_dylibloader_orig_asound +#define snd_pcm_hw_params_set_periods_near snd_pcm_hw_params_set_periods_near_dylibloader_orig_asound +#define snd_pcm_hw_params_set_periods_first snd_pcm_hw_params_set_periods_first_dylibloader_orig_asound +#define snd_pcm_hw_params_set_periods_last snd_pcm_hw_params_set_periods_last_dylibloader_orig_asound +#define snd_pcm_hw_params_set_periods_integer snd_pcm_hw_params_set_periods_integer_dylibloader_orig_asound +#define snd_pcm_hw_params_get_buffer_time snd_pcm_hw_params_get_buffer_time_dylibloader_orig_asound +#define snd_pcm_hw_params_get_buffer_time_min snd_pcm_hw_params_get_buffer_time_min_dylibloader_orig_asound +#define snd_pcm_hw_params_get_buffer_time_max snd_pcm_hw_params_get_buffer_time_max_dylibloader_orig_asound +#define snd_pcm_hw_params_test_buffer_time snd_pcm_hw_params_test_buffer_time_dylibloader_orig_asound +#define snd_pcm_hw_params_set_buffer_time snd_pcm_hw_params_set_buffer_time_dylibloader_orig_asound +#define snd_pcm_hw_params_set_buffer_time_min snd_pcm_hw_params_set_buffer_time_min_dylibloader_orig_asound +#define snd_pcm_hw_params_set_buffer_time_max snd_pcm_hw_params_set_buffer_time_max_dylibloader_orig_asound +#define snd_pcm_hw_params_set_buffer_time_minmax snd_pcm_hw_params_set_buffer_time_minmax_dylibloader_orig_asound +#define snd_pcm_hw_params_set_buffer_time_near snd_pcm_hw_params_set_buffer_time_near_dylibloader_orig_asound +#define snd_pcm_hw_params_set_buffer_time_first snd_pcm_hw_params_set_buffer_time_first_dylibloader_orig_asound +#define snd_pcm_hw_params_set_buffer_time_last snd_pcm_hw_params_set_buffer_time_last_dylibloader_orig_asound +#define snd_pcm_hw_params_get_buffer_size snd_pcm_hw_params_get_buffer_size_dylibloader_orig_asound +#define snd_pcm_hw_params_get_buffer_size_min snd_pcm_hw_params_get_buffer_size_min_dylibloader_orig_asound +#define snd_pcm_hw_params_get_buffer_size_max snd_pcm_hw_params_get_buffer_size_max_dylibloader_orig_asound +#define snd_pcm_hw_params_test_buffer_size snd_pcm_hw_params_test_buffer_size_dylibloader_orig_asound +#define snd_pcm_hw_params_set_buffer_size snd_pcm_hw_params_set_buffer_size_dylibloader_orig_asound +#define snd_pcm_hw_params_set_buffer_size_min snd_pcm_hw_params_set_buffer_size_min_dylibloader_orig_asound +#define snd_pcm_hw_params_set_buffer_size_max snd_pcm_hw_params_set_buffer_size_max_dylibloader_orig_asound +#define snd_pcm_hw_params_set_buffer_size_minmax snd_pcm_hw_params_set_buffer_size_minmax_dylibloader_orig_asound +#define snd_pcm_hw_params_set_buffer_size_near snd_pcm_hw_params_set_buffer_size_near_dylibloader_orig_asound +#define snd_pcm_hw_params_set_buffer_size_first snd_pcm_hw_params_set_buffer_size_first_dylibloader_orig_asound +#define snd_pcm_hw_params_set_buffer_size_last snd_pcm_hw_params_set_buffer_size_last_dylibloader_orig_asound +#define snd_pcm_hw_params_get_min_align snd_pcm_hw_params_get_min_align_dylibloader_orig_asound +#define snd_pcm_sw_params_sizeof snd_pcm_sw_params_sizeof_dylibloader_orig_asound +#define snd_pcm_sw_params_malloc snd_pcm_sw_params_malloc_dylibloader_orig_asound +#define snd_pcm_sw_params_free snd_pcm_sw_params_free_dylibloader_orig_asound +#define snd_pcm_sw_params_copy snd_pcm_sw_params_copy_dylibloader_orig_asound +#define snd_pcm_sw_params_get_boundary snd_pcm_sw_params_get_boundary_dylibloader_orig_asound +#define snd_pcm_sw_params_set_tstamp_mode snd_pcm_sw_params_set_tstamp_mode_dylibloader_orig_asound +#define snd_pcm_sw_params_get_tstamp_mode snd_pcm_sw_params_get_tstamp_mode_dylibloader_orig_asound +#define snd_pcm_sw_params_set_tstamp_type snd_pcm_sw_params_set_tstamp_type_dylibloader_orig_asound +#define snd_pcm_sw_params_get_tstamp_type snd_pcm_sw_params_get_tstamp_type_dylibloader_orig_asound +#define snd_pcm_sw_params_set_avail_min snd_pcm_sw_params_set_avail_min_dylibloader_orig_asound +#define snd_pcm_sw_params_get_avail_min snd_pcm_sw_params_get_avail_min_dylibloader_orig_asound +#define snd_pcm_sw_params_set_period_event snd_pcm_sw_params_set_period_event_dylibloader_orig_asound +#define snd_pcm_sw_params_get_period_event snd_pcm_sw_params_get_period_event_dylibloader_orig_asound +#define snd_pcm_sw_params_set_start_threshold snd_pcm_sw_params_set_start_threshold_dylibloader_orig_asound +#define snd_pcm_sw_params_get_start_threshold snd_pcm_sw_params_get_start_threshold_dylibloader_orig_asound +#define snd_pcm_sw_params_set_stop_threshold snd_pcm_sw_params_set_stop_threshold_dylibloader_orig_asound +#define snd_pcm_sw_params_get_stop_threshold snd_pcm_sw_params_get_stop_threshold_dylibloader_orig_asound +#define snd_pcm_sw_params_set_silence_threshold snd_pcm_sw_params_set_silence_threshold_dylibloader_orig_asound +#define snd_pcm_sw_params_get_silence_threshold snd_pcm_sw_params_get_silence_threshold_dylibloader_orig_asound +#define snd_pcm_sw_params_set_silence_size snd_pcm_sw_params_set_silence_size_dylibloader_orig_asound +#define snd_pcm_sw_params_get_silence_size snd_pcm_sw_params_get_silence_size_dylibloader_orig_asound +#define snd_pcm_access_mask_sizeof snd_pcm_access_mask_sizeof_dylibloader_orig_asound +#define snd_pcm_access_mask_malloc snd_pcm_access_mask_malloc_dylibloader_orig_asound +#define snd_pcm_access_mask_free snd_pcm_access_mask_free_dylibloader_orig_asound +#define snd_pcm_access_mask_copy snd_pcm_access_mask_copy_dylibloader_orig_asound +#define snd_pcm_access_mask_none snd_pcm_access_mask_none_dylibloader_orig_asound +#define snd_pcm_access_mask_any snd_pcm_access_mask_any_dylibloader_orig_asound +#define snd_pcm_access_mask_test snd_pcm_access_mask_test_dylibloader_orig_asound +#define snd_pcm_access_mask_empty snd_pcm_access_mask_empty_dylibloader_orig_asound +#define snd_pcm_access_mask_set snd_pcm_access_mask_set_dylibloader_orig_asound +#define snd_pcm_access_mask_reset snd_pcm_access_mask_reset_dylibloader_orig_asound +#define snd_pcm_format_mask_sizeof snd_pcm_format_mask_sizeof_dylibloader_orig_asound +#define snd_pcm_format_mask_malloc snd_pcm_format_mask_malloc_dylibloader_orig_asound +#define snd_pcm_format_mask_free snd_pcm_format_mask_free_dylibloader_orig_asound +#define snd_pcm_format_mask_copy snd_pcm_format_mask_copy_dylibloader_orig_asound +#define snd_pcm_format_mask_none snd_pcm_format_mask_none_dylibloader_orig_asound +#define snd_pcm_format_mask_any snd_pcm_format_mask_any_dylibloader_orig_asound +#define snd_pcm_format_mask_test snd_pcm_format_mask_test_dylibloader_orig_asound +#define snd_pcm_format_mask_empty snd_pcm_format_mask_empty_dylibloader_orig_asound +#define snd_pcm_format_mask_set snd_pcm_format_mask_set_dylibloader_orig_asound +#define snd_pcm_format_mask_reset snd_pcm_format_mask_reset_dylibloader_orig_asound +#define snd_pcm_subformat_mask_sizeof snd_pcm_subformat_mask_sizeof_dylibloader_orig_asound +#define snd_pcm_subformat_mask_malloc snd_pcm_subformat_mask_malloc_dylibloader_orig_asound +#define snd_pcm_subformat_mask_free snd_pcm_subformat_mask_free_dylibloader_orig_asound +#define snd_pcm_subformat_mask_copy snd_pcm_subformat_mask_copy_dylibloader_orig_asound +#define snd_pcm_subformat_mask_none snd_pcm_subformat_mask_none_dylibloader_orig_asound +#define snd_pcm_subformat_mask_any snd_pcm_subformat_mask_any_dylibloader_orig_asound +#define snd_pcm_subformat_mask_test snd_pcm_subformat_mask_test_dylibloader_orig_asound +#define snd_pcm_subformat_mask_empty snd_pcm_subformat_mask_empty_dylibloader_orig_asound +#define snd_pcm_subformat_mask_set snd_pcm_subformat_mask_set_dylibloader_orig_asound +#define snd_pcm_subformat_mask_reset snd_pcm_subformat_mask_reset_dylibloader_orig_asound +#define snd_pcm_status_sizeof snd_pcm_status_sizeof_dylibloader_orig_asound +#define snd_pcm_status_malloc snd_pcm_status_malloc_dylibloader_orig_asound +#define snd_pcm_status_free snd_pcm_status_free_dylibloader_orig_asound +#define snd_pcm_status_copy snd_pcm_status_copy_dylibloader_orig_asound +#define snd_pcm_status_get_state snd_pcm_status_get_state_dylibloader_orig_asound +#define snd_pcm_status_get_trigger_tstamp snd_pcm_status_get_trigger_tstamp_dylibloader_orig_asound +#define snd_pcm_status_get_trigger_htstamp snd_pcm_status_get_trigger_htstamp_dylibloader_orig_asound +#define snd_pcm_status_get_tstamp snd_pcm_status_get_tstamp_dylibloader_orig_asound +#define snd_pcm_status_get_htstamp snd_pcm_status_get_htstamp_dylibloader_orig_asound +#define snd_pcm_status_get_audio_htstamp snd_pcm_status_get_audio_htstamp_dylibloader_orig_asound +#define snd_pcm_status_get_driver_htstamp snd_pcm_status_get_driver_htstamp_dylibloader_orig_asound +#define snd_pcm_status_get_audio_htstamp_report snd_pcm_status_get_audio_htstamp_report_dylibloader_orig_asound +#define snd_pcm_status_set_audio_htstamp_config snd_pcm_status_set_audio_htstamp_config_dylibloader_orig_asound +#define snd_pcm_status_get_delay snd_pcm_status_get_delay_dylibloader_orig_asound +#define snd_pcm_status_get_avail snd_pcm_status_get_avail_dylibloader_orig_asound +#define snd_pcm_status_get_avail_max snd_pcm_status_get_avail_max_dylibloader_orig_asound +#define snd_pcm_status_get_overrange snd_pcm_status_get_overrange_dylibloader_orig_asound +#define snd_pcm_type_name snd_pcm_type_name_dylibloader_orig_asound +#define snd_pcm_stream_name snd_pcm_stream_name_dylibloader_orig_asound +#define snd_pcm_access_name snd_pcm_access_name_dylibloader_orig_asound +#define snd_pcm_format_name snd_pcm_format_name_dylibloader_orig_asound +#define snd_pcm_format_description snd_pcm_format_description_dylibloader_orig_asound +#define snd_pcm_subformat_name snd_pcm_subformat_name_dylibloader_orig_asound +#define snd_pcm_subformat_description snd_pcm_subformat_description_dylibloader_orig_asound +#define snd_pcm_format_value snd_pcm_format_value_dylibloader_orig_asound +#define snd_pcm_tstamp_mode_name snd_pcm_tstamp_mode_name_dylibloader_orig_asound +#define snd_pcm_state_name snd_pcm_state_name_dylibloader_orig_asound +#define snd_pcm_dump snd_pcm_dump_dylibloader_orig_asound +#define snd_pcm_dump_hw_setup snd_pcm_dump_hw_setup_dylibloader_orig_asound +#define snd_pcm_dump_sw_setup snd_pcm_dump_sw_setup_dylibloader_orig_asound +#define snd_pcm_dump_setup snd_pcm_dump_setup_dylibloader_orig_asound +#define snd_pcm_hw_params_dump snd_pcm_hw_params_dump_dylibloader_orig_asound +#define snd_pcm_sw_params_dump snd_pcm_sw_params_dump_dylibloader_orig_asound +#define snd_pcm_status_dump snd_pcm_status_dump_dylibloader_orig_asound +#define snd_pcm_mmap_begin snd_pcm_mmap_begin_dylibloader_orig_asound +#define snd_pcm_mmap_commit snd_pcm_mmap_commit_dylibloader_orig_asound +#define snd_pcm_mmap_writei snd_pcm_mmap_writei_dylibloader_orig_asound +#define snd_pcm_mmap_readi snd_pcm_mmap_readi_dylibloader_orig_asound +#define snd_pcm_mmap_writen snd_pcm_mmap_writen_dylibloader_orig_asound +#define snd_pcm_mmap_readn snd_pcm_mmap_readn_dylibloader_orig_asound +#define snd_pcm_format_signed snd_pcm_format_signed_dylibloader_orig_asound +#define snd_pcm_format_unsigned snd_pcm_format_unsigned_dylibloader_orig_asound +#define snd_pcm_format_linear snd_pcm_format_linear_dylibloader_orig_asound +#define snd_pcm_format_float snd_pcm_format_float_dylibloader_orig_asound +#define snd_pcm_format_little_endian snd_pcm_format_little_endian_dylibloader_orig_asound +#define snd_pcm_format_big_endian snd_pcm_format_big_endian_dylibloader_orig_asound +#define snd_pcm_format_cpu_endian snd_pcm_format_cpu_endian_dylibloader_orig_asound +#define snd_pcm_format_width snd_pcm_format_width_dylibloader_orig_asound +#define snd_pcm_format_physical_width snd_pcm_format_physical_width_dylibloader_orig_asound +#define snd_pcm_build_linear_format snd_pcm_build_linear_format_dylibloader_orig_asound +#define snd_pcm_format_size snd_pcm_format_size_dylibloader_orig_asound +#define snd_pcm_format_silence snd_pcm_format_silence_dylibloader_orig_asound +#define snd_pcm_format_silence_16 snd_pcm_format_silence_16_dylibloader_orig_asound +#define snd_pcm_format_silence_32 snd_pcm_format_silence_32_dylibloader_orig_asound +#define snd_pcm_format_silence_64 snd_pcm_format_silence_64_dylibloader_orig_asound +#define snd_pcm_format_set_silence snd_pcm_format_set_silence_dylibloader_orig_asound +#define snd_pcm_bytes_to_frames snd_pcm_bytes_to_frames_dylibloader_orig_asound +#define snd_pcm_frames_to_bytes snd_pcm_frames_to_bytes_dylibloader_orig_asound +#define snd_pcm_bytes_to_samples snd_pcm_bytes_to_samples_dylibloader_orig_asound +#define snd_pcm_samples_to_bytes snd_pcm_samples_to_bytes_dylibloader_orig_asound +#define snd_pcm_area_silence snd_pcm_area_silence_dylibloader_orig_asound +#define snd_pcm_areas_silence snd_pcm_areas_silence_dylibloader_orig_asound +#define snd_pcm_area_copy snd_pcm_area_copy_dylibloader_orig_asound +#define snd_pcm_areas_copy snd_pcm_areas_copy_dylibloader_orig_asound +#define snd_pcm_areas_copy_wrap snd_pcm_areas_copy_wrap_dylibloader_orig_asound +#define snd_pcm_hook_get_pcm snd_pcm_hook_get_pcm_dylibloader_orig_asound +#define snd_pcm_hook_get_private snd_pcm_hook_get_private_dylibloader_orig_asound +#define snd_pcm_hook_set_private snd_pcm_hook_set_private_dylibloader_orig_asound +#define snd_pcm_hook_add snd_pcm_hook_add_dylibloader_orig_asound +#define snd_pcm_hook_remove snd_pcm_hook_remove_dylibloader_orig_asound +#define snd_pcm_meter_get_bufsize snd_pcm_meter_get_bufsize_dylibloader_orig_asound +#define snd_pcm_meter_get_channels snd_pcm_meter_get_channels_dylibloader_orig_asound +#define snd_pcm_meter_get_rate snd_pcm_meter_get_rate_dylibloader_orig_asound +#define snd_pcm_meter_get_now snd_pcm_meter_get_now_dylibloader_orig_asound +#define snd_pcm_meter_get_boundary snd_pcm_meter_get_boundary_dylibloader_orig_asound +#define snd_pcm_meter_add_scope snd_pcm_meter_add_scope_dylibloader_orig_asound +#define snd_pcm_meter_search_scope snd_pcm_meter_search_scope_dylibloader_orig_asound +#define snd_pcm_scope_malloc snd_pcm_scope_malloc_dylibloader_orig_asound +#define snd_pcm_scope_set_ops snd_pcm_scope_set_ops_dylibloader_orig_asound +#define snd_pcm_scope_set_name snd_pcm_scope_set_name_dylibloader_orig_asound +#define snd_pcm_scope_get_name snd_pcm_scope_get_name_dylibloader_orig_asound +#define snd_pcm_scope_get_callback_private snd_pcm_scope_get_callback_private_dylibloader_orig_asound +#define snd_pcm_scope_set_callback_private snd_pcm_scope_set_callback_private_dylibloader_orig_asound +#define snd_pcm_scope_s16_open snd_pcm_scope_s16_open_dylibloader_orig_asound +#define snd_pcm_scope_s16_get_channel_buffer snd_pcm_scope_s16_get_channel_buffer_dylibloader_orig_asound +#define snd_spcm_init snd_spcm_init_dylibloader_orig_asound +#define snd_spcm_init_duplex snd_spcm_init_duplex_dylibloader_orig_asound +#define snd_spcm_init_get_params snd_spcm_init_get_params_dylibloader_orig_asound +#define snd_pcm_start_mode_name snd_pcm_start_mode_name_dylibloader_orig_asound +#define snd_pcm_xrun_mode_name snd_pcm_xrun_mode_name_dylibloader_orig_asound +#define snd_pcm_sw_params_set_start_mode snd_pcm_sw_params_set_start_mode_dylibloader_orig_asound +#define snd_pcm_sw_params_get_start_mode snd_pcm_sw_params_get_start_mode_dylibloader_orig_asound +#define snd_pcm_sw_params_set_xrun_mode snd_pcm_sw_params_set_xrun_mode_dylibloader_orig_asound +#define snd_pcm_sw_params_get_xrun_mode snd_pcm_sw_params_get_xrun_mode_dylibloader_orig_asound +#define snd_pcm_sw_params_set_xfer_align snd_pcm_sw_params_set_xfer_align_dylibloader_orig_asound +#define snd_pcm_sw_params_get_xfer_align snd_pcm_sw_params_get_xfer_align_dylibloader_orig_asound +#define snd_pcm_sw_params_set_sleep_min snd_pcm_sw_params_set_sleep_min_dylibloader_orig_asound +#define snd_pcm_sw_params_get_sleep_min snd_pcm_sw_params_get_sleep_min_dylibloader_orig_asound +#define snd_pcm_hw_params_get_tick_time snd_pcm_hw_params_get_tick_time_dylibloader_orig_asound +#define snd_pcm_hw_params_get_tick_time_min snd_pcm_hw_params_get_tick_time_min_dylibloader_orig_asound +#define snd_pcm_hw_params_get_tick_time_max snd_pcm_hw_params_get_tick_time_max_dylibloader_orig_asound +#define snd_pcm_hw_params_test_tick_time snd_pcm_hw_params_test_tick_time_dylibloader_orig_asound +#define snd_pcm_hw_params_set_tick_time snd_pcm_hw_params_set_tick_time_dylibloader_orig_asound +#define snd_pcm_hw_params_set_tick_time_min snd_pcm_hw_params_set_tick_time_min_dylibloader_orig_asound +#define snd_pcm_hw_params_set_tick_time_max snd_pcm_hw_params_set_tick_time_max_dylibloader_orig_asound +#define snd_pcm_hw_params_set_tick_time_minmax snd_pcm_hw_params_set_tick_time_minmax_dylibloader_orig_asound +#define snd_pcm_hw_params_set_tick_time_near snd_pcm_hw_params_set_tick_time_near_dylibloader_orig_asound +#define snd_pcm_hw_params_set_tick_time_first snd_pcm_hw_params_set_tick_time_first_dylibloader_orig_asound +#define snd_pcm_hw_params_set_tick_time_last snd_pcm_hw_params_set_tick_time_last_dylibloader_orig_asound +#define snd_rawmidi_open snd_rawmidi_open_dylibloader_orig_asound +#define snd_rawmidi_open_lconf snd_rawmidi_open_lconf_dylibloader_orig_asound +#define snd_rawmidi_close snd_rawmidi_close_dylibloader_orig_asound +#define snd_rawmidi_poll_descriptors_count snd_rawmidi_poll_descriptors_count_dylibloader_orig_asound +#define snd_rawmidi_poll_descriptors snd_rawmidi_poll_descriptors_dylibloader_orig_asound +#define snd_rawmidi_poll_descriptors_revents snd_rawmidi_poll_descriptors_revents_dylibloader_orig_asound +#define snd_rawmidi_nonblock snd_rawmidi_nonblock_dylibloader_orig_asound +#define snd_rawmidi_info_sizeof snd_rawmidi_info_sizeof_dylibloader_orig_asound +#define snd_rawmidi_info_malloc snd_rawmidi_info_malloc_dylibloader_orig_asound +#define snd_rawmidi_info_free snd_rawmidi_info_free_dylibloader_orig_asound +#define snd_rawmidi_info_copy snd_rawmidi_info_copy_dylibloader_orig_asound +#define snd_rawmidi_info_get_device snd_rawmidi_info_get_device_dylibloader_orig_asound +#define snd_rawmidi_info_get_subdevice snd_rawmidi_info_get_subdevice_dylibloader_orig_asound +#define snd_rawmidi_info_get_stream snd_rawmidi_info_get_stream_dylibloader_orig_asound +#define snd_rawmidi_info_get_card snd_rawmidi_info_get_card_dylibloader_orig_asound +#define snd_rawmidi_info_get_flags snd_rawmidi_info_get_flags_dylibloader_orig_asound +#define snd_rawmidi_info_get_id snd_rawmidi_info_get_id_dylibloader_orig_asound +#define snd_rawmidi_info_get_name snd_rawmidi_info_get_name_dylibloader_orig_asound +#define snd_rawmidi_info_get_subdevice_name snd_rawmidi_info_get_subdevice_name_dylibloader_orig_asound +#define snd_rawmidi_info_get_subdevices_count snd_rawmidi_info_get_subdevices_count_dylibloader_orig_asound +#define snd_rawmidi_info_get_subdevices_avail snd_rawmidi_info_get_subdevices_avail_dylibloader_orig_asound +#define snd_rawmidi_info_set_device snd_rawmidi_info_set_device_dylibloader_orig_asound +#define snd_rawmidi_info_set_subdevice snd_rawmidi_info_set_subdevice_dylibloader_orig_asound +#define snd_rawmidi_info_set_stream snd_rawmidi_info_set_stream_dylibloader_orig_asound +#define snd_rawmidi_info snd_rawmidi_info_dylibloader_orig_asound +#define snd_rawmidi_params_sizeof snd_rawmidi_params_sizeof_dylibloader_orig_asound +#define snd_rawmidi_params_malloc snd_rawmidi_params_malloc_dylibloader_orig_asound +#define snd_rawmidi_params_free snd_rawmidi_params_free_dylibloader_orig_asound +#define snd_rawmidi_params_copy snd_rawmidi_params_copy_dylibloader_orig_asound +#define snd_rawmidi_params_set_buffer_size snd_rawmidi_params_set_buffer_size_dylibloader_orig_asound +#define snd_rawmidi_params_get_buffer_size snd_rawmidi_params_get_buffer_size_dylibloader_orig_asound +#define snd_rawmidi_params_set_avail_min snd_rawmidi_params_set_avail_min_dylibloader_orig_asound +#define snd_rawmidi_params_get_avail_min snd_rawmidi_params_get_avail_min_dylibloader_orig_asound +#define snd_rawmidi_params_set_no_active_sensing snd_rawmidi_params_set_no_active_sensing_dylibloader_orig_asound +#define snd_rawmidi_params_get_no_active_sensing snd_rawmidi_params_get_no_active_sensing_dylibloader_orig_asound +#define snd_rawmidi_params snd_rawmidi_params_dylibloader_orig_asound +#define snd_rawmidi_params_current snd_rawmidi_params_current_dylibloader_orig_asound +#define snd_rawmidi_status_sizeof snd_rawmidi_status_sizeof_dylibloader_orig_asound +#define snd_rawmidi_status_malloc snd_rawmidi_status_malloc_dylibloader_orig_asound +#define snd_rawmidi_status_free snd_rawmidi_status_free_dylibloader_orig_asound +#define snd_rawmidi_status_copy snd_rawmidi_status_copy_dylibloader_orig_asound +#define snd_rawmidi_status_get_tstamp snd_rawmidi_status_get_tstamp_dylibloader_orig_asound +#define snd_rawmidi_status_get_avail snd_rawmidi_status_get_avail_dylibloader_orig_asound +#define snd_rawmidi_status_get_xruns snd_rawmidi_status_get_xruns_dylibloader_orig_asound +#define snd_rawmidi_status snd_rawmidi_status_dylibloader_orig_asound +#define snd_rawmidi_drain snd_rawmidi_drain_dylibloader_orig_asound +#define snd_rawmidi_drop snd_rawmidi_drop_dylibloader_orig_asound +#define snd_rawmidi_write snd_rawmidi_write_dylibloader_orig_asound +#define snd_rawmidi_read snd_rawmidi_read_dylibloader_orig_asound +#define snd_rawmidi_name snd_rawmidi_name_dylibloader_orig_asound +#define snd_rawmidi_type snd_rawmidi_type_dylibloader_orig_asound +#define snd_rawmidi_stream snd_rawmidi_stream_dylibloader_orig_asound +#define snd_timer_query_open snd_timer_query_open_dylibloader_orig_asound +#define snd_timer_query_open_lconf snd_timer_query_open_lconf_dylibloader_orig_asound +#define snd_timer_query_close snd_timer_query_close_dylibloader_orig_asound +#define snd_timer_query_next_device snd_timer_query_next_device_dylibloader_orig_asound +#define snd_timer_query_info snd_timer_query_info_dylibloader_orig_asound +#define snd_timer_query_params snd_timer_query_params_dylibloader_orig_asound +#define snd_timer_query_status snd_timer_query_status_dylibloader_orig_asound +#define snd_timer_open snd_timer_open_dylibloader_orig_asound +#define snd_timer_open_lconf snd_timer_open_lconf_dylibloader_orig_asound +#define snd_timer_close snd_timer_close_dylibloader_orig_asound +#define snd_async_add_timer_handler snd_async_add_timer_handler_dylibloader_orig_asound +#define snd_async_handler_get_timer snd_async_handler_get_timer_dylibloader_orig_asound +#define snd_timer_poll_descriptors_count snd_timer_poll_descriptors_count_dylibloader_orig_asound +#define snd_timer_poll_descriptors snd_timer_poll_descriptors_dylibloader_orig_asound +#define snd_timer_poll_descriptors_revents snd_timer_poll_descriptors_revents_dylibloader_orig_asound +#define snd_timer_info snd_timer_info_dylibloader_orig_asound +#define snd_timer_params snd_timer_params_dylibloader_orig_asound +#define snd_timer_status snd_timer_status_dylibloader_orig_asound +#define snd_timer_start snd_timer_start_dylibloader_orig_asound +#define snd_timer_stop snd_timer_stop_dylibloader_orig_asound +#define snd_timer_continue snd_timer_continue_dylibloader_orig_asound +#define snd_timer_read snd_timer_read_dylibloader_orig_asound +#define snd_timer_id_sizeof snd_timer_id_sizeof_dylibloader_orig_asound +#define snd_timer_id_malloc snd_timer_id_malloc_dylibloader_orig_asound +#define snd_timer_id_free snd_timer_id_free_dylibloader_orig_asound +#define snd_timer_id_copy snd_timer_id_copy_dylibloader_orig_asound +#define snd_timer_id_set_class snd_timer_id_set_class_dylibloader_orig_asound +#define snd_timer_id_get_class snd_timer_id_get_class_dylibloader_orig_asound +#define snd_timer_id_set_sclass snd_timer_id_set_sclass_dylibloader_orig_asound +#define snd_timer_id_get_sclass snd_timer_id_get_sclass_dylibloader_orig_asound +#define snd_timer_id_set_card snd_timer_id_set_card_dylibloader_orig_asound +#define snd_timer_id_get_card snd_timer_id_get_card_dylibloader_orig_asound +#define snd_timer_id_set_device snd_timer_id_set_device_dylibloader_orig_asound +#define snd_timer_id_get_device snd_timer_id_get_device_dylibloader_orig_asound +#define snd_timer_id_set_subdevice snd_timer_id_set_subdevice_dylibloader_orig_asound +#define snd_timer_id_get_subdevice snd_timer_id_get_subdevice_dylibloader_orig_asound +#define snd_timer_ginfo_sizeof snd_timer_ginfo_sizeof_dylibloader_orig_asound +#define snd_timer_ginfo_malloc snd_timer_ginfo_malloc_dylibloader_orig_asound +#define snd_timer_ginfo_free snd_timer_ginfo_free_dylibloader_orig_asound +#define snd_timer_ginfo_copy snd_timer_ginfo_copy_dylibloader_orig_asound +#define snd_timer_ginfo_set_tid snd_timer_ginfo_set_tid_dylibloader_orig_asound +#define snd_timer_ginfo_get_tid snd_timer_ginfo_get_tid_dylibloader_orig_asound +#define snd_timer_ginfo_get_flags snd_timer_ginfo_get_flags_dylibloader_orig_asound +#define snd_timer_ginfo_get_card snd_timer_ginfo_get_card_dylibloader_orig_asound +#define snd_timer_ginfo_get_id snd_timer_ginfo_get_id_dylibloader_orig_asound +#define snd_timer_ginfo_get_name snd_timer_ginfo_get_name_dylibloader_orig_asound +#define snd_timer_ginfo_get_resolution snd_timer_ginfo_get_resolution_dylibloader_orig_asound +#define snd_timer_ginfo_get_resolution_min snd_timer_ginfo_get_resolution_min_dylibloader_orig_asound +#define snd_timer_ginfo_get_resolution_max snd_timer_ginfo_get_resolution_max_dylibloader_orig_asound +#define snd_timer_ginfo_get_clients snd_timer_ginfo_get_clients_dylibloader_orig_asound +#define snd_timer_info_sizeof snd_timer_info_sizeof_dylibloader_orig_asound +#define snd_timer_info_malloc snd_timer_info_malloc_dylibloader_orig_asound +#define snd_timer_info_free snd_timer_info_free_dylibloader_orig_asound +#define snd_timer_info_copy snd_timer_info_copy_dylibloader_orig_asound +#define snd_timer_info_is_slave snd_timer_info_is_slave_dylibloader_orig_asound +#define snd_timer_info_get_card snd_timer_info_get_card_dylibloader_orig_asound +#define snd_timer_info_get_id snd_timer_info_get_id_dylibloader_orig_asound +#define snd_timer_info_get_name snd_timer_info_get_name_dylibloader_orig_asound +#define snd_timer_info_get_resolution snd_timer_info_get_resolution_dylibloader_orig_asound +#define snd_timer_params_sizeof snd_timer_params_sizeof_dylibloader_orig_asound +#define snd_timer_params_malloc snd_timer_params_malloc_dylibloader_orig_asound +#define snd_timer_params_free snd_timer_params_free_dylibloader_orig_asound +#define snd_timer_params_copy snd_timer_params_copy_dylibloader_orig_asound +#define snd_timer_params_set_auto_start snd_timer_params_set_auto_start_dylibloader_orig_asound +#define snd_timer_params_get_auto_start snd_timer_params_get_auto_start_dylibloader_orig_asound +#define snd_timer_params_set_exclusive snd_timer_params_set_exclusive_dylibloader_orig_asound +#define snd_timer_params_get_exclusive snd_timer_params_get_exclusive_dylibloader_orig_asound +#define snd_timer_params_set_early_event snd_timer_params_set_early_event_dylibloader_orig_asound +#define snd_timer_params_get_early_event snd_timer_params_get_early_event_dylibloader_orig_asound +#define snd_timer_params_set_ticks snd_timer_params_set_ticks_dylibloader_orig_asound +#define snd_timer_params_get_ticks snd_timer_params_get_ticks_dylibloader_orig_asound +#define snd_timer_params_set_queue_size snd_timer_params_set_queue_size_dylibloader_orig_asound +#define snd_timer_params_get_queue_size snd_timer_params_get_queue_size_dylibloader_orig_asound +#define snd_timer_params_set_filter snd_timer_params_set_filter_dylibloader_orig_asound +#define snd_timer_params_get_filter snd_timer_params_get_filter_dylibloader_orig_asound +#define snd_timer_status_sizeof snd_timer_status_sizeof_dylibloader_orig_asound +#define snd_timer_status_malloc snd_timer_status_malloc_dylibloader_orig_asound +#define snd_timer_status_free snd_timer_status_free_dylibloader_orig_asound +#define snd_timer_status_copy snd_timer_status_copy_dylibloader_orig_asound +#define snd_timer_status_get_timestamp snd_timer_status_get_timestamp_dylibloader_orig_asound +#define snd_timer_status_get_resolution snd_timer_status_get_resolution_dylibloader_orig_asound +#define snd_timer_status_get_lost snd_timer_status_get_lost_dylibloader_orig_asound +#define snd_timer_status_get_overrun snd_timer_status_get_overrun_dylibloader_orig_asound +#define snd_timer_status_get_queue snd_timer_status_get_queue_dylibloader_orig_asound +#define snd_timer_info_get_ticks snd_timer_info_get_ticks_dylibloader_orig_asound +#define snd_hwdep_open snd_hwdep_open_dylibloader_orig_asound +#define snd_hwdep_close snd_hwdep_close_dylibloader_orig_asound +#define snd_hwdep_poll_descriptors snd_hwdep_poll_descriptors_dylibloader_orig_asound +#define snd_hwdep_poll_descriptors_count snd_hwdep_poll_descriptors_count_dylibloader_orig_asound +#define snd_hwdep_poll_descriptors_revents snd_hwdep_poll_descriptors_revents_dylibloader_orig_asound +#define snd_hwdep_nonblock snd_hwdep_nonblock_dylibloader_orig_asound +#define snd_hwdep_info snd_hwdep_info_dylibloader_orig_asound +#define snd_hwdep_dsp_status snd_hwdep_dsp_status_dylibloader_orig_asound +#define snd_hwdep_dsp_load snd_hwdep_dsp_load_dylibloader_orig_asound +#define snd_hwdep_ioctl snd_hwdep_ioctl_dylibloader_orig_asound +#define snd_hwdep_write snd_hwdep_write_dylibloader_orig_asound +#define snd_hwdep_read snd_hwdep_read_dylibloader_orig_asound +#define snd_hwdep_info_sizeof snd_hwdep_info_sizeof_dylibloader_orig_asound +#define snd_hwdep_info_malloc snd_hwdep_info_malloc_dylibloader_orig_asound +#define snd_hwdep_info_free snd_hwdep_info_free_dylibloader_orig_asound +#define snd_hwdep_info_copy snd_hwdep_info_copy_dylibloader_orig_asound +#define snd_hwdep_info_get_device snd_hwdep_info_get_device_dylibloader_orig_asound +#define snd_hwdep_info_get_card snd_hwdep_info_get_card_dylibloader_orig_asound +#define snd_hwdep_info_get_id snd_hwdep_info_get_id_dylibloader_orig_asound +#define snd_hwdep_info_get_name snd_hwdep_info_get_name_dylibloader_orig_asound +#define snd_hwdep_info_get_iface snd_hwdep_info_get_iface_dylibloader_orig_asound +#define snd_hwdep_info_set_device snd_hwdep_info_set_device_dylibloader_orig_asound +#define snd_hwdep_dsp_status_sizeof snd_hwdep_dsp_status_sizeof_dylibloader_orig_asound +#define snd_hwdep_dsp_status_malloc snd_hwdep_dsp_status_malloc_dylibloader_orig_asound +#define snd_hwdep_dsp_status_free snd_hwdep_dsp_status_free_dylibloader_orig_asound +#define snd_hwdep_dsp_status_copy snd_hwdep_dsp_status_copy_dylibloader_orig_asound +#define snd_hwdep_dsp_status_get_version snd_hwdep_dsp_status_get_version_dylibloader_orig_asound +#define snd_hwdep_dsp_status_get_id snd_hwdep_dsp_status_get_id_dylibloader_orig_asound +#define snd_hwdep_dsp_status_get_num_dsps snd_hwdep_dsp_status_get_num_dsps_dylibloader_orig_asound +#define snd_hwdep_dsp_status_get_dsp_loaded snd_hwdep_dsp_status_get_dsp_loaded_dylibloader_orig_asound +#define snd_hwdep_dsp_status_get_chip_ready snd_hwdep_dsp_status_get_chip_ready_dylibloader_orig_asound +#define snd_hwdep_dsp_image_sizeof snd_hwdep_dsp_image_sizeof_dylibloader_orig_asound +#define snd_hwdep_dsp_image_malloc snd_hwdep_dsp_image_malloc_dylibloader_orig_asound +#define snd_hwdep_dsp_image_free snd_hwdep_dsp_image_free_dylibloader_orig_asound +#define snd_hwdep_dsp_image_copy snd_hwdep_dsp_image_copy_dylibloader_orig_asound +#define snd_hwdep_dsp_image_get_index snd_hwdep_dsp_image_get_index_dylibloader_orig_asound +#define snd_hwdep_dsp_image_get_name snd_hwdep_dsp_image_get_name_dylibloader_orig_asound +#define snd_hwdep_dsp_image_get_image snd_hwdep_dsp_image_get_image_dylibloader_orig_asound +#define snd_hwdep_dsp_image_get_length snd_hwdep_dsp_image_get_length_dylibloader_orig_asound +#define snd_hwdep_dsp_image_set_index snd_hwdep_dsp_image_set_index_dylibloader_orig_asound +#define snd_hwdep_dsp_image_set_name snd_hwdep_dsp_image_set_name_dylibloader_orig_asound +#define snd_hwdep_dsp_image_set_image snd_hwdep_dsp_image_set_image_dylibloader_orig_asound +#define snd_hwdep_dsp_image_set_length snd_hwdep_dsp_image_set_length_dylibloader_orig_asound +#define snd_card_load snd_card_load_dylibloader_orig_asound +#define snd_card_next snd_card_next_dylibloader_orig_asound +#define snd_card_get_index snd_card_get_index_dylibloader_orig_asound +#define snd_card_get_name snd_card_get_name_dylibloader_orig_asound +#define snd_card_get_longname snd_card_get_longname_dylibloader_orig_asound +#define snd_device_name_hint snd_device_name_hint_dylibloader_orig_asound +#define snd_device_name_free_hint snd_device_name_free_hint_dylibloader_orig_asound +#define snd_device_name_get_hint snd_device_name_get_hint_dylibloader_orig_asound +#define snd_ctl_open snd_ctl_open_dylibloader_orig_asound +#define snd_ctl_open_lconf snd_ctl_open_lconf_dylibloader_orig_asound +#define snd_ctl_open_fallback snd_ctl_open_fallback_dylibloader_orig_asound +#define snd_ctl_close snd_ctl_close_dylibloader_orig_asound +#define snd_ctl_nonblock snd_ctl_nonblock_dylibloader_orig_asound +#define snd_async_add_ctl_handler snd_async_add_ctl_handler_dylibloader_orig_asound +#define snd_async_handler_get_ctl snd_async_handler_get_ctl_dylibloader_orig_asound +#define snd_ctl_poll_descriptors_count snd_ctl_poll_descriptors_count_dylibloader_orig_asound +#define snd_ctl_poll_descriptors snd_ctl_poll_descriptors_dylibloader_orig_asound +#define snd_ctl_poll_descriptors_revents snd_ctl_poll_descriptors_revents_dylibloader_orig_asound +#define snd_ctl_subscribe_events snd_ctl_subscribe_events_dylibloader_orig_asound +#define snd_ctl_card_info snd_ctl_card_info_dylibloader_orig_asound +#define snd_ctl_elem_list snd_ctl_elem_list_dylibloader_orig_asound +#define snd_ctl_elem_info snd_ctl_elem_info_dylibloader_orig_asound +#define snd_ctl_elem_read snd_ctl_elem_read_dylibloader_orig_asound +#define snd_ctl_elem_write snd_ctl_elem_write_dylibloader_orig_asound +#define snd_ctl_elem_lock snd_ctl_elem_lock_dylibloader_orig_asound +#define snd_ctl_elem_unlock snd_ctl_elem_unlock_dylibloader_orig_asound +#define snd_ctl_elem_tlv_read snd_ctl_elem_tlv_read_dylibloader_orig_asound +#define snd_ctl_elem_tlv_write snd_ctl_elem_tlv_write_dylibloader_orig_asound +#define snd_ctl_elem_tlv_command snd_ctl_elem_tlv_command_dylibloader_orig_asound +#define snd_ctl_hwdep_next_device snd_ctl_hwdep_next_device_dylibloader_orig_asound +#define snd_ctl_hwdep_info snd_ctl_hwdep_info_dylibloader_orig_asound +#define snd_ctl_pcm_next_device snd_ctl_pcm_next_device_dylibloader_orig_asound +#define snd_ctl_pcm_info snd_ctl_pcm_info_dylibloader_orig_asound +#define snd_ctl_pcm_prefer_subdevice snd_ctl_pcm_prefer_subdevice_dylibloader_orig_asound +#define snd_ctl_rawmidi_next_device snd_ctl_rawmidi_next_device_dylibloader_orig_asound +#define snd_ctl_rawmidi_info snd_ctl_rawmidi_info_dylibloader_orig_asound +#define snd_ctl_rawmidi_prefer_subdevice snd_ctl_rawmidi_prefer_subdevice_dylibloader_orig_asound +#define snd_ctl_set_power_state snd_ctl_set_power_state_dylibloader_orig_asound +#define snd_ctl_get_power_state snd_ctl_get_power_state_dylibloader_orig_asound +#define snd_ctl_read snd_ctl_read_dylibloader_orig_asound +#define snd_ctl_wait snd_ctl_wait_dylibloader_orig_asound +#define snd_ctl_name snd_ctl_name_dylibloader_orig_asound +#define snd_ctl_type snd_ctl_type_dylibloader_orig_asound +#define snd_ctl_elem_type_name snd_ctl_elem_type_name_dylibloader_orig_asound +#define snd_ctl_elem_iface_name snd_ctl_elem_iface_name_dylibloader_orig_asound +#define snd_ctl_event_type_name snd_ctl_event_type_name_dylibloader_orig_asound +#define snd_ctl_event_elem_get_mask snd_ctl_event_elem_get_mask_dylibloader_orig_asound +#define snd_ctl_event_elem_get_numid snd_ctl_event_elem_get_numid_dylibloader_orig_asound +#define snd_ctl_event_elem_get_id snd_ctl_event_elem_get_id_dylibloader_orig_asound +#define snd_ctl_event_elem_get_interface snd_ctl_event_elem_get_interface_dylibloader_orig_asound +#define snd_ctl_event_elem_get_device snd_ctl_event_elem_get_device_dylibloader_orig_asound +#define snd_ctl_event_elem_get_subdevice snd_ctl_event_elem_get_subdevice_dylibloader_orig_asound +#define snd_ctl_event_elem_get_name snd_ctl_event_elem_get_name_dylibloader_orig_asound +#define snd_ctl_event_elem_get_index snd_ctl_event_elem_get_index_dylibloader_orig_asound +#define snd_ctl_elem_list_alloc_space snd_ctl_elem_list_alloc_space_dylibloader_orig_asound +#define snd_ctl_elem_list_free_space snd_ctl_elem_list_free_space_dylibloader_orig_asound +#define snd_ctl_ascii_elem_id_get snd_ctl_ascii_elem_id_get_dylibloader_orig_asound +#define snd_ctl_ascii_elem_id_parse snd_ctl_ascii_elem_id_parse_dylibloader_orig_asound +#define snd_ctl_ascii_value_parse snd_ctl_ascii_value_parse_dylibloader_orig_asound +#define snd_ctl_elem_id_sizeof snd_ctl_elem_id_sizeof_dylibloader_orig_asound +#define snd_ctl_elem_id_malloc snd_ctl_elem_id_malloc_dylibloader_orig_asound +#define snd_ctl_elem_id_free snd_ctl_elem_id_free_dylibloader_orig_asound +#define snd_ctl_elem_id_clear snd_ctl_elem_id_clear_dylibloader_orig_asound +#define snd_ctl_elem_id_copy snd_ctl_elem_id_copy_dylibloader_orig_asound +#define snd_ctl_elem_id_get_numid snd_ctl_elem_id_get_numid_dylibloader_orig_asound +#define snd_ctl_elem_id_get_interface snd_ctl_elem_id_get_interface_dylibloader_orig_asound +#define snd_ctl_elem_id_get_device snd_ctl_elem_id_get_device_dylibloader_orig_asound +#define snd_ctl_elem_id_get_subdevice snd_ctl_elem_id_get_subdevice_dylibloader_orig_asound +#define snd_ctl_elem_id_get_name snd_ctl_elem_id_get_name_dylibloader_orig_asound +#define snd_ctl_elem_id_get_index snd_ctl_elem_id_get_index_dylibloader_orig_asound +#define snd_ctl_elem_id_set_numid snd_ctl_elem_id_set_numid_dylibloader_orig_asound +#define snd_ctl_elem_id_set_interface snd_ctl_elem_id_set_interface_dylibloader_orig_asound +#define snd_ctl_elem_id_set_device snd_ctl_elem_id_set_device_dylibloader_orig_asound +#define snd_ctl_elem_id_set_subdevice snd_ctl_elem_id_set_subdevice_dylibloader_orig_asound +#define snd_ctl_elem_id_set_name snd_ctl_elem_id_set_name_dylibloader_orig_asound +#define snd_ctl_elem_id_set_index snd_ctl_elem_id_set_index_dylibloader_orig_asound +#define snd_ctl_card_info_sizeof snd_ctl_card_info_sizeof_dylibloader_orig_asound +#define snd_ctl_card_info_malloc snd_ctl_card_info_malloc_dylibloader_orig_asound +#define snd_ctl_card_info_free snd_ctl_card_info_free_dylibloader_orig_asound +#define snd_ctl_card_info_clear snd_ctl_card_info_clear_dylibloader_orig_asound +#define snd_ctl_card_info_copy snd_ctl_card_info_copy_dylibloader_orig_asound +#define snd_ctl_card_info_get_card snd_ctl_card_info_get_card_dylibloader_orig_asound +#define snd_ctl_card_info_get_id snd_ctl_card_info_get_id_dylibloader_orig_asound +#define snd_ctl_card_info_get_driver snd_ctl_card_info_get_driver_dylibloader_orig_asound +#define snd_ctl_card_info_get_name snd_ctl_card_info_get_name_dylibloader_orig_asound +#define snd_ctl_card_info_get_longname snd_ctl_card_info_get_longname_dylibloader_orig_asound +#define snd_ctl_card_info_get_mixername snd_ctl_card_info_get_mixername_dylibloader_orig_asound +#define snd_ctl_card_info_get_components snd_ctl_card_info_get_components_dylibloader_orig_asound +#define snd_ctl_event_sizeof snd_ctl_event_sizeof_dylibloader_orig_asound +#define snd_ctl_event_malloc snd_ctl_event_malloc_dylibloader_orig_asound +#define snd_ctl_event_free snd_ctl_event_free_dylibloader_orig_asound +#define snd_ctl_event_clear snd_ctl_event_clear_dylibloader_orig_asound +#define snd_ctl_event_copy snd_ctl_event_copy_dylibloader_orig_asound +#define snd_ctl_event_get_type snd_ctl_event_get_type_dylibloader_orig_asound +#define snd_ctl_elem_list_sizeof snd_ctl_elem_list_sizeof_dylibloader_orig_asound +#define snd_ctl_elem_list_malloc snd_ctl_elem_list_malloc_dylibloader_orig_asound +#define snd_ctl_elem_list_free snd_ctl_elem_list_free_dylibloader_orig_asound +#define snd_ctl_elem_list_clear snd_ctl_elem_list_clear_dylibloader_orig_asound +#define snd_ctl_elem_list_copy snd_ctl_elem_list_copy_dylibloader_orig_asound +#define snd_ctl_elem_list_set_offset snd_ctl_elem_list_set_offset_dylibloader_orig_asound +#define snd_ctl_elem_list_get_used snd_ctl_elem_list_get_used_dylibloader_orig_asound +#define snd_ctl_elem_list_get_count snd_ctl_elem_list_get_count_dylibloader_orig_asound +#define snd_ctl_elem_list_get_id snd_ctl_elem_list_get_id_dylibloader_orig_asound +#define snd_ctl_elem_list_get_numid snd_ctl_elem_list_get_numid_dylibloader_orig_asound +#define snd_ctl_elem_list_get_interface snd_ctl_elem_list_get_interface_dylibloader_orig_asound +#define snd_ctl_elem_list_get_device snd_ctl_elem_list_get_device_dylibloader_orig_asound +#define snd_ctl_elem_list_get_subdevice snd_ctl_elem_list_get_subdevice_dylibloader_orig_asound +#define snd_ctl_elem_list_get_name snd_ctl_elem_list_get_name_dylibloader_orig_asound +#define snd_ctl_elem_list_get_index snd_ctl_elem_list_get_index_dylibloader_orig_asound +#define snd_ctl_elem_info_sizeof snd_ctl_elem_info_sizeof_dylibloader_orig_asound +#define snd_ctl_elem_info_malloc snd_ctl_elem_info_malloc_dylibloader_orig_asound +#define snd_ctl_elem_info_free snd_ctl_elem_info_free_dylibloader_orig_asound +#define snd_ctl_elem_info_clear snd_ctl_elem_info_clear_dylibloader_orig_asound +#define snd_ctl_elem_info_copy snd_ctl_elem_info_copy_dylibloader_orig_asound +#define snd_ctl_elem_info_get_type snd_ctl_elem_info_get_type_dylibloader_orig_asound +#define snd_ctl_elem_info_is_readable snd_ctl_elem_info_is_readable_dylibloader_orig_asound +#define snd_ctl_elem_info_is_writable snd_ctl_elem_info_is_writable_dylibloader_orig_asound +#define snd_ctl_elem_info_is_volatile snd_ctl_elem_info_is_volatile_dylibloader_orig_asound +#define snd_ctl_elem_info_is_inactive snd_ctl_elem_info_is_inactive_dylibloader_orig_asound +#define snd_ctl_elem_info_is_locked snd_ctl_elem_info_is_locked_dylibloader_orig_asound +#define snd_ctl_elem_info_is_tlv_readable snd_ctl_elem_info_is_tlv_readable_dylibloader_orig_asound +#define snd_ctl_elem_info_is_tlv_writable snd_ctl_elem_info_is_tlv_writable_dylibloader_orig_asound +#define snd_ctl_elem_info_is_tlv_commandable snd_ctl_elem_info_is_tlv_commandable_dylibloader_orig_asound +#define snd_ctl_elem_info_is_owner snd_ctl_elem_info_is_owner_dylibloader_orig_asound +#define snd_ctl_elem_info_is_user snd_ctl_elem_info_is_user_dylibloader_orig_asound +#define snd_ctl_elem_info_get_owner snd_ctl_elem_info_get_owner_dylibloader_orig_asound +#define snd_ctl_elem_info_get_count snd_ctl_elem_info_get_count_dylibloader_orig_asound +#define snd_ctl_elem_info_get_min snd_ctl_elem_info_get_min_dylibloader_orig_asound +#define snd_ctl_elem_info_get_max snd_ctl_elem_info_get_max_dylibloader_orig_asound +#define snd_ctl_elem_info_get_step snd_ctl_elem_info_get_step_dylibloader_orig_asound +#define snd_ctl_elem_info_get_min64 snd_ctl_elem_info_get_min64_dylibloader_orig_asound +#define snd_ctl_elem_info_get_max64 snd_ctl_elem_info_get_max64_dylibloader_orig_asound +#define snd_ctl_elem_info_get_step64 snd_ctl_elem_info_get_step64_dylibloader_orig_asound +#define snd_ctl_elem_info_get_items snd_ctl_elem_info_get_items_dylibloader_orig_asound +#define snd_ctl_elem_info_set_item snd_ctl_elem_info_set_item_dylibloader_orig_asound +#define snd_ctl_elem_info_get_item_name snd_ctl_elem_info_get_item_name_dylibloader_orig_asound +#define snd_ctl_elem_info_get_dimensions snd_ctl_elem_info_get_dimensions_dylibloader_orig_asound +#define snd_ctl_elem_info_get_dimension snd_ctl_elem_info_get_dimension_dylibloader_orig_asound +#define snd_ctl_elem_info_set_dimension snd_ctl_elem_info_set_dimension_dylibloader_orig_asound +#define snd_ctl_elem_info_get_id snd_ctl_elem_info_get_id_dylibloader_orig_asound +#define snd_ctl_elem_info_get_numid snd_ctl_elem_info_get_numid_dylibloader_orig_asound +#define snd_ctl_elem_info_get_interface snd_ctl_elem_info_get_interface_dylibloader_orig_asound +#define snd_ctl_elem_info_get_device snd_ctl_elem_info_get_device_dylibloader_orig_asound +#define snd_ctl_elem_info_get_subdevice snd_ctl_elem_info_get_subdevice_dylibloader_orig_asound +#define snd_ctl_elem_info_get_name snd_ctl_elem_info_get_name_dylibloader_orig_asound +#define snd_ctl_elem_info_get_index snd_ctl_elem_info_get_index_dylibloader_orig_asound +#define snd_ctl_elem_info_set_id snd_ctl_elem_info_set_id_dylibloader_orig_asound +#define snd_ctl_elem_info_set_numid snd_ctl_elem_info_set_numid_dylibloader_orig_asound +#define snd_ctl_elem_info_set_interface snd_ctl_elem_info_set_interface_dylibloader_orig_asound +#define snd_ctl_elem_info_set_device snd_ctl_elem_info_set_device_dylibloader_orig_asound +#define snd_ctl_elem_info_set_subdevice snd_ctl_elem_info_set_subdevice_dylibloader_orig_asound +#define snd_ctl_elem_info_set_name snd_ctl_elem_info_set_name_dylibloader_orig_asound +#define snd_ctl_elem_info_set_index snd_ctl_elem_info_set_index_dylibloader_orig_asound +#define snd_ctl_add_integer_elem_set snd_ctl_add_integer_elem_set_dylibloader_orig_asound +#define snd_ctl_add_integer64_elem_set snd_ctl_add_integer64_elem_set_dylibloader_orig_asound +#define snd_ctl_add_boolean_elem_set snd_ctl_add_boolean_elem_set_dylibloader_orig_asound +#define snd_ctl_add_enumerated_elem_set snd_ctl_add_enumerated_elem_set_dylibloader_orig_asound +#define snd_ctl_add_bytes_elem_set snd_ctl_add_bytes_elem_set_dylibloader_orig_asound +#define snd_ctl_elem_add_integer snd_ctl_elem_add_integer_dylibloader_orig_asound +#define snd_ctl_elem_add_integer64 snd_ctl_elem_add_integer64_dylibloader_orig_asound +#define snd_ctl_elem_add_boolean snd_ctl_elem_add_boolean_dylibloader_orig_asound +#define snd_ctl_elem_add_enumerated snd_ctl_elem_add_enumerated_dylibloader_orig_asound +#define snd_ctl_elem_add_iec958 snd_ctl_elem_add_iec958_dylibloader_orig_asound +#define snd_ctl_elem_remove snd_ctl_elem_remove_dylibloader_orig_asound +#define snd_ctl_elem_value_sizeof snd_ctl_elem_value_sizeof_dylibloader_orig_asound +#define snd_ctl_elem_value_malloc snd_ctl_elem_value_malloc_dylibloader_orig_asound +#define snd_ctl_elem_value_free snd_ctl_elem_value_free_dylibloader_orig_asound +#define snd_ctl_elem_value_clear snd_ctl_elem_value_clear_dylibloader_orig_asound +#define snd_ctl_elem_value_copy snd_ctl_elem_value_copy_dylibloader_orig_asound +#define snd_ctl_elem_value_compare snd_ctl_elem_value_compare_dylibloader_orig_asound +#define snd_ctl_elem_value_get_id snd_ctl_elem_value_get_id_dylibloader_orig_asound +#define snd_ctl_elem_value_get_numid snd_ctl_elem_value_get_numid_dylibloader_orig_asound +#define snd_ctl_elem_value_get_interface snd_ctl_elem_value_get_interface_dylibloader_orig_asound +#define snd_ctl_elem_value_get_device snd_ctl_elem_value_get_device_dylibloader_orig_asound +#define snd_ctl_elem_value_get_subdevice snd_ctl_elem_value_get_subdevice_dylibloader_orig_asound +#define snd_ctl_elem_value_get_name snd_ctl_elem_value_get_name_dylibloader_orig_asound +#define snd_ctl_elem_value_get_index snd_ctl_elem_value_get_index_dylibloader_orig_asound +#define snd_ctl_elem_value_set_id snd_ctl_elem_value_set_id_dylibloader_orig_asound +#define snd_ctl_elem_value_set_numid snd_ctl_elem_value_set_numid_dylibloader_orig_asound +#define snd_ctl_elem_value_set_interface snd_ctl_elem_value_set_interface_dylibloader_orig_asound +#define snd_ctl_elem_value_set_device snd_ctl_elem_value_set_device_dylibloader_orig_asound +#define snd_ctl_elem_value_set_subdevice snd_ctl_elem_value_set_subdevice_dylibloader_orig_asound +#define snd_ctl_elem_value_set_name snd_ctl_elem_value_set_name_dylibloader_orig_asound +#define snd_ctl_elem_value_set_index snd_ctl_elem_value_set_index_dylibloader_orig_asound +#define snd_ctl_elem_value_get_boolean snd_ctl_elem_value_get_boolean_dylibloader_orig_asound +#define snd_ctl_elem_value_get_integer snd_ctl_elem_value_get_integer_dylibloader_orig_asound +#define snd_ctl_elem_value_get_integer64 snd_ctl_elem_value_get_integer64_dylibloader_orig_asound +#define snd_ctl_elem_value_get_enumerated snd_ctl_elem_value_get_enumerated_dylibloader_orig_asound +#define snd_ctl_elem_value_get_byte snd_ctl_elem_value_get_byte_dylibloader_orig_asound +#define snd_ctl_elem_value_set_boolean snd_ctl_elem_value_set_boolean_dylibloader_orig_asound +#define snd_ctl_elem_value_set_integer snd_ctl_elem_value_set_integer_dylibloader_orig_asound +#define snd_ctl_elem_value_set_integer64 snd_ctl_elem_value_set_integer64_dylibloader_orig_asound +#define snd_ctl_elem_value_set_enumerated snd_ctl_elem_value_set_enumerated_dylibloader_orig_asound +#define snd_ctl_elem_value_set_byte snd_ctl_elem_value_set_byte_dylibloader_orig_asound +#define snd_ctl_elem_set_bytes snd_ctl_elem_set_bytes_dylibloader_orig_asound +#define snd_ctl_elem_value_get_bytes snd_ctl_elem_value_get_bytes_dylibloader_orig_asound +#define snd_ctl_elem_value_get_iec958 snd_ctl_elem_value_get_iec958_dylibloader_orig_asound +#define snd_ctl_elem_value_set_iec958 snd_ctl_elem_value_set_iec958_dylibloader_orig_asound +#define snd_tlv_parse_dB_info snd_tlv_parse_dB_info_dylibloader_orig_asound +#define snd_tlv_get_dB_range snd_tlv_get_dB_range_dylibloader_orig_asound +#define snd_tlv_convert_to_dB snd_tlv_convert_to_dB_dylibloader_orig_asound +#define snd_tlv_convert_from_dB snd_tlv_convert_from_dB_dylibloader_orig_asound +#define snd_ctl_get_dB_range snd_ctl_get_dB_range_dylibloader_orig_asound +#define snd_ctl_convert_to_dB snd_ctl_convert_to_dB_dylibloader_orig_asound +#define snd_ctl_convert_from_dB snd_ctl_convert_from_dB_dylibloader_orig_asound +#define snd_hctl_compare_fast snd_hctl_compare_fast_dylibloader_orig_asound +#define snd_hctl_open snd_hctl_open_dylibloader_orig_asound +#define snd_hctl_open_ctl snd_hctl_open_ctl_dylibloader_orig_asound +#define snd_hctl_close snd_hctl_close_dylibloader_orig_asound +#define snd_hctl_nonblock snd_hctl_nonblock_dylibloader_orig_asound +#define snd_hctl_poll_descriptors_count snd_hctl_poll_descriptors_count_dylibloader_orig_asound +#define snd_hctl_poll_descriptors snd_hctl_poll_descriptors_dylibloader_orig_asound +#define snd_hctl_poll_descriptors_revents snd_hctl_poll_descriptors_revents_dylibloader_orig_asound +#define snd_hctl_get_count snd_hctl_get_count_dylibloader_orig_asound +#define snd_hctl_set_compare snd_hctl_set_compare_dylibloader_orig_asound +#define snd_hctl_first_elem snd_hctl_first_elem_dylibloader_orig_asound +#define snd_hctl_last_elem snd_hctl_last_elem_dylibloader_orig_asound +#define snd_hctl_find_elem snd_hctl_find_elem_dylibloader_orig_asound +#define snd_hctl_set_callback snd_hctl_set_callback_dylibloader_orig_asound +#define snd_hctl_set_callback_private snd_hctl_set_callback_private_dylibloader_orig_asound +#define snd_hctl_get_callback_private snd_hctl_get_callback_private_dylibloader_orig_asound +#define snd_hctl_load snd_hctl_load_dylibloader_orig_asound +#define snd_hctl_free snd_hctl_free_dylibloader_orig_asound +#define snd_hctl_handle_events snd_hctl_handle_events_dylibloader_orig_asound +#define snd_hctl_name snd_hctl_name_dylibloader_orig_asound +#define snd_hctl_wait snd_hctl_wait_dylibloader_orig_asound +#define snd_hctl_ctl snd_hctl_ctl_dylibloader_orig_asound +#define snd_hctl_elem_next snd_hctl_elem_next_dylibloader_orig_asound +#define snd_hctl_elem_prev snd_hctl_elem_prev_dylibloader_orig_asound +#define snd_hctl_elem_info snd_hctl_elem_info_dylibloader_orig_asound +#define snd_hctl_elem_read snd_hctl_elem_read_dylibloader_orig_asound +#define snd_hctl_elem_write snd_hctl_elem_write_dylibloader_orig_asound +#define snd_hctl_elem_tlv_read snd_hctl_elem_tlv_read_dylibloader_orig_asound +#define snd_hctl_elem_tlv_write snd_hctl_elem_tlv_write_dylibloader_orig_asound +#define snd_hctl_elem_tlv_command snd_hctl_elem_tlv_command_dylibloader_orig_asound +#define snd_hctl_elem_get_hctl snd_hctl_elem_get_hctl_dylibloader_orig_asound +#define snd_hctl_elem_get_id snd_hctl_elem_get_id_dylibloader_orig_asound +#define snd_hctl_elem_get_numid snd_hctl_elem_get_numid_dylibloader_orig_asound +#define snd_hctl_elem_get_interface snd_hctl_elem_get_interface_dylibloader_orig_asound +#define snd_hctl_elem_get_device snd_hctl_elem_get_device_dylibloader_orig_asound +#define snd_hctl_elem_get_subdevice snd_hctl_elem_get_subdevice_dylibloader_orig_asound +#define snd_hctl_elem_get_name snd_hctl_elem_get_name_dylibloader_orig_asound +#define snd_hctl_elem_get_index snd_hctl_elem_get_index_dylibloader_orig_asound +#define snd_hctl_elem_set_callback snd_hctl_elem_set_callback_dylibloader_orig_asound +#define snd_hctl_elem_get_callback_private snd_hctl_elem_get_callback_private_dylibloader_orig_asound +#define snd_hctl_elem_set_callback_private snd_hctl_elem_set_callback_private_dylibloader_orig_asound +#define snd_sctl_build snd_sctl_build_dylibloader_orig_asound +#define snd_sctl_free snd_sctl_free_dylibloader_orig_asound +#define snd_sctl_install snd_sctl_install_dylibloader_orig_asound +#define snd_sctl_remove snd_sctl_remove_dylibloader_orig_asound +#define snd_mixer_open snd_mixer_open_dylibloader_orig_asound +#define snd_mixer_close snd_mixer_close_dylibloader_orig_asound +#define snd_mixer_first_elem snd_mixer_first_elem_dylibloader_orig_asound +#define snd_mixer_last_elem snd_mixer_last_elem_dylibloader_orig_asound +#define snd_mixer_handle_events snd_mixer_handle_events_dylibloader_orig_asound +#define snd_mixer_attach snd_mixer_attach_dylibloader_orig_asound +#define snd_mixer_attach_hctl snd_mixer_attach_hctl_dylibloader_orig_asound +#define snd_mixer_detach snd_mixer_detach_dylibloader_orig_asound +#define snd_mixer_detach_hctl snd_mixer_detach_hctl_dylibloader_orig_asound +#define snd_mixer_get_hctl snd_mixer_get_hctl_dylibloader_orig_asound +#define snd_mixer_poll_descriptors_count snd_mixer_poll_descriptors_count_dylibloader_orig_asound +#define snd_mixer_poll_descriptors snd_mixer_poll_descriptors_dylibloader_orig_asound +#define snd_mixer_poll_descriptors_revents snd_mixer_poll_descriptors_revents_dylibloader_orig_asound +#define snd_mixer_load snd_mixer_load_dylibloader_orig_asound +#define snd_mixer_free snd_mixer_free_dylibloader_orig_asound +#define snd_mixer_wait snd_mixer_wait_dylibloader_orig_asound +#define snd_mixer_set_compare snd_mixer_set_compare_dylibloader_orig_asound +#define snd_mixer_set_callback snd_mixer_set_callback_dylibloader_orig_asound +#define snd_mixer_get_callback_private snd_mixer_get_callback_private_dylibloader_orig_asound +#define snd_mixer_set_callback_private snd_mixer_set_callback_private_dylibloader_orig_asound +#define snd_mixer_get_count snd_mixer_get_count_dylibloader_orig_asound +#define snd_mixer_class_unregister snd_mixer_class_unregister_dylibloader_orig_asound +#define snd_mixer_elem_next snd_mixer_elem_next_dylibloader_orig_asound +#define snd_mixer_elem_prev snd_mixer_elem_prev_dylibloader_orig_asound +#define snd_mixer_elem_set_callback snd_mixer_elem_set_callback_dylibloader_orig_asound +#define snd_mixer_elem_get_callback_private snd_mixer_elem_get_callback_private_dylibloader_orig_asound +#define snd_mixer_elem_set_callback_private snd_mixer_elem_set_callback_private_dylibloader_orig_asound +#define snd_mixer_elem_get_type snd_mixer_elem_get_type_dylibloader_orig_asound +#define snd_mixer_class_register snd_mixer_class_register_dylibloader_orig_asound +#define snd_mixer_elem_new snd_mixer_elem_new_dylibloader_orig_asound +#define snd_mixer_elem_add snd_mixer_elem_add_dylibloader_orig_asound +#define snd_mixer_elem_remove snd_mixer_elem_remove_dylibloader_orig_asound +#define snd_mixer_elem_free snd_mixer_elem_free_dylibloader_orig_asound +#define snd_mixer_elem_info snd_mixer_elem_info_dylibloader_orig_asound +#define snd_mixer_elem_value snd_mixer_elem_value_dylibloader_orig_asound +#define snd_mixer_elem_attach snd_mixer_elem_attach_dylibloader_orig_asound +#define snd_mixer_elem_detach snd_mixer_elem_detach_dylibloader_orig_asound +#define snd_mixer_elem_empty snd_mixer_elem_empty_dylibloader_orig_asound +#define snd_mixer_elem_get_private snd_mixer_elem_get_private_dylibloader_orig_asound +#define snd_mixer_class_sizeof snd_mixer_class_sizeof_dylibloader_orig_asound +#define snd_mixer_class_malloc snd_mixer_class_malloc_dylibloader_orig_asound +#define snd_mixer_class_free snd_mixer_class_free_dylibloader_orig_asound +#define snd_mixer_class_copy snd_mixer_class_copy_dylibloader_orig_asound +#define snd_mixer_class_get_mixer snd_mixer_class_get_mixer_dylibloader_orig_asound +#define snd_mixer_class_get_event snd_mixer_class_get_event_dylibloader_orig_asound +#define snd_mixer_class_get_private snd_mixer_class_get_private_dylibloader_orig_asound +#define snd_mixer_class_get_compare snd_mixer_class_get_compare_dylibloader_orig_asound +#define snd_mixer_class_set_event snd_mixer_class_set_event_dylibloader_orig_asound +#define snd_mixer_class_set_private snd_mixer_class_set_private_dylibloader_orig_asound +#define snd_mixer_class_set_private_free snd_mixer_class_set_private_free_dylibloader_orig_asound +#define snd_mixer_class_set_compare snd_mixer_class_set_compare_dylibloader_orig_asound +#define snd_mixer_selem_channel_name snd_mixer_selem_channel_name_dylibloader_orig_asound +#define snd_mixer_selem_register snd_mixer_selem_register_dylibloader_orig_asound +#define snd_mixer_selem_get_id snd_mixer_selem_get_id_dylibloader_orig_asound +#define snd_mixer_selem_get_name snd_mixer_selem_get_name_dylibloader_orig_asound +#define snd_mixer_selem_get_index snd_mixer_selem_get_index_dylibloader_orig_asound +#define snd_mixer_find_selem snd_mixer_find_selem_dylibloader_orig_asound +#define snd_mixer_selem_is_active snd_mixer_selem_is_active_dylibloader_orig_asound +#define snd_mixer_selem_is_playback_mono snd_mixer_selem_is_playback_mono_dylibloader_orig_asound +#define snd_mixer_selem_has_playback_channel snd_mixer_selem_has_playback_channel_dylibloader_orig_asound +#define snd_mixer_selem_is_capture_mono snd_mixer_selem_is_capture_mono_dylibloader_orig_asound +#define snd_mixer_selem_has_capture_channel snd_mixer_selem_has_capture_channel_dylibloader_orig_asound +#define snd_mixer_selem_get_capture_group snd_mixer_selem_get_capture_group_dylibloader_orig_asound +#define snd_mixer_selem_has_common_volume snd_mixer_selem_has_common_volume_dylibloader_orig_asound +#define snd_mixer_selem_has_playback_volume snd_mixer_selem_has_playback_volume_dylibloader_orig_asound +#define snd_mixer_selem_has_playback_volume_joined snd_mixer_selem_has_playback_volume_joined_dylibloader_orig_asound +#define snd_mixer_selem_has_capture_volume snd_mixer_selem_has_capture_volume_dylibloader_orig_asound +#define snd_mixer_selem_has_capture_volume_joined snd_mixer_selem_has_capture_volume_joined_dylibloader_orig_asound +#define snd_mixer_selem_has_common_switch snd_mixer_selem_has_common_switch_dylibloader_orig_asound +#define snd_mixer_selem_has_playback_switch snd_mixer_selem_has_playback_switch_dylibloader_orig_asound +#define snd_mixer_selem_has_playback_switch_joined snd_mixer_selem_has_playback_switch_joined_dylibloader_orig_asound +#define snd_mixer_selem_has_capture_switch snd_mixer_selem_has_capture_switch_dylibloader_orig_asound +#define snd_mixer_selem_has_capture_switch_joined snd_mixer_selem_has_capture_switch_joined_dylibloader_orig_asound +#define snd_mixer_selem_has_capture_switch_exclusive snd_mixer_selem_has_capture_switch_exclusive_dylibloader_orig_asound +#define snd_mixer_selem_ask_playback_vol_dB snd_mixer_selem_ask_playback_vol_dB_dylibloader_orig_asound +#define snd_mixer_selem_ask_capture_vol_dB snd_mixer_selem_ask_capture_vol_dB_dylibloader_orig_asound +#define snd_mixer_selem_ask_playback_dB_vol snd_mixer_selem_ask_playback_dB_vol_dylibloader_orig_asound +#define snd_mixer_selem_ask_capture_dB_vol snd_mixer_selem_ask_capture_dB_vol_dylibloader_orig_asound +#define snd_mixer_selem_get_playback_volume snd_mixer_selem_get_playback_volume_dylibloader_orig_asound +#define snd_mixer_selem_get_capture_volume snd_mixer_selem_get_capture_volume_dylibloader_orig_asound +#define snd_mixer_selem_get_playback_dB snd_mixer_selem_get_playback_dB_dylibloader_orig_asound +#define snd_mixer_selem_get_capture_dB snd_mixer_selem_get_capture_dB_dylibloader_orig_asound +#define snd_mixer_selem_get_playback_switch snd_mixer_selem_get_playback_switch_dylibloader_orig_asound +#define snd_mixer_selem_get_capture_switch snd_mixer_selem_get_capture_switch_dylibloader_orig_asound +#define snd_mixer_selem_set_playback_volume snd_mixer_selem_set_playback_volume_dylibloader_orig_asound +#define snd_mixer_selem_set_capture_volume snd_mixer_selem_set_capture_volume_dylibloader_orig_asound +#define snd_mixer_selem_set_playback_dB snd_mixer_selem_set_playback_dB_dylibloader_orig_asound +#define snd_mixer_selem_set_capture_dB snd_mixer_selem_set_capture_dB_dylibloader_orig_asound +#define snd_mixer_selem_set_playback_volume_all snd_mixer_selem_set_playback_volume_all_dylibloader_orig_asound +#define snd_mixer_selem_set_capture_volume_all snd_mixer_selem_set_capture_volume_all_dylibloader_orig_asound +#define snd_mixer_selem_set_playback_dB_all snd_mixer_selem_set_playback_dB_all_dylibloader_orig_asound +#define snd_mixer_selem_set_capture_dB_all snd_mixer_selem_set_capture_dB_all_dylibloader_orig_asound +#define snd_mixer_selem_set_playback_switch snd_mixer_selem_set_playback_switch_dylibloader_orig_asound +#define snd_mixer_selem_set_capture_switch snd_mixer_selem_set_capture_switch_dylibloader_orig_asound +#define snd_mixer_selem_set_playback_switch_all snd_mixer_selem_set_playback_switch_all_dylibloader_orig_asound +#define snd_mixer_selem_set_capture_switch_all snd_mixer_selem_set_capture_switch_all_dylibloader_orig_asound +#define snd_mixer_selem_get_playback_volume_range snd_mixer_selem_get_playback_volume_range_dylibloader_orig_asound +#define snd_mixer_selem_get_playback_dB_range snd_mixer_selem_get_playback_dB_range_dylibloader_orig_asound +#define snd_mixer_selem_set_playback_volume_range snd_mixer_selem_set_playback_volume_range_dylibloader_orig_asound +#define snd_mixer_selem_get_capture_volume_range snd_mixer_selem_get_capture_volume_range_dylibloader_orig_asound +#define snd_mixer_selem_get_capture_dB_range snd_mixer_selem_get_capture_dB_range_dylibloader_orig_asound +#define snd_mixer_selem_set_capture_volume_range snd_mixer_selem_set_capture_volume_range_dylibloader_orig_asound +#define snd_mixer_selem_is_enumerated snd_mixer_selem_is_enumerated_dylibloader_orig_asound +#define snd_mixer_selem_is_enum_playback snd_mixer_selem_is_enum_playback_dylibloader_orig_asound +#define snd_mixer_selem_is_enum_capture snd_mixer_selem_is_enum_capture_dylibloader_orig_asound +#define snd_mixer_selem_get_enum_items snd_mixer_selem_get_enum_items_dylibloader_orig_asound +#define snd_mixer_selem_get_enum_item_name snd_mixer_selem_get_enum_item_name_dylibloader_orig_asound +#define snd_mixer_selem_get_enum_item snd_mixer_selem_get_enum_item_dylibloader_orig_asound +#define snd_mixer_selem_set_enum_item snd_mixer_selem_set_enum_item_dylibloader_orig_asound +#define snd_mixer_selem_id_sizeof snd_mixer_selem_id_sizeof_dylibloader_orig_asound +#define snd_mixer_selem_id_malloc snd_mixer_selem_id_malloc_dylibloader_orig_asound +#define snd_mixer_selem_id_free snd_mixer_selem_id_free_dylibloader_orig_asound +#define snd_mixer_selem_id_copy snd_mixer_selem_id_copy_dylibloader_orig_asound +#define snd_mixer_selem_id_get_name snd_mixer_selem_id_get_name_dylibloader_orig_asound +#define snd_mixer_selem_id_get_index snd_mixer_selem_id_get_index_dylibloader_orig_asound +#define snd_mixer_selem_id_set_name snd_mixer_selem_id_set_name_dylibloader_orig_asound +#define snd_mixer_selem_id_set_index snd_mixer_selem_id_set_index_dylibloader_orig_asound +#define snd_mixer_selem_id_parse snd_mixer_selem_id_parse_dylibloader_orig_asound +#define snd_seq_open snd_seq_open_dylibloader_orig_asound +#define snd_seq_open_lconf snd_seq_open_lconf_dylibloader_orig_asound +#define snd_seq_name snd_seq_name_dylibloader_orig_asound +#define snd_seq_type snd_seq_type_dylibloader_orig_asound +#define snd_seq_close snd_seq_close_dylibloader_orig_asound +#define snd_seq_poll_descriptors_count snd_seq_poll_descriptors_count_dylibloader_orig_asound +#define snd_seq_poll_descriptors snd_seq_poll_descriptors_dylibloader_orig_asound +#define snd_seq_poll_descriptors_revents snd_seq_poll_descriptors_revents_dylibloader_orig_asound +#define snd_seq_nonblock snd_seq_nonblock_dylibloader_orig_asound +#define snd_seq_client_id snd_seq_client_id_dylibloader_orig_asound +#define snd_seq_get_output_buffer_size snd_seq_get_output_buffer_size_dylibloader_orig_asound +#define snd_seq_get_input_buffer_size snd_seq_get_input_buffer_size_dylibloader_orig_asound +#define snd_seq_set_output_buffer_size snd_seq_set_output_buffer_size_dylibloader_orig_asound +#define snd_seq_set_input_buffer_size snd_seq_set_input_buffer_size_dylibloader_orig_asound +#define snd_seq_system_info_sizeof snd_seq_system_info_sizeof_dylibloader_orig_asound +#define snd_seq_system_info_malloc snd_seq_system_info_malloc_dylibloader_orig_asound +#define snd_seq_system_info_free snd_seq_system_info_free_dylibloader_orig_asound +#define snd_seq_system_info_copy snd_seq_system_info_copy_dylibloader_orig_asound +#define snd_seq_system_info_get_queues snd_seq_system_info_get_queues_dylibloader_orig_asound +#define snd_seq_system_info_get_clients snd_seq_system_info_get_clients_dylibloader_orig_asound +#define snd_seq_system_info_get_ports snd_seq_system_info_get_ports_dylibloader_orig_asound +#define snd_seq_system_info_get_channels snd_seq_system_info_get_channels_dylibloader_orig_asound +#define snd_seq_system_info_get_cur_clients snd_seq_system_info_get_cur_clients_dylibloader_orig_asound +#define snd_seq_system_info_get_cur_queues snd_seq_system_info_get_cur_queues_dylibloader_orig_asound +#define snd_seq_system_info snd_seq_system_info_dylibloader_orig_asound +#define snd_seq_client_info_sizeof snd_seq_client_info_sizeof_dylibloader_orig_asound +#define snd_seq_client_info_malloc snd_seq_client_info_malloc_dylibloader_orig_asound +#define snd_seq_client_info_free snd_seq_client_info_free_dylibloader_orig_asound +#define snd_seq_client_info_copy snd_seq_client_info_copy_dylibloader_orig_asound +#define snd_seq_client_info_get_client snd_seq_client_info_get_client_dylibloader_orig_asound +#define snd_seq_client_info_get_type snd_seq_client_info_get_type_dylibloader_orig_asound +#define snd_seq_client_info_get_name snd_seq_client_info_get_name_dylibloader_orig_asound +#define snd_seq_client_info_get_broadcast_filter snd_seq_client_info_get_broadcast_filter_dylibloader_orig_asound +#define snd_seq_client_info_get_error_bounce snd_seq_client_info_get_error_bounce_dylibloader_orig_asound +#define snd_seq_client_info_get_card snd_seq_client_info_get_card_dylibloader_orig_asound +#define snd_seq_client_info_get_pid snd_seq_client_info_get_pid_dylibloader_orig_asound +#define snd_seq_client_info_get_event_filter snd_seq_client_info_get_event_filter_dylibloader_orig_asound +#define snd_seq_client_info_get_num_ports snd_seq_client_info_get_num_ports_dylibloader_orig_asound +#define snd_seq_client_info_get_event_lost snd_seq_client_info_get_event_lost_dylibloader_orig_asound +#define snd_seq_client_info_set_client snd_seq_client_info_set_client_dylibloader_orig_asound +#define snd_seq_client_info_set_name snd_seq_client_info_set_name_dylibloader_orig_asound +#define snd_seq_client_info_set_broadcast_filter snd_seq_client_info_set_broadcast_filter_dylibloader_orig_asound +#define snd_seq_client_info_set_error_bounce snd_seq_client_info_set_error_bounce_dylibloader_orig_asound +#define snd_seq_client_info_set_event_filter snd_seq_client_info_set_event_filter_dylibloader_orig_asound +#define snd_seq_client_info_event_filter_clear snd_seq_client_info_event_filter_clear_dylibloader_orig_asound +#define snd_seq_client_info_event_filter_add snd_seq_client_info_event_filter_add_dylibloader_orig_asound +#define snd_seq_client_info_event_filter_del snd_seq_client_info_event_filter_del_dylibloader_orig_asound +#define snd_seq_client_info_event_filter_check snd_seq_client_info_event_filter_check_dylibloader_orig_asound +#define snd_seq_get_client_info snd_seq_get_client_info_dylibloader_orig_asound +#define snd_seq_get_any_client_info snd_seq_get_any_client_info_dylibloader_orig_asound +#define snd_seq_set_client_info snd_seq_set_client_info_dylibloader_orig_asound +#define snd_seq_query_next_client snd_seq_query_next_client_dylibloader_orig_asound +#define snd_seq_client_pool_sizeof snd_seq_client_pool_sizeof_dylibloader_orig_asound +#define snd_seq_client_pool_malloc snd_seq_client_pool_malloc_dylibloader_orig_asound +#define snd_seq_client_pool_free snd_seq_client_pool_free_dylibloader_orig_asound +#define snd_seq_client_pool_copy snd_seq_client_pool_copy_dylibloader_orig_asound +#define snd_seq_client_pool_get_client snd_seq_client_pool_get_client_dylibloader_orig_asound +#define snd_seq_client_pool_get_output_pool snd_seq_client_pool_get_output_pool_dylibloader_orig_asound +#define snd_seq_client_pool_get_input_pool snd_seq_client_pool_get_input_pool_dylibloader_orig_asound +#define snd_seq_client_pool_get_output_room snd_seq_client_pool_get_output_room_dylibloader_orig_asound +#define snd_seq_client_pool_get_output_free snd_seq_client_pool_get_output_free_dylibloader_orig_asound +#define snd_seq_client_pool_get_input_free snd_seq_client_pool_get_input_free_dylibloader_orig_asound +#define snd_seq_client_pool_set_output_pool snd_seq_client_pool_set_output_pool_dylibloader_orig_asound +#define snd_seq_client_pool_set_input_pool snd_seq_client_pool_set_input_pool_dylibloader_orig_asound +#define snd_seq_client_pool_set_output_room snd_seq_client_pool_set_output_room_dylibloader_orig_asound +#define snd_seq_get_client_pool snd_seq_get_client_pool_dylibloader_orig_asound +#define snd_seq_set_client_pool snd_seq_set_client_pool_dylibloader_orig_asound +#define snd_seq_port_info_sizeof snd_seq_port_info_sizeof_dylibloader_orig_asound +#define snd_seq_port_info_malloc snd_seq_port_info_malloc_dylibloader_orig_asound +#define snd_seq_port_info_free snd_seq_port_info_free_dylibloader_orig_asound +#define snd_seq_port_info_copy snd_seq_port_info_copy_dylibloader_orig_asound +#define snd_seq_port_info_get_client snd_seq_port_info_get_client_dylibloader_orig_asound +#define snd_seq_port_info_get_port snd_seq_port_info_get_port_dylibloader_orig_asound +#define snd_seq_port_info_get_addr snd_seq_port_info_get_addr_dylibloader_orig_asound +#define snd_seq_port_info_get_name snd_seq_port_info_get_name_dylibloader_orig_asound +#define snd_seq_port_info_get_capability snd_seq_port_info_get_capability_dylibloader_orig_asound +#define snd_seq_port_info_get_type snd_seq_port_info_get_type_dylibloader_orig_asound +#define snd_seq_port_info_get_midi_channels snd_seq_port_info_get_midi_channels_dylibloader_orig_asound +#define snd_seq_port_info_get_midi_voices snd_seq_port_info_get_midi_voices_dylibloader_orig_asound +#define snd_seq_port_info_get_synth_voices snd_seq_port_info_get_synth_voices_dylibloader_orig_asound +#define snd_seq_port_info_get_read_use snd_seq_port_info_get_read_use_dylibloader_orig_asound +#define snd_seq_port_info_get_write_use snd_seq_port_info_get_write_use_dylibloader_orig_asound +#define snd_seq_port_info_get_port_specified snd_seq_port_info_get_port_specified_dylibloader_orig_asound +#define snd_seq_port_info_get_timestamping snd_seq_port_info_get_timestamping_dylibloader_orig_asound +#define snd_seq_port_info_get_timestamp_real snd_seq_port_info_get_timestamp_real_dylibloader_orig_asound +#define snd_seq_port_info_get_timestamp_queue snd_seq_port_info_get_timestamp_queue_dylibloader_orig_asound +#define snd_seq_port_info_set_client snd_seq_port_info_set_client_dylibloader_orig_asound +#define snd_seq_port_info_set_port snd_seq_port_info_set_port_dylibloader_orig_asound +#define snd_seq_port_info_set_addr snd_seq_port_info_set_addr_dylibloader_orig_asound +#define snd_seq_port_info_set_name snd_seq_port_info_set_name_dylibloader_orig_asound +#define snd_seq_port_info_set_capability snd_seq_port_info_set_capability_dylibloader_orig_asound +#define snd_seq_port_info_set_type snd_seq_port_info_set_type_dylibloader_orig_asound +#define snd_seq_port_info_set_midi_channels snd_seq_port_info_set_midi_channels_dylibloader_orig_asound +#define snd_seq_port_info_set_midi_voices snd_seq_port_info_set_midi_voices_dylibloader_orig_asound +#define snd_seq_port_info_set_synth_voices snd_seq_port_info_set_synth_voices_dylibloader_orig_asound +#define snd_seq_port_info_set_port_specified snd_seq_port_info_set_port_specified_dylibloader_orig_asound +#define snd_seq_port_info_set_timestamping snd_seq_port_info_set_timestamping_dylibloader_orig_asound +#define snd_seq_port_info_set_timestamp_real snd_seq_port_info_set_timestamp_real_dylibloader_orig_asound +#define snd_seq_port_info_set_timestamp_queue snd_seq_port_info_set_timestamp_queue_dylibloader_orig_asound +#define snd_seq_create_port snd_seq_create_port_dylibloader_orig_asound +#define snd_seq_delete_port snd_seq_delete_port_dylibloader_orig_asound +#define snd_seq_get_port_info snd_seq_get_port_info_dylibloader_orig_asound +#define snd_seq_get_any_port_info snd_seq_get_any_port_info_dylibloader_orig_asound +#define snd_seq_set_port_info snd_seq_set_port_info_dylibloader_orig_asound +#define snd_seq_query_next_port snd_seq_query_next_port_dylibloader_orig_asound +#define snd_seq_port_subscribe_sizeof snd_seq_port_subscribe_sizeof_dylibloader_orig_asound +#define snd_seq_port_subscribe_malloc snd_seq_port_subscribe_malloc_dylibloader_orig_asound +#define snd_seq_port_subscribe_free snd_seq_port_subscribe_free_dylibloader_orig_asound +#define snd_seq_port_subscribe_copy snd_seq_port_subscribe_copy_dylibloader_orig_asound +#define snd_seq_port_subscribe_get_sender snd_seq_port_subscribe_get_sender_dylibloader_orig_asound +#define snd_seq_port_subscribe_get_dest snd_seq_port_subscribe_get_dest_dylibloader_orig_asound +#define snd_seq_port_subscribe_get_queue snd_seq_port_subscribe_get_queue_dylibloader_orig_asound +#define snd_seq_port_subscribe_get_exclusive snd_seq_port_subscribe_get_exclusive_dylibloader_orig_asound +#define snd_seq_port_subscribe_get_time_update snd_seq_port_subscribe_get_time_update_dylibloader_orig_asound +#define snd_seq_port_subscribe_get_time_real snd_seq_port_subscribe_get_time_real_dylibloader_orig_asound +#define snd_seq_port_subscribe_set_sender snd_seq_port_subscribe_set_sender_dylibloader_orig_asound +#define snd_seq_port_subscribe_set_dest snd_seq_port_subscribe_set_dest_dylibloader_orig_asound +#define snd_seq_port_subscribe_set_queue snd_seq_port_subscribe_set_queue_dylibloader_orig_asound +#define snd_seq_port_subscribe_set_exclusive snd_seq_port_subscribe_set_exclusive_dylibloader_orig_asound +#define snd_seq_port_subscribe_set_time_update snd_seq_port_subscribe_set_time_update_dylibloader_orig_asound +#define snd_seq_port_subscribe_set_time_real snd_seq_port_subscribe_set_time_real_dylibloader_orig_asound +#define snd_seq_get_port_subscription snd_seq_get_port_subscription_dylibloader_orig_asound +#define snd_seq_subscribe_port snd_seq_subscribe_port_dylibloader_orig_asound +#define snd_seq_unsubscribe_port snd_seq_unsubscribe_port_dylibloader_orig_asound +#define snd_seq_query_subscribe_sizeof snd_seq_query_subscribe_sizeof_dylibloader_orig_asound +#define snd_seq_query_subscribe_malloc snd_seq_query_subscribe_malloc_dylibloader_orig_asound +#define snd_seq_query_subscribe_free snd_seq_query_subscribe_free_dylibloader_orig_asound +#define snd_seq_query_subscribe_copy snd_seq_query_subscribe_copy_dylibloader_orig_asound +#define snd_seq_query_subscribe_get_client snd_seq_query_subscribe_get_client_dylibloader_orig_asound +#define snd_seq_query_subscribe_get_port snd_seq_query_subscribe_get_port_dylibloader_orig_asound +#define snd_seq_query_subscribe_get_root snd_seq_query_subscribe_get_root_dylibloader_orig_asound +#define snd_seq_query_subscribe_get_type snd_seq_query_subscribe_get_type_dylibloader_orig_asound +#define snd_seq_query_subscribe_get_index snd_seq_query_subscribe_get_index_dylibloader_orig_asound +#define snd_seq_query_subscribe_get_num_subs snd_seq_query_subscribe_get_num_subs_dylibloader_orig_asound +#define snd_seq_query_subscribe_get_addr snd_seq_query_subscribe_get_addr_dylibloader_orig_asound +#define snd_seq_query_subscribe_get_queue snd_seq_query_subscribe_get_queue_dylibloader_orig_asound +#define snd_seq_query_subscribe_get_exclusive snd_seq_query_subscribe_get_exclusive_dylibloader_orig_asound +#define snd_seq_query_subscribe_get_time_update snd_seq_query_subscribe_get_time_update_dylibloader_orig_asound +#define snd_seq_query_subscribe_get_time_real snd_seq_query_subscribe_get_time_real_dylibloader_orig_asound +#define snd_seq_query_subscribe_set_client snd_seq_query_subscribe_set_client_dylibloader_orig_asound +#define snd_seq_query_subscribe_set_port snd_seq_query_subscribe_set_port_dylibloader_orig_asound +#define snd_seq_query_subscribe_set_root snd_seq_query_subscribe_set_root_dylibloader_orig_asound +#define snd_seq_query_subscribe_set_type snd_seq_query_subscribe_set_type_dylibloader_orig_asound +#define snd_seq_query_subscribe_set_index snd_seq_query_subscribe_set_index_dylibloader_orig_asound +#define snd_seq_query_port_subscribers snd_seq_query_port_subscribers_dylibloader_orig_asound +#define snd_seq_queue_info_sizeof snd_seq_queue_info_sizeof_dylibloader_orig_asound +#define snd_seq_queue_info_malloc snd_seq_queue_info_malloc_dylibloader_orig_asound +#define snd_seq_queue_info_free snd_seq_queue_info_free_dylibloader_orig_asound +#define snd_seq_queue_info_copy snd_seq_queue_info_copy_dylibloader_orig_asound +#define snd_seq_queue_info_get_queue snd_seq_queue_info_get_queue_dylibloader_orig_asound +#define snd_seq_queue_info_get_name snd_seq_queue_info_get_name_dylibloader_orig_asound +#define snd_seq_queue_info_get_owner snd_seq_queue_info_get_owner_dylibloader_orig_asound +#define snd_seq_queue_info_get_locked snd_seq_queue_info_get_locked_dylibloader_orig_asound +#define snd_seq_queue_info_get_flags snd_seq_queue_info_get_flags_dylibloader_orig_asound +#define snd_seq_queue_info_set_name snd_seq_queue_info_set_name_dylibloader_orig_asound +#define snd_seq_queue_info_set_owner snd_seq_queue_info_set_owner_dylibloader_orig_asound +#define snd_seq_queue_info_set_locked snd_seq_queue_info_set_locked_dylibloader_orig_asound +#define snd_seq_queue_info_set_flags snd_seq_queue_info_set_flags_dylibloader_orig_asound +#define snd_seq_create_queue snd_seq_create_queue_dylibloader_orig_asound +#define snd_seq_alloc_named_queue snd_seq_alloc_named_queue_dylibloader_orig_asound +#define snd_seq_alloc_queue snd_seq_alloc_queue_dylibloader_orig_asound +#define snd_seq_free_queue snd_seq_free_queue_dylibloader_orig_asound +#define snd_seq_get_queue_info snd_seq_get_queue_info_dylibloader_orig_asound +#define snd_seq_set_queue_info snd_seq_set_queue_info_dylibloader_orig_asound +#define snd_seq_query_named_queue snd_seq_query_named_queue_dylibloader_orig_asound +#define snd_seq_get_queue_usage snd_seq_get_queue_usage_dylibloader_orig_asound +#define snd_seq_set_queue_usage snd_seq_set_queue_usage_dylibloader_orig_asound +#define snd_seq_queue_status_sizeof snd_seq_queue_status_sizeof_dylibloader_orig_asound +#define snd_seq_queue_status_malloc snd_seq_queue_status_malloc_dylibloader_orig_asound +#define snd_seq_queue_status_free snd_seq_queue_status_free_dylibloader_orig_asound +#define snd_seq_queue_status_copy snd_seq_queue_status_copy_dylibloader_orig_asound +#define snd_seq_queue_status_get_queue snd_seq_queue_status_get_queue_dylibloader_orig_asound +#define snd_seq_queue_status_get_events snd_seq_queue_status_get_events_dylibloader_orig_asound +#define snd_seq_queue_status_get_tick_time snd_seq_queue_status_get_tick_time_dylibloader_orig_asound +#define snd_seq_queue_status_get_real_time snd_seq_queue_status_get_real_time_dylibloader_orig_asound +#define snd_seq_queue_status_get_status snd_seq_queue_status_get_status_dylibloader_orig_asound +#define snd_seq_get_queue_status snd_seq_get_queue_status_dylibloader_orig_asound +#define snd_seq_queue_tempo_sizeof snd_seq_queue_tempo_sizeof_dylibloader_orig_asound +#define snd_seq_queue_tempo_malloc snd_seq_queue_tempo_malloc_dylibloader_orig_asound +#define snd_seq_queue_tempo_free snd_seq_queue_tempo_free_dylibloader_orig_asound +#define snd_seq_queue_tempo_copy snd_seq_queue_tempo_copy_dylibloader_orig_asound +#define snd_seq_queue_tempo_get_queue snd_seq_queue_tempo_get_queue_dylibloader_orig_asound +#define snd_seq_queue_tempo_get_tempo snd_seq_queue_tempo_get_tempo_dylibloader_orig_asound +#define snd_seq_queue_tempo_get_ppq snd_seq_queue_tempo_get_ppq_dylibloader_orig_asound +#define snd_seq_queue_tempo_get_skew snd_seq_queue_tempo_get_skew_dylibloader_orig_asound +#define snd_seq_queue_tempo_get_skew_base snd_seq_queue_tempo_get_skew_base_dylibloader_orig_asound +#define snd_seq_queue_tempo_set_tempo snd_seq_queue_tempo_set_tempo_dylibloader_orig_asound +#define snd_seq_queue_tempo_set_ppq snd_seq_queue_tempo_set_ppq_dylibloader_orig_asound +#define snd_seq_queue_tempo_set_skew snd_seq_queue_tempo_set_skew_dylibloader_orig_asound +#define snd_seq_queue_tempo_set_skew_base snd_seq_queue_tempo_set_skew_base_dylibloader_orig_asound +#define snd_seq_get_queue_tempo snd_seq_get_queue_tempo_dylibloader_orig_asound +#define snd_seq_set_queue_tempo snd_seq_set_queue_tempo_dylibloader_orig_asound +#define snd_seq_queue_timer_sizeof snd_seq_queue_timer_sizeof_dylibloader_orig_asound +#define snd_seq_queue_timer_malloc snd_seq_queue_timer_malloc_dylibloader_orig_asound +#define snd_seq_queue_timer_free snd_seq_queue_timer_free_dylibloader_orig_asound +#define snd_seq_queue_timer_copy snd_seq_queue_timer_copy_dylibloader_orig_asound +#define snd_seq_queue_timer_get_queue snd_seq_queue_timer_get_queue_dylibloader_orig_asound +#define snd_seq_queue_timer_get_type snd_seq_queue_timer_get_type_dylibloader_orig_asound +#define snd_seq_queue_timer_get_id snd_seq_queue_timer_get_id_dylibloader_orig_asound +#define snd_seq_queue_timer_get_resolution snd_seq_queue_timer_get_resolution_dylibloader_orig_asound +#define snd_seq_queue_timer_set_type snd_seq_queue_timer_set_type_dylibloader_orig_asound +#define snd_seq_queue_timer_set_id snd_seq_queue_timer_set_id_dylibloader_orig_asound +#define snd_seq_queue_timer_set_resolution snd_seq_queue_timer_set_resolution_dylibloader_orig_asound +#define snd_seq_get_queue_timer snd_seq_get_queue_timer_dylibloader_orig_asound +#define snd_seq_set_queue_timer snd_seq_set_queue_timer_dylibloader_orig_asound +#define snd_seq_free_event snd_seq_free_event_dylibloader_orig_asound +#define snd_seq_event_length snd_seq_event_length_dylibloader_orig_asound +#define snd_seq_event_output snd_seq_event_output_dylibloader_orig_asound +#define snd_seq_event_output_buffer snd_seq_event_output_buffer_dylibloader_orig_asound +#define snd_seq_event_output_direct snd_seq_event_output_direct_dylibloader_orig_asound +#define snd_seq_event_input snd_seq_event_input_dylibloader_orig_asound +#define snd_seq_event_input_pending snd_seq_event_input_pending_dylibloader_orig_asound +#define snd_seq_drain_output snd_seq_drain_output_dylibloader_orig_asound +#define snd_seq_event_output_pending snd_seq_event_output_pending_dylibloader_orig_asound +#define snd_seq_extract_output snd_seq_extract_output_dylibloader_orig_asound +#define snd_seq_drop_output snd_seq_drop_output_dylibloader_orig_asound +#define snd_seq_drop_output_buffer snd_seq_drop_output_buffer_dylibloader_orig_asound +#define snd_seq_drop_input snd_seq_drop_input_dylibloader_orig_asound +#define snd_seq_drop_input_buffer snd_seq_drop_input_buffer_dylibloader_orig_asound +#define snd_seq_remove_events_sizeof snd_seq_remove_events_sizeof_dylibloader_orig_asound +#define snd_seq_remove_events_malloc snd_seq_remove_events_malloc_dylibloader_orig_asound +#define snd_seq_remove_events_free snd_seq_remove_events_free_dylibloader_orig_asound +#define snd_seq_remove_events_copy snd_seq_remove_events_copy_dylibloader_orig_asound +#define snd_seq_remove_events_get_condition snd_seq_remove_events_get_condition_dylibloader_orig_asound +#define snd_seq_remove_events_get_queue snd_seq_remove_events_get_queue_dylibloader_orig_asound +#define snd_seq_remove_events_get_time snd_seq_remove_events_get_time_dylibloader_orig_asound +#define snd_seq_remove_events_get_dest snd_seq_remove_events_get_dest_dylibloader_orig_asound +#define snd_seq_remove_events_get_channel snd_seq_remove_events_get_channel_dylibloader_orig_asound +#define snd_seq_remove_events_get_event_type snd_seq_remove_events_get_event_type_dylibloader_orig_asound +#define snd_seq_remove_events_get_tag snd_seq_remove_events_get_tag_dylibloader_orig_asound +#define snd_seq_remove_events_set_condition snd_seq_remove_events_set_condition_dylibloader_orig_asound +#define snd_seq_remove_events_set_queue snd_seq_remove_events_set_queue_dylibloader_orig_asound +#define snd_seq_remove_events_set_time snd_seq_remove_events_set_time_dylibloader_orig_asound +#define snd_seq_remove_events_set_dest snd_seq_remove_events_set_dest_dylibloader_orig_asound +#define snd_seq_remove_events_set_channel snd_seq_remove_events_set_channel_dylibloader_orig_asound +#define snd_seq_remove_events_set_event_type snd_seq_remove_events_set_event_type_dylibloader_orig_asound +#define snd_seq_remove_events_set_tag snd_seq_remove_events_set_tag_dylibloader_orig_asound +#define snd_seq_remove_events snd_seq_remove_events_dylibloader_orig_asound +#define snd_seq_set_bit snd_seq_set_bit_dylibloader_orig_asound +#define snd_seq_unset_bit snd_seq_unset_bit_dylibloader_orig_asound +#define snd_seq_change_bit snd_seq_change_bit_dylibloader_orig_asound +#define snd_seq_get_bit snd_seq_get_bit_dylibloader_orig_asound +#define snd_seq_control_queue snd_seq_control_queue_dylibloader_orig_asound +#define snd_seq_create_simple_port snd_seq_create_simple_port_dylibloader_orig_asound +#define snd_seq_delete_simple_port snd_seq_delete_simple_port_dylibloader_orig_asound +#define snd_seq_connect_from snd_seq_connect_from_dylibloader_orig_asound +#define snd_seq_connect_to snd_seq_connect_to_dylibloader_orig_asound +#define snd_seq_disconnect_from snd_seq_disconnect_from_dylibloader_orig_asound +#define snd_seq_disconnect_to snd_seq_disconnect_to_dylibloader_orig_asound +#define snd_seq_set_client_name snd_seq_set_client_name_dylibloader_orig_asound +#define snd_seq_set_client_event_filter snd_seq_set_client_event_filter_dylibloader_orig_asound +#define snd_seq_set_client_pool_output snd_seq_set_client_pool_output_dylibloader_orig_asound +#define snd_seq_set_client_pool_output_room snd_seq_set_client_pool_output_room_dylibloader_orig_asound +#define snd_seq_set_client_pool_input snd_seq_set_client_pool_input_dylibloader_orig_asound +#define snd_seq_sync_output_queue snd_seq_sync_output_queue_dylibloader_orig_asound +#define snd_seq_parse_address snd_seq_parse_address_dylibloader_orig_asound +#define snd_seq_reset_pool_output snd_seq_reset_pool_output_dylibloader_orig_asound +#define snd_seq_reset_pool_input snd_seq_reset_pool_input_dylibloader_orig_asound +#define snd_midi_event_new snd_midi_event_new_dylibloader_orig_asound +#define snd_midi_event_resize_buffer snd_midi_event_resize_buffer_dylibloader_orig_asound +#define snd_midi_event_free snd_midi_event_free_dylibloader_orig_asound +#define snd_midi_event_init snd_midi_event_init_dylibloader_orig_asound +#define snd_midi_event_reset_encode snd_midi_event_reset_encode_dylibloader_orig_asound +#define snd_midi_event_reset_decode snd_midi_event_reset_decode_dylibloader_orig_asound +#define snd_midi_event_no_status snd_midi_event_no_status_dylibloader_orig_asound +#define snd_midi_event_encode snd_midi_event_encode_dylibloader_orig_asound +#define snd_midi_event_encode_byte snd_midi_event_encode_byte_dylibloader_orig_asound +#define snd_midi_event_decode snd_midi_event_decode_dylibloader_orig_asound +#include <alsa/asoundlib.h> +#undef snd_asoundlib_version +#undef snd_dlpath +#undef snd_dlopen +#undef snd_dlsym +#undef snd_dlclose +#undef snd_async_add_handler +#undef snd_async_del_handler +#undef snd_async_handler_get_fd +#undef snd_async_handler_get_signo +#undef snd_async_handler_get_callback_private +#undef snd_shm_area_create +#undef snd_shm_area_share +#undef snd_shm_area_destroy +#undef snd_user_file +#undef snd_input_stdio_open +#undef snd_input_stdio_attach +#undef snd_input_buffer_open +#undef snd_input_close +#undef snd_input_scanf +#undef snd_input_gets +#undef snd_input_getc +#undef snd_input_ungetc +#undef snd_output_stdio_open +#undef snd_output_stdio_attach +#undef snd_output_buffer_open +#undef snd_output_buffer_string +#undef snd_output_close +#undef snd_output_printf +#undef snd_output_vprintf +#undef snd_output_puts +#undef snd_output_putc +#undef snd_output_flush +#undef snd_strerror +#undef snd_lib_error_set_handler +#undef snd_lib_error_set_local +#undef snd_config_topdir +#undef snd_config_top +#undef snd_config_load +#undef snd_config_load_override +#undef snd_config_save +#undef snd_config_update +#undef snd_config_update_r +#undef snd_config_update_free +#undef snd_config_update_free_global +#undef snd_config_update_ref +#undef snd_config_ref +#undef snd_config_unref +#undef snd_config_search +#undef snd_config_searchv +#undef snd_config_search_definition +#undef snd_config_expand +#undef snd_config_evaluate +#undef snd_config_add +#undef snd_config_add_before +#undef snd_config_add_after +#undef snd_config_remove +#undef snd_config_delete +#undef snd_config_delete_compound_members +#undef snd_config_copy +#undef snd_config_make +#undef snd_config_make_integer +#undef snd_config_make_integer64 +#undef snd_config_make_real +#undef snd_config_make_string +#undef snd_config_make_pointer +#undef snd_config_make_compound +#undef snd_config_imake_integer +#undef snd_config_imake_integer64 +#undef snd_config_imake_real +#undef snd_config_imake_string +#undef snd_config_imake_safe_string +#undef snd_config_imake_pointer +#undef snd_config_get_type +#undef snd_config_is_array +#undef snd_config_set_id +#undef snd_config_set_integer +#undef snd_config_set_integer64 +#undef snd_config_set_real +#undef snd_config_set_string +#undef snd_config_set_ascii +#undef snd_config_set_pointer +#undef snd_config_get_id +#undef snd_config_get_integer +#undef snd_config_get_integer64 +#undef snd_config_get_real +#undef snd_config_get_ireal +#undef snd_config_get_string +#undef snd_config_get_ascii +#undef snd_config_get_pointer +#undef snd_config_test_id +#undef snd_config_iterator_first +#undef snd_config_iterator_next +#undef snd_config_iterator_end +#undef snd_config_iterator_entry +#undef snd_config_get_bool_ascii +#undef snd_config_get_bool +#undef snd_config_get_ctl_iface_ascii +#undef snd_config_get_ctl_iface +#undef snd_names_list +#undef snd_names_list_free +#undef snd_pcm_open +#undef snd_pcm_open_lconf +#undef snd_pcm_open_fallback +#undef snd_pcm_close +#undef snd_pcm_name +#undef snd_pcm_type +#undef snd_pcm_stream +#undef snd_pcm_poll_descriptors_count +#undef snd_pcm_poll_descriptors +#undef snd_pcm_poll_descriptors_revents +#undef snd_pcm_nonblock +#undef snd_async_add_pcm_handler +#undef snd_async_handler_get_pcm +#undef snd_pcm_info +#undef snd_pcm_hw_params_current +#undef snd_pcm_hw_params +#undef snd_pcm_hw_free +#undef snd_pcm_sw_params_current +#undef snd_pcm_sw_params +#undef snd_pcm_prepare +#undef snd_pcm_reset +#undef snd_pcm_status +#undef snd_pcm_start +#undef snd_pcm_drop +#undef snd_pcm_drain +#undef snd_pcm_pause +#undef snd_pcm_state +#undef snd_pcm_hwsync +#undef snd_pcm_delay +#undef snd_pcm_resume +#undef snd_pcm_htimestamp +#undef snd_pcm_avail +#undef snd_pcm_avail_update +#undef snd_pcm_avail_delay +#undef snd_pcm_rewindable +#undef snd_pcm_rewind +#undef snd_pcm_forwardable +#undef snd_pcm_forward +#undef snd_pcm_writei +#undef snd_pcm_readi +#undef snd_pcm_writen +#undef snd_pcm_readn +#undef snd_pcm_wait +#undef snd_pcm_link +#undef snd_pcm_unlink +#undef snd_pcm_query_chmaps +#undef snd_pcm_query_chmaps_from_hw +#undef snd_pcm_free_chmaps +#undef snd_pcm_get_chmap +#undef snd_pcm_set_chmap +#undef snd_pcm_chmap_type_name +#undef snd_pcm_chmap_name +#undef snd_pcm_chmap_long_name +#undef snd_pcm_chmap_print +#undef snd_pcm_chmap_from_string +#undef snd_pcm_chmap_parse_string +#undef snd_pcm_recover +#undef snd_pcm_set_params +#undef snd_pcm_get_params +#undef snd_pcm_info_sizeof +#undef snd_pcm_info_malloc +#undef snd_pcm_info_free +#undef snd_pcm_info_copy +#undef snd_pcm_info_get_device +#undef snd_pcm_info_get_subdevice +#undef snd_pcm_info_get_stream +#undef snd_pcm_info_get_card +#undef snd_pcm_info_get_id +#undef snd_pcm_info_get_name +#undef snd_pcm_info_get_subdevice_name +#undef snd_pcm_info_get_class +#undef snd_pcm_info_get_subclass +#undef snd_pcm_info_get_subdevices_count +#undef snd_pcm_info_get_subdevices_avail +#undef snd_pcm_info_get_sync +#undef snd_pcm_info_set_device +#undef snd_pcm_info_set_subdevice +#undef snd_pcm_info_set_stream +#undef snd_pcm_hw_params_any +#undef snd_pcm_hw_params_can_mmap_sample_resolution +#undef snd_pcm_hw_params_is_double +#undef snd_pcm_hw_params_is_batch +#undef snd_pcm_hw_params_is_block_transfer +#undef snd_pcm_hw_params_is_monotonic +#undef snd_pcm_hw_params_can_overrange +#undef snd_pcm_hw_params_can_pause +#undef snd_pcm_hw_params_can_resume +#undef snd_pcm_hw_params_is_half_duplex +#undef snd_pcm_hw_params_is_joint_duplex +#undef snd_pcm_hw_params_can_sync_start +#undef snd_pcm_hw_params_can_disable_period_wakeup +#undef snd_pcm_hw_params_supports_audio_wallclock_ts +#undef snd_pcm_hw_params_supports_audio_ts_type +#undef snd_pcm_hw_params_get_rate_numden +#undef snd_pcm_hw_params_get_sbits +#undef snd_pcm_hw_params_get_fifo_size +#undef snd_pcm_hw_params_sizeof +#undef snd_pcm_hw_params_malloc +#undef snd_pcm_hw_params_free +#undef snd_pcm_hw_params_copy +#undef snd_pcm_hw_params_get_access +#undef snd_pcm_hw_params_test_access +#undef snd_pcm_hw_params_set_access +#undef snd_pcm_hw_params_set_access_first +#undef snd_pcm_hw_params_set_access_last +#undef snd_pcm_hw_params_set_access_mask +#undef snd_pcm_hw_params_get_access_mask +#undef snd_pcm_hw_params_get_format +#undef snd_pcm_hw_params_test_format +#undef snd_pcm_hw_params_set_format +#undef snd_pcm_hw_params_set_format_first +#undef snd_pcm_hw_params_set_format_last +#undef snd_pcm_hw_params_set_format_mask +#undef snd_pcm_hw_params_get_format_mask +#undef snd_pcm_hw_params_get_subformat +#undef snd_pcm_hw_params_test_subformat +#undef snd_pcm_hw_params_set_subformat +#undef snd_pcm_hw_params_set_subformat_first +#undef snd_pcm_hw_params_set_subformat_last +#undef snd_pcm_hw_params_set_subformat_mask +#undef snd_pcm_hw_params_get_subformat_mask +#undef snd_pcm_hw_params_get_channels +#undef snd_pcm_hw_params_get_channels_min +#undef snd_pcm_hw_params_get_channels_max +#undef snd_pcm_hw_params_test_channels +#undef snd_pcm_hw_params_set_channels +#undef snd_pcm_hw_params_set_channels_min +#undef snd_pcm_hw_params_set_channels_max +#undef snd_pcm_hw_params_set_channels_minmax +#undef snd_pcm_hw_params_set_channels_near +#undef snd_pcm_hw_params_set_channels_first +#undef snd_pcm_hw_params_set_channels_last +#undef snd_pcm_hw_params_get_rate +#undef snd_pcm_hw_params_get_rate_min +#undef snd_pcm_hw_params_get_rate_max +#undef snd_pcm_hw_params_test_rate +#undef snd_pcm_hw_params_set_rate +#undef snd_pcm_hw_params_set_rate_min +#undef snd_pcm_hw_params_set_rate_max +#undef snd_pcm_hw_params_set_rate_minmax +#undef snd_pcm_hw_params_set_rate_near +#undef snd_pcm_hw_params_set_rate_first +#undef snd_pcm_hw_params_set_rate_last +#undef snd_pcm_hw_params_set_rate_resample +#undef snd_pcm_hw_params_get_rate_resample +#undef snd_pcm_hw_params_set_export_buffer +#undef snd_pcm_hw_params_get_export_buffer +#undef snd_pcm_hw_params_set_period_wakeup +#undef snd_pcm_hw_params_get_period_wakeup +#undef snd_pcm_hw_params_get_period_time +#undef snd_pcm_hw_params_get_period_time_min +#undef snd_pcm_hw_params_get_period_time_max +#undef snd_pcm_hw_params_test_period_time +#undef snd_pcm_hw_params_set_period_time +#undef snd_pcm_hw_params_set_period_time_min +#undef snd_pcm_hw_params_set_period_time_max +#undef snd_pcm_hw_params_set_period_time_minmax +#undef snd_pcm_hw_params_set_period_time_near +#undef snd_pcm_hw_params_set_period_time_first +#undef snd_pcm_hw_params_set_period_time_last +#undef snd_pcm_hw_params_get_period_size +#undef snd_pcm_hw_params_get_period_size_min +#undef snd_pcm_hw_params_get_period_size_max +#undef snd_pcm_hw_params_test_period_size +#undef snd_pcm_hw_params_set_period_size +#undef snd_pcm_hw_params_set_period_size_min +#undef snd_pcm_hw_params_set_period_size_max +#undef snd_pcm_hw_params_set_period_size_minmax +#undef snd_pcm_hw_params_set_period_size_near +#undef snd_pcm_hw_params_set_period_size_first +#undef snd_pcm_hw_params_set_period_size_last +#undef snd_pcm_hw_params_set_period_size_integer +#undef snd_pcm_hw_params_get_periods +#undef snd_pcm_hw_params_get_periods_min +#undef snd_pcm_hw_params_get_periods_max +#undef snd_pcm_hw_params_test_periods +#undef snd_pcm_hw_params_set_periods +#undef snd_pcm_hw_params_set_periods_min +#undef snd_pcm_hw_params_set_periods_max +#undef snd_pcm_hw_params_set_periods_minmax +#undef snd_pcm_hw_params_set_periods_near +#undef snd_pcm_hw_params_set_periods_first +#undef snd_pcm_hw_params_set_periods_last +#undef snd_pcm_hw_params_set_periods_integer +#undef snd_pcm_hw_params_get_buffer_time +#undef snd_pcm_hw_params_get_buffer_time_min +#undef snd_pcm_hw_params_get_buffer_time_max +#undef snd_pcm_hw_params_test_buffer_time +#undef snd_pcm_hw_params_set_buffer_time +#undef snd_pcm_hw_params_set_buffer_time_min +#undef snd_pcm_hw_params_set_buffer_time_max +#undef snd_pcm_hw_params_set_buffer_time_minmax +#undef snd_pcm_hw_params_set_buffer_time_near +#undef snd_pcm_hw_params_set_buffer_time_first +#undef snd_pcm_hw_params_set_buffer_time_last +#undef snd_pcm_hw_params_get_buffer_size +#undef snd_pcm_hw_params_get_buffer_size_min +#undef snd_pcm_hw_params_get_buffer_size_max +#undef snd_pcm_hw_params_test_buffer_size +#undef snd_pcm_hw_params_set_buffer_size +#undef snd_pcm_hw_params_set_buffer_size_min +#undef snd_pcm_hw_params_set_buffer_size_max +#undef snd_pcm_hw_params_set_buffer_size_minmax +#undef snd_pcm_hw_params_set_buffer_size_near +#undef snd_pcm_hw_params_set_buffer_size_first +#undef snd_pcm_hw_params_set_buffer_size_last +#undef snd_pcm_hw_params_get_min_align +#undef snd_pcm_sw_params_sizeof +#undef snd_pcm_sw_params_malloc +#undef snd_pcm_sw_params_free +#undef snd_pcm_sw_params_copy +#undef snd_pcm_sw_params_get_boundary +#undef snd_pcm_sw_params_set_tstamp_mode +#undef snd_pcm_sw_params_get_tstamp_mode +#undef snd_pcm_sw_params_set_tstamp_type +#undef snd_pcm_sw_params_get_tstamp_type +#undef snd_pcm_sw_params_set_avail_min +#undef snd_pcm_sw_params_get_avail_min +#undef snd_pcm_sw_params_set_period_event +#undef snd_pcm_sw_params_get_period_event +#undef snd_pcm_sw_params_set_start_threshold +#undef snd_pcm_sw_params_get_start_threshold +#undef snd_pcm_sw_params_set_stop_threshold +#undef snd_pcm_sw_params_get_stop_threshold +#undef snd_pcm_sw_params_set_silence_threshold +#undef snd_pcm_sw_params_get_silence_threshold +#undef snd_pcm_sw_params_set_silence_size +#undef snd_pcm_sw_params_get_silence_size +#undef snd_pcm_access_mask_sizeof +#undef snd_pcm_access_mask_malloc +#undef snd_pcm_access_mask_free +#undef snd_pcm_access_mask_copy +#undef snd_pcm_access_mask_none +#undef snd_pcm_access_mask_any +#undef snd_pcm_access_mask_test +#undef snd_pcm_access_mask_empty +#undef snd_pcm_access_mask_set +#undef snd_pcm_access_mask_reset +#undef snd_pcm_format_mask_sizeof +#undef snd_pcm_format_mask_malloc +#undef snd_pcm_format_mask_free +#undef snd_pcm_format_mask_copy +#undef snd_pcm_format_mask_none +#undef snd_pcm_format_mask_any +#undef snd_pcm_format_mask_test +#undef snd_pcm_format_mask_empty +#undef snd_pcm_format_mask_set +#undef snd_pcm_format_mask_reset +#undef snd_pcm_subformat_mask_sizeof +#undef snd_pcm_subformat_mask_malloc +#undef snd_pcm_subformat_mask_free +#undef snd_pcm_subformat_mask_copy +#undef snd_pcm_subformat_mask_none +#undef snd_pcm_subformat_mask_any +#undef snd_pcm_subformat_mask_test +#undef snd_pcm_subformat_mask_empty +#undef snd_pcm_subformat_mask_set +#undef snd_pcm_subformat_mask_reset +#undef snd_pcm_status_sizeof +#undef snd_pcm_status_malloc +#undef snd_pcm_status_free +#undef snd_pcm_status_copy +#undef snd_pcm_status_get_state +#undef snd_pcm_status_get_trigger_tstamp +#undef snd_pcm_status_get_trigger_htstamp +#undef snd_pcm_status_get_tstamp +#undef snd_pcm_status_get_htstamp +#undef snd_pcm_status_get_audio_htstamp +#undef snd_pcm_status_get_driver_htstamp +#undef snd_pcm_status_get_audio_htstamp_report +#undef snd_pcm_status_set_audio_htstamp_config +#undef snd_pcm_status_get_delay +#undef snd_pcm_status_get_avail +#undef snd_pcm_status_get_avail_max +#undef snd_pcm_status_get_overrange +#undef snd_pcm_type_name +#undef snd_pcm_stream_name +#undef snd_pcm_access_name +#undef snd_pcm_format_name +#undef snd_pcm_format_description +#undef snd_pcm_subformat_name +#undef snd_pcm_subformat_description +#undef snd_pcm_format_value +#undef snd_pcm_tstamp_mode_name +#undef snd_pcm_state_name +#undef snd_pcm_dump +#undef snd_pcm_dump_hw_setup +#undef snd_pcm_dump_sw_setup +#undef snd_pcm_dump_setup +#undef snd_pcm_hw_params_dump +#undef snd_pcm_sw_params_dump +#undef snd_pcm_status_dump +#undef snd_pcm_mmap_begin +#undef snd_pcm_mmap_commit +#undef snd_pcm_mmap_writei +#undef snd_pcm_mmap_readi +#undef snd_pcm_mmap_writen +#undef snd_pcm_mmap_readn +#undef snd_pcm_format_signed +#undef snd_pcm_format_unsigned +#undef snd_pcm_format_linear +#undef snd_pcm_format_float +#undef snd_pcm_format_little_endian +#undef snd_pcm_format_big_endian +#undef snd_pcm_format_cpu_endian +#undef snd_pcm_format_width +#undef snd_pcm_format_physical_width +#undef snd_pcm_build_linear_format +#undef snd_pcm_format_size +#undef snd_pcm_format_silence +#undef snd_pcm_format_silence_16 +#undef snd_pcm_format_silence_32 +#undef snd_pcm_format_silence_64 +#undef snd_pcm_format_set_silence +#undef snd_pcm_bytes_to_frames +#undef snd_pcm_frames_to_bytes +#undef snd_pcm_bytes_to_samples +#undef snd_pcm_samples_to_bytes +#undef snd_pcm_area_silence +#undef snd_pcm_areas_silence +#undef snd_pcm_area_copy +#undef snd_pcm_areas_copy +#undef snd_pcm_areas_copy_wrap +#undef snd_pcm_hook_get_pcm +#undef snd_pcm_hook_get_private +#undef snd_pcm_hook_set_private +#undef snd_pcm_hook_add +#undef snd_pcm_hook_remove +#undef snd_pcm_meter_get_bufsize +#undef snd_pcm_meter_get_channels +#undef snd_pcm_meter_get_rate +#undef snd_pcm_meter_get_now +#undef snd_pcm_meter_get_boundary +#undef snd_pcm_meter_add_scope +#undef snd_pcm_meter_search_scope +#undef snd_pcm_scope_malloc +#undef snd_pcm_scope_set_ops +#undef snd_pcm_scope_set_name +#undef snd_pcm_scope_get_name +#undef snd_pcm_scope_get_callback_private +#undef snd_pcm_scope_set_callback_private +#undef snd_pcm_scope_s16_open +#undef snd_pcm_scope_s16_get_channel_buffer +#undef snd_spcm_init +#undef snd_spcm_init_duplex +#undef snd_spcm_init_get_params +#undef snd_pcm_start_mode_name +#undef snd_pcm_xrun_mode_name +#undef snd_pcm_sw_params_set_start_mode +#undef snd_pcm_sw_params_get_start_mode +#undef snd_pcm_sw_params_set_xrun_mode +#undef snd_pcm_sw_params_get_xrun_mode +#undef snd_pcm_sw_params_set_xfer_align +#undef snd_pcm_sw_params_get_xfer_align +#undef snd_pcm_sw_params_set_sleep_min +#undef snd_pcm_sw_params_get_sleep_min +#undef snd_pcm_hw_params_get_tick_time +#undef snd_pcm_hw_params_get_tick_time_min +#undef snd_pcm_hw_params_get_tick_time_max +#undef snd_pcm_hw_params_test_tick_time +#undef snd_pcm_hw_params_set_tick_time +#undef snd_pcm_hw_params_set_tick_time_min +#undef snd_pcm_hw_params_set_tick_time_max +#undef snd_pcm_hw_params_set_tick_time_minmax +#undef snd_pcm_hw_params_set_tick_time_near +#undef snd_pcm_hw_params_set_tick_time_first +#undef snd_pcm_hw_params_set_tick_time_last +#undef snd_rawmidi_open +#undef snd_rawmidi_open_lconf +#undef snd_rawmidi_close +#undef snd_rawmidi_poll_descriptors_count +#undef snd_rawmidi_poll_descriptors +#undef snd_rawmidi_poll_descriptors_revents +#undef snd_rawmidi_nonblock +#undef snd_rawmidi_info_sizeof +#undef snd_rawmidi_info_malloc +#undef snd_rawmidi_info_free +#undef snd_rawmidi_info_copy +#undef snd_rawmidi_info_get_device +#undef snd_rawmidi_info_get_subdevice +#undef snd_rawmidi_info_get_stream +#undef snd_rawmidi_info_get_card +#undef snd_rawmidi_info_get_flags +#undef snd_rawmidi_info_get_id +#undef snd_rawmidi_info_get_name +#undef snd_rawmidi_info_get_subdevice_name +#undef snd_rawmidi_info_get_subdevices_count +#undef snd_rawmidi_info_get_subdevices_avail +#undef snd_rawmidi_info_set_device +#undef snd_rawmidi_info_set_subdevice +#undef snd_rawmidi_info_set_stream +#undef snd_rawmidi_info +#undef snd_rawmidi_params_sizeof +#undef snd_rawmidi_params_malloc +#undef snd_rawmidi_params_free +#undef snd_rawmidi_params_copy +#undef snd_rawmidi_params_set_buffer_size +#undef snd_rawmidi_params_get_buffer_size +#undef snd_rawmidi_params_set_avail_min +#undef snd_rawmidi_params_get_avail_min +#undef snd_rawmidi_params_set_no_active_sensing +#undef snd_rawmidi_params_get_no_active_sensing +#undef snd_rawmidi_params +#undef snd_rawmidi_params_current +#undef snd_rawmidi_status_sizeof +#undef snd_rawmidi_status_malloc +#undef snd_rawmidi_status_free +#undef snd_rawmidi_status_copy +#undef snd_rawmidi_status_get_tstamp +#undef snd_rawmidi_status_get_avail +#undef snd_rawmidi_status_get_xruns +#undef snd_rawmidi_status +#undef snd_rawmidi_drain +#undef snd_rawmidi_drop +#undef snd_rawmidi_write +#undef snd_rawmidi_read +#undef snd_rawmidi_name +#undef snd_rawmidi_type +#undef snd_rawmidi_stream +#undef snd_timer_query_open +#undef snd_timer_query_open_lconf +#undef snd_timer_query_close +#undef snd_timer_query_next_device +#undef snd_timer_query_info +#undef snd_timer_query_params +#undef snd_timer_query_status +#undef snd_timer_open +#undef snd_timer_open_lconf +#undef snd_timer_close +#undef snd_async_add_timer_handler +#undef snd_async_handler_get_timer +#undef snd_timer_poll_descriptors_count +#undef snd_timer_poll_descriptors +#undef snd_timer_poll_descriptors_revents +#undef snd_timer_info +#undef snd_timer_params +#undef snd_timer_status +#undef snd_timer_start +#undef snd_timer_stop +#undef snd_timer_continue +#undef snd_timer_read +#undef snd_timer_id_sizeof +#undef snd_timer_id_malloc +#undef snd_timer_id_free +#undef snd_timer_id_copy +#undef snd_timer_id_set_class +#undef snd_timer_id_get_class +#undef snd_timer_id_set_sclass +#undef snd_timer_id_get_sclass +#undef snd_timer_id_set_card +#undef snd_timer_id_get_card +#undef snd_timer_id_set_device +#undef snd_timer_id_get_device +#undef snd_timer_id_set_subdevice +#undef snd_timer_id_get_subdevice +#undef snd_timer_ginfo_sizeof +#undef snd_timer_ginfo_malloc +#undef snd_timer_ginfo_free +#undef snd_timer_ginfo_copy +#undef snd_timer_ginfo_set_tid +#undef snd_timer_ginfo_get_tid +#undef snd_timer_ginfo_get_flags +#undef snd_timer_ginfo_get_card +#undef snd_timer_ginfo_get_id +#undef snd_timer_ginfo_get_name +#undef snd_timer_ginfo_get_resolution +#undef snd_timer_ginfo_get_resolution_min +#undef snd_timer_ginfo_get_resolution_max +#undef snd_timer_ginfo_get_clients +#undef snd_timer_info_sizeof +#undef snd_timer_info_malloc +#undef snd_timer_info_free +#undef snd_timer_info_copy +#undef snd_timer_info_is_slave +#undef snd_timer_info_get_card +#undef snd_timer_info_get_id +#undef snd_timer_info_get_name +#undef snd_timer_info_get_resolution +#undef snd_timer_params_sizeof +#undef snd_timer_params_malloc +#undef snd_timer_params_free +#undef snd_timer_params_copy +#undef snd_timer_params_set_auto_start +#undef snd_timer_params_get_auto_start +#undef snd_timer_params_set_exclusive +#undef snd_timer_params_get_exclusive +#undef snd_timer_params_set_early_event +#undef snd_timer_params_get_early_event +#undef snd_timer_params_set_ticks +#undef snd_timer_params_get_ticks +#undef snd_timer_params_set_queue_size +#undef snd_timer_params_get_queue_size +#undef snd_timer_params_set_filter +#undef snd_timer_params_get_filter +#undef snd_timer_status_sizeof +#undef snd_timer_status_malloc +#undef snd_timer_status_free +#undef snd_timer_status_copy +#undef snd_timer_status_get_timestamp +#undef snd_timer_status_get_resolution +#undef snd_timer_status_get_lost +#undef snd_timer_status_get_overrun +#undef snd_timer_status_get_queue +#undef snd_timer_info_get_ticks +#undef snd_hwdep_open +#undef snd_hwdep_close +#undef snd_hwdep_poll_descriptors +#undef snd_hwdep_poll_descriptors_count +#undef snd_hwdep_poll_descriptors_revents +#undef snd_hwdep_nonblock +#undef snd_hwdep_info +#undef snd_hwdep_dsp_status +#undef snd_hwdep_dsp_load +#undef snd_hwdep_ioctl +#undef snd_hwdep_write +#undef snd_hwdep_read +#undef snd_hwdep_info_sizeof +#undef snd_hwdep_info_malloc +#undef snd_hwdep_info_free +#undef snd_hwdep_info_copy +#undef snd_hwdep_info_get_device +#undef snd_hwdep_info_get_card +#undef snd_hwdep_info_get_id +#undef snd_hwdep_info_get_name +#undef snd_hwdep_info_get_iface +#undef snd_hwdep_info_set_device +#undef snd_hwdep_dsp_status_sizeof +#undef snd_hwdep_dsp_status_malloc +#undef snd_hwdep_dsp_status_free +#undef snd_hwdep_dsp_status_copy +#undef snd_hwdep_dsp_status_get_version +#undef snd_hwdep_dsp_status_get_id +#undef snd_hwdep_dsp_status_get_num_dsps +#undef snd_hwdep_dsp_status_get_dsp_loaded +#undef snd_hwdep_dsp_status_get_chip_ready +#undef snd_hwdep_dsp_image_sizeof +#undef snd_hwdep_dsp_image_malloc +#undef snd_hwdep_dsp_image_free +#undef snd_hwdep_dsp_image_copy +#undef snd_hwdep_dsp_image_get_index +#undef snd_hwdep_dsp_image_get_name +#undef snd_hwdep_dsp_image_get_image +#undef snd_hwdep_dsp_image_get_length +#undef snd_hwdep_dsp_image_set_index +#undef snd_hwdep_dsp_image_set_name +#undef snd_hwdep_dsp_image_set_image +#undef snd_hwdep_dsp_image_set_length +#undef snd_card_load +#undef snd_card_next +#undef snd_card_get_index +#undef snd_card_get_name +#undef snd_card_get_longname +#undef snd_device_name_hint +#undef snd_device_name_free_hint +#undef snd_device_name_get_hint +#undef snd_ctl_open +#undef snd_ctl_open_lconf +#undef snd_ctl_open_fallback +#undef snd_ctl_close +#undef snd_ctl_nonblock +#undef snd_async_add_ctl_handler +#undef snd_async_handler_get_ctl +#undef snd_ctl_poll_descriptors_count +#undef snd_ctl_poll_descriptors +#undef snd_ctl_poll_descriptors_revents +#undef snd_ctl_subscribe_events +#undef snd_ctl_card_info +#undef snd_ctl_elem_list +#undef snd_ctl_elem_info +#undef snd_ctl_elem_read +#undef snd_ctl_elem_write +#undef snd_ctl_elem_lock +#undef snd_ctl_elem_unlock +#undef snd_ctl_elem_tlv_read +#undef snd_ctl_elem_tlv_write +#undef snd_ctl_elem_tlv_command +#undef snd_ctl_hwdep_next_device +#undef snd_ctl_hwdep_info +#undef snd_ctl_pcm_next_device +#undef snd_ctl_pcm_info +#undef snd_ctl_pcm_prefer_subdevice +#undef snd_ctl_rawmidi_next_device +#undef snd_ctl_rawmidi_info +#undef snd_ctl_rawmidi_prefer_subdevice +#undef snd_ctl_set_power_state +#undef snd_ctl_get_power_state +#undef snd_ctl_read +#undef snd_ctl_wait +#undef snd_ctl_name +#undef snd_ctl_type +#undef snd_ctl_elem_type_name +#undef snd_ctl_elem_iface_name +#undef snd_ctl_event_type_name +#undef snd_ctl_event_elem_get_mask +#undef snd_ctl_event_elem_get_numid +#undef snd_ctl_event_elem_get_id +#undef snd_ctl_event_elem_get_interface +#undef snd_ctl_event_elem_get_device +#undef snd_ctl_event_elem_get_subdevice +#undef snd_ctl_event_elem_get_name +#undef snd_ctl_event_elem_get_index +#undef snd_ctl_elem_list_alloc_space +#undef snd_ctl_elem_list_free_space +#undef snd_ctl_ascii_elem_id_get +#undef snd_ctl_ascii_elem_id_parse +#undef snd_ctl_ascii_value_parse +#undef snd_ctl_elem_id_sizeof +#undef snd_ctl_elem_id_malloc +#undef snd_ctl_elem_id_free +#undef snd_ctl_elem_id_clear +#undef snd_ctl_elem_id_copy +#undef snd_ctl_elem_id_get_numid +#undef snd_ctl_elem_id_get_interface +#undef snd_ctl_elem_id_get_device +#undef snd_ctl_elem_id_get_subdevice +#undef snd_ctl_elem_id_get_name +#undef snd_ctl_elem_id_get_index +#undef snd_ctl_elem_id_set_numid +#undef snd_ctl_elem_id_set_interface +#undef snd_ctl_elem_id_set_device +#undef snd_ctl_elem_id_set_subdevice +#undef snd_ctl_elem_id_set_name +#undef snd_ctl_elem_id_set_index +#undef snd_ctl_card_info_sizeof +#undef snd_ctl_card_info_malloc +#undef snd_ctl_card_info_free +#undef snd_ctl_card_info_clear +#undef snd_ctl_card_info_copy +#undef snd_ctl_card_info_get_card +#undef snd_ctl_card_info_get_id +#undef snd_ctl_card_info_get_driver +#undef snd_ctl_card_info_get_name +#undef snd_ctl_card_info_get_longname +#undef snd_ctl_card_info_get_mixername +#undef snd_ctl_card_info_get_components +#undef snd_ctl_event_sizeof +#undef snd_ctl_event_malloc +#undef snd_ctl_event_free +#undef snd_ctl_event_clear +#undef snd_ctl_event_copy +#undef snd_ctl_event_get_type +#undef snd_ctl_elem_list_sizeof +#undef snd_ctl_elem_list_malloc +#undef snd_ctl_elem_list_free +#undef snd_ctl_elem_list_clear +#undef snd_ctl_elem_list_copy +#undef snd_ctl_elem_list_set_offset +#undef snd_ctl_elem_list_get_used +#undef snd_ctl_elem_list_get_count +#undef snd_ctl_elem_list_get_id +#undef snd_ctl_elem_list_get_numid +#undef snd_ctl_elem_list_get_interface +#undef snd_ctl_elem_list_get_device +#undef snd_ctl_elem_list_get_subdevice +#undef snd_ctl_elem_list_get_name +#undef snd_ctl_elem_list_get_index +#undef snd_ctl_elem_info_sizeof +#undef snd_ctl_elem_info_malloc +#undef snd_ctl_elem_info_free +#undef snd_ctl_elem_info_clear +#undef snd_ctl_elem_info_copy +#undef snd_ctl_elem_info_get_type +#undef snd_ctl_elem_info_is_readable +#undef snd_ctl_elem_info_is_writable +#undef snd_ctl_elem_info_is_volatile +#undef snd_ctl_elem_info_is_inactive +#undef snd_ctl_elem_info_is_locked +#undef snd_ctl_elem_info_is_tlv_readable +#undef snd_ctl_elem_info_is_tlv_writable +#undef snd_ctl_elem_info_is_tlv_commandable +#undef snd_ctl_elem_info_is_owner +#undef snd_ctl_elem_info_is_user +#undef snd_ctl_elem_info_get_owner +#undef snd_ctl_elem_info_get_count +#undef snd_ctl_elem_info_get_min +#undef snd_ctl_elem_info_get_max +#undef snd_ctl_elem_info_get_step +#undef snd_ctl_elem_info_get_min64 +#undef snd_ctl_elem_info_get_max64 +#undef snd_ctl_elem_info_get_step64 +#undef snd_ctl_elem_info_get_items +#undef snd_ctl_elem_info_set_item +#undef snd_ctl_elem_info_get_item_name +#undef snd_ctl_elem_info_get_dimensions +#undef snd_ctl_elem_info_get_dimension +#undef snd_ctl_elem_info_set_dimension +#undef snd_ctl_elem_info_get_id +#undef snd_ctl_elem_info_get_numid +#undef snd_ctl_elem_info_get_interface +#undef snd_ctl_elem_info_get_device +#undef snd_ctl_elem_info_get_subdevice +#undef snd_ctl_elem_info_get_name +#undef snd_ctl_elem_info_get_index +#undef snd_ctl_elem_info_set_id +#undef snd_ctl_elem_info_set_numid +#undef snd_ctl_elem_info_set_interface +#undef snd_ctl_elem_info_set_device +#undef snd_ctl_elem_info_set_subdevice +#undef snd_ctl_elem_info_set_name +#undef snd_ctl_elem_info_set_index +#undef snd_ctl_add_integer_elem_set +#undef snd_ctl_add_integer64_elem_set +#undef snd_ctl_add_boolean_elem_set +#undef snd_ctl_add_enumerated_elem_set +#undef snd_ctl_add_bytes_elem_set +#undef snd_ctl_elem_add_integer +#undef snd_ctl_elem_add_integer64 +#undef snd_ctl_elem_add_boolean +#undef snd_ctl_elem_add_enumerated +#undef snd_ctl_elem_add_iec958 +#undef snd_ctl_elem_remove +#undef snd_ctl_elem_value_sizeof +#undef snd_ctl_elem_value_malloc +#undef snd_ctl_elem_value_free +#undef snd_ctl_elem_value_clear +#undef snd_ctl_elem_value_copy +#undef snd_ctl_elem_value_compare +#undef snd_ctl_elem_value_get_id +#undef snd_ctl_elem_value_get_numid +#undef snd_ctl_elem_value_get_interface +#undef snd_ctl_elem_value_get_device +#undef snd_ctl_elem_value_get_subdevice +#undef snd_ctl_elem_value_get_name +#undef snd_ctl_elem_value_get_index +#undef snd_ctl_elem_value_set_id +#undef snd_ctl_elem_value_set_numid +#undef snd_ctl_elem_value_set_interface +#undef snd_ctl_elem_value_set_device +#undef snd_ctl_elem_value_set_subdevice +#undef snd_ctl_elem_value_set_name +#undef snd_ctl_elem_value_set_index +#undef snd_ctl_elem_value_get_boolean +#undef snd_ctl_elem_value_get_integer +#undef snd_ctl_elem_value_get_integer64 +#undef snd_ctl_elem_value_get_enumerated +#undef snd_ctl_elem_value_get_byte +#undef snd_ctl_elem_value_set_boolean +#undef snd_ctl_elem_value_set_integer +#undef snd_ctl_elem_value_set_integer64 +#undef snd_ctl_elem_value_set_enumerated +#undef snd_ctl_elem_value_set_byte +#undef snd_ctl_elem_set_bytes +#undef snd_ctl_elem_value_get_bytes +#undef snd_ctl_elem_value_get_iec958 +#undef snd_ctl_elem_value_set_iec958 +#undef snd_tlv_parse_dB_info +#undef snd_tlv_get_dB_range +#undef snd_tlv_convert_to_dB +#undef snd_tlv_convert_from_dB +#undef snd_ctl_get_dB_range +#undef snd_ctl_convert_to_dB +#undef snd_ctl_convert_from_dB +#undef snd_hctl_compare_fast +#undef snd_hctl_open +#undef snd_hctl_open_ctl +#undef snd_hctl_close +#undef snd_hctl_nonblock +#undef snd_hctl_poll_descriptors_count +#undef snd_hctl_poll_descriptors +#undef snd_hctl_poll_descriptors_revents +#undef snd_hctl_get_count +#undef snd_hctl_set_compare +#undef snd_hctl_first_elem +#undef snd_hctl_last_elem +#undef snd_hctl_find_elem +#undef snd_hctl_set_callback +#undef snd_hctl_set_callback_private +#undef snd_hctl_get_callback_private +#undef snd_hctl_load +#undef snd_hctl_free +#undef snd_hctl_handle_events +#undef snd_hctl_name +#undef snd_hctl_wait +#undef snd_hctl_ctl +#undef snd_hctl_elem_next +#undef snd_hctl_elem_prev +#undef snd_hctl_elem_info +#undef snd_hctl_elem_read +#undef snd_hctl_elem_write +#undef snd_hctl_elem_tlv_read +#undef snd_hctl_elem_tlv_write +#undef snd_hctl_elem_tlv_command +#undef snd_hctl_elem_get_hctl +#undef snd_hctl_elem_get_id +#undef snd_hctl_elem_get_numid +#undef snd_hctl_elem_get_interface +#undef snd_hctl_elem_get_device +#undef snd_hctl_elem_get_subdevice +#undef snd_hctl_elem_get_name +#undef snd_hctl_elem_get_index +#undef snd_hctl_elem_set_callback +#undef snd_hctl_elem_get_callback_private +#undef snd_hctl_elem_set_callback_private +#undef snd_sctl_build +#undef snd_sctl_free +#undef snd_sctl_install +#undef snd_sctl_remove +#undef snd_mixer_open +#undef snd_mixer_close +#undef snd_mixer_first_elem +#undef snd_mixer_last_elem +#undef snd_mixer_handle_events +#undef snd_mixer_attach +#undef snd_mixer_attach_hctl +#undef snd_mixer_detach +#undef snd_mixer_detach_hctl +#undef snd_mixer_get_hctl +#undef snd_mixer_poll_descriptors_count +#undef snd_mixer_poll_descriptors +#undef snd_mixer_poll_descriptors_revents +#undef snd_mixer_load +#undef snd_mixer_free +#undef snd_mixer_wait +#undef snd_mixer_set_compare +#undef snd_mixer_set_callback +#undef snd_mixer_get_callback_private +#undef snd_mixer_set_callback_private +#undef snd_mixer_get_count +#undef snd_mixer_class_unregister +#undef snd_mixer_elem_next +#undef snd_mixer_elem_prev +#undef snd_mixer_elem_set_callback +#undef snd_mixer_elem_get_callback_private +#undef snd_mixer_elem_set_callback_private +#undef snd_mixer_elem_get_type +#undef snd_mixer_class_register +#undef snd_mixer_elem_new +#undef snd_mixer_elem_add +#undef snd_mixer_elem_remove +#undef snd_mixer_elem_free +#undef snd_mixer_elem_info +#undef snd_mixer_elem_value +#undef snd_mixer_elem_attach +#undef snd_mixer_elem_detach +#undef snd_mixer_elem_empty +#undef snd_mixer_elem_get_private +#undef snd_mixer_class_sizeof +#undef snd_mixer_class_malloc +#undef snd_mixer_class_free +#undef snd_mixer_class_copy +#undef snd_mixer_class_get_mixer +#undef snd_mixer_class_get_event +#undef snd_mixer_class_get_private +#undef snd_mixer_class_get_compare +#undef snd_mixer_class_set_event +#undef snd_mixer_class_set_private +#undef snd_mixer_class_set_private_free +#undef snd_mixer_class_set_compare +#undef snd_mixer_selem_channel_name +#undef snd_mixer_selem_register +#undef snd_mixer_selem_get_id +#undef snd_mixer_selem_get_name +#undef snd_mixer_selem_get_index +#undef snd_mixer_find_selem +#undef snd_mixer_selem_is_active +#undef snd_mixer_selem_is_playback_mono +#undef snd_mixer_selem_has_playback_channel +#undef snd_mixer_selem_is_capture_mono +#undef snd_mixer_selem_has_capture_channel +#undef snd_mixer_selem_get_capture_group +#undef snd_mixer_selem_has_common_volume +#undef snd_mixer_selem_has_playback_volume +#undef snd_mixer_selem_has_playback_volume_joined +#undef snd_mixer_selem_has_capture_volume +#undef snd_mixer_selem_has_capture_volume_joined +#undef snd_mixer_selem_has_common_switch +#undef snd_mixer_selem_has_playback_switch +#undef snd_mixer_selem_has_playback_switch_joined +#undef snd_mixer_selem_has_capture_switch +#undef snd_mixer_selem_has_capture_switch_joined +#undef snd_mixer_selem_has_capture_switch_exclusive +#undef snd_mixer_selem_ask_playback_vol_dB +#undef snd_mixer_selem_ask_capture_vol_dB +#undef snd_mixer_selem_ask_playback_dB_vol +#undef snd_mixer_selem_ask_capture_dB_vol +#undef snd_mixer_selem_get_playback_volume +#undef snd_mixer_selem_get_capture_volume +#undef snd_mixer_selem_get_playback_dB +#undef snd_mixer_selem_get_capture_dB +#undef snd_mixer_selem_get_playback_switch +#undef snd_mixer_selem_get_capture_switch +#undef snd_mixer_selem_set_playback_volume +#undef snd_mixer_selem_set_capture_volume +#undef snd_mixer_selem_set_playback_dB +#undef snd_mixer_selem_set_capture_dB +#undef snd_mixer_selem_set_playback_volume_all +#undef snd_mixer_selem_set_capture_volume_all +#undef snd_mixer_selem_set_playback_dB_all +#undef snd_mixer_selem_set_capture_dB_all +#undef snd_mixer_selem_set_playback_switch +#undef snd_mixer_selem_set_capture_switch +#undef snd_mixer_selem_set_playback_switch_all +#undef snd_mixer_selem_set_capture_switch_all +#undef snd_mixer_selem_get_playback_volume_range +#undef snd_mixer_selem_get_playback_dB_range +#undef snd_mixer_selem_set_playback_volume_range +#undef snd_mixer_selem_get_capture_volume_range +#undef snd_mixer_selem_get_capture_dB_range +#undef snd_mixer_selem_set_capture_volume_range +#undef snd_mixer_selem_is_enumerated +#undef snd_mixer_selem_is_enum_playback +#undef snd_mixer_selem_is_enum_capture +#undef snd_mixer_selem_get_enum_items +#undef snd_mixer_selem_get_enum_item_name +#undef snd_mixer_selem_get_enum_item +#undef snd_mixer_selem_set_enum_item +#undef snd_mixer_selem_id_sizeof +#undef snd_mixer_selem_id_malloc +#undef snd_mixer_selem_id_free +#undef snd_mixer_selem_id_copy +#undef snd_mixer_selem_id_get_name +#undef snd_mixer_selem_id_get_index +#undef snd_mixer_selem_id_set_name +#undef snd_mixer_selem_id_set_index +#undef snd_mixer_selem_id_parse +#undef snd_seq_open +#undef snd_seq_open_lconf +#undef snd_seq_name +#undef snd_seq_type +#undef snd_seq_close +#undef snd_seq_poll_descriptors_count +#undef snd_seq_poll_descriptors +#undef snd_seq_poll_descriptors_revents +#undef snd_seq_nonblock +#undef snd_seq_client_id +#undef snd_seq_get_output_buffer_size +#undef snd_seq_get_input_buffer_size +#undef snd_seq_set_output_buffer_size +#undef snd_seq_set_input_buffer_size +#undef snd_seq_system_info_sizeof +#undef snd_seq_system_info_malloc +#undef snd_seq_system_info_free +#undef snd_seq_system_info_copy +#undef snd_seq_system_info_get_queues +#undef snd_seq_system_info_get_clients +#undef snd_seq_system_info_get_ports +#undef snd_seq_system_info_get_channels +#undef snd_seq_system_info_get_cur_clients +#undef snd_seq_system_info_get_cur_queues +#undef snd_seq_system_info +#undef snd_seq_client_info_sizeof +#undef snd_seq_client_info_malloc +#undef snd_seq_client_info_free +#undef snd_seq_client_info_copy +#undef snd_seq_client_info_get_client +#undef snd_seq_client_info_get_type +#undef snd_seq_client_info_get_name +#undef snd_seq_client_info_get_broadcast_filter +#undef snd_seq_client_info_get_error_bounce +#undef snd_seq_client_info_get_card +#undef snd_seq_client_info_get_pid +#undef snd_seq_client_info_get_event_filter +#undef snd_seq_client_info_get_num_ports +#undef snd_seq_client_info_get_event_lost +#undef snd_seq_client_info_set_client +#undef snd_seq_client_info_set_name +#undef snd_seq_client_info_set_broadcast_filter +#undef snd_seq_client_info_set_error_bounce +#undef snd_seq_client_info_set_event_filter +#undef snd_seq_client_info_event_filter_clear +#undef snd_seq_client_info_event_filter_add +#undef snd_seq_client_info_event_filter_del +#undef snd_seq_client_info_event_filter_check +#undef snd_seq_get_client_info +#undef snd_seq_get_any_client_info +#undef snd_seq_set_client_info +#undef snd_seq_query_next_client +#undef snd_seq_client_pool_sizeof +#undef snd_seq_client_pool_malloc +#undef snd_seq_client_pool_free +#undef snd_seq_client_pool_copy +#undef snd_seq_client_pool_get_client +#undef snd_seq_client_pool_get_output_pool +#undef snd_seq_client_pool_get_input_pool +#undef snd_seq_client_pool_get_output_room +#undef snd_seq_client_pool_get_output_free +#undef snd_seq_client_pool_get_input_free +#undef snd_seq_client_pool_set_output_pool +#undef snd_seq_client_pool_set_input_pool +#undef snd_seq_client_pool_set_output_room +#undef snd_seq_get_client_pool +#undef snd_seq_set_client_pool +#undef snd_seq_port_info_sizeof +#undef snd_seq_port_info_malloc +#undef snd_seq_port_info_free +#undef snd_seq_port_info_copy +#undef snd_seq_port_info_get_client +#undef snd_seq_port_info_get_port +#undef snd_seq_port_info_get_addr +#undef snd_seq_port_info_get_name +#undef snd_seq_port_info_get_capability +#undef snd_seq_port_info_get_type +#undef snd_seq_port_info_get_midi_channels +#undef snd_seq_port_info_get_midi_voices +#undef snd_seq_port_info_get_synth_voices +#undef snd_seq_port_info_get_read_use +#undef snd_seq_port_info_get_write_use +#undef snd_seq_port_info_get_port_specified +#undef snd_seq_port_info_get_timestamping +#undef snd_seq_port_info_get_timestamp_real +#undef snd_seq_port_info_get_timestamp_queue +#undef snd_seq_port_info_set_client +#undef snd_seq_port_info_set_port +#undef snd_seq_port_info_set_addr +#undef snd_seq_port_info_set_name +#undef snd_seq_port_info_set_capability +#undef snd_seq_port_info_set_type +#undef snd_seq_port_info_set_midi_channels +#undef snd_seq_port_info_set_midi_voices +#undef snd_seq_port_info_set_synth_voices +#undef snd_seq_port_info_set_port_specified +#undef snd_seq_port_info_set_timestamping +#undef snd_seq_port_info_set_timestamp_real +#undef snd_seq_port_info_set_timestamp_queue +#undef snd_seq_create_port +#undef snd_seq_delete_port +#undef snd_seq_get_port_info +#undef snd_seq_get_any_port_info +#undef snd_seq_set_port_info +#undef snd_seq_query_next_port +#undef snd_seq_port_subscribe_sizeof +#undef snd_seq_port_subscribe_malloc +#undef snd_seq_port_subscribe_free +#undef snd_seq_port_subscribe_copy +#undef snd_seq_port_subscribe_get_sender +#undef snd_seq_port_subscribe_get_dest +#undef snd_seq_port_subscribe_get_queue +#undef snd_seq_port_subscribe_get_exclusive +#undef snd_seq_port_subscribe_get_time_update +#undef snd_seq_port_subscribe_get_time_real +#undef snd_seq_port_subscribe_set_sender +#undef snd_seq_port_subscribe_set_dest +#undef snd_seq_port_subscribe_set_queue +#undef snd_seq_port_subscribe_set_exclusive +#undef snd_seq_port_subscribe_set_time_update +#undef snd_seq_port_subscribe_set_time_real +#undef snd_seq_get_port_subscription +#undef snd_seq_subscribe_port +#undef snd_seq_unsubscribe_port +#undef snd_seq_query_subscribe_sizeof +#undef snd_seq_query_subscribe_malloc +#undef snd_seq_query_subscribe_free +#undef snd_seq_query_subscribe_copy +#undef snd_seq_query_subscribe_get_client +#undef snd_seq_query_subscribe_get_port +#undef snd_seq_query_subscribe_get_root +#undef snd_seq_query_subscribe_get_type +#undef snd_seq_query_subscribe_get_index +#undef snd_seq_query_subscribe_get_num_subs +#undef snd_seq_query_subscribe_get_addr +#undef snd_seq_query_subscribe_get_queue +#undef snd_seq_query_subscribe_get_exclusive +#undef snd_seq_query_subscribe_get_time_update +#undef snd_seq_query_subscribe_get_time_real +#undef snd_seq_query_subscribe_set_client +#undef snd_seq_query_subscribe_set_port +#undef snd_seq_query_subscribe_set_root +#undef snd_seq_query_subscribe_set_type +#undef snd_seq_query_subscribe_set_index +#undef snd_seq_query_port_subscribers +#undef snd_seq_queue_info_sizeof +#undef snd_seq_queue_info_malloc +#undef snd_seq_queue_info_free +#undef snd_seq_queue_info_copy +#undef snd_seq_queue_info_get_queue +#undef snd_seq_queue_info_get_name +#undef snd_seq_queue_info_get_owner +#undef snd_seq_queue_info_get_locked +#undef snd_seq_queue_info_get_flags +#undef snd_seq_queue_info_set_name +#undef snd_seq_queue_info_set_owner +#undef snd_seq_queue_info_set_locked +#undef snd_seq_queue_info_set_flags +#undef snd_seq_create_queue +#undef snd_seq_alloc_named_queue +#undef snd_seq_alloc_queue +#undef snd_seq_free_queue +#undef snd_seq_get_queue_info +#undef snd_seq_set_queue_info +#undef snd_seq_query_named_queue +#undef snd_seq_get_queue_usage +#undef snd_seq_set_queue_usage +#undef snd_seq_queue_status_sizeof +#undef snd_seq_queue_status_malloc +#undef snd_seq_queue_status_free +#undef snd_seq_queue_status_copy +#undef snd_seq_queue_status_get_queue +#undef snd_seq_queue_status_get_events +#undef snd_seq_queue_status_get_tick_time +#undef snd_seq_queue_status_get_real_time +#undef snd_seq_queue_status_get_status +#undef snd_seq_get_queue_status +#undef snd_seq_queue_tempo_sizeof +#undef snd_seq_queue_tempo_malloc +#undef snd_seq_queue_tempo_free +#undef snd_seq_queue_tempo_copy +#undef snd_seq_queue_tempo_get_queue +#undef snd_seq_queue_tempo_get_tempo +#undef snd_seq_queue_tempo_get_ppq +#undef snd_seq_queue_tempo_get_skew +#undef snd_seq_queue_tempo_get_skew_base +#undef snd_seq_queue_tempo_set_tempo +#undef snd_seq_queue_tempo_set_ppq +#undef snd_seq_queue_tempo_set_skew +#undef snd_seq_queue_tempo_set_skew_base +#undef snd_seq_get_queue_tempo +#undef snd_seq_set_queue_tempo +#undef snd_seq_queue_timer_sizeof +#undef snd_seq_queue_timer_malloc +#undef snd_seq_queue_timer_free +#undef snd_seq_queue_timer_copy +#undef snd_seq_queue_timer_get_queue +#undef snd_seq_queue_timer_get_type +#undef snd_seq_queue_timer_get_id +#undef snd_seq_queue_timer_get_resolution +#undef snd_seq_queue_timer_set_type +#undef snd_seq_queue_timer_set_id +#undef snd_seq_queue_timer_set_resolution +#undef snd_seq_get_queue_timer +#undef snd_seq_set_queue_timer +#undef snd_seq_free_event +#undef snd_seq_event_length +#undef snd_seq_event_output +#undef snd_seq_event_output_buffer +#undef snd_seq_event_output_direct +#undef snd_seq_event_input +#undef snd_seq_event_input_pending +#undef snd_seq_drain_output +#undef snd_seq_event_output_pending +#undef snd_seq_extract_output +#undef snd_seq_drop_output +#undef snd_seq_drop_output_buffer +#undef snd_seq_drop_input +#undef snd_seq_drop_input_buffer +#undef snd_seq_remove_events_sizeof +#undef snd_seq_remove_events_malloc +#undef snd_seq_remove_events_free +#undef snd_seq_remove_events_copy +#undef snd_seq_remove_events_get_condition +#undef snd_seq_remove_events_get_queue +#undef snd_seq_remove_events_get_time +#undef snd_seq_remove_events_get_dest +#undef snd_seq_remove_events_get_channel +#undef snd_seq_remove_events_get_event_type +#undef snd_seq_remove_events_get_tag +#undef snd_seq_remove_events_set_condition +#undef snd_seq_remove_events_set_queue +#undef snd_seq_remove_events_set_time +#undef snd_seq_remove_events_set_dest +#undef snd_seq_remove_events_set_channel +#undef snd_seq_remove_events_set_event_type +#undef snd_seq_remove_events_set_tag +#undef snd_seq_remove_events +#undef snd_seq_set_bit +#undef snd_seq_unset_bit +#undef snd_seq_change_bit +#undef snd_seq_get_bit +#undef snd_seq_control_queue +#undef snd_seq_create_simple_port +#undef snd_seq_delete_simple_port +#undef snd_seq_connect_from +#undef snd_seq_connect_to +#undef snd_seq_disconnect_from +#undef snd_seq_disconnect_to +#undef snd_seq_set_client_name +#undef snd_seq_set_client_event_filter +#undef snd_seq_set_client_pool_output +#undef snd_seq_set_client_pool_output_room +#undef snd_seq_set_client_pool_input +#undef snd_seq_sync_output_queue +#undef snd_seq_parse_address +#undef snd_seq_reset_pool_output +#undef snd_seq_reset_pool_input +#undef snd_midi_event_new +#undef snd_midi_event_resize_buffer +#undef snd_midi_event_free +#undef snd_midi_event_init +#undef snd_midi_event_reset_encode +#undef snd_midi_event_reset_decode +#undef snd_midi_event_no_status +#undef snd_midi_event_encode +#undef snd_midi_event_encode_byte +#undef snd_midi_event_decode +#include <dlfcn.h> +#include <stdio.h> +const char* (*snd_asoundlib_version_dylibloader_wrapper_asound)( void); +int (*snd_dlpath_dylibloader_wrapper_asound)( char*, size_t,const char*); +void* (*snd_dlopen_dylibloader_wrapper_asound)(const char*, int, char*, size_t); +void* (*snd_dlsym_dylibloader_wrapper_asound)( void*,const char*,const char*); +int (*snd_dlclose_dylibloader_wrapper_asound)( void*); +int (*snd_async_add_handler_dylibloader_wrapper_asound)( snd_async_handler_t**, int, snd_async_callback_t, void*); +int (*snd_async_del_handler_dylibloader_wrapper_asound)( snd_async_handler_t*); +int (*snd_async_handler_get_fd_dylibloader_wrapper_asound)( snd_async_handler_t*); +int (*snd_async_handler_get_signo_dylibloader_wrapper_asound)( snd_async_handler_t*); +void* (*snd_async_handler_get_callback_private_dylibloader_wrapper_asound)( snd_async_handler_t*); +struct snd_shm_area* (*snd_shm_area_create_dylibloader_wrapper_asound)( int, void*); +struct snd_shm_area* (*snd_shm_area_share_dylibloader_wrapper_asound)(struct snd_shm_area*); +int (*snd_shm_area_destroy_dylibloader_wrapper_asound)(struct snd_shm_area*); +int (*snd_user_file_dylibloader_wrapper_asound)(const char*, char**); +int (*snd_input_stdio_open_dylibloader_wrapper_asound)( snd_input_t**,const char*,const char*); +int (*snd_input_stdio_attach_dylibloader_wrapper_asound)( snd_input_t**, FILE*, int); +int (*snd_input_buffer_open_dylibloader_wrapper_asound)( snd_input_t**,const char*, ssize_t); +int (*snd_input_close_dylibloader_wrapper_asound)( snd_input_t*); +int (*snd_input_scanf_dylibloader_wrapper_asound)( snd_input_t*,const char*,...); +char* (*snd_input_gets_dylibloader_wrapper_asound)( snd_input_t*, char*, size_t); +int (*snd_input_getc_dylibloader_wrapper_asound)( snd_input_t*); +int (*snd_input_ungetc_dylibloader_wrapper_asound)( snd_input_t*, int); +int (*snd_output_stdio_open_dylibloader_wrapper_asound)( snd_output_t**,const char*,const char*); +int (*snd_output_stdio_attach_dylibloader_wrapper_asound)( snd_output_t**, FILE*, int); +int (*snd_output_buffer_open_dylibloader_wrapper_asound)( snd_output_t**); +size_t (*snd_output_buffer_string_dylibloader_wrapper_asound)( snd_output_t*, char**); +int (*snd_output_close_dylibloader_wrapper_asound)( snd_output_t*); +int (*snd_output_printf_dylibloader_wrapper_asound)( snd_output_t*,const char*,...); +int (*snd_output_vprintf_dylibloader_wrapper_asound)( snd_output_t*,const char*, va_list); +int (*snd_output_puts_dylibloader_wrapper_asound)( snd_output_t*,const char*); +int (*snd_output_putc_dylibloader_wrapper_asound)( snd_output_t*, int); +int (*snd_output_flush_dylibloader_wrapper_asound)( snd_output_t*); +const char* (*snd_strerror_dylibloader_wrapper_asound)( int); +int (*snd_lib_error_set_handler_dylibloader_wrapper_asound)( snd_lib_error_handler_t); +snd_local_error_handler_t (*snd_lib_error_set_local_dylibloader_wrapper_asound)( snd_local_error_handler_t); +const char* (*snd_config_topdir_dylibloader_wrapper_asound)( void); +int (*snd_config_top_dylibloader_wrapper_asound)( snd_config_t**); +int (*snd_config_load_dylibloader_wrapper_asound)( snd_config_t*, snd_input_t*); +int (*snd_config_load_override_dylibloader_wrapper_asound)( snd_config_t*, snd_input_t*); +int (*snd_config_save_dylibloader_wrapper_asound)( snd_config_t*, snd_output_t*); +int (*snd_config_update_dylibloader_wrapper_asound)( void); +int (*snd_config_update_r_dylibloader_wrapper_asound)( snd_config_t**, snd_config_update_t**,const char*); +int (*snd_config_update_free_dylibloader_wrapper_asound)( snd_config_update_t*); +int (*snd_config_update_free_global_dylibloader_wrapper_asound)( void); +int (*snd_config_update_ref_dylibloader_wrapper_asound)( snd_config_t**); +void (*snd_config_ref_dylibloader_wrapper_asound)( snd_config_t*); +void (*snd_config_unref_dylibloader_wrapper_asound)( snd_config_t*); +int (*snd_config_search_dylibloader_wrapper_asound)( snd_config_t*,const char*, snd_config_t**); +int (*snd_config_searchv_dylibloader_wrapper_asound)( snd_config_t*, snd_config_t**,...); +int (*snd_config_search_definition_dylibloader_wrapper_asound)( snd_config_t*,const char*,const char*, snd_config_t**); +int (*snd_config_expand_dylibloader_wrapper_asound)( snd_config_t*, snd_config_t*,const char*, snd_config_t*, snd_config_t**); +int (*snd_config_evaluate_dylibloader_wrapper_asound)( snd_config_t*, snd_config_t*, snd_config_t*, snd_config_t**); +int (*snd_config_add_dylibloader_wrapper_asound)( snd_config_t*, snd_config_t*); +int (*snd_config_add_before_dylibloader_wrapper_asound)( snd_config_t*, snd_config_t*); +int (*snd_config_add_after_dylibloader_wrapper_asound)( snd_config_t*, snd_config_t*); +int (*snd_config_remove_dylibloader_wrapper_asound)( snd_config_t*); +int (*snd_config_delete_dylibloader_wrapper_asound)( snd_config_t*); +int (*snd_config_delete_compound_members_dylibloader_wrapper_asound)(const snd_config_t*); +int (*snd_config_copy_dylibloader_wrapper_asound)( snd_config_t**, snd_config_t*); +int (*snd_config_make_dylibloader_wrapper_asound)( snd_config_t**,const char*, snd_config_type_t); +int (*snd_config_make_integer_dylibloader_wrapper_asound)( snd_config_t**,const char*); +int (*snd_config_make_integer64_dylibloader_wrapper_asound)( snd_config_t**,const char*); +int (*snd_config_make_real_dylibloader_wrapper_asound)( snd_config_t**,const char*); +int (*snd_config_make_string_dylibloader_wrapper_asound)( snd_config_t**,const char*); +int (*snd_config_make_pointer_dylibloader_wrapper_asound)( snd_config_t**,const char*); +int (*snd_config_make_compound_dylibloader_wrapper_asound)( snd_config_t**,const char*, int); +int (*snd_config_imake_integer_dylibloader_wrapper_asound)( snd_config_t**,const char*,const long); +int (*snd_config_imake_integer64_dylibloader_wrapper_asound)( snd_config_t**,const char*,const long long); +int (*snd_config_imake_real_dylibloader_wrapper_asound)( snd_config_t**,const char*,const double); +int (*snd_config_imake_string_dylibloader_wrapper_asound)( snd_config_t**,const char*,const char*); +int (*snd_config_imake_safe_string_dylibloader_wrapper_asound)( snd_config_t**,const char*,const char*); +int (*snd_config_imake_pointer_dylibloader_wrapper_asound)( snd_config_t**,const char*,const void*); +snd_config_type_t (*snd_config_get_type_dylibloader_wrapper_asound)(const snd_config_t*); +int (*snd_config_is_array_dylibloader_wrapper_asound)(const snd_config_t*); +int (*snd_config_set_id_dylibloader_wrapper_asound)( snd_config_t*,const char*); +int (*snd_config_set_integer_dylibloader_wrapper_asound)( snd_config_t*, long); +int (*snd_config_set_integer64_dylibloader_wrapper_asound)( snd_config_t*, long long); +int (*snd_config_set_real_dylibloader_wrapper_asound)( snd_config_t*, double); +int (*snd_config_set_string_dylibloader_wrapper_asound)( snd_config_t*,const char*); +int (*snd_config_set_ascii_dylibloader_wrapper_asound)( snd_config_t*,const char*); +int (*snd_config_set_pointer_dylibloader_wrapper_asound)( snd_config_t*,const void*); +int (*snd_config_get_id_dylibloader_wrapper_asound)(const snd_config_t*,const char**); +int (*snd_config_get_integer_dylibloader_wrapper_asound)(const snd_config_t*, long*); +int (*snd_config_get_integer64_dylibloader_wrapper_asound)(const snd_config_t*, long long*); +int (*snd_config_get_real_dylibloader_wrapper_asound)(const snd_config_t*, double*); +int (*snd_config_get_ireal_dylibloader_wrapper_asound)(const snd_config_t*, double*); +int (*snd_config_get_string_dylibloader_wrapper_asound)(const snd_config_t*,const char**); +int (*snd_config_get_ascii_dylibloader_wrapper_asound)(const snd_config_t*, char**); +int (*snd_config_get_pointer_dylibloader_wrapper_asound)(const snd_config_t*,const void**); +int (*snd_config_test_id_dylibloader_wrapper_asound)(const snd_config_t*,const char*); +snd_config_iterator_t (*snd_config_iterator_first_dylibloader_wrapper_asound)(const snd_config_t*); +snd_config_iterator_t (*snd_config_iterator_next_dylibloader_wrapper_asound)(const snd_config_iterator_t); +snd_config_iterator_t (*snd_config_iterator_end_dylibloader_wrapper_asound)(const snd_config_t*); +snd_config_t* (*snd_config_iterator_entry_dylibloader_wrapper_asound)(const snd_config_iterator_t); +int (*snd_config_get_bool_ascii_dylibloader_wrapper_asound)(const char*); +int (*snd_config_get_bool_dylibloader_wrapper_asound)(const snd_config_t*); +int (*snd_config_get_ctl_iface_ascii_dylibloader_wrapper_asound)(const char*); +int (*snd_config_get_ctl_iface_dylibloader_wrapper_asound)(const snd_config_t*); +int (*snd_names_list_dylibloader_wrapper_asound)(const char*, snd_devname_t**); +void (*snd_names_list_free_dylibloader_wrapper_asound)( snd_devname_t*); +int (*snd_pcm_open_dylibloader_wrapper_asound)( snd_pcm_t**,const char*, snd_pcm_stream_t, int); +int (*snd_pcm_open_lconf_dylibloader_wrapper_asound)( snd_pcm_t**,const char*, snd_pcm_stream_t, int, snd_config_t*); +int (*snd_pcm_open_fallback_dylibloader_wrapper_asound)( snd_pcm_t**, snd_config_t*,const char*,const char*, snd_pcm_stream_t, int); +int (*snd_pcm_close_dylibloader_wrapper_asound)( snd_pcm_t*); +const char* (*snd_pcm_name_dylibloader_wrapper_asound)( snd_pcm_t*); +snd_pcm_type_t (*snd_pcm_type_dylibloader_wrapper_asound)( snd_pcm_t*); +snd_pcm_stream_t (*snd_pcm_stream_dylibloader_wrapper_asound)( snd_pcm_t*); +int (*snd_pcm_poll_descriptors_count_dylibloader_wrapper_asound)( snd_pcm_t*); +int (*snd_pcm_poll_descriptors_dylibloader_wrapper_asound)( snd_pcm_t*,struct pollfd*, unsigned int); +int (*snd_pcm_poll_descriptors_revents_dylibloader_wrapper_asound)( snd_pcm_t*,struct pollfd*, unsigned int, unsigned short*); +int (*snd_pcm_nonblock_dylibloader_wrapper_asound)( snd_pcm_t*, int); +int (*snd_async_add_pcm_handler_dylibloader_wrapper_asound)( snd_async_handler_t**, snd_pcm_t*, snd_async_callback_t, void*); +snd_pcm_t* (*snd_async_handler_get_pcm_dylibloader_wrapper_asound)( snd_async_handler_t*); +int (*snd_pcm_info_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_info_t*); +int (*snd_pcm_hw_params_current_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*); +int (*snd_pcm_hw_params_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*); +int (*snd_pcm_hw_free_dylibloader_wrapper_asound)( snd_pcm_t*); +int (*snd_pcm_sw_params_current_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_sw_params_t*); +int (*snd_pcm_sw_params_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_sw_params_t*); +int (*snd_pcm_prepare_dylibloader_wrapper_asound)( snd_pcm_t*); +int (*snd_pcm_reset_dylibloader_wrapper_asound)( snd_pcm_t*); +int (*snd_pcm_status_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_status_t*); +int (*snd_pcm_start_dylibloader_wrapper_asound)( snd_pcm_t*); +int (*snd_pcm_drop_dylibloader_wrapper_asound)( snd_pcm_t*); +int (*snd_pcm_drain_dylibloader_wrapper_asound)( snd_pcm_t*); +int (*snd_pcm_pause_dylibloader_wrapper_asound)( snd_pcm_t*, int); +snd_pcm_state_t (*snd_pcm_state_dylibloader_wrapper_asound)( snd_pcm_t*); +int (*snd_pcm_hwsync_dylibloader_wrapper_asound)( snd_pcm_t*); +int (*snd_pcm_delay_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_sframes_t*); +int (*snd_pcm_resume_dylibloader_wrapper_asound)( snd_pcm_t*); +int (*snd_pcm_htimestamp_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_uframes_t*, snd_htimestamp_t*); +snd_pcm_sframes_t (*snd_pcm_avail_dylibloader_wrapper_asound)( snd_pcm_t*); +snd_pcm_sframes_t (*snd_pcm_avail_update_dylibloader_wrapper_asound)( snd_pcm_t*); +int (*snd_pcm_avail_delay_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_sframes_t*, snd_pcm_sframes_t*); +snd_pcm_sframes_t (*snd_pcm_rewindable_dylibloader_wrapper_asound)( snd_pcm_t*); +snd_pcm_sframes_t (*snd_pcm_rewind_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_uframes_t); +snd_pcm_sframes_t (*snd_pcm_forwardable_dylibloader_wrapper_asound)( snd_pcm_t*); +snd_pcm_sframes_t (*snd_pcm_forward_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_uframes_t); +snd_pcm_sframes_t (*snd_pcm_writei_dylibloader_wrapper_asound)( snd_pcm_t*,const void*, snd_pcm_uframes_t); +snd_pcm_sframes_t (*snd_pcm_readi_dylibloader_wrapper_asound)( snd_pcm_t*, void*, snd_pcm_uframes_t); +snd_pcm_sframes_t (*snd_pcm_writen_dylibloader_wrapper_asound)( snd_pcm_t*, void**, snd_pcm_uframes_t); +snd_pcm_sframes_t (*snd_pcm_readn_dylibloader_wrapper_asound)( snd_pcm_t*, void**, snd_pcm_uframes_t); +int (*snd_pcm_wait_dylibloader_wrapper_asound)( snd_pcm_t*, int); +int (*snd_pcm_link_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_t*); +int (*snd_pcm_unlink_dylibloader_wrapper_asound)( snd_pcm_t*); +snd_pcm_chmap_query_t** (*snd_pcm_query_chmaps_dylibloader_wrapper_asound)( snd_pcm_t*); +snd_pcm_chmap_query_t** (*snd_pcm_query_chmaps_from_hw_dylibloader_wrapper_asound)( int, int, int, snd_pcm_stream_t); +void (*snd_pcm_free_chmaps_dylibloader_wrapper_asound)( snd_pcm_chmap_query_t**); +snd_pcm_chmap_t* (*snd_pcm_get_chmap_dylibloader_wrapper_asound)( snd_pcm_t*); +int (*snd_pcm_set_chmap_dylibloader_wrapper_asound)( snd_pcm_t*,const snd_pcm_chmap_t*); +const char* (*snd_pcm_chmap_type_name_dylibloader_wrapper_asound)(enum snd_pcm_chmap_type); +const char* (*snd_pcm_chmap_name_dylibloader_wrapper_asound)(enum snd_pcm_chmap_position); +const char* (*snd_pcm_chmap_long_name_dylibloader_wrapper_asound)(enum snd_pcm_chmap_position); +int (*snd_pcm_chmap_print_dylibloader_wrapper_asound)(const snd_pcm_chmap_t*, size_t, char*); +unsigned int (*snd_pcm_chmap_from_string_dylibloader_wrapper_asound)(const char*); +snd_pcm_chmap_t* (*snd_pcm_chmap_parse_string_dylibloader_wrapper_asound)(const char*); +int (*snd_pcm_recover_dylibloader_wrapper_asound)( snd_pcm_t*, int, int); +int (*snd_pcm_set_params_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_format_t, snd_pcm_access_t, unsigned int, unsigned int, int, unsigned int); +int (*snd_pcm_get_params_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_uframes_t*, snd_pcm_uframes_t*); +size_t (*snd_pcm_info_sizeof_dylibloader_wrapper_asound)( void); +int (*snd_pcm_info_malloc_dylibloader_wrapper_asound)( snd_pcm_info_t**); +void (*snd_pcm_info_free_dylibloader_wrapper_asound)( snd_pcm_info_t*); +void (*snd_pcm_info_copy_dylibloader_wrapper_asound)( snd_pcm_info_t*,const snd_pcm_info_t*); +unsigned int (*snd_pcm_info_get_device_dylibloader_wrapper_asound)(const snd_pcm_info_t*); +unsigned int (*snd_pcm_info_get_subdevice_dylibloader_wrapper_asound)(const snd_pcm_info_t*); +snd_pcm_stream_t (*snd_pcm_info_get_stream_dylibloader_wrapper_asound)(const snd_pcm_info_t*); +int (*snd_pcm_info_get_card_dylibloader_wrapper_asound)(const snd_pcm_info_t*); +const char* (*snd_pcm_info_get_id_dylibloader_wrapper_asound)(const snd_pcm_info_t*); +const char* (*snd_pcm_info_get_name_dylibloader_wrapper_asound)(const snd_pcm_info_t*); +const char* (*snd_pcm_info_get_subdevice_name_dylibloader_wrapper_asound)(const snd_pcm_info_t*); +snd_pcm_class_t (*snd_pcm_info_get_class_dylibloader_wrapper_asound)(const snd_pcm_info_t*); +snd_pcm_subclass_t (*snd_pcm_info_get_subclass_dylibloader_wrapper_asound)(const snd_pcm_info_t*); +unsigned int (*snd_pcm_info_get_subdevices_count_dylibloader_wrapper_asound)(const snd_pcm_info_t*); +unsigned int (*snd_pcm_info_get_subdevices_avail_dylibloader_wrapper_asound)(const snd_pcm_info_t*); +snd_pcm_sync_id_t (*snd_pcm_info_get_sync_dylibloader_wrapper_asound)(const snd_pcm_info_t*); +void (*snd_pcm_info_set_device_dylibloader_wrapper_asound)( snd_pcm_info_t*, unsigned int); +void (*snd_pcm_info_set_subdevice_dylibloader_wrapper_asound)( snd_pcm_info_t*, unsigned int); +void (*snd_pcm_info_set_stream_dylibloader_wrapper_asound)( snd_pcm_info_t*, snd_pcm_stream_t); +int (*snd_pcm_hw_params_any_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*); +int (*snd_pcm_hw_params_can_mmap_sample_resolution_dylibloader_wrapper_asound)(const snd_pcm_hw_params_t*); +int (*snd_pcm_hw_params_is_double_dylibloader_wrapper_asound)(const snd_pcm_hw_params_t*); +int (*snd_pcm_hw_params_is_batch_dylibloader_wrapper_asound)(const snd_pcm_hw_params_t*); +int (*snd_pcm_hw_params_is_block_transfer_dylibloader_wrapper_asound)(const snd_pcm_hw_params_t*); +int (*snd_pcm_hw_params_is_monotonic_dylibloader_wrapper_asound)(const snd_pcm_hw_params_t*); +int (*snd_pcm_hw_params_can_overrange_dylibloader_wrapper_asound)(const snd_pcm_hw_params_t*); +int (*snd_pcm_hw_params_can_pause_dylibloader_wrapper_asound)(const snd_pcm_hw_params_t*); +int (*snd_pcm_hw_params_can_resume_dylibloader_wrapper_asound)(const snd_pcm_hw_params_t*); +int (*snd_pcm_hw_params_is_half_duplex_dylibloader_wrapper_asound)(const snd_pcm_hw_params_t*); +int (*snd_pcm_hw_params_is_joint_duplex_dylibloader_wrapper_asound)(const snd_pcm_hw_params_t*); +int (*snd_pcm_hw_params_can_sync_start_dylibloader_wrapper_asound)(const snd_pcm_hw_params_t*); +int (*snd_pcm_hw_params_can_disable_period_wakeup_dylibloader_wrapper_asound)(const snd_pcm_hw_params_t*); +int (*snd_pcm_hw_params_supports_audio_wallclock_ts_dylibloader_wrapper_asound)(const snd_pcm_hw_params_t*); +int (*snd_pcm_hw_params_supports_audio_ts_type_dylibloader_wrapper_asound)(const snd_pcm_hw_params_t*, int); +int (*snd_pcm_hw_params_get_rate_numden_dylibloader_wrapper_asound)(const snd_pcm_hw_params_t*, unsigned int*, unsigned int*); +int (*snd_pcm_hw_params_get_sbits_dylibloader_wrapper_asound)(const snd_pcm_hw_params_t*); +int (*snd_pcm_hw_params_get_fifo_size_dylibloader_wrapper_asound)(const snd_pcm_hw_params_t*); +size_t (*snd_pcm_hw_params_sizeof_dylibloader_wrapper_asound)( void); +int (*snd_pcm_hw_params_malloc_dylibloader_wrapper_asound)( snd_pcm_hw_params_t**); +void (*snd_pcm_hw_params_free_dylibloader_wrapper_asound)( snd_pcm_hw_params_t*); +void (*snd_pcm_hw_params_copy_dylibloader_wrapper_asound)( snd_pcm_hw_params_t*,const snd_pcm_hw_params_t*); +int (*snd_pcm_hw_params_get_access_dylibloader_wrapper_asound)(const snd_pcm_hw_params_t*, snd_pcm_access_t*); +int (*snd_pcm_hw_params_test_access_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, snd_pcm_access_t); +int (*snd_pcm_hw_params_set_access_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, snd_pcm_access_t); +int (*snd_pcm_hw_params_set_access_first_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, snd_pcm_access_t*); +int (*snd_pcm_hw_params_set_access_last_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, snd_pcm_access_t*); +int (*snd_pcm_hw_params_set_access_mask_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, snd_pcm_access_mask_t*); +int (*snd_pcm_hw_params_get_access_mask_dylibloader_wrapper_asound)( snd_pcm_hw_params_t*, snd_pcm_access_mask_t*); +int (*snd_pcm_hw_params_get_format_dylibloader_wrapper_asound)(const snd_pcm_hw_params_t*, snd_pcm_format_t*); +int (*snd_pcm_hw_params_test_format_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, snd_pcm_format_t); +int (*snd_pcm_hw_params_set_format_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, snd_pcm_format_t); +int (*snd_pcm_hw_params_set_format_first_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, snd_pcm_format_t*); +int (*snd_pcm_hw_params_set_format_last_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, snd_pcm_format_t*); +int (*snd_pcm_hw_params_set_format_mask_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, snd_pcm_format_mask_t*); +void (*snd_pcm_hw_params_get_format_mask_dylibloader_wrapper_asound)( snd_pcm_hw_params_t*, snd_pcm_format_mask_t*); +int (*snd_pcm_hw_params_get_subformat_dylibloader_wrapper_asound)(const snd_pcm_hw_params_t*, snd_pcm_subformat_t*); +int (*snd_pcm_hw_params_test_subformat_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, snd_pcm_subformat_t); +int (*snd_pcm_hw_params_set_subformat_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, snd_pcm_subformat_t); +int (*snd_pcm_hw_params_set_subformat_first_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, snd_pcm_subformat_t*); +int (*snd_pcm_hw_params_set_subformat_last_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, snd_pcm_subformat_t*); +int (*snd_pcm_hw_params_set_subformat_mask_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, snd_pcm_subformat_mask_t*); +void (*snd_pcm_hw_params_get_subformat_mask_dylibloader_wrapper_asound)( snd_pcm_hw_params_t*, snd_pcm_subformat_mask_t*); +int (*snd_pcm_hw_params_get_channels_dylibloader_wrapper_asound)(const snd_pcm_hw_params_t*, unsigned int*); +int (*snd_pcm_hw_params_get_channels_min_dylibloader_wrapper_asound)(const snd_pcm_hw_params_t*, unsigned int*); +int (*snd_pcm_hw_params_get_channels_max_dylibloader_wrapper_asound)(const snd_pcm_hw_params_t*, unsigned int*); +int (*snd_pcm_hw_params_test_channels_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, unsigned int); +int (*snd_pcm_hw_params_set_channels_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, unsigned int); +int (*snd_pcm_hw_params_set_channels_min_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, unsigned int*); +int (*snd_pcm_hw_params_set_channels_max_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, unsigned int*); +int (*snd_pcm_hw_params_set_channels_minmax_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, unsigned int*, unsigned int*); +int (*snd_pcm_hw_params_set_channels_near_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, unsigned int*); +int (*snd_pcm_hw_params_set_channels_first_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, unsigned int*); +int (*snd_pcm_hw_params_set_channels_last_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, unsigned int*); +int (*snd_pcm_hw_params_get_rate_dylibloader_wrapper_asound)(const snd_pcm_hw_params_t*, unsigned int*, int*); +int (*snd_pcm_hw_params_get_rate_min_dylibloader_wrapper_asound)(const snd_pcm_hw_params_t*, unsigned int*, int*); +int (*snd_pcm_hw_params_get_rate_max_dylibloader_wrapper_asound)(const snd_pcm_hw_params_t*, unsigned int*, int*); +int (*snd_pcm_hw_params_test_rate_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, unsigned int, int); +int (*snd_pcm_hw_params_set_rate_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, unsigned int, int); +int (*snd_pcm_hw_params_set_rate_min_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, unsigned int*, int*); +int (*snd_pcm_hw_params_set_rate_max_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, unsigned int*, int*); +int (*snd_pcm_hw_params_set_rate_minmax_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, unsigned int*, int*, unsigned int*, int*); +int (*snd_pcm_hw_params_set_rate_near_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, unsigned int*, int*); +int (*snd_pcm_hw_params_set_rate_first_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, unsigned int*, int*); +int (*snd_pcm_hw_params_set_rate_last_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, unsigned int*, int*); +int (*snd_pcm_hw_params_set_rate_resample_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, unsigned int); +int (*snd_pcm_hw_params_get_rate_resample_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, unsigned int*); +int (*snd_pcm_hw_params_set_export_buffer_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, unsigned int); +int (*snd_pcm_hw_params_get_export_buffer_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, unsigned int*); +int (*snd_pcm_hw_params_set_period_wakeup_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, unsigned int); +int (*snd_pcm_hw_params_get_period_wakeup_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, unsigned int*); +int (*snd_pcm_hw_params_get_period_time_dylibloader_wrapper_asound)(const snd_pcm_hw_params_t*, unsigned int*, int*); +int (*snd_pcm_hw_params_get_period_time_min_dylibloader_wrapper_asound)(const snd_pcm_hw_params_t*, unsigned int*, int*); +int (*snd_pcm_hw_params_get_period_time_max_dylibloader_wrapper_asound)(const snd_pcm_hw_params_t*, unsigned int*, int*); +int (*snd_pcm_hw_params_test_period_time_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, unsigned int, int); +int (*snd_pcm_hw_params_set_period_time_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, unsigned int, int); +int (*snd_pcm_hw_params_set_period_time_min_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, unsigned int*, int*); +int (*snd_pcm_hw_params_set_period_time_max_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, unsigned int*, int*); +int (*snd_pcm_hw_params_set_period_time_minmax_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, unsigned int*, int*, unsigned int*, int*); +int (*snd_pcm_hw_params_set_period_time_near_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, unsigned int*, int*); +int (*snd_pcm_hw_params_set_period_time_first_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, unsigned int*, int*); +int (*snd_pcm_hw_params_set_period_time_last_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, unsigned int*, int*); +int (*snd_pcm_hw_params_get_period_size_dylibloader_wrapper_asound)(const snd_pcm_hw_params_t*, snd_pcm_uframes_t*, int*); +int (*snd_pcm_hw_params_get_period_size_min_dylibloader_wrapper_asound)(const snd_pcm_hw_params_t*, snd_pcm_uframes_t*, int*); +int (*snd_pcm_hw_params_get_period_size_max_dylibloader_wrapper_asound)(const snd_pcm_hw_params_t*, snd_pcm_uframes_t*, int*); +int (*snd_pcm_hw_params_test_period_size_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, snd_pcm_uframes_t, int); +int (*snd_pcm_hw_params_set_period_size_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, snd_pcm_uframes_t, int); +int (*snd_pcm_hw_params_set_period_size_min_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, snd_pcm_uframes_t*, int*); +int (*snd_pcm_hw_params_set_period_size_max_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, snd_pcm_uframes_t*, int*); +int (*snd_pcm_hw_params_set_period_size_minmax_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, snd_pcm_uframes_t*, int*, snd_pcm_uframes_t*, int*); +int (*snd_pcm_hw_params_set_period_size_near_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, snd_pcm_uframes_t*, int*); +int (*snd_pcm_hw_params_set_period_size_first_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, snd_pcm_uframes_t*, int*); +int (*snd_pcm_hw_params_set_period_size_last_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, snd_pcm_uframes_t*, int*); +int (*snd_pcm_hw_params_set_period_size_integer_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*); +int (*snd_pcm_hw_params_get_periods_dylibloader_wrapper_asound)(const snd_pcm_hw_params_t*, unsigned int*, int*); +int (*snd_pcm_hw_params_get_periods_min_dylibloader_wrapper_asound)(const snd_pcm_hw_params_t*, unsigned int*, int*); +int (*snd_pcm_hw_params_get_periods_max_dylibloader_wrapper_asound)(const snd_pcm_hw_params_t*, unsigned int*, int*); +int (*snd_pcm_hw_params_test_periods_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, unsigned int, int); +int (*snd_pcm_hw_params_set_periods_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, unsigned int, int); +int (*snd_pcm_hw_params_set_periods_min_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, unsigned int*, int*); +int (*snd_pcm_hw_params_set_periods_max_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, unsigned int*, int*); +int (*snd_pcm_hw_params_set_periods_minmax_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, unsigned int*, int*, unsigned int*, int*); +int (*snd_pcm_hw_params_set_periods_near_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, unsigned int*, int*); +int (*snd_pcm_hw_params_set_periods_first_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, unsigned int*, int*); +int (*snd_pcm_hw_params_set_periods_last_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, unsigned int*, int*); +int (*snd_pcm_hw_params_set_periods_integer_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*); +int (*snd_pcm_hw_params_get_buffer_time_dylibloader_wrapper_asound)(const snd_pcm_hw_params_t*, unsigned int*, int*); +int (*snd_pcm_hw_params_get_buffer_time_min_dylibloader_wrapper_asound)(const snd_pcm_hw_params_t*, unsigned int*, int*); +int (*snd_pcm_hw_params_get_buffer_time_max_dylibloader_wrapper_asound)(const snd_pcm_hw_params_t*, unsigned int*, int*); +int (*snd_pcm_hw_params_test_buffer_time_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, unsigned int, int); +int (*snd_pcm_hw_params_set_buffer_time_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, unsigned int, int); +int (*snd_pcm_hw_params_set_buffer_time_min_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, unsigned int*, int*); +int (*snd_pcm_hw_params_set_buffer_time_max_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, unsigned int*, int*); +int (*snd_pcm_hw_params_set_buffer_time_minmax_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, unsigned int*, int*, unsigned int*, int*); +int (*snd_pcm_hw_params_set_buffer_time_near_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, unsigned int*, int*); +int (*snd_pcm_hw_params_set_buffer_time_first_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, unsigned int*, int*); +int (*snd_pcm_hw_params_set_buffer_time_last_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, unsigned int*, int*); +int (*snd_pcm_hw_params_get_buffer_size_dylibloader_wrapper_asound)(const snd_pcm_hw_params_t*, snd_pcm_uframes_t*); +int (*snd_pcm_hw_params_get_buffer_size_min_dylibloader_wrapper_asound)(const snd_pcm_hw_params_t*, snd_pcm_uframes_t*); +int (*snd_pcm_hw_params_get_buffer_size_max_dylibloader_wrapper_asound)(const snd_pcm_hw_params_t*, snd_pcm_uframes_t*); +int (*snd_pcm_hw_params_test_buffer_size_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, snd_pcm_uframes_t); +int (*snd_pcm_hw_params_set_buffer_size_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, snd_pcm_uframes_t); +int (*snd_pcm_hw_params_set_buffer_size_min_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, snd_pcm_uframes_t*); +int (*snd_pcm_hw_params_set_buffer_size_max_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, snd_pcm_uframes_t*); +int (*snd_pcm_hw_params_set_buffer_size_minmax_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, snd_pcm_uframes_t*, snd_pcm_uframes_t*); +int (*snd_pcm_hw_params_set_buffer_size_near_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, snd_pcm_uframes_t*); +int (*snd_pcm_hw_params_set_buffer_size_first_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, snd_pcm_uframes_t*); +int (*snd_pcm_hw_params_set_buffer_size_last_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, snd_pcm_uframes_t*); +int (*snd_pcm_hw_params_get_min_align_dylibloader_wrapper_asound)(const snd_pcm_hw_params_t*, snd_pcm_uframes_t*); +size_t (*snd_pcm_sw_params_sizeof_dylibloader_wrapper_asound)( void); +int (*snd_pcm_sw_params_malloc_dylibloader_wrapper_asound)( snd_pcm_sw_params_t**); +void (*snd_pcm_sw_params_free_dylibloader_wrapper_asound)( snd_pcm_sw_params_t*); +void (*snd_pcm_sw_params_copy_dylibloader_wrapper_asound)( snd_pcm_sw_params_t*,const snd_pcm_sw_params_t*); +int (*snd_pcm_sw_params_get_boundary_dylibloader_wrapper_asound)(const snd_pcm_sw_params_t*, snd_pcm_uframes_t*); +int (*snd_pcm_sw_params_set_tstamp_mode_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_sw_params_t*, snd_pcm_tstamp_t); +int (*snd_pcm_sw_params_get_tstamp_mode_dylibloader_wrapper_asound)(const snd_pcm_sw_params_t*, snd_pcm_tstamp_t*); +int (*snd_pcm_sw_params_set_tstamp_type_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_sw_params_t*, snd_pcm_tstamp_type_t); +int (*snd_pcm_sw_params_get_tstamp_type_dylibloader_wrapper_asound)(const snd_pcm_sw_params_t*, snd_pcm_tstamp_type_t*); +int (*snd_pcm_sw_params_set_avail_min_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_sw_params_t*, snd_pcm_uframes_t); +int (*snd_pcm_sw_params_get_avail_min_dylibloader_wrapper_asound)(const snd_pcm_sw_params_t*, snd_pcm_uframes_t*); +int (*snd_pcm_sw_params_set_period_event_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_sw_params_t*, int); +int (*snd_pcm_sw_params_get_period_event_dylibloader_wrapper_asound)(const snd_pcm_sw_params_t*, int*); +int (*snd_pcm_sw_params_set_start_threshold_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_sw_params_t*, snd_pcm_uframes_t); +int (*snd_pcm_sw_params_get_start_threshold_dylibloader_wrapper_asound)(const snd_pcm_sw_params_t*, snd_pcm_uframes_t*); +int (*snd_pcm_sw_params_set_stop_threshold_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_sw_params_t*, snd_pcm_uframes_t); +int (*snd_pcm_sw_params_get_stop_threshold_dylibloader_wrapper_asound)(const snd_pcm_sw_params_t*, snd_pcm_uframes_t*); +int (*snd_pcm_sw_params_set_silence_threshold_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_sw_params_t*, snd_pcm_uframes_t); +int (*snd_pcm_sw_params_get_silence_threshold_dylibloader_wrapper_asound)(const snd_pcm_sw_params_t*, snd_pcm_uframes_t*); +int (*snd_pcm_sw_params_set_silence_size_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_sw_params_t*, snd_pcm_uframes_t); +int (*snd_pcm_sw_params_get_silence_size_dylibloader_wrapper_asound)(const snd_pcm_sw_params_t*, snd_pcm_uframes_t*); +size_t (*snd_pcm_access_mask_sizeof_dylibloader_wrapper_asound)( void); +int (*snd_pcm_access_mask_malloc_dylibloader_wrapper_asound)( snd_pcm_access_mask_t**); +void (*snd_pcm_access_mask_free_dylibloader_wrapper_asound)( snd_pcm_access_mask_t*); +void (*snd_pcm_access_mask_copy_dylibloader_wrapper_asound)( snd_pcm_access_mask_t*,const snd_pcm_access_mask_t*); +void (*snd_pcm_access_mask_none_dylibloader_wrapper_asound)( snd_pcm_access_mask_t*); +void (*snd_pcm_access_mask_any_dylibloader_wrapper_asound)( snd_pcm_access_mask_t*); +int (*snd_pcm_access_mask_test_dylibloader_wrapper_asound)(const snd_pcm_access_mask_t*, snd_pcm_access_t); +int (*snd_pcm_access_mask_empty_dylibloader_wrapper_asound)(const snd_pcm_access_mask_t*); +void (*snd_pcm_access_mask_set_dylibloader_wrapper_asound)( snd_pcm_access_mask_t*, snd_pcm_access_t); +void (*snd_pcm_access_mask_reset_dylibloader_wrapper_asound)( snd_pcm_access_mask_t*, snd_pcm_access_t); +size_t (*snd_pcm_format_mask_sizeof_dylibloader_wrapper_asound)( void); +int (*snd_pcm_format_mask_malloc_dylibloader_wrapper_asound)( snd_pcm_format_mask_t**); +void (*snd_pcm_format_mask_free_dylibloader_wrapper_asound)( snd_pcm_format_mask_t*); +void (*snd_pcm_format_mask_copy_dylibloader_wrapper_asound)( snd_pcm_format_mask_t*,const snd_pcm_format_mask_t*); +void (*snd_pcm_format_mask_none_dylibloader_wrapper_asound)( snd_pcm_format_mask_t*); +void (*snd_pcm_format_mask_any_dylibloader_wrapper_asound)( snd_pcm_format_mask_t*); +int (*snd_pcm_format_mask_test_dylibloader_wrapper_asound)(const snd_pcm_format_mask_t*, snd_pcm_format_t); +int (*snd_pcm_format_mask_empty_dylibloader_wrapper_asound)(const snd_pcm_format_mask_t*); +void (*snd_pcm_format_mask_set_dylibloader_wrapper_asound)( snd_pcm_format_mask_t*, snd_pcm_format_t); +void (*snd_pcm_format_mask_reset_dylibloader_wrapper_asound)( snd_pcm_format_mask_t*, snd_pcm_format_t); +size_t (*snd_pcm_subformat_mask_sizeof_dylibloader_wrapper_asound)( void); +int (*snd_pcm_subformat_mask_malloc_dylibloader_wrapper_asound)( snd_pcm_subformat_mask_t**); +void (*snd_pcm_subformat_mask_free_dylibloader_wrapper_asound)( snd_pcm_subformat_mask_t*); +void (*snd_pcm_subformat_mask_copy_dylibloader_wrapper_asound)( snd_pcm_subformat_mask_t*,const snd_pcm_subformat_mask_t*); +void (*snd_pcm_subformat_mask_none_dylibloader_wrapper_asound)( snd_pcm_subformat_mask_t*); +void (*snd_pcm_subformat_mask_any_dylibloader_wrapper_asound)( snd_pcm_subformat_mask_t*); +int (*snd_pcm_subformat_mask_test_dylibloader_wrapper_asound)(const snd_pcm_subformat_mask_t*, snd_pcm_subformat_t); +int (*snd_pcm_subformat_mask_empty_dylibloader_wrapper_asound)(const snd_pcm_subformat_mask_t*); +void (*snd_pcm_subformat_mask_set_dylibloader_wrapper_asound)( snd_pcm_subformat_mask_t*, snd_pcm_subformat_t); +void (*snd_pcm_subformat_mask_reset_dylibloader_wrapper_asound)( snd_pcm_subformat_mask_t*, snd_pcm_subformat_t); +size_t (*snd_pcm_status_sizeof_dylibloader_wrapper_asound)( void); +int (*snd_pcm_status_malloc_dylibloader_wrapper_asound)( snd_pcm_status_t**); +void (*snd_pcm_status_free_dylibloader_wrapper_asound)( snd_pcm_status_t*); +void (*snd_pcm_status_copy_dylibloader_wrapper_asound)( snd_pcm_status_t*,const snd_pcm_status_t*); +snd_pcm_state_t (*snd_pcm_status_get_state_dylibloader_wrapper_asound)(const snd_pcm_status_t*); +void (*snd_pcm_status_get_trigger_tstamp_dylibloader_wrapper_asound)(const snd_pcm_status_t*, snd_timestamp_t*); +void (*snd_pcm_status_get_trigger_htstamp_dylibloader_wrapper_asound)(const snd_pcm_status_t*, snd_htimestamp_t*); +void (*snd_pcm_status_get_tstamp_dylibloader_wrapper_asound)(const snd_pcm_status_t*, snd_timestamp_t*); +void (*snd_pcm_status_get_htstamp_dylibloader_wrapper_asound)(const snd_pcm_status_t*, snd_htimestamp_t*); +void (*snd_pcm_status_get_audio_htstamp_dylibloader_wrapper_asound)(const snd_pcm_status_t*, snd_htimestamp_t*); +void (*snd_pcm_status_get_driver_htstamp_dylibloader_wrapper_asound)(const snd_pcm_status_t*, snd_htimestamp_t*); +void (*snd_pcm_status_get_audio_htstamp_report_dylibloader_wrapper_asound)(const snd_pcm_status_t*, snd_pcm_audio_tstamp_report_t*); +void (*snd_pcm_status_set_audio_htstamp_config_dylibloader_wrapper_asound)( snd_pcm_status_t*, snd_pcm_audio_tstamp_config_t*); +snd_pcm_sframes_t (*snd_pcm_status_get_delay_dylibloader_wrapper_asound)(const snd_pcm_status_t*); +snd_pcm_uframes_t (*snd_pcm_status_get_avail_dylibloader_wrapper_asound)(const snd_pcm_status_t*); +snd_pcm_uframes_t (*snd_pcm_status_get_avail_max_dylibloader_wrapper_asound)(const snd_pcm_status_t*); +snd_pcm_uframes_t (*snd_pcm_status_get_overrange_dylibloader_wrapper_asound)(const snd_pcm_status_t*); +const char* (*snd_pcm_type_name_dylibloader_wrapper_asound)( snd_pcm_type_t); +const char* (*snd_pcm_stream_name_dylibloader_wrapper_asound)(const snd_pcm_stream_t); +const char* (*snd_pcm_access_name_dylibloader_wrapper_asound)(const snd_pcm_access_t); +const char* (*snd_pcm_format_name_dylibloader_wrapper_asound)(const snd_pcm_format_t); +const char* (*snd_pcm_format_description_dylibloader_wrapper_asound)(const snd_pcm_format_t); +const char* (*snd_pcm_subformat_name_dylibloader_wrapper_asound)(const snd_pcm_subformat_t); +const char* (*snd_pcm_subformat_description_dylibloader_wrapper_asound)(const snd_pcm_subformat_t); +snd_pcm_format_t (*snd_pcm_format_value_dylibloader_wrapper_asound)(const char*); +const char* (*snd_pcm_tstamp_mode_name_dylibloader_wrapper_asound)(const snd_pcm_tstamp_t); +const char* (*snd_pcm_state_name_dylibloader_wrapper_asound)(const snd_pcm_state_t); +int (*snd_pcm_dump_dylibloader_wrapper_asound)( snd_pcm_t*, snd_output_t*); +int (*snd_pcm_dump_hw_setup_dylibloader_wrapper_asound)( snd_pcm_t*, snd_output_t*); +int (*snd_pcm_dump_sw_setup_dylibloader_wrapper_asound)( snd_pcm_t*, snd_output_t*); +int (*snd_pcm_dump_setup_dylibloader_wrapper_asound)( snd_pcm_t*, snd_output_t*); +int (*snd_pcm_hw_params_dump_dylibloader_wrapper_asound)( snd_pcm_hw_params_t*, snd_output_t*); +int (*snd_pcm_sw_params_dump_dylibloader_wrapper_asound)( snd_pcm_sw_params_t*, snd_output_t*); +int (*snd_pcm_status_dump_dylibloader_wrapper_asound)( snd_pcm_status_t*, snd_output_t*); +int (*snd_pcm_mmap_begin_dylibloader_wrapper_asound)( snd_pcm_t*,const snd_pcm_channel_area_t**, snd_pcm_uframes_t*, snd_pcm_uframes_t*); +snd_pcm_sframes_t (*snd_pcm_mmap_commit_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_uframes_t, snd_pcm_uframes_t); +snd_pcm_sframes_t (*snd_pcm_mmap_writei_dylibloader_wrapper_asound)( snd_pcm_t*,const void*, snd_pcm_uframes_t); +snd_pcm_sframes_t (*snd_pcm_mmap_readi_dylibloader_wrapper_asound)( snd_pcm_t*, void*, snd_pcm_uframes_t); +snd_pcm_sframes_t (*snd_pcm_mmap_writen_dylibloader_wrapper_asound)( snd_pcm_t*, void**, snd_pcm_uframes_t); +snd_pcm_sframes_t (*snd_pcm_mmap_readn_dylibloader_wrapper_asound)( snd_pcm_t*, void**, snd_pcm_uframes_t); +int (*snd_pcm_format_signed_dylibloader_wrapper_asound)( snd_pcm_format_t); +int (*snd_pcm_format_unsigned_dylibloader_wrapper_asound)( snd_pcm_format_t); +int (*snd_pcm_format_linear_dylibloader_wrapper_asound)( snd_pcm_format_t); +int (*snd_pcm_format_float_dylibloader_wrapper_asound)( snd_pcm_format_t); +int (*snd_pcm_format_little_endian_dylibloader_wrapper_asound)( snd_pcm_format_t); +int (*snd_pcm_format_big_endian_dylibloader_wrapper_asound)( snd_pcm_format_t); +int (*snd_pcm_format_cpu_endian_dylibloader_wrapper_asound)( snd_pcm_format_t); +int (*snd_pcm_format_width_dylibloader_wrapper_asound)( snd_pcm_format_t); +int (*snd_pcm_format_physical_width_dylibloader_wrapper_asound)( snd_pcm_format_t); +snd_pcm_format_t (*snd_pcm_build_linear_format_dylibloader_wrapper_asound)( int, int, int, int); +ssize_t (*snd_pcm_format_size_dylibloader_wrapper_asound)( snd_pcm_format_t, size_t); +uint8_t (*snd_pcm_format_silence_dylibloader_wrapper_asound)( snd_pcm_format_t); +uint16_t (*snd_pcm_format_silence_16_dylibloader_wrapper_asound)( snd_pcm_format_t); +uint32_t (*snd_pcm_format_silence_32_dylibloader_wrapper_asound)( snd_pcm_format_t); +uint64_t (*snd_pcm_format_silence_64_dylibloader_wrapper_asound)( snd_pcm_format_t); +int (*snd_pcm_format_set_silence_dylibloader_wrapper_asound)( snd_pcm_format_t, void*, unsigned int); +snd_pcm_sframes_t (*snd_pcm_bytes_to_frames_dylibloader_wrapper_asound)( snd_pcm_t*, ssize_t); +ssize_t (*snd_pcm_frames_to_bytes_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_sframes_t); +long (*snd_pcm_bytes_to_samples_dylibloader_wrapper_asound)( snd_pcm_t*, ssize_t); +ssize_t (*snd_pcm_samples_to_bytes_dylibloader_wrapper_asound)( snd_pcm_t*, long); +int (*snd_pcm_area_silence_dylibloader_wrapper_asound)(const snd_pcm_channel_area_t*, snd_pcm_uframes_t, unsigned int, snd_pcm_format_t); +int (*snd_pcm_areas_silence_dylibloader_wrapper_asound)(const snd_pcm_channel_area_t*, snd_pcm_uframes_t, unsigned int, snd_pcm_uframes_t, snd_pcm_format_t); +int (*snd_pcm_area_copy_dylibloader_wrapper_asound)(const snd_pcm_channel_area_t*, snd_pcm_uframes_t,const snd_pcm_channel_area_t*, snd_pcm_uframes_t, unsigned int, snd_pcm_format_t); +int (*snd_pcm_areas_copy_dylibloader_wrapper_asound)(const snd_pcm_channel_area_t*, snd_pcm_uframes_t,const snd_pcm_channel_area_t*, snd_pcm_uframes_t, unsigned int, snd_pcm_uframes_t, snd_pcm_format_t); +int (*snd_pcm_areas_copy_wrap_dylibloader_wrapper_asound)(const snd_pcm_channel_area_t*, snd_pcm_uframes_t,const snd_pcm_uframes_t,const snd_pcm_channel_area_t*, snd_pcm_uframes_t,const snd_pcm_uframes_t,const unsigned int, snd_pcm_uframes_t,const snd_pcm_format_t); +snd_pcm_t* (*snd_pcm_hook_get_pcm_dylibloader_wrapper_asound)( snd_pcm_hook_t*); +void* (*snd_pcm_hook_get_private_dylibloader_wrapper_asound)( snd_pcm_hook_t*); +void (*snd_pcm_hook_set_private_dylibloader_wrapper_asound)( snd_pcm_hook_t*, void*); +int (*snd_pcm_hook_add_dylibloader_wrapper_asound)( snd_pcm_hook_t**, snd_pcm_t*, snd_pcm_hook_type_t, snd_pcm_hook_func_t, void*); +int (*snd_pcm_hook_remove_dylibloader_wrapper_asound)( snd_pcm_hook_t*); +snd_pcm_uframes_t (*snd_pcm_meter_get_bufsize_dylibloader_wrapper_asound)( snd_pcm_t*); +unsigned int (*snd_pcm_meter_get_channels_dylibloader_wrapper_asound)( snd_pcm_t*); +unsigned int (*snd_pcm_meter_get_rate_dylibloader_wrapper_asound)( snd_pcm_t*); +snd_pcm_uframes_t (*snd_pcm_meter_get_now_dylibloader_wrapper_asound)( snd_pcm_t*); +snd_pcm_uframes_t (*snd_pcm_meter_get_boundary_dylibloader_wrapper_asound)( snd_pcm_t*); +int (*snd_pcm_meter_add_scope_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_scope_t*); +snd_pcm_scope_t* (*snd_pcm_meter_search_scope_dylibloader_wrapper_asound)( snd_pcm_t*,const char*); +int (*snd_pcm_scope_malloc_dylibloader_wrapper_asound)( snd_pcm_scope_t**); +void (*snd_pcm_scope_set_ops_dylibloader_wrapper_asound)( snd_pcm_scope_t*,const snd_pcm_scope_ops_t*); +void (*snd_pcm_scope_set_name_dylibloader_wrapper_asound)( snd_pcm_scope_t*,const char*); +const char* (*snd_pcm_scope_get_name_dylibloader_wrapper_asound)( snd_pcm_scope_t*); +void* (*snd_pcm_scope_get_callback_private_dylibloader_wrapper_asound)( snd_pcm_scope_t*); +void (*snd_pcm_scope_set_callback_private_dylibloader_wrapper_asound)( snd_pcm_scope_t*, void*); +int (*snd_pcm_scope_s16_open_dylibloader_wrapper_asound)( snd_pcm_t*,const char*, snd_pcm_scope_t**); +int16_t* (*snd_pcm_scope_s16_get_channel_buffer_dylibloader_wrapper_asound)( snd_pcm_scope_t*, unsigned int); +int (*snd_spcm_init_dylibloader_wrapper_asound)( snd_pcm_t*, unsigned int, unsigned int, snd_pcm_format_t, snd_pcm_subformat_t, snd_spcm_latency_t, snd_pcm_access_t, snd_spcm_xrun_type_t); +int (*snd_spcm_init_duplex_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_t*, unsigned int, unsigned int, snd_pcm_format_t, snd_pcm_subformat_t, snd_spcm_latency_t, snd_pcm_access_t, snd_spcm_xrun_type_t, snd_spcm_duplex_type_t); +int (*snd_spcm_init_get_params_dylibloader_wrapper_asound)( snd_pcm_t*, unsigned int*, snd_pcm_uframes_t*, snd_pcm_uframes_t*); +const char* (*snd_pcm_start_mode_name_dylibloader_wrapper_asound)( snd_pcm_start_t); +const char* (*snd_pcm_xrun_mode_name_dylibloader_wrapper_asound)( snd_pcm_xrun_t); +int (*snd_pcm_sw_params_set_start_mode_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_sw_params_t*, snd_pcm_start_t); +snd_pcm_start_t (*snd_pcm_sw_params_get_start_mode_dylibloader_wrapper_asound)(const snd_pcm_sw_params_t*); +int (*snd_pcm_sw_params_set_xrun_mode_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_sw_params_t*, snd_pcm_xrun_t); +snd_pcm_xrun_t (*snd_pcm_sw_params_get_xrun_mode_dylibloader_wrapper_asound)(const snd_pcm_sw_params_t*); +int (*snd_pcm_sw_params_set_xfer_align_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_sw_params_t*, snd_pcm_uframes_t); +int (*snd_pcm_sw_params_get_xfer_align_dylibloader_wrapper_asound)(const snd_pcm_sw_params_t*, snd_pcm_uframes_t*); +int (*snd_pcm_sw_params_set_sleep_min_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_sw_params_t*, unsigned int); +int (*snd_pcm_sw_params_get_sleep_min_dylibloader_wrapper_asound)(const snd_pcm_sw_params_t*, unsigned int*); +int (*snd_pcm_hw_params_get_tick_time_dylibloader_wrapper_asound)(const snd_pcm_hw_params_t*, unsigned int*, int*); +int (*snd_pcm_hw_params_get_tick_time_min_dylibloader_wrapper_asound)(const snd_pcm_hw_params_t*, unsigned int*, int*); +int (*snd_pcm_hw_params_get_tick_time_max_dylibloader_wrapper_asound)(const snd_pcm_hw_params_t*, unsigned int*, int*); +int (*snd_pcm_hw_params_test_tick_time_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, unsigned int, int); +int (*snd_pcm_hw_params_set_tick_time_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, unsigned int, int); +int (*snd_pcm_hw_params_set_tick_time_min_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, unsigned int*, int*); +int (*snd_pcm_hw_params_set_tick_time_max_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, unsigned int*, int*); +int (*snd_pcm_hw_params_set_tick_time_minmax_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, unsigned int*, int*, unsigned int*, int*); +int (*snd_pcm_hw_params_set_tick_time_near_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, unsigned int*, int*); +int (*snd_pcm_hw_params_set_tick_time_first_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, unsigned int*, int*); +int (*snd_pcm_hw_params_set_tick_time_last_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, unsigned int*, int*); +int (*snd_rawmidi_open_dylibloader_wrapper_asound)( snd_rawmidi_t**, snd_rawmidi_t**,const char*, int); +int (*snd_rawmidi_open_lconf_dylibloader_wrapper_asound)( snd_rawmidi_t**, snd_rawmidi_t**,const char*, int, snd_config_t*); +int (*snd_rawmidi_close_dylibloader_wrapper_asound)( snd_rawmidi_t*); +int (*snd_rawmidi_poll_descriptors_count_dylibloader_wrapper_asound)( snd_rawmidi_t*); +int (*snd_rawmidi_poll_descriptors_dylibloader_wrapper_asound)( snd_rawmidi_t*,struct pollfd*, unsigned int); +int (*snd_rawmidi_poll_descriptors_revents_dylibloader_wrapper_asound)( snd_rawmidi_t*,struct pollfd*, unsigned int, unsigned short*); +int (*snd_rawmidi_nonblock_dylibloader_wrapper_asound)( snd_rawmidi_t*, int); +size_t (*snd_rawmidi_info_sizeof_dylibloader_wrapper_asound)( void); +int (*snd_rawmidi_info_malloc_dylibloader_wrapper_asound)( snd_rawmidi_info_t**); +void (*snd_rawmidi_info_free_dylibloader_wrapper_asound)( snd_rawmidi_info_t*); +void (*snd_rawmidi_info_copy_dylibloader_wrapper_asound)( snd_rawmidi_info_t*,const snd_rawmidi_info_t*); +unsigned int (*snd_rawmidi_info_get_device_dylibloader_wrapper_asound)(const snd_rawmidi_info_t*); +unsigned int (*snd_rawmidi_info_get_subdevice_dylibloader_wrapper_asound)(const snd_rawmidi_info_t*); +snd_rawmidi_stream_t (*snd_rawmidi_info_get_stream_dylibloader_wrapper_asound)(const snd_rawmidi_info_t*); +int (*snd_rawmidi_info_get_card_dylibloader_wrapper_asound)(const snd_rawmidi_info_t*); +unsigned int (*snd_rawmidi_info_get_flags_dylibloader_wrapper_asound)(const snd_rawmidi_info_t*); +const char* (*snd_rawmidi_info_get_id_dylibloader_wrapper_asound)(const snd_rawmidi_info_t*); +const char* (*snd_rawmidi_info_get_name_dylibloader_wrapper_asound)(const snd_rawmidi_info_t*); +const char* (*snd_rawmidi_info_get_subdevice_name_dylibloader_wrapper_asound)(const snd_rawmidi_info_t*); +unsigned int (*snd_rawmidi_info_get_subdevices_count_dylibloader_wrapper_asound)(const snd_rawmidi_info_t*); +unsigned int (*snd_rawmidi_info_get_subdevices_avail_dylibloader_wrapper_asound)(const snd_rawmidi_info_t*); +void (*snd_rawmidi_info_set_device_dylibloader_wrapper_asound)( snd_rawmidi_info_t*, unsigned int); +void (*snd_rawmidi_info_set_subdevice_dylibloader_wrapper_asound)( snd_rawmidi_info_t*, unsigned int); +void (*snd_rawmidi_info_set_stream_dylibloader_wrapper_asound)( snd_rawmidi_info_t*, snd_rawmidi_stream_t); +int (*snd_rawmidi_info_dylibloader_wrapper_asound)( snd_rawmidi_t*, snd_rawmidi_info_t*); +size_t (*snd_rawmidi_params_sizeof_dylibloader_wrapper_asound)( void); +int (*snd_rawmidi_params_malloc_dylibloader_wrapper_asound)( snd_rawmidi_params_t**); +void (*snd_rawmidi_params_free_dylibloader_wrapper_asound)( snd_rawmidi_params_t*); +void (*snd_rawmidi_params_copy_dylibloader_wrapper_asound)( snd_rawmidi_params_t*,const snd_rawmidi_params_t*); +int (*snd_rawmidi_params_set_buffer_size_dylibloader_wrapper_asound)( snd_rawmidi_t*, snd_rawmidi_params_t*, size_t); +size_t (*snd_rawmidi_params_get_buffer_size_dylibloader_wrapper_asound)(const snd_rawmidi_params_t*); +int (*snd_rawmidi_params_set_avail_min_dylibloader_wrapper_asound)( snd_rawmidi_t*, snd_rawmidi_params_t*, size_t); +size_t (*snd_rawmidi_params_get_avail_min_dylibloader_wrapper_asound)(const snd_rawmidi_params_t*); +int (*snd_rawmidi_params_set_no_active_sensing_dylibloader_wrapper_asound)( snd_rawmidi_t*, snd_rawmidi_params_t*, int); +int (*snd_rawmidi_params_get_no_active_sensing_dylibloader_wrapper_asound)(const snd_rawmidi_params_t*); +int (*snd_rawmidi_params_dylibloader_wrapper_asound)( snd_rawmidi_t*, snd_rawmidi_params_t*); +int (*snd_rawmidi_params_current_dylibloader_wrapper_asound)( snd_rawmidi_t*, snd_rawmidi_params_t*); +size_t (*snd_rawmidi_status_sizeof_dylibloader_wrapper_asound)( void); +int (*snd_rawmidi_status_malloc_dylibloader_wrapper_asound)( snd_rawmidi_status_t**); +void (*snd_rawmidi_status_free_dylibloader_wrapper_asound)( snd_rawmidi_status_t*); +void (*snd_rawmidi_status_copy_dylibloader_wrapper_asound)( snd_rawmidi_status_t*,const snd_rawmidi_status_t*); +void (*snd_rawmidi_status_get_tstamp_dylibloader_wrapper_asound)(const snd_rawmidi_status_t*, snd_htimestamp_t*); +size_t (*snd_rawmidi_status_get_avail_dylibloader_wrapper_asound)(const snd_rawmidi_status_t*); +size_t (*snd_rawmidi_status_get_xruns_dylibloader_wrapper_asound)(const snd_rawmidi_status_t*); +int (*snd_rawmidi_status_dylibloader_wrapper_asound)( snd_rawmidi_t*, snd_rawmidi_status_t*); +int (*snd_rawmidi_drain_dylibloader_wrapper_asound)( snd_rawmidi_t*); +int (*snd_rawmidi_drop_dylibloader_wrapper_asound)( snd_rawmidi_t*); +ssize_t (*snd_rawmidi_write_dylibloader_wrapper_asound)( snd_rawmidi_t*,const void*, size_t); +ssize_t (*snd_rawmidi_read_dylibloader_wrapper_asound)( snd_rawmidi_t*, void*, size_t); +const char* (*snd_rawmidi_name_dylibloader_wrapper_asound)( snd_rawmidi_t*); +snd_rawmidi_type_t (*snd_rawmidi_type_dylibloader_wrapper_asound)( snd_rawmidi_t*); +snd_rawmidi_stream_t (*snd_rawmidi_stream_dylibloader_wrapper_asound)( snd_rawmidi_t*); +int (*snd_timer_query_open_dylibloader_wrapper_asound)( snd_timer_query_t**,const char*, int); +int (*snd_timer_query_open_lconf_dylibloader_wrapper_asound)( snd_timer_query_t**,const char*, int, snd_config_t*); +int (*snd_timer_query_close_dylibloader_wrapper_asound)( snd_timer_query_t*); +int (*snd_timer_query_next_device_dylibloader_wrapper_asound)( snd_timer_query_t*, snd_timer_id_t*); +int (*snd_timer_query_info_dylibloader_wrapper_asound)( snd_timer_query_t*, snd_timer_ginfo_t*); +int (*snd_timer_query_params_dylibloader_wrapper_asound)( snd_timer_query_t*, snd_timer_gparams_t*); +int (*snd_timer_query_status_dylibloader_wrapper_asound)( snd_timer_query_t*, snd_timer_gstatus_t*); +int (*snd_timer_open_dylibloader_wrapper_asound)( snd_timer_t**,const char*, int); +int (*snd_timer_open_lconf_dylibloader_wrapper_asound)( snd_timer_t**,const char*, int, snd_config_t*); +int (*snd_timer_close_dylibloader_wrapper_asound)( snd_timer_t*); +int (*snd_async_add_timer_handler_dylibloader_wrapper_asound)( snd_async_handler_t**, snd_timer_t*, snd_async_callback_t, void*); +snd_timer_t* (*snd_async_handler_get_timer_dylibloader_wrapper_asound)( snd_async_handler_t*); +int (*snd_timer_poll_descriptors_count_dylibloader_wrapper_asound)( snd_timer_t*); +int (*snd_timer_poll_descriptors_dylibloader_wrapper_asound)( snd_timer_t*,struct pollfd*, unsigned int); +int (*snd_timer_poll_descriptors_revents_dylibloader_wrapper_asound)( snd_timer_t*,struct pollfd*, unsigned int, unsigned short*); +int (*snd_timer_info_dylibloader_wrapper_asound)( snd_timer_t*, snd_timer_info_t*); +int (*snd_timer_params_dylibloader_wrapper_asound)( snd_timer_t*, snd_timer_params_t*); +int (*snd_timer_status_dylibloader_wrapper_asound)( snd_timer_t*, snd_timer_status_t*); +int (*snd_timer_start_dylibloader_wrapper_asound)( snd_timer_t*); +int (*snd_timer_stop_dylibloader_wrapper_asound)( snd_timer_t*); +int (*snd_timer_continue_dylibloader_wrapper_asound)( snd_timer_t*); +ssize_t (*snd_timer_read_dylibloader_wrapper_asound)( snd_timer_t*, void*, size_t); +size_t (*snd_timer_id_sizeof_dylibloader_wrapper_asound)( void); +int (*snd_timer_id_malloc_dylibloader_wrapper_asound)( snd_timer_id_t**); +void (*snd_timer_id_free_dylibloader_wrapper_asound)( snd_timer_id_t*); +void (*snd_timer_id_copy_dylibloader_wrapper_asound)( snd_timer_id_t*,const snd_timer_id_t*); +void (*snd_timer_id_set_class_dylibloader_wrapper_asound)( snd_timer_id_t*, int); +int (*snd_timer_id_get_class_dylibloader_wrapper_asound)( snd_timer_id_t*); +void (*snd_timer_id_set_sclass_dylibloader_wrapper_asound)( snd_timer_id_t*, int); +int (*snd_timer_id_get_sclass_dylibloader_wrapper_asound)( snd_timer_id_t*); +void (*snd_timer_id_set_card_dylibloader_wrapper_asound)( snd_timer_id_t*, int); +int (*snd_timer_id_get_card_dylibloader_wrapper_asound)( snd_timer_id_t*); +void (*snd_timer_id_set_device_dylibloader_wrapper_asound)( snd_timer_id_t*, int); +int (*snd_timer_id_get_device_dylibloader_wrapper_asound)( snd_timer_id_t*); +void (*snd_timer_id_set_subdevice_dylibloader_wrapper_asound)( snd_timer_id_t*, int); +int (*snd_timer_id_get_subdevice_dylibloader_wrapper_asound)( snd_timer_id_t*); +size_t (*snd_timer_ginfo_sizeof_dylibloader_wrapper_asound)( void); +int (*snd_timer_ginfo_malloc_dylibloader_wrapper_asound)( snd_timer_ginfo_t**); +void (*snd_timer_ginfo_free_dylibloader_wrapper_asound)( snd_timer_ginfo_t*); +void (*snd_timer_ginfo_copy_dylibloader_wrapper_asound)( snd_timer_ginfo_t*,const snd_timer_ginfo_t*); +int (*snd_timer_ginfo_set_tid_dylibloader_wrapper_asound)( snd_timer_ginfo_t*, snd_timer_id_t*); +snd_timer_id_t* (*snd_timer_ginfo_get_tid_dylibloader_wrapper_asound)( snd_timer_ginfo_t*); +unsigned int (*snd_timer_ginfo_get_flags_dylibloader_wrapper_asound)( snd_timer_ginfo_t*); +int (*snd_timer_ginfo_get_card_dylibloader_wrapper_asound)( snd_timer_ginfo_t*); +char* (*snd_timer_ginfo_get_id_dylibloader_wrapper_asound)( snd_timer_ginfo_t*); +char* (*snd_timer_ginfo_get_name_dylibloader_wrapper_asound)( snd_timer_ginfo_t*); +unsigned long (*snd_timer_ginfo_get_resolution_dylibloader_wrapper_asound)( snd_timer_ginfo_t*); +unsigned long (*snd_timer_ginfo_get_resolution_min_dylibloader_wrapper_asound)( snd_timer_ginfo_t*); +unsigned long (*snd_timer_ginfo_get_resolution_max_dylibloader_wrapper_asound)( snd_timer_ginfo_t*); +unsigned int (*snd_timer_ginfo_get_clients_dylibloader_wrapper_asound)( snd_timer_ginfo_t*); +size_t (*snd_timer_info_sizeof_dylibloader_wrapper_asound)( void); +int (*snd_timer_info_malloc_dylibloader_wrapper_asound)( snd_timer_info_t**); +void (*snd_timer_info_free_dylibloader_wrapper_asound)( snd_timer_info_t*); +void (*snd_timer_info_copy_dylibloader_wrapper_asound)( snd_timer_info_t*,const snd_timer_info_t*); +int (*snd_timer_info_is_slave_dylibloader_wrapper_asound)( snd_timer_info_t*); +int (*snd_timer_info_get_card_dylibloader_wrapper_asound)( snd_timer_info_t*); +const char* (*snd_timer_info_get_id_dylibloader_wrapper_asound)( snd_timer_info_t*); +const char* (*snd_timer_info_get_name_dylibloader_wrapper_asound)( snd_timer_info_t*); +long (*snd_timer_info_get_resolution_dylibloader_wrapper_asound)( snd_timer_info_t*); +size_t (*snd_timer_params_sizeof_dylibloader_wrapper_asound)( void); +int (*snd_timer_params_malloc_dylibloader_wrapper_asound)( snd_timer_params_t**); +void (*snd_timer_params_free_dylibloader_wrapper_asound)( snd_timer_params_t*); +void (*snd_timer_params_copy_dylibloader_wrapper_asound)( snd_timer_params_t*,const snd_timer_params_t*); +int (*snd_timer_params_set_auto_start_dylibloader_wrapper_asound)( snd_timer_params_t*, int); +int (*snd_timer_params_get_auto_start_dylibloader_wrapper_asound)( snd_timer_params_t*); +int (*snd_timer_params_set_exclusive_dylibloader_wrapper_asound)( snd_timer_params_t*, int); +int (*snd_timer_params_get_exclusive_dylibloader_wrapper_asound)( snd_timer_params_t*); +int (*snd_timer_params_set_early_event_dylibloader_wrapper_asound)( snd_timer_params_t*, int); +int (*snd_timer_params_get_early_event_dylibloader_wrapper_asound)( snd_timer_params_t*); +void (*snd_timer_params_set_ticks_dylibloader_wrapper_asound)( snd_timer_params_t*, long); +long (*snd_timer_params_get_ticks_dylibloader_wrapper_asound)( snd_timer_params_t*); +void (*snd_timer_params_set_queue_size_dylibloader_wrapper_asound)( snd_timer_params_t*, long); +long (*snd_timer_params_get_queue_size_dylibloader_wrapper_asound)( snd_timer_params_t*); +void (*snd_timer_params_set_filter_dylibloader_wrapper_asound)( snd_timer_params_t*, unsigned int); +unsigned int (*snd_timer_params_get_filter_dylibloader_wrapper_asound)( snd_timer_params_t*); +size_t (*snd_timer_status_sizeof_dylibloader_wrapper_asound)( void); +int (*snd_timer_status_malloc_dylibloader_wrapper_asound)( snd_timer_status_t**); +void (*snd_timer_status_free_dylibloader_wrapper_asound)( snd_timer_status_t*); +void (*snd_timer_status_copy_dylibloader_wrapper_asound)( snd_timer_status_t*,const snd_timer_status_t*); +snd_htimestamp_t (*snd_timer_status_get_timestamp_dylibloader_wrapper_asound)( snd_timer_status_t*); +long (*snd_timer_status_get_resolution_dylibloader_wrapper_asound)( snd_timer_status_t*); +long (*snd_timer_status_get_lost_dylibloader_wrapper_asound)( snd_timer_status_t*); +long (*snd_timer_status_get_overrun_dylibloader_wrapper_asound)( snd_timer_status_t*); +long (*snd_timer_status_get_queue_dylibloader_wrapper_asound)( snd_timer_status_t*); +long (*snd_timer_info_get_ticks_dylibloader_wrapper_asound)( snd_timer_info_t*); +int (*snd_hwdep_open_dylibloader_wrapper_asound)( snd_hwdep_t**,const char*, int); +int (*snd_hwdep_close_dylibloader_wrapper_asound)( snd_hwdep_t*); +int (*snd_hwdep_poll_descriptors_dylibloader_wrapper_asound)( snd_hwdep_t*,struct pollfd*, unsigned int); +int (*snd_hwdep_poll_descriptors_count_dylibloader_wrapper_asound)( snd_hwdep_t*); +int (*snd_hwdep_poll_descriptors_revents_dylibloader_wrapper_asound)( snd_hwdep_t*,struct pollfd*, unsigned int, unsigned short*); +int (*snd_hwdep_nonblock_dylibloader_wrapper_asound)( snd_hwdep_t*, int); +int (*snd_hwdep_info_dylibloader_wrapper_asound)( snd_hwdep_t*, snd_hwdep_info_t*); +int (*snd_hwdep_dsp_status_dylibloader_wrapper_asound)( snd_hwdep_t*, snd_hwdep_dsp_status_t*); +int (*snd_hwdep_dsp_load_dylibloader_wrapper_asound)( snd_hwdep_t*, snd_hwdep_dsp_image_t*); +int (*snd_hwdep_ioctl_dylibloader_wrapper_asound)( snd_hwdep_t*, unsigned int, void*); +ssize_t (*snd_hwdep_write_dylibloader_wrapper_asound)( snd_hwdep_t*,const void*, size_t); +ssize_t (*snd_hwdep_read_dylibloader_wrapper_asound)( snd_hwdep_t*, void*, size_t); +size_t (*snd_hwdep_info_sizeof_dylibloader_wrapper_asound)( void); +int (*snd_hwdep_info_malloc_dylibloader_wrapper_asound)( snd_hwdep_info_t**); +void (*snd_hwdep_info_free_dylibloader_wrapper_asound)( snd_hwdep_info_t*); +void (*snd_hwdep_info_copy_dylibloader_wrapper_asound)( snd_hwdep_info_t*,const snd_hwdep_info_t*); +unsigned int (*snd_hwdep_info_get_device_dylibloader_wrapper_asound)(const snd_hwdep_info_t*); +int (*snd_hwdep_info_get_card_dylibloader_wrapper_asound)(const snd_hwdep_info_t*); +const char* (*snd_hwdep_info_get_id_dylibloader_wrapper_asound)(const snd_hwdep_info_t*); +const char* (*snd_hwdep_info_get_name_dylibloader_wrapper_asound)(const snd_hwdep_info_t*); +snd_hwdep_iface_t (*snd_hwdep_info_get_iface_dylibloader_wrapper_asound)(const snd_hwdep_info_t*); +void (*snd_hwdep_info_set_device_dylibloader_wrapper_asound)( snd_hwdep_info_t*, unsigned int); +size_t (*snd_hwdep_dsp_status_sizeof_dylibloader_wrapper_asound)( void); +int (*snd_hwdep_dsp_status_malloc_dylibloader_wrapper_asound)( snd_hwdep_dsp_status_t**); +void (*snd_hwdep_dsp_status_free_dylibloader_wrapper_asound)( snd_hwdep_dsp_status_t*); +void (*snd_hwdep_dsp_status_copy_dylibloader_wrapper_asound)( snd_hwdep_dsp_status_t*,const snd_hwdep_dsp_status_t*); +unsigned int (*snd_hwdep_dsp_status_get_version_dylibloader_wrapper_asound)(const snd_hwdep_dsp_status_t*); +const char* (*snd_hwdep_dsp_status_get_id_dylibloader_wrapper_asound)(const snd_hwdep_dsp_status_t*); +unsigned int (*snd_hwdep_dsp_status_get_num_dsps_dylibloader_wrapper_asound)(const snd_hwdep_dsp_status_t*); +unsigned int (*snd_hwdep_dsp_status_get_dsp_loaded_dylibloader_wrapper_asound)(const snd_hwdep_dsp_status_t*); +unsigned int (*snd_hwdep_dsp_status_get_chip_ready_dylibloader_wrapper_asound)(const snd_hwdep_dsp_status_t*); +size_t (*snd_hwdep_dsp_image_sizeof_dylibloader_wrapper_asound)( void); +int (*snd_hwdep_dsp_image_malloc_dylibloader_wrapper_asound)( snd_hwdep_dsp_image_t**); +void (*snd_hwdep_dsp_image_free_dylibloader_wrapper_asound)( snd_hwdep_dsp_image_t*); +void (*snd_hwdep_dsp_image_copy_dylibloader_wrapper_asound)( snd_hwdep_dsp_image_t*,const snd_hwdep_dsp_image_t*); +unsigned int (*snd_hwdep_dsp_image_get_index_dylibloader_wrapper_asound)(const snd_hwdep_dsp_image_t*); +const char* (*snd_hwdep_dsp_image_get_name_dylibloader_wrapper_asound)(const snd_hwdep_dsp_image_t*); +const void* (*snd_hwdep_dsp_image_get_image_dylibloader_wrapper_asound)(const snd_hwdep_dsp_image_t*); +size_t (*snd_hwdep_dsp_image_get_length_dylibloader_wrapper_asound)(const snd_hwdep_dsp_image_t*); +void (*snd_hwdep_dsp_image_set_index_dylibloader_wrapper_asound)( snd_hwdep_dsp_image_t*, unsigned int); +void (*snd_hwdep_dsp_image_set_name_dylibloader_wrapper_asound)( snd_hwdep_dsp_image_t*,const char*); +void (*snd_hwdep_dsp_image_set_image_dylibloader_wrapper_asound)( snd_hwdep_dsp_image_t*, void*); +void (*snd_hwdep_dsp_image_set_length_dylibloader_wrapper_asound)( snd_hwdep_dsp_image_t*, size_t); +int (*snd_card_load_dylibloader_wrapper_asound)( int); +int (*snd_card_next_dylibloader_wrapper_asound)( int*); +int (*snd_card_get_index_dylibloader_wrapper_asound)(const char*); +int (*snd_card_get_name_dylibloader_wrapper_asound)( int, char**); +int (*snd_card_get_longname_dylibloader_wrapper_asound)( int, char**); +int (*snd_device_name_hint_dylibloader_wrapper_asound)( int,const char*, void***); +int (*snd_device_name_free_hint_dylibloader_wrapper_asound)( void**); +char* (*snd_device_name_get_hint_dylibloader_wrapper_asound)(const void*,const char*); +int (*snd_ctl_open_dylibloader_wrapper_asound)( snd_ctl_t**,const char*, int); +int (*snd_ctl_open_lconf_dylibloader_wrapper_asound)( snd_ctl_t**,const char*, int, snd_config_t*); +int (*snd_ctl_open_fallback_dylibloader_wrapper_asound)( snd_ctl_t**, snd_config_t*,const char*,const char*, int); +int (*snd_ctl_close_dylibloader_wrapper_asound)( snd_ctl_t*); +int (*snd_ctl_nonblock_dylibloader_wrapper_asound)( snd_ctl_t*, int); +int (*snd_async_add_ctl_handler_dylibloader_wrapper_asound)( snd_async_handler_t**, snd_ctl_t*, snd_async_callback_t, void*); +snd_ctl_t* (*snd_async_handler_get_ctl_dylibloader_wrapper_asound)( snd_async_handler_t*); +int (*snd_ctl_poll_descriptors_count_dylibloader_wrapper_asound)( snd_ctl_t*); +int (*snd_ctl_poll_descriptors_dylibloader_wrapper_asound)( snd_ctl_t*,struct pollfd*, unsigned int); +int (*snd_ctl_poll_descriptors_revents_dylibloader_wrapper_asound)( snd_ctl_t*,struct pollfd*, unsigned int, unsigned short*); +int (*snd_ctl_subscribe_events_dylibloader_wrapper_asound)( snd_ctl_t*, int); +int (*snd_ctl_card_info_dylibloader_wrapper_asound)( snd_ctl_t*, snd_ctl_card_info_t*); +int (*snd_ctl_elem_list_dylibloader_wrapper_asound)( snd_ctl_t*, snd_ctl_elem_list_t*); +int (*snd_ctl_elem_info_dylibloader_wrapper_asound)( snd_ctl_t*, snd_ctl_elem_info_t*); +int (*snd_ctl_elem_read_dylibloader_wrapper_asound)( snd_ctl_t*, snd_ctl_elem_value_t*); +int (*snd_ctl_elem_write_dylibloader_wrapper_asound)( snd_ctl_t*, snd_ctl_elem_value_t*); +int (*snd_ctl_elem_lock_dylibloader_wrapper_asound)( snd_ctl_t*, snd_ctl_elem_id_t*); +int (*snd_ctl_elem_unlock_dylibloader_wrapper_asound)( snd_ctl_t*, snd_ctl_elem_id_t*); +int (*snd_ctl_elem_tlv_read_dylibloader_wrapper_asound)( snd_ctl_t*,const snd_ctl_elem_id_t*, unsigned int*, unsigned int); +int (*snd_ctl_elem_tlv_write_dylibloader_wrapper_asound)( snd_ctl_t*,const snd_ctl_elem_id_t*,const unsigned int*); +int (*snd_ctl_elem_tlv_command_dylibloader_wrapper_asound)( snd_ctl_t*,const snd_ctl_elem_id_t*,const unsigned int*); +int (*snd_ctl_hwdep_next_device_dylibloader_wrapper_asound)( snd_ctl_t*, int*); +int (*snd_ctl_hwdep_info_dylibloader_wrapper_asound)( snd_ctl_t*, snd_hwdep_info_t*); +int (*snd_ctl_pcm_next_device_dylibloader_wrapper_asound)( snd_ctl_t*, int*); +int (*snd_ctl_pcm_info_dylibloader_wrapper_asound)( snd_ctl_t*, snd_pcm_info_t*); +int (*snd_ctl_pcm_prefer_subdevice_dylibloader_wrapper_asound)( snd_ctl_t*, int); +int (*snd_ctl_rawmidi_next_device_dylibloader_wrapper_asound)( snd_ctl_t*, int*); +int (*snd_ctl_rawmidi_info_dylibloader_wrapper_asound)( snd_ctl_t*, snd_rawmidi_info_t*); +int (*snd_ctl_rawmidi_prefer_subdevice_dylibloader_wrapper_asound)( snd_ctl_t*, int); +int (*snd_ctl_set_power_state_dylibloader_wrapper_asound)( snd_ctl_t*, unsigned int); +int (*snd_ctl_get_power_state_dylibloader_wrapper_asound)( snd_ctl_t*, unsigned int*); +int (*snd_ctl_read_dylibloader_wrapper_asound)( snd_ctl_t*, snd_ctl_event_t*); +int (*snd_ctl_wait_dylibloader_wrapper_asound)( snd_ctl_t*, int); +const char* (*snd_ctl_name_dylibloader_wrapper_asound)( snd_ctl_t*); +snd_ctl_type_t (*snd_ctl_type_dylibloader_wrapper_asound)( snd_ctl_t*); +const char* (*snd_ctl_elem_type_name_dylibloader_wrapper_asound)( snd_ctl_elem_type_t); +const char* (*snd_ctl_elem_iface_name_dylibloader_wrapper_asound)( snd_ctl_elem_iface_t); +const char* (*snd_ctl_event_type_name_dylibloader_wrapper_asound)( snd_ctl_event_type_t); +unsigned int (*snd_ctl_event_elem_get_mask_dylibloader_wrapper_asound)(const snd_ctl_event_t*); +unsigned int (*snd_ctl_event_elem_get_numid_dylibloader_wrapper_asound)(const snd_ctl_event_t*); +void (*snd_ctl_event_elem_get_id_dylibloader_wrapper_asound)(const snd_ctl_event_t*, snd_ctl_elem_id_t*); +snd_ctl_elem_iface_t (*snd_ctl_event_elem_get_interface_dylibloader_wrapper_asound)(const snd_ctl_event_t*); +unsigned int (*snd_ctl_event_elem_get_device_dylibloader_wrapper_asound)(const snd_ctl_event_t*); +unsigned int (*snd_ctl_event_elem_get_subdevice_dylibloader_wrapper_asound)(const snd_ctl_event_t*); +const char* (*snd_ctl_event_elem_get_name_dylibloader_wrapper_asound)(const snd_ctl_event_t*); +unsigned int (*snd_ctl_event_elem_get_index_dylibloader_wrapper_asound)(const snd_ctl_event_t*); +int (*snd_ctl_elem_list_alloc_space_dylibloader_wrapper_asound)( snd_ctl_elem_list_t*, unsigned int); +void (*snd_ctl_elem_list_free_space_dylibloader_wrapper_asound)( snd_ctl_elem_list_t*); +char* (*snd_ctl_ascii_elem_id_get_dylibloader_wrapper_asound)( snd_ctl_elem_id_t*); +int (*snd_ctl_ascii_elem_id_parse_dylibloader_wrapper_asound)( snd_ctl_elem_id_t*,const char*); +int (*snd_ctl_ascii_value_parse_dylibloader_wrapper_asound)( snd_ctl_t*, snd_ctl_elem_value_t*, snd_ctl_elem_info_t*,const char*); +size_t (*snd_ctl_elem_id_sizeof_dylibloader_wrapper_asound)( void); +int (*snd_ctl_elem_id_malloc_dylibloader_wrapper_asound)( snd_ctl_elem_id_t**); +void (*snd_ctl_elem_id_free_dylibloader_wrapper_asound)( snd_ctl_elem_id_t*); +void (*snd_ctl_elem_id_clear_dylibloader_wrapper_asound)( snd_ctl_elem_id_t*); +void (*snd_ctl_elem_id_copy_dylibloader_wrapper_asound)( snd_ctl_elem_id_t*,const snd_ctl_elem_id_t*); +unsigned int (*snd_ctl_elem_id_get_numid_dylibloader_wrapper_asound)(const snd_ctl_elem_id_t*); +snd_ctl_elem_iface_t (*snd_ctl_elem_id_get_interface_dylibloader_wrapper_asound)(const snd_ctl_elem_id_t*); +unsigned int (*snd_ctl_elem_id_get_device_dylibloader_wrapper_asound)(const snd_ctl_elem_id_t*); +unsigned int (*snd_ctl_elem_id_get_subdevice_dylibloader_wrapper_asound)(const snd_ctl_elem_id_t*); +const char* (*snd_ctl_elem_id_get_name_dylibloader_wrapper_asound)(const snd_ctl_elem_id_t*); +unsigned int (*snd_ctl_elem_id_get_index_dylibloader_wrapper_asound)(const snd_ctl_elem_id_t*); +void (*snd_ctl_elem_id_set_numid_dylibloader_wrapper_asound)( snd_ctl_elem_id_t*, unsigned int); +void (*snd_ctl_elem_id_set_interface_dylibloader_wrapper_asound)( snd_ctl_elem_id_t*, snd_ctl_elem_iface_t); +void (*snd_ctl_elem_id_set_device_dylibloader_wrapper_asound)( snd_ctl_elem_id_t*, unsigned int); +void (*snd_ctl_elem_id_set_subdevice_dylibloader_wrapper_asound)( snd_ctl_elem_id_t*, unsigned int); +void (*snd_ctl_elem_id_set_name_dylibloader_wrapper_asound)( snd_ctl_elem_id_t*,const char*); +void (*snd_ctl_elem_id_set_index_dylibloader_wrapper_asound)( snd_ctl_elem_id_t*, unsigned int); +size_t (*snd_ctl_card_info_sizeof_dylibloader_wrapper_asound)( void); +int (*snd_ctl_card_info_malloc_dylibloader_wrapper_asound)( snd_ctl_card_info_t**); +void (*snd_ctl_card_info_free_dylibloader_wrapper_asound)( snd_ctl_card_info_t*); +void (*snd_ctl_card_info_clear_dylibloader_wrapper_asound)( snd_ctl_card_info_t*); +void (*snd_ctl_card_info_copy_dylibloader_wrapper_asound)( snd_ctl_card_info_t*,const snd_ctl_card_info_t*); +int (*snd_ctl_card_info_get_card_dylibloader_wrapper_asound)(const snd_ctl_card_info_t*); +const char* (*snd_ctl_card_info_get_id_dylibloader_wrapper_asound)(const snd_ctl_card_info_t*); +const char* (*snd_ctl_card_info_get_driver_dylibloader_wrapper_asound)(const snd_ctl_card_info_t*); +const char* (*snd_ctl_card_info_get_name_dylibloader_wrapper_asound)(const snd_ctl_card_info_t*); +const char* (*snd_ctl_card_info_get_longname_dylibloader_wrapper_asound)(const snd_ctl_card_info_t*); +const char* (*snd_ctl_card_info_get_mixername_dylibloader_wrapper_asound)(const snd_ctl_card_info_t*); +const char* (*snd_ctl_card_info_get_components_dylibloader_wrapper_asound)(const snd_ctl_card_info_t*); +size_t (*snd_ctl_event_sizeof_dylibloader_wrapper_asound)( void); +int (*snd_ctl_event_malloc_dylibloader_wrapper_asound)( snd_ctl_event_t**); +void (*snd_ctl_event_free_dylibloader_wrapper_asound)( snd_ctl_event_t*); +void (*snd_ctl_event_clear_dylibloader_wrapper_asound)( snd_ctl_event_t*); +void (*snd_ctl_event_copy_dylibloader_wrapper_asound)( snd_ctl_event_t*,const snd_ctl_event_t*); +snd_ctl_event_type_t (*snd_ctl_event_get_type_dylibloader_wrapper_asound)(const snd_ctl_event_t*); +size_t (*snd_ctl_elem_list_sizeof_dylibloader_wrapper_asound)( void); +int (*snd_ctl_elem_list_malloc_dylibloader_wrapper_asound)( snd_ctl_elem_list_t**); +void (*snd_ctl_elem_list_free_dylibloader_wrapper_asound)( snd_ctl_elem_list_t*); +void (*snd_ctl_elem_list_clear_dylibloader_wrapper_asound)( snd_ctl_elem_list_t*); +void (*snd_ctl_elem_list_copy_dylibloader_wrapper_asound)( snd_ctl_elem_list_t*,const snd_ctl_elem_list_t*); +void (*snd_ctl_elem_list_set_offset_dylibloader_wrapper_asound)( snd_ctl_elem_list_t*, unsigned int); +unsigned int (*snd_ctl_elem_list_get_used_dylibloader_wrapper_asound)(const snd_ctl_elem_list_t*); +unsigned int (*snd_ctl_elem_list_get_count_dylibloader_wrapper_asound)(const snd_ctl_elem_list_t*); +void (*snd_ctl_elem_list_get_id_dylibloader_wrapper_asound)(const snd_ctl_elem_list_t*, unsigned int, snd_ctl_elem_id_t*); +unsigned int (*snd_ctl_elem_list_get_numid_dylibloader_wrapper_asound)(const snd_ctl_elem_list_t*, unsigned int); +snd_ctl_elem_iface_t (*snd_ctl_elem_list_get_interface_dylibloader_wrapper_asound)(const snd_ctl_elem_list_t*, unsigned int); +unsigned int (*snd_ctl_elem_list_get_device_dylibloader_wrapper_asound)(const snd_ctl_elem_list_t*, unsigned int); +unsigned int (*snd_ctl_elem_list_get_subdevice_dylibloader_wrapper_asound)(const snd_ctl_elem_list_t*, unsigned int); +const char* (*snd_ctl_elem_list_get_name_dylibloader_wrapper_asound)(const snd_ctl_elem_list_t*, unsigned int); +unsigned int (*snd_ctl_elem_list_get_index_dylibloader_wrapper_asound)(const snd_ctl_elem_list_t*, unsigned int); +size_t (*snd_ctl_elem_info_sizeof_dylibloader_wrapper_asound)( void); +int (*snd_ctl_elem_info_malloc_dylibloader_wrapper_asound)( snd_ctl_elem_info_t**); +void (*snd_ctl_elem_info_free_dylibloader_wrapper_asound)( snd_ctl_elem_info_t*); +void (*snd_ctl_elem_info_clear_dylibloader_wrapper_asound)( snd_ctl_elem_info_t*); +void (*snd_ctl_elem_info_copy_dylibloader_wrapper_asound)( snd_ctl_elem_info_t*,const snd_ctl_elem_info_t*); +snd_ctl_elem_type_t (*snd_ctl_elem_info_get_type_dylibloader_wrapper_asound)(const snd_ctl_elem_info_t*); +int (*snd_ctl_elem_info_is_readable_dylibloader_wrapper_asound)(const snd_ctl_elem_info_t*); +int (*snd_ctl_elem_info_is_writable_dylibloader_wrapper_asound)(const snd_ctl_elem_info_t*); +int (*snd_ctl_elem_info_is_volatile_dylibloader_wrapper_asound)(const snd_ctl_elem_info_t*); +int (*snd_ctl_elem_info_is_inactive_dylibloader_wrapper_asound)(const snd_ctl_elem_info_t*); +int (*snd_ctl_elem_info_is_locked_dylibloader_wrapper_asound)(const snd_ctl_elem_info_t*); +int (*snd_ctl_elem_info_is_tlv_readable_dylibloader_wrapper_asound)(const snd_ctl_elem_info_t*); +int (*snd_ctl_elem_info_is_tlv_writable_dylibloader_wrapper_asound)(const snd_ctl_elem_info_t*); +int (*snd_ctl_elem_info_is_tlv_commandable_dylibloader_wrapper_asound)(const snd_ctl_elem_info_t*); +int (*snd_ctl_elem_info_is_owner_dylibloader_wrapper_asound)(const snd_ctl_elem_info_t*); +int (*snd_ctl_elem_info_is_user_dylibloader_wrapper_asound)(const snd_ctl_elem_info_t*); +pid_t (*snd_ctl_elem_info_get_owner_dylibloader_wrapper_asound)(const snd_ctl_elem_info_t*); +unsigned int (*snd_ctl_elem_info_get_count_dylibloader_wrapper_asound)(const snd_ctl_elem_info_t*); +long (*snd_ctl_elem_info_get_min_dylibloader_wrapper_asound)(const snd_ctl_elem_info_t*); +long (*snd_ctl_elem_info_get_max_dylibloader_wrapper_asound)(const snd_ctl_elem_info_t*); +long (*snd_ctl_elem_info_get_step_dylibloader_wrapper_asound)(const snd_ctl_elem_info_t*); +long long (*snd_ctl_elem_info_get_min64_dylibloader_wrapper_asound)(const snd_ctl_elem_info_t*); +long long (*snd_ctl_elem_info_get_max64_dylibloader_wrapper_asound)(const snd_ctl_elem_info_t*); +long long (*snd_ctl_elem_info_get_step64_dylibloader_wrapper_asound)(const snd_ctl_elem_info_t*); +unsigned int (*snd_ctl_elem_info_get_items_dylibloader_wrapper_asound)(const snd_ctl_elem_info_t*); +void (*snd_ctl_elem_info_set_item_dylibloader_wrapper_asound)( snd_ctl_elem_info_t*, unsigned int); +const char* (*snd_ctl_elem_info_get_item_name_dylibloader_wrapper_asound)(const snd_ctl_elem_info_t*); +int (*snd_ctl_elem_info_get_dimensions_dylibloader_wrapper_asound)(const snd_ctl_elem_info_t*); +int (*snd_ctl_elem_info_get_dimension_dylibloader_wrapper_asound)(const snd_ctl_elem_info_t*, unsigned int); +int (*snd_ctl_elem_info_set_dimension_dylibloader_wrapper_asound)( snd_ctl_elem_info_t*,const int [4]); +void (*snd_ctl_elem_info_get_id_dylibloader_wrapper_asound)(const snd_ctl_elem_info_t*, snd_ctl_elem_id_t*); +unsigned int (*snd_ctl_elem_info_get_numid_dylibloader_wrapper_asound)(const snd_ctl_elem_info_t*); +snd_ctl_elem_iface_t (*snd_ctl_elem_info_get_interface_dylibloader_wrapper_asound)(const snd_ctl_elem_info_t*); +unsigned int (*snd_ctl_elem_info_get_device_dylibloader_wrapper_asound)(const snd_ctl_elem_info_t*); +unsigned int (*snd_ctl_elem_info_get_subdevice_dylibloader_wrapper_asound)(const snd_ctl_elem_info_t*); +const char* (*snd_ctl_elem_info_get_name_dylibloader_wrapper_asound)(const snd_ctl_elem_info_t*); +unsigned int (*snd_ctl_elem_info_get_index_dylibloader_wrapper_asound)(const snd_ctl_elem_info_t*); +void (*snd_ctl_elem_info_set_id_dylibloader_wrapper_asound)( snd_ctl_elem_info_t*,const snd_ctl_elem_id_t*); +void (*snd_ctl_elem_info_set_numid_dylibloader_wrapper_asound)( snd_ctl_elem_info_t*, unsigned int); +void (*snd_ctl_elem_info_set_interface_dylibloader_wrapper_asound)( snd_ctl_elem_info_t*, snd_ctl_elem_iface_t); +void (*snd_ctl_elem_info_set_device_dylibloader_wrapper_asound)( snd_ctl_elem_info_t*, unsigned int); +void (*snd_ctl_elem_info_set_subdevice_dylibloader_wrapper_asound)( snd_ctl_elem_info_t*, unsigned int); +void (*snd_ctl_elem_info_set_name_dylibloader_wrapper_asound)( snd_ctl_elem_info_t*,const char*); +void (*snd_ctl_elem_info_set_index_dylibloader_wrapper_asound)( snd_ctl_elem_info_t*, unsigned int); +int (*snd_ctl_add_integer_elem_set_dylibloader_wrapper_asound)( snd_ctl_t*, snd_ctl_elem_info_t*, unsigned int, unsigned int, long, long, long); +int (*snd_ctl_add_integer64_elem_set_dylibloader_wrapper_asound)( snd_ctl_t*, snd_ctl_elem_info_t*, unsigned int, unsigned int, long long, long long, long long); +int (*snd_ctl_add_boolean_elem_set_dylibloader_wrapper_asound)( snd_ctl_t*, snd_ctl_elem_info_t*, unsigned int, unsigned int); +int (*snd_ctl_add_enumerated_elem_set_dylibloader_wrapper_asound)( snd_ctl_t*, snd_ctl_elem_info_t*, unsigned int, unsigned int, unsigned int,const char* []); +int (*snd_ctl_add_bytes_elem_set_dylibloader_wrapper_asound)( snd_ctl_t*, snd_ctl_elem_info_t*, unsigned int, unsigned int); +int (*snd_ctl_elem_add_integer_dylibloader_wrapper_asound)( snd_ctl_t*,const snd_ctl_elem_id_t*, unsigned int, long, long, long); +int (*snd_ctl_elem_add_integer64_dylibloader_wrapper_asound)( snd_ctl_t*,const snd_ctl_elem_id_t*, unsigned int, long long, long long, long long); +int (*snd_ctl_elem_add_boolean_dylibloader_wrapper_asound)( snd_ctl_t*,const snd_ctl_elem_id_t*, unsigned int); +int (*snd_ctl_elem_add_enumerated_dylibloader_wrapper_asound)( snd_ctl_t*,const snd_ctl_elem_id_t*, unsigned int, unsigned int,const char* []); +int (*snd_ctl_elem_add_iec958_dylibloader_wrapper_asound)( snd_ctl_t*,const snd_ctl_elem_id_t*); +int (*snd_ctl_elem_remove_dylibloader_wrapper_asound)( snd_ctl_t*, snd_ctl_elem_id_t*); +size_t (*snd_ctl_elem_value_sizeof_dylibloader_wrapper_asound)( void); +int (*snd_ctl_elem_value_malloc_dylibloader_wrapper_asound)( snd_ctl_elem_value_t**); +void (*snd_ctl_elem_value_free_dylibloader_wrapper_asound)( snd_ctl_elem_value_t*); +void (*snd_ctl_elem_value_clear_dylibloader_wrapper_asound)( snd_ctl_elem_value_t*); +void (*snd_ctl_elem_value_copy_dylibloader_wrapper_asound)( snd_ctl_elem_value_t*,const snd_ctl_elem_value_t*); +int (*snd_ctl_elem_value_compare_dylibloader_wrapper_asound)( snd_ctl_elem_value_t*,const snd_ctl_elem_value_t*); +void (*snd_ctl_elem_value_get_id_dylibloader_wrapper_asound)(const snd_ctl_elem_value_t*, snd_ctl_elem_id_t*); +unsigned int (*snd_ctl_elem_value_get_numid_dylibloader_wrapper_asound)(const snd_ctl_elem_value_t*); +snd_ctl_elem_iface_t (*snd_ctl_elem_value_get_interface_dylibloader_wrapper_asound)(const snd_ctl_elem_value_t*); +unsigned int (*snd_ctl_elem_value_get_device_dylibloader_wrapper_asound)(const snd_ctl_elem_value_t*); +unsigned int (*snd_ctl_elem_value_get_subdevice_dylibloader_wrapper_asound)(const snd_ctl_elem_value_t*); +const char* (*snd_ctl_elem_value_get_name_dylibloader_wrapper_asound)(const snd_ctl_elem_value_t*); +unsigned int (*snd_ctl_elem_value_get_index_dylibloader_wrapper_asound)(const snd_ctl_elem_value_t*); +void (*snd_ctl_elem_value_set_id_dylibloader_wrapper_asound)( snd_ctl_elem_value_t*,const snd_ctl_elem_id_t*); +void (*snd_ctl_elem_value_set_numid_dylibloader_wrapper_asound)( snd_ctl_elem_value_t*, unsigned int); +void (*snd_ctl_elem_value_set_interface_dylibloader_wrapper_asound)( snd_ctl_elem_value_t*, snd_ctl_elem_iface_t); +void (*snd_ctl_elem_value_set_device_dylibloader_wrapper_asound)( snd_ctl_elem_value_t*, unsigned int); +void (*snd_ctl_elem_value_set_subdevice_dylibloader_wrapper_asound)( snd_ctl_elem_value_t*, unsigned int); +void (*snd_ctl_elem_value_set_name_dylibloader_wrapper_asound)( snd_ctl_elem_value_t*,const char*); +void (*snd_ctl_elem_value_set_index_dylibloader_wrapper_asound)( snd_ctl_elem_value_t*, unsigned int); +int (*snd_ctl_elem_value_get_boolean_dylibloader_wrapper_asound)(const snd_ctl_elem_value_t*, unsigned int); +long (*snd_ctl_elem_value_get_integer_dylibloader_wrapper_asound)(const snd_ctl_elem_value_t*, unsigned int); +long long (*snd_ctl_elem_value_get_integer64_dylibloader_wrapper_asound)(const snd_ctl_elem_value_t*, unsigned int); +unsigned int (*snd_ctl_elem_value_get_enumerated_dylibloader_wrapper_asound)(const snd_ctl_elem_value_t*, unsigned int); +unsigned char (*snd_ctl_elem_value_get_byte_dylibloader_wrapper_asound)(const snd_ctl_elem_value_t*, unsigned int); +void (*snd_ctl_elem_value_set_boolean_dylibloader_wrapper_asound)( snd_ctl_elem_value_t*, unsigned int, long); +void (*snd_ctl_elem_value_set_integer_dylibloader_wrapper_asound)( snd_ctl_elem_value_t*, unsigned int, long); +void (*snd_ctl_elem_value_set_integer64_dylibloader_wrapper_asound)( snd_ctl_elem_value_t*, unsigned int, long long); +void (*snd_ctl_elem_value_set_enumerated_dylibloader_wrapper_asound)( snd_ctl_elem_value_t*, unsigned int, unsigned int); +void (*snd_ctl_elem_value_set_byte_dylibloader_wrapper_asound)( snd_ctl_elem_value_t*, unsigned int, unsigned char); +void (*snd_ctl_elem_set_bytes_dylibloader_wrapper_asound)( snd_ctl_elem_value_t*, void*, size_t); +const void* (*snd_ctl_elem_value_get_bytes_dylibloader_wrapper_asound)(const snd_ctl_elem_value_t*); +void (*snd_ctl_elem_value_get_iec958_dylibloader_wrapper_asound)(const snd_ctl_elem_value_t*, snd_aes_iec958_t*); +void (*snd_ctl_elem_value_set_iec958_dylibloader_wrapper_asound)( snd_ctl_elem_value_t*,const snd_aes_iec958_t*); +int (*snd_tlv_parse_dB_info_dylibloader_wrapper_asound)( unsigned int*, unsigned int, unsigned int**); +int (*snd_tlv_get_dB_range_dylibloader_wrapper_asound)( unsigned int*, long, long, long*, long*); +int (*snd_tlv_convert_to_dB_dylibloader_wrapper_asound)( unsigned int*, long, long, long, long*); +int (*snd_tlv_convert_from_dB_dylibloader_wrapper_asound)( unsigned int*, long, long, long, long*, int); +int (*snd_ctl_get_dB_range_dylibloader_wrapper_asound)( snd_ctl_t*,const snd_ctl_elem_id_t*, long*, long*); +int (*snd_ctl_convert_to_dB_dylibloader_wrapper_asound)( snd_ctl_t*,const snd_ctl_elem_id_t*, long, long*); +int (*snd_ctl_convert_from_dB_dylibloader_wrapper_asound)( snd_ctl_t*,const snd_ctl_elem_id_t*, long, long*, int); +int (*snd_hctl_compare_fast_dylibloader_wrapper_asound)(const snd_hctl_elem_t*,const snd_hctl_elem_t*); +int (*snd_hctl_open_dylibloader_wrapper_asound)( snd_hctl_t**,const char*, int); +int (*snd_hctl_open_ctl_dylibloader_wrapper_asound)( snd_hctl_t**, snd_ctl_t*); +int (*snd_hctl_close_dylibloader_wrapper_asound)( snd_hctl_t*); +int (*snd_hctl_nonblock_dylibloader_wrapper_asound)( snd_hctl_t*, int); +int (*snd_hctl_poll_descriptors_count_dylibloader_wrapper_asound)( snd_hctl_t*); +int (*snd_hctl_poll_descriptors_dylibloader_wrapper_asound)( snd_hctl_t*,struct pollfd*, unsigned int); +int (*snd_hctl_poll_descriptors_revents_dylibloader_wrapper_asound)( snd_hctl_t*,struct pollfd*, unsigned int, unsigned short*); +unsigned int (*snd_hctl_get_count_dylibloader_wrapper_asound)( snd_hctl_t*); +int (*snd_hctl_set_compare_dylibloader_wrapper_asound)( snd_hctl_t*, snd_hctl_compare_t); +snd_hctl_elem_t* (*snd_hctl_first_elem_dylibloader_wrapper_asound)( snd_hctl_t*); +snd_hctl_elem_t* (*snd_hctl_last_elem_dylibloader_wrapper_asound)( snd_hctl_t*); +snd_hctl_elem_t* (*snd_hctl_find_elem_dylibloader_wrapper_asound)( snd_hctl_t*,const snd_ctl_elem_id_t*); +void (*snd_hctl_set_callback_dylibloader_wrapper_asound)( snd_hctl_t*, snd_hctl_callback_t); +void (*snd_hctl_set_callback_private_dylibloader_wrapper_asound)( snd_hctl_t*, void*); +void* (*snd_hctl_get_callback_private_dylibloader_wrapper_asound)( snd_hctl_t*); +int (*snd_hctl_load_dylibloader_wrapper_asound)( snd_hctl_t*); +int (*snd_hctl_free_dylibloader_wrapper_asound)( snd_hctl_t*); +int (*snd_hctl_handle_events_dylibloader_wrapper_asound)( snd_hctl_t*); +const char* (*snd_hctl_name_dylibloader_wrapper_asound)( snd_hctl_t*); +int (*snd_hctl_wait_dylibloader_wrapper_asound)( snd_hctl_t*, int); +snd_ctl_t* (*snd_hctl_ctl_dylibloader_wrapper_asound)( snd_hctl_t*); +snd_hctl_elem_t* (*snd_hctl_elem_next_dylibloader_wrapper_asound)( snd_hctl_elem_t*); +snd_hctl_elem_t* (*snd_hctl_elem_prev_dylibloader_wrapper_asound)( snd_hctl_elem_t*); +int (*snd_hctl_elem_info_dylibloader_wrapper_asound)( snd_hctl_elem_t*, snd_ctl_elem_info_t*); +int (*snd_hctl_elem_read_dylibloader_wrapper_asound)( snd_hctl_elem_t*, snd_ctl_elem_value_t*); +int (*snd_hctl_elem_write_dylibloader_wrapper_asound)( snd_hctl_elem_t*, snd_ctl_elem_value_t*); +int (*snd_hctl_elem_tlv_read_dylibloader_wrapper_asound)( snd_hctl_elem_t*, unsigned int*, unsigned int); +int (*snd_hctl_elem_tlv_write_dylibloader_wrapper_asound)( snd_hctl_elem_t*,const unsigned int*); +int (*snd_hctl_elem_tlv_command_dylibloader_wrapper_asound)( snd_hctl_elem_t*,const unsigned int*); +snd_hctl_t* (*snd_hctl_elem_get_hctl_dylibloader_wrapper_asound)( snd_hctl_elem_t*); +void (*snd_hctl_elem_get_id_dylibloader_wrapper_asound)(const snd_hctl_elem_t*, snd_ctl_elem_id_t*); +unsigned int (*snd_hctl_elem_get_numid_dylibloader_wrapper_asound)(const snd_hctl_elem_t*); +snd_ctl_elem_iface_t (*snd_hctl_elem_get_interface_dylibloader_wrapper_asound)(const snd_hctl_elem_t*); +unsigned int (*snd_hctl_elem_get_device_dylibloader_wrapper_asound)(const snd_hctl_elem_t*); +unsigned int (*snd_hctl_elem_get_subdevice_dylibloader_wrapper_asound)(const snd_hctl_elem_t*); +const char* (*snd_hctl_elem_get_name_dylibloader_wrapper_asound)(const snd_hctl_elem_t*); +unsigned int (*snd_hctl_elem_get_index_dylibloader_wrapper_asound)(const snd_hctl_elem_t*); +void (*snd_hctl_elem_set_callback_dylibloader_wrapper_asound)( snd_hctl_elem_t*, snd_hctl_elem_callback_t); +void* (*snd_hctl_elem_get_callback_private_dylibloader_wrapper_asound)(const snd_hctl_elem_t*); +void (*snd_hctl_elem_set_callback_private_dylibloader_wrapper_asound)( snd_hctl_elem_t*, void*); +int (*snd_sctl_build_dylibloader_wrapper_asound)( snd_sctl_t**, snd_ctl_t*, snd_config_t*, snd_config_t*, int); +int (*snd_sctl_free_dylibloader_wrapper_asound)( snd_sctl_t*); +int (*snd_sctl_install_dylibloader_wrapper_asound)( snd_sctl_t*); +int (*snd_sctl_remove_dylibloader_wrapper_asound)( snd_sctl_t*); +int (*snd_mixer_open_dylibloader_wrapper_asound)( snd_mixer_t**, int); +int (*snd_mixer_close_dylibloader_wrapper_asound)( snd_mixer_t*); +snd_mixer_elem_t* (*snd_mixer_first_elem_dylibloader_wrapper_asound)( snd_mixer_t*); +snd_mixer_elem_t* (*snd_mixer_last_elem_dylibloader_wrapper_asound)( snd_mixer_t*); +int (*snd_mixer_handle_events_dylibloader_wrapper_asound)( snd_mixer_t*); +int (*snd_mixer_attach_dylibloader_wrapper_asound)( snd_mixer_t*,const char*); +int (*snd_mixer_attach_hctl_dylibloader_wrapper_asound)( snd_mixer_t*, snd_hctl_t*); +int (*snd_mixer_detach_dylibloader_wrapper_asound)( snd_mixer_t*,const char*); +int (*snd_mixer_detach_hctl_dylibloader_wrapper_asound)( snd_mixer_t*, snd_hctl_t*); +int (*snd_mixer_get_hctl_dylibloader_wrapper_asound)( snd_mixer_t*,const char*, snd_hctl_t**); +int (*snd_mixer_poll_descriptors_count_dylibloader_wrapper_asound)( snd_mixer_t*); +int (*snd_mixer_poll_descriptors_dylibloader_wrapper_asound)( snd_mixer_t*,struct pollfd*, unsigned int); +int (*snd_mixer_poll_descriptors_revents_dylibloader_wrapper_asound)( snd_mixer_t*,struct pollfd*, unsigned int, unsigned short*); +int (*snd_mixer_load_dylibloader_wrapper_asound)( snd_mixer_t*); +void (*snd_mixer_free_dylibloader_wrapper_asound)( snd_mixer_t*); +int (*snd_mixer_wait_dylibloader_wrapper_asound)( snd_mixer_t*, int); +int (*snd_mixer_set_compare_dylibloader_wrapper_asound)( snd_mixer_t*, snd_mixer_compare_t); +void (*snd_mixer_set_callback_dylibloader_wrapper_asound)( snd_mixer_t*, snd_mixer_callback_t); +void* (*snd_mixer_get_callback_private_dylibloader_wrapper_asound)(const snd_mixer_t*); +void (*snd_mixer_set_callback_private_dylibloader_wrapper_asound)( snd_mixer_t*, void*); +unsigned int (*snd_mixer_get_count_dylibloader_wrapper_asound)(const snd_mixer_t*); +int (*snd_mixer_class_unregister_dylibloader_wrapper_asound)( snd_mixer_class_t*); +snd_mixer_elem_t* (*snd_mixer_elem_next_dylibloader_wrapper_asound)( snd_mixer_elem_t*); +snd_mixer_elem_t* (*snd_mixer_elem_prev_dylibloader_wrapper_asound)( snd_mixer_elem_t*); +void (*snd_mixer_elem_set_callback_dylibloader_wrapper_asound)( snd_mixer_elem_t*, snd_mixer_elem_callback_t); +void* (*snd_mixer_elem_get_callback_private_dylibloader_wrapper_asound)(const snd_mixer_elem_t*); +void (*snd_mixer_elem_set_callback_private_dylibloader_wrapper_asound)( snd_mixer_elem_t*, void*); +snd_mixer_elem_type_t (*snd_mixer_elem_get_type_dylibloader_wrapper_asound)(const snd_mixer_elem_t*); +int (*snd_mixer_class_register_dylibloader_wrapper_asound)( snd_mixer_class_t*, snd_mixer_t*); +int (*snd_mixer_elem_new_dylibloader_wrapper_asound)( snd_mixer_elem_t**, snd_mixer_elem_type_t, int, void*, void*); +int (*snd_mixer_elem_add_dylibloader_wrapper_asound)( snd_mixer_elem_t*, snd_mixer_class_t*); +int (*snd_mixer_elem_remove_dylibloader_wrapper_asound)( snd_mixer_elem_t*); +void (*snd_mixer_elem_free_dylibloader_wrapper_asound)( snd_mixer_elem_t*); +int (*snd_mixer_elem_info_dylibloader_wrapper_asound)( snd_mixer_elem_t*); +int (*snd_mixer_elem_value_dylibloader_wrapper_asound)( snd_mixer_elem_t*); +int (*snd_mixer_elem_attach_dylibloader_wrapper_asound)( snd_mixer_elem_t*, snd_hctl_elem_t*); +int (*snd_mixer_elem_detach_dylibloader_wrapper_asound)( snd_mixer_elem_t*, snd_hctl_elem_t*); +int (*snd_mixer_elem_empty_dylibloader_wrapper_asound)( snd_mixer_elem_t*); +void* (*snd_mixer_elem_get_private_dylibloader_wrapper_asound)(const snd_mixer_elem_t*); +size_t (*snd_mixer_class_sizeof_dylibloader_wrapper_asound)( void); +int (*snd_mixer_class_malloc_dylibloader_wrapper_asound)( snd_mixer_class_t**); +void (*snd_mixer_class_free_dylibloader_wrapper_asound)( snd_mixer_class_t*); +void (*snd_mixer_class_copy_dylibloader_wrapper_asound)( snd_mixer_class_t*,const snd_mixer_class_t*); +snd_mixer_t* (*snd_mixer_class_get_mixer_dylibloader_wrapper_asound)(const snd_mixer_class_t*); +snd_mixer_event_t (*snd_mixer_class_get_event_dylibloader_wrapper_asound)(const snd_mixer_class_t*); +void* (*snd_mixer_class_get_private_dylibloader_wrapper_asound)(const snd_mixer_class_t*); +snd_mixer_compare_t (*snd_mixer_class_get_compare_dylibloader_wrapper_asound)(const snd_mixer_class_t*); +int (*snd_mixer_class_set_event_dylibloader_wrapper_asound)( snd_mixer_class_t*, snd_mixer_event_t); +int (*snd_mixer_class_set_private_dylibloader_wrapper_asound)( snd_mixer_class_t*, void*); +int (*snd_mixer_class_set_private_free_dylibloader_wrapper_asound)( snd_mixer_class_t*, void*); +int (*snd_mixer_class_set_compare_dylibloader_wrapper_asound)( snd_mixer_class_t*, snd_mixer_compare_t); +const char* (*snd_mixer_selem_channel_name_dylibloader_wrapper_asound)( snd_mixer_selem_channel_id_t); +int (*snd_mixer_selem_register_dylibloader_wrapper_asound)( snd_mixer_t*,struct snd_mixer_selem_regopt*, snd_mixer_class_t**); +void (*snd_mixer_selem_get_id_dylibloader_wrapper_asound)( snd_mixer_elem_t*, snd_mixer_selem_id_t*); +const char* (*snd_mixer_selem_get_name_dylibloader_wrapper_asound)( snd_mixer_elem_t*); +unsigned int (*snd_mixer_selem_get_index_dylibloader_wrapper_asound)( snd_mixer_elem_t*); +snd_mixer_elem_t* (*snd_mixer_find_selem_dylibloader_wrapper_asound)( snd_mixer_t*,const snd_mixer_selem_id_t*); +int (*snd_mixer_selem_is_active_dylibloader_wrapper_asound)( snd_mixer_elem_t*); +int (*snd_mixer_selem_is_playback_mono_dylibloader_wrapper_asound)( snd_mixer_elem_t*); +int (*snd_mixer_selem_has_playback_channel_dylibloader_wrapper_asound)( snd_mixer_elem_t*, snd_mixer_selem_channel_id_t); +int (*snd_mixer_selem_is_capture_mono_dylibloader_wrapper_asound)( snd_mixer_elem_t*); +int (*snd_mixer_selem_has_capture_channel_dylibloader_wrapper_asound)( snd_mixer_elem_t*, snd_mixer_selem_channel_id_t); +int (*snd_mixer_selem_get_capture_group_dylibloader_wrapper_asound)( snd_mixer_elem_t*); +int (*snd_mixer_selem_has_common_volume_dylibloader_wrapper_asound)( snd_mixer_elem_t*); +int (*snd_mixer_selem_has_playback_volume_dylibloader_wrapper_asound)( snd_mixer_elem_t*); +int (*snd_mixer_selem_has_playback_volume_joined_dylibloader_wrapper_asound)( snd_mixer_elem_t*); +int (*snd_mixer_selem_has_capture_volume_dylibloader_wrapper_asound)( snd_mixer_elem_t*); +int (*snd_mixer_selem_has_capture_volume_joined_dylibloader_wrapper_asound)( snd_mixer_elem_t*); +int (*snd_mixer_selem_has_common_switch_dylibloader_wrapper_asound)( snd_mixer_elem_t*); +int (*snd_mixer_selem_has_playback_switch_dylibloader_wrapper_asound)( snd_mixer_elem_t*); +int (*snd_mixer_selem_has_playback_switch_joined_dylibloader_wrapper_asound)( snd_mixer_elem_t*); +int (*snd_mixer_selem_has_capture_switch_dylibloader_wrapper_asound)( snd_mixer_elem_t*); +int (*snd_mixer_selem_has_capture_switch_joined_dylibloader_wrapper_asound)( snd_mixer_elem_t*); +int (*snd_mixer_selem_has_capture_switch_exclusive_dylibloader_wrapper_asound)( snd_mixer_elem_t*); +int (*snd_mixer_selem_ask_playback_vol_dB_dylibloader_wrapper_asound)( snd_mixer_elem_t*, long, long*); +int (*snd_mixer_selem_ask_capture_vol_dB_dylibloader_wrapper_asound)( snd_mixer_elem_t*, long, long*); +int (*snd_mixer_selem_ask_playback_dB_vol_dylibloader_wrapper_asound)( snd_mixer_elem_t*, long, int, long*); +int (*snd_mixer_selem_ask_capture_dB_vol_dylibloader_wrapper_asound)( snd_mixer_elem_t*, long, int, long*); +int (*snd_mixer_selem_get_playback_volume_dylibloader_wrapper_asound)( snd_mixer_elem_t*, snd_mixer_selem_channel_id_t, long*); +int (*snd_mixer_selem_get_capture_volume_dylibloader_wrapper_asound)( snd_mixer_elem_t*, snd_mixer_selem_channel_id_t, long*); +int (*snd_mixer_selem_get_playback_dB_dylibloader_wrapper_asound)( snd_mixer_elem_t*, snd_mixer_selem_channel_id_t, long*); +int (*snd_mixer_selem_get_capture_dB_dylibloader_wrapper_asound)( snd_mixer_elem_t*, snd_mixer_selem_channel_id_t, long*); +int (*snd_mixer_selem_get_playback_switch_dylibloader_wrapper_asound)( snd_mixer_elem_t*, snd_mixer_selem_channel_id_t, int*); +int (*snd_mixer_selem_get_capture_switch_dylibloader_wrapper_asound)( snd_mixer_elem_t*, snd_mixer_selem_channel_id_t, int*); +int (*snd_mixer_selem_set_playback_volume_dylibloader_wrapper_asound)( snd_mixer_elem_t*, snd_mixer_selem_channel_id_t, long); +int (*snd_mixer_selem_set_capture_volume_dylibloader_wrapper_asound)( snd_mixer_elem_t*, snd_mixer_selem_channel_id_t, long); +int (*snd_mixer_selem_set_playback_dB_dylibloader_wrapper_asound)( snd_mixer_elem_t*, snd_mixer_selem_channel_id_t, long, int); +int (*snd_mixer_selem_set_capture_dB_dylibloader_wrapper_asound)( snd_mixer_elem_t*, snd_mixer_selem_channel_id_t, long, int); +int (*snd_mixer_selem_set_playback_volume_all_dylibloader_wrapper_asound)( snd_mixer_elem_t*, long); +int (*snd_mixer_selem_set_capture_volume_all_dylibloader_wrapper_asound)( snd_mixer_elem_t*, long); +int (*snd_mixer_selem_set_playback_dB_all_dylibloader_wrapper_asound)( snd_mixer_elem_t*, long, int); +int (*snd_mixer_selem_set_capture_dB_all_dylibloader_wrapper_asound)( snd_mixer_elem_t*, long, int); +int (*snd_mixer_selem_set_playback_switch_dylibloader_wrapper_asound)( snd_mixer_elem_t*, snd_mixer_selem_channel_id_t, int); +int (*snd_mixer_selem_set_capture_switch_dylibloader_wrapper_asound)( snd_mixer_elem_t*, snd_mixer_selem_channel_id_t, int); +int (*snd_mixer_selem_set_playback_switch_all_dylibloader_wrapper_asound)( snd_mixer_elem_t*, int); +int (*snd_mixer_selem_set_capture_switch_all_dylibloader_wrapper_asound)( snd_mixer_elem_t*, int); +int (*snd_mixer_selem_get_playback_volume_range_dylibloader_wrapper_asound)( snd_mixer_elem_t*, long*, long*); +int (*snd_mixer_selem_get_playback_dB_range_dylibloader_wrapper_asound)( snd_mixer_elem_t*, long*, long*); +int (*snd_mixer_selem_set_playback_volume_range_dylibloader_wrapper_asound)( snd_mixer_elem_t*, long, long); +int (*snd_mixer_selem_get_capture_volume_range_dylibloader_wrapper_asound)( snd_mixer_elem_t*, long*, long*); +int (*snd_mixer_selem_get_capture_dB_range_dylibloader_wrapper_asound)( snd_mixer_elem_t*, long*, long*); +int (*snd_mixer_selem_set_capture_volume_range_dylibloader_wrapper_asound)( snd_mixer_elem_t*, long, long); +int (*snd_mixer_selem_is_enumerated_dylibloader_wrapper_asound)( snd_mixer_elem_t*); +int (*snd_mixer_selem_is_enum_playback_dylibloader_wrapper_asound)( snd_mixer_elem_t*); +int (*snd_mixer_selem_is_enum_capture_dylibloader_wrapper_asound)( snd_mixer_elem_t*); +int (*snd_mixer_selem_get_enum_items_dylibloader_wrapper_asound)( snd_mixer_elem_t*); +int (*snd_mixer_selem_get_enum_item_name_dylibloader_wrapper_asound)( snd_mixer_elem_t*, unsigned int, size_t, char*); +int (*snd_mixer_selem_get_enum_item_dylibloader_wrapper_asound)( snd_mixer_elem_t*, snd_mixer_selem_channel_id_t, unsigned int*); +int (*snd_mixer_selem_set_enum_item_dylibloader_wrapper_asound)( snd_mixer_elem_t*, snd_mixer_selem_channel_id_t, unsigned int); +size_t (*snd_mixer_selem_id_sizeof_dylibloader_wrapper_asound)( void); +int (*snd_mixer_selem_id_malloc_dylibloader_wrapper_asound)( snd_mixer_selem_id_t**); +void (*snd_mixer_selem_id_free_dylibloader_wrapper_asound)( snd_mixer_selem_id_t*); +void (*snd_mixer_selem_id_copy_dylibloader_wrapper_asound)( snd_mixer_selem_id_t*,const snd_mixer_selem_id_t*); +const char* (*snd_mixer_selem_id_get_name_dylibloader_wrapper_asound)(const snd_mixer_selem_id_t*); +unsigned int (*snd_mixer_selem_id_get_index_dylibloader_wrapper_asound)(const snd_mixer_selem_id_t*); +void (*snd_mixer_selem_id_set_name_dylibloader_wrapper_asound)( snd_mixer_selem_id_t*,const char*); +void (*snd_mixer_selem_id_set_index_dylibloader_wrapper_asound)( snd_mixer_selem_id_t*, unsigned int); +int (*snd_mixer_selem_id_parse_dylibloader_wrapper_asound)( snd_mixer_selem_id_t*,const char*); +int (*snd_seq_open_dylibloader_wrapper_asound)( snd_seq_t**,const char*, int, int); +int (*snd_seq_open_lconf_dylibloader_wrapper_asound)( snd_seq_t**,const char*, int, int, snd_config_t*); +const char* (*snd_seq_name_dylibloader_wrapper_asound)( snd_seq_t*); +snd_seq_type_t (*snd_seq_type_dylibloader_wrapper_asound)( snd_seq_t*); +int (*snd_seq_close_dylibloader_wrapper_asound)( snd_seq_t*); +int (*snd_seq_poll_descriptors_count_dylibloader_wrapper_asound)( snd_seq_t*, short); +int (*snd_seq_poll_descriptors_dylibloader_wrapper_asound)( snd_seq_t*,struct pollfd*, unsigned int, short); +int (*snd_seq_poll_descriptors_revents_dylibloader_wrapper_asound)( snd_seq_t*,struct pollfd*, unsigned int, unsigned short*); +int (*snd_seq_nonblock_dylibloader_wrapper_asound)( snd_seq_t*, int); +int (*snd_seq_client_id_dylibloader_wrapper_asound)( snd_seq_t*); +size_t (*snd_seq_get_output_buffer_size_dylibloader_wrapper_asound)( snd_seq_t*); +size_t (*snd_seq_get_input_buffer_size_dylibloader_wrapper_asound)( snd_seq_t*); +int (*snd_seq_set_output_buffer_size_dylibloader_wrapper_asound)( snd_seq_t*, size_t); +int (*snd_seq_set_input_buffer_size_dylibloader_wrapper_asound)( snd_seq_t*, size_t); +size_t (*snd_seq_system_info_sizeof_dylibloader_wrapper_asound)( void); +int (*snd_seq_system_info_malloc_dylibloader_wrapper_asound)( snd_seq_system_info_t**); +void (*snd_seq_system_info_free_dylibloader_wrapper_asound)( snd_seq_system_info_t*); +void (*snd_seq_system_info_copy_dylibloader_wrapper_asound)( snd_seq_system_info_t*,const snd_seq_system_info_t*); +int (*snd_seq_system_info_get_queues_dylibloader_wrapper_asound)(const snd_seq_system_info_t*); +int (*snd_seq_system_info_get_clients_dylibloader_wrapper_asound)(const snd_seq_system_info_t*); +int (*snd_seq_system_info_get_ports_dylibloader_wrapper_asound)(const snd_seq_system_info_t*); +int (*snd_seq_system_info_get_channels_dylibloader_wrapper_asound)(const snd_seq_system_info_t*); +int (*snd_seq_system_info_get_cur_clients_dylibloader_wrapper_asound)(const snd_seq_system_info_t*); +int (*snd_seq_system_info_get_cur_queues_dylibloader_wrapper_asound)(const snd_seq_system_info_t*); +int (*snd_seq_system_info_dylibloader_wrapper_asound)( snd_seq_t*, snd_seq_system_info_t*); +size_t (*snd_seq_client_info_sizeof_dylibloader_wrapper_asound)( void); +int (*snd_seq_client_info_malloc_dylibloader_wrapper_asound)( snd_seq_client_info_t**); +void (*snd_seq_client_info_free_dylibloader_wrapper_asound)( snd_seq_client_info_t*); +void (*snd_seq_client_info_copy_dylibloader_wrapper_asound)( snd_seq_client_info_t*,const snd_seq_client_info_t*); +int (*snd_seq_client_info_get_client_dylibloader_wrapper_asound)(const snd_seq_client_info_t*); +snd_seq_client_type_t (*snd_seq_client_info_get_type_dylibloader_wrapper_asound)(const snd_seq_client_info_t*); +const char* (*snd_seq_client_info_get_name_dylibloader_wrapper_asound)( snd_seq_client_info_t*); +int (*snd_seq_client_info_get_broadcast_filter_dylibloader_wrapper_asound)(const snd_seq_client_info_t*); +int (*snd_seq_client_info_get_error_bounce_dylibloader_wrapper_asound)(const snd_seq_client_info_t*); +int (*snd_seq_client_info_get_card_dylibloader_wrapper_asound)(const snd_seq_client_info_t*); +int (*snd_seq_client_info_get_pid_dylibloader_wrapper_asound)(const snd_seq_client_info_t*); +const unsigned char* (*snd_seq_client_info_get_event_filter_dylibloader_wrapper_asound)(const snd_seq_client_info_t*); +int (*snd_seq_client_info_get_num_ports_dylibloader_wrapper_asound)(const snd_seq_client_info_t*); +int (*snd_seq_client_info_get_event_lost_dylibloader_wrapper_asound)(const snd_seq_client_info_t*); +void (*snd_seq_client_info_set_client_dylibloader_wrapper_asound)( snd_seq_client_info_t*, int); +void (*snd_seq_client_info_set_name_dylibloader_wrapper_asound)( snd_seq_client_info_t*,const char*); +void (*snd_seq_client_info_set_broadcast_filter_dylibloader_wrapper_asound)( snd_seq_client_info_t*, int); +void (*snd_seq_client_info_set_error_bounce_dylibloader_wrapper_asound)( snd_seq_client_info_t*, int); +void (*snd_seq_client_info_set_event_filter_dylibloader_wrapper_asound)( snd_seq_client_info_t*, unsigned char*); +void (*snd_seq_client_info_event_filter_clear_dylibloader_wrapper_asound)( snd_seq_client_info_t*); +void (*snd_seq_client_info_event_filter_add_dylibloader_wrapper_asound)( snd_seq_client_info_t*, int); +void (*snd_seq_client_info_event_filter_del_dylibloader_wrapper_asound)( snd_seq_client_info_t*, int); +int (*snd_seq_client_info_event_filter_check_dylibloader_wrapper_asound)( snd_seq_client_info_t*, int); +int (*snd_seq_get_client_info_dylibloader_wrapper_asound)( snd_seq_t*, snd_seq_client_info_t*); +int (*snd_seq_get_any_client_info_dylibloader_wrapper_asound)( snd_seq_t*, int, snd_seq_client_info_t*); +int (*snd_seq_set_client_info_dylibloader_wrapper_asound)( snd_seq_t*, snd_seq_client_info_t*); +int (*snd_seq_query_next_client_dylibloader_wrapper_asound)( snd_seq_t*, snd_seq_client_info_t*); +size_t (*snd_seq_client_pool_sizeof_dylibloader_wrapper_asound)( void); +int (*snd_seq_client_pool_malloc_dylibloader_wrapper_asound)( snd_seq_client_pool_t**); +void (*snd_seq_client_pool_free_dylibloader_wrapper_asound)( snd_seq_client_pool_t*); +void (*snd_seq_client_pool_copy_dylibloader_wrapper_asound)( snd_seq_client_pool_t*,const snd_seq_client_pool_t*); +int (*snd_seq_client_pool_get_client_dylibloader_wrapper_asound)(const snd_seq_client_pool_t*); +size_t (*snd_seq_client_pool_get_output_pool_dylibloader_wrapper_asound)(const snd_seq_client_pool_t*); +size_t (*snd_seq_client_pool_get_input_pool_dylibloader_wrapper_asound)(const snd_seq_client_pool_t*); +size_t (*snd_seq_client_pool_get_output_room_dylibloader_wrapper_asound)(const snd_seq_client_pool_t*); +size_t (*snd_seq_client_pool_get_output_free_dylibloader_wrapper_asound)(const snd_seq_client_pool_t*); +size_t (*snd_seq_client_pool_get_input_free_dylibloader_wrapper_asound)(const snd_seq_client_pool_t*); +void (*snd_seq_client_pool_set_output_pool_dylibloader_wrapper_asound)( snd_seq_client_pool_t*, size_t); +void (*snd_seq_client_pool_set_input_pool_dylibloader_wrapper_asound)( snd_seq_client_pool_t*, size_t); +void (*snd_seq_client_pool_set_output_room_dylibloader_wrapper_asound)( snd_seq_client_pool_t*, size_t); +int (*snd_seq_get_client_pool_dylibloader_wrapper_asound)( snd_seq_t*, snd_seq_client_pool_t*); +int (*snd_seq_set_client_pool_dylibloader_wrapper_asound)( snd_seq_t*, snd_seq_client_pool_t*); +size_t (*snd_seq_port_info_sizeof_dylibloader_wrapper_asound)( void); +int (*snd_seq_port_info_malloc_dylibloader_wrapper_asound)( snd_seq_port_info_t**); +void (*snd_seq_port_info_free_dylibloader_wrapper_asound)( snd_seq_port_info_t*); +void (*snd_seq_port_info_copy_dylibloader_wrapper_asound)( snd_seq_port_info_t*,const snd_seq_port_info_t*); +int (*snd_seq_port_info_get_client_dylibloader_wrapper_asound)(const snd_seq_port_info_t*); +int (*snd_seq_port_info_get_port_dylibloader_wrapper_asound)(const snd_seq_port_info_t*); +const snd_seq_addr_t* (*snd_seq_port_info_get_addr_dylibloader_wrapper_asound)(const snd_seq_port_info_t*); +const char* (*snd_seq_port_info_get_name_dylibloader_wrapper_asound)(const snd_seq_port_info_t*); +unsigned int (*snd_seq_port_info_get_capability_dylibloader_wrapper_asound)(const snd_seq_port_info_t*); +unsigned int (*snd_seq_port_info_get_type_dylibloader_wrapper_asound)(const snd_seq_port_info_t*); +int (*snd_seq_port_info_get_midi_channels_dylibloader_wrapper_asound)(const snd_seq_port_info_t*); +int (*snd_seq_port_info_get_midi_voices_dylibloader_wrapper_asound)(const snd_seq_port_info_t*); +int (*snd_seq_port_info_get_synth_voices_dylibloader_wrapper_asound)(const snd_seq_port_info_t*); +int (*snd_seq_port_info_get_read_use_dylibloader_wrapper_asound)(const snd_seq_port_info_t*); +int (*snd_seq_port_info_get_write_use_dylibloader_wrapper_asound)(const snd_seq_port_info_t*); +int (*snd_seq_port_info_get_port_specified_dylibloader_wrapper_asound)(const snd_seq_port_info_t*); +int (*snd_seq_port_info_get_timestamping_dylibloader_wrapper_asound)(const snd_seq_port_info_t*); +int (*snd_seq_port_info_get_timestamp_real_dylibloader_wrapper_asound)(const snd_seq_port_info_t*); +int (*snd_seq_port_info_get_timestamp_queue_dylibloader_wrapper_asound)(const snd_seq_port_info_t*); +void (*snd_seq_port_info_set_client_dylibloader_wrapper_asound)( snd_seq_port_info_t*, int); +void (*snd_seq_port_info_set_port_dylibloader_wrapper_asound)( snd_seq_port_info_t*, int); +void (*snd_seq_port_info_set_addr_dylibloader_wrapper_asound)( snd_seq_port_info_t*,const snd_seq_addr_t*); +void (*snd_seq_port_info_set_name_dylibloader_wrapper_asound)( snd_seq_port_info_t*,const char*); +void (*snd_seq_port_info_set_capability_dylibloader_wrapper_asound)( snd_seq_port_info_t*, unsigned int); +void (*snd_seq_port_info_set_type_dylibloader_wrapper_asound)( snd_seq_port_info_t*, unsigned int); +void (*snd_seq_port_info_set_midi_channels_dylibloader_wrapper_asound)( snd_seq_port_info_t*, int); +void (*snd_seq_port_info_set_midi_voices_dylibloader_wrapper_asound)( snd_seq_port_info_t*, int); +void (*snd_seq_port_info_set_synth_voices_dylibloader_wrapper_asound)( snd_seq_port_info_t*, int); +void (*snd_seq_port_info_set_port_specified_dylibloader_wrapper_asound)( snd_seq_port_info_t*, int); +void (*snd_seq_port_info_set_timestamping_dylibloader_wrapper_asound)( snd_seq_port_info_t*, int); +void (*snd_seq_port_info_set_timestamp_real_dylibloader_wrapper_asound)( snd_seq_port_info_t*, int); +void (*snd_seq_port_info_set_timestamp_queue_dylibloader_wrapper_asound)( snd_seq_port_info_t*, int); +int (*snd_seq_create_port_dylibloader_wrapper_asound)( snd_seq_t*, snd_seq_port_info_t*); +int (*snd_seq_delete_port_dylibloader_wrapper_asound)( snd_seq_t*, int); +int (*snd_seq_get_port_info_dylibloader_wrapper_asound)( snd_seq_t*, int, snd_seq_port_info_t*); +int (*snd_seq_get_any_port_info_dylibloader_wrapper_asound)( snd_seq_t*, int, int, snd_seq_port_info_t*); +int (*snd_seq_set_port_info_dylibloader_wrapper_asound)( snd_seq_t*, int, snd_seq_port_info_t*); +int (*snd_seq_query_next_port_dylibloader_wrapper_asound)( snd_seq_t*, snd_seq_port_info_t*); +size_t (*snd_seq_port_subscribe_sizeof_dylibloader_wrapper_asound)( void); +int (*snd_seq_port_subscribe_malloc_dylibloader_wrapper_asound)( snd_seq_port_subscribe_t**); +void (*snd_seq_port_subscribe_free_dylibloader_wrapper_asound)( snd_seq_port_subscribe_t*); +void (*snd_seq_port_subscribe_copy_dylibloader_wrapper_asound)( snd_seq_port_subscribe_t*,const snd_seq_port_subscribe_t*); +const snd_seq_addr_t* (*snd_seq_port_subscribe_get_sender_dylibloader_wrapper_asound)(const snd_seq_port_subscribe_t*); +const snd_seq_addr_t* (*snd_seq_port_subscribe_get_dest_dylibloader_wrapper_asound)(const snd_seq_port_subscribe_t*); +int (*snd_seq_port_subscribe_get_queue_dylibloader_wrapper_asound)(const snd_seq_port_subscribe_t*); +int (*snd_seq_port_subscribe_get_exclusive_dylibloader_wrapper_asound)(const snd_seq_port_subscribe_t*); +int (*snd_seq_port_subscribe_get_time_update_dylibloader_wrapper_asound)(const snd_seq_port_subscribe_t*); +int (*snd_seq_port_subscribe_get_time_real_dylibloader_wrapper_asound)(const snd_seq_port_subscribe_t*); +void (*snd_seq_port_subscribe_set_sender_dylibloader_wrapper_asound)( snd_seq_port_subscribe_t*,const snd_seq_addr_t*); +void (*snd_seq_port_subscribe_set_dest_dylibloader_wrapper_asound)( snd_seq_port_subscribe_t*,const snd_seq_addr_t*); +void (*snd_seq_port_subscribe_set_queue_dylibloader_wrapper_asound)( snd_seq_port_subscribe_t*, int); +void (*snd_seq_port_subscribe_set_exclusive_dylibloader_wrapper_asound)( snd_seq_port_subscribe_t*, int); +void (*snd_seq_port_subscribe_set_time_update_dylibloader_wrapper_asound)( snd_seq_port_subscribe_t*, int); +void (*snd_seq_port_subscribe_set_time_real_dylibloader_wrapper_asound)( snd_seq_port_subscribe_t*, int); +int (*snd_seq_get_port_subscription_dylibloader_wrapper_asound)( snd_seq_t*, snd_seq_port_subscribe_t*); +int (*snd_seq_subscribe_port_dylibloader_wrapper_asound)( snd_seq_t*, snd_seq_port_subscribe_t*); +int (*snd_seq_unsubscribe_port_dylibloader_wrapper_asound)( snd_seq_t*, snd_seq_port_subscribe_t*); +size_t (*snd_seq_query_subscribe_sizeof_dylibloader_wrapper_asound)( void); +int (*snd_seq_query_subscribe_malloc_dylibloader_wrapper_asound)( snd_seq_query_subscribe_t**); +void (*snd_seq_query_subscribe_free_dylibloader_wrapper_asound)( snd_seq_query_subscribe_t*); +void (*snd_seq_query_subscribe_copy_dylibloader_wrapper_asound)( snd_seq_query_subscribe_t*,const snd_seq_query_subscribe_t*); +int (*snd_seq_query_subscribe_get_client_dylibloader_wrapper_asound)(const snd_seq_query_subscribe_t*); +int (*snd_seq_query_subscribe_get_port_dylibloader_wrapper_asound)(const snd_seq_query_subscribe_t*); +const snd_seq_addr_t* (*snd_seq_query_subscribe_get_root_dylibloader_wrapper_asound)(const snd_seq_query_subscribe_t*); +snd_seq_query_subs_type_t (*snd_seq_query_subscribe_get_type_dylibloader_wrapper_asound)(const snd_seq_query_subscribe_t*); +int (*snd_seq_query_subscribe_get_index_dylibloader_wrapper_asound)(const snd_seq_query_subscribe_t*); +int (*snd_seq_query_subscribe_get_num_subs_dylibloader_wrapper_asound)(const snd_seq_query_subscribe_t*); +const snd_seq_addr_t* (*snd_seq_query_subscribe_get_addr_dylibloader_wrapper_asound)(const snd_seq_query_subscribe_t*); +int (*snd_seq_query_subscribe_get_queue_dylibloader_wrapper_asound)(const snd_seq_query_subscribe_t*); +int (*snd_seq_query_subscribe_get_exclusive_dylibloader_wrapper_asound)(const snd_seq_query_subscribe_t*); +int (*snd_seq_query_subscribe_get_time_update_dylibloader_wrapper_asound)(const snd_seq_query_subscribe_t*); +int (*snd_seq_query_subscribe_get_time_real_dylibloader_wrapper_asound)(const snd_seq_query_subscribe_t*); +void (*snd_seq_query_subscribe_set_client_dylibloader_wrapper_asound)( snd_seq_query_subscribe_t*, int); +void (*snd_seq_query_subscribe_set_port_dylibloader_wrapper_asound)( snd_seq_query_subscribe_t*, int); +void (*snd_seq_query_subscribe_set_root_dylibloader_wrapper_asound)( snd_seq_query_subscribe_t*,const snd_seq_addr_t*); +void (*snd_seq_query_subscribe_set_type_dylibloader_wrapper_asound)( snd_seq_query_subscribe_t*, snd_seq_query_subs_type_t); +void (*snd_seq_query_subscribe_set_index_dylibloader_wrapper_asound)( snd_seq_query_subscribe_t*, int); +int (*snd_seq_query_port_subscribers_dylibloader_wrapper_asound)( snd_seq_t*, snd_seq_query_subscribe_t*); +size_t (*snd_seq_queue_info_sizeof_dylibloader_wrapper_asound)( void); +int (*snd_seq_queue_info_malloc_dylibloader_wrapper_asound)( snd_seq_queue_info_t**); +void (*snd_seq_queue_info_free_dylibloader_wrapper_asound)( snd_seq_queue_info_t*); +void (*snd_seq_queue_info_copy_dylibloader_wrapper_asound)( snd_seq_queue_info_t*,const snd_seq_queue_info_t*); +int (*snd_seq_queue_info_get_queue_dylibloader_wrapper_asound)(const snd_seq_queue_info_t*); +const char* (*snd_seq_queue_info_get_name_dylibloader_wrapper_asound)(const snd_seq_queue_info_t*); +int (*snd_seq_queue_info_get_owner_dylibloader_wrapper_asound)(const snd_seq_queue_info_t*); +int (*snd_seq_queue_info_get_locked_dylibloader_wrapper_asound)(const snd_seq_queue_info_t*); +unsigned int (*snd_seq_queue_info_get_flags_dylibloader_wrapper_asound)(const snd_seq_queue_info_t*); +void (*snd_seq_queue_info_set_name_dylibloader_wrapper_asound)( snd_seq_queue_info_t*,const char*); +void (*snd_seq_queue_info_set_owner_dylibloader_wrapper_asound)( snd_seq_queue_info_t*, int); +void (*snd_seq_queue_info_set_locked_dylibloader_wrapper_asound)( snd_seq_queue_info_t*, int); +void (*snd_seq_queue_info_set_flags_dylibloader_wrapper_asound)( snd_seq_queue_info_t*, unsigned int); +int (*snd_seq_create_queue_dylibloader_wrapper_asound)( snd_seq_t*, snd_seq_queue_info_t*); +int (*snd_seq_alloc_named_queue_dylibloader_wrapper_asound)( snd_seq_t*,const char*); +int (*snd_seq_alloc_queue_dylibloader_wrapper_asound)( snd_seq_t*); +int (*snd_seq_free_queue_dylibloader_wrapper_asound)( snd_seq_t*, int); +int (*snd_seq_get_queue_info_dylibloader_wrapper_asound)( snd_seq_t*, int, snd_seq_queue_info_t*); +int (*snd_seq_set_queue_info_dylibloader_wrapper_asound)( snd_seq_t*, int, snd_seq_queue_info_t*); +int (*snd_seq_query_named_queue_dylibloader_wrapper_asound)( snd_seq_t*,const char*); +int (*snd_seq_get_queue_usage_dylibloader_wrapper_asound)( snd_seq_t*, int); +int (*snd_seq_set_queue_usage_dylibloader_wrapper_asound)( snd_seq_t*, int, int); +size_t (*snd_seq_queue_status_sizeof_dylibloader_wrapper_asound)( void); +int (*snd_seq_queue_status_malloc_dylibloader_wrapper_asound)( snd_seq_queue_status_t**); +void (*snd_seq_queue_status_free_dylibloader_wrapper_asound)( snd_seq_queue_status_t*); +void (*snd_seq_queue_status_copy_dylibloader_wrapper_asound)( snd_seq_queue_status_t*,const snd_seq_queue_status_t*); +int (*snd_seq_queue_status_get_queue_dylibloader_wrapper_asound)(const snd_seq_queue_status_t*); +int (*snd_seq_queue_status_get_events_dylibloader_wrapper_asound)(const snd_seq_queue_status_t*); +snd_seq_tick_time_t (*snd_seq_queue_status_get_tick_time_dylibloader_wrapper_asound)(const snd_seq_queue_status_t*); +const snd_seq_real_time_t* (*snd_seq_queue_status_get_real_time_dylibloader_wrapper_asound)(const snd_seq_queue_status_t*); +unsigned int (*snd_seq_queue_status_get_status_dylibloader_wrapper_asound)(const snd_seq_queue_status_t*); +int (*snd_seq_get_queue_status_dylibloader_wrapper_asound)( snd_seq_t*, int, snd_seq_queue_status_t*); +size_t (*snd_seq_queue_tempo_sizeof_dylibloader_wrapper_asound)( void); +int (*snd_seq_queue_tempo_malloc_dylibloader_wrapper_asound)( snd_seq_queue_tempo_t**); +void (*snd_seq_queue_tempo_free_dylibloader_wrapper_asound)( snd_seq_queue_tempo_t*); +void (*snd_seq_queue_tempo_copy_dylibloader_wrapper_asound)( snd_seq_queue_tempo_t*,const snd_seq_queue_tempo_t*); +int (*snd_seq_queue_tempo_get_queue_dylibloader_wrapper_asound)(const snd_seq_queue_tempo_t*); +unsigned int (*snd_seq_queue_tempo_get_tempo_dylibloader_wrapper_asound)(const snd_seq_queue_tempo_t*); +int (*snd_seq_queue_tempo_get_ppq_dylibloader_wrapper_asound)(const snd_seq_queue_tempo_t*); +unsigned int (*snd_seq_queue_tempo_get_skew_dylibloader_wrapper_asound)(const snd_seq_queue_tempo_t*); +unsigned int (*snd_seq_queue_tempo_get_skew_base_dylibloader_wrapper_asound)(const snd_seq_queue_tempo_t*); +void (*snd_seq_queue_tempo_set_tempo_dylibloader_wrapper_asound)( snd_seq_queue_tempo_t*, unsigned int); +void (*snd_seq_queue_tempo_set_ppq_dylibloader_wrapper_asound)( snd_seq_queue_tempo_t*, int); +void (*snd_seq_queue_tempo_set_skew_dylibloader_wrapper_asound)( snd_seq_queue_tempo_t*, unsigned int); +void (*snd_seq_queue_tempo_set_skew_base_dylibloader_wrapper_asound)( snd_seq_queue_tempo_t*, unsigned int); +int (*snd_seq_get_queue_tempo_dylibloader_wrapper_asound)( snd_seq_t*, int, snd_seq_queue_tempo_t*); +int (*snd_seq_set_queue_tempo_dylibloader_wrapper_asound)( snd_seq_t*, int, snd_seq_queue_tempo_t*); +size_t (*snd_seq_queue_timer_sizeof_dylibloader_wrapper_asound)( void); +int (*snd_seq_queue_timer_malloc_dylibloader_wrapper_asound)( snd_seq_queue_timer_t**); +void (*snd_seq_queue_timer_free_dylibloader_wrapper_asound)( snd_seq_queue_timer_t*); +void (*snd_seq_queue_timer_copy_dylibloader_wrapper_asound)( snd_seq_queue_timer_t*,const snd_seq_queue_timer_t*); +int (*snd_seq_queue_timer_get_queue_dylibloader_wrapper_asound)(const snd_seq_queue_timer_t*); +snd_seq_queue_timer_type_t (*snd_seq_queue_timer_get_type_dylibloader_wrapper_asound)(const snd_seq_queue_timer_t*); +const snd_timer_id_t* (*snd_seq_queue_timer_get_id_dylibloader_wrapper_asound)(const snd_seq_queue_timer_t*); +unsigned int (*snd_seq_queue_timer_get_resolution_dylibloader_wrapper_asound)(const snd_seq_queue_timer_t*); +void (*snd_seq_queue_timer_set_type_dylibloader_wrapper_asound)( snd_seq_queue_timer_t*, snd_seq_queue_timer_type_t); +void (*snd_seq_queue_timer_set_id_dylibloader_wrapper_asound)( snd_seq_queue_timer_t*,const snd_timer_id_t*); +void (*snd_seq_queue_timer_set_resolution_dylibloader_wrapper_asound)( snd_seq_queue_timer_t*, unsigned int); +int (*snd_seq_get_queue_timer_dylibloader_wrapper_asound)( snd_seq_t*, int, snd_seq_queue_timer_t*); +int (*snd_seq_set_queue_timer_dylibloader_wrapper_asound)( snd_seq_t*, int, snd_seq_queue_timer_t*); +int (*snd_seq_free_event_dylibloader_wrapper_asound)( snd_seq_event_t*); +ssize_t (*snd_seq_event_length_dylibloader_wrapper_asound)( snd_seq_event_t*); +int (*snd_seq_event_output_dylibloader_wrapper_asound)( snd_seq_t*, snd_seq_event_t*); +int (*snd_seq_event_output_buffer_dylibloader_wrapper_asound)( snd_seq_t*, snd_seq_event_t*); +int (*snd_seq_event_output_direct_dylibloader_wrapper_asound)( snd_seq_t*, snd_seq_event_t*); +int (*snd_seq_event_input_dylibloader_wrapper_asound)( snd_seq_t*, snd_seq_event_t**); +int (*snd_seq_event_input_pending_dylibloader_wrapper_asound)( snd_seq_t*, int); +int (*snd_seq_drain_output_dylibloader_wrapper_asound)( snd_seq_t*); +int (*snd_seq_event_output_pending_dylibloader_wrapper_asound)( snd_seq_t*); +int (*snd_seq_extract_output_dylibloader_wrapper_asound)( snd_seq_t*, snd_seq_event_t**); +int (*snd_seq_drop_output_dylibloader_wrapper_asound)( snd_seq_t*); +int (*snd_seq_drop_output_buffer_dylibloader_wrapper_asound)( snd_seq_t*); +int (*snd_seq_drop_input_dylibloader_wrapper_asound)( snd_seq_t*); +int (*snd_seq_drop_input_buffer_dylibloader_wrapper_asound)( snd_seq_t*); +size_t (*snd_seq_remove_events_sizeof_dylibloader_wrapper_asound)( void); +int (*snd_seq_remove_events_malloc_dylibloader_wrapper_asound)( snd_seq_remove_events_t**); +void (*snd_seq_remove_events_free_dylibloader_wrapper_asound)( snd_seq_remove_events_t*); +void (*snd_seq_remove_events_copy_dylibloader_wrapper_asound)( snd_seq_remove_events_t*,const snd_seq_remove_events_t*); +unsigned int (*snd_seq_remove_events_get_condition_dylibloader_wrapper_asound)(const snd_seq_remove_events_t*); +int (*snd_seq_remove_events_get_queue_dylibloader_wrapper_asound)(const snd_seq_remove_events_t*); +const snd_seq_timestamp_t* (*snd_seq_remove_events_get_time_dylibloader_wrapper_asound)(const snd_seq_remove_events_t*); +const snd_seq_addr_t* (*snd_seq_remove_events_get_dest_dylibloader_wrapper_asound)(const snd_seq_remove_events_t*); +int (*snd_seq_remove_events_get_channel_dylibloader_wrapper_asound)(const snd_seq_remove_events_t*); +int (*snd_seq_remove_events_get_event_type_dylibloader_wrapper_asound)(const snd_seq_remove_events_t*); +int (*snd_seq_remove_events_get_tag_dylibloader_wrapper_asound)(const snd_seq_remove_events_t*); +void (*snd_seq_remove_events_set_condition_dylibloader_wrapper_asound)( snd_seq_remove_events_t*, unsigned int); +void (*snd_seq_remove_events_set_queue_dylibloader_wrapper_asound)( snd_seq_remove_events_t*, int); +void (*snd_seq_remove_events_set_time_dylibloader_wrapper_asound)( snd_seq_remove_events_t*,const snd_seq_timestamp_t*); +void (*snd_seq_remove_events_set_dest_dylibloader_wrapper_asound)( snd_seq_remove_events_t*,const snd_seq_addr_t*); +void (*snd_seq_remove_events_set_channel_dylibloader_wrapper_asound)( snd_seq_remove_events_t*, int); +void (*snd_seq_remove_events_set_event_type_dylibloader_wrapper_asound)( snd_seq_remove_events_t*, int); +void (*snd_seq_remove_events_set_tag_dylibloader_wrapper_asound)( snd_seq_remove_events_t*, int); +int (*snd_seq_remove_events_dylibloader_wrapper_asound)( snd_seq_t*, snd_seq_remove_events_t*); +void (*snd_seq_set_bit_dylibloader_wrapper_asound)( int, void*); +void (*snd_seq_unset_bit_dylibloader_wrapper_asound)( int, void*); +int (*snd_seq_change_bit_dylibloader_wrapper_asound)( int, void*); +int (*snd_seq_get_bit_dylibloader_wrapper_asound)( int, void*); +int (*snd_seq_control_queue_dylibloader_wrapper_asound)( snd_seq_t*, int, int, int, snd_seq_event_t*); +int (*snd_seq_create_simple_port_dylibloader_wrapper_asound)( snd_seq_t*,const char*, unsigned int, unsigned int); +int (*snd_seq_delete_simple_port_dylibloader_wrapper_asound)( snd_seq_t*, int); +int (*snd_seq_connect_from_dylibloader_wrapper_asound)( snd_seq_t*, int, int, int); +int (*snd_seq_connect_to_dylibloader_wrapper_asound)( snd_seq_t*, int, int, int); +int (*snd_seq_disconnect_from_dylibloader_wrapper_asound)( snd_seq_t*, int, int, int); +int (*snd_seq_disconnect_to_dylibloader_wrapper_asound)( snd_seq_t*, int, int, int); +int (*snd_seq_set_client_name_dylibloader_wrapper_asound)( snd_seq_t*,const char*); +int (*snd_seq_set_client_event_filter_dylibloader_wrapper_asound)( snd_seq_t*, int); +int (*snd_seq_set_client_pool_output_dylibloader_wrapper_asound)( snd_seq_t*, size_t); +int (*snd_seq_set_client_pool_output_room_dylibloader_wrapper_asound)( snd_seq_t*, size_t); +int (*snd_seq_set_client_pool_input_dylibloader_wrapper_asound)( snd_seq_t*, size_t); +int (*snd_seq_sync_output_queue_dylibloader_wrapper_asound)( snd_seq_t*); +int (*snd_seq_parse_address_dylibloader_wrapper_asound)( snd_seq_t*, snd_seq_addr_t*,const char*); +int (*snd_seq_reset_pool_output_dylibloader_wrapper_asound)( snd_seq_t*); +int (*snd_seq_reset_pool_input_dylibloader_wrapper_asound)( snd_seq_t*); +int (*snd_midi_event_new_dylibloader_wrapper_asound)( size_t, snd_midi_event_t**); +int (*snd_midi_event_resize_buffer_dylibloader_wrapper_asound)( snd_midi_event_t*, size_t); +void (*snd_midi_event_free_dylibloader_wrapper_asound)( snd_midi_event_t*); +void (*snd_midi_event_init_dylibloader_wrapper_asound)( snd_midi_event_t*); +void (*snd_midi_event_reset_encode_dylibloader_wrapper_asound)( snd_midi_event_t*); +void (*snd_midi_event_reset_decode_dylibloader_wrapper_asound)( snd_midi_event_t*); +void (*snd_midi_event_no_status_dylibloader_wrapper_asound)( snd_midi_event_t*, int); +long (*snd_midi_event_encode_dylibloader_wrapper_asound)( snd_midi_event_t*,const unsigned char*, long, snd_seq_event_t*); +int (*snd_midi_event_encode_byte_dylibloader_wrapper_asound)( snd_midi_event_t*, int, snd_seq_event_t*); +long (*snd_midi_event_decode_dylibloader_wrapper_asound)( snd_midi_event_t*, unsigned char*, long,const snd_seq_event_t*); +int initialize_asound() { + void *handle; + char *error; + handle = dlopen("libasound.so.2", RTLD_LAZY); + if (!handle) { + fprintf(stderr, "%s\n", dlerror()); + return(1); + } + dlerror(); +// snd_asoundlib_version + *(void **) (&snd_asoundlib_version_dylibloader_wrapper_asound) = dlsym(handle, "snd_asoundlib_version"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_dlpath + *(void **) (&snd_dlpath_dylibloader_wrapper_asound) = dlsym(handle, "snd_dlpath"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_dlopen + *(void **) (&snd_dlopen_dylibloader_wrapper_asound) = dlsym(handle, "snd_dlopen"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_dlsym + *(void **) (&snd_dlsym_dylibloader_wrapper_asound) = dlsym(handle, "snd_dlsym"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_dlclose + *(void **) (&snd_dlclose_dylibloader_wrapper_asound) = dlsym(handle, "snd_dlclose"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_async_add_handler + *(void **) (&snd_async_add_handler_dylibloader_wrapper_asound) = dlsym(handle, "snd_async_add_handler"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_async_del_handler + *(void **) (&snd_async_del_handler_dylibloader_wrapper_asound) = dlsym(handle, "snd_async_del_handler"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_async_handler_get_fd + *(void **) (&snd_async_handler_get_fd_dylibloader_wrapper_asound) = dlsym(handle, "snd_async_handler_get_fd"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_async_handler_get_signo + *(void **) (&snd_async_handler_get_signo_dylibloader_wrapper_asound) = dlsym(handle, "snd_async_handler_get_signo"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_async_handler_get_callback_private + *(void **) (&snd_async_handler_get_callback_private_dylibloader_wrapper_asound) = dlsym(handle, "snd_async_handler_get_callback_private"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_shm_area_create + *(void **) (&snd_shm_area_create_dylibloader_wrapper_asound) = dlsym(handle, "snd_shm_area_create"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_shm_area_share + *(void **) (&snd_shm_area_share_dylibloader_wrapper_asound) = dlsym(handle, "snd_shm_area_share"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_shm_area_destroy + *(void **) (&snd_shm_area_destroy_dylibloader_wrapper_asound) = dlsym(handle, "snd_shm_area_destroy"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_user_file + *(void **) (&snd_user_file_dylibloader_wrapper_asound) = dlsym(handle, "snd_user_file"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_input_stdio_open + *(void **) (&snd_input_stdio_open_dylibloader_wrapper_asound) = dlsym(handle, "snd_input_stdio_open"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_input_stdio_attach + *(void **) (&snd_input_stdio_attach_dylibloader_wrapper_asound) = dlsym(handle, "snd_input_stdio_attach"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_input_buffer_open + *(void **) (&snd_input_buffer_open_dylibloader_wrapper_asound) = dlsym(handle, "snd_input_buffer_open"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_input_close + *(void **) (&snd_input_close_dylibloader_wrapper_asound) = dlsym(handle, "snd_input_close"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_input_scanf + *(void **) (&snd_input_scanf_dylibloader_wrapper_asound) = dlsym(handle, "snd_input_scanf"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_input_gets + *(void **) (&snd_input_gets_dylibloader_wrapper_asound) = dlsym(handle, "snd_input_gets"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_input_getc + *(void **) (&snd_input_getc_dylibloader_wrapper_asound) = dlsym(handle, "snd_input_getc"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_input_ungetc + *(void **) (&snd_input_ungetc_dylibloader_wrapper_asound) = dlsym(handle, "snd_input_ungetc"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_output_stdio_open + *(void **) (&snd_output_stdio_open_dylibloader_wrapper_asound) = dlsym(handle, "snd_output_stdio_open"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_output_stdio_attach + *(void **) (&snd_output_stdio_attach_dylibloader_wrapper_asound) = dlsym(handle, "snd_output_stdio_attach"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_output_buffer_open + *(void **) (&snd_output_buffer_open_dylibloader_wrapper_asound) = dlsym(handle, "snd_output_buffer_open"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_output_buffer_string + *(void **) (&snd_output_buffer_string_dylibloader_wrapper_asound) = dlsym(handle, "snd_output_buffer_string"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_output_close + *(void **) (&snd_output_close_dylibloader_wrapper_asound) = dlsym(handle, "snd_output_close"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_output_printf + *(void **) (&snd_output_printf_dylibloader_wrapper_asound) = dlsym(handle, "snd_output_printf"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_output_vprintf + *(void **) (&snd_output_vprintf_dylibloader_wrapper_asound) = dlsym(handle, "snd_output_vprintf"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_output_puts + *(void **) (&snd_output_puts_dylibloader_wrapper_asound) = dlsym(handle, "snd_output_puts"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_output_putc + *(void **) (&snd_output_putc_dylibloader_wrapper_asound) = dlsym(handle, "snd_output_putc"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_output_flush + *(void **) (&snd_output_flush_dylibloader_wrapper_asound) = dlsym(handle, "snd_output_flush"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_strerror + *(void **) (&snd_strerror_dylibloader_wrapper_asound) = dlsym(handle, "snd_strerror"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_lib_error_set_handler + *(void **) (&snd_lib_error_set_handler_dylibloader_wrapper_asound) = dlsym(handle, "snd_lib_error_set_handler"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_lib_error_set_local + *(void **) (&snd_lib_error_set_local_dylibloader_wrapper_asound) = dlsym(handle, "snd_lib_error_set_local"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_config_topdir + *(void **) (&snd_config_topdir_dylibloader_wrapper_asound) = dlsym(handle, "snd_config_topdir"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_config_top + *(void **) (&snd_config_top_dylibloader_wrapper_asound) = dlsym(handle, "snd_config_top"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_config_load + *(void **) (&snd_config_load_dylibloader_wrapper_asound) = dlsym(handle, "snd_config_load"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_config_load_override + *(void **) (&snd_config_load_override_dylibloader_wrapper_asound) = dlsym(handle, "snd_config_load_override"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_config_save + *(void **) (&snd_config_save_dylibloader_wrapper_asound) = dlsym(handle, "snd_config_save"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_config_update + *(void **) (&snd_config_update_dylibloader_wrapper_asound) = dlsym(handle, "snd_config_update"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_config_update_r + *(void **) (&snd_config_update_r_dylibloader_wrapper_asound) = dlsym(handle, "snd_config_update_r"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_config_update_free + *(void **) (&snd_config_update_free_dylibloader_wrapper_asound) = dlsym(handle, "snd_config_update_free"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_config_update_free_global + *(void **) (&snd_config_update_free_global_dylibloader_wrapper_asound) = dlsym(handle, "snd_config_update_free_global"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_config_update_ref + *(void **) (&snd_config_update_ref_dylibloader_wrapper_asound) = dlsym(handle, "snd_config_update_ref"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_config_ref + *(void **) (&snd_config_ref_dylibloader_wrapper_asound) = dlsym(handle, "snd_config_ref"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_config_unref + *(void **) (&snd_config_unref_dylibloader_wrapper_asound) = dlsym(handle, "snd_config_unref"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_config_search + *(void **) (&snd_config_search_dylibloader_wrapper_asound) = dlsym(handle, "snd_config_search"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_config_searchv + *(void **) (&snd_config_searchv_dylibloader_wrapper_asound) = dlsym(handle, "snd_config_searchv"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_config_search_definition + *(void **) (&snd_config_search_definition_dylibloader_wrapper_asound) = dlsym(handle, "snd_config_search_definition"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_config_expand + *(void **) (&snd_config_expand_dylibloader_wrapper_asound) = dlsym(handle, "snd_config_expand"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_config_evaluate + *(void **) (&snd_config_evaluate_dylibloader_wrapper_asound) = dlsym(handle, "snd_config_evaluate"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_config_add + *(void **) (&snd_config_add_dylibloader_wrapper_asound) = dlsym(handle, "snd_config_add"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_config_add_before + *(void **) (&snd_config_add_before_dylibloader_wrapper_asound) = dlsym(handle, "snd_config_add_before"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_config_add_after + *(void **) (&snd_config_add_after_dylibloader_wrapper_asound) = dlsym(handle, "snd_config_add_after"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_config_remove + *(void **) (&snd_config_remove_dylibloader_wrapper_asound) = dlsym(handle, "snd_config_remove"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_config_delete + *(void **) (&snd_config_delete_dylibloader_wrapper_asound) = dlsym(handle, "snd_config_delete"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_config_delete_compound_members + *(void **) (&snd_config_delete_compound_members_dylibloader_wrapper_asound) = dlsym(handle, "snd_config_delete_compound_members"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_config_copy + *(void **) (&snd_config_copy_dylibloader_wrapper_asound) = dlsym(handle, "snd_config_copy"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_config_make + *(void **) (&snd_config_make_dylibloader_wrapper_asound) = dlsym(handle, "snd_config_make"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_config_make_integer + *(void **) (&snd_config_make_integer_dylibloader_wrapper_asound) = dlsym(handle, "snd_config_make_integer"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_config_make_integer64 + *(void **) (&snd_config_make_integer64_dylibloader_wrapper_asound) = dlsym(handle, "snd_config_make_integer64"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_config_make_real + *(void **) (&snd_config_make_real_dylibloader_wrapper_asound) = dlsym(handle, "snd_config_make_real"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_config_make_string + *(void **) (&snd_config_make_string_dylibloader_wrapper_asound) = dlsym(handle, "snd_config_make_string"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_config_make_pointer + *(void **) (&snd_config_make_pointer_dylibloader_wrapper_asound) = dlsym(handle, "snd_config_make_pointer"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_config_make_compound + *(void **) (&snd_config_make_compound_dylibloader_wrapper_asound) = dlsym(handle, "snd_config_make_compound"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_config_imake_integer + *(void **) (&snd_config_imake_integer_dylibloader_wrapper_asound) = dlsym(handle, "snd_config_imake_integer"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_config_imake_integer64 + *(void **) (&snd_config_imake_integer64_dylibloader_wrapper_asound) = dlsym(handle, "snd_config_imake_integer64"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_config_imake_real + *(void **) (&snd_config_imake_real_dylibloader_wrapper_asound) = dlsym(handle, "snd_config_imake_real"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_config_imake_string + *(void **) (&snd_config_imake_string_dylibloader_wrapper_asound) = dlsym(handle, "snd_config_imake_string"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_config_imake_safe_string + *(void **) (&snd_config_imake_safe_string_dylibloader_wrapper_asound) = dlsym(handle, "snd_config_imake_safe_string"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_config_imake_pointer + *(void **) (&snd_config_imake_pointer_dylibloader_wrapper_asound) = dlsym(handle, "snd_config_imake_pointer"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_config_get_type + *(void **) (&snd_config_get_type_dylibloader_wrapper_asound) = dlsym(handle, "snd_config_get_type"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_config_is_array + *(void **) (&snd_config_is_array_dylibloader_wrapper_asound) = dlsym(handle, "snd_config_is_array"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_config_set_id + *(void **) (&snd_config_set_id_dylibloader_wrapper_asound) = dlsym(handle, "snd_config_set_id"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_config_set_integer + *(void **) (&snd_config_set_integer_dylibloader_wrapper_asound) = dlsym(handle, "snd_config_set_integer"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_config_set_integer64 + *(void **) (&snd_config_set_integer64_dylibloader_wrapper_asound) = dlsym(handle, "snd_config_set_integer64"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_config_set_real + *(void **) (&snd_config_set_real_dylibloader_wrapper_asound) = dlsym(handle, "snd_config_set_real"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_config_set_string + *(void **) (&snd_config_set_string_dylibloader_wrapper_asound) = dlsym(handle, "snd_config_set_string"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_config_set_ascii + *(void **) (&snd_config_set_ascii_dylibloader_wrapper_asound) = dlsym(handle, "snd_config_set_ascii"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_config_set_pointer + *(void **) (&snd_config_set_pointer_dylibloader_wrapper_asound) = dlsym(handle, "snd_config_set_pointer"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_config_get_id + *(void **) (&snd_config_get_id_dylibloader_wrapper_asound) = dlsym(handle, "snd_config_get_id"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_config_get_integer + *(void **) (&snd_config_get_integer_dylibloader_wrapper_asound) = dlsym(handle, "snd_config_get_integer"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_config_get_integer64 + *(void **) (&snd_config_get_integer64_dylibloader_wrapper_asound) = dlsym(handle, "snd_config_get_integer64"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_config_get_real + *(void **) (&snd_config_get_real_dylibloader_wrapper_asound) = dlsym(handle, "snd_config_get_real"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_config_get_ireal + *(void **) (&snd_config_get_ireal_dylibloader_wrapper_asound) = dlsym(handle, "snd_config_get_ireal"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_config_get_string + *(void **) (&snd_config_get_string_dylibloader_wrapper_asound) = dlsym(handle, "snd_config_get_string"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_config_get_ascii + *(void **) (&snd_config_get_ascii_dylibloader_wrapper_asound) = dlsym(handle, "snd_config_get_ascii"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_config_get_pointer + *(void **) (&snd_config_get_pointer_dylibloader_wrapper_asound) = dlsym(handle, "snd_config_get_pointer"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_config_test_id + *(void **) (&snd_config_test_id_dylibloader_wrapper_asound) = dlsym(handle, "snd_config_test_id"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_config_iterator_first + *(void **) (&snd_config_iterator_first_dylibloader_wrapper_asound) = dlsym(handle, "snd_config_iterator_first"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_config_iterator_next + *(void **) (&snd_config_iterator_next_dylibloader_wrapper_asound) = dlsym(handle, "snd_config_iterator_next"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_config_iterator_end + *(void **) (&snd_config_iterator_end_dylibloader_wrapper_asound) = dlsym(handle, "snd_config_iterator_end"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_config_iterator_entry + *(void **) (&snd_config_iterator_entry_dylibloader_wrapper_asound) = dlsym(handle, "snd_config_iterator_entry"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_config_get_bool_ascii + *(void **) (&snd_config_get_bool_ascii_dylibloader_wrapper_asound) = dlsym(handle, "snd_config_get_bool_ascii"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_config_get_bool + *(void **) (&snd_config_get_bool_dylibloader_wrapper_asound) = dlsym(handle, "snd_config_get_bool"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_config_get_ctl_iface_ascii + *(void **) (&snd_config_get_ctl_iface_ascii_dylibloader_wrapper_asound) = dlsym(handle, "snd_config_get_ctl_iface_ascii"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_config_get_ctl_iface + *(void **) (&snd_config_get_ctl_iface_dylibloader_wrapper_asound) = dlsym(handle, "snd_config_get_ctl_iface"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_names_list + *(void **) (&snd_names_list_dylibloader_wrapper_asound) = dlsym(handle, "snd_names_list"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_names_list_free + *(void **) (&snd_names_list_free_dylibloader_wrapper_asound) = dlsym(handle, "snd_names_list_free"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_open + *(void **) (&snd_pcm_open_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_open"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_open_lconf + *(void **) (&snd_pcm_open_lconf_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_open_lconf"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_open_fallback + *(void **) (&snd_pcm_open_fallback_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_open_fallback"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_close + *(void **) (&snd_pcm_close_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_close"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_name + *(void **) (&snd_pcm_name_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_name"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_type + *(void **) (&snd_pcm_type_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_type"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_stream + *(void **) (&snd_pcm_stream_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_stream"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_poll_descriptors_count + *(void **) (&snd_pcm_poll_descriptors_count_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_poll_descriptors_count"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_poll_descriptors + *(void **) (&snd_pcm_poll_descriptors_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_poll_descriptors"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_poll_descriptors_revents + *(void **) (&snd_pcm_poll_descriptors_revents_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_poll_descriptors_revents"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_nonblock + *(void **) (&snd_pcm_nonblock_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_nonblock"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_async_add_pcm_handler + *(void **) (&snd_async_add_pcm_handler_dylibloader_wrapper_asound) = dlsym(handle, "snd_async_add_pcm_handler"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_async_handler_get_pcm + *(void **) (&snd_async_handler_get_pcm_dylibloader_wrapper_asound) = dlsym(handle, "snd_async_handler_get_pcm"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_info + *(void **) (&snd_pcm_info_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_info"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_hw_params_current + *(void **) (&snd_pcm_hw_params_current_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_hw_params_current"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_hw_params + *(void **) (&snd_pcm_hw_params_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_hw_params"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_hw_free + *(void **) (&snd_pcm_hw_free_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_hw_free"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_sw_params_current + *(void **) (&snd_pcm_sw_params_current_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_sw_params_current"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_sw_params + *(void **) (&snd_pcm_sw_params_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_sw_params"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_prepare + *(void **) (&snd_pcm_prepare_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_prepare"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_reset + *(void **) (&snd_pcm_reset_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_reset"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_status + *(void **) (&snd_pcm_status_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_status"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_start + *(void **) (&snd_pcm_start_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_start"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_drop + *(void **) (&snd_pcm_drop_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_drop"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_drain + *(void **) (&snd_pcm_drain_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_drain"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_pause + *(void **) (&snd_pcm_pause_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_pause"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_state + *(void **) (&snd_pcm_state_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_state"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_hwsync + *(void **) (&snd_pcm_hwsync_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_hwsync"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_delay + *(void **) (&snd_pcm_delay_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_delay"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_resume + *(void **) (&snd_pcm_resume_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_resume"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_htimestamp + *(void **) (&snd_pcm_htimestamp_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_htimestamp"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_avail + *(void **) (&snd_pcm_avail_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_avail"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_avail_update + *(void **) (&snd_pcm_avail_update_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_avail_update"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_avail_delay + *(void **) (&snd_pcm_avail_delay_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_avail_delay"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_rewindable + *(void **) (&snd_pcm_rewindable_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_rewindable"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_rewind + *(void **) (&snd_pcm_rewind_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_rewind"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_forwardable + *(void **) (&snd_pcm_forwardable_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_forwardable"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_forward + *(void **) (&snd_pcm_forward_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_forward"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_writei + *(void **) (&snd_pcm_writei_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_writei"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_readi + *(void **) (&snd_pcm_readi_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_readi"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_writen + *(void **) (&snd_pcm_writen_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_writen"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_readn + *(void **) (&snd_pcm_readn_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_readn"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_wait + *(void **) (&snd_pcm_wait_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_wait"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_link + *(void **) (&snd_pcm_link_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_link"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_unlink + *(void **) (&snd_pcm_unlink_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_unlink"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_query_chmaps + *(void **) (&snd_pcm_query_chmaps_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_query_chmaps"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_query_chmaps_from_hw + *(void **) (&snd_pcm_query_chmaps_from_hw_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_query_chmaps_from_hw"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_free_chmaps + *(void **) (&snd_pcm_free_chmaps_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_free_chmaps"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_get_chmap + *(void **) (&snd_pcm_get_chmap_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_get_chmap"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_set_chmap + *(void **) (&snd_pcm_set_chmap_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_set_chmap"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_chmap_type_name + *(void **) (&snd_pcm_chmap_type_name_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_chmap_type_name"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_chmap_name + *(void **) (&snd_pcm_chmap_name_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_chmap_name"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_chmap_long_name + *(void **) (&snd_pcm_chmap_long_name_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_chmap_long_name"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_chmap_print + *(void **) (&snd_pcm_chmap_print_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_chmap_print"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_chmap_from_string + *(void **) (&snd_pcm_chmap_from_string_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_chmap_from_string"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_chmap_parse_string + *(void **) (&snd_pcm_chmap_parse_string_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_chmap_parse_string"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_recover + *(void **) (&snd_pcm_recover_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_recover"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_set_params + *(void **) (&snd_pcm_set_params_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_set_params"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_get_params + *(void **) (&snd_pcm_get_params_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_get_params"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_info_sizeof + *(void **) (&snd_pcm_info_sizeof_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_info_sizeof"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_info_malloc + *(void **) (&snd_pcm_info_malloc_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_info_malloc"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_info_free + *(void **) (&snd_pcm_info_free_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_info_free"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_info_copy + *(void **) (&snd_pcm_info_copy_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_info_copy"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_info_get_device + *(void **) (&snd_pcm_info_get_device_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_info_get_device"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_info_get_subdevice + *(void **) (&snd_pcm_info_get_subdevice_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_info_get_subdevice"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_info_get_stream + *(void **) (&snd_pcm_info_get_stream_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_info_get_stream"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_info_get_card + *(void **) (&snd_pcm_info_get_card_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_info_get_card"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_info_get_id + *(void **) (&snd_pcm_info_get_id_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_info_get_id"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_info_get_name + *(void **) (&snd_pcm_info_get_name_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_info_get_name"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_info_get_subdevice_name + *(void **) (&snd_pcm_info_get_subdevice_name_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_info_get_subdevice_name"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_info_get_class + *(void **) (&snd_pcm_info_get_class_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_info_get_class"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_info_get_subclass + *(void **) (&snd_pcm_info_get_subclass_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_info_get_subclass"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_info_get_subdevices_count + *(void **) (&snd_pcm_info_get_subdevices_count_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_info_get_subdevices_count"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_info_get_subdevices_avail + *(void **) (&snd_pcm_info_get_subdevices_avail_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_info_get_subdevices_avail"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_info_get_sync + *(void **) (&snd_pcm_info_get_sync_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_info_get_sync"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_info_set_device + *(void **) (&snd_pcm_info_set_device_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_info_set_device"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_info_set_subdevice + *(void **) (&snd_pcm_info_set_subdevice_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_info_set_subdevice"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_info_set_stream + *(void **) (&snd_pcm_info_set_stream_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_info_set_stream"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_hw_params_any + *(void **) (&snd_pcm_hw_params_any_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_hw_params_any"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_hw_params_can_mmap_sample_resolution + *(void **) (&snd_pcm_hw_params_can_mmap_sample_resolution_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_hw_params_can_mmap_sample_resolution"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_hw_params_is_double + *(void **) (&snd_pcm_hw_params_is_double_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_hw_params_is_double"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_hw_params_is_batch + *(void **) (&snd_pcm_hw_params_is_batch_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_hw_params_is_batch"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_hw_params_is_block_transfer + *(void **) (&snd_pcm_hw_params_is_block_transfer_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_hw_params_is_block_transfer"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_hw_params_is_monotonic + *(void **) (&snd_pcm_hw_params_is_monotonic_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_hw_params_is_monotonic"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_hw_params_can_overrange + *(void **) (&snd_pcm_hw_params_can_overrange_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_hw_params_can_overrange"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_hw_params_can_pause + *(void **) (&snd_pcm_hw_params_can_pause_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_hw_params_can_pause"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_hw_params_can_resume + *(void **) (&snd_pcm_hw_params_can_resume_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_hw_params_can_resume"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_hw_params_is_half_duplex + *(void **) (&snd_pcm_hw_params_is_half_duplex_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_hw_params_is_half_duplex"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_hw_params_is_joint_duplex + *(void **) (&snd_pcm_hw_params_is_joint_duplex_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_hw_params_is_joint_duplex"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_hw_params_can_sync_start + *(void **) (&snd_pcm_hw_params_can_sync_start_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_hw_params_can_sync_start"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_hw_params_can_disable_period_wakeup + *(void **) (&snd_pcm_hw_params_can_disable_period_wakeup_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_hw_params_can_disable_period_wakeup"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_hw_params_supports_audio_wallclock_ts + *(void **) (&snd_pcm_hw_params_supports_audio_wallclock_ts_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_hw_params_supports_audio_wallclock_ts"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_hw_params_supports_audio_ts_type + *(void **) (&snd_pcm_hw_params_supports_audio_ts_type_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_hw_params_supports_audio_ts_type"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_hw_params_get_rate_numden + *(void **) (&snd_pcm_hw_params_get_rate_numden_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_hw_params_get_rate_numden"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_hw_params_get_sbits + *(void **) (&snd_pcm_hw_params_get_sbits_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_hw_params_get_sbits"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_hw_params_get_fifo_size + *(void **) (&snd_pcm_hw_params_get_fifo_size_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_hw_params_get_fifo_size"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_hw_params_sizeof + *(void **) (&snd_pcm_hw_params_sizeof_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_hw_params_sizeof"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_hw_params_malloc + *(void **) (&snd_pcm_hw_params_malloc_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_hw_params_malloc"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_hw_params_free + *(void **) (&snd_pcm_hw_params_free_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_hw_params_free"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_hw_params_copy + *(void **) (&snd_pcm_hw_params_copy_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_hw_params_copy"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_hw_params_get_access + *(void **) (&snd_pcm_hw_params_get_access_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_hw_params_get_access"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_hw_params_test_access + *(void **) (&snd_pcm_hw_params_test_access_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_hw_params_test_access"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_hw_params_set_access + *(void **) (&snd_pcm_hw_params_set_access_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_hw_params_set_access"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_hw_params_set_access_first + *(void **) (&snd_pcm_hw_params_set_access_first_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_hw_params_set_access_first"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_hw_params_set_access_last + *(void **) (&snd_pcm_hw_params_set_access_last_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_hw_params_set_access_last"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_hw_params_set_access_mask + *(void **) (&snd_pcm_hw_params_set_access_mask_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_hw_params_set_access_mask"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_hw_params_get_access_mask + *(void **) (&snd_pcm_hw_params_get_access_mask_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_hw_params_get_access_mask"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_hw_params_get_format + *(void **) (&snd_pcm_hw_params_get_format_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_hw_params_get_format"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_hw_params_test_format + *(void **) (&snd_pcm_hw_params_test_format_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_hw_params_test_format"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_hw_params_set_format + *(void **) (&snd_pcm_hw_params_set_format_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_hw_params_set_format"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_hw_params_set_format_first + *(void **) (&snd_pcm_hw_params_set_format_first_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_hw_params_set_format_first"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_hw_params_set_format_last + *(void **) (&snd_pcm_hw_params_set_format_last_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_hw_params_set_format_last"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_hw_params_set_format_mask + *(void **) (&snd_pcm_hw_params_set_format_mask_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_hw_params_set_format_mask"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_hw_params_get_format_mask + *(void **) (&snd_pcm_hw_params_get_format_mask_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_hw_params_get_format_mask"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_hw_params_get_subformat + *(void **) (&snd_pcm_hw_params_get_subformat_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_hw_params_get_subformat"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_hw_params_test_subformat + *(void **) (&snd_pcm_hw_params_test_subformat_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_hw_params_test_subformat"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_hw_params_set_subformat + *(void **) (&snd_pcm_hw_params_set_subformat_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_hw_params_set_subformat"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_hw_params_set_subformat_first + *(void **) (&snd_pcm_hw_params_set_subformat_first_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_hw_params_set_subformat_first"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_hw_params_set_subformat_last + *(void **) (&snd_pcm_hw_params_set_subformat_last_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_hw_params_set_subformat_last"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_hw_params_set_subformat_mask + *(void **) (&snd_pcm_hw_params_set_subformat_mask_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_hw_params_set_subformat_mask"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_hw_params_get_subformat_mask + *(void **) (&snd_pcm_hw_params_get_subformat_mask_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_hw_params_get_subformat_mask"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_hw_params_get_channels + *(void **) (&snd_pcm_hw_params_get_channels_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_hw_params_get_channels"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_hw_params_get_channels_min + *(void **) (&snd_pcm_hw_params_get_channels_min_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_hw_params_get_channels_min"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_hw_params_get_channels_max + *(void **) (&snd_pcm_hw_params_get_channels_max_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_hw_params_get_channels_max"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_hw_params_test_channels + *(void **) (&snd_pcm_hw_params_test_channels_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_hw_params_test_channels"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_hw_params_set_channels + *(void **) (&snd_pcm_hw_params_set_channels_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_hw_params_set_channels"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_hw_params_set_channels_min + *(void **) (&snd_pcm_hw_params_set_channels_min_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_hw_params_set_channels_min"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_hw_params_set_channels_max + *(void **) (&snd_pcm_hw_params_set_channels_max_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_hw_params_set_channels_max"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_hw_params_set_channels_minmax + *(void **) (&snd_pcm_hw_params_set_channels_minmax_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_hw_params_set_channels_minmax"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_hw_params_set_channels_near + *(void **) (&snd_pcm_hw_params_set_channels_near_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_hw_params_set_channels_near"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_hw_params_set_channels_first + *(void **) (&snd_pcm_hw_params_set_channels_first_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_hw_params_set_channels_first"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_hw_params_set_channels_last + *(void **) (&snd_pcm_hw_params_set_channels_last_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_hw_params_set_channels_last"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_hw_params_get_rate + *(void **) (&snd_pcm_hw_params_get_rate_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_hw_params_get_rate"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_hw_params_get_rate_min + *(void **) (&snd_pcm_hw_params_get_rate_min_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_hw_params_get_rate_min"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_hw_params_get_rate_max + *(void **) (&snd_pcm_hw_params_get_rate_max_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_hw_params_get_rate_max"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_hw_params_test_rate + *(void **) (&snd_pcm_hw_params_test_rate_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_hw_params_test_rate"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_hw_params_set_rate + *(void **) (&snd_pcm_hw_params_set_rate_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_hw_params_set_rate"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_hw_params_set_rate_min + *(void **) (&snd_pcm_hw_params_set_rate_min_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_hw_params_set_rate_min"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_hw_params_set_rate_max + *(void **) (&snd_pcm_hw_params_set_rate_max_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_hw_params_set_rate_max"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_hw_params_set_rate_minmax + *(void **) (&snd_pcm_hw_params_set_rate_minmax_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_hw_params_set_rate_minmax"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_hw_params_set_rate_near + *(void **) (&snd_pcm_hw_params_set_rate_near_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_hw_params_set_rate_near"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_hw_params_set_rate_first + *(void **) (&snd_pcm_hw_params_set_rate_first_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_hw_params_set_rate_first"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_hw_params_set_rate_last + *(void **) (&snd_pcm_hw_params_set_rate_last_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_hw_params_set_rate_last"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_hw_params_set_rate_resample + *(void **) (&snd_pcm_hw_params_set_rate_resample_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_hw_params_set_rate_resample"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_hw_params_get_rate_resample + *(void **) (&snd_pcm_hw_params_get_rate_resample_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_hw_params_get_rate_resample"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_hw_params_set_export_buffer + *(void **) (&snd_pcm_hw_params_set_export_buffer_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_hw_params_set_export_buffer"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_hw_params_get_export_buffer + *(void **) (&snd_pcm_hw_params_get_export_buffer_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_hw_params_get_export_buffer"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_hw_params_set_period_wakeup + *(void **) (&snd_pcm_hw_params_set_period_wakeup_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_hw_params_set_period_wakeup"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_hw_params_get_period_wakeup + *(void **) (&snd_pcm_hw_params_get_period_wakeup_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_hw_params_get_period_wakeup"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_hw_params_get_period_time + *(void **) (&snd_pcm_hw_params_get_period_time_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_hw_params_get_period_time"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_hw_params_get_period_time_min + *(void **) (&snd_pcm_hw_params_get_period_time_min_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_hw_params_get_period_time_min"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_hw_params_get_period_time_max + *(void **) (&snd_pcm_hw_params_get_period_time_max_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_hw_params_get_period_time_max"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_hw_params_test_period_time + *(void **) (&snd_pcm_hw_params_test_period_time_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_hw_params_test_period_time"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_hw_params_set_period_time + *(void **) (&snd_pcm_hw_params_set_period_time_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_hw_params_set_period_time"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_hw_params_set_period_time_min + *(void **) (&snd_pcm_hw_params_set_period_time_min_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_hw_params_set_period_time_min"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_hw_params_set_period_time_max + *(void **) (&snd_pcm_hw_params_set_period_time_max_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_hw_params_set_period_time_max"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_hw_params_set_period_time_minmax + *(void **) (&snd_pcm_hw_params_set_period_time_minmax_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_hw_params_set_period_time_minmax"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_hw_params_set_period_time_near + *(void **) (&snd_pcm_hw_params_set_period_time_near_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_hw_params_set_period_time_near"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_hw_params_set_period_time_first + *(void **) (&snd_pcm_hw_params_set_period_time_first_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_hw_params_set_period_time_first"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_hw_params_set_period_time_last + *(void **) (&snd_pcm_hw_params_set_period_time_last_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_hw_params_set_period_time_last"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_hw_params_get_period_size + *(void **) (&snd_pcm_hw_params_get_period_size_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_hw_params_get_period_size"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_hw_params_get_period_size_min + *(void **) (&snd_pcm_hw_params_get_period_size_min_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_hw_params_get_period_size_min"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_hw_params_get_period_size_max + *(void **) (&snd_pcm_hw_params_get_period_size_max_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_hw_params_get_period_size_max"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_hw_params_test_period_size + *(void **) (&snd_pcm_hw_params_test_period_size_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_hw_params_test_period_size"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_hw_params_set_period_size + *(void **) (&snd_pcm_hw_params_set_period_size_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_hw_params_set_period_size"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_hw_params_set_period_size_min + *(void **) (&snd_pcm_hw_params_set_period_size_min_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_hw_params_set_period_size_min"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_hw_params_set_period_size_max + *(void **) (&snd_pcm_hw_params_set_period_size_max_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_hw_params_set_period_size_max"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_hw_params_set_period_size_minmax + *(void **) (&snd_pcm_hw_params_set_period_size_minmax_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_hw_params_set_period_size_minmax"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_hw_params_set_period_size_near + *(void **) (&snd_pcm_hw_params_set_period_size_near_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_hw_params_set_period_size_near"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_hw_params_set_period_size_first + *(void **) (&snd_pcm_hw_params_set_period_size_first_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_hw_params_set_period_size_first"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_hw_params_set_period_size_last + *(void **) (&snd_pcm_hw_params_set_period_size_last_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_hw_params_set_period_size_last"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_hw_params_set_period_size_integer + *(void **) (&snd_pcm_hw_params_set_period_size_integer_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_hw_params_set_period_size_integer"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_hw_params_get_periods + *(void **) (&snd_pcm_hw_params_get_periods_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_hw_params_get_periods"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_hw_params_get_periods_min + *(void **) (&snd_pcm_hw_params_get_periods_min_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_hw_params_get_periods_min"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_hw_params_get_periods_max + *(void **) (&snd_pcm_hw_params_get_periods_max_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_hw_params_get_periods_max"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_hw_params_test_periods + *(void **) (&snd_pcm_hw_params_test_periods_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_hw_params_test_periods"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_hw_params_set_periods + *(void **) (&snd_pcm_hw_params_set_periods_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_hw_params_set_periods"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_hw_params_set_periods_min + *(void **) (&snd_pcm_hw_params_set_periods_min_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_hw_params_set_periods_min"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_hw_params_set_periods_max + *(void **) (&snd_pcm_hw_params_set_periods_max_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_hw_params_set_periods_max"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_hw_params_set_periods_minmax + *(void **) (&snd_pcm_hw_params_set_periods_minmax_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_hw_params_set_periods_minmax"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_hw_params_set_periods_near + *(void **) (&snd_pcm_hw_params_set_periods_near_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_hw_params_set_periods_near"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_hw_params_set_periods_first + *(void **) (&snd_pcm_hw_params_set_periods_first_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_hw_params_set_periods_first"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_hw_params_set_periods_last + *(void **) (&snd_pcm_hw_params_set_periods_last_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_hw_params_set_periods_last"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_hw_params_set_periods_integer + *(void **) (&snd_pcm_hw_params_set_periods_integer_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_hw_params_set_periods_integer"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_hw_params_get_buffer_time + *(void **) (&snd_pcm_hw_params_get_buffer_time_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_hw_params_get_buffer_time"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_hw_params_get_buffer_time_min + *(void **) (&snd_pcm_hw_params_get_buffer_time_min_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_hw_params_get_buffer_time_min"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_hw_params_get_buffer_time_max + *(void **) (&snd_pcm_hw_params_get_buffer_time_max_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_hw_params_get_buffer_time_max"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_hw_params_test_buffer_time + *(void **) (&snd_pcm_hw_params_test_buffer_time_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_hw_params_test_buffer_time"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_hw_params_set_buffer_time + *(void **) (&snd_pcm_hw_params_set_buffer_time_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_hw_params_set_buffer_time"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_hw_params_set_buffer_time_min + *(void **) (&snd_pcm_hw_params_set_buffer_time_min_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_hw_params_set_buffer_time_min"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_hw_params_set_buffer_time_max + *(void **) (&snd_pcm_hw_params_set_buffer_time_max_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_hw_params_set_buffer_time_max"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_hw_params_set_buffer_time_minmax + *(void **) (&snd_pcm_hw_params_set_buffer_time_minmax_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_hw_params_set_buffer_time_minmax"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_hw_params_set_buffer_time_near + *(void **) (&snd_pcm_hw_params_set_buffer_time_near_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_hw_params_set_buffer_time_near"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_hw_params_set_buffer_time_first + *(void **) (&snd_pcm_hw_params_set_buffer_time_first_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_hw_params_set_buffer_time_first"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_hw_params_set_buffer_time_last + *(void **) (&snd_pcm_hw_params_set_buffer_time_last_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_hw_params_set_buffer_time_last"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_hw_params_get_buffer_size + *(void **) (&snd_pcm_hw_params_get_buffer_size_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_hw_params_get_buffer_size"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_hw_params_get_buffer_size_min + *(void **) (&snd_pcm_hw_params_get_buffer_size_min_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_hw_params_get_buffer_size_min"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_hw_params_get_buffer_size_max + *(void **) (&snd_pcm_hw_params_get_buffer_size_max_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_hw_params_get_buffer_size_max"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_hw_params_test_buffer_size + *(void **) (&snd_pcm_hw_params_test_buffer_size_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_hw_params_test_buffer_size"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_hw_params_set_buffer_size + *(void **) (&snd_pcm_hw_params_set_buffer_size_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_hw_params_set_buffer_size"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_hw_params_set_buffer_size_min + *(void **) (&snd_pcm_hw_params_set_buffer_size_min_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_hw_params_set_buffer_size_min"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_hw_params_set_buffer_size_max + *(void **) (&snd_pcm_hw_params_set_buffer_size_max_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_hw_params_set_buffer_size_max"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_hw_params_set_buffer_size_minmax + *(void **) (&snd_pcm_hw_params_set_buffer_size_minmax_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_hw_params_set_buffer_size_minmax"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_hw_params_set_buffer_size_near + *(void **) (&snd_pcm_hw_params_set_buffer_size_near_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_hw_params_set_buffer_size_near"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_hw_params_set_buffer_size_first + *(void **) (&snd_pcm_hw_params_set_buffer_size_first_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_hw_params_set_buffer_size_first"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_hw_params_set_buffer_size_last + *(void **) (&snd_pcm_hw_params_set_buffer_size_last_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_hw_params_set_buffer_size_last"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_hw_params_get_min_align + *(void **) (&snd_pcm_hw_params_get_min_align_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_hw_params_get_min_align"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_sw_params_sizeof + *(void **) (&snd_pcm_sw_params_sizeof_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_sw_params_sizeof"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_sw_params_malloc + *(void **) (&snd_pcm_sw_params_malloc_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_sw_params_malloc"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_sw_params_free + *(void **) (&snd_pcm_sw_params_free_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_sw_params_free"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_sw_params_copy + *(void **) (&snd_pcm_sw_params_copy_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_sw_params_copy"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_sw_params_get_boundary + *(void **) (&snd_pcm_sw_params_get_boundary_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_sw_params_get_boundary"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_sw_params_set_tstamp_mode + *(void **) (&snd_pcm_sw_params_set_tstamp_mode_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_sw_params_set_tstamp_mode"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_sw_params_get_tstamp_mode + *(void **) (&snd_pcm_sw_params_get_tstamp_mode_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_sw_params_get_tstamp_mode"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_sw_params_set_tstamp_type + *(void **) (&snd_pcm_sw_params_set_tstamp_type_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_sw_params_set_tstamp_type"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_sw_params_get_tstamp_type + *(void **) (&snd_pcm_sw_params_get_tstamp_type_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_sw_params_get_tstamp_type"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_sw_params_set_avail_min + *(void **) (&snd_pcm_sw_params_set_avail_min_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_sw_params_set_avail_min"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_sw_params_get_avail_min + *(void **) (&snd_pcm_sw_params_get_avail_min_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_sw_params_get_avail_min"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_sw_params_set_period_event + *(void **) (&snd_pcm_sw_params_set_period_event_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_sw_params_set_period_event"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_sw_params_get_period_event + *(void **) (&snd_pcm_sw_params_get_period_event_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_sw_params_get_period_event"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_sw_params_set_start_threshold + *(void **) (&snd_pcm_sw_params_set_start_threshold_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_sw_params_set_start_threshold"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_sw_params_get_start_threshold + *(void **) (&snd_pcm_sw_params_get_start_threshold_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_sw_params_get_start_threshold"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_sw_params_set_stop_threshold + *(void **) (&snd_pcm_sw_params_set_stop_threshold_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_sw_params_set_stop_threshold"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_sw_params_get_stop_threshold + *(void **) (&snd_pcm_sw_params_get_stop_threshold_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_sw_params_get_stop_threshold"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_sw_params_set_silence_threshold + *(void **) (&snd_pcm_sw_params_set_silence_threshold_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_sw_params_set_silence_threshold"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_sw_params_get_silence_threshold + *(void **) (&snd_pcm_sw_params_get_silence_threshold_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_sw_params_get_silence_threshold"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_sw_params_set_silence_size + *(void **) (&snd_pcm_sw_params_set_silence_size_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_sw_params_set_silence_size"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_sw_params_get_silence_size + *(void **) (&snd_pcm_sw_params_get_silence_size_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_sw_params_get_silence_size"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_access_mask_sizeof + *(void **) (&snd_pcm_access_mask_sizeof_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_access_mask_sizeof"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_access_mask_malloc + *(void **) (&snd_pcm_access_mask_malloc_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_access_mask_malloc"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_access_mask_free + *(void **) (&snd_pcm_access_mask_free_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_access_mask_free"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_access_mask_copy + *(void **) (&snd_pcm_access_mask_copy_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_access_mask_copy"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_access_mask_none + *(void **) (&snd_pcm_access_mask_none_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_access_mask_none"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_access_mask_any + *(void **) (&snd_pcm_access_mask_any_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_access_mask_any"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_access_mask_test + *(void **) (&snd_pcm_access_mask_test_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_access_mask_test"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_access_mask_empty + *(void **) (&snd_pcm_access_mask_empty_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_access_mask_empty"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_access_mask_set + *(void **) (&snd_pcm_access_mask_set_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_access_mask_set"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_access_mask_reset + *(void **) (&snd_pcm_access_mask_reset_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_access_mask_reset"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_format_mask_sizeof + *(void **) (&snd_pcm_format_mask_sizeof_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_format_mask_sizeof"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_format_mask_malloc + *(void **) (&snd_pcm_format_mask_malloc_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_format_mask_malloc"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_format_mask_free + *(void **) (&snd_pcm_format_mask_free_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_format_mask_free"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_format_mask_copy + *(void **) (&snd_pcm_format_mask_copy_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_format_mask_copy"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_format_mask_none + *(void **) (&snd_pcm_format_mask_none_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_format_mask_none"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_format_mask_any + *(void **) (&snd_pcm_format_mask_any_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_format_mask_any"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_format_mask_test + *(void **) (&snd_pcm_format_mask_test_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_format_mask_test"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_format_mask_empty + *(void **) (&snd_pcm_format_mask_empty_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_format_mask_empty"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_format_mask_set + *(void **) (&snd_pcm_format_mask_set_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_format_mask_set"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_format_mask_reset + *(void **) (&snd_pcm_format_mask_reset_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_format_mask_reset"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_subformat_mask_sizeof + *(void **) (&snd_pcm_subformat_mask_sizeof_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_subformat_mask_sizeof"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_subformat_mask_malloc + *(void **) (&snd_pcm_subformat_mask_malloc_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_subformat_mask_malloc"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_subformat_mask_free + *(void **) (&snd_pcm_subformat_mask_free_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_subformat_mask_free"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_subformat_mask_copy + *(void **) (&snd_pcm_subformat_mask_copy_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_subformat_mask_copy"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_subformat_mask_none + *(void **) (&snd_pcm_subformat_mask_none_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_subformat_mask_none"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_subformat_mask_any + *(void **) (&snd_pcm_subformat_mask_any_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_subformat_mask_any"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_subformat_mask_test + *(void **) (&snd_pcm_subformat_mask_test_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_subformat_mask_test"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_subformat_mask_empty + *(void **) (&snd_pcm_subformat_mask_empty_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_subformat_mask_empty"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_subformat_mask_set + *(void **) (&snd_pcm_subformat_mask_set_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_subformat_mask_set"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_subformat_mask_reset + *(void **) (&snd_pcm_subformat_mask_reset_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_subformat_mask_reset"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_status_sizeof + *(void **) (&snd_pcm_status_sizeof_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_status_sizeof"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_status_malloc + *(void **) (&snd_pcm_status_malloc_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_status_malloc"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_status_free + *(void **) (&snd_pcm_status_free_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_status_free"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_status_copy + *(void **) (&snd_pcm_status_copy_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_status_copy"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_status_get_state + *(void **) (&snd_pcm_status_get_state_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_status_get_state"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_status_get_trigger_tstamp + *(void **) (&snd_pcm_status_get_trigger_tstamp_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_status_get_trigger_tstamp"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_status_get_trigger_htstamp + *(void **) (&snd_pcm_status_get_trigger_htstamp_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_status_get_trigger_htstamp"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_status_get_tstamp + *(void **) (&snd_pcm_status_get_tstamp_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_status_get_tstamp"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_status_get_htstamp + *(void **) (&snd_pcm_status_get_htstamp_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_status_get_htstamp"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_status_get_audio_htstamp + *(void **) (&snd_pcm_status_get_audio_htstamp_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_status_get_audio_htstamp"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_status_get_driver_htstamp + *(void **) (&snd_pcm_status_get_driver_htstamp_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_status_get_driver_htstamp"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_status_get_audio_htstamp_report + *(void **) (&snd_pcm_status_get_audio_htstamp_report_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_status_get_audio_htstamp_report"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_status_set_audio_htstamp_config + *(void **) (&snd_pcm_status_set_audio_htstamp_config_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_status_set_audio_htstamp_config"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_status_get_delay + *(void **) (&snd_pcm_status_get_delay_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_status_get_delay"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_status_get_avail + *(void **) (&snd_pcm_status_get_avail_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_status_get_avail"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_status_get_avail_max + *(void **) (&snd_pcm_status_get_avail_max_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_status_get_avail_max"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_status_get_overrange + *(void **) (&snd_pcm_status_get_overrange_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_status_get_overrange"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_type_name + *(void **) (&snd_pcm_type_name_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_type_name"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_stream_name + *(void **) (&snd_pcm_stream_name_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_stream_name"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_access_name + *(void **) (&snd_pcm_access_name_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_access_name"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_format_name + *(void **) (&snd_pcm_format_name_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_format_name"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_format_description + *(void **) (&snd_pcm_format_description_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_format_description"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_subformat_name + *(void **) (&snd_pcm_subformat_name_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_subformat_name"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_subformat_description + *(void **) (&snd_pcm_subformat_description_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_subformat_description"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_format_value + *(void **) (&snd_pcm_format_value_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_format_value"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_tstamp_mode_name + *(void **) (&snd_pcm_tstamp_mode_name_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_tstamp_mode_name"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_state_name + *(void **) (&snd_pcm_state_name_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_state_name"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_dump + *(void **) (&snd_pcm_dump_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_dump"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_dump_hw_setup + *(void **) (&snd_pcm_dump_hw_setup_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_dump_hw_setup"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_dump_sw_setup + *(void **) (&snd_pcm_dump_sw_setup_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_dump_sw_setup"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_dump_setup + *(void **) (&snd_pcm_dump_setup_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_dump_setup"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_hw_params_dump + *(void **) (&snd_pcm_hw_params_dump_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_hw_params_dump"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_sw_params_dump + *(void **) (&snd_pcm_sw_params_dump_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_sw_params_dump"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_status_dump + *(void **) (&snd_pcm_status_dump_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_status_dump"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_mmap_begin + *(void **) (&snd_pcm_mmap_begin_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_mmap_begin"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_mmap_commit + *(void **) (&snd_pcm_mmap_commit_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_mmap_commit"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_mmap_writei + *(void **) (&snd_pcm_mmap_writei_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_mmap_writei"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_mmap_readi + *(void **) (&snd_pcm_mmap_readi_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_mmap_readi"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_mmap_writen + *(void **) (&snd_pcm_mmap_writen_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_mmap_writen"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_mmap_readn + *(void **) (&snd_pcm_mmap_readn_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_mmap_readn"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_format_signed + *(void **) (&snd_pcm_format_signed_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_format_signed"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_format_unsigned + *(void **) (&snd_pcm_format_unsigned_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_format_unsigned"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_format_linear + *(void **) (&snd_pcm_format_linear_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_format_linear"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_format_float + *(void **) (&snd_pcm_format_float_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_format_float"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_format_little_endian + *(void **) (&snd_pcm_format_little_endian_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_format_little_endian"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_format_big_endian + *(void **) (&snd_pcm_format_big_endian_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_format_big_endian"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_format_cpu_endian + *(void **) (&snd_pcm_format_cpu_endian_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_format_cpu_endian"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_format_width + *(void **) (&snd_pcm_format_width_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_format_width"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_format_physical_width + *(void **) (&snd_pcm_format_physical_width_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_format_physical_width"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_build_linear_format + *(void **) (&snd_pcm_build_linear_format_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_build_linear_format"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_format_size + *(void **) (&snd_pcm_format_size_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_format_size"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_format_silence + *(void **) (&snd_pcm_format_silence_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_format_silence"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_format_silence_16 + *(void **) (&snd_pcm_format_silence_16_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_format_silence_16"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_format_silence_32 + *(void **) (&snd_pcm_format_silence_32_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_format_silence_32"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_format_silence_64 + *(void **) (&snd_pcm_format_silence_64_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_format_silence_64"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_format_set_silence + *(void **) (&snd_pcm_format_set_silence_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_format_set_silence"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_bytes_to_frames + *(void **) (&snd_pcm_bytes_to_frames_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_bytes_to_frames"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_frames_to_bytes + *(void **) (&snd_pcm_frames_to_bytes_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_frames_to_bytes"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_bytes_to_samples + *(void **) (&snd_pcm_bytes_to_samples_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_bytes_to_samples"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_samples_to_bytes + *(void **) (&snd_pcm_samples_to_bytes_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_samples_to_bytes"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_area_silence + *(void **) (&snd_pcm_area_silence_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_area_silence"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_areas_silence + *(void **) (&snd_pcm_areas_silence_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_areas_silence"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_area_copy + *(void **) (&snd_pcm_area_copy_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_area_copy"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_areas_copy + *(void **) (&snd_pcm_areas_copy_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_areas_copy"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_areas_copy_wrap + *(void **) (&snd_pcm_areas_copy_wrap_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_areas_copy_wrap"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_hook_get_pcm + *(void **) (&snd_pcm_hook_get_pcm_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_hook_get_pcm"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_hook_get_private + *(void **) (&snd_pcm_hook_get_private_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_hook_get_private"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_hook_set_private + *(void **) (&snd_pcm_hook_set_private_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_hook_set_private"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_hook_add + *(void **) (&snd_pcm_hook_add_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_hook_add"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_hook_remove + *(void **) (&snd_pcm_hook_remove_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_hook_remove"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_meter_get_bufsize + *(void **) (&snd_pcm_meter_get_bufsize_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_meter_get_bufsize"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_meter_get_channels + *(void **) (&snd_pcm_meter_get_channels_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_meter_get_channels"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_meter_get_rate + *(void **) (&snd_pcm_meter_get_rate_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_meter_get_rate"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_meter_get_now + *(void **) (&snd_pcm_meter_get_now_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_meter_get_now"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_meter_get_boundary + *(void **) (&snd_pcm_meter_get_boundary_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_meter_get_boundary"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_meter_add_scope + *(void **) (&snd_pcm_meter_add_scope_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_meter_add_scope"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_meter_search_scope + *(void **) (&snd_pcm_meter_search_scope_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_meter_search_scope"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_scope_malloc + *(void **) (&snd_pcm_scope_malloc_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_scope_malloc"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_scope_set_ops + *(void **) (&snd_pcm_scope_set_ops_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_scope_set_ops"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_scope_set_name + *(void **) (&snd_pcm_scope_set_name_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_scope_set_name"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_scope_get_name + *(void **) (&snd_pcm_scope_get_name_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_scope_get_name"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_scope_get_callback_private + *(void **) (&snd_pcm_scope_get_callback_private_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_scope_get_callback_private"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_scope_set_callback_private + *(void **) (&snd_pcm_scope_set_callback_private_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_scope_set_callback_private"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_scope_s16_open + *(void **) (&snd_pcm_scope_s16_open_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_scope_s16_open"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_scope_s16_get_channel_buffer + *(void **) (&snd_pcm_scope_s16_get_channel_buffer_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_scope_s16_get_channel_buffer"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_spcm_init + *(void **) (&snd_spcm_init_dylibloader_wrapper_asound) = dlsym(handle, "snd_spcm_init"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_spcm_init_duplex + *(void **) (&snd_spcm_init_duplex_dylibloader_wrapper_asound) = dlsym(handle, "snd_spcm_init_duplex"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_spcm_init_get_params + *(void **) (&snd_spcm_init_get_params_dylibloader_wrapper_asound) = dlsym(handle, "snd_spcm_init_get_params"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_start_mode_name + *(void **) (&snd_pcm_start_mode_name_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_start_mode_name"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_xrun_mode_name + *(void **) (&snd_pcm_xrun_mode_name_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_xrun_mode_name"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_sw_params_set_start_mode + *(void **) (&snd_pcm_sw_params_set_start_mode_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_sw_params_set_start_mode"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_sw_params_get_start_mode + *(void **) (&snd_pcm_sw_params_get_start_mode_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_sw_params_get_start_mode"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_sw_params_set_xrun_mode + *(void **) (&snd_pcm_sw_params_set_xrun_mode_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_sw_params_set_xrun_mode"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_sw_params_get_xrun_mode + *(void **) (&snd_pcm_sw_params_get_xrun_mode_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_sw_params_get_xrun_mode"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_sw_params_set_xfer_align + *(void **) (&snd_pcm_sw_params_set_xfer_align_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_sw_params_set_xfer_align"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_sw_params_get_xfer_align + *(void **) (&snd_pcm_sw_params_get_xfer_align_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_sw_params_get_xfer_align"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_sw_params_set_sleep_min + *(void **) (&snd_pcm_sw_params_set_sleep_min_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_sw_params_set_sleep_min"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_sw_params_get_sleep_min + *(void **) (&snd_pcm_sw_params_get_sleep_min_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_sw_params_get_sleep_min"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_hw_params_get_tick_time + *(void **) (&snd_pcm_hw_params_get_tick_time_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_hw_params_get_tick_time"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_hw_params_get_tick_time_min + *(void **) (&snd_pcm_hw_params_get_tick_time_min_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_hw_params_get_tick_time_min"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_hw_params_get_tick_time_max + *(void **) (&snd_pcm_hw_params_get_tick_time_max_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_hw_params_get_tick_time_max"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_hw_params_test_tick_time + *(void **) (&snd_pcm_hw_params_test_tick_time_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_hw_params_test_tick_time"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_hw_params_set_tick_time + *(void **) (&snd_pcm_hw_params_set_tick_time_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_hw_params_set_tick_time"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_hw_params_set_tick_time_min + *(void **) (&snd_pcm_hw_params_set_tick_time_min_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_hw_params_set_tick_time_min"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_hw_params_set_tick_time_max + *(void **) (&snd_pcm_hw_params_set_tick_time_max_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_hw_params_set_tick_time_max"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_hw_params_set_tick_time_minmax + *(void **) (&snd_pcm_hw_params_set_tick_time_minmax_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_hw_params_set_tick_time_minmax"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_hw_params_set_tick_time_near + *(void **) (&snd_pcm_hw_params_set_tick_time_near_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_hw_params_set_tick_time_near"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_hw_params_set_tick_time_first + *(void **) (&snd_pcm_hw_params_set_tick_time_first_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_hw_params_set_tick_time_first"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_pcm_hw_params_set_tick_time_last + *(void **) (&snd_pcm_hw_params_set_tick_time_last_dylibloader_wrapper_asound) = dlsym(handle, "snd_pcm_hw_params_set_tick_time_last"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_rawmidi_open + *(void **) (&snd_rawmidi_open_dylibloader_wrapper_asound) = dlsym(handle, "snd_rawmidi_open"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_rawmidi_open_lconf + *(void **) (&snd_rawmidi_open_lconf_dylibloader_wrapper_asound) = dlsym(handle, "snd_rawmidi_open_lconf"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_rawmidi_close + *(void **) (&snd_rawmidi_close_dylibloader_wrapper_asound) = dlsym(handle, "snd_rawmidi_close"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_rawmidi_poll_descriptors_count + *(void **) (&snd_rawmidi_poll_descriptors_count_dylibloader_wrapper_asound) = dlsym(handle, "snd_rawmidi_poll_descriptors_count"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_rawmidi_poll_descriptors + *(void **) (&snd_rawmidi_poll_descriptors_dylibloader_wrapper_asound) = dlsym(handle, "snd_rawmidi_poll_descriptors"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_rawmidi_poll_descriptors_revents + *(void **) (&snd_rawmidi_poll_descriptors_revents_dylibloader_wrapper_asound) = dlsym(handle, "snd_rawmidi_poll_descriptors_revents"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_rawmidi_nonblock + *(void **) (&snd_rawmidi_nonblock_dylibloader_wrapper_asound) = dlsym(handle, "snd_rawmidi_nonblock"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_rawmidi_info_sizeof + *(void **) (&snd_rawmidi_info_sizeof_dylibloader_wrapper_asound) = dlsym(handle, "snd_rawmidi_info_sizeof"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_rawmidi_info_malloc + *(void **) (&snd_rawmidi_info_malloc_dylibloader_wrapper_asound) = dlsym(handle, "snd_rawmidi_info_malloc"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_rawmidi_info_free + *(void **) (&snd_rawmidi_info_free_dylibloader_wrapper_asound) = dlsym(handle, "snd_rawmidi_info_free"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_rawmidi_info_copy + *(void **) (&snd_rawmidi_info_copy_dylibloader_wrapper_asound) = dlsym(handle, "snd_rawmidi_info_copy"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_rawmidi_info_get_device + *(void **) (&snd_rawmidi_info_get_device_dylibloader_wrapper_asound) = dlsym(handle, "snd_rawmidi_info_get_device"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_rawmidi_info_get_subdevice + *(void **) (&snd_rawmidi_info_get_subdevice_dylibloader_wrapper_asound) = dlsym(handle, "snd_rawmidi_info_get_subdevice"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_rawmidi_info_get_stream + *(void **) (&snd_rawmidi_info_get_stream_dylibloader_wrapper_asound) = dlsym(handle, "snd_rawmidi_info_get_stream"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_rawmidi_info_get_card + *(void **) (&snd_rawmidi_info_get_card_dylibloader_wrapper_asound) = dlsym(handle, "snd_rawmidi_info_get_card"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_rawmidi_info_get_flags + *(void **) (&snd_rawmidi_info_get_flags_dylibloader_wrapper_asound) = dlsym(handle, "snd_rawmidi_info_get_flags"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_rawmidi_info_get_id + *(void **) (&snd_rawmidi_info_get_id_dylibloader_wrapper_asound) = dlsym(handle, "snd_rawmidi_info_get_id"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_rawmidi_info_get_name + *(void **) (&snd_rawmidi_info_get_name_dylibloader_wrapper_asound) = dlsym(handle, "snd_rawmidi_info_get_name"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_rawmidi_info_get_subdevice_name + *(void **) (&snd_rawmidi_info_get_subdevice_name_dylibloader_wrapper_asound) = dlsym(handle, "snd_rawmidi_info_get_subdevice_name"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_rawmidi_info_get_subdevices_count + *(void **) (&snd_rawmidi_info_get_subdevices_count_dylibloader_wrapper_asound) = dlsym(handle, "snd_rawmidi_info_get_subdevices_count"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_rawmidi_info_get_subdevices_avail + *(void **) (&snd_rawmidi_info_get_subdevices_avail_dylibloader_wrapper_asound) = dlsym(handle, "snd_rawmidi_info_get_subdevices_avail"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_rawmidi_info_set_device + *(void **) (&snd_rawmidi_info_set_device_dylibloader_wrapper_asound) = dlsym(handle, "snd_rawmidi_info_set_device"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_rawmidi_info_set_subdevice + *(void **) (&snd_rawmidi_info_set_subdevice_dylibloader_wrapper_asound) = dlsym(handle, "snd_rawmidi_info_set_subdevice"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_rawmidi_info_set_stream + *(void **) (&snd_rawmidi_info_set_stream_dylibloader_wrapper_asound) = dlsym(handle, "snd_rawmidi_info_set_stream"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_rawmidi_info + *(void **) (&snd_rawmidi_info_dylibloader_wrapper_asound) = dlsym(handle, "snd_rawmidi_info"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_rawmidi_params_sizeof + *(void **) (&snd_rawmidi_params_sizeof_dylibloader_wrapper_asound) = dlsym(handle, "snd_rawmidi_params_sizeof"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_rawmidi_params_malloc + *(void **) (&snd_rawmidi_params_malloc_dylibloader_wrapper_asound) = dlsym(handle, "snd_rawmidi_params_malloc"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_rawmidi_params_free + *(void **) (&snd_rawmidi_params_free_dylibloader_wrapper_asound) = dlsym(handle, "snd_rawmidi_params_free"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_rawmidi_params_copy + *(void **) (&snd_rawmidi_params_copy_dylibloader_wrapper_asound) = dlsym(handle, "snd_rawmidi_params_copy"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_rawmidi_params_set_buffer_size + *(void **) (&snd_rawmidi_params_set_buffer_size_dylibloader_wrapper_asound) = dlsym(handle, "snd_rawmidi_params_set_buffer_size"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_rawmidi_params_get_buffer_size + *(void **) (&snd_rawmidi_params_get_buffer_size_dylibloader_wrapper_asound) = dlsym(handle, "snd_rawmidi_params_get_buffer_size"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_rawmidi_params_set_avail_min + *(void **) (&snd_rawmidi_params_set_avail_min_dylibloader_wrapper_asound) = dlsym(handle, "snd_rawmidi_params_set_avail_min"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_rawmidi_params_get_avail_min + *(void **) (&snd_rawmidi_params_get_avail_min_dylibloader_wrapper_asound) = dlsym(handle, "snd_rawmidi_params_get_avail_min"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_rawmidi_params_set_no_active_sensing + *(void **) (&snd_rawmidi_params_set_no_active_sensing_dylibloader_wrapper_asound) = dlsym(handle, "snd_rawmidi_params_set_no_active_sensing"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_rawmidi_params_get_no_active_sensing + *(void **) (&snd_rawmidi_params_get_no_active_sensing_dylibloader_wrapper_asound) = dlsym(handle, "snd_rawmidi_params_get_no_active_sensing"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_rawmidi_params + *(void **) (&snd_rawmidi_params_dylibloader_wrapper_asound) = dlsym(handle, "snd_rawmidi_params"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_rawmidi_params_current + *(void **) (&snd_rawmidi_params_current_dylibloader_wrapper_asound) = dlsym(handle, "snd_rawmidi_params_current"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_rawmidi_status_sizeof + *(void **) (&snd_rawmidi_status_sizeof_dylibloader_wrapper_asound) = dlsym(handle, "snd_rawmidi_status_sizeof"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_rawmidi_status_malloc + *(void **) (&snd_rawmidi_status_malloc_dylibloader_wrapper_asound) = dlsym(handle, "snd_rawmidi_status_malloc"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_rawmidi_status_free + *(void **) (&snd_rawmidi_status_free_dylibloader_wrapper_asound) = dlsym(handle, "snd_rawmidi_status_free"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_rawmidi_status_copy + *(void **) (&snd_rawmidi_status_copy_dylibloader_wrapper_asound) = dlsym(handle, "snd_rawmidi_status_copy"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_rawmidi_status_get_tstamp + *(void **) (&snd_rawmidi_status_get_tstamp_dylibloader_wrapper_asound) = dlsym(handle, "snd_rawmidi_status_get_tstamp"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_rawmidi_status_get_avail + *(void **) (&snd_rawmidi_status_get_avail_dylibloader_wrapper_asound) = dlsym(handle, "snd_rawmidi_status_get_avail"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_rawmidi_status_get_xruns + *(void **) (&snd_rawmidi_status_get_xruns_dylibloader_wrapper_asound) = dlsym(handle, "snd_rawmidi_status_get_xruns"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_rawmidi_status + *(void **) (&snd_rawmidi_status_dylibloader_wrapper_asound) = dlsym(handle, "snd_rawmidi_status"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_rawmidi_drain + *(void **) (&snd_rawmidi_drain_dylibloader_wrapper_asound) = dlsym(handle, "snd_rawmidi_drain"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_rawmidi_drop + *(void **) (&snd_rawmidi_drop_dylibloader_wrapper_asound) = dlsym(handle, "snd_rawmidi_drop"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_rawmidi_write + *(void **) (&snd_rawmidi_write_dylibloader_wrapper_asound) = dlsym(handle, "snd_rawmidi_write"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_rawmidi_read + *(void **) (&snd_rawmidi_read_dylibloader_wrapper_asound) = dlsym(handle, "snd_rawmidi_read"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_rawmidi_name + *(void **) (&snd_rawmidi_name_dylibloader_wrapper_asound) = dlsym(handle, "snd_rawmidi_name"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_rawmidi_type + *(void **) (&snd_rawmidi_type_dylibloader_wrapper_asound) = dlsym(handle, "snd_rawmidi_type"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_rawmidi_stream + *(void **) (&snd_rawmidi_stream_dylibloader_wrapper_asound) = dlsym(handle, "snd_rawmidi_stream"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_timer_query_open + *(void **) (&snd_timer_query_open_dylibloader_wrapper_asound) = dlsym(handle, "snd_timer_query_open"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_timer_query_open_lconf + *(void **) (&snd_timer_query_open_lconf_dylibloader_wrapper_asound) = dlsym(handle, "snd_timer_query_open_lconf"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_timer_query_close + *(void **) (&snd_timer_query_close_dylibloader_wrapper_asound) = dlsym(handle, "snd_timer_query_close"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_timer_query_next_device + *(void **) (&snd_timer_query_next_device_dylibloader_wrapper_asound) = dlsym(handle, "snd_timer_query_next_device"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_timer_query_info + *(void **) (&snd_timer_query_info_dylibloader_wrapper_asound) = dlsym(handle, "snd_timer_query_info"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_timer_query_params + *(void **) (&snd_timer_query_params_dylibloader_wrapper_asound) = dlsym(handle, "snd_timer_query_params"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_timer_query_status + *(void **) (&snd_timer_query_status_dylibloader_wrapper_asound) = dlsym(handle, "snd_timer_query_status"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_timer_open + *(void **) (&snd_timer_open_dylibloader_wrapper_asound) = dlsym(handle, "snd_timer_open"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_timer_open_lconf + *(void **) (&snd_timer_open_lconf_dylibloader_wrapper_asound) = dlsym(handle, "snd_timer_open_lconf"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_timer_close + *(void **) (&snd_timer_close_dylibloader_wrapper_asound) = dlsym(handle, "snd_timer_close"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_async_add_timer_handler + *(void **) (&snd_async_add_timer_handler_dylibloader_wrapper_asound) = dlsym(handle, "snd_async_add_timer_handler"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_async_handler_get_timer + *(void **) (&snd_async_handler_get_timer_dylibloader_wrapper_asound) = dlsym(handle, "snd_async_handler_get_timer"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_timer_poll_descriptors_count + *(void **) (&snd_timer_poll_descriptors_count_dylibloader_wrapper_asound) = dlsym(handle, "snd_timer_poll_descriptors_count"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_timer_poll_descriptors + *(void **) (&snd_timer_poll_descriptors_dylibloader_wrapper_asound) = dlsym(handle, "snd_timer_poll_descriptors"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_timer_poll_descriptors_revents + *(void **) (&snd_timer_poll_descriptors_revents_dylibloader_wrapper_asound) = dlsym(handle, "snd_timer_poll_descriptors_revents"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_timer_info + *(void **) (&snd_timer_info_dylibloader_wrapper_asound) = dlsym(handle, "snd_timer_info"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_timer_params + *(void **) (&snd_timer_params_dylibloader_wrapper_asound) = dlsym(handle, "snd_timer_params"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_timer_status + *(void **) (&snd_timer_status_dylibloader_wrapper_asound) = dlsym(handle, "snd_timer_status"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_timer_start + *(void **) (&snd_timer_start_dylibloader_wrapper_asound) = dlsym(handle, "snd_timer_start"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_timer_stop + *(void **) (&snd_timer_stop_dylibloader_wrapper_asound) = dlsym(handle, "snd_timer_stop"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_timer_continue + *(void **) (&snd_timer_continue_dylibloader_wrapper_asound) = dlsym(handle, "snd_timer_continue"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_timer_read + *(void **) (&snd_timer_read_dylibloader_wrapper_asound) = dlsym(handle, "snd_timer_read"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_timer_id_sizeof + *(void **) (&snd_timer_id_sizeof_dylibloader_wrapper_asound) = dlsym(handle, "snd_timer_id_sizeof"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_timer_id_malloc + *(void **) (&snd_timer_id_malloc_dylibloader_wrapper_asound) = dlsym(handle, "snd_timer_id_malloc"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_timer_id_free + *(void **) (&snd_timer_id_free_dylibloader_wrapper_asound) = dlsym(handle, "snd_timer_id_free"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_timer_id_copy + *(void **) (&snd_timer_id_copy_dylibloader_wrapper_asound) = dlsym(handle, "snd_timer_id_copy"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_timer_id_set_class + *(void **) (&snd_timer_id_set_class_dylibloader_wrapper_asound) = dlsym(handle, "snd_timer_id_set_class"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_timer_id_get_class + *(void **) (&snd_timer_id_get_class_dylibloader_wrapper_asound) = dlsym(handle, "snd_timer_id_get_class"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_timer_id_set_sclass + *(void **) (&snd_timer_id_set_sclass_dylibloader_wrapper_asound) = dlsym(handle, "snd_timer_id_set_sclass"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_timer_id_get_sclass + *(void **) (&snd_timer_id_get_sclass_dylibloader_wrapper_asound) = dlsym(handle, "snd_timer_id_get_sclass"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_timer_id_set_card + *(void **) (&snd_timer_id_set_card_dylibloader_wrapper_asound) = dlsym(handle, "snd_timer_id_set_card"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_timer_id_get_card + *(void **) (&snd_timer_id_get_card_dylibloader_wrapper_asound) = dlsym(handle, "snd_timer_id_get_card"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_timer_id_set_device + *(void **) (&snd_timer_id_set_device_dylibloader_wrapper_asound) = dlsym(handle, "snd_timer_id_set_device"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_timer_id_get_device + *(void **) (&snd_timer_id_get_device_dylibloader_wrapper_asound) = dlsym(handle, "snd_timer_id_get_device"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_timer_id_set_subdevice + *(void **) (&snd_timer_id_set_subdevice_dylibloader_wrapper_asound) = dlsym(handle, "snd_timer_id_set_subdevice"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_timer_id_get_subdevice + *(void **) (&snd_timer_id_get_subdevice_dylibloader_wrapper_asound) = dlsym(handle, "snd_timer_id_get_subdevice"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_timer_ginfo_sizeof + *(void **) (&snd_timer_ginfo_sizeof_dylibloader_wrapper_asound) = dlsym(handle, "snd_timer_ginfo_sizeof"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_timer_ginfo_malloc + *(void **) (&snd_timer_ginfo_malloc_dylibloader_wrapper_asound) = dlsym(handle, "snd_timer_ginfo_malloc"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_timer_ginfo_free + *(void **) (&snd_timer_ginfo_free_dylibloader_wrapper_asound) = dlsym(handle, "snd_timer_ginfo_free"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_timer_ginfo_copy + *(void **) (&snd_timer_ginfo_copy_dylibloader_wrapper_asound) = dlsym(handle, "snd_timer_ginfo_copy"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_timer_ginfo_set_tid + *(void **) (&snd_timer_ginfo_set_tid_dylibloader_wrapper_asound) = dlsym(handle, "snd_timer_ginfo_set_tid"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_timer_ginfo_get_tid + *(void **) (&snd_timer_ginfo_get_tid_dylibloader_wrapper_asound) = dlsym(handle, "snd_timer_ginfo_get_tid"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_timer_ginfo_get_flags + *(void **) (&snd_timer_ginfo_get_flags_dylibloader_wrapper_asound) = dlsym(handle, "snd_timer_ginfo_get_flags"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_timer_ginfo_get_card + *(void **) (&snd_timer_ginfo_get_card_dylibloader_wrapper_asound) = dlsym(handle, "snd_timer_ginfo_get_card"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_timer_ginfo_get_id + *(void **) (&snd_timer_ginfo_get_id_dylibloader_wrapper_asound) = dlsym(handle, "snd_timer_ginfo_get_id"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_timer_ginfo_get_name + *(void **) (&snd_timer_ginfo_get_name_dylibloader_wrapper_asound) = dlsym(handle, "snd_timer_ginfo_get_name"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_timer_ginfo_get_resolution + *(void **) (&snd_timer_ginfo_get_resolution_dylibloader_wrapper_asound) = dlsym(handle, "snd_timer_ginfo_get_resolution"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_timer_ginfo_get_resolution_min + *(void **) (&snd_timer_ginfo_get_resolution_min_dylibloader_wrapper_asound) = dlsym(handle, "snd_timer_ginfo_get_resolution_min"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_timer_ginfo_get_resolution_max + *(void **) (&snd_timer_ginfo_get_resolution_max_dylibloader_wrapper_asound) = dlsym(handle, "snd_timer_ginfo_get_resolution_max"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_timer_ginfo_get_clients + *(void **) (&snd_timer_ginfo_get_clients_dylibloader_wrapper_asound) = dlsym(handle, "snd_timer_ginfo_get_clients"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_timer_info_sizeof + *(void **) (&snd_timer_info_sizeof_dylibloader_wrapper_asound) = dlsym(handle, "snd_timer_info_sizeof"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_timer_info_malloc + *(void **) (&snd_timer_info_malloc_dylibloader_wrapper_asound) = dlsym(handle, "snd_timer_info_malloc"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_timer_info_free + *(void **) (&snd_timer_info_free_dylibloader_wrapper_asound) = dlsym(handle, "snd_timer_info_free"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_timer_info_copy + *(void **) (&snd_timer_info_copy_dylibloader_wrapper_asound) = dlsym(handle, "snd_timer_info_copy"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_timer_info_is_slave + *(void **) (&snd_timer_info_is_slave_dylibloader_wrapper_asound) = dlsym(handle, "snd_timer_info_is_slave"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_timer_info_get_card + *(void **) (&snd_timer_info_get_card_dylibloader_wrapper_asound) = dlsym(handle, "snd_timer_info_get_card"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_timer_info_get_id + *(void **) (&snd_timer_info_get_id_dylibloader_wrapper_asound) = dlsym(handle, "snd_timer_info_get_id"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_timer_info_get_name + *(void **) (&snd_timer_info_get_name_dylibloader_wrapper_asound) = dlsym(handle, "snd_timer_info_get_name"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_timer_info_get_resolution + *(void **) (&snd_timer_info_get_resolution_dylibloader_wrapper_asound) = dlsym(handle, "snd_timer_info_get_resolution"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_timer_params_sizeof + *(void **) (&snd_timer_params_sizeof_dylibloader_wrapper_asound) = dlsym(handle, "snd_timer_params_sizeof"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_timer_params_malloc + *(void **) (&snd_timer_params_malloc_dylibloader_wrapper_asound) = dlsym(handle, "snd_timer_params_malloc"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_timer_params_free + *(void **) (&snd_timer_params_free_dylibloader_wrapper_asound) = dlsym(handle, "snd_timer_params_free"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_timer_params_copy + *(void **) (&snd_timer_params_copy_dylibloader_wrapper_asound) = dlsym(handle, "snd_timer_params_copy"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_timer_params_set_auto_start + *(void **) (&snd_timer_params_set_auto_start_dylibloader_wrapper_asound) = dlsym(handle, "snd_timer_params_set_auto_start"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_timer_params_get_auto_start + *(void **) (&snd_timer_params_get_auto_start_dylibloader_wrapper_asound) = dlsym(handle, "snd_timer_params_get_auto_start"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_timer_params_set_exclusive + *(void **) (&snd_timer_params_set_exclusive_dylibloader_wrapper_asound) = dlsym(handle, "snd_timer_params_set_exclusive"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_timer_params_get_exclusive + *(void **) (&snd_timer_params_get_exclusive_dylibloader_wrapper_asound) = dlsym(handle, "snd_timer_params_get_exclusive"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_timer_params_set_early_event + *(void **) (&snd_timer_params_set_early_event_dylibloader_wrapper_asound) = dlsym(handle, "snd_timer_params_set_early_event"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_timer_params_get_early_event + *(void **) (&snd_timer_params_get_early_event_dylibloader_wrapper_asound) = dlsym(handle, "snd_timer_params_get_early_event"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_timer_params_set_ticks + *(void **) (&snd_timer_params_set_ticks_dylibloader_wrapper_asound) = dlsym(handle, "snd_timer_params_set_ticks"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_timer_params_get_ticks + *(void **) (&snd_timer_params_get_ticks_dylibloader_wrapper_asound) = dlsym(handle, "snd_timer_params_get_ticks"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_timer_params_set_queue_size + *(void **) (&snd_timer_params_set_queue_size_dylibloader_wrapper_asound) = dlsym(handle, "snd_timer_params_set_queue_size"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_timer_params_get_queue_size + *(void **) (&snd_timer_params_get_queue_size_dylibloader_wrapper_asound) = dlsym(handle, "snd_timer_params_get_queue_size"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_timer_params_set_filter + *(void **) (&snd_timer_params_set_filter_dylibloader_wrapper_asound) = dlsym(handle, "snd_timer_params_set_filter"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_timer_params_get_filter + *(void **) (&snd_timer_params_get_filter_dylibloader_wrapper_asound) = dlsym(handle, "snd_timer_params_get_filter"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_timer_status_sizeof + *(void **) (&snd_timer_status_sizeof_dylibloader_wrapper_asound) = dlsym(handle, "snd_timer_status_sizeof"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_timer_status_malloc + *(void **) (&snd_timer_status_malloc_dylibloader_wrapper_asound) = dlsym(handle, "snd_timer_status_malloc"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_timer_status_free + *(void **) (&snd_timer_status_free_dylibloader_wrapper_asound) = dlsym(handle, "snd_timer_status_free"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_timer_status_copy + *(void **) (&snd_timer_status_copy_dylibloader_wrapper_asound) = dlsym(handle, "snd_timer_status_copy"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_timer_status_get_timestamp + *(void **) (&snd_timer_status_get_timestamp_dylibloader_wrapper_asound) = dlsym(handle, "snd_timer_status_get_timestamp"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_timer_status_get_resolution + *(void **) (&snd_timer_status_get_resolution_dylibloader_wrapper_asound) = dlsym(handle, "snd_timer_status_get_resolution"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_timer_status_get_lost + *(void **) (&snd_timer_status_get_lost_dylibloader_wrapper_asound) = dlsym(handle, "snd_timer_status_get_lost"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_timer_status_get_overrun + *(void **) (&snd_timer_status_get_overrun_dylibloader_wrapper_asound) = dlsym(handle, "snd_timer_status_get_overrun"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_timer_status_get_queue + *(void **) (&snd_timer_status_get_queue_dylibloader_wrapper_asound) = dlsym(handle, "snd_timer_status_get_queue"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_timer_info_get_ticks + *(void **) (&snd_timer_info_get_ticks_dylibloader_wrapper_asound) = dlsym(handle, "snd_timer_info_get_ticks"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_hwdep_open + *(void **) (&snd_hwdep_open_dylibloader_wrapper_asound) = dlsym(handle, "snd_hwdep_open"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_hwdep_close + *(void **) (&snd_hwdep_close_dylibloader_wrapper_asound) = dlsym(handle, "snd_hwdep_close"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_hwdep_poll_descriptors + *(void **) (&snd_hwdep_poll_descriptors_dylibloader_wrapper_asound) = dlsym(handle, "snd_hwdep_poll_descriptors"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_hwdep_poll_descriptors_count + *(void **) (&snd_hwdep_poll_descriptors_count_dylibloader_wrapper_asound) = dlsym(handle, "snd_hwdep_poll_descriptors_count"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_hwdep_poll_descriptors_revents + *(void **) (&snd_hwdep_poll_descriptors_revents_dylibloader_wrapper_asound) = dlsym(handle, "snd_hwdep_poll_descriptors_revents"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_hwdep_nonblock + *(void **) (&snd_hwdep_nonblock_dylibloader_wrapper_asound) = dlsym(handle, "snd_hwdep_nonblock"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_hwdep_info + *(void **) (&snd_hwdep_info_dylibloader_wrapper_asound) = dlsym(handle, "snd_hwdep_info"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_hwdep_dsp_status + *(void **) (&snd_hwdep_dsp_status_dylibloader_wrapper_asound) = dlsym(handle, "snd_hwdep_dsp_status"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_hwdep_dsp_load + *(void **) (&snd_hwdep_dsp_load_dylibloader_wrapper_asound) = dlsym(handle, "snd_hwdep_dsp_load"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_hwdep_ioctl + *(void **) (&snd_hwdep_ioctl_dylibloader_wrapper_asound) = dlsym(handle, "snd_hwdep_ioctl"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_hwdep_write + *(void **) (&snd_hwdep_write_dylibloader_wrapper_asound) = dlsym(handle, "snd_hwdep_write"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_hwdep_read + *(void **) (&snd_hwdep_read_dylibloader_wrapper_asound) = dlsym(handle, "snd_hwdep_read"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_hwdep_info_sizeof + *(void **) (&snd_hwdep_info_sizeof_dylibloader_wrapper_asound) = dlsym(handle, "snd_hwdep_info_sizeof"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_hwdep_info_malloc + *(void **) (&snd_hwdep_info_malloc_dylibloader_wrapper_asound) = dlsym(handle, "snd_hwdep_info_malloc"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_hwdep_info_free + *(void **) (&snd_hwdep_info_free_dylibloader_wrapper_asound) = dlsym(handle, "snd_hwdep_info_free"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_hwdep_info_copy + *(void **) (&snd_hwdep_info_copy_dylibloader_wrapper_asound) = dlsym(handle, "snd_hwdep_info_copy"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_hwdep_info_get_device + *(void **) (&snd_hwdep_info_get_device_dylibloader_wrapper_asound) = dlsym(handle, "snd_hwdep_info_get_device"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_hwdep_info_get_card + *(void **) (&snd_hwdep_info_get_card_dylibloader_wrapper_asound) = dlsym(handle, "snd_hwdep_info_get_card"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_hwdep_info_get_id + *(void **) (&snd_hwdep_info_get_id_dylibloader_wrapper_asound) = dlsym(handle, "snd_hwdep_info_get_id"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_hwdep_info_get_name + *(void **) (&snd_hwdep_info_get_name_dylibloader_wrapper_asound) = dlsym(handle, "snd_hwdep_info_get_name"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_hwdep_info_get_iface + *(void **) (&snd_hwdep_info_get_iface_dylibloader_wrapper_asound) = dlsym(handle, "snd_hwdep_info_get_iface"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_hwdep_info_set_device + *(void **) (&snd_hwdep_info_set_device_dylibloader_wrapper_asound) = dlsym(handle, "snd_hwdep_info_set_device"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_hwdep_dsp_status_sizeof + *(void **) (&snd_hwdep_dsp_status_sizeof_dylibloader_wrapper_asound) = dlsym(handle, "snd_hwdep_dsp_status_sizeof"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_hwdep_dsp_status_malloc + *(void **) (&snd_hwdep_dsp_status_malloc_dylibloader_wrapper_asound) = dlsym(handle, "snd_hwdep_dsp_status_malloc"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_hwdep_dsp_status_free + *(void **) (&snd_hwdep_dsp_status_free_dylibloader_wrapper_asound) = dlsym(handle, "snd_hwdep_dsp_status_free"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_hwdep_dsp_status_copy + *(void **) (&snd_hwdep_dsp_status_copy_dylibloader_wrapper_asound) = dlsym(handle, "snd_hwdep_dsp_status_copy"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_hwdep_dsp_status_get_version + *(void **) (&snd_hwdep_dsp_status_get_version_dylibloader_wrapper_asound) = dlsym(handle, "snd_hwdep_dsp_status_get_version"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_hwdep_dsp_status_get_id + *(void **) (&snd_hwdep_dsp_status_get_id_dylibloader_wrapper_asound) = dlsym(handle, "snd_hwdep_dsp_status_get_id"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_hwdep_dsp_status_get_num_dsps + *(void **) (&snd_hwdep_dsp_status_get_num_dsps_dylibloader_wrapper_asound) = dlsym(handle, "snd_hwdep_dsp_status_get_num_dsps"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_hwdep_dsp_status_get_dsp_loaded + *(void **) (&snd_hwdep_dsp_status_get_dsp_loaded_dylibloader_wrapper_asound) = dlsym(handle, "snd_hwdep_dsp_status_get_dsp_loaded"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_hwdep_dsp_status_get_chip_ready + *(void **) (&snd_hwdep_dsp_status_get_chip_ready_dylibloader_wrapper_asound) = dlsym(handle, "snd_hwdep_dsp_status_get_chip_ready"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_hwdep_dsp_image_sizeof + *(void **) (&snd_hwdep_dsp_image_sizeof_dylibloader_wrapper_asound) = dlsym(handle, "snd_hwdep_dsp_image_sizeof"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_hwdep_dsp_image_malloc + *(void **) (&snd_hwdep_dsp_image_malloc_dylibloader_wrapper_asound) = dlsym(handle, "snd_hwdep_dsp_image_malloc"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_hwdep_dsp_image_free + *(void **) (&snd_hwdep_dsp_image_free_dylibloader_wrapper_asound) = dlsym(handle, "snd_hwdep_dsp_image_free"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_hwdep_dsp_image_copy + *(void **) (&snd_hwdep_dsp_image_copy_dylibloader_wrapper_asound) = dlsym(handle, "snd_hwdep_dsp_image_copy"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_hwdep_dsp_image_get_index + *(void **) (&snd_hwdep_dsp_image_get_index_dylibloader_wrapper_asound) = dlsym(handle, "snd_hwdep_dsp_image_get_index"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_hwdep_dsp_image_get_name + *(void **) (&snd_hwdep_dsp_image_get_name_dylibloader_wrapper_asound) = dlsym(handle, "snd_hwdep_dsp_image_get_name"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_hwdep_dsp_image_get_image + *(void **) (&snd_hwdep_dsp_image_get_image_dylibloader_wrapper_asound) = dlsym(handle, "snd_hwdep_dsp_image_get_image"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_hwdep_dsp_image_get_length + *(void **) (&snd_hwdep_dsp_image_get_length_dylibloader_wrapper_asound) = dlsym(handle, "snd_hwdep_dsp_image_get_length"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_hwdep_dsp_image_set_index + *(void **) (&snd_hwdep_dsp_image_set_index_dylibloader_wrapper_asound) = dlsym(handle, "snd_hwdep_dsp_image_set_index"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_hwdep_dsp_image_set_name + *(void **) (&snd_hwdep_dsp_image_set_name_dylibloader_wrapper_asound) = dlsym(handle, "snd_hwdep_dsp_image_set_name"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_hwdep_dsp_image_set_image + *(void **) (&snd_hwdep_dsp_image_set_image_dylibloader_wrapper_asound) = dlsym(handle, "snd_hwdep_dsp_image_set_image"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_hwdep_dsp_image_set_length + *(void **) (&snd_hwdep_dsp_image_set_length_dylibloader_wrapper_asound) = dlsym(handle, "snd_hwdep_dsp_image_set_length"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_card_load + *(void **) (&snd_card_load_dylibloader_wrapper_asound) = dlsym(handle, "snd_card_load"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_card_next + *(void **) (&snd_card_next_dylibloader_wrapper_asound) = dlsym(handle, "snd_card_next"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_card_get_index + *(void **) (&snd_card_get_index_dylibloader_wrapper_asound) = dlsym(handle, "snd_card_get_index"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_card_get_name + *(void **) (&snd_card_get_name_dylibloader_wrapper_asound) = dlsym(handle, "snd_card_get_name"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_card_get_longname + *(void **) (&snd_card_get_longname_dylibloader_wrapper_asound) = dlsym(handle, "snd_card_get_longname"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_device_name_hint + *(void **) (&snd_device_name_hint_dylibloader_wrapper_asound) = dlsym(handle, "snd_device_name_hint"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_device_name_free_hint + *(void **) (&snd_device_name_free_hint_dylibloader_wrapper_asound) = dlsym(handle, "snd_device_name_free_hint"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_device_name_get_hint + *(void **) (&snd_device_name_get_hint_dylibloader_wrapper_asound) = dlsym(handle, "snd_device_name_get_hint"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_open + *(void **) (&snd_ctl_open_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_open"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_open_lconf + *(void **) (&snd_ctl_open_lconf_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_open_lconf"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_open_fallback + *(void **) (&snd_ctl_open_fallback_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_open_fallback"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_close + *(void **) (&snd_ctl_close_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_close"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_nonblock + *(void **) (&snd_ctl_nonblock_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_nonblock"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_async_add_ctl_handler + *(void **) (&snd_async_add_ctl_handler_dylibloader_wrapper_asound) = dlsym(handle, "snd_async_add_ctl_handler"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_async_handler_get_ctl + *(void **) (&snd_async_handler_get_ctl_dylibloader_wrapper_asound) = dlsym(handle, "snd_async_handler_get_ctl"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_poll_descriptors_count + *(void **) (&snd_ctl_poll_descriptors_count_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_poll_descriptors_count"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_poll_descriptors + *(void **) (&snd_ctl_poll_descriptors_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_poll_descriptors"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_poll_descriptors_revents + *(void **) (&snd_ctl_poll_descriptors_revents_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_poll_descriptors_revents"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_subscribe_events + *(void **) (&snd_ctl_subscribe_events_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_subscribe_events"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_card_info + *(void **) (&snd_ctl_card_info_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_card_info"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_elem_list + *(void **) (&snd_ctl_elem_list_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_elem_list"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_elem_info + *(void **) (&snd_ctl_elem_info_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_elem_info"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_elem_read + *(void **) (&snd_ctl_elem_read_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_elem_read"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_elem_write + *(void **) (&snd_ctl_elem_write_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_elem_write"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_elem_lock + *(void **) (&snd_ctl_elem_lock_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_elem_lock"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_elem_unlock + *(void **) (&snd_ctl_elem_unlock_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_elem_unlock"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_elem_tlv_read + *(void **) (&snd_ctl_elem_tlv_read_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_elem_tlv_read"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_elem_tlv_write + *(void **) (&snd_ctl_elem_tlv_write_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_elem_tlv_write"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_elem_tlv_command + *(void **) (&snd_ctl_elem_tlv_command_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_elem_tlv_command"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_hwdep_next_device + *(void **) (&snd_ctl_hwdep_next_device_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_hwdep_next_device"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_hwdep_info + *(void **) (&snd_ctl_hwdep_info_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_hwdep_info"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_pcm_next_device + *(void **) (&snd_ctl_pcm_next_device_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_pcm_next_device"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_pcm_info + *(void **) (&snd_ctl_pcm_info_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_pcm_info"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_pcm_prefer_subdevice + *(void **) (&snd_ctl_pcm_prefer_subdevice_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_pcm_prefer_subdevice"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_rawmidi_next_device + *(void **) (&snd_ctl_rawmidi_next_device_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_rawmidi_next_device"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_rawmidi_info + *(void **) (&snd_ctl_rawmidi_info_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_rawmidi_info"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_rawmidi_prefer_subdevice + *(void **) (&snd_ctl_rawmidi_prefer_subdevice_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_rawmidi_prefer_subdevice"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_set_power_state + *(void **) (&snd_ctl_set_power_state_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_set_power_state"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_get_power_state + *(void **) (&snd_ctl_get_power_state_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_get_power_state"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_read + *(void **) (&snd_ctl_read_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_read"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_wait + *(void **) (&snd_ctl_wait_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_wait"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_name + *(void **) (&snd_ctl_name_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_name"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_type + *(void **) (&snd_ctl_type_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_type"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_elem_type_name + *(void **) (&snd_ctl_elem_type_name_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_elem_type_name"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_elem_iface_name + *(void **) (&snd_ctl_elem_iface_name_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_elem_iface_name"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_event_type_name + *(void **) (&snd_ctl_event_type_name_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_event_type_name"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_event_elem_get_mask + *(void **) (&snd_ctl_event_elem_get_mask_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_event_elem_get_mask"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_event_elem_get_numid + *(void **) (&snd_ctl_event_elem_get_numid_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_event_elem_get_numid"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_event_elem_get_id + *(void **) (&snd_ctl_event_elem_get_id_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_event_elem_get_id"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_event_elem_get_interface + *(void **) (&snd_ctl_event_elem_get_interface_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_event_elem_get_interface"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_event_elem_get_device + *(void **) (&snd_ctl_event_elem_get_device_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_event_elem_get_device"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_event_elem_get_subdevice + *(void **) (&snd_ctl_event_elem_get_subdevice_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_event_elem_get_subdevice"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_event_elem_get_name + *(void **) (&snd_ctl_event_elem_get_name_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_event_elem_get_name"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_event_elem_get_index + *(void **) (&snd_ctl_event_elem_get_index_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_event_elem_get_index"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_elem_list_alloc_space + *(void **) (&snd_ctl_elem_list_alloc_space_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_elem_list_alloc_space"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_elem_list_free_space + *(void **) (&snd_ctl_elem_list_free_space_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_elem_list_free_space"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_ascii_elem_id_get + *(void **) (&snd_ctl_ascii_elem_id_get_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_ascii_elem_id_get"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_ascii_elem_id_parse + *(void **) (&snd_ctl_ascii_elem_id_parse_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_ascii_elem_id_parse"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_ascii_value_parse + *(void **) (&snd_ctl_ascii_value_parse_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_ascii_value_parse"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_elem_id_sizeof + *(void **) (&snd_ctl_elem_id_sizeof_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_elem_id_sizeof"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_elem_id_malloc + *(void **) (&snd_ctl_elem_id_malloc_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_elem_id_malloc"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_elem_id_free + *(void **) (&snd_ctl_elem_id_free_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_elem_id_free"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_elem_id_clear + *(void **) (&snd_ctl_elem_id_clear_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_elem_id_clear"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_elem_id_copy + *(void **) (&snd_ctl_elem_id_copy_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_elem_id_copy"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_elem_id_get_numid + *(void **) (&snd_ctl_elem_id_get_numid_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_elem_id_get_numid"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_elem_id_get_interface + *(void **) (&snd_ctl_elem_id_get_interface_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_elem_id_get_interface"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_elem_id_get_device + *(void **) (&snd_ctl_elem_id_get_device_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_elem_id_get_device"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_elem_id_get_subdevice + *(void **) (&snd_ctl_elem_id_get_subdevice_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_elem_id_get_subdevice"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_elem_id_get_name + *(void **) (&snd_ctl_elem_id_get_name_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_elem_id_get_name"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_elem_id_get_index + *(void **) (&snd_ctl_elem_id_get_index_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_elem_id_get_index"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_elem_id_set_numid + *(void **) (&snd_ctl_elem_id_set_numid_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_elem_id_set_numid"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_elem_id_set_interface + *(void **) (&snd_ctl_elem_id_set_interface_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_elem_id_set_interface"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_elem_id_set_device + *(void **) (&snd_ctl_elem_id_set_device_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_elem_id_set_device"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_elem_id_set_subdevice + *(void **) (&snd_ctl_elem_id_set_subdevice_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_elem_id_set_subdevice"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_elem_id_set_name + *(void **) (&snd_ctl_elem_id_set_name_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_elem_id_set_name"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_elem_id_set_index + *(void **) (&snd_ctl_elem_id_set_index_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_elem_id_set_index"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_card_info_sizeof + *(void **) (&snd_ctl_card_info_sizeof_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_card_info_sizeof"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_card_info_malloc + *(void **) (&snd_ctl_card_info_malloc_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_card_info_malloc"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_card_info_free + *(void **) (&snd_ctl_card_info_free_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_card_info_free"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_card_info_clear + *(void **) (&snd_ctl_card_info_clear_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_card_info_clear"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_card_info_copy + *(void **) (&snd_ctl_card_info_copy_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_card_info_copy"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_card_info_get_card + *(void **) (&snd_ctl_card_info_get_card_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_card_info_get_card"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_card_info_get_id + *(void **) (&snd_ctl_card_info_get_id_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_card_info_get_id"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_card_info_get_driver + *(void **) (&snd_ctl_card_info_get_driver_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_card_info_get_driver"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_card_info_get_name + *(void **) (&snd_ctl_card_info_get_name_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_card_info_get_name"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_card_info_get_longname + *(void **) (&snd_ctl_card_info_get_longname_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_card_info_get_longname"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_card_info_get_mixername + *(void **) (&snd_ctl_card_info_get_mixername_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_card_info_get_mixername"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_card_info_get_components + *(void **) (&snd_ctl_card_info_get_components_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_card_info_get_components"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_event_sizeof + *(void **) (&snd_ctl_event_sizeof_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_event_sizeof"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_event_malloc + *(void **) (&snd_ctl_event_malloc_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_event_malloc"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_event_free + *(void **) (&snd_ctl_event_free_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_event_free"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_event_clear + *(void **) (&snd_ctl_event_clear_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_event_clear"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_event_copy + *(void **) (&snd_ctl_event_copy_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_event_copy"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_event_get_type + *(void **) (&snd_ctl_event_get_type_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_event_get_type"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_elem_list_sizeof + *(void **) (&snd_ctl_elem_list_sizeof_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_elem_list_sizeof"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_elem_list_malloc + *(void **) (&snd_ctl_elem_list_malloc_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_elem_list_malloc"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_elem_list_free + *(void **) (&snd_ctl_elem_list_free_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_elem_list_free"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_elem_list_clear + *(void **) (&snd_ctl_elem_list_clear_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_elem_list_clear"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_elem_list_copy + *(void **) (&snd_ctl_elem_list_copy_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_elem_list_copy"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_elem_list_set_offset + *(void **) (&snd_ctl_elem_list_set_offset_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_elem_list_set_offset"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_elem_list_get_used + *(void **) (&snd_ctl_elem_list_get_used_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_elem_list_get_used"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_elem_list_get_count + *(void **) (&snd_ctl_elem_list_get_count_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_elem_list_get_count"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_elem_list_get_id + *(void **) (&snd_ctl_elem_list_get_id_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_elem_list_get_id"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_elem_list_get_numid + *(void **) (&snd_ctl_elem_list_get_numid_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_elem_list_get_numid"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_elem_list_get_interface + *(void **) (&snd_ctl_elem_list_get_interface_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_elem_list_get_interface"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_elem_list_get_device + *(void **) (&snd_ctl_elem_list_get_device_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_elem_list_get_device"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_elem_list_get_subdevice + *(void **) (&snd_ctl_elem_list_get_subdevice_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_elem_list_get_subdevice"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_elem_list_get_name + *(void **) (&snd_ctl_elem_list_get_name_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_elem_list_get_name"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_elem_list_get_index + *(void **) (&snd_ctl_elem_list_get_index_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_elem_list_get_index"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_elem_info_sizeof + *(void **) (&snd_ctl_elem_info_sizeof_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_elem_info_sizeof"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_elem_info_malloc + *(void **) (&snd_ctl_elem_info_malloc_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_elem_info_malloc"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_elem_info_free + *(void **) (&snd_ctl_elem_info_free_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_elem_info_free"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_elem_info_clear + *(void **) (&snd_ctl_elem_info_clear_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_elem_info_clear"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_elem_info_copy + *(void **) (&snd_ctl_elem_info_copy_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_elem_info_copy"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_elem_info_get_type + *(void **) (&snd_ctl_elem_info_get_type_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_elem_info_get_type"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_elem_info_is_readable + *(void **) (&snd_ctl_elem_info_is_readable_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_elem_info_is_readable"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_elem_info_is_writable + *(void **) (&snd_ctl_elem_info_is_writable_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_elem_info_is_writable"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_elem_info_is_volatile + *(void **) (&snd_ctl_elem_info_is_volatile_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_elem_info_is_volatile"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_elem_info_is_inactive + *(void **) (&snd_ctl_elem_info_is_inactive_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_elem_info_is_inactive"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_elem_info_is_locked + *(void **) (&snd_ctl_elem_info_is_locked_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_elem_info_is_locked"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_elem_info_is_tlv_readable + *(void **) (&snd_ctl_elem_info_is_tlv_readable_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_elem_info_is_tlv_readable"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_elem_info_is_tlv_writable + *(void **) (&snd_ctl_elem_info_is_tlv_writable_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_elem_info_is_tlv_writable"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_elem_info_is_tlv_commandable + *(void **) (&snd_ctl_elem_info_is_tlv_commandable_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_elem_info_is_tlv_commandable"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_elem_info_is_owner + *(void **) (&snd_ctl_elem_info_is_owner_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_elem_info_is_owner"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_elem_info_is_user + *(void **) (&snd_ctl_elem_info_is_user_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_elem_info_is_user"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_elem_info_get_owner + *(void **) (&snd_ctl_elem_info_get_owner_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_elem_info_get_owner"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_elem_info_get_count + *(void **) (&snd_ctl_elem_info_get_count_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_elem_info_get_count"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_elem_info_get_min + *(void **) (&snd_ctl_elem_info_get_min_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_elem_info_get_min"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_elem_info_get_max + *(void **) (&snd_ctl_elem_info_get_max_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_elem_info_get_max"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_elem_info_get_step + *(void **) (&snd_ctl_elem_info_get_step_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_elem_info_get_step"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_elem_info_get_min64 + *(void **) (&snd_ctl_elem_info_get_min64_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_elem_info_get_min64"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_elem_info_get_max64 + *(void **) (&snd_ctl_elem_info_get_max64_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_elem_info_get_max64"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_elem_info_get_step64 + *(void **) (&snd_ctl_elem_info_get_step64_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_elem_info_get_step64"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_elem_info_get_items + *(void **) (&snd_ctl_elem_info_get_items_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_elem_info_get_items"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_elem_info_set_item + *(void **) (&snd_ctl_elem_info_set_item_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_elem_info_set_item"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_elem_info_get_item_name + *(void **) (&snd_ctl_elem_info_get_item_name_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_elem_info_get_item_name"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_elem_info_get_dimensions + *(void **) (&snd_ctl_elem_info_get_dimensions_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_elem_info_get_dimensions"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_elem_info_get_dimension + *(void **) (&snd_ctl_elem_info_get_dimension_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_elem_info_get_dimension"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_elem_info_set_dimension + *(void **) (&snd_ctl_elem_info_set_dimension_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_elem_info_set_dimension"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_elem_info_get_id + *(void **) (&snd_ctl_elem_info_get_id_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_elem_info_get_id"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_elem_info_get_numid + *(void **) (&snd_ctl_elem_info_get_numid_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_elem_info_get_numid"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_elem_info_get_interface + *(void **) (&snd_ctl_elem_info_get_interface_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_elem_info_get_interface"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_elem_info_get_device + *(void **) (&snd_ctl_elem_info_get_device_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_elem_info_get_device"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_elem_info_get_subdevice + *(void **) (&snd_ctl_elem_info_get_subdevice_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_elem_info_get_subdevice"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_elem_info_get_name + *(void **) (&snd_ctl_elem_info_get_name_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_elem_info_get_name"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_elem_info_get_index + *(void **) (&snd_ctl_elem_info_get_index_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_elem_info_get_index"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_elem_info_set_id + *(void **) (&snd_ctl_elem_info_set_id_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_elem_info_set_id"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_elem_info_set_numid + *(void **) (&snd_ctl_elem_info_set_numid_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_elem_info_set_numid"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_elem_info_set_interface + *(void **) (&snd_ctl_elem_info_set_interface_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_elem_info_set_interface"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_elem_info_set_device + *(void **) (&snd_ctl_elem_info_set_device_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_elem_info_set_device"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_elem_info_set_subdevice + *(void **) (&snd_ctl_elem_info_set_subdevice_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_elem_info_set_subdevice"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_elem_info_set_name + *(void **) (&snd_ctl_elem_info_set_name_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_elem_info_set_name"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_elem_info_set_index + *(void **) (&snd_ctl_elem_info_set_index_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_elem_info_set_index"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_add_integer_elem_set + *(void **) (&snd_ctl_add_integer_elem_set_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_add_integer_elem_set"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_add_integer64_elem_set + *(void **) (&snd_ctl_add_integer64_elem_set_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_add_integer64_elem_set"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_add_boolean_elem_set + *(void **) (&snd_ctl_add_boolean_elem_set_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_add_boolean_elem_set"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_add_enumerated_elem_set + *(void **) (&snd_ctl_add_enumerated_elem_set_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_add_enumerated_elem_set"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_add_bytes_elem_set + *(void **) (&snd_ctl_add_bytes_elem_set_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_add_bytes_elem_set"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_elem_add_integer + *(void **) (&snd_ctl_elem_add_integer_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_elem_add_integer"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_elem_add_integer64 + *(void **) (&snd_ctl_elem_add_integer64_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_elem_add_integer64"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_elem_add_boolean + *(void **) (&snd_ctl_elem_add_boolean_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_elem_add_boolean"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_elem_add_enumerated + *(void **) (&snd_ctl_elem_add_enumerated_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_elem_add_enumerated"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_elem_add_iec958 + *(void **) (&snd_ctl_elem_add_iec958_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_elem_add_iec958"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_elem_remove + *(void **) (&snd_ctl_elem_remove_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_elem_remove"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_elem_value_sizeof + *(void **) (&snd_ctl_elem_value_sizeof_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_elem_value_sizeof"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_elem_value_malloc + *(void **) (&snd_ctl_elem_value_malloc_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_elem_value_malloc"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_elem_value_free + *(void **) (&snd_ctl_elem_value_free_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_elem_value_free"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_elem_value_clear + *(void **) (&snd_ctl_elem_value_clear_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_elem_value_clear"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_elem_value_copy + *(void **) (&snd_ctl_elem_value_copy_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_elem_value_copy"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_elem_value_compare + *(void **) (&snd_ctl_elem_value_compare_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_elem_value_compare"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_elem_value_get_id + *(void **) (&snd_ctl_elem_value_get_id_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_elem_value_get_id"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_elem_value_get_numid + *(void **) (&snd_ctl_elem_value_get_numid_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_elem_value_get_numid"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_elem_value_get_interface + *(void **) (&snd_ctl_elem_value_get_interface_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_elem_value_get_interface"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_elem_value_get_device + *(void **) (&snd_ctl_elem_value_get_device_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_elem_value_get_device"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_elem_value_get_subdevice + *(void **) (&snd_ctl_elem_value_get_subdevice_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_elem_value_get_subdevice"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_elem_value_get_name + *(void **) (&snd_ctl_elem_value_get_name_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_elem_value_get_name"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_elem_value_get_index + *(void **) (&snd_ctl_elem_value_get_index_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_elem_value_get_index"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_elem_value_set_id + *(void **) (&snd_ctl_elem_value_set_id_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_elem_value_set_id"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_elem_value_set_numid + *(void **) (&snd_ctl_elem_value_set_numid_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_elem_value_set_numid"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_elem_value_set_interface + *(void **) (&snd_ctl_elem_value_set_interface_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_elem_value_set_interface"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_elem_value_set_device + *(void **) (&snd_ctl_elem_value_set_device_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_elem_value_set_device"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_elem_value_set_subdevice + *(void **) (&snd_ctl_elem_value_set_subdevice_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_elem_value_set_subdevice"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_elem_value_set_name + *(void **) (&snd_ctl_elem_value_set_name_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_elem_value_set_name"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_elem_value_set_index + *(void **) (&snd_ctl_elem_value_set_index_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_elem_value_set_index"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_elem_value_get_boolean + *(void **) (&snd_ctl_elem_value_get_boolean_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_elem_value_get_boolean"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_elem_value_get_integer + *(void **) (&snd_ctl_elem_value_get_integer_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_elem_value_get_integer"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_elem_value_get_integer64 + *(void **) (&snd_ctl_elem_value_get_integer64_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_elem_value_get_integer64"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_elem_value_get_enumerated + *(void **) (&snd_ctl_elem_value_get_enumerated_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_elem_value_get_enumerated"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_elem_value_get_byte + *(void **) (&snd_ctl_elem_value_get_byte_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_elem_value_get_byte"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_elem_value_set_boolean + *(void **) (&snd_ctl_elem_value_set_boolean_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_elem_value_set_boolean"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_elem_value_set_integer + *(void **) (&snd_ctl_elem_value_set_integer_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_elem_value_set_integer"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_elem_value_set_integer64 + *(void **) (&snd_ctl_elem_value_set_integer64_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_elem_value_set_integer64"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_elem_value_set_enumerated + *(void **) (&snd_ctl_elem_value_set_enumerated_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_elem_value_set_enumerated"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_elem_value_set_byte + *(void **) (&snd_ctl_elem_value_set_byte_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_elem_value_set_byte"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_elem_set_bytes + *(void **) (&snd_ctl_elem_set_bytes_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_elem_set_bytes"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_elem_value_get_bytes + *(void **) (&snd_ctl_elem_value_get_bytes_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_elem_value_get_bytes"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_elem_value_get_iec958 + *(void **) (&snd_ctl_elem_value_get_iec958_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_elem_value_get_iec958"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_elem_value_set_iec958 + *(void **) (&snd_ctl_elem_value_set_iec958_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_elem_value_set_iec958"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_tlv_parse_dB_info + *(void **) (&snd_tlv_parse_dB_info_dylibloader_wrapper_asound) = dlsym(handle, "snd_tlv_parse_dB_info"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_tlv_get_dB_range + *(void **) (&snd_tlv_get_dB_range_dylibloader_wrapper_asound) = dlsym(handle, "snd_tlv_get_dB_range"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_tlv_convert_to_dB + *(void **) (&snd_tlv_convert_to_dB_dylibloader_wrapper_asound) = dlsym(handle, "snd_tlv_convert_to_dB"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_tlv_convert_from_dB + *(void **) (&snd_tlv_convert_from_dB_dylibloader_wrapper_asound) = dlsym(handle, "snd_tlv_convert_from_dB"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_get_dB_range + *(void **) (&snd_ctl_get_dB_range_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_get_dB_range"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_convert_to_dB + *(void **) (&snd_ctl_convert_to_dB_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_convert_to_dB"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_ctl_convert_from_dB + *(void **) (&snd_ctl_convert_from_dB_dylibloader_wrapper_asound) = dlsym(handle, "snd_ctl_convert_from_dB"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_hctl_compare_fast + *(void **) (&snd_hctl_compare_fast_dylibloader_wrapper_asound) = dlsym(handle, "snd_hctl_compare_fast"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_hctl_open + *(void **) (&snd_hctl_open_dylibloader_wrapper_asound) = dlsym(handle, "snd_hctl_open"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_hctl_open_ctl + *(void **) (&snd_hctl_open_ctl_dylibloader_wrapper_asound) = dlsym(handle, "snd_hctl_open_ctl"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_hctl_close + *(void **) (&snd_hctl_close_dylibloader_wrapper_asound) = dlsym(handle, "snd_hctl_close"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_hctl_nonblock + *(void **) (&snd_hctl_nonblock_dylibloader_wrapper_asound) = dlsym(handle, "snd_hctl_nonblock"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_hctl_poll_descriptors_count + *(void **) (&snd_hctl_poll_descriptors_count_dylibloader_wrapper_asound) = dlsym(handle, "snd_hctl_poll_descriptors_count"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_hctl_poll_descriptors + *(void **) (&snd_hctl_poll_descriptors_dylibloader_wrapper_asound) = dlsym(handle, "snd_hctl_poll_descriptors"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_hctl_poll_descriptors_revents + *(void **) (&snd_hctl_poll_descriptors_revents_dylibloader_wrapper_asound) = dlsym(handle, "snd_hctl_poll_descriptors_revents"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_hctl_get_count + *(void **) (&snd_hctl_get_count_dylibloader_wrapper_asound) = dlsym(handle, "snd_hctl_get_count"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_hctl_set_compare + *(void **) (&snd_hctl_set_compare_dylibloader_wrapper_asound) = dlsym(handle, "snd_hctl_set_compare"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_hctl_first_elem + *(void **) (&snd_hctl_first_elem_dylibloader_wrapper_asound) = dlsym(handle, "snd_hctl_first_elem"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_hctl_last_elem + *(void **) (&snd_hctl_last_elem_dylibloader_wrapper_asound) = dlsym(handle, "snd_hctl_last_elem"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_hctl_find_elem + *(void **) (&snd_hctl_find_elem_dylibloader_wrapper_asound) = dlsym(handle, "snd_hctl_find_elem"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_hctl_set_callback + *(void **) (&snd_hctl_set_callback_dylibloader_wrapper_asound) = dlsym(handle, "snd_hctl_set_callback"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_hctl_set_callback_private + *(void **) (&snd_hctl_set_callback_private_dylibloader_wrapper_asound) = dlsym(handle, "snd_hctl_set_callback_private"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_hctl_get_callback_private + *(void **) (&snd_hctl_get_callback_private_dylibloader_wrapper_asound) = dlsym(handle, "snd_hctl_get_callback_private"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_hctl_load + *(void **) (&snd_hctl_load_dylibloader_wrapper_asound) = dlsym(handle, "snd_hctl_load"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_hctl_free + *(void **) (&snd_hctl_free_dylibloader_wrapper_asound) = dlsym(handle, "snd_hctl_free"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_hctl_handle_events + *(void **) (&snd_hctl_handle_events_dylibloader_wrapper_asound) = dlsym(handle, "snd_hctl_handle_events"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_hctl_name + *(void **) (&snd_hctl_name_dylibloader_wrapper_asound) = dlsym(handle, "snd_hctl_name"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_hctl_wait + *(void **) (&snd_hctl_wait_dylibloader_wrapper_asound) = dlsym(handle, "snd_hctl_wait"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_hctl_ctl + *(void **) (&snd_hctl_ctl_dylibloader_wrapper_asound) = dlsym(handle, "snd_hctl_ctl"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_hctl_elem_next + *(void **) (&snd_hctl_elem_next_dylibloader_wrapper_asound) = dlsym(handle, "snd_hctl_elem_next"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_hctl_elem_prev + *(void **) (&snd_hctl_elem_prev_dylibloader_wrapper_asound) = dlsym(handle, "snd_hctl_elem_prev"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_hctl_elem_info + *(void **) (&snd_hctl_elem_info_dylibloader_wrapper_asound) = dlsym(handle, "snd_hctl_elem_info"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_hctl_elem_read + *(void **) (&snd_hctl_elem_read_dylibloader_wrapper_asound) = dlsym(handle, "snd_hctl_elem_read"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_hctl_elem_write + *(void **) (&snd_hctl_elem_write_dylibloader_wrapper_asound) = dlsym(handle, "snd_hctl_elem_write"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_hctl_elem_tlv_read + *(void **) (&snd_hctl_elem_tlv_read_dylibloader_wrapper_asound) = dlsym(handle, "snd_hctl_elem_tlv_read"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_hctl_elem_tlv_write + *(void **) (&snd_hctl_elem_tlv_write_dylibloader_wrapper_asound) = dlsym(handle, "snd_hctl_elem_tlv_write"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_hctl_elem_tlv_command + *(void **) (&snd_hctl_elem_tlv_command_dylibloader_wrapper_asound) = dlsym(handle, "snd_hctl_elem_tlv_command"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_hctl_elem_get_hctl + *(void **) (&snd_hctl_elem_get_hctl_dylibloader_wrapper_asound) = dlsym(handle, "snd_hctl_elem_get_hctl"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_hctl_elem_get_id + *(void **) (&snd_hctl_elem_get_id_dylibloader_wrapper_asound) = dlsym(handle, "snd_hctl_elem_get_id"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_hctl_elem_get_numid + *(void **) (&snd_hctl_elem_get_numid_dylibloader_wrapper_asound) = dlsym(handle, "snd_hctl_elem_get_numid"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_hctl_elem_get_interface + *(void **) (&snd_hctl_elem_get_interface_dylibloader_wrapper_asound) = dlsym(handle, "snd_hctl_elem_get_interface"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_hctl_elem_get_device + *(void **) (&snd_hctl_elem_get_device_dylibloader_wrapper_asound) = dlsym(handle, "snd_hctl_elem_get_device"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_hctl_elem_get_subdevice + *(void **) (&snd_hctl_elem_get_subdevice_dylibloader_wrapper_asound) = dlsym(handle, "snd_hctl_elem_get_subdevice"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_hctl_elem_get_name + *(void **) (&snd_hctl_elem_get_name_dylibloader_wrapper_asound) = dlsym(handle, "snd_hctl_elem_get_name"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_hctl_elem_get_index + *(void **) (&snd_hctl_elem_get_index_dylibloader_wrapper_asound) = dlsym(handle, "snd_hctl_elem_get_index"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_hctl_elem_set_callback + *(void **) (&snd_hctl_elem_set_callback_dylibloader_wrapper_asound) = dlsym(handle, "snd_hctl_elem_set_callback"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_hctl_elem_get_callback_private + *(void **) (&snd_hctl_elem_get_callback_private_dylibloader_wrapper_asound) = dlsym(handle, "snd_hctl_elem_get_callback_private"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_hctl_elem_set_callback_private + *(void **) (&snd_hctl_elem_set_callback_private_dylibloader_wrapper_asound) = dlsym(handle, "snd_hctl_elem_set_callback_private"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_sctl_build + *(void **) (&snd_sctl_build_dylibloader_wrapper_asound) = dlsym(handle, "snd_sctl_build"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_sctl_free + *(void **) (&snd_sctl_free_dylibloader_wrapper_asound) = dlsym(handle, "snd_sctl_free"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_sctl_install + *(void **) (&snd_sctl_install_dylibloader_wrapper_asound) = dlsym(handle, "snd_sctl_install"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_sctl_remove + *(void **) (&snd_sctl_remove_dylibloader_wrapper_asound) = dlsym(handle, "snd_sctl_remove"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_mixer_open + *(void **) (&snd_mixer_open_dylibloader_wrapper_asound) = dlsym(handle, "snd_mixer_open"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_mixer_close + *(void **) (&snd_mixer_close_dylibloader_wrapper_asound) = dlsym(handle, "snd_mixer_close"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_mixer_first_elem + *(void **) (&snd_mixer_first_elem_dylibloader_wrapper_asound) = dlsym(handle, "snd_mixer_first_elem"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_mixer_last_elem + *(void **) (&snd_mixer_last_elem_dylibloader_wrapper_asound) = dlsym(handle, "snd_mixer_last_elem"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_mixer_handle_events + *(void **) (&snd_mixer_handle_events_dylibloader_wrapper_asound) = dlsym(handle, "snd_mixer_handle_events"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_mixer_attach + *(void **) (&snd_mixer_attach_dylibloader_wrapper_asound) = dlsym(handle, "snd_mixer_attach"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_mixer_attach_hctl + *(void **) (&snd_mixer_attach_hctl_dylibloader_wrapper_asound) = dlsym(handle, "snd_mixer_attach_hctl"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_mixer_detach + *(void **) (&snd_mixer_detach_dylibloader_wrapper_asound) = dlsym(handle, "snd_mixer_detach"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_mixer_detach_hctl + *(void **) (&snd_mixer_detach_hctl_dylibloader_wrapper_asound) = dlsym(handle, "snd_mixer_detach_hctl"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_mixer_get_hctl + *(void **) (&snd_mixer_get_hctl_dylibloader_wrapper_asound) = dlsym(handle, "snd_mixer_get_hctl"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_mixer_poll_descriptors_count + *(void **) (&snd_mixer_poll_descriptors_count_dylibloader_wrapper_asound) = dlsym(handle, "snd_mixer_poll_descriptors_count"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_mixer_poll_descriptors + *(void **) (&snd_mixer_poll_descriptors_dylibloader_wrapper_asound) = dlsym(handle, "snd_mixer_poll_descriptors"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_mixer_poll_descriptors_revents + *(void **) (&snd_mixer_poll_descriptors_revents_dylibloader_wrapper_asound) = dlsym(handle, "snd_mixer_poll_descriptors_revents"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_mixer_load + *(void **) (&snd_mixer_load_dylibloader_wrapper_asound) = dlsym(handle, "snd_mixer_load"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_mixer_free + *(void **) (&snd_mixer_free_dylibloader_wrapper_asound) = dlsym(handle, "snd_mixer_free"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_mixer_wait + *(void **) (&snd_mixer_wait_dylibloader_wrapper_asound) = dlsym(handle, "snd_mixer_wait"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_mixer_set_compare + *(void **) (&snd_mixer_set_compare_dylibloader_wrapper_asound) = dlsym(handle, "snd_mixer_set_compare"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_mixer_set_callback + *(void **) (&snd_mixer_set_callback_dylibloader_wrapper_asound) = dlsym(handle, "snd_mixer_set_callback"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_mixer_get_callback_private + *(void **) (&snd_mixer_get_callback_private_dylibloader_wrapper_asound) = dlsym(handle, "snd_mixer_get_callback_private"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_mixer_set_callback_private + *(void **) (&snd_mixer_set_callback_private_dylibloader_wrapper_asound) = dlsym(handle, "snd_mixer_set_callback_private"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_mixer_get_count + *(void **) (&snd_mixer_get_count_dylibloader_wrapper_asound) = dlsym(handle, "snd_mixer_get_count"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_mixer_class_unregister + *(void **) (&snd_mixer_class_unregister_dylibloader_wrapper_asound) = dlsym(handle, "snd_mixer_class_unregister"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_mixer_elem_next + *(void **) (&snd_mixer_elem_next_dylibloader_wrapper_asound) = dlsym(handle, "snd_mixer_elem_next"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_mixer_elem_prev + *(void **) (&snd_mixer_elem_prev_dylibloader_wrapper_asound) = dlsym(handle, "snd_mixer_elem_prev"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_mixer_elem_set_callback + *(void **) (&snd_mixer_elem_set_callback_dylibloader_wrapper_asound) = dlsym(handle, "snd_mixer_elem_set_callback"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_mixer_elem_get_callback_private + *(void **) (&snd_mixer_elem_get_callback_private_dylibloader_wrapper_asound) = dlsym(handle, "snd_mixer_elem_get_callback_private"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_mixer_elem_set_callback_private + *(void **) (&snd_mixer_elem_set_callback_private_dylibloader_wrapper_asound) = dlsym(handle, "snd_mixer_elem_set_callback_private"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_mixer_elem_get_type + *(void **) (&snd_mixer_elem_get_type_dylibloader_wrapper_asound) = dlsym(handle, "snd_mixer_elem_get_type"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_mixer_class_register + *(void **) (&snd_mixer_class_register_dylibloader_wrapper_asound) = dlsym(handle, "snd_mixer_class_register"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_mixer_elem_new + *(void **) (&snd_mixer_elem_new_dylibloader_wrapper_asound) = dlsym(handle, "snd_mixer_elem_new"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_mixer_elem_add + *(void **) (&snd_mixer_elem_add_dylibloader_wrapper_asound) = dlsym(handle, "snd_mixer_elem_add"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_mixer_elem_remove + *(void **) (&snd_mixer_elem_remove_dylibloader_wrapper_asound) = dlsym(handle, "snd_mixer_elem_remove"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_mixer_elem_free + *(void **) (&snd_mixer_elem_free_dylibloader_wrapper_asound) = dlsym(handle, "snd_mixer_elem_free"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_mixer_elem_info + *(void **) (&snd_mixer_elem_info_dylibloader_wrapper_asound) = dlsym(handle, "snd_mixer_elem_info"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_mixer_elem_value + *(void **) (&snd_mixer_elem_value_dylibloader_wrapper_asound) = dlsym(handle, "snd_mixer_elem_value"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_mixer_elem_attach + *(void **) (&snd_mixer_elem_attach_dylibloader_wrapper_asound) = dlsym(handle, "snd_mixer_elem_attach"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_mixer_elem_detach + *(void **) (&snd_mixer_elem_detach_dylibloader_wrapper_asound) = dlsym(handle, "snd_mixer_elem_detach"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_mixer_elem_empty + *(void **) (&snd_mixer_elem_empty_dylibloader_wrapper_asound) = dlsym(handle, "snd_mixer_elem_empty"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_mixer_elem_get_private + *(void **) (&snd_mixer_elem_get_private_dylibloader_wrapper_asound) = dlsym(handle, "snd_mixer_elem_get_private"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_mixer_class_sizeof + *(void **) (&snd_mixer_class_sizeof_dylibloader_wrapper_asound) = dlsym(handle, "snd_mixer_class_sizeof"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_mixer_class_malloc + *(void **) (&snd_mixer_class_malloc_dylibloader_wrapper_asound) = dlsym(handle, "snd_mixer_class_malloc"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_mixer_class_free + *(void **) (&snd_mixer_class_free_dylibloader_wrapper_asound) = dlsym(handle, "snd_mixer_class_free"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_mixer_class_copy + *(void **) (&snd_mixer_class_copy_dylibloader_wrapper_asound) = dlsym(handle, "snd_mixer_class_copy"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_mixer_class_get_mixer + *(void **) (&snd_mixer_class_get_mixer_dylibloader_wrapper_asound) = dlsym(handle, "snd_mixer_class_get_mixer"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_mixer_class_get_event + *(void **) (&snd_mixer_class_get_event_dylibloader_wrapper_asound) = dlsym(handle, "snd_mixer_class_get_event"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_mixer_class_get_private + *(void **) (&snd_mixer_class_get_private_dylibloader_wrapper_asound) = dlsym(handle, "snd_mixer_class_get_private"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_mixer_class_get_compare + *(void **) (&snd_mixer_class_get_compare_dylibloader_wrapper_asound) = dlsym(handle, "snd_mixer_class_get_compare"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_mixer_class_set_event + *(void **) (&snd_mixer_class_set_event_dylibloader_wrapper_asound) = dlsym(handle, "snd_mixer_class_set_event"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_mixer_class_set_private + *(void **) (&snd_mixer_class_set_private_dylibloader_wrapper_asound) = dlsym(handle, "snd_mixer_class_set_private"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_mixer_class_set_private_free + *(void **) (&snd_mixer_class_set_private_free_dylibloader_wrapper_asound) = dlsym(handle, "snd_mixer_class_set_private_free"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_mixer_class_set_compare + *(void **) (&snd_mixer_class_set_compare_dylibloader_wrapper_asound) = dlsym(handle, "snd_mixer_class_set_compare"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_mixer_selem_channel_name + *(void **) (&snd_mixer_selem_channel_name_dylibloader_wrapper_asound) = dlsym(handle, "snd_mixer_selem_channel_name"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_mixer_selem_register + *(void **) (&snd_mixer_selem_register_dylibloader_wrapper_asound) = dlsym(handle, "snd_mixer_selem_register"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_mixer_selem_get_id + *(void **) (&snd_mixer_selem_get_id_dylibloader_wrapper_asound) = dlsym(handle, "snd_mixer_selem_get_id"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_mixer_selem_get_name + *(void **) (&snd_mixer_selem_get_name_dylibloader_wrapper_asound) = dlsym(handle, "snd_mixer_selem_get_name"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_mixer_selem_get_index + *(void **) (&snd_mixer_selem_get_index_dylibloader_wrapper_asound) = dlsym(handle, "snd_mixer_selem_get_index"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_mixer_find_selem + *(void **) (&snd_mixer_find_selem_dylibloader_wrapper_asound) = dlsym(handle, "snd_mixer_find_selem"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_mixer_selem_is_active + *(void **) (&snd_mixer_selem_is_active_dylibloader_wrapper_asound) = dlsym(handle, "snd_mixer_selem_is_active"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_mixer_selem_is_playback_mono + *(void **) (&snd_mixer_selem_is_playback_mono_dylibloader_wrapper_asound) = dlsym(handle, "snd_mixer_selem_is_playback_mono"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_mixer_selem_has_playback_channel + *(void **) (&snd_mixer_selem_has_playback_channel_dylibloader_wrapper_asound) = dlsym(handle, "snd_mixer_selem_has_playback_channel"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_mixer_selem_is_capture_mono + *(void **) (&snd_mixer_selem_is_capture_mono_dylibloader_wrapper_asound) = dlsym(handle, "snd_mixer_selem_is_capture_mono"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_mixer_selem_has_capture_channel + *(void **) (&snd_mixer_selem_has_capture_channel_dylibloader_wrapper_asound) = dlsym(handle, "snd_mixer_selem_has_capture_channel"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_mixer_selem_get_capture_group + *(void **) (&snd_mixer_selem_get_capture_group_dylibloader_wrapper_asound) = dlsym(handle, "snd_mixer_selem_get_capture_group"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_mixer_selem_has_common_volume + *(void **) (&snd_mixer_selem_has_common_volume_dylibloader_wrapper_asound) = dlsym(handle, "snd_mixer_selem_has_common_volume"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_mixer_selem_has_playback_volume + *(void **) (&snd_mixer_selem_has_playback_volume_dylibloader_wrapper_asound) = dlsym(handle, "snd_mixer_selem_has_playback_volume"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_mixer_selem_has_playback_volume_joined + *(void **) (&snd_mixer_selem_has_playback_volume_joined_dylibloader_wrapper_asound) = dlsym(handle, "snd_mixer_selem_has_playback_volume_joined"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_mixer_selem_has_capture_volume + *(void **) (&snd_mixer_selem_has_capture_volume_dylibloader_wrapper_asound) = dlsym(handle, "snd_mixer_selem_has_capture_volume"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_mixer_selem_has_capture_volume_joined + *(void **) (&snd_mixer_selem_has_capture_volume_joined_dylibloader_wrapper_asound) = dlsym(handle, "snd_mixer_selem_has_capture_volume_joined"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_mixer_selem_has_common_switch + *(void **) (&snd_mixer_selem_has_common_switch_dylibloader_wrapper_asound) = dlsym(handle, "snd_mixer_selem_has_common_switch"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_mixer_selem_has_playback_switch + *(void **) (&snd_mixer_selem_has_playback_switch_dylibloader_wrapper_asound) = dlsym(handle, "snd_mixer_selem_has_playback_switch"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_mixer_selem_has_playback_switch_joined + *(void **) (&snd_mixer_selem_has_playback_switch_joined_dylibloader_wrapper_asound) = dlsym(handle, "snd_mixer_selem_has_playback_switch_joined"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_mixer_selem_has_capture_switch + *(void **) (&snd_mixer_selem_has_capture_switch_dylibloader_wrapper_asound) = dlsym(handle, "snd_mixer_selem_has_capture_switch"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_mixer_selem_has_capture_switch_joined + *(void **) (&snd_mixer_selem_has_capture_switch_joined_dylibloader_wrapper_asound) = dlsym(handle, "snd_mixer_selem_has_capture_switch_joined"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_mixer_selem_has_capture_switch_exclusive + *(void **) (&snd_mixer_selem_has_capture_switch_exclusive_dylibloader_wrapper_asound) = dlsym(handle, "snd_mixer_selem_has_capture_switch_exclusive"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_mixer_selem_ask_playback_vol_dB + *(void **) (&snd_mixer_selem_ask_playback_vol_dB_dylibloader_wrapper_asound) = dlsym(handle, "snd_mixer_selem_ask_playback_vol_dB"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_mixer_selem_ask_capture_vol_dB + *(void **) (&snd_mixer_selem_ask_capture_vol_dB_dylibloader_wrapper_asound) = dlsym(handle, "snd_mixer_selem_ask_capture_vol_dB"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_mixer_selem_ask_playback_dB_vol + *(void **) (&snd_mixer_selem_ask_playback_dB_vol_dylibloader_wrapper_asound) = dlsym(handle, "snd_mixer_selem_ask_playback_dB_vol"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_mixer_selem_ask_capture_dB_vol + *(void **) (&snd_mixer_selem_ask_capture_dB_vol_dylibloader_wrapper_asound) = dlsym(handle, "snd_mixer_selem_ask_capture_dB_vol"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_mixer_selem_get_playback_volume + *(void **) (&snd_mixer_selem_get_playback_volume_dylibloader_wrapper_asound) = dlsym(handle, "snd_mixer_selem_get_playback_volume"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_mixer_selem_get_capture_volume + *(void **) (&snd_mixer_selem_get_capture_volume_dylibloader_wrapper_asound) = dlsym(handle, "snd_mixer_selem_get_capture_volume"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_mixer_selem_get_playback_dB + *(void **) (&snd_mixer_selem_get_playback_dB_dylibloader_wrapper_asound) = dlsym(handle, "snd_mixer_selem_get_playback_dB"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_mixer_selem_get_capture_dB + *(void **) (&snd_mixer_selem_get_capture_dB_dylibloader_wrapper_asound) = dlsym(handle, "snd_mixer_selem_get_capture_dB"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_mixer_selem_get_playback_switch + *(void **) (&snd_mixer_selem_get_playback_switch_dylibloader_wrapper_asound) = dlsym(handle, "snd_mixer_selem_get_playback_switch"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_mixer_selem_get_capture_switch + *(void **) (&snd_mixer_selem_get_capture_switch_dylibloader_wrapper_asound) = dlsym(handle, "snd_mixer_selem_get_capture_switch"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_mixer_selem_set_playback_volume + *(void **) (&snd_mixer_selem_set_playback_volume_dylibloader_wrapper_asound) = dlsym(handle, "snd_mixer_selem_set_playback_volume"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_mixer_selem_set_capture_volume + *(void **) (&snd_mixer_selem_set_capture_volume_dylibloader_wrapper_asound) = dlsym(handle, "snd_mixer_selem_set_capture_volume"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_mixer_selem_set_playback_dB + *(void **) (&snd_mixer_selem_set_playback_dB_dylibloader_wrapper_asound) = dlsym(handle, "snd_mixer_selem_set_playback_dB"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_mixer_selem_set_capture_dB + *(void **) (&snd_mixer_selem_set_capture_dB_dylibloader_wrapper_asound) = dlsym(handle, "snd_mixer_selem_set_capture_dB"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_mixer_selem_set_playback_volume_all + *(void **) (&snd_mixer_selem_set_playback_volume_all_dylibloader_wrapper_asound) = dlsym(handle, "snd_mixer_selem_set_playback_volume_all"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_mixer_selem_set_capture_volume_all + *(void **) (&snd_mixer_selem_set_capture_volume_all_dylibloader_wrapper_asound) = dlsym(handle, "snd_mixer_selem_set_capture_volume_all"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_mixer_selem_set_playback_dB_all + *(void **) (&snd_mixer_selem_set_playback_dB_all_dylibloader_wrapper_asound) = dlsym(handle, "snd_mixer_selem_set_playback_dB_all"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_mixer_selem_set_capture_dB_all + *(void **) (&snd_mixer_selem_set_capture_dB_all_dylibloader_wrapper_asound) = dlsym(handle, "snd_mixer_selem_set_capture_dB_all"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_mixer_selem_set_playback_switch + *(void **) (&snd_mixer_selem_set_playback_switch_dylibloader_wrapper_asound) = dlsym(handle, "snd_mixer_selem_set_playback_switch"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_mixer_selem_set_capture_switch + *(void **) (&snd_mixer_selem_set_capture_switch_dylibloader_wrapper_asound) = dlsym(handle, "snd_mixer_selem_set_capture_switch"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_mixer_selem_set_playback_switch_all + *(void **) (&snd_mixer_selem_set_playback_switch_all_dylibloader_wrapper_asound) = dlsym(handle, "snd_mixer_selem_set_playback_switch_all"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_mixer_selem_set_capture_switch_all + *(void **) (&snd_mixer_selem_set_capture_switch_all_dylibloader_wrapper_asound) = dlsym(handle, "snd_mixer_selem_set_capture_switch_all"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_mixer_selem_get_playback_volume_range + *(void **) (&snd_mixer_selem_get_playback_volume_range_dylibloader_wrapper_asound) = dlsym(handle, "snd_mixer_selem_get_playback_volume_range"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_mixer_selem_get_playback_dB_range + *(void **) (&snd_mixer_selem_get_playback_dB_range_dylibloader_wrapper_asound) = dlsym(handle, "snd_mixer_selem_get_playback_dB_range"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_mixer_selem_set_playback_volume_range + *(void **) (&snd_mixer_selem_set_playback_volume_range_dylibloader_wrapper_asound) = dlsym(handle, "snd_mixer_selem_set_playback_volume_range"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_mixer_selem_get_capture_volume_range + *(void **) (&snd_mixer_selem_get_capture_volume_range_dylibloader_wrapper_asound) = dlsym(handle, "snd_mixer_selem_get_capture_volume_range"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_mixer_selem_get_capture_dB_range + *(void **) (&snd_mixer_selem_get_capture_dB_range_dylibloader_wrapper_asound) = dlsym(handle, "snd_mixer_selem_get_capture_dB_range"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_mixer_selem_set_capture_volume_range + *(void **) (&snd_mixer_selem_set_capture_volume_range_dylibloader_wrapper_asound) = dlsym(handle, "snd_mixer_selem_set_capture_volume_range"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_mixer_selem_is_enumerated + *(void **) (&snd_mixer_selem_is_enumerated_dylibloader_wrapper_asound) = dlsym(handle, "snd_mixer_selem_is_enumerated"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_mixer_selem_is_enum_playback + *(void **) (&snd_mixer_selem_is_enum_playback_dylibloader_wrapper_asound) = dlsym(handle, "snd_mixer_selem_is_enum_playback"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_mixer_selem_is_enum_capture + *(void **) (&snd_mixer_selem_is_enum_capture_dylibloader_wrapper_asound) = dlsym(handle, "snd_mixer_selem_is_enum_capture"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_mixer_selem_get_enum_items + *(void **) (&snd_mixer_selem_get_enum_items_dylibloader_wrapper_asound) = dlsym(handle, "snd_mixer_selem_get_enum_items"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_mixer_selem_get_enum_item_name + *(void **) (&snd_mixer_selem_get_enum_item_name_dylibloader_wrapper_asound) = dlsym(handle, "snd_mixer_selem_get_enum_item_name"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_mixer_selem_get_enum_item + *(void **) (&snd_mixer_selem_get_enum_item_dylibloader_wrapper_asound) = dlsym(handle, "snd_mixer_selem_get_enum_item"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_mixer_selem_set_enum_item + *(void **) (&snd_mixer_selem_set_enum_item_dylibloader_wrapper_asound) = dlsym(handle, "snd_mixer_selem_set_enum_item"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_mixer_selem_id_sizeof + *(void **) (&snd_mixer_selem_id_sizeof_dylibloader_wrapper_asound) = dlsym(handle, "snd_mixer_selem_id_sizeof"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_mixer_selem_id_malloc + *(void **) (&snd_mixer_selem_id_malloc_dylibloader_wrapper_asound) = dlsym(handle, "snd_mixer_selem_id_malloc"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_mixer_selem_id_free + *(void **) (&snd_mixer_selem_id_free_dylibloader_wrapper_asound) = dlsym(handle, "snd_mixer_selem_id_free"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_mixer_selem_id_copy + *(void **) (&snd_mixer_selem_id_copy_dylibloader_wrapper_asound) = dlsym(handle, "snd_mixer_selem_id_copy"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_mixer_selem_id_get_name + *(void **) (&snd_mixer_selem_id_get_name_dylibloader_wrapper_asound) = dlsym(handle, "snd_mixer_selem_id_get_name"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_mixer_selem_id_get_index + *(void **) (&snd_mixer_selem_id_get_index_dylibloader_wrapper_asound) = dlsym(handle, "snd_mixer_selem_id_get_index"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_mixer_selem_id_set_name + *(void **) (&snd_mixer_selem_id_set_name_dylibloader_wrapper_asound) = dlsym(handle, "snd_mixer_selem_id_set_name"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_mixer_selem_id_set_index + *(void **) (&snd_mixer_selem_id_set_index_dylibloader_wrapper_asound) = dlsym(handle, "snd_mixer_selem_id_set_index"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_mixer_selem_id_parse + *(void **) (&snd_mixer_selem_id_parse_dylibloader_wrapper_asound) = dlsym(handle, "snd_mixer_selem_id_parse"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_open + *(void **) (&snd_seq_open_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_open"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_open_lconf + *(void **) (&snd_seq_open_lconf_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_open_lconf"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_name + *(void **) (&snd_seq_name_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_name"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_type + *(void **) (&snd_seq_type_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_type"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_close + *(void **) (&snd_seq_close_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_close"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_poll_descriptors_count + *(void **) (&snd_seq_poll_descriptors_count_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_poll_descriptors_count"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_poll_descriptors + *(void **) (&snd_seq_poll_descriptors_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_poll_descriptors"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_poll_descriptors_revents + *(void **) (&snd_seq_poll_descriptors_revents_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_poll_descriptors_revents"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_nonblock + *(void **) (&snd_seq_nonblock_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_nonblock"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_client_id + *(void **) (&snd_seq_client_id_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_client_id"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_get_output_buffer_size + *(void **) (&snd_seq_get_output_buffer_size_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_get_output_buffer_size"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_get_input_buffer_size + *(void **) (&snd_seq_get_input_buffer_size_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_get_input_buffer_size"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_set_output_buffer_size + *(void **) (&snd_seq_set_output_buffer_size_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_set_output_buffer_size"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_set_input_buffer_size + *(void **) (&snd_seq_set_input_buffer_size_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_set_input_buffer_size"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_system_info_sizeof + *(void **) (&snd_seq_system_info_sizeof_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_system_info_sizeof"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_system_info_malloc + *(void **) (&snd_seq_system_info_malloc_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_system_info_malloc"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_system_info_free + *(void **) (&snd_seq_system_info_free_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_system_info_free"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_system_info_copy + *(void **) (&snd_seq_system_info_copy_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_system_info_copy"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_system_info_get_queues + *(void **) (&snd_seq_system_info_get_queues_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_system_info_get_queues"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_system_info_get_clients + *(void **) (&snd_seq_system_info_get_clients_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_system_info_get_clients"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_system_info_get_ports + *(void **) (&snd_seq_system_info_get_ports_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_system_info_get_ports"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_system_info_get_channels + *(void **) (&snd_seq_system_info_get_channels_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_system_info_get_channels"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_system_info_get_cur_clients + *(void **) (&snd_seq_system_info_get_cur_clients_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_system_info_get_cur_clients"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_system_info_get_cur_queues + *(void **) (&snd_seq_system_info_get_cur_queues_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_system_info_get_cur_queues"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_system_info + *(void **) (&snd_seq_system_info_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_system_info"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_client_info_sizeof + *(void **) (&snd_seq_client_info_sizeof_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_client_info_sizeof"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_client_info_malloc + *(void **) (&snd_seq_client_info_malloc_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_client_info_malloc"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_client_info_free + *(void **) (&snd_seq_client_info_free_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_client_info_free"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_client_info_copy + *(void **) (&snd_seq_client_info_copy_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_client_info_copy"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_client_info_get_client + *(void **) (&snd_seq_client_info_get_client_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_client_info_get_client"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_client_info_get_type + *(void **) (&snd_seq_client_info_get_type_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_client_info_get_type"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_client_info_get_name + *(void **) (&snd_seq_client_info_get_name_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_client_info_get_name"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_client_info_get_broadcast_filter + *(void **) (&snd_seq_client_info_get_broadcast_filter_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_client_info_get_broadcast_filter"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_client_info_get_error_bounce + *(void **) (&snd_seq_client_info_get_error_bounce_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_client_info_get_error_bounce"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_client_info_get_card + *(void **) (&snd_seq_client_info_get_card_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_client_info_get_card"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_client_info_get_pid + *(void **) (&snd_seq_client_info_get_pid_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_client_info_get_pid"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_client_info_get_event_filter + *(void **) (&snd_seq_client_info_get_event_filter_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_client_info_get_event_filter"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_client_info_get_num_ports + *(void **) (&snd_seq_client_info_get_num_ports_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_client_info_get_num_ports"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_client_info_get_event_lost + *(void **) (&snd_seq_client_info_get_event_lost_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_client_info_get_event_lost"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_client_info_set_client + *(void **) (&snd_seq_client_info_set_client_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_client_info_set_client"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_client_info_set_name + *(void **) (&snd_seq_client_info_set_name_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_client_info_set_name"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_client_info_set_broadcast_filter + *(void **) (&snd_seq_client_info_set_broadcast_filter_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_client_info_set_broadcast_filter"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_client_info_set_error_bounce + *(void **) (&snd_seq_client_info_set_error_bounce_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_client_info_set_error_bounce"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_client_info_set_event_filter + *(void **) (&snd_seq_client_info_set_event_filter_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_client_info_set_event_filter"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_client_info_event_filter_clear + *(void **) (&snd_seq_client_info_event_filter_clear_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_client_info_event_filter_clear"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_client_info_event_filter_add + *(void **) (&snd_seq_client_info_event_filter_add_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_client_info_event_filter_add"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_client_info_event_filter_del + *(void **) (&snd_seq_client_info_event_filter_del_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_client_info_event_filter_del"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_client_info_event_filter_check + *(void **) (&snd_seq_client_info_event_filter_check_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_client_info_event_filter_check"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_get_client_info + *(void **) (&snd_seq_get_client_info_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_get_client_info"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_get_any_client_info + *(void **) (&snd_seq_get_any_client_info_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_get_any_client_info"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_set_client_info + *(void **) (&snd_seq_set_client_info_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_set_client_info"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_query_next_client + *(void **) (&snd_seq_query_next_client_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_query_next_client"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_client_pool_sizeof + *(void **) (&snd_seq_client_pool_sizeof_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_client_pool_sizeof"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_client_pool_malloc + *(void **) (&snd_seq_client_pool_malloc_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_client_pool_malloc"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_client_pool_free + *(void **) (&snd_seq_client_pool_free_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_client_pool_free"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_client_pool_copy + *(void **) (&snd_seq_client_pool_copy_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_client_pool_copy"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_client_pool_get_client + *(void **) (&snd_seq_client_pool_get_client_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_client_pool_get_client"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_client_pool_get_output_pool + *(void **) (&snd_seq_client_pool_get_output_pool_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_client_pool_get_output_pool"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_client_pool_get_input_pool + *(void **) (&snd_seq_client_pool_get_input_pool_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_client_pool_get_input_pool"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_client_pool_get_output_room + *(void **) (&snd_seq_client_pool_get_output_room_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_client_pool_get_output_room"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_client_pool_get_output_free + *(void **) (&snd_seq_client_pool_get_output_free_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_client_pool_get_output_free"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_client_pool_get_input_free + *(void **) (&snd_seq_client_pool_get_input_free_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_client_pool_get_input_free"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_client_pool_set_output_pool + *(void **) (&snd_seq_client_pool_set_output_pool_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_client_pool_set_output_pool"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_client_pool_set_input_pool + *(void **) (&snd_seq_client_pool_set_input_pool_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_client_pool_set_input_pool"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_client_pool_set_output_room + *(void **) (&snd_seq_client_pool_set_output_room_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_client_pool_set_output_room"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_get_client_pool + *(void **) (&snd_seq_get_client_pool_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_get_client_pool"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_set_client_pool + *(void **) (&snd_seq_set_client_pool_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_set_client_pool"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_port_info_sizeof + *(void **) (&snd_seq_port_info_sizeof_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_port_info_sizeof"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_port_info_malloc + *(void **) (&snd_seq_port_info_malloc_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_port_info_malloc"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_port_info_free + *(void **) (&snd_seq_port_info_free_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_port_info_free"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_port_info_copy + *(void **) (&snd_seq_port_info_copy_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_port_info_copy"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_port_info_get_client + *(void **) (&snd_seq_port_info_get_client_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_port_info_get_client"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_port_info_get_port + *(void **) (&snd_seq_port_info_get_port_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_port_info_get_port"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_port_info_get_addr + *(void **) (&snd_seq_port_info_get_addr_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_port_info_get_addr"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_port_info_get_name + *(void **) (&snd_seq_port_info_get_name_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_port_info_get_name"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_port_info_get_capability + *(void **) (&snd_seq_port_info_get_capability_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_port_info_get_capability"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_port_info_get_type + *(void **) (&snd_seq_port_info_get_type_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_port_info_get_type"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_port_info_get_midi_channels + *(void **) (&snd_seq_port_info_get_midi_channels_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_port_info_get_midi_channels"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_port_info_get_midi_voices + *(void **) (&snd_seq_port_info_get_midi_voices_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_port_info_get_midi_voices"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_port_info_get_synth_voices + *(void **) (&snd_seq_port_info_get_synth_voices_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_port_info_get_synth_voices"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_port_info_get_read_use + *(void **) (&snd_seq_port_info_get_read_use_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_port_info_get_read_use"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_port_info_get_write_use + *(void **) (&snd_seq_port_info_get_write_use_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_port_info_get_write_use"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_port_info_get_port_specified + *(void **) (&snd_seq_port_info_get_port_specified_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_port_info_get_port_specified"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_port_info_get_timestamping + *(void **) (&snd_seq_port_info_get_timestamping_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_port_info_get_timestamping"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_port_info_get_timestamp_real + *(void **) (&snd_seq_port_info_get_timestamp_real_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_port_info_get_timestamp_real"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_port_info_get_timestamp_queue + *(void **) (&snd_seq_port_info_get_timestamp_queue_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_port_info_get_timestamp_queue"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_port_info_set_client + *(void **) (&snd_seq_port_info_set_client_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_port_info_set_client"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_port_info_set_port + *(void **) (&snd_seq_port_info_set_port_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_port_info_set_port"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_port_info_set_addr + *(void **) (&snd_seq_port_info_set_addr_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_port_info_set_addr"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_port_info_set_name + *(void **) (&snd_seq_port_info_set_name_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_port_info_set_name"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_port_info_set_capability + *(void **) (&snd_seq_port_info_set_capability_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_port_info_set_capability"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_port_info_set_type + *(void **) (&snd_seq_port_info_set_type_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_port_info_set_type"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_port_info_set_midi_channels + *(void **) (&snd_seq_port_info_set_midi_channels_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_port_info_set_midi_channels"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_port_info_set_midi_voices + *(void **) (&snd_seq_port_info_set_midi_voices_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_port_info_set_midi_voices"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_port_info_set_synth_voices + *(void **) (&snd_seq_port_info_set_synth_voices_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_port_info_set_synth_voices"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_port_info_set_port_specified + *(void **) (&snd_seq_port_info_set_port_specified_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_port_info_set_port_specified"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_port_info_set_timestamping + *(void **) (&snd_seq_port_info_set_timestamping_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_port_info_set_timestamping"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_port_info_set_timestamp_real + *(void **) (&snd_seq_port_info_set_timestamp_real_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_port_info_set_timestamp_real"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_port_info_set_timestamp_queue + *(void **) (&snd_seq_port_info_set_timestamp_queue_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_port_info_set_timestamp_queue"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_create_port + *(void **) (&snd_seq_create_port_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_create_port"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_delete_port + *(void **) (&snd_seq_delete_port_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_delete_port"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_get_port_info + *(void **) (&snd_seq_get_port_info_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_get_port_info"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_get_any_port_info + *(void **) (&snd_seq_get_any_port_info_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_get_any_port_info"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_set_port_info + *(void **) (&snd_seq_set_port_info_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_set_port_info"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_query_next_port + *(void **) (&snd_seq_query_next_port_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_query_next_port"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_port_subscribe_sizeof + *(void **) (&snd_seq_port_subscribe_sizeof_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_port_subscribe_sizeof"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_port_subscribe_malloc + *(void **) (&snd_seq_port_subscribe_malloc_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_port_subscribe_malloc"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_port_subscribe_free + *(void **) (&snd_seq_port_subscribe_free_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_port_subscribe_free"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_port_subscribe_copy + *(void **) (&snd_seq_port_subscribe_copy_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_port_subscribe_copy"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_port_subscribe_get_sender + *(void **) (&snd_seq_port_subscribe_get_sender_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_port_subscribe_get_sender"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_port_subscribe_get_dest + *(void **) (&snd_seq_port_subscribe_get_dest_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_port_subscribe_get_dest"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_port_subscribe_get_queue + *(void **) (&snd_seq_port_subscribe_get_queue_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_port_subscribe_get_queue"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_port_subscribe_get_exclusive + *(void **) (&snd_seq_port_subscribe_get_exclusive_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_port_subscribe_get_exclusive"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_port_subscribe_get_time_update + *(void **) (&snd_seq_port_subscribe_get_time_update_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_port_subscribe_get_time_update"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_port_subscribe_get_time_real + *(void **) (&snd_seq_port_subscribe_get_time_real_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_port_subscribe_get_time_real"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_port_subscribe_set_sender + *(void **) (&snd_seq_port_subscribe_set_sender_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_port_subscribe_set_sender"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_port_subscribe_set_dest + *(void **) (&snd_seq_port_subscribe_set_dest_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_port_subscribe_set_dest"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_port_subscribe_set_queue + *(void **) (&snd_seq_port_subscribe_set_queue_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_port_subscribe_set_queue"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_port_subscribe_set_exclusive + *(void **) (&snd_seq_port_subscribe_set_exclusive_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_port_subscribe_set_exclusive"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_port_subscribe_set_time_update + *(void **) (&snd_seq_port_subscribe_set_time_update_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_port_subscribe_set_time_update"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_port_subscribe_set_time_real + *(void **) (&snd_seq_port_subscribe_set_time_real_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_port_subscribe_set_time_real"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_get_port_subscription + *(void **) (&snd_seq_get_port_subscription_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_get_port_subscription"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_subscribe_port + *(void **) (&snd_seq_subscribe_port_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_subscribe_port"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_unsubscribe_port + *(void **) (&snd_seq_unsubscribe_port_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_unsubscribe_port"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_query_subscribe_sizeof + *(void **) (&snd_seq_query_subscribe_sizeof_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_query_subscribe_sizeof"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_query_subscribe_malloc + *(void **) (&snd_seq_query_subscribe_malloc_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_query_subscribe_malloc"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_query_subscribe_free + *(void **) (&snd_seq_query_subscribe_free_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_query_subscribe_free"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_query_subscribe_copy + *(void **) (&snd_seq_query_subscribe_copy_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_query_subscribe_copy"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_query_subscribe_get_client + *(void **) (&snd_seq_query_subscribe_get_client_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_query_subscribe_get_client"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_query_subscribe_get_port + *(void **) (&snd_seq_query_subscribe_get_port_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_query_subscribe_get_port"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_query_subscribe_get_root + *(void **) (&snd_seq_query_subscribe_get_root_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_query_subscribe_get_root"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_query_subscribe_get_type + *(void **) (&snd_seq_query_subscribe_get_type_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_query_subscribe_get_type"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_query_subscribe_get_index + *(void **) (&snd_seq_query_subscribe_get_index_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_query_subscribe_get_index"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_query_subscribe_get_num_subs + *(void **) (&snd_seq_query_subscribe_get_num_subs_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_query_subscribe_get_num_subs"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_query_subscribe_get_addr + *(void **) (&snd_seq_query_subscribe_get_addr_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_query_subscribe_get_addr"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_query_subscribe_get_queue + *(void **) (&snd_seq_query_subscribe_get_queue_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_query_subscribe_get_queue"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_query_subscribe_get_exclusive + *(void **) (&snd_seq_query_subscribe_get_exclusive_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_query_subscribe_get_exclusive"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_query_subscribe_get_time_update + *(void **) (&snd_seq_query_subscribe_get_time_update_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_query_subscribe_get_time_update"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_query_subscribe_get_time_real + *(void **) (&snd_seq_query_subscribe_get_time_real_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_query_subscribe_get_time_real"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_query_subscribe_set_client + *(void **) (&snd_seq_query_subscribe_set_client_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_query_subscribe_set_client"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_query_subscribe_set_port + *(void **) (&snd_seq_query_subscribe_set_port_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_query_subscribe_set_port"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_query_subscribe_set_root + *(void **) (&snd_seq_query_subscribe_set_root_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_query_subscribe_set_root"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_query_subscribe_set_type + *(void **) (&snd_seq_query_subscribe_set_type_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_query_subscribe_set_type"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_query_subscribe_set_index + *(void **) (&snd_seq_query_subscribe_set_index_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_query_subscribe_set_index"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_query_port_subscribers + *(void **) (&snd_seq_query_port_subscribers_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_query_port_subscribers"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_queue_info_sizeof + *(void **) (&snd_seq_queue_info_sizeof_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_queue_info_sizeof"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_queue_info_malloc + *(void **) (&snd_seq_queue_info_malloc_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_queue_info_malloc"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_queue_info_free + *(void **) (&snd_seq_queue_info_free_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_queue_info_free"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_queue_info_copy + *(void **) (&snd_seq_queue_info_copy_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_queue_info_copy"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_queue_info_get_queue + *(void **) (&snd_seq_queue_info_get_queue_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_queue_info_get_queue"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_queue_info_get_name + *(void **) (&snd_seq_queue_info_get_name_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_queue_info_get_name"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_queue_info_get_owner + *(void **) (&snd_seq_queue_info_get_owner_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_queue_info_get_owner"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_queue_info_get_locked + *(void **) (&snd_seq_queue_info_get_locked_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_queue_info_get_locked"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_queue_info_get_flags + *(void **) (&snd_seq_queue_info_get_flags_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_queue_info_get_flags"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_queue_info_set_name + *(void **) (&snd_seq_queue_info_set_name_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_queue_info_set_name"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_queue_info_set_owner + *(void **) (&snd_seq_queue_info_set_owner_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_queue_info_set_owner"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_queue_info_set_locked + *(void **) (&snd_seq_queue_info_set_locked_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_queue_info_set_locked"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_queue_info_set_flags + *(void **) (&snd_seq_queue_info_set_flags_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_queue_info_set_flags"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_create_queue + *(void **) (&snd_seq_create_queue_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_create_queue"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_alloc_named_queue + *(void **) (&snd_seq_alloc_named_queue_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_alloc_named_queue"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_alloc_queue + *(void **) (&snd_seq_alloc_queue_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_alloc_queue"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_free_queue + *(void **) (&snd_seq_free_queue_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_free_queue"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_get_queue_info + *(void **) (&snd_seq_get_queue_info_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_get_queue_info"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_set_queue_info + *(void **) (&snd_seq_set_queue_info_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_set_queue_info"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_query_named_queue + *(void **) (&snd_seq_query_named_queue_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_query_named_queue"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_get_queue_usage + *(void **) (&snd_seq_get_queue_usage_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_get_queue_usage"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_set_queue_usage + *(void **) (&snd_seq_set_queue_usage_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_set_queue_usage"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_queue_status_sizeof + *(void **) (&snd_seq_queue_status_sizeof_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_queue_status_sizeof"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_queue_status_malloc + *(void **) (&snd_seq_queue_status_malloc_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_queue_status_malloc"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_queue_status_free + *(void **) (&snd_seq_queue_status_free_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_queue_status_free"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_queue_status_copy + *(void **) (&snd_seq_queue_status_copy_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_queue_status_copy"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_queue_status_get_queue + *(void **) (&snd_seq_queue_status_get_queue_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_queue_status_get_queue"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_queue_status_get_events + *(void **) (&snd_seq_queue_status_get_events_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_queue_status_get_events"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_queue_status_get_tick_time + *(void **) (&snd_seq_queue_status_get_tick_time_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_queue_status_get_tick_time"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_queue_status_get_real_time + *(void **) (&snd_seq_queue_status_get_real_time_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_queue_status_get_real_time"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_queue_status_get_status + *(void **) (&snd_seq_queue_status_get_status_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_queue_status_get_status"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_get_queue_status + *(void **) (&snd_seq_get_queue_status_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_get_queue_status"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_queue_tempo_sizeof + *(void **) (&snd_seq_queue_tempo_sizeof_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_queue_tempo_sizeof"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_queue_tempo_malloc + *(void **) (&snd_seq_queue_tempo_malloc_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_queue_tempo_malloc"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_queue_tempo_free + *(void **) (&snd_seq_queue_tempo_free_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_queue_tempo_free"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_queue_tempo_copy + *(void **) (&snd_seq_queue_tempo_copy_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_queue_tempo_copy"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_queue_tempo_get_queue + *(void **) (&snd_seq_queue_tempo_get_queue_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_queue_tempo_get_queue"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_queue_tempo_get_tempo + *(void **) (&snd_seq_queue_tempo_get_tempo_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_queue_tempo_get_tempo"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_queue_tempo_get_ppq + *(void **) (&snd_seq_queue_tempo_get_ppq_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_queue_tempo_get_ppq"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_queue_tempo_get_skew + *(void **) (&snd_seq_queue_tempo_get_skew_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_queue_tempo_get_skew"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_queue_tempo_get_skew_base + *(void **) (&snd_seq_queue_tempo_get_skew_base_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_queue_tempo_get_skew_base"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_queue_tempo_set_tempo + *(void **) (&snd_seq_queue_tempo_set_tempo_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_queue_tempo_set_tempo"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_queue_tempo_set_ppq + *(void **) (&snd_seq_queue_tempo_set_ppq_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_queue_tempo_set_ppq"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_queue_tempo_set_skew + *(void **) (&snd_seq_queue_tempo_set_skew_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_queue_tempo_set_skew"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_queue_tempo_set_skew_base + *(void **) (&snd_seq_queue_tempo_set_skew_base_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_queue_tempo_set_skew_base"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_get_queue_tempo + *(void **) (&snd_seq_get_queue_tempo_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_get_queue_tempo"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_set_queue_tempo + *(void **) (&snd_seq_set_queue_tempo_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_set_queue_tempo"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_queue_timer_sizeof + *(void **) (&snd_seq_queue_timer_sizeof_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_queue_timer_sizeof"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_queue_timer_malloc + *(void **) (&snd_seq_queue_timer_malloc_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_queue_timer_malloc"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_queue_timer_free + *(void **) (&snd_seq_queue_timer_free_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_queue_timer_free"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_queue_timer_copy + *(void **) (&snd_seq_queue_timer_copy_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_queue_timer_copy"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_queue_timer_get_queue + *(void **) (&snd_seq_queue_timer_get_queue_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_queue_timer_get_queue"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_queue_timer_get_type + *(void **) (&snd_seq_queue_timer_get_type_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_queue_timer_get_type"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_queue_timer_get_id + *(void **) (&snd_seq_queue_timer_get_id_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_queue_timer_get_id"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_queue_timer_get_resolution + *(void **) (&snd_seq_queue_timer_get_resolution_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_queue_timer_get_resolution"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_queue_timer_set_type + *(void **) (&snd_seq_queue_timer_set_type_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_queue_timer_set_type"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_queue_timer_set_id + *(void **) (&snd_seq_queue_timer_set_id_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_queue_timer_set_id"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_queue_timer_set_resolution + *(void **) (&snd_seq_queue_timer_set_resolution_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_queue_timer_set_resolution"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_get_queue_timer + *(void **) (&snd_seq_get_queue_timer_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_get_queue_timer"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_set_queue_timer + *(void **) (&snd_seq_set_queue_timer_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_set_queue_timer"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_free_event + *(void **) (&snd_seq_free_event_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_free_event"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_event_length + *(void **) (&snd_seq_event_length_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_event_length"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_event_output + *(void **) (&snd_seq_event_output_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_event_output"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_event_output_buffer + *(void **) (&snd_seq_event_output_buffer_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_event_output_buffer"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_event_output_direct + *(void **) (&snd_seq_event_output_direct_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_event_output_direct"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_event_input + *(void **) (&snd_seq_event_input_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_event_input"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_event_input_pending + *(void **) (&snd_seq_event_input_pending_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_event_input_pending"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_drain_output + *(void **) (&snd_seq_drain_output_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_drain_output"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_event_output_pending + *(void **) (&snd_seq_event_output_pending_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_event_output_pending"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_extract_output + *(void **) (&snd_seq_extract_output_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_extract_output"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_drop_output + *(void **) (&snd_seq_drop_output_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_drop_output"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_drop_output_buffer + *(void **) (&snd_seq_drop_output_buffer_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_drop_output_buffer"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_drop_input + *(void **) (&snd_seq_drop_input_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_drop_input"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_drop_input_buffer + *(void **) (&snd_seq_drop_input_buffer_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_drop_input_buffer"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_remove_events_sizeof + *(void **) (&snd_seq_remove_events_sizeof_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_remove_events_sizeof"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_remove_events_malloc + *(void **) (&snd_seq_remove_events_malloc_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_remove_events_malloc"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_remove_events_free + *(void **) (&snd_seq_remove_events_free_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_remove_events_free"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_remove_events_copy + *(void **) (&snd_seq_remove_events_copy_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_remove_events_copy"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_remove_events_get_condition + *(void **) (&snd_seq_remove_events_get_condition_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_remove_events_get_condition"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_remove_events_get_queue + *(void **) (&snd_seq_remove_events_get_queue_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_remove_events_get_queue"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_remove_events_get_time + *(void **) (&snd_seq_remove_events_get_time_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_remove_events_get_time"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_remove_events_get_dest + *(void **) (&snd_seq_remove_events_get_dest_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_remove_events_get_dest"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_remove_events_get_channel + *(void **) (&snd_seq_remove_events_get_channel_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_remove_events_get_channel"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_remove_events_get_event_type + *(void **) (&snd_seq_remove_events_get_event_type_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_remove_events_get_event_type"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_remove_events_get_tag + *(void **) (&snd_seq_remove_events_get_tag_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_remove_events_get_tag"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_remove_events_set_condition + *(void **) (&snd_seq_remove_events_set_condition_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_remove_events_set_condition"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_remove_events_set_queue + *(void **) (&snd_seq_remove_events_set_queue_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_remove_events_set_queue"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_remove_events_set_time + *(void **) (&snd_seq_remove_events_set_time_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_remove_events_set_time"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_remove_events_set_dest + *(void **) (&snd_seq_remove_events_set_dest_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_remove_events_set_dest"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_remove_events_set_channel + *(void **) (&snd_seq_remove_events_set_channel_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_remove_events_set_channel"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_remove_events_set_event_type + *(void **) (&snd_seq_remove_events_set_event_type_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_remove_events_set_event_type"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_remove_events_set_tag + *(void **) (&snd_seq_remove_events_set_tag_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_remove_events_set_tag"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_remove_events + *(void **) (&snd_seq_remove_events_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_remove_events"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_set_bit + *(void **) (&snd_seq_set_bit_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_set_bit"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_unset_bit + *(void **) (&snd_seq_unset_bit_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_unset_bit"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_change_bit + *(void **) (&snd_seq_change_bit_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_change_bit"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_get_bit + *(void **) (&snd_seq_get_bit_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_get_bit"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_control_queue + *(void **) (&snd_seq_control_queue_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_control_queue"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_create_simple_port + *(void **) (&snd_seq_create_simple_port_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_create_simple_port"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_delete_simple_port + *(void **) (&snd_seq_delete_simple_port_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_delete_simple_port"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_connect_from + *(void **) (&snd_seq_connect_from_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_connect_from"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_connect_to + *(void **) (&snd_seq_connect_to_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_connect_to"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_disconnect_from + *(void **) (&snd_seq_disconnect_from_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_disconnect_from"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_disconnect_to + *(void **) (&snd_seq_disconnect_to_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_disconnect_to"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_set_client_name + *(void **) (&snd_seq_set_client_name_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_set_client_name"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_set_client_event_filter + *(void **) (&snd_seq_set_client_event_filter_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_set_client_event_filter"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_set_client_pool_output + *(void **) (&snd_seq_set_client_pool_output_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_set_client_pool_output"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_set_client_pool_output_room + *(void **) (&snd_seq_set_client_pool_output_room_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_set_client_pool_output_room"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_set_client_pool_input + *(void **) (&snd_seq_set_client_pool_input_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_set_client_pool_input"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_sync_output_queue + *(void **) (&snd_seq_sync_output_queue_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_sync_output_queue"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_parse_address + *(void **) (&snd_seq_parse_address_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_parse_address"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_reset_pool_output + *(void **) (&snd_seq_reset_pool_output_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_reset_pool_output"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_seq_reset_pool_input + *(void **) (&snd_seq_reset_pool_input_dylibloader_wrapper_asound) = dlsym(handle, "snd_seq_reset_pool_input"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_midi_event_new + *(void **) (&snd_midi_event_new_dylibloader_wrapper_asound) = dlsym(handle, "snd_midi_event_new"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_midi_event_resize_buffer + *(void **) (&snd_midi_event_resize_buffer_dylibloader_wrapper_asound) = dlsym(handle, "snd_midi_event_resize_buffer"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_midi_event_free + *(void **) (&snd_midi_event_free_dylibloader_wrapper_asound) = dlsym(handle, "snd_midi_event_free"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_midi_event_init + *(void **) (&snd_midi_event_init_dylibloader_wrapper_asound) = dlsym(handle, "snd_midi_event_init"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_midi_event_reset_encode + *(void **) (&snd_midi_event_reset_encode_dylibloader_wrapper_asound) = dlsym(handle, "snd_midi_event_reset_encode"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_midi_event_reset_decode + *(void **) (&snd_midi_event_reset_decode_dylibloader_wrapper_asound) = dlsym(handle, "snd_midi_event_reset_decode"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_midi_event_no_status + *(void **) (&snd_midi_event_no_status_dylibloader_wrapper_asound) = dlsym(handle, "snd_midi_event_no_status"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_midi_event_encode + *(void **) (&snd_midi_event_encode_dylibloader_wrapper_asound) = dlsym(handle, "snd_midi_event_encode"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_midi_event_encode_byte + *(void **) (&snd_midi_event_encode_byte_dylibloader_wrapper_asound) = dlsym(handle, "snd_midi_event_encode_byte"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// snd_midi_event_decode + *(void **) (&snd_midi_event_decode_dylibloader_wrapper_asound) = dlsym(handle, "snd_midi_event_decode"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +return 0; +} diff --git a/drivers/alsa/asound-so_wrap.h b/drivers/alsa/asound-so_wrap.h new file mode 100644 index 0000000000..650c651b79 --- /dev/null +++ b/drivers/alsa/asound-so_wrap.h @@ -0,0 +1,5148 @@ +#ifndef DYLIBLOAD_WRAPPER_ASOUND +#define DYLIBLOAD_WRAPPER_ASOUND +// This file is generated. Do not edit! +// see https://github.com/hpvb/dynload-wrapper for details +// generated by /home/hp/Projects/godot/pulse/generate-wrapper.py 0.2 on 2021-02-18 00:19:14 +// flags: /home/hp/Projects/godot/pulse/generate-wrapper.py --include /usr/include/alsa/asoundlib.h --sys-include <alsa/asoundlib.h> --soname libasound.so.2 --init-name asound --output-header asound-so_wrap.h --output-implementation asound-so_wrap.c +// +#define snd_asoundlib_version snd_asoundlib_version_dylibloader_orig_asound +#define snd_dlpath snd_dlpath_dylibloader_orig_asound +#define snd_dlopen snd_dlopen_dylibloader_orig_asound +#define snd_dlsym snd_dlsym_dylibloader_orig_asound +#define snd_dlclose snd_dlclose_dylibloader_orig_asound +#define snd_async_add_handler snd_async_add_handler_dylibloader_orig_asound +#define snd_async_del_handler snd_async_del_handler_dylibloader_orig_asound +#define snd_async_handler_get_fd snd_async_handler_get_fd_dylibloader_orig_asound +#define snd_async_handler_get_signo snd_async_handler_get_signo_dylibloader_orig_asound +#define snd_async_handler_get_callback_private snd_async_handler_get_callback_private_dylibloader_orig_asound +#define snd_shm_area_create snd_shm_area_create_dylibloader_orig_asound +#define snd_shm_area_share snd_shm_area_share_dylibloader_orig_asound +#define snd_shm_area_destroy snd_shm_area_destroy_dylibloader_orig_asound +#define snd_user_file snd_user_file_dylibloader_orig_asound +#define snd_input_stdio_open snd_input_stdio_open_dylibloader_orig_asound +#define snd_input_stdio_attach snd_input_stdio_attach_dylibloader_orig_asound +#define snd_input_buffer_open snd_input_buffer_open_dylibloader_orig_asound +#define snd_input_close snd_input_close_dylibloader_orig_asound +#define snd_input_scanf snd_input_scanf_dylibloader_orig_asound +#define snd_input_gets snd_input_gets_dylibloader_orig_asound +#define snd_input_getc snd_input_getc_dylibloader_orig_asound +#define snd_input_ungetc snd_input_ungetc_dylibloader_orig_asound +#define snd_output_stdio_open snd_output_stdio_open_dylibloader_orig_asound +#define snd_output_stdio_attach snd_output_stdio_attach_dylibloader_orig_asound +#define snd_output_buffer_open snd_output_buffer_open_dylibloader_orig_asound +#define snd_output_buffer_string snd_output_buffer_string_dylibloader_orig_asound +#define snd_output_close snd_output_close_dylibloader_orig_asound +#define snd_output_printf snd_output_printf_dylibloader_orig_asound +#define snd_output_vprintf snd_output_vprintf_dylibloader_orig_asound +#define snd_output_puts snd_output_puts_dylibloader_orig_asound +#define snd_output_putc snd_output_putc_dylibloader_orig_asound +#define snd_output_flush snd_output_flush_dylibloader_orig_asound +#define snd_strerror snd_strerror_dylibloader_orig_asound +#define snd_lib_error_set_handler snd_lib_error_set_handler_dylibloader_orig_asound +#define snd_lib_error_set_local snd_lib_error_set_local_dylibloader_orig_asound +#define snd_config_topdir snd_config_topdir_dylibloader_orig_asound +#define snd_config_top snd_config_top_dylibloader_orig_asound +#define snd_config_load snd_config_load_dylibloader_orig_asound +#define snd_config_load_override snd_config_load_override_dylibloader_orig_asound +#define snd_config_save snd_config_save_dylibloader_orig_asound +#define snd_config_update snd_config_update_dylibloader_orig_asound +#define snd_config_update_r snd_config_update_r_dylibloader_orig_asound +#define snd_config_update_free snd_config_update_free_dylibloader_orig_asound +#define snd_config_update_free_global snd_config_update_free_global_dylibloader_orig_asound +#define snd_config_update_ref snd_config_update_ref_dylibloader_orig_asound +#define snd_config_ref snd_config_ref_dylibloader_orig_asound +#define snd_config_unref snd_config_unref_dylibloader_orig_asound +#define snd_config_search snd_config_search_dylibloader_orig_asound +#define snd_config_searchv snd_config_searchv_dylibloader_orig_asound +#define snd_config_search_definition snd_config_search_definition_dylibloader_orig_asound +#define snd_config_expand snd_config_expand_dylibloader_orig_asound +#define snd_config_evaluate snd_config_evaluate_dylibloader_orig_asound +#define snd_config_add snd_config_add_dylibloader_orig_asound +#define snd_config_add_before snd_config_add_before_dylibloader_orig_asound +#define snd_config_add_after snd_config_add_after_dylibloader_orig_asound +#define snd_config_remove snd_config_remove_dylibloader_orig_asound +#define snd_config_delete snd_config_delete_dylibloader_orig_asound +#define snd_config_delete_compound_members snd_config_delete_compound_members_dylibloader_orig_asound +#define snd_config_copy snd_config_copy_dylibloader_orig_asound +#define snd_config_make snd_config_make_dylibloader_orig_asound +#define snd_config_make_integer snd_config_make_integer_dylibloader_orig_asound +#define snd_config_make_integer64 snd_config_make_integer64_dylibloader_orig_asound +#define snd_config_make_real snd_config_make_real_dylibloader_orig_asound +#define snd_config_make_string snd_config_make_string_dylibloader_orig_asound +#define snd_config_make_pointer snd_config_make_pointer_dylibloader_orig_asound +#define snd_config_make_compound snd_config_make_compound_dylibloader_orig_asound +#define snd_config_imake_integer snd_config_imake_integer_dylibloader_orig_asound +#define snd_config_imake_integer64 snd_config_imake_integer64_dylibloader_orig_asound +#define snd_config_imake_real snd_config_imake_real_dylibloader_orig_asound +#define snd_config_imake_string snd_config_imake_string_dylibloader_orig_asound +#define snd_config_imake_safe_string snd_config_imake_safe_string_dylibloader_orig_asound +#define snd_config_imake_pointer snd_config_imake_pointer_dylibloader_orig_asound +#define snd_config_get_type snd_config_get_type_dylibloader_orig_asound +#define snd_config_is_array snd_config_is_array_dylibloader_orig_asound +#define snd_config_set_id snd_config_set_id_dylibloader_orig_asound +#define snd_config_set_integer snd_config_set_integer_dylibloader_orig_asound +#define snd_config_set_integer64 snd_config_set_integer64_dylibloader_orig_asound +#define snd_config_set_real snd_config_set_real_dylibloader_orig_asound +#define snd_config_set_string snd_config_set_string_dylibloader_orig_asound +#define snd_config_set_ascii snd_config_set_ascii_dylibloader_orig_asound +#define snd_config_set_pointer snd_config_set_pointer_dylibloader_orig_asound +#define snd_config_get_id snd_config_get_id_dylibloader_orig_asound +#define snd_config_get_integer snd_config_get_integer_dylibloader_orig_asound +#define snd_config_get_integer64 snd_config_get_integer64_dylibloader_orig_asound +#define snd_config_get_real snd_config_get_real_dylibloader_orig_asound +#define snd_config_get_ireal snd_config_get_ireal_dylibloader_orig_asound +#define snd_config_get_string snd_config_get_string_dylibloader_orig_asound +#define snd_config_get_ascii snd_config_get_ascii_dylibloader_orig_asound +#define snd_config_get_pointer snd_config_get_pointer_dylibloader_orig_asound +#define snd_config_test_id snd_config_test_id_dylibloader_orig_asound +#define snd_config_iterator_first snd_config_iterator_first_dylibloader_orig_asound +#define snd_config_iterator_next snd_config_iterator_next_dylibloader_orig_asound +#define snd_config_iterator_end snd_config_iterator_end_dylibloader_orig_asound +#define snd_config_iterator_entry snd_config_iterator_entry_dylibloader_orig_asound +#define snd_config_get_bool_ascii snd_config_get_bool_ascii_dylibloader_orig_asound +#define snd_config_get_bool snd_config_get_bool_dylibloader_orig_asound +#define snd_config_get_ctl_iface_ascii snd_config_get_ctl_iface_ascii_dylibloader_orig_asound +#define snd_config_get_ctl_iface snd_config_get_ctl_iface_dylibloader_orig_asound +#define snd_names_list snd_names_list_dylibloader_orig_asound +#define snd_names_list_free snd_names_list_free_dylibloader_orig_asound +#define snd_pcm_open snd_pcm_open_dylibloader_orig_asound +#define snd_pcm_open_lconf snd_pcm_open_lconf_dylibloader_orig_asound +#define snd_pcm_open_fallback snd_pcm_open_fallback_dylibloader_orig_asound +#define snd_pcm_close snd_pcm_close_dylibloader_orig_asound +#define snd_pcm_name snd_pcm_name_dylibloader_orig_asound +#define snd_pcm_type snd_pcm_type_dylibloader_orig_asound +#define snd_pcm_stream snd_pcm_stream_dylibloader_orig_asound +#define snd_pcm_poll_descriptors_count snd_pcm_poll_descriptors_count_dylibloader_orig_asound +#define snd_pcm_poll_descriptors snd_pcm_poll_descriptors_dylibloader_orig_asound +#define snd_pcm_poll_descriptors_revents snd_pcm_poll_descriptors_revents_dylibloader_orig_asound +#define snd_pcm_nonblock snd_pcm_nonblock_dylibloader_orig_asound +#define snd_async_add_pcm_handler snd_async_add_pcm_handler_dylibloader_orig_asound +#define snd_async_handler_get_pcm snd_async_handler_get_pcm_dylibloader_orig_asound +#define snd_pcm_info snd_pcm_info_dylibloader_orig_asound +#define snd_pcm_hw_params_current snd_pcm_hw_params_current_dylibloader_orig_asound +#define snd_pcm_hw_params snd_pcm_hw_params_dylibloader_orig_asound +#define snd_pcm_hw_free snd_pcm_hw_free_dylibloader_orig_asound +#define snd_pcm_sw_params_current snd_pcm_sw_params_current_dylibloader_orig_asound +#define snd_pcm_sw_params snd_pcm_sw_params_dylibloader_orig_asound +#define snd_pcm_prepare snd_pcm_prepare_dylibloader_orig_asound +#define snd_pcm_reset snd_pcm_reset_dylibloader_orig_asound +#define snd_pcm_status snd_pcm_status_dylibloader_orig_asound +#define snd_pcm_start snd_pcm_start_dylibloader_orig_asound +#define snd_pcm_drop snd_pcm_drop_dylibloader_orig_asound +#define snd_pcm_drain snd_pcm_drain_dylibloader_orig_asound +#define snd_pcm_pause snd_pcm_pause_dylibloader_orig_asound +#define snd_pcm_state snd_pcm_state_dylibloader_orig_asound +#define snd_pcm_hwsync snd_pcm_hwsync_dylibloader_orig_asound +#define snd_pcm_delay snd_pcm_delay_dylibloader_orig_asound +#define snd_pcm_resume snd_pcm_resume_dylibloader_orig_asound +#define snd_pcm_htimestamp snd_pcm_htimestamp_dylibloader_orig_asound +#define snd_pcm_avail snd_pcm_avail_dylibloader_orig_asound +#define snd_pcm_avail_update snd_pcm_avail_update_dylibloader_orig_asound +#define snd_pcm_avail_delay snd_pcm_avail_delay_dylibloader_orig_asound +#define snd_pcm_rewindable snd_pcm_rewindable_dylibloader_orig_asound +#define snd_pcm_rewind snd_pcm_rewind_dylibloader_orig_asound +#define snd_pcm_forwardable snd_pcm_forwardable_dylibloader_orig_asound +#define snd_pcm_forward snd_pcm_forward_dylibloader_orig_asound +#define snd_pcm_writei snd_pcm_writei_dylibloader_orig_asound +#define snd_pcm_readi snd_pcm_readi_dylibloader_orig_asound +#define snd_pcm_writen snd_pcm_writen_dylibloader_orig_asound +#define snd_pcm_readn snd_pcm_readn_dylibloader_orig_asound +#define snd_pcm_wait snd_pcm_wait_dylibloader_orig_asound +#define snd_pcm_link snd_pcm_link_dylibloader_orig_asound +#define snd_pcm_unlink snd_pcm_unlink_dylibloader_orig_asound +#define snd_pcm_query_chmaps snd_pcm_query_chmaps_dylibloader_orig_asound +#define snd_pcm_query_chmaps_from_hw snd_pcm_query_chmaps_from_hw_dylibloader_orig_asound +#define snd_pcm_free_chmaps snd_pcm_free_chmaps_dylibloader_orig_asound +#define snd_pcm_get_chmap snd_pcm_get_chmap_dylibloader_orig_asound +#define snd_pcm_set_chmap snd_pcm_set_chmap_dylibloader_orig_asound +#define snd_pcm_chmap_type_name snd_pcm_chmap_type_name_dylibloader_orig_asound +#define snd_pcm_chmap_name snd_pcm_chmap_name_dylibloader_orig_asound +#define snd_pcm_chmap_long_name snd_pcm_chmap_long_name_dylibloader_orig_asound +#define snd_pcm_chmap_print snd_pcm_chmap_print_dylibloader_orig_asound +#define snd_pcm_chmap_from_string snd_pcm_chmap_from_string_dylibloader_orig_asound +#define snd_pcm_chmap_parse_string snd_pcm_chmap_parse_string_dylibloader_orig_asound +#define snd_pcm_recover snd_pcm_recover_dylibloader_orig_asound +#define snd_pcm_set_params snd_pcm_set_params_dylibloader_orig_asound +#define snd_pcm_get_params snd_pcm_get_params_dylibloader_orig_asound +#define snd_pcm_info_sizeof snd_pcm_info_sizeof_dylibloader_orig_asound +#define snd_pcm_info_malloc snd_pcm_info_malloc_dylibloader_orig_asound +#define snd_pcm_info_free snd_pcm_info_free_dylibloader_orig_asound +#define snd_pcm_info_copy snd_pcm_info_copy_dylibloader_orig_asound +#define snd_pcm_info_get_device snd_pcm_info_get_device_dylibloader_orig_asound +#define snd_pcm_info_get_subdevice snd_pcm_info_get_subdevice_dylibloader_orig_asound +#define snd_pcm_info_get_stream snd_pcm_info_get_stream_dylibloader_orig_asound +#define snd_pcm_info_get_card snd_pcm_info_get_card_dylibloader_orig_asound +#define snd_pcm_info_get_id snd_pcm_info_get_id_dylibloader_orig_asound +#define snd_pcm_info_get_name snd_pcm_info_get_name_dylibloader_orig_asound +#define snd_pcm_info_get_subdevice_name snd_pcm_info_get_subdevice_name_dylibloader_orig_asound +#define snd_pcm_info_get_class snd_pcm_info_get_class_dylibloader_orig_asound +#define snd_pcm_info_get_subclass snd_pcm_info_get_subclass_dylibloader_orig_asound +#define snd_pcm_info_get_subdevices_count snd_pcm_info_get_subdevices_count_dylibloader_orig_asound +#define snd_pcm_info_get_subdevices_avail snd_pcm_info_get_subdevices_avail_dylibloader_orig_asound +#define snd_pcm_info_get_sync snd_pcm_info_get_sync_dylibloader_orig_asound +#define snd_pcm_info_set_device snd_pcm_info_set_device_dylibloader_orig_asound +#define snd_pcm_info_set_subdevice snd_pcm_info_set_subdevice_dylibloader_orig_asound +#define snd_pcm_info_set_stream snd_pcm_info_set_stream_dylibloader_orig_asound +#define snd_pcm_hw_params_any snd_pcm_hw_params_any_dylibloader_orig_asound +#define snd_pcm_hw_params_can_mmap_sample_resolution snd_pcm_hw_params_can_mmap_sample_resolution_dylibloader_orig_asound +#define snd_pcm_hw_params_is_double snd_pcm_hw_params_is_double_dylibloader_orig_asound +#define snd_pcm_hw_params_is_batch snd_pcm_hw_params_is_batch_dylibloader_orig_asound +#define snd_pcm_hw_params_is_block_transfer snd_pcm_hw_params_is_block_transfer_dylibloader_orig_asound +#define snd_pcm_hw_params_is_monotonic snd_pcm_hw_params_is_monotonic_dylibloader_orig_asound +#define snd_pcm_hw_params_can_overrange snd_pcm_hw_params_can_overrange_dylibloader_orig_asound +#define snd_pcm_hw_params_can_pause snd_pcm_hw_params_can_pause_dylibloader_orig_asound +#define snd_pcm_hw_params_can_resume snd_pcm_hw_params_can_resume_dylibloader_orig_asound +#define snd_pcm_hw_params_is_half_duplex snd_pcm_hw_params_is_half_duplex_dylibloader_orig_asound +#define snd_pcm_hw_params_is_joint_duplex snd_pcm_hw_params_is_joint_duplex_dylibloader_orig_asound +#define snd_pcm_hw_params_can_sync_start snd_pcm_hw_params_can_sync_start_dylibloader_orig_asound +#define snd_pcm_hw_params_can_disable_period_wakeup snd_pcm_hw_params_can_disable_period_wakeup_dylibloader_orig_asound +#define snd_pcm_hw_params_supports_audio_wallclock_ts snd_pcm_hw_params_supports_audio_wallclock_ts_dylibloader_orig_asound +#define snd_pcm_hw_params_supports_audio_ts_type snd_pcm_hw_params_supports_audio_ts_type_dylibloader_orig_asound +#define snd_pcm_hw_params_get_rate_numden snd_pcm_hw_params_get_rate_numden_dylibloader_orig_asound +#define snd_pcm_hw_params_get_sbits snd_pcm_hw_params_get_sbits_dylibloader_orig_asound +#define snd_pcm_hw_params_get_fifo_size snd_pcm_hw_params_get_fifo_size_dylibloader_orig_asound +#define snd_pcm_hw_params_sizeof snd_pcm_hw_params_sizeof_dylibloader_orig_asound +#define snd_pcm_hw_params_malloc snd_pcm_hw_params_malloc_dylibloader_orig_asound +#define snd_pcm_hw_params_free snd_pcm_hw_params_free_dylibloader_orig_asound +#define snd_pcm_hw_params_copy snd_pcm_hw_params_copy_dylibloader_orig_asound +#define snd_pcm_hw_params_get_access snd_pcm_hw_params_get_access_dylibloader_orig_asound +#define snd_pcm_hw_params_test_access snd_pcm_hw_params_test_access_dylibloader_orig_asound +#define snd_pcm_hw_params_set_access snd_pcm_hw_params_set_access_dylibloader_orig_asound +#define snd_pcm_hw_params_set_access_first snd_pcm_hw_params_set_access_first_dylibloader_orig_asound +#define snd_pcm_hw_params_set_access_last snd_pcm_hw_params_set_access_last_dylibloader_orig_asound +#define snd_pcm_hw_params_set_access_mask snd_pcm_hw_params_set_access_mask_dylibloader_orig_asound +#define snd_pcm_hw_params_get_access_mask snd_pcm_hw_params_get_access_mask_dylibloader_orig_asound +#define snd_pcm_hw_params_get_format snd_pcm_hw_params_get_format_dylibloader_orig_asound +#define snd_pcm_hw_params_test_format snd_pcm_hw_params_test_format_dylibloader_orig_asound +#define snd_pcm_hw_params_set_format snd_pcm_hw_params_set_format_dylibloader_orig_asound +#define snd_pcm_hw_params_set_format_first snd_pcm_hw_params_set_format_first_dylibloader_orig_asound +#define snd_pcm_hw_params_set_format_last snd_pcm_hw_params_set_format_last_dylibloader_orig_asound +#define snd_pcm_hw_params_set_format_mask snd_pcm_hw_params_set_format_mask_dylibloader_orig_asound +#define snd_pcm_hw_params_get_format_mask snd_pcm_hw_params_get_format_mask_dylibloader_orig_asound +#define snd_pcm_hw_params_get_subformat snd_pcm_hw_params_get_subformat_dylibloader_orig_asound +#define snd_pcm_hw_params_test_subformat snd_pcm_hw_params_test_subformat_dylibloader_orig_asound +#define snd_pcm_hw_params_set_subformat snd_pcm_hw_params_set_subformat_dylibloader_orig_asound +#define snd_pcm_hw_params_set_subformat_first snd_pcm_hw_params_set_subformat_first_dylibloader_orig_asound +#define snd_pcm_hw_params_set_subformat_last snd_pcm_hw_params_set_subformat_last_dylibloader_orig_asound +#define snd_pcm_hw_params_set_subformat_mask snd_pcm_hw_params_set_subformat_mask_dylibloader_orig_asound +#define snd_pcm_hw_params_get_subformat_mask snd_pcm_hw_params_get_subformat_mask_dylibloader_orig_asound +#define snd_pcm_hw_params_get_channels snd_pcm_hw_params_get_channels_dylibloader_orig_asound +#define snd_pcm_hw_params_get_channels_min snd_pcm_hw_params_get_channels_min_dylibloader_orig_asound +#define snd_pcm_hw_params_get_channels_max snd_pcm_hw_params_get_channels_max_dylibloader_orig_asound +#define snd_pcm_hw_params_test_channels snd_pcm_hw_params_test_channels_dylibloader_orig_asound +#define snd_pcm_hw_params_set_channels snd_pcm_hw_params_set_channels_dylibloader_orig_asound +#define snd_pcm_hw_params_set_channels_min snd_pcm_hw_params_set_channels_min_dylibloader_orig_asound +#define snd_pcm_hw_params_set_channels_max snd_pcm_hw_params_set_channels_max_dylibloader_orig_asound +#define snd_pcm_hw_params_set_channels_minmax snd_pcm_hw_params_set_channels_minmax_dylibloader_orig_asound +#define snd_pcm_hw_params_set_channels_near snd_pcm_hw_params_set_channels_near_dylibloader_orig_asound +#define snd_pcm_hw_params_set_channels_first snd_pcm_hw_params_set_channels_first_dylibloader_orig_asound +#define snd_pcm_hw_params_set_channels_last snd_pcm_hw_params_set_channels_last_dylibloader_orig_asound +#define snd_pcm_hw_params_get_rate snd_pcm_hw_params_get_rate_dylibloader_orig_asound +#define snd_pcm_hw_params_get_rate_min snd_pcm_hw_params_get_rate_min_dylibloader_orig_asound +#define snd_pcm_hw_params_get_rate_max snd_pcm_hw_params_get_rate_max_dylibloader_orig_asound +#define snd_pcm_hw_params_test_rate snd_pcm_hw_params_test_rate_dylibloader_orig_asound +#define snd_pcm_hw_params_set_rate snd_pcm_hw_params_set_rate_dylibloader_orig_asound +#define snd_pcm_hw_params_set_rate_min snd_pcm_hw_params_set_rate_min_dylibloader_orig_asound +#define snd_pcm_hw_params_set_rate_max snd_pcm_hw_params_set_rate_max_dylibloader_orig_asound +#define snd_pcm_hw_params_set_rate_minmax snd_pcm_hw_params_set_rate_minmax_dylibloader_orig_asound +#define snd_pcm_hw_params_set_rate_near snd_pcm_hw_params_set_rate_near_dylibloader_orig_asound +#define snd_pcm_hw_params_set_rate_first snd_pcm_hw_params_set_rate_first_dylibloader_orig_asound +#define snd_pcm_hw_params_set_rate_last snd_pcm_hw_params_set_rate_last_dylibloader_orig_asound +#define snd_pcm_hw_params_set_rate_resample snd_pcm_hw_params_set_rate_resample_dylibloader_orig_asound +#define snd_pcm_hw_params_get_rate_resample snd_pcm_hw_params_get_rate_resample_dylibloader_orig_asound +#define snd_pcm_hw_params_set_export_buffer snd_pcm_hw_params_set_export_buffer_dylibloader_orig_asound +#define snd_pcm_hw_params_get_export_buffer snd_pcm_hw_params_get_export_buffer_dylibloader_orig_asound +#define snd_pcm_hw_params_set_period_wakeup snd_pcm_hw_params_set_period_wakeup_dylibloader_orig_asound +#define snd_pcm_hw_params_get_period_wakeup snd_pcm_hw_params_get_period_wakeup_dylibloader_orig_asound +#define snd_pcm_hw_params_get_period_time snd_pcm_hw_params_get_period_time_dylibloader_orig_asound +#define snd_pcm_hw_params_get_period_time_min snd_pcm_hw_params_get_period_time_min_dylibloader_orig_asound +#define snd_pcm_hw_params_get_period_time_max snd_pcm_hw_params_get_period_time_max_dylibloader_orig_asound +#define snd_pcm_hw_params_test_period_time snd_pcm_hw_params_test_period_time_dylibloader_orig_asound +#define snd_pcm_hw_params_set_period_time snd_pcm_hw_params_set_period_time_dylibloader_orig_asound +#define snd_pcm_hw_params_set_period_time_min snd_pcm_hw_params_set_period_time_min_dylibloader_orig_asound +#define snd_pcm_hw_params_set_period_time_max snd_pcm_hw_params_set_period_time_max_dylibloader_orig_asound +#define snd_pcm_hw_params_set_period_time_minmax snd_pcm_hw_params_set_period_time_minmax_dylibloader_orig_asound +#define snd_pcm_hw_params_set_period_time_near snd_pcm_hw_params_set_period_time_near_dylibloader_orig_asound +#define snd_pcm_hw_params_set_period_time_first snd_pcm_hw_params_set_period_time_first_dylibloader_orig_asound +#define snd_pcm_hw_params_set_period_time_last snd_pcm_hw_params_set_period_time_last_dylibloader_orig_asound +#define snd_pcm_hw_params_get_period_size snd_pcm_hw_params_get_period_size_dylibloader_orig_asound +#define snd_pcm_hw_params_get_period_size_min snd_pcm_hw_params_get_period_size_min_dylibloader_orig_asound +#define snd_pcm_hw_params_get_period_size_max snd_pcm_hw_params_get_period_size_max_dylibloader_orig_asound +#define snd_pcm_hw_params_test_period_size snd_pcm_hw_params_test_period_size_dylibloader_orig_asound +#define snd_pcm_hw_params_set_period_size snd_pcm_hw_params_set_period_size_dylibloader_orig_asound +#define snd_pcm_hw_params_set_period_size_min snd_pcm_hw_params_set_period_size_min_dylibloader_orig_asound +#define snd_pcm_hw_params_set_period_size_max snd_pcm_hw_params_set_period_size_max_dylibloader_orig_asound +#define snd_pcm_hw_params_set_period_size_minmax snd_pcm_hw_params_set_period_size_minmax_dylibloader_orig_asound +#define snd_pcm_hw_params_set_period_size_near snd_pcm_hw_params_set_period_size_near_dylibloader_orig_asound +#define snd_pcm_hw_params_set_period_size_first snd_pcm_hw_params_set_period_size_first_dylibloader_orig_asound +#define snd_pcm_hw_params_set_period_size_last snd_pcm_hw_params_set_period_size_last_dylibloader_orig_asound +#define snd_pcm_hw_params_set_period_size_integer snd_pcm_hw_params_set_period_size_integer_dylibloader_orig_asound +#define snd_pcm_hw_params_get_periods snd_pcm_hw_params_get_periods_dylibloader_orig_asound +#define snd_pcm_hw_params_get_periods_min snd_pcm_hw_params_get_periods_min_dylibloader_orig_asound +#define snd_pcm_hw_params_get_periods_max snd_pcm_hw_params_get_periods_max_dylibloader_orig_asound +#define snd_pcm_hw_params_test_periods snd_pcm_hw_params_test_periods_dylibloader_orig_asound +#define snd_pcm_hw_params_set_periods snd_pcm_hw_params_set_periods_dylibloader_orig_asound +#define snd_pcm_hw_params_set_periods_min snd_pcm_hw_params_set_periods_min_dylibloader_orig_asound +#define snd_pcm_hw_params_set_periods_max snd_pcm_hw_params_set_periods_max_dylibloader_orig_asound +#define snd_pcm_hw_params_set_periods_minmax snd_pcm_hw_params_set_periods_minmax_dylibloader_orig_asound +#define snd_pcm_hw_params_set_periods_near snd_pcm_hw_params_set_periods_near_dylibloader_orig_asound +#define snd_pcm_hw_params_set_periods_first snd_pcm_hw_params_set_periods_first_dylibloader_orig_asound +#define snd_pcm_hw_params_set_periods_last snd_pcm_hw_params_set_periods_last_dylibloader_orig_asound +#define snd_pcm_hw_params_set_periods_integer snd_pcm_hw_params_set_periods_integer_dylibloader_orig_asound +#define snd_pcm_hw_params_get_buffer_time snd_pcm_hw_params_get_buffer_time_dylibloader_orig_asound +#define snd_pcm_hw_params_get_buffer_time_min snd_pcm_hw_params_get_buffer_time_min_dylibloader_orig_asound +#define snd_pcm_hw_params_get_buffer_time_max snd_pcm_hw_params_get_buffer_time_max_dylibloader_orig_asound +#define snd_pcm_hw_params_test_buffer_time snd_pcm_hw_params_test_buffer_time_dylibloader_orig_asound +#define snd_pcm_hw_params_set_buffer_time snd_pcm_hw_params_set_buffer_time_dylibloader_orig_asound +#define snd_pcm_hw_params_set_buffer_time_min snd_pcm_hw_params_set_buffer_time_min_dylibloader_orig_asound +#define snd_pcm_hw_params_set_buffer_time_max snd_pcm_hw_params_set_buffer_time_max_dylibloader_orig_asound +#define snd_pcm_hw_params_set_buffer_time_minmax snd_pcm_hw_params_set_buffer_time_minmax_dylibloader_orig_asound +#define snd_pcm_hw_params_set_buffer_time_near snd_pcm_hw_params_set_buffer_time_near_dylibloader_orig_asound +#define snd_pcm_hw_params_set_buffer_time_first snd_pcm_hw_params_set_buffer_time_first_dylibloader_orig_asound +#define snd_pcm_hw_params_set_buffer_time_last snd_pcm_hw_params_set_buffer_time_last_dylibloader_orig_asound +#define snd_pcm_hw_params_get_buffer_size snd_pcm_hw_params_get_buffer_size_dylibloader_orig_asound +#define snd_pcm_hw_params_get_buffer_size_min snd_pcm_hw_params_get_buffer_size_min_dylibloader_orig_asound +#define snd_pcm_hw_params_get_buffer_size_max snd_pcm_hw_params_get_buffer_size_max_dylibloader_orig_asound +#define snd_pcm_hw_params_test_buffer_size snd_pcm_hw_params_test_buffer_size_dylibloader_orig_asound +#define snd_pcm_hw_params_set_buffer_size snd_pcm_hw_params_set_buffer_size_dylibloader_orig_asound +#define snd_pcm_hw_params_set_buffer_size_min snd_pcm_hw_params_set_buffer_size_min_dylibloader_orig_asound +#define snd_pcm_hw_params_set_buffer_size_max snd_pcm_hw_params_set_buffer_size_max_dylibloader_orig_asound +#define snd_pcm_hw_params_set_buffer_size_minmax snd_pcm_hw_params_set_buffer_size_minmax_dylibloader_orig_asound +#define snd_pcm_hw_params_set_buffer_size_near snd_pcm_hw_params_set_buffer_size_near_dylibloader_orig_asound +#define snd_pcm_hw_params_set_buffer_size_first snd_pcm_hw_params_set_buffer_size_first_dylibloader_orig_asound +#define snd_pcm_hw_params_set_buffer_size_last snd_pcm_hw_params_set_buffer_size_last_dylibloader_orig_asound +#define snd_pcm_hw_params_get_min_align snd_pcm_hw_params_get_min_align_dylibloader_orig_asound +#define snd_pcm_sw_params_sizeof snd_pcm_sw_params_sizeof_dylibloader_orig_asound +#define snd_pcm_sw_params_malloc snd_pcm_sw_params_malloc_dylibloader_orig_asound +#define snd_pcm_sw_params_free snd_pcm_sw_params_free_dylibloader_orig_asound +#define snd_pcm_sw_params_copy snd_pcm_sw_params_copy_dylibloader_orig_asound +#define snd_pcm_sw_params_get_boundary snd_pcm_sw_params_get_boundary_dylibloader_orig_asound +#define snd_pcm_sw_params_set_tstamp_mode snd_pcm_sw_params_set_tstamp_mode_dylibloader_orig_asound +#define snd_pcm_sw_params_get_tstamp_mode snd_pcm_sw_params_get_tstamp_mode_dylibloader_orig_asound +#define snd_pcm_sw_params_set_tstamp_type snd_pcm_sw_params_set_tstamp_type_dylibloader_orig_asound +#define snd_pcm_sw_params_get_tstamp_type snd_pcm_sw_params_get_tstamp_type_dylibloader_orig_asound +#define snd_pcm_sw_params_set_avail_min snd_pcm_sw_params_set_avail_min_dylibloader_orig_asound +#define snd_pcm_sw_params_get_avail_min snd_pcm_sw_params_get_avail_min_dylibloader_orig_asound +#define snd_pcm_sw_params_set_period_event snd_pcm_sw_params_set_period_event_dylibloader_orig_asound +#define snd_pcm_sw_params_get_period_event snd_pcm_sw_params_get_period_event_dylibloader_orig_asound +#define snd_pcm_sw_params_set_start_threshold snd_pcm_sw_params_set_start_threshold_dylibloader_orig_asound +#define snd_pcm_sw_params_get_start_threshold snd_pcm_sw_params_get_start_threshold_dylibloader_orig_asound +#define snd_pcm_sw_params_set_stop_threshold snd_pcm_sw_params_set_stop_threshold_dylibloader_orig_asound +#define snd_pcm_sw_params_get_stop_threshold snd_pcm_sw_params_get_stop_threshold_dylibloader_orig_asound +#define snd_pcm_sw_params_set_silence_threshold snd_pcm_sw_params_set_silence_threshold_dylibloader_orig_asound +#define snd_pcm_sw_params_get_silence_threshold snd_pcm_sw_params_get_silence_threshold_dylibloader_orig_asound +#define snd_pcm_sw_params_set_silence_size snd_pcm_sw_params_set_silence_size_dylibloader_orig_asound +#define snd_pcm_sw_params_get_silence_size snd_pcm_sw_params_get_silence_size_dylibloader_orig_asound +#define snd_pcm_access_mask_sizeof snd_pcm_access_mask_sizeof_dylibloader_orig_asound +#define snd_pcm_access_mask_malloc snd_pcm_access_mask_malloc_dylibloader_orig_asound +#define snd_pcm_access_mask_free snd_pcm_access_mask_free_dylibloader_orig_asound +#define snd_pcm_access_mask_copy snd_pcm_access_mask_copy_dylibloader_orig_asound +#define snd_pcm_access_mask_none snd_pcm_access_mask_none_dylibloader_orig_asound +#define snd_pcm_access_mask_any snd_pcm_access_mask_any_dylibloader_orig_asound +#define snd_pcm_access_mask_test snd_pcm_access_mask_test_dylibloader_orig_asound +#define snd_pcm_access_mask_empty snd_pcm_access_mask_empty_dylibloader_orig_asound +#define snd_pcm_access_mask_set snd_pcm_access_mask_set_dylibloader_orig_asound +#define snd_pcm_access_mask_reset snd_pcm_access_mask_reset_dylibloader_orig_asound +#define snd_pcm_format_mask_sizeof snd_pcm_format_mask_sizeof_dylibloader_orig_asound +#define snd_pcm_format_mask_malloc snd_pcm_format_mask_malloc_dylibloader_orig_asound +#define snd_pcm_format_mask_free snd_pcm_format_mask_free_dylibloader_orig_asound +#define snd_pcm_format_mask_copy snd_pcm_format_mask_copy_dylibloader_orig_asound +#define snd_pcm_format_mask_none snd_pcm_format_mask_none_dylibloader_orig_asound +#define snd_pcm_format_mask_any snd_pcm_format_mask_any_dylibloader_orig_asound +#define snd_pcm_format_mask_test snd_pcm_format_mask_test_dylibloader_orig_asound +#define snd_pcm_format_mask_empty snd_pcm_format_mask_empty_dylibloader_orig_asound +#define snd_pcm_format_mask_set snd_pcm_format_mask_set_dylibloader_orig_asound +#define snd_pcm_format_mask_reset snd_pcm_format_mask_reset_dylibloader_orig_asound +#define snd_pcm_subformat_mask_sizeof snd_pcm_subformat_mask_sizeof_dylibloader_orig_asound +#define snd_pcm_subformat_mask_malloc snd_pcm_subformat_mask_malloc_dylibloader_orig_asound +#define snd_pcm_subformat_mask_free snd_pcm_subformat_mask_free_dylibloader_orig_asound +#define snd_pcm_subformat_mask_copy snd_pcm_subformat_mask_copy_dylibloader_orig_asound +#define snd_pcm_subformat_mask_none snd_pcm_subformat_mask_none_dylibloader_orig_asound +#define snd_pcm_subformat_mask_any snd_pcm_subformat_mask_any_dylibloader_orig_asound +#define snd_pcm_subformat_mask_test snd_pcm_subformat_mask_test_dylibloader_orig_asound +#define snd_pcm_subformat_mask_empty snd_pcm_subformat_mask_empty_dylibloader_orig_asound +#define snd_pcm_subformat_mask_set snd_pcm_subformat_mask_set_dylibloader_orig_asound +#define snd_pcm_subformat_mask_reset snd_pcm_subformat_mask_reset_dylibloader_orig_asound +#define snd_pcm_status_sizeof snd_pcm_status_sizeof_dylibloader_orig_asound +#define snd_pcm_status_malloc snd_pcm_status_malloc_dylibloader_orig_asound +#define snd_pcm_status_free snd_pcm_status_free_dylibloader_orig_asound +#define snd_pcm_status_copy snd_pcm_status_copy_dylibloader_orig_asound +#define snd_pcm_status_get_state snd_pcm_status_get_state_dylibloader_orig_asound +#define snd_pcm_status_get_trigger_tstamp snd_pcm_status_get_trigger_tstamp_dylibloader_orig_asound +#define snd_pcm_status_get_trigger_htstamp snd_pcm_status_get_trigger_htstamp_dylibloader_orig_asound +#define snd_pcm_status_get_tstamp snd_pcm_status_get_tstamp_dylibloader_orig_asound +#define snd_pcm_status_get_htstamp snd_pcm_status_get_htstamp_dylibloader_orig_asound +#define snd_pcm_status_get_audio_htstamp snd_pcm_status_get_audio_htstamp_dylibloader_orig_asound +#define snd_pcm_status_get_driver_htstamp snd_pcm_status_get_driver_htstamp_dylibloader_orig_asound +#define snd_pcm_status_get_audio_htstamp_report snd_pcm_status_get_audio_htstamp_report_dylibloader_orig_asound +#define snd_pcm_status_set_audio_htstamp_config snd_pcm_status_set_audio_htstamp_config_dylibloader_orig_asound +#define snd_pcm_status_get_delay snd_pcm_status_get_delay_dylibloader_orig_asound +#define snd_pcm_status_get_avail snd_pcm_status_get_avail_dylibloader_orig_asound +#define snd_pcm_status_get_avail_max snd_pcm_status_get_avail_max_dylibloader_orig_asound +#define snd_pcm_status_get_overrange snd_pcm_status_get_overrange_dylibloader_orig_asound +#define snd_pcm_type_name snd_pcm_type_name_dylibloader_orig_asound +#define snd_pcm_stream_name snd_pcm_stream_name_dylibloader_orig_asound +#define snd_pcm_access_name snd_pcm_access_name_dylibloader_orig_asound +#define snd_pcm_format_name snd_pcm_format_name_dylibloader_orig_asound +#define snd_pcm_format_description snd_pcm_format_description_dylibloader_orig_asound +#define snd_pcm_subformat_name snd_pcm_subformat_name_dylibloader_orig_asound +#define snd_pcm_subformat_description snd_pcm_subformat_description_dylibloader_orig_asound +#define snd_pcm_format_value snd_pcm_format_value_dylibloader_orig_asound +#define snd_pcm_tstamp_mode_name snd_pcm_tstamp_mode_name_dylibloader_orig_asound +#define snd_pcm_state_name snd_pcm_state_name_dylibloader_orig_asound +#define snd_pcm_dump snd_pcm_dump_dylibloader_orig_asound +#define snd_pcm_dump_hw_setup snd_pcm_dump_hw_setup_dylibloader_orig_asound +#define snd_pcm_dump_sw_setup snd_pcm_dump_sw_setup_dylibloader_orig_asound +#define snd_pcm_dump_setup snd_pcm_dump_setup_dylibloader_orig_asound +#define snd_pcm_hw_params_dump snd_pcm_hw_params_dump_dylibloader_orig_asound +#define snd_pcm_sw_params_dump snd_pcm_sw_params_dump_dylibloader_orig_asound +#define snd_pcm_status_dump snd_pcm_status_dump_dylibloader_orig_asound +#define snd_pcm_mmap_begin snd_pcm_mmap_begin_dylibloader_orig_asound +#define snd_pcm_mmap_commit snd_pcm_mmap_commit_dylibloader_orig_asound +#define snd_pcm_mmap_writei snd_pcm_mmap_writei_dylibloader_orig_asound +#define snd_pcm_mmap_readi snd_pcm_mmap_readi_dylibloader_orig_asound +#define snd_pcm_mmap_writen snd_pcm_mmap_writen_dylibloader_orig_asound +#define snd_pcm_mmap_readn snd_pcm_mmap_readn_dylibloader_orig_asound +#define snd_pcm_format_signed snd_pcm_format_signed_dylibloader_orig_asound +#define snd_pcm_format_unsigned snd_pcm_format_unsigned_dylibloader_orig_asound +#define snd_pcm_format_linear snd_pcm_format_linear_dylibloader_orig_asound +#define snd_pcm_format_float snd_pcm_format_float_dylibloader_orig_asound +#define snd_pcm_format_little_endian snd_pcm_format_little_endian_dylibloader_orig_asound +#define snd_pcm_format_big_endian snd_pcm_format_big_endian_dylibloader_orig_asound +#define snd_pcm_format_cpu_endian snd_pcm_format_cpu_endian_dylibloader_orig_asound +#define snd_pcm_format_width snd_pcm_format_width_dylibloader_orig_asound +#define snd_pcm_format_physical_width snd_pcm_format_physical_width_dylibloader_orig_asound +#define snd_pcm_build_linear_format snd_pcm_build_linear_format_dylibloader_orig_asound +#define snd_pcm_format_size snd_pcm_format_size_dylibloader_orig_asound +#define snd_pcm_format_silence snd_pcm_format_silence_dylibloader_orig_asound +#define snd_pcm_format_silence_16 snd_pcm_format_silence_16_dylibloader_orig_asound +#define snd_pcm_format_silence_32 snd_pcm_format_silence_32_dylibloader_orig_asound +#define snd_pcm_format_silence_64 snd_pcm_format_silence_64_dylibloader_orig_asound +#define snd_pcm_format_set_silence snd_pcm_format_set_silence_dylibloader_orig_asound +#define snd_pcm_bytes_to_frames snd_pcm_bytes_to_frames_dylibloader_orig_asound +#define snd_pcm_frames_to_bytes snd_pcm_frames_to_bytes_dylibloader_orig_asound +#define snd_pcm_bytes_to_samples snd_pcm_bytes_to_samples_dylibloader_orig_asound +#define snd_pcm_samples_to_bytes snd_pcm_samples_to_bytes_dylibloader_orig_asound +#define snd_pcm_area_silence snd_pcm_area_silence_dylibloader_orig_asound +#define snd_pcm_areas_silence snd_pcm_areas_silence_dylibloader_orig_asound +#define snd_pcm_area_copy snd_pcm_area_copy_dylibloader_orig_asound +#define snd_pcm_areas_copy snd_pcm_areas_copy_dylibloader_orig_asound +#define snd_pcm_areas_copy_wrap snd_pcm_areas_copy_wrap_dylibloader_orig_asound +#define snd_pcm_hook_get_pcm snd_pcm_hook_get_pcm_dylibloader_orig_asound +#define snd_pcm_hook_get_private snd_pcm_hook_get_private_dylibloader_orig_asound +#define snd_pcm_hook_set_private snd_pcm_hook_set_private_dylibloader_orig_asound +#define snd_pcm_hook_add snd_pcm_hook_add_dylibloader_orig_asound +#define snd_pcm_hook_remove snd_pcm_hook_remove_dylibloader_orig_asound +#define snd_pcm_meter_get_bufsize snd_pcm_meter_get_bufsize_dylibloader_orig_asound +#define snd_pcm_meter_get_channels snd_pcm_meter_get_channels_dylibloader_orig_asound +#define snd_pcm_meter_get_rate snd_pcm_meter_get_rate_dylibloader_orig_asound +#define snd_pcm_meter_get_now snd_pcm_meter_get_now_dylibloader_orig_asound +#define snd_pcm_meter_get_boundary snd_pcm_meter_get_boundary_dylibloader_orig_asound +#define snd_pcm_meter_add_scope snd_pcm_meter_add_scope_dylibloader_orig_asound +#define snd_pcm_meter_search_scope snd_pcm_meter_search_scope_dylibloader_orig_asound +#define snd_pcm_scope_malloc snd_pcm_scope_malloc_dylibloader_orig_asound +#define snd_pcm_scope_set_ops snd_pcm_scope_set_ops_dylibloader_orig_asound +#define snd_pcm_scope_set_name snd_pcm_scope_set_name_dylibloader_orig_asound +#define snd_pcm_scope_get_name snd_pcm_scope_get_name_dylibloader_orig_asound +#define snd_pcm_scope_get_callback_private snd_pcm_scope_get_callback_private_dylibloader_orig_asound +#define snd_pcm_scope_set_callback_private snd_pcm_scope_set_callback_private_dylibloader_orig_asound +#define snd_pcm_scope_s16_open snd_pcm_scope_s16_open_dylibloader_orig_asound +#define snd_pcm_scope_s16_get_channel_buffer snd_pcm_scope_s16_get_channel_buffer_dylibloader_orig_asound +#define snd_spcm_init snd_spcm_init_dylibloader_orig_asound +#define snd_spcm_init_duplex snd_spcm_init_duplex_dylibloader_orig_asound +#define snd_spcm_init_get_params snd_spcm_init_get_params_dylibloader_orig_asound +#define snd_pcm_start_mode_name snd_pcm_start_mode_name_dylibloader_orig_asound +#define snd_pcm_xrun_mode_name snd_pcm_xrun_mode_name_dylibloader_orig_asound +#define snd_pcm_sw_params_set_start_mode snd_pcm_sw_params_set_start_mode_dylibloader_orig_asound +#define snd_pcm_sw_params_get_start_mode snd_pcm_sw_params_get_start_mode_dylibloader_orig_asound +#define snd_pcm_sw_params_set_xrun_mode snd_pcm_sw_params_set_xrun_mode_dylibloader_orig_asound +#define snd_pcm_sw_params_get_xrun_mode snd_pcm_sw_params_get_xrun_mode_dylibloader_orig_asound +#define snd_pcm_sw_params_set_xfer_align snd_pcm_sw_params_set_xfer_align_dylibloader_orig_asound +#define snd_pcm_sw_params_get_xfer_align snd_pcm_sw_params_get_xfer_align_dylibloader_orig_asound +#define snd_pcm_sw_params_set_sleep_min snd_pcm_sw_params_set_sleep_min_dylibloader_orig_asound +#define snd_pcm_sw_params_get_sleep_min snd_pcm_sw_params_get_sleep_min_dylibloader_orig_asound +#define snd_pcm_hw_params_get_tick_time snd_pcm_hw_params_get_tick_time_dylibloader_orig_asound +#define snd_pcm_hw_params_get_tick_time_min snd_pcm_hw_params_get_tick_time_min_dylibloader_orig_asound +#define snd_pcm_hw_params_get_tick_time_max snd_pcm_hw_params_get_tick_time_max_dylibloader_orig_asound +#define snd_pcm_hw_params_test_tick_time snd_pcm_hw_params_test_tick_time_dylibloader_orig_asound +#define snd_pcm_hw_params_set_tick_time snd_pcm_hw_params_set_tick_time_dylibloader_orig_asound +#define snd_pcm_hw_params_set_tick_time_min snd_pcm_hw_params_set_tick_time_min_dylibloader_orig_asound +#define snd_pcm_hw_params_set_tick_time_max snd_pcm_hw_params_set_tick_time_max_dylibloader_orig_asound +#define snd_pcm_hw_params_set_tick_time_minmax snd_pcm_hw_params_set_tick_time_minmax_dylibloader_orig_asound +#define snd_pcm_hw_params_set_tick_time_near snd_pcm_hw_params_set_tick_time_near_dylibloader_orig_asound +#define snd_pcm_hw_params_set_tick_time_first snd_pcm_hw_params_set_tick_time_first_dylibloader_orig_asound +#define snd_pcm_hw_params_set_tick_time_last snd_pcm_hw_params_set_tick_time_last_dylibloader_orig_asound +#define snd_rawmidi_open snd_rawmidi_open_dylibloader_orig_asound +#define snd_rawmidi_open_lconf snd_rawmidi_open_lconf_dylibloader_orig_asound +#define snd_rawmidi_close snd_rawmidi_close_dylibloader_orig_asound +#define snd_rawmidi_poll_descriptors_count snd_rawmidi_poll_descriptors_count_dylibloader_orig_asound +#define snd_rawmidi_poll_descriptors snd_rawmidi_poll_descriptors_dylibloader_orig_asound +#define snd_rawmidi_poll_descriptors_revents snd_rawmidi_poll_descriptors_revents_dylibloader_orig_asound +#define snd_rawmidi_nonblock snd_rawmidi_nonblock_dylibloader_orig_asound +#define snd_rawmidi_info_sizeof snd_rawmidi_info_sizeof_dylibloader_orig_asound +#define snd_rawmidi_info_malloc snd_rawmidi_info_malloc_dylibloader_orig_asound +#define snd_rawmidi_info_free snd_rawmidi_info_free_dylibloader_orig_asound +#define snd_rawmidi_info_copy snd_rawmidi_info_copy_dylibloader_orig_asound +#define snd_rawmidi_info_get_device snd_rawmidi_info_get_device_dylibloader_orig_asound +#define snd_rawmidi_info_get_subdevice snd_rawmidi_info_get_subdevice_dylibloader_orig_asound +#define snd_rawmidi_info_get_stream snd_rawmidi_info_get_stream_dylibloader_orig_asound +#define snd_rawmidi_info_get_card snd_rawmidi_info_get_card_dylibloader_orig_asound +#define snd_rawmidi_info_get_flags snd_rawmidi_info_get_flags_dylibloader_orig_asound +#define snd_rawmidi_info_get_id snd_rawmidi_info_get_id_dylibloader_orig_asound +#define snd_rawmidi_info_get_name snd_rawmidi_info_get_name_dylibloader_orig_asound +#define snd_rawmidi_info_get_subdevice_name snd_rawmidi_info_get_subdevice_name_dylibloader_orig_asound +#define snd_rawmidi_info_get_subdevices_count snd_rawmidi_info_get_subdevices_count_dylibloader_orig_asound +#define snd_rawmidi_info_get_subdevices_avail snd_rawmidi_info_get_subdevices_avail_dylibloader_orig_asound +#define snd_rawmidi_info_set_device snd_rawmidi_info_set_device_dylibloader_orig_asound +#define snd_rawmidi_info_set_subdevice snd_rawmidi_info_set_subdevice_dylibloader_orig_asound +#define snd_rawmidi_info_set_stream snd_rawmidi_info_set_stream_dylibloader_orig_asound +#define snd_rawmidi_info snd_rawmidi_info_dylibloader_orig_asound +#define snd_rawmidi_params_sizeof snd_rawmidi_params_sizeof_dylibloader_orig_asound +#define snd_rawmidi_params_malloc snd_rawmidi_params_malloc_dylibloader_orig_asound +#define snd_rawmidi_params_free snd_rawmidi_params_free_dylibloader_orig_asound +#define snd_rawmidi_params_copy snd_rawmidi_params_copy_dylibloader_orig_asound +#define snd_rawmidi_params_set_buffer_size snd_rawmidi_params_set_buffer_size_dylibloader_orig_asound +#define snd_rawmidi_params_get_buffer_size snd_rawmidi_params_get_buffer_size_dylibloader_orig_asound +#define snd_rawmidi_params_set_avail_min snd_rawmidi_params_set_avail_min_dylibloader_orig_asound +#define snd_rawmidi_params_get_avail_min snd_rawmidi_params_get_avail_min_dylibloader_orig_asound +#define snd_rawmidi_params_set_no_active_sensing snd_rawmidi_params_set_no_active_sensing_dylibloader_orig_asound +#define snd_rawmidi_params_get_no_active_sensing snd_rawmidi_params_get_no_active_sensing_dylibloader_orig_asound +#define snd_rawmidi_params snd_rawmidi_params_dylibloader_orig_asound +#define snd_rawmidi_params_current snd_rawmidi_params_current_dylibloader_orig_asound +#define snd_rawmidi_status_sizeof snd_rawmidi_status_sizeof_dylibloader_orig_asound +#define snd_rawmidi_status_malloc snd_rawmidi_status_malloc_dylibloader_orig_asound +#define snd_rawmidi_status_free snd_rawmidi_status_free_dylibloader_orig_asound +#define snd_rawmidi_status_copy snd_rawmidi_status_copy_dylibloader_orig_asound +#define snd_rawmidi_status_get_tstamp snd_rawmidi_status_get_tstamp_dylibloader_orig_asound +#define snd_rawmidi_status_get_avail snd_rawmidi_status_get_avail_dylibloader_orig_asound +#define snd_rawmidi_status_get_xruns snd_rawmidi_status_get_xruns_dylibloader_orig_asound +#define snd_rawmidi_status snd_rawmidi_status_dylibloader_orig_asound +#define snd_rawmidi_drain snd_rawmidi_drain_dylibloader_orig_asound +#define snd_rawmidi_drop snd_rawmidi_drop_dylibloader_orig_asound +#define snd_rawmidi_write snd_rawmidi_write_dylibloader_orig_asound +#define snd_rawmidi_read snd_rawmidi_read_dylibloader_orig_asound +#define snd_rawmidi_name snd_rawmidi_name_dylibloader_orig_asound +#define snd_rawmidi_type snd_rawmidi_type_dylibloader_orig_asound +#define snd_rawmidi_stream snd_rawmidi_stream_dylibloader_orig_asound +#define snd_timer_query_open snd_timer_query_open_dylibloader_orig_asound +#define snd_timer_query_open_lconf snd_timer_query_open_lconf_dylibloader_orig_asound +#define snd_timer_query_close snd_timer_query_close_dylibloader_orig_asound +#define snd_timer_query_next_device snd_timer_query_next_device_dylibloader_orig_asound +#define snd_timer_query_info snd_timer_query_info_dylibloader_orig_asound +#define snd_timer_query_params snd_timer_query_params_dylibloader_orig_asound +#define snd_timer_query_status snd_timer_query_status_dylibloader_orig_asound +#define snd_timer_open snd_timer_open_dylibloader_orig_asound +#define snd_timer_open_lconf snd_timer_open_lconf_dylibloader_orig_asound +#define snd_timer_close snd_timer_close_dylibloader_orig_asound +#define snd_async_add_timer_handler snd_async_add_timer_handler_dylibloader_orig_asound +#define snd_async_handler_get_timer snd_async_handler_get_timer_dylibloader_orig_asound +#define snd_timer_poll_descriptors_count snd_timer_poll_descriptors_count_dylibloader_orig_asound +#define snd_timer_poll_descriptors snd_timer_poll_descriptors_dylibloader_orig_asound +#define snd_timer_poll_descriptors_revents snd_timer_poll_descriptors_revents_dylibloader_orig_asound +#define snd_timer_info snd_timer_info_dylibloader_orig_asound +#define snd_timer_params snd_timer_params_dylibloader_orig_asound +#define snd_timer_status snd_timer_status_dylibloader_orig_asound +#define snd_timer_start snd_timer_start_dylibloader_orig_asound +#define snd_timer_stop snd_timer_stop_dylibloader_orig_asound +#define snd_timer_continue snd_timer_continue_dylibloader_orig_asound +#define snd_timer_read snd_timer_read_dylibloader_orig_asound +#define snd_timer_id_sizeof snd_timer_id_sizeof_dylibloader_orig_asound +#define snd_timer_id_malloc snd_timer_id_malloc_dylibloader_orig_asound +#define snd_timer_id_free snd_timer_id_free_dylibloader_orig_asound +#define snd_timer_id_copy snd_timer_id_copy_dylibloader_orig_asound +#define snd_timer_id_set_class snd_timer_id_set_class_dylibloader_orig_asound +#define snd_timer_id_get_class snd_timer_id_get_class_dylibloader_orig_asound +#define snd_timer_id_set_sclass snd_timer_id_set_sclass_dylibloader_orig_asound +#define snd_timer_id_get_sclass snd_timer_id_get_sclass_dylibloader_orig_asound +#define snd_timer_id_set_card snd_timer_id_set_card_dylibloader_orig_asound +#define snd_timer_id_get_card snd_timer_id_get_card_dylibloader_orig_asound +#define snd_timer_id_set_device snd_timer_id_set_device_dylibloader_orig_asound +#define snd_timer_id_get_device snd_timer_id_get_device_dylibloader_orig_asound +#define snd_timer_id_set_subdevice snd_timer_id_set_subdevice_dylibloader_orig_asound +#define snd_timer_id_get_subdevice snd_timer_id_get_subdevice_dylibloader_orig_asound +#define snd_timer_ginfo_sizeof snd_timer_ginfo_sizeof_dylibloader_orig_asound +#define snd_timer_ginfo_malloc snd_timer_ginfo_malloc_dylibloader_orig_asound +#define snd_timer_ginfo_free snd_timer_ginfo_free_dylibloader_orig_asound +#define snd_timer_ginfo_copy snd_timer_ginfo_copy_dylibloader_orig_asound +#define snd_timer_ginfo_set_tid snd_timer_ginfo_set_tid_dylibloader_orig_asound +#define snd_timer_ginfo_get_tid snd_timer_ginfo_get_tid_dylibloader_orig_asound +#define snd_timer_ginfo_get_flags snd_timer_ginfo_get_flags_dylibloader_orig_asound +#define snd_timer_ginfo_get_card snd_timer_ginfo_get_card_dylibloader_orig_asound +#define snd_timer_ginfo_get_id snd_timer_ginfo_get_id_dylibloader_orig_asound +#define snd_timer_ginfo_get_name snd_timer_ginfo_get_name_dylibloader_orig_asound +#define snd_timer_ginfo_get_resolution snd_timer_ginfo_get_resolution_dylibloader_orig_asound +#define snd_timer_ginfo_get_resolution_min snd_timer_ginfo_get_resolution_min_dylibloader_orig_asound +#define snd_timer_ginfo_get_resolution_max snd_timer_ginfo_get_resolution_max_dylibloader_orig_asound +#define snd_timer_ginfo_get_clients snd_timer_ginfo_get_clients_dylibloader_orig_asound +#define snd_timer_info_sizeof snd_timer_info_sizeof_dylibloader_orig_asound +#define snd_timer_info_malloc snd_timer_info_malloc_dylibloader_orig_asound +#define snd_timer_info_free snd_timer_info_free_dylibloader_orig_asound +#define snd_timer_info_copy snd_timer_info_copy_dylibloader_orig_asound +#define snd_timer_info_is_slave snd_timer_info_is_slave_dylibloader_orig_asound +#define snd_timer_info_get_card snd_timer_info_get_card_dylibloader_orig_asound +#define snd_timer_info_get_id snd_timer_info_get_id_dylibloader_orig_asound +#define snd_timer_info_get_name snd_timer_info_get_name_dylibloader_orig_asound +#define snd_timer_info_get_resolution snd_timer_info_get_resolution_dylibloader_orig_asound +#define snd_timer_params_sizeof snd_timer_params_sizeof_dylibloader_orig_asound +#define snd_timer_params_malloc snd_timer_params_malloc_dylibloader_orig_asound +#define snd_timer_params_free snd_timer_params_free_dylibloader_orig_asound +#define snd_timer_params_copy snd_timer_params_copy_dylibloader_orig_asound +#define snd_timer_params_set_auto_start snd_timer_params_set_auto_start_dylibloader_orig_asound +#define snd_timer_params_get_auto_start snd_timer_params_get_auto_start_dylibloader_orig_asound +#define snd_timer_params_set_exclusive snd_timer_params_set_exclusive_dylibloader_orig_asound +#define snd_timer_params_get_exclusive snd_timer_params_get_exclusive_dylibloader_orig_asound +#define snd_timer_params_set_early_event snd_timer_params_set_early_event_dylibloader_orig_asound +#define snd_timer_params_get_early_event snd_timer_params_get_early_event_dylibloader_orig_asound +#define snd_timer_params_set_ticks snd_timer_params_set_ticks_dylibloader_orig_asound +#define snd_timer_params_get_ticks snd_timer_params_get_ticks_dylibloader_orig_asound +#define snd_timer_params_set_queue_size snd_timer_params_set_queue_size_dylibloader_orig_asound +#define snd_timer_params_get_queue_size snd_timer_params_get_queue_size_dylibloader_orig_asound +#define snd_timer_params_set_filter snd_timer_params_set_filter_dylibloader_orig_asound +#define snd_timer_params_get_filter snd_timer_params_get_filter_dylibloader_orig_asound +#define snd_timer_status_sizeof snd_timer_status_sizeof_dylibloader_orig_asound +#define snd_timer_status_malloc snd_timer_status_malloc_dylibloader_orig_asound +#define snd_timer_status_free snd_timer_status_free_dylibloader_orig_asound +#define snd_timer_status_copy snd_timer_status_copy_dylibloader_orig_asound +#define snd_timer_status_get_timestamp snd_timer_status_get_timestamp_dylibloader_orig_asound +#define snd_timer_status_get_resolution snd_timer_status_get_resolution_dylibloader_orig_asound +#define snd_timer_status_get_lost snd_timer_status_get_lost_dylibloader_orig_asound +#define snd_timer_status_get_overrun snd_timer_status_get_overrun_dylibloader_orig_asound +#define snd_timer_status_get_queue snd_timer_status_get_queue_dylibloader_orig_asound +#define snd_timer_info_get_ticks snd_timer_info_get_ticks_dylibloader_orig_asound +#define snd_hwdep_open snd_hwdep_open_dylibloader_orig_asound +#define snd_hwdep_close snd_hwdep_close_dylibloader_orig_asound +#define snd_hwdep_poll_descriptors snd_hwdep_poll_descriptors_dylibloader_orig_asound +#define snd_hwdep_poll_descriptors_count snd_hwdep_poll_descriptors_count_dylibloader_orig_asound +#define snd_hwdep_poll_descriptors_revents snd_hwdep_poll_descriptors_revents_dylibloader_orig_asound +#define snd_hwdep_nonblock snd_hwdep_nonblock_dylibloader_orig_asound +#define snd_hwdep_info snd_hwdep_info_dylibloader_orig_asound +#define snd_hwdep_dsp_status snd_hwdep_dsp_status_dylibloader_orig_asound +#define snd_hwdep_dsp_load snd_hwdep_dsp_load_dylibloader_orig_asound +#define snd_hwdep_ioctl snd_hwdep_ioctl_dylibloader_orig_asound +#define snd_hwdep_write snd_hwdep_write_dylibloader_orig_asound +#define snd_hwdep_read snd_hwdep_read_dylibloader_orig_asound +#define snd_hwdep_info_sizeof snd_hwdep_info_sizeof_dylibloader_orig_asound +#define snd_hwdep_info_malloc snd_hwdep_info_malloc_dylibloader_orig_asound +#define snd_hwdep_info_free snd_hwdep_info_free_dylibloader_orig_asound +#define snd_hwdep_info_copy snd_hwdep_info_copy_dylibloader_orig_asound +#define snd_hwdep_info_get_device snd_hwdep_info_get_device_dylibloader_orig_asound +#define snd_hwdep_info_get_card snd_hwdep_info_get_card_dylibloader_orig_asound +#define snd_hwdep_info_get_id snd_hwdep_info_get_id_dylibloader_orig_asound +#define snd_hwdep_info_get_name snd_hwdep_info_get_name_dylibloader_orig_asound +#define snd_hwdep_info_get_iface snd_hwdep_info_get_iface_dylibloader_orig_asound +#define snd_hwdep_info_set_device snd_hwdep_info_set_device_dylibloader_orig_asound +#define snd_hwdep_dsp_status_sizeof snd_hwdep_dsp_status_sizeof_dylibloader_orig_asound +#define snd_hwdep_dsp_status_malloc snd_hwdep_dsp_status_malloc_dylibloader_orig_asound +#define snd_hwdep_dsp_status_free snd_hwdep_dsp_status_free_dylibloader_orig_asound +#define snd_hwdep_dsp_status_copy snd_hwdep_dsp_status_copy_dylibloader_orig_asound +#define snd_hwdep_dsp_status_get_version snd_hwdep_dsp_status_get_version_dylibloader_orig_asound +#define snd_hwdep_dsp_status_get_id snd_hwdep_dsp_status_get_id_dylibloader_orig_asound +#define snd_hwdep_dsp_status_get_num_dsps snd_hwdep_dsp_status_get_num_dsps_dylibloader_orig_asound +#define snd_hwdep_dsp_status_get_dsp_loaded snd_hwdep_dsp_status_get_dsp_loaded_dylibloader_orig_asound +#define snd_hwdep_dsp_status_get_chip_ready snd_hwdep_dsp_status_get_chip_ready_dylibloader_orig_asound +#define snd_hwdep_dsp_image_sizeof snd_hwdep_dsp_image_sizeof_dylibloader_orig_asound +#define snd_hwdep_dsp_image_malloc snd_hwdep_dsp_image_malloc_dylibloader_orig_asound +#define snd_hwdep_dsp_image_free snd_hwdep_dsp_image_free_dylibloader_orig_asound +#define snd_hwdep_dsp_image_copy snd_hwdep_dsp_image_copy_dylibloader_orig_asound +#define snd_hwdep_dsp_image_get_index snd_hwdep_dsp_image_get_index_dylibloader_orig_asound +#define snd_hwdep_dsp_image_get_name snd_hwdep_dsp_image_get_name_dylibloader_orig_asound +#define snd_hwdep_dsp_image_get_image snd_hwdep_dsp_image_get_image_dylibloader_orig_asound +#define snd_hwdep_dsp_image_get_length snd_hwdep_dsp_image_get_length_dylibloader_orig_asound +#define snd_hwdep_dsp_image_set_index snd_hwdep_dsp_image_set_index_dylibloader_orig_asound +#define snd_hwdep_dsp_image_set_name snd_hwdep_dsp_image_set_name_dylibloader_orig_asound +#define snd_hwdep_dsp_image_set_image snd_hwdep_dsp_image_set_image_dylibloader_orig_asound +#define snd_hwdep_dsp_image_set_length snd_hwdep_dsp_image_set_length_dylibloader_orig_asound +#define snd_card_load snd_card_load_dylibloader_orig_asound +#define snd_card_next snd_card_next_dylibloader_orig_asound +#define snd_card_get_index snd_card_get_index_dylibloader_orig_asound +#define snd_card_get_name snd_card_get_name_dylibloader_orig_asound +#define snd_card_get_longname snd_card_get_longname_dylibloader_orig_asound +#define snd_device_name_hint snd_device_name_hint_dylibloader_orig_asound +#define snd_device_name_free_hint snd_device_name_free_hint_dylibloader_orig_asound +#define snd_device_name_get_hint snd_device_name_get_hint_dylibloader_orig_asound +#define snd_ctl_open snd_ctl_open_dylibloader_orig_asound +#define snd_ctl_open_lconf snd_ctl_open_lconf_dylibloader_orig_asound +#define snd_ctl_open_fallback snd_ctl_open_fallback_dylibloader_orig_asound +#define snd_ctl_close snd_ctl_close_dylibloader_orig_asound +#define snd_ctl_nonblock snd_ctl_nonblock_dylibloader_orig_asound +#define snd_async_add_ctl_handler snd_async_add_ctl_handler_dylibloader_orig_asound +#define snd_async_handler_get_ctl snd_async_handler_get_ctl_dylibloader_orig_asound +#define snd_ctl_poll_descriptors_count snd_ctl_poll_descriptors_count_dylibloader_orig_asound +#define snd_ctl_poll_descriptors snd_ctl_poll_descriptors_dylibloader_orig_asound +#define snd_ctl_poll_descriptors_revents snd_ctl_poll_descriptors_revents_dylibloader_orig_asound +#define snd_ctl_subscribe_events snd_ctl_subscribe_events_dylibloader_orig_asound +#define snd_ctl_card_info snd_ctl_card_info_dylibloader_orig_asound +#define snd_ctl_elem_list snd_ctl_elem_list_dylibloader_orig_asound +#define snd_ctl_elem_info snd_ctl_elem_info_dylibloader_orig_asound +#define snd_ctl_elem_read snd_ctl_elem_read_dylibloader_orig_asound +#define snd_ctl_elem_write snd_ctl_elem_write_dylibloader_orig_asound +#define snd_ctl_elem_lock snd_ctl_elem_lock_dylibloader_orig_asound +#define snd_ctl_elem_unlock snd_ctl_elem_unlock_dylibloader_orig_asound +#define snd_ctl_elem_tlv_read snd_ctl_elem_tlv_read_dylibloader_orig_asound +#define snd_ctl_elem_tlv_write snd_ctl_elem_tlv_write_dylibloader_orig_asound +#define snd_ctl_elem_tlv_command snd_ctl_elem_tlv_command_dylibloader_orig_asound +#define snd_ctl_hwdep_next_device snd_ctl_hwdep_next_device_dylibloader_orig_asound +#define snd_ctl_hwdep_info snd_ctl_hwdep_info_dylibloader_orig_asound +#define snd_ctl_pcm_next_device snd_ctl_pcm_next_device_dylibloader_orig_asound +#define snd_ctl_pcm_info snd_ctl_pcm_info_dylibloader_orig_asound +#define snd_ctl_pcm_prefer_subdevice snd_ctl_pcm_prefer_subdevice_dylibloader_orig_asound +#define snd_ctl_rawmidi_next_device snd_ctl_rawmidi_next_device_dylibloader_orig_asound +#define snd_ctl_rawmidi_info snd_ctl_rawmidi_info_dylibloader_orig_asound +#define snd_ctl_rawmidi_prefer_subdevice snd_ctl_rawmidi_prefer_subdevice_dylibloader_orig_asound +#define snd_ctl_set_power_state snd_ctl_set_power_state_dylibloader_orig_asound +#define snd_ctl_get_power_state snd_ctl_get_power_state_dylibloader_orig_asound +#define snd_ctl_read snd_ctl_read_dylibloader_orig_asound +#define snd_ctl_wait snd_ctl_wait_dylibloader_orig_asound +#define snd_ctl_name snd_ctl_name_dylibloader_orig_asound +#define snd_ctl_type snd_ctl_type_dylibloader_orig_asound +#define snd_ctl_elem_type_name snd_ctl_elem_type_name_dylibloader_orig_asound +#define snd_ctl_elem_iface_name snd_ctl_elem_iface_name_dylibloader_orig_asound +#define snd_ctl_event_type_name snd_ctl_event_type_name_dylibloader_orig_asound +#define snd_ctl_event_elem_get_mask snd_ctl_event_elem_get_mask_dylibloader_orig_asound +#define snd_ctl_event_elem_get_numid snd_ctl_event_elem_get_numid_dylibloader_orig_asound +#define snd_ctl_event_elem_get_id snd_ctl_event_elem_get_id_dylibloader_orig_asound +#define snd_ctl_event_elem_get_interface snd_ctl_event_elem_get_interface_dylibloader_orig_asound +#define snd_ctl_event_elem_get_device snd_ctl_event_elem_get_device_dylibloader_orig_asound +#define snd_ctl_event_elem_get_subdevice snd_ctl_event_elem_get_subdevice_dylibloader_orig_asound +#define snd_ctl_event_elem_get_name snd_ctl_event_elem_get_name_dylibloader_orig_asound +#define snd_ctl_event_elem_get_index snd_ctl_event_elem_get_index_dylibloader_orig_asound +#define snd_ctl_elem_list_alloc_space snd_ctl_elem_list_alloc_space_dylibloader_orig_asound +#define snd_ctl_elem_list_free_space snd_ctl_elem_list_free_space_dylibloader_orig_asound +#define snd_ctl_ascii_elem_id_get snd_ctl_ascii_elem_id_get_dylibloader_orig_asound +#define snd_ctl_ascii_elem_id_parse snd_ctl_ascii_elem_id_parse_dylibloader_orig_asound +#define snd_ctl_ascii_value_parse snd_ctl_ascii_value_parse_dylibloader_orig_asound +#define snd_ctl_elem_id_sizeof snd_ctl_elem_id_sizeof_dylibloader_orig_asound +#define snd_ctl_elem_id_malloc snd_ctl_elem_id_malloc_dylibloader_orig_asound +#define snd_ctl_elem_id_free snd_ctl_elem_id_free_dylibloader_orig_asound +#define snd_ctl_elem_id_clear snd_ctl_elem_id_clear_dylibloader_orig_asound +#define snd_ctl_elem_id_copy snd_ctl_elem_id_copy_dylibloader_orig_asound +#define snd_ctl_elem_id_get_numid snd_ctl_elem_id_get_numid_dylibloader_orig_asound +#define snd_ctl_elem_id_get_interface snd_ctl_elem_id_get_interface_dylibloader_orig_asound +#define snd_ctl_elem_id_get_device snd_ctl_elem_id_get_device_dylibloader_orig_asound +#define snd_ctl_elem_id_get_subdevice snd_ctl_elem_id_get_subdevice_dylibloader_orig_asound +#define snd_ctl_elem_id_get_name snd_ctl_elem_id_get_name_dylibloader_orig_asound +#define snd_ctl_elem_id_get_index snd_ctl_elem_id_get_index_dylibloader_orig_asound +#define snd_ctl_elem_id_set_numid snd_ctl_elem_id_set_numid_dylibloader_orig_asound +#define snd_ctl_elem_id_set_interface snd_ctl_elem_id_set_interface_dylibloader_orig_asound +#define snd_ctl_elem_id_set_device snd_ctl_elem_id_set_device_dylibloader_orig_asound +#define snd_ctl_elem_id_set_subdevice snd_ctl_elem_id_set_subdevice_dylibloader_orig_asound +#define snd_ctl_elem_id_set_name snd_ctl_elem_id_set_name_dylibloader_orig_asound +#define snd_ctl_elem_id_set_index snd_ctl_elem_id_set_index_dylibloader_orig_asound +#define snd_ctl_card_info_sizeof snd_ctl_card_info_sizeof_dylibloader_orig_asound +#define snd_ctl_card_info_malloc snd_ctl_card_info_malloc_dylibloader_orig_asound +#define snd_ctl_card_info_free snd_ctl_card_info_free_dylibloader_orig_asound +#define snd_ctl_card_info_clear snd_ctl_card_info_clear_dylibloader_orig_asound +#define snd_ctl_card_info_copy snd_ctl_card_info_copy_dylibloader_orig_asound +#define snd_ctl_card_info_get_card snd_ctl_card_info_get_card_dylibloader_orig_asound +#define snd_ctl_card_info_get_id snd_ctl_card_info_get_id_dylibloader_orig_asound +#define snd_ctl_card_info_get_driver snd_ctl_card_info_get_driver_dylibloader_orig_asound +#define snd_ctl_card_info_get_name snd_ctl_card_info_get_name_dylibloader_orig_asound +#define snd_ctl_card_info_get_longname snd_ctl_card_info_get_longname_dylibloader_orig_asound +#define snd_ctl_card_info_get_mixername snd_ctl_card_info_get_mixername_dylibloader_orig_asound +#define snd_ctl_card_info_get_components snd_ctl_card_info_get_components_dylibloader_orig_asound +#define snd_ctl_event_sizeof snd_ctl_event_sizeof_dylibloader_orig_asound +#define snd_ctl_event_malloc snd_ctl_event_malloc_dylibloader_orig_asound +#define snd_ctl_event_free snd_ctl_event_free_dylibloader_orig_asound +#define snd_ctl_event_clear snd_ctl_event_clear_dylibloader_orig_asound +#define snd_ctl_event_copy snd_ctl_event_copy_dylibloader_orig_asound +#define snd_ctl_event_get_type snd_ctl_event_get_type_dylibloader_orig_asound +#define snd_ctl_elem_list_sizeof snd_ctl_elem_list_sizeof_dylibloader_orig_asound +#define snd_ctl_elem_list_malloc snd_ctl_elem_list_malloc_dylibloader_orig_asound +#define snd_ctl_elem_list_free snd_ctl_elem_list_free_dylibloader_orig_asound +#define snd_ctl_elem_list_clear snd_ctl_elem_list_clear_dylibloader_orig_asound +#define snd_ctl_elem_list_copy snd_ctl_elem_list_copy_dylibloader_orig_asound +#define snd_ctl_elem_list_set_offset snd_ctl_elem_list_set_offset_dylibloader_orig_asound +#define snd_ctl_elem_list_get_used snd_ctl_elem_list_get_used_dylibloader_orig_asound +#define snd_ctl_elem_list_get_count snd_ctl_elem_list_get_count_dylibloader_orig_asound +#define snd_ctl_elem_list_get_id snd_ctl_elem_list_get_id_dylibloader_orig_asound +#define snd_ctl_elem_list_get_numid snd_ctl_elem_list_get_numid_dylibloader_orig_asound +#define snd_ctl_elem_list_get_interface snd_ctl_elem_list_get_interface_dylibloader_orig_asound +#define snd_ctl_elem_list_get_device snd_ctl_elem_list_get_device_dylibloader_orig_asound +#define snd_ctl_elem_list_get_subdevice snd_ctl_elem_list_get_subdevice_dylibloader_orig_asound +#define snd_ctl_elem_list_get_name snd_ctl_elem_list_get_name_dylibloader_orig_asound +#define snd_ctl_elem_list_get_index snd_ctl_elem_list_get_index_dylibloader_orig_asound +#define snd_ctl_elem_info_sizeof snd_ctl_elem_info_sizeof_dylibloader_orig_asound +#define snd_ctl_elem_info_malloc snd_ctl_elem_info_malloc_dylibloader_orig_asound +#define snd_ctl_elem_info_free snd_ctl_elem_info_free_dylibloader_orig_asound +#define snd_ctl_elem_info_clear snd_ctl_elem_info_clear_dylibloader_orig_asound +#define snd_ctl_elem_info_copy snd_ctl_elem_info_copy_dylibloader_orig_asound +#define snd_ctl_elem_info_get_type snd_ctl_elem_info_get_type_dylibloader_orig_asound +#define snd_ctl_elem_info_is_readable snd_ctl_elem_info_is_readable_dylibloader_orig_asound +#define snd_ctl_elem_info_is_writable snd_ctl_elem_info_is_writable_dylibloader_orig_asound +#define snd_ctl_elem_info_is_volatile snd_ctl_elem_info_is_volatile_dylibloader_orig_asound +#define snd_ctl_elem_info_is_inactive snd_ctl_elem_info_is_inactive_dylibloader_orig_asound +#define snd_ctl_elem_info_is_locked snd_ctl_elem_info_is_locked_dylibloader_orig_asound +#define snd_ctl_elem_info_is_tlv_readable snd_ctl_elem_info_is_tlv_readable_dylibloader_orig_asound +#define snd_ctl_elem_info_is_tlv_writable snd_ctl_elem_info_is_tlv_writable_dylibloader_orig_asound +#define snd_ctl_elem_info_is_tlv_commandable snd_ctl_elem_info_is_tlv_commandable_dylibloader_orig_asound +#define snd_ctl_elem_info_is_owner snd_ctl_elem_info_is_owner_dylibloader_orig_asound +#define snd_ctl_elem_info_is_user snd_ctl_elem_info_is_user_dylibloader_orig_asound +#define snd_ctl_elem_info_get_owner snd_ctl_elem_info_get_owner_dylibloader_orig_asound +#define snd_ctl_elem_info_get_count snd_ctl_elem_info_get_count_dylibloader_orig_asound +#define snd_ctl_elem_info_get_min snd_ctl_elem_info_get_min_dylibloader_orig_asound +#define snd_ctl_elem_info_get_max snd_ctl_elem_info_get_max_dylibloader_orig_asound +#define snd_ctl_elem_info_get_step snd_ctl_elem_info_get_step_dylibloader_orig_asound +#define snd_ctl_elem_info_get_min64 snd_ctl_elem_info_get_min64_dylibloader_orig_asound +#define snd_ctl_elem_info_get_max64 snd_ctl_elem_info_get_max64_dylibloader_orig_asound +#define snd_ctl_elem_info_get_step64 snd_ctl_elem_info_get_step64_dylibloader_orig_asound +#define snd_ctl_elem_info_get_items snd_ctl_elem_info_get_items_dylibloader_orig_asound +#define snd_ctl_elem_info_set_item snd_ctl_elem_info_set_item_dylibloader_orig_asound +#define snd_ctl_elem_info_get_item_name snd_ctl_elem_info_get_item_name_dylibloader_orig_asound +#define snd_ctl_elem_info_get_dimensions snd_ctl_elem_info_get_dimensions_dylibloader_orig_asound +#define snd_ctl_elem_info_get_dimension snd_ctl_elem_info_get_dimension_dylibloader_orig_asound +#define snd_ctl_elem_info_set_dimension snd_ctl_elem_info_set_dimension_dylibloader_orig_asound +#define snd_ctl_elem_info_get_id snd_ctl_elem_info_get_id_dylibloader_orig_asound +#define snd_ctl_elem_info_get_numid snd_ctl_elem_info_get_numid_dylibloader_orig_asound +#define snd_ctl_elem_info_get_interface snd_ctl_elem_info_get_interface_dylibloader_orig_asound +#define snd_ctl_elem_info_get_device snd_ctl_elem_info_get_device_dylibloader_orig_asound +#define snd_ctl_elem_info_get_subdevice snd_ctl_elem_info_get_subdevice_dylibloader_orig_asound +#define snd_ctl_elem_info_get_name snd_ctl_elem_info_get_name_dylibloader_orig_asound +#define snd_ctl_elem_info_get_index snd_ctl_elem_info_get_index_dylibloader_orig_asound +#define snd_ctl_elem_info_set_id snd_ctl_elem_info_set_id_dylibloader_orig_asound +#define snd_ctl_elem_info_set_numid snd_ctl_elem_info_set_numid_dylibloader_orig_asound +#define snd_ctl_elem_info_set_interface snd_ctl_elem_info_set_interface_dylibloader_orig_asound +#define snd_ctl_elem_info_set_device snd_ctl_elem_info_set_device_dylibloader_orig_asound +#define snd_ctl_elem_info_set_subdevice snd_ctl_elem_info_set_subdevice_dylibloader_orig_asound +#define snd_ctl_elem_info_set_name snd_ctl_elem_info_set_name_dylibloader_orig_asound +#define snd_ctl_elem_info_set_index snd_ctl_elem_info_set_index_dylibloader_orig_asound +#define snd_ctl_add_integer_elem_set snd_ctl_add_integer_elem_set_dylibloader_orig_asound +#define snd_ctl_add_integer64_elem_set snd_ctl_add_integer64_elem_set_dylibloader_orig_asound +#define snd_ctl_add_boolean_elem_set snd_ctl_add_boolean_elem_set_dylibloader_orig_asound +#define snd_ctl_add_enumerated_elem_set snd_ctl_add_enumerated_elem_set_dylibloader_orig_asound +#define snd_ctl_add_bytes_elem_set snd_ctl_add_bytes_elem_set_dylibloader_orig_asound +#define snd_ctl_elem_add_integer snd_ctl_elem_add_integer_dylibloader_orig_asound +#define snd_ctl_elem_add_integer64 snd_ctl_elem_add_integer64_dylibloader_orig_asound +#define snd_ctl_elem_add_boolean snd_ctl_elem_add_boolean_dylibloader_orig_asound +#define snd_ctl_elem_add_enumerated snd_ctl_elem_add_enumerated_dylibloader_orig_asound +#define snd_ctl_elem_add_iec958 snd_ctl_elem_add_iec958_dylibloader_orig_asound +#define snd_ctl_elem_remove snd_ctl_elem_remove_dylibloader_orig_asound +#define snd_ctl_elem_value_sizeof snd_ctl_elem_value_sizeof_dylibloader_orig_asound +#define snd_ctl_elem_value_malloc snd_ctl_elem_value_malloc_dylibloader_orig_asound +#define snd_ctl_elem_value_free snd_ctl_elem_value_free_dylibloader_orig_asound +#define snd_ctl_elem_value_clear snd_ctl_elem_value_clear_dylibloader_orig_asound +#define snd_ctl_elem_value_copy snd_ctl_elem_value_copy_dylibloader_orig_asound +#define snd_ctl_elem_value_compare snd_ctl_elem_value_compare_dylibloader_orig_asound +#define snd_ctl_elem_value_get_id snd_ctl_elem_value_get_id_dylibloader_orig_asound +#define snd_ctl_elem_value_get_numid snd_ctl_elem_value_get_numid_dylibloader_orig_asound +#define snd_ctl_elem_value_get_interface snd_ctl_elem_value_get_interface_dylibloader_orig_asound +#define snd_ctl_elem_value_get_device snd_ctl_elem_value_get_device_dylibloader_orig_asound +#define snd_ctl_elem_value_get_subdevice snd_ctl_elem_value_get_subdevice_dylibloader_orig_asound +#define snd_ctl_elem_value_get_name snd_ctl_elem_value_get_name_dylibloader_orig_asound +#define snd_ctl_elem_value_get_index snd_ctl_elem_value_get_index_dylibloader_orig_asound +#define snd_ctl_elem_value_set_id snd_ctl_elem_value_set_id_dylibloader_orig_asound +#define snd_ctl_elem_value_set_numid snd_ctl_elem_value_set_numid_dylibloader_orig_asound +#define snd_ctl_elem_value_set_interface snd_ctl_elem_value_set_interface_dylibloader_orig_asound +#define snd_ctl_elem_value_set_device snd_ctl_elem_value_set_device_dylibloader_orig_asound +#define snd_ctl_elem_value_set_subdevice snd_ctl_elem_value_set_subdevice_dylibloader_orig_asound +#define snd_ctl_elem_value_set_name snd_ctl_elem_value_set_name_dylibloader_orig_asound +#define snd_ctl_elem_value_set_index snd_ctl_elem_value_set_index_dylibloader_orig_asound +#define snd_ctl_elem_value_get_boolean snd_ctl_elem_value_get_boolean_dylibloader_orig_asound +#define snd_ctl_elem_value_get_integer snd_ctl_elem_value_get_integer_dylibloader_orig_asound +#define snd_ctl_elem_value_get_integer64 snd_ctl_elem_value_get_integer64_dylibloader_orig_asound +#define snd_ctl_elem_value_get_enumerated snd_ctl_elem_value_get_enumerated_dylibloader_orig_asound +#define snd_ctl_elem_value_get_byte snd_ctl_elem_value_get_byte_dylibloader_orig_asound +#define snd_ctl_elem_value_set_boolean snd_ctl_elem_value_set_boolean_dylibloader_orig_asound +#define snd_ctl_elem_value_set_integer snd_ctl_elem_value_set_integer_dylibloader_orig_asound +#define snd_ctl_elem_value_set_integer64 snd_ctl_elem_value_set_integer64_dylibloader_orig_asound +#define snd_ctl_elem_value_set_enumerated snd_ctl_elem_value_set_enumerated_dylibloader_orig_asound +#define snd_ctl_elem_value_set_byte snd_ctl_elem_value_set_byte_dylibloader_orig_asound +#define snd_ctl_elem_set_bytes snd_ctl_elem_set_bytes_dylibloader_orig_asound +#define snd_ctl_elem_value_get_bytes snd_ctl_elem_value_get_bytes_dylibloader_orig_asound +#define snd_ctl_elem_value_get_iec958 snd_ctl_elem_value_get_iec958_dylibloader_orig_asound +#define snd_ctl_elem_value_set_iec958 snd_ctl_elem_value_set_iec958_dylibloader_orig_asound +#define snd_tlv_parse_dB_info snd_tlv_parse_dB_info_dylibloader_orig_asound +#define snd_tlv_get_dB_range snd_tlv_get_dB_range_dylibloader_orig_asound +#define snd_tlv_convert_to_dB snd_tlv_convert_to_dB_dylibloader_orig_asound +#define snd_tlv_convert_from_dB snd_tlv_convert_from_dB_dylibloader_orig_asound +#define snd_ctl_get_dB_range snd_ctl_get_dB_range_dylibloader_orig_asound +#define snd_ctl_convert_to_dB snd_ctl_convert_to_dB_dylibloader_orig_asound +#define snd_ctl_convert_from_dB snd_ctl_convert_from_dB_dylibloader_orig_asound +#define snd_hctl_compare_fast snd_hctl_compare_fast_dylibloader_orig_asound +#define snd_hctl_open snd_hctl_open_dylibloader_orig_asound +#define snd_hctl_open_ctl snd_hctl_open_ctl_dylibloader_orig_asound +#define snd_hctl_close snd_hctl_close_dylibloader_orig_asound +#define snd_hctl_nonblock snd_hctl_nonblock_dylibloader_orig_asound +#define snd_hctl_poll_descriptors_count snd_hctl_poll_descriptors_count_dylibloader_orig_asound +#define snd_hctl_poll_descriptors snd_hctl_poll_descriptors_dylibloader_orig_asound +#define snd_hctl_poll_descriptors_revents snd_hctl_poll_descriptors_revents_dylibloader_orig_asound +#define snd_hctl_get_count snd_hctl_get_count_dylibloader_orig_asound +#define snd_hctl_set_compare snd_hctl_set_compare_dylibloader_orig_asound +#define snd_hctl_first_elem snd_hctl_first_elem_dylibloader_orig_asound +#define snd_hctl_last_elem snd_hctl_last_elem_dylibloader_orig_asound +#define snd_hctl_find_elem snd_hctl_find_elem_dylibloader_orig_asound +#define snd_hctl_set_callback snd_hctl_set_callback_dylibloader_orig_asound +#define snd_hctl_set_callback_private snd_hctl_set_callback_private_dylibloader_orig_asound +#define snd_hctl_get_callback_private snd_hctl_get_callback_private_dylibloader_orig_asound +#define snd_hctl_load snd_hctl_load_dylibloader_orig_asound +#define snd_hctl_free snd_hctl_free_dylibloader_orig_asound +#define snd_hctl_handle_events snd_hctl_handle_events_dylibloader_orig_asound +#define snd_hctl_name snd_hctl_name_dylibloader_orig_asound +#define snd_hctl_wait snd_hctl_wait_dylibloader_orig_asound +#define snd_hctl_ctl snd_hctl_ctl_dylibloader_orig_asound +#define snd_hctl_elem_next snd_hctl_elem_next_dylibloader_orig_asound +#define snd_hctl_elem_prev snd_hctl_elem_prev_dylibloader_orig_asound +#define snd_hctl_elem_info snd_hctl_elem_info_dylibloader_orig_asound +#define snd_hctl_elem_read snd_hctl_elem_read_dylibloader_orig_asound +#define snd_hctl_elem_write snd_hctl_elem_write_dylibloader_orig_asound +#define snd_hctl_elem_tlv_read snd_hctl_elem_tlv_read_dylibloader_orig_asound +#define snd_hctl_elem_tlv_write snd_hctl_elem_tlv_write_dylibloader_orig_asound +#define snd_hctl_elem_tlv_command snd_hctl_elem_tlv_command_dylibloader_orig_asound +#define snd_hctl_elem_get_hctl snd_hctl_elem_get_hctl_dylibloader_orig_asound +#define snd_hctl_elem_get_id snd_hctl_elem_get_id_dylibloader_orig_asound +#define snd_hctl_elem_get_numid snd_hctl_elem_get_numid_dylibloader_orig_asound +#define snd_hctl_elem_get_interface snd_hctl_elem_get_interface_dylibloader_orig_asound +#define snd_hctl_elem_get_device snd_hctl_elem_get_device_dylibloader_orig_asound +#define snd_hctl_elem_get_subdevice snd_hctl_elem_get_subdevice_dylibloader_orig_asound +#define snd_hctl_elem_get_name snd_hctl_elem_get_name_dylibloader_orig_asound +#define snd_hctl_elem_get_index snd_hctl_elem_get_index_dylibloader_orig_asound +#define snd_hctl_elem_set_callback snd_hctl_elem_set_callback_dylibloader_orig_asound +#define snd_hctl_elem_get_callback_private snd_hctl_elem_get_callback_private_dylibloader_orig_asound +#define snd_hctl_elem_set_callback_private snd_hctl_elem_set_callback_private_dylibloader_orig_asound +#define snd_sctl_build snd_sctl_build_dylibloader_orig_asound +#define snd_sctl_free snd_sctl_free_dylibloader_orig_asound +#define snd_sctl_install snd_sctl_install_dylibloader_orig_asound +#define snd_sctl_remove snd_sctl_remove_dylibloader_orig_asound +#define snd_mixer_open snd_mixer_open_dylibloader_orig_asound +#define snd_mixer_close snd_mixer_close_dylibloader_orig_asound +#define snd_mixer_first_elem snd_mixer_first_elem_dylibloader_orig_asound +#define snd_mixer_last_elem snd_mixer_last_elem_dylibloader_orig_asound +#define snd_mixer_handle_events snd_mixer_handle_events_dylibloader_orig_asound +#define snd_mixer_attach snd_mixer_attach_dylibloader_orig_asound +#define snd_mixer_attach_hctl snd_mixer_attach_hctl_dylibloader_orig_asound +#define snd_mixer_detach snd_mixer_detach_dylibloader_orig_asound +#define snd_mixer_detach_hctl snd_mixer_detach_hctl_dylibloader_orig_asound +#define snd_mixer_get_hctl snd_mixer_get_hctl_dylibloader_orig_asound +#define snd_mixer_poll_descriptors_count snd_mixer_poll_descriptors_count_dylibloader_orig_asound +#define snd_mixer_poll_descriptors snd_mixer_poll_descriptors_dylibloader_orig_asound +#define snd_mixer_poll_descriptors_revents snd_mixer_poll_descriptors_revents_dylibloader_orig_asound +#define snd_mixer_load snd_mixer_load_dylibloader_orig_asound +#define snd_mixer_free snd_mixer_free_dylibloader_orig_asound +#define snd_mixer_wait snd_mixer_wait_dylibloader_orig_asound +#define snd_mixer_set_compare snd_mixer_set_compare_dylibloader_orig_asound +#define snd_mixer_set_callback snd_mixer_set_callback_dylibloader_orig_asound +#define snd_mixer_get_callback_private snd_mixer_get_callback_private_dylibloader_orig_asound +#define snd_mixer_set_callback_private snd_mixer_set_callback_private_dylibloader_orig_asound +#define snd_mixer_get_count snd_mixer_get_count_dylibloader_orig_asound +#define snd_mixer_class_unregister snd_mixer_class_unregister_dylibloader_orig_asound +#define snd_mixer_elem_next snd_mixer_elem_next_dylibloader_orig_asound +#define snd_mixer_elem_prev snd_mixer_elem_prev_dylibloader_orig_asound +#define snd_mixer_elem_set_callback snd_mixer_elem_set_callback_dylibloader_orig_asound +#define snd_mixer_elem_get_callback_private snd_mixer_elem_get_callback_private_dylibloader_orig_asound +#define snd_mixer_elem_set_callback_private snd_mixer_elem_set_callback_private_dylibloader_orig_asound +#define snd_mixer_elem_get_type snd_mixer_elem_get_type_dylibloader_orig_asound +#define snd_mixer_class_register snd_mixer_class_register_dylibloader_orig_asound +#define snd_mixer_elem_new snd_mixer_elem_new_dylibloader_orig_asound +#define snd_mixer_elem_add snd_mixer_elem_add_dylibloader_orig_asound +#define snd_mixer_elem_remove snd_mixer_elem_remove_dylibloader_orig_asound +#define snd_mixer_elem_free snd_mixer_elem_free_dylibloader_orig_asound +#define snd_mixer_elem_info snd_mixer_elem_info_dylibloader_orig_asound +#define snd_mixer_elem_value snd_mixer_elem_value_dylibloader_orig_asound +#define snd_mixer_elem_attach snd_mixer_elem_attach_dylibloader_orig_asound +#define snd_mixer_elem_detach snd_mixer_elem_detach_dylibloader_orig_asound +#define snd_mixer_elem_empty snd_mixer_elem_empty_dylibloader_orig_asound +#define snd_mixer_elem_get_private snd_mixer_elem_get_private_dylibloader_orig_asound +#define snd_mixer_class_sizeof snd_mixer_class_sizeof_dylibloader_orig_asound +#define snd_mixer_class_malloc snd_mixer_class_malloc_dylibloader_orig_asound +#define snd_mixer_class_free snd_mixer_class_free_dylibloader_orig_asound +#define snd_mixer_class_copy snd_mixer_class_copy_dylibloader_orig_asound +#define snd_mixer_class_get_mixer snd_mixer_class_get_mixer_dylibloader_orig_asound +#define snd_mixer_class_get_event snd_mixer_class_get_event_dylibloader_orig_asound +#define snd_mixer_class_get_private snd_mixer_class_get_private_dylibloader_orig_asound +#define snd_mixer_class_get_compare snd_mixer_class_get_compare_dylibloader_orig_asound +#define snd_mixer_class_set_event snd_mixer_class_set_event_dylibloader_orig_asound +#define snd_mixer_class_set_private snd_mixer_class_set_private_dylibloader_orig_asound +#define snd_mixer_class_set_private_free snd_mixer_class_set_private_free_dylibloader_orig_asound +#define snd_mixer_class_set_compare snd_mixer_class_set_compare_dylibloader_orig_asound +#define snd_mixer_selem_channel_name snd_mixer_selem_channel_name_dylibloader_orig_asound +#define snd_mixer_selem_register snd_mixer_selem_register_dylibloader_orig_asound +#define snd_mixer_selem_get_id snd_mixer_selem_get_id_dylibloader_orig_asound +#define snd_mixer_selem_get_name snd_mixer_selem_get_name_dylibloader_orig_asound +#define snd_mixer_selem_get_index snd_mixer_selem_get_index_dylibloader_orig_asound +#define snd_mixer_find_selem snd_mixer_find_selem_dylibloader_orig_asound +#define snd_mixer_selem_is_active snd_mixer_selem_is_active_dylibloader_orig_asound +#define snd_mixer_selem_is_playback_mono snd_mixer_selem_is_playback_mono_dylibloader_orig_asound +#define snd_mixer_selem_has_playback_channel snd_mixer_selem_has_playback_channel_dylibloader_orig_asound +#define snd_mixer_selem_is_capture_mono snd_mixer_selem_is_capture_mono_dylibloader_orig_asound +#define snd_mixer_selem_has_capture_channel snd_mixer_selem_has_capture_channel_dylibloader_orig_asound +#define snd_mixer_selem_get_capture_group snd_mixer_selem_get_capture_group_dylibloader_orig_asound +#define snd_mixer_selem_has_common_volume snd_mixer_selem_has_common_volume_dylibloader_orig_asound +#define snd_mixer_selem_has_playback_volume snd_mixer_selem_has_playback_volume_dylibloader_orig_asound +#define snd_mixer_selem_has_playback_volume_joined snd_mixer_selem_has_playback_volume_joined_dylibloader_orig_asound +#define snd_mixer_selem_has_capture_volume snd_mixer_selem_has_capture_volume_dylibloader_orig_asound +#define snd_mixer_selem_has_capture_volume_joined snd_mixer_selem_has_capture_volume_joined_dylibloader_orig_asound +#define snd_mixer_selem_has_common_switch snd_mixer_selem_has_common_switch_dylibloader_orig_asound +#define snd_mixer_selem_has_playback_switch snd_mixer_selem_has_playback_switch_dylibloader_orig_asound +#define snd_mixer_selem_has_playback_switch_joined snd_mixer_selem_has_playback_switch_joined_dylibloader_orig_asound +#define snd_mixer_selem_has_capture_switch snd_mixer_selem_has_capture_switch_dylibloader_orig_asound +#define snd_mixer_selem_has_capture_switch_joined snd_mixer_selem_has_capture_switch_joined_dylibloader_orig_asound +#define snd_mixer_selem_has_capture_switch_exclusive snd_mixer_selem_has_capture_switch_exclusive_dylibloader_orig_asound +#define snd_mixer_selem_ask_playback_vol_dB snd_mixer_selem_ask_playback_vol_dB_dylibloader_orig_asound +#define snd_mixer_selem_ask_capture_vol_dB snd_mixer_selem_ask_capture_vol_dB_dylibloader_orig_asound +#define snd_mixer_selem_ask_playback_dB_vol snd_mixer_selem_ask_playback_dB_vol_dylibloader_orig_asound +#define snd_mixer_selem_ask_capture_dB_vol snd_mixer_selem_ask_capture_dB_vol_dylibloader_orig_asound +#define snd_mixer_selem_get_playback_volume snd_mixer_selem_get_playback_volume_dylibloader_orig_asound +#define snd_mixer_selem_get_capture_volume snd_mixer_selem_get_capture_volume_dylibloader_orig_asound +#define snd_mixer_selem_get_playback_dB snd_mixer_selem_get_playback_dB_dylibloader_orig_asound +#define snd_mixer_selem_get_capture_dB snd_mixer_selem_get_capture_dB_dylibloader_orig_asound +#define snd_mixer_selem_get_playback_switch snd_mixer_selem_get_playback_switch_dylibloader_orig_asound +#define snd_mixer_selem_get_capture_switch snd_mixer_selem_get_capture_switch_dylibloader_orig_asound +#define snd_mixer_selem_set_playback_volume snd_mixer_selem_set_playback_volume_dylibloader_orig_asound +#define snd_mixer_selem_set_capture_volume snd_mixer_selem_set_capture_volume_dylibloader_orig_asound +#define snd_mixer_selem_set_playback_dB snd_mixer_selem_set_playback_dB_dylibloader_orig_asound +#define snd_mixer_selem_set_capture_dB snd_mixer_selem_set_capture_dB_dylibloader_orig_asound +#define snd_mixer_selem_set_playback_volume_all snd_mixer_selem_set_playback_volume_all_dylibloader_orig_asound +#define snd_mixer_selem_set_capture_volume_all snd_mixer_selem_set_capture_volume_all_dylibloader_orig_asound +#define snd_mixer_selem_set_playback_dB_all snd_mixer_selem_set_playback_dB_all_dylibloader_orig_asound +#define snd_mixer_selem_set_capture_dB_all snd_mixer_selem_set_capture_dB_all_dylibloader_orig_asound +#define snd_mixer_selem_set_playback_switch snd_mixer_selem_set_playback_switch_dylibloader_orig_asound +#define snd_mixer_selem_set_capture_switch snd_mixer_selem_set_capture_switch_dylibloader_orig_asound +#define snd_mixer_selem_set_playback_switch_all snd_mixer_selem_set_playback_switch_all_dylibloader_orig_asound +#define snd_mixer_selem_set_capture_switch_all snd_mixer_selem_set_capture_switch_all_dylibloader_orig_asound +#define snd_mixer_selem_get_playback_volume_range snd_mixer_selem_get_playback_volume_range_dylibloader_orig_asound +#define snd_mixer_selem_get_playback_dB_range snd_mixer_selem_get_playback_dB_range_dylibloader_orig_asound +#define snd_mixer_selem_set_playback_volume_range snd_mixer_selem_set_playback_volume_range_dylibloader_orig_asound +#define snd_mixer_selem_get_capture_volume_range snd_mixer_selem_get_capture_volume_range_dylibloader_orig_asound +#define snd_mixer_selem_get_capture_dB_range snd_mixer_selem_get_capture_dB_range_dylibloader_orig_asound +#define snd_mixer_selem_set_capture_volume_range snd_mixer_selem_set_capture_volume_range_dylibloader_orig_asound +#define snd_mixer_selem_is_enumerated snd_mixer_selem_is_enumerated_dylibloader_orig_asound +#define snd_mixer_selem_is_enum_playback snd_mixer_selem_is_enum_playback_dylibloader_orig_asound +#define snd_mixer_selem_is_enum_capture snd_mixer_selem_is_enum_capture_dylibloader_orig_asound +#define snd_mixer_selem_get_enum_items snd_mixer_selem_get_enum_items_dylibloader_orig_asound +#define snd_mixer_selem_get_enum_item_name snd_mixer_selem_get_enum_item_name_dylibloader_orig_asound +#define snd_mixer_selem_get_enum_item snd_mixer_selem_get_enum_item_dylibloader_orig_asound +#define snd_mixer_selem_set_enum_item snd_mixer_selem_set_enum_item_dylibloader_orig_asound +#define snd_mixer_selem_id_sizeof snd_mixer_selem_id_sizeof_dylibloader_orig_asound +#define snd_mixer_selem_id_malloc snd_mixer_selem_id_malloc_dylibloader_orig_asound +#define snd_mixer_selem_id_free snd_mixer_selem_id_free_dylibloader_orig_asound +#define snd_mixer_selem_id_copy snd_mixer_selem_id_copy_dylibloader_orig_asound +#define snd_mixer_selem_id_get_name snd_mixer_selem_id_get_name_dylibloader_orig_asound +#define snd_mixer_selem_id_get_index snd_mixer_selem_id_get_index_dylibloader_orig_asound +#define snd_mixer_selem_id_set_name snd_mixer_selem_id_set_name_dylibloader_orig_asound +#define snd_mixer_selem_id_set_index snd_mixer_selem_id_set_index_dylibloader_orig_asound +#define snd_mixer_selem_id_parse snd_mixer_selem_id_parse_dylibloader_orig_asound +#define snd_seq_open snd_seq_open_dylibloader_orig_asound +#define snd_seq_open_lconf snd_seq_open_lconf_dylibloader_orig_asound +#define snd_seq_name snd_seq_name_dylibloader_orig_asound +#define snd_seq_type snd_seq_type_dylibloader_orig_asound +#define snd_seq_close snd_seq_close_dylibloader_orig_asound +#define snd_seq_poll_descriptors_count snd_seq_poll_descriptors_count_dylibloader_orig_asound +#define snd_seq_poll_descriptors snd_seq_poll_descriptors_dylibloader_orig_asound +#define snd_seq_poll_descriptors_revents snd_seq_poll_descriptors_revents_dylibloader_orig_asound +#define snd_seq_nonblock snd_seq_nonblock_dylibloader_orig_asound +#define snd_seq_client_id snd_seq_client_id_dylibloader_orig_asound +#define snd_seq_get_output_buffer_size snd_seq_get_output_buffer_size_dylibloader_orig_asound +#define snd_seq_get_input_buffer_size snd_seq_get_input_buffer_size_dylibloader_orig_asound +#define snd_seq_set_output_buffer_size snd_seq_set_output_buffer_size_dylibloader_orig_asound +#define snd_seq_set_input_buffer_size snd_seq_set_input_buffer_size_dylibloader_orig_asound +#define snd_seq_system_info_sizeof snd_seq_system_info_sizeof_dylibloader_orig_asound +#define snd_seq_system_info_malloc snd_seq_system_info_malloc_dylibloader_orig_asound +#define snd_seq_system_info_free snd_seq_system_info_free_dylibloader_orig_asound +#define snd_seq_system_info_copy snd_seq_system_info_copy_dylibloader_orig_asound +#define snd_seq_system_info_get_queues snd_seq_system_info_get_queues_dylibloader_orig_asound +#define snd_seq_system_info_get_clients snd_seq_system_info_get_clients_dylibloader_orig_asound +#define snd_seq_system_info_get_ports snd_seq_system_info_get_ports_dylibloader_orig_asound +#define snd_seq_system_info_get_channels snd_seq_system_info_get_channels_dylibloader_orig_asound +#define snd_seq_system_info_get_cur_clients snd_seq_system_info_get_cur_clients_dylibloader_orig_asound +#define snd_seq_system_info_get_cur_queues snd_seq_system_info_get_cur_queues_dylibloader_orig_asound +#define snd_seq_system_info snd_seq_system_info_dylibloader_orig_asound +#define snd_seq_client_info_sizeof snd_seq_client_info_sizeof_dylibloader_orig_asound +#define snd_seq_client_info_malloc snd_seq_client_info_malloc_dylibloader_orig_asound +#define snd_seq_client_info_free snd_seq_client_info_free_dylibloader_orig_asound +#define snd_seq_client_info_copy snd_seq_client_info_copy_dylibloader_orig_asound +#define snd_seq_client_info_get_client snd_seq_client_info_get_client_dylibloader_orig_asound +#define snd_seq_client_info_get_type snd_seq_client_info_get_type_dylibloader_orig_asound +#define snd_seq_client_info_get_name snd_seq_client_info_get_name_dylibloader_orig_asound +#define snd_seq_client_info_get_broadcast_filter snd_seq_client_info_get_broadcast_filter_dylibloader_orig_asound +#define snd_seq_client_info_get_error_bounce snd_seq_client_info_get_error_bounce_dylibloader_orig_asound +#define snd_seq_client_info_get_card snd_seq_client_info_get_card_dylibloader_orig_asound +#define snd_seq_client_info_get_pid snd_seq_client_info_get_pid_dylibloader_orig_asound +#define snd_seq_client_info_get_event_filter snd_seq_client_info_get_event_filter_dylibloader_orig_asound +#define snd_seq_client_info_get_num_ports snd_seq_client_info_get_num_ports_dylibloader_orig_asound +#define snd_seq_client_info_get_event_lost snd_seq_client_info_get_event_lost_dylibloader_orig_asound +#define snd_seq_client_info_set_client snd_seq_client_info_set_client_dylibloader_orig_asound +#define snd_seq_client_info_set_name snd_seq_client_info_set_name_dylibloader_orig_asound +#define snd_seq_client_info_set_broadcast_filter snd_seq_client_info_set_broadcast_filter_dylibloader_orig_asound +#define snd_seq_client_info_set_error_bounce snd_seq_client_info_set_error_bounce_dylibloader_orig_asound +#define snd_seq_client_info_set_event_filter snd_seq_client_info_set_event_filter_dylibloader_orig_asound +#define snd_seq_client_info_event_filter_clear snd_seq_client_info_event_filter_clear_dylibloader_orig_asound +#define snd_seq_client_info_event_filter_add snd_seq_client_info_event_filter_add_dylibloader_orig_asound +#define snd_seq_client_info_event_filter_del snd_seq_client_info_event_filter_del_dylibloader_orig_asound +#define snd_seq_client_info_event_filter_check snd_seq_client_info_event_filter_check_dylibloader_orig_asound +#define snd_seq_get_client_info snd_seq_get_client_info_dylibloader_orig_asound +#define snd_seq_get_any_client_info snd_seq_get_any_client_info_dylibloader_orig_asound +#define snd_seq_set_client_info snd_seq_set_client_info_dylibloader_orig_asound +#define snd_seq_query_next_client snd_seq_query_next_client_dylibloader_orig_asound +#define snd_seq_client_pool_sizeof snd_seq_client_pool_sizeof_dylibloader_orig_asound +#define snd_seq_client_pool_malloc snd_seq_client_pool_malloc_dylibloader_orig_asound +#define snd_seq_client_pool_free snd_seq_client_pool_free_dylibloader_orig_asound +#define snd_seq_client_pool_copy snd_seq_client_pool_copy_dylibloader_orig_asound +#define snd_seq_client_pool_get_client snd_seq_client_pool_get_client_dylibloader_orig_asound +#define snd_seq_client_pool_get_output_pool snd_seq_client_pool_get_output_pool_dylibloader_orig_asound +#define snd_seq_client_pool_get_input_pool snd_seq_client_pool_get_input_pool_dylibloader_orig_asound +#define snd_seq_client_pool_get_output_room snd_seq_client_pool_get_output_room_dylibloader_orig_asound +#define snd_seq_client_pool_get_output_free snd_seq_client_pool_get_output_free_dylibloader_orig_asound +#define snd_seq_client_pool_get_input_free snd_seq_client_pool_get_input_free_dylibloader_orig_asound +#define snd_seq_client_pool_set_output_pool snd_seq_client_pool_set_output_pool_dylibloader_orig_asound +#define snd_seq_client_pool_set_input_pool snd_seq_client_pool_set_input_pool_dylibloader_orig_asound +#define snd_seq_client_pool_set_output_room snd_seq_client_pool_set_output_room_dylibloader_orig_asound +#define snd_seq_get_client_pool snd_seq_get_client_pool_dylibloader_orig_asound +#define snd_seq_set_client_pool snd_seq_set_client_pool_dylibloader_orig_asound +#define snd_seq_port_info_sizeof snd_seq_port_info_sizeof_dylibloader_orig_asound +#define snd_seq_port_info_malloc snd_seq_port_info_malloc_dylibloader_orig_asound +#define snd_seq_port_info_free snd_seq_port_info_free_dylibloader_orig_asound +#define snd_seq_port_info_copy snd_seq_port_info_copy_dylibloader_orig_asound +#define snd_seq_port_info_get_client snd_seq_port_info_get_client_dylibloader_orig_asound +#define snd_seq_port_info_get_port snd_seq_port_info_get_port_dylibloader_orig_asound +#define snd_seq_port_info_get_addr snd_seq_port_info_get_addr_dylibloader_orig_asound +#define snd_seq_port_info_get_name snd_seq_port_info_get_name_dylibloader_orig_asound +#define snd_seq_port_info_get_capability snd_seq_port_info_get_capability_dylibloader_orig_asound +#define snd_seq_port_info_get_type snd_seq_port_info_get_type_dylibloader_orig_asound +#define snd_seq_port_info_get_midi_channels snd_seq_port_info_get_midi_channels_dylibloader_orig_asound +#define snd_seq_port_info_get_midi_voices snd_seq_port_info_get_midi_voices_dylibloader_orig_asound +#define snd_seq_port_info_get_synth_voices snd_seq_port_info_get_synth_voices_dylibloader_orig_asound +#define snd_seq_port_info_get_read_use snd_seq_port_info_get_read_use_dylibloader_orig_asound +#define snd_seq_port_info_get_write_use snd_seq_port_info_get_write_use_dylibloader_orig_asound +#define snd_seq_port_info_get_port_specified snd_seq_port_info_get_port_specified_dylibloader_orig_asound +#define snd_seq_port_info_get_timestamping snd_seq_port_info_get_timestamping_dylibloader_orig_asound +#define snd_seq_port_info_get_timestamp_real snd_seq_port_info_get_timestamp_real_dylibloader_orig_asound +#define snd_seq_port_info_get_timestamp_queue snd_seq_port_info_get_timestamp_queue_dylibloader_orig_asound +#define snd_seq_port_info_set_client snd_seq_port_info_set_client_dylibloader_orig_asound +#define snd_seq_port_info_set_port snd_seq_port_info_set_port_dylibloader_orig_asound +#define snd_seq_port_info_set_addr snd_seq_port_info_set_addr_dylibloader_orig_asound +#define snd_seq_port_info_set_name snd_seq_port_info_set_name_dylibloader_orig_asound +#define snd_seq_port_info_set_capability snd_seq_port_info_set_capability_dylibloader_orig_asound +#define snd_seq_port_info_set_type snd_seq_port_info_set_type_dylibloader_orig_asound +#define snd_seq_port_info_set_midi_channels snd_seq_port_info_set_midi_channels_dylibloader_orig_asound +#define snd_seq_port_info_set_midi_voices snd_seq_port_info_set_midi_voices_dylibloader_orig_asound +#define snd_seq_port_info_set_synth_voices snd_seq_port_info_set_synth_voices_dylibloader_orig_asound +#define snd_seq_port_info_set_port_specified snd_seq_port_info_set_port_specified_dylibloader_orig_asound +#define snd_seq_port_info_set_timestamping snd_seq_port_info_set_timestamping_dylibloader_orig_asound +#define snd_seq_port_info_set_timestamp_real snd_seq_port_info_set_timestamp_real_dylibloader_orig_asound +#define snd_seq_port_info_set_timestamp_queue snd_seq_port_info_set_timestamp_queue_dylibloader_orig_asound +#define snd_seq_create_port snd_seq_create_port_dylibloader_orig_asound +#define snd_seq_delete_port snd_seq_delete_port_dylibloader_orig_asound +#define snd_seq_get_port_info snd_seq_get_port_info_dylibloader_orig_asound +#define snd_seq_get_any_port_info snd_seq_get_any_port_info_dylibloader_orig_asound +#define snd_seq_set_port_info snd_seq_set_port_info_dylibloader_orig_asound +#define snd_seq_query_next_port snd_seq_query_next_port_dylibloader_orig_asound +#define snd_seq_port_subscribe_sizeof snd_seq_port_subscribe_sizeof_dylibloader_orig_asound +#define snd_seq_port_subscribe_malloc snd_seq_port_subscribe_malloc_dylibloader_orig_asound +#define snd_seq_port_subscribe_free snd_seq_port_subscribe_free_dylibloader_orig_asound +#define snd_seq_port_subscribe_copy snd_seq_port_subscribe_copy_dylibloader_orig_asound +#define snd_seq_port_subscribe_get_sender snd_seq_port_subscribe_get_sender_dylibloader_orig_asound +#define snd_seq_port_subscribe_get_dest snd_seq_port_subscribe_get_dest_dylibloader_orig_asound +#define snd_seq_port_subscribe_get_queue snd_seq_port_subscribe_get_queue_dylibloader_orig_asound +#define snd_seq_port_subscribe_get_exclusive snd_seq_port_subscribe_get_exclusive_dylibloader_orig_asound +#define snd_seq_port_subscribe_get_time_update snd_seq_port_subscribe_get_time_update_dylibloader_orig_asound +#define snd_seq_port_subscribe_get_time_real snd_seq_port_subscribe_get_time_real_dylibloader_orig_asound +#define snd_seq_port_subscribe_set_sender snd_seq_port_subscribe_set_sender_dylibloader_orig_asound +#define snd_seq_port_subscribe_set_dest snd_seq_port_subscribe_set_dest_dylibloader_orig_asound +#define snd_seq_port_subscribe_set_queue snd_seq_port_subscribe_set_queue_dylibloader_orig_asound +#define snd_seq_port_subscribe_set_exclusive snd_seq_port_subscribe_set_exclusive_dylibloader_orig_asound +#define snd_seq_port_subscribe_set_time_update snd_seq_port_subscribe_set_time_update_dylibloader_orig_asound +#define snd_seq_port_subscribe_set_time_real snd_seq_port_subscribe_set_time_real_dylibloader_orig_asound +#define snd_seq_get_port_subscription snd_seq_get_port_subscription_dylibloader_orig_asound +#define snd_seq_subscribe_port snd_seq_subscribe_port_dylibloader_orig_asound +#define snd_seq_unsubscribe_port snd_seq_unsubscribe_port_dylibloader_orig_asound +#define snd_seq_query_subscribe_sizeof snd_seq_query_subscribe_sizeof_dylibloader_orig_asound +#define snd_seq_query_subscribe_malloc snd_seq_query_subscribe_malloc_dylibloader_orig_asound +#define snd_seq_query_subscribe_free snd_seq_query_subscribe_free_dylibloader_orig_asound +#define snd_seq_query_subscribe_copy snd_seq_query_subscribe_copy_dylibloader_orig_asound +#define snd_seq_query_subscribe_get_client snd_seq_query_subscribe_get_client_dylibloader_orig_asound +#define snd_seq_query_subscribe_get_port snd_seq_query_subscribe_get_port_dylibloader_orig_asound +#define snd_seq_query_subscribe_get_root snd_seq_query_subscribe_get_root_dylibloader_orig_asound +#define snd_seq_query_subscribe_get_type snd_seq_query_subscribe_get_type_dylibloader_orig_asound +#define snd_seq_query_subscribe_get_index snd_seq_query_subscribe_get_index_dylibloader_orig_asound +#define snd_seq_query_subscribe_get_num_subs snd_seq_query_subscribe_get_num_subs_dylibloader_orig_asound +#define snd_seq_query_subscribe_get_addr snd_seq_query_subscribe_get_addr_dylibloader_orig_asound +#define snd_seq_query_subscribe_get_queue snd_seq_query_subscribe_get_queue_dylibloader_orig_asound +#define snd_seq_query_subscribe_get_exclusive snd_seq_query_subscribe_get_exclusive_dylibloader_orig_asound +#define snd_seq_query_subscribe_get_time_update snd_seq_query_subscribe_get_time_update_dylibloader_orig_asound +#define snd_seq_query_subscribe_get_time_real snd_seq_query_subscribe_get_time_real_dylibloader_orig_asound +#define snd_seq_query_subscribe_set_client snd_seq_query_subscribe_set_client_dylibloader_orig_asound +#define snd_seq_query_subscribe_set_port snd_seq_query_subscribe_set_port_dylibloader_orig_asound +#define snd_seq_query_subscribe_set_root snd_seq_query_subscribe_set_root_dylibloader_orig_asound +#define snd_seq_query_subscribe_set_type snd_seq_query_subscribe_set_type_dylibloader_orig_asound +#define snd_seq_query_subscribe_set_index snd_seq_query_subscribe_set_index_dylibloader_orig_asound +#define snd_seq_query_port_subscribers snd_seq_query_port_subscribers_dylibloader_orig_asound +#define snd_seq_queue_info_sizeof snd_seq_queue_info_sizeof_dylibloader_orig_asound +#define snd_seq_queue_info_malloc snd_seq_queue_info_malloc_dylibloader_orig_asound +#define snd_seq_queue_info_free snd_seq_queue_info_free_dylibloader_orig_asound +#define snd_seq_queue_info_copy snd_seq_queue_info_copy_dylibloader_orig_asound +#define snd_seq_queue_info_get_queue snd_seq_queue_info_get_queue_dylibloader_orig_asound +#define snd_seq_queue_info_get_name snd_seq_queue_info_get_name_dylibloader_orig_asound +#define snd_seq_queue_info_get_owner snd_seq_queue_info_get_owner_dylibloader_orig_asound +#define snd_seq_queue_info_get_locked snd_seq_queue_info_get_locked_dylibloader_orig_asound +#define snd_seq_queue_info_get_flags snd_seq_queue_info_get_flags_dylibloader_orig_asound +#define snd_seq_queue_info_set_name snd_seq_queue_info_set_name_dylibloader_orig_asound +#define snd_seq_queue_info_set_owner snd_seq_queue_info_set_owner_dylibloader_orig_asound +#define snd_seq_queue_info_set_locked snd_seq_queue_info_set_locked_dylibloader_orig_asound +#define snd_seq_queue_info_set_flags snd_seq_queue_info_set_flags_dylibloader_orig_asound +#define snd_seq_create_queue snd_seq_create_queue_dylibloader_orig_asound +#define snd_seq_alloc_named_queue snd_seq_alloc_named_queue_dylibloader_orig_asound +#define snd_seq_alloc_queue snd_seq_alloc_queue_dylibloader_orig_asound +#define snd_seq_free_queue snd_seq_free_queue_dylibloader_orig_asound +#define snd_seq_get_queue_info snd_seq_get_queue_info_dylibloader_orig_asound +#define snd_seq_set_queue_info snd_seq_set_queue_info_dylibloader_orig_asound +#define snd_seq_query_named_queue snd_seq_query_named_queue_dylibloader_orig_asound +#define snd_seq_get_queue_usage snd_seq_get_queue_usage_dylibloader_orig_asound +#define snd_seq_set_queue_usage snd_seq_set_queue_usage_dylibloader_orig_asound +#define snd_seq_queue_status_sizeof snd_seq_queue_status_sizeof_dylibloader_orig_asound +#define snd_seq_queue_status_malloc snd_seq_queue_status_malloc_dylibloader_orig_asound +#define snd_seq_queue_status_free snd_seq_queue_status_free_dylibloader_orig_asound +#define snd_seq_queue_status_copy snd_seq_queue_status_copy_dylibloader_orig_asound +#define snd_seq_queue_status_get_queue snd_seq_queue_status_get_queue_dylibloader_orig_asound +#define snd_seq_queue_status_get_events snd_seq_queue_status_get_events_dylibloader_orig_asound +#define snd_seq_queue_status_get_tick_time snd_seq_queue_status_get_tick_time_dylibloader_orig_asound +#define snd_seq_queue_status_get_real_time snd_seq_queue_status_get_real_time_dylibloader_orig_asound +#define snd_seq_queue_status_get_status snd_seq_queue_status_get_status_dylibloader_orig_asound +#define snd_seq_get_queue_status snd_seq_get_queue_status_dylibloader_orig_asound +#define snd_seq_queue_tempo_sizeof snd_seq_queue_tempo_sizeof_dylibloader_orig_asound +#define snd_seq_queue_tempo_malloc snd_seq_queue_tempo_malloc_dylibloader_orig_asound +#define snd_seq_queue_tempo_free snd_seq_queue_tempo_free_dylibloader_orig_asound +#define snd_seq_queue_tempo_copy snd_seq_queue_tempo_copy_dylibloader_orig_asound +#define snd_seq_queue_tempo_get_queue snd_seq_queue_tempo_get_queue_dylibloader_orig_asound +#define snd_seq_queue_tempo_get_tempo snd_seq_queue_tempo_get_tempo_dylibloader_orig_asound +#define snd_seq_queue_tempo_get_ppq snd_seq_queue_tempo_get_ppq_dylibloader_orig_asound +#define snd_seq_queue_tempo_get_skew snd_seq_queue_tempo_get_skew_dylibloader_orig_asound +#define snd_seq_queue_tempo_get_skew_base snd_seq_queue_tempo_get_skew_base_dylibloader_orig_asound +#define snd_seq_queue_tempo_set_tempo snd_seq_queue_tempo_set_tempo_dylibloader_orig_asound +#define snd_seq_queue_tempo_set_ppq snd_seq_queue_tempo_set_ppq_dylibloader_orig_asound +#define snd_seq_queue_tempo_set_skew snd_seq_queue_tempo_set_skew_dylibloader_orig_asound +#define snd_seq_queue_tempo_set_skew_base snd_seq_queue_tempo_set_skew_base_dylibloader_orig_asound +#define snd_seq_get_queue_tempo snd_seq_get_queue_tempo_dylibloader_orig_asound +#define snd_seq_set_queue_tempo snd_seq_set_queue_tempo_dylibloader_orig_asound +#define snd_seq_queue_timer_sizeof snd_seq_queue_timer_sizeof_dylibloader_orig_asound +#define snd_seq_queue_timer_malloc snd_seq_queue_timer_malloc_dylibloader_orig_asound +#define snd_seq_queue_timer_free snd_seq_queue_timer_free_dylibloader_orig_asound +#define snd_seq_queue_timer_copy snd_seq_queue_timer_copy_dylibloader_orig_asound +#define snd_seq_queue_timer_get_queue snd_seq_queue_timer_get_queue_dylibloader_orig_asound +#define snd_seq_queue_timer_get_type snd_seq_queue_timer_get_type_dylibloader_orig_asound +#define snd_seq_queue_timer_get_id snd_seq_queue_timer_get_id_dylibloader_orig_asound +#define snd_seq_queue_timer_get_resolution snd_seq_queue_timer_get_resolution_dylibloader_orig_asound +#define snd_seq_queue_timer_set_type snd_seq_queue_timer_set_type_dylibloader_orig_asound +#define snd_seq_queue_timer_set_id snd_seq_queue_timer_set_id_dylibloader_orig_asound +#define snd_seq_queue_timer_set_resolution snd_seq_queue_timer_set_resolution_dylibloader_orig_asound +#define snd_seq_get_queue_timer snd_seq_get_queue_timer_dylibloader_orig_asound +#define snd_seq_set_queue_timer snd_seq_set_queue_timer_dylibloader_orig_asound +#define snd_seq_free_event snd_seq_free_event_dylibloader_orig_asound +#define snd_seq_event_length snd_seq_event_length_dylibloader_orig_asound +#define snd_seq_event_output snd_seq_event_output_dylibloader_orig_asound +#define snd_seq_event_output_buffer snd_seq_event_output_buffer_dylibloader_orig_asound +#define snd_seq_event_output_direct snd_seq_event_output_direct_dylibloader_orig_asound +#define snd_seq_event_input snd_seq_event_input_dylibloader_orig_asound +#define snd_seq_event_input_pending snd_seq_event_input_pending_dylibloader_orig_asound +#define snd_seq_drain_output snd_seq_drain_output_dylibloader_orig_asound +#define snd_seq_event_output_pending snd_seq_event_output_pending_dylibloader_orig_asound +#define snd_seq_extract_output snd_seq_extract_output_dylibloader_orig_asound +#define snd_seq_drop_output snd_seq_drop_output_dylibloader_orig_asound +#define snd_seq_drop_output_buffer snd_seq_drop_output_buffer_dylibloader_orig_asound +#define snd_seq_drop_input snd_seq_drop_input_dylibloader_orig_asound +#define snd_seq_drop_input_buffer snd_seq_drop_input_buffer_dylibloader_orig_asound +#define snd_seq_remove_events_sizeof snd_seq_remove_events_sizeof_dylibloader_orig_asound +#define snd_seq_remove_events_malloc snd_seq_remove_events_malloc_dylibloader_orig_asound +#define snd_seq_remove_events_free snd_seq_remove_events_free_dylibloader_orig_asound +#define snd_seq_remove_events_copy snd_seq_remove_events_copy_dylibloader_orig_asound +#define snd_seq_remove_events_get_condition snd_seq_remove_events_get_condition_dylibloader_orig_asound +#define snd_seq_remove_events_get_queue snd_seq_remove_events_get_queue_dylibloader_orig_asound +#define snd_seq_remove_events_get_time snd_seq_remove_events_get_time_dylibloader_orig_asound +#define snd_seq_remove_events_get_dest snd_seq_remove_events_get_dest_dylibloader_orig_asound +#define snd_seq_remove_events_get_channel snd_seq_remove_events_get_channel_dylibloader_orig_asound +#define snd_seq_remove_events_get_event_type snd_seq_remove_events_get_event_type_dylibloader_orig_asound +#define snd_seq_remove_events_get_tag snd_seq_remove_events_get_tag_dylibloader_orig_asound +#define snd_seq_remove_events_set_condition snd_seq_remove_events_set_condition_dylibloader_orig_asound +#define snd_seq_remove_events_set_queue snd_seq_remove_events_set_queue_dylibloader_orig_asound +#define snd_seq_remove_events_set_time snd_seq_remove_events_set_time_dylibloader_orig_asound +#define snd_seq_remove_events_set_dest snd_seq_remove_events_set_dest_dylibloader_orig_asound +#define snd_seq_remove_events_set_channel snd_seq_remove_events_set_channel_dylibloader_orig_asound +#define snd_seq_remove_events_set_event_type snd_seq_remove_events_set_event_type_dylibloader_orig_asound +#define snd_seq_remove_events_set_tag snd_seq_remove_events_set_tag_dylibloader_orig_asound +#define snd_seq_remove_events snd_seq_remove_events_dylibloader_orig_asound +#define snd_seq_set_bit snd_seq_set_bit_dylibloader_orig_asound +#define snd_seq_unset_bit snd_seq_unset_bit_dylibloader_orig_asound +#define snd_seq_change_bit snd_seq_change_bit_dylibloader_orig_asound +#define snd_seq_get_bit snd_seq_get_bit_dylibloader_orig_asound +#define snd_seq_control_queue snd_seq_control_queue_dylibloader_orig_asound +#define snd_seq_create_simple_port snd_seq_create_simple_port_dylibloader_orig_asound +#define snd_seq_delete_simple_port snd_seq_delete_simple_port_dylibloader_orig_asound +#define snd_seq_connect_from snd_seq_connect_from_dylibloader_orig_asound +#define snd_seq_connect_to snd_seq_connect_to_dylibloader_orig_asound +#define snd_seq_disconnect_from snd_seq_disconnect_from_dylibloader_orig_asound +#define snd_seq_disconnect_to snd_seq_disconnect_to_dylibloader_orig_asound +#define snd_seq_set_client_name snd_seq_set_client_name_dylibloader_orig_asound +#define snd_seq_set_client_event_filter snd_seq_set_client_event_filter_dylibloader_orig_asound +#define snd_seq_set_client_pool_output snd_seq_set_client_pool_output_dylibloader_orig_asound +#define snd_seq_set_client_pool_output_room snd_seq_set_client_pool_output_room_dylibloader_orig_asound +#define snd_seq_set_client_pool_input snd_seq_set_client_pool_input_dylibloader_orig_asound +#define snd_seq_sync_output_queue snd_seq_sync_output_queue_dylibloader_orig_asound +#define snd_seq_parse_address snd_seq_parse_address_dylibloader_orig_asound +#define snd_seq_reset_pool_output snd_seq_reset_pool_output_dylibloader_orig_asound +#define snd_seq_reset_pool_input snd_seq_reset_pool_input_dylibloader_orig_asound +#define snd_midi_event_new snd_midi_event_new_dylibloader_orig_asound +#define snd_midi_event_resize_buffer snd_midi_event_resize_buffer_dylibloader_orig_asound +#define snd_midi_event_free snd_midi_event_free_dylibloader_orig_asound +#define snd_midi_event_init snd_midi_event_init_dylibloader_orig_asound +#define snd_midi_event_reset_encode snd_midi_event_reset_encode_dylibloader_orig_asound +#define snd_midi_event_reset_decode snd_midi_event_reset_decode_dylibloader_orig_asound +#define snd_midi_event_no_status snd_midi_event_no_status_dylibloader_orig_asound +#define snd_midi_event_encode snd_midi_event_encode_dylibloader_orig_asound +#define snd_midi_event_encode_byte snd_midi_event_encode_byte_dylibloader_orig_asound +#define snd_midi_event_decode snd_midi_event_decode_dylibloader_orig_asound +#include <alsa/asoundlib.h> +#undef snd_asoundlib_version +#undef snd_dlpath +#undef snd_dlopen +#undef snd_dlsym +#undef snd_dlclose +#undef snd_async_add_handler +#undef snd_async_del_handler +#undef snd_async_handler_get_fd +#undef snd_async_handler_get_signo +#undef snd_async_handler_get_callback_private +#undef snd_shm_area_create +#undef snd_shm_area_share +#undef snd_shm_area_destroy +#undef snd_user_file +#undef snd_input_stdio_open +#undef snd_input_stdio_attach +#undef snd_input_buffer_open +#undef snd_input_close +#undef snd_input_scanf +#undef snd_input_gets +#undef snd_input_getc +#undef snd_input_ungetc +#undef snd_output_stdio_open +#undef snd_output_stdio_attach +#undef snd_output_buffer_open +#undef snd_output_buffer_string +#undef snd_output_close +#undef snd_output_printf +#undef snd_output_vprintf +#undef snd_output_puts +#undef snd_output_putc +#undef snd_output_flush +#undef snd_strerror +#undef snd_lib_error_set_handler +#undef snd_lib_error_set_local +#undef snd_config_topdir +#undef snd_config_top +#undef snd_config_load +#undef snd_config_load_override +#undef snd_config_save +#undef snd_config_update +#undef snd_config_update_r +#undef snd_config_update_free +#undef snd_config_update_free_global +#undef snd_config_update_ref +#undef snd_config_ref +#undef snd_config_unref +#undef snd_config_search +#undef snd_config_searchv +#undef snd_config_search_definition +#undef snd_config_expand +#undef snd_config_evaluate +#undef snd_config_add +#undef snd_config_add_before +#undef snd_config_add_after +#undef snd_config_remove +#undef snd_config_delete +#undef snd_config_delete_compound_members +#undef snd_config_copy +#undef snd_config_make +#undef snd_config_make_integer +#undef snd_config_make_integer64 +#undef snd_config_make_real +#undef snd_config_make_string +#undef snd_config_make_pointer +#undef snd_config_make_compound +#undef snd_config_imake_integer +#undef snd_config_imake_integer64 +#undef snd_config_imake_real +#undef snd_config_imake_string +#undef snd_config_imake_safe_string +#undef snd_config_imake_pointer +#undef snd_config_get_type +#undef snd_config_is_array +#undef snd_config_set_id +#undef snd_config_set_integer +#undef snd_config_set_integer64 +#undef snd_config_set_real +#undef snd_config_set_string +#undef snd_config_set_ascii +#undef snd_config_set_pointer +#undef snd_config_get_id +#undef snd_config_get_integer +#undef snd_config_get_integer64 +#undef snd_config_get_real +#undef snd_config_get_ireal +#undef snd_config_get_string +#undef snd_config_get_ascii +#undef snd_config_get_pointer +#undef snd_config_test_id +#undef snd_config_iterator_first +#undef snd_config_iterator_next +#undef snd_config_iterator_end +#undef snd_config_iterator_entry +#undef snd_config_get_bool_ascii +#undef snd_config_get_bool +#undef snd_config_get_ctl_iface_ascii +#undef snd_config_get_ctl_iface +#undef snd_names_list +#undef snd_names_list_free +#undef snd_pcm_open +#undef snd_pcm_open_lconf +#undef snd_pcm_open_fallback +#undef snd_pcm_close +#undef snd_pcm_name +#undef snd_pcm_type +#undef snd_pcm_stream +#undef snd_pcm_poll_descriptors_count +#undef snd_pcm_poll_descriptors +#undef snd_pcm_poll_descriptors_revents +#undef snd_pcm_nonblock +#undef snd_async_add_pcm_handler +#undef snd_async_handler_get_pcm +#undef snd_pcm_info +#undef snd_pcm_hw_params_current +#undef snd_pcm_hw_params +#undef snd_pcm_hw_free +#undef snd_pcm_sw_params_current +#undef snd_pcm_sw_params +#undef snd_pcm_prepare +#undef snd_pcm_reset +#undef snd_pcm_status +#undef snd_pcm_start +#undef snd_pcm_drop +#undef snd_pcm_drain +#undef snd_pcm_pause +#undef snd_pcm_state +#undef snd_pcm_hwsync +#undef snd_pcm_delay +#undef snd_pcm_resume +#undef snd_pcm_htimestamp +#undef snd_pcm_avail +#undef snd_pcm_avail_update +#undef snd_pcm_avail_delay +#undef snd_pcm_rewindable +#undef snd_pcm_rewind +#undef snd_pcm_forwardable +#undef snd_pcm_forward +#undef snd_pcm_writei +#undef snd_pcm_readi +#undef snd_pcm_writen +#undef snd_pcm_readn +#undef snd_pcm_wait +#undef snd_pcm_link +#undef snd_pcm_unlink +#undef snd_pcm_query_chmaps +#undef snd_pcm_query_chmaps_from_hw +#undef snd_pcm_free_chmaps +#undef snd_pcm_get_chmap +#undef snd_pcm_set_chmap +#undef snd_pcm_chmap_type_name +#undef snd_pcm_chmap_name +#undef snd_pcm_chmap_long_name +#undef snd_pcm_chmap_print +#undef snd_pcm_chmap_from_string +#undef snd_pcm_chmap_parse_string +#undef snd_pcm_recover +#undef snd_pcm_set_params +#undef snd_pcm_get_params +#undef snd_pcm_info_sizeof +#undef snd_pcm_info_malloc +#undef snd_pcm_info_free +#undef snd_pcm_info_copy +#undef snd_pcm_info_get_device +#undef snd_pcm_info_get_subdevice +#undef snd_pcm_info_get_stream +#undef snd_pcm_info_get_card +#undef snd_pcm_info_get_id +#undef snd_pcm_info_get_name +#undef snd_pcm_info_get_subdevice_name +#undef snd_pcm_info_get_class +#undef snd_pcm_info_get_subclass +#undef snd_pcm_info_get_subdevices_count +#undef snd_pcm_info_get_subdevices_avail +#undef snd_pcm_info_get_sync +#undef snd_pcm_info_set_device +#undef snd_pcm_info_set_subdevice +#undef snd_pcm_info_set_stream +#undef snd_pcm_hw_params_any +#undef snd_pcm_hw_params_can_mmap_sample_resolution +#undef snd_pcm_hw_params_is_double +#undef snd_pcm_hw_params_is_batch +#undef snd_pcm_hw_params_is_block_transfer +#undef snd_pcm_hw_params_is_monotonic +#undef snd_pcm_hw_params_can_overrange +#undef snd_pcm_hw_params_can_pause +#undef snd_pcm_hw_params_can_resume +#undef snd_pcm_hw_params_is_half_duplex +#undef snd_pcm_hw_params_is_joint_duplex +#undef snd_pcm_hw_params_can_sync_start +#undef snd_pcm_hw_params_can_disable_period_wakeup +#undef snd_pcm_hw_params_supports_audio_wallclock_ts +#undef snd_pcm_hw_params_supports_audio_ts_type +#undef snd_pcm_hw_params_get_rate_numden +#undef snd_pcm_hw_params_get_sbits +#undef snd_pcm_hw_params_get_fifo_size +#undef snd_pcm_hw_params_sizeof +#undef snd_pcm_hw_params_malloc +#undef snd_pcm_hw_params_free +#undef snd_pcm_hw_params_copy +#undef snd_pcm_hw_params_get_access +#undef snd_pcm_hw_params_test_access +#undef snd_pcm_hw_params_set_access +#undef snd_pcm_hw_params_set_access_first +#undef snd_pcm_hw_params_set_access_last +#undef snd_pcm_hw_params_set_access_mask +#undef snd_pcm_hw_params_get_access_mask +#undef snd_pcm_hw_params_get_format +#undef snd_pcm_hw_params_test_format +#undef snd_pcm_hw_params_set_format +#undef snd_pcm_hw_params_set_format_first +#undef snd_pcm_hw_params_set_format_last +#undef snd_pcm_hw_params_set_format_mask +#undef snd_pcm_hw_params_get_format_mask +#undef snd_pcm_hw_params_get_subformat +#undef snd_pcm_hw_params_test_subformat +#undef snd_pcm_hw_params_set_subformat +#undef snd_pcm_hw_params_set_subformat_first +#undef snd_pcm_hw_params_set_subformat_last +#undef snd_pcm_hw_params_set_subformat_mask +#undef snd_pcm_hw_params_get_subformat_mask +#undef snd_pcm_hw_params_get_channels +#undef snd_pcm_hw_params_get_channels_min +#undef snd_pcm_hw_params_get_channels_max +#undef snd_pcm_hw_params_test_channels +#undef snd_pcm_hw_params_set_channels +#undef snd_pcm_hw_params_set_channels_min +#undef snd_pcm_hw_params_set_channels_max +#undef snd_pcm_hw_params_set_channels_minmax +#undef snd_pcm_hw_params_set_channels_near +#undef snd_pcm_hw_params_set_channels_first +#undef snd_pcm_hw_params_set_channels_last +#undef snd_pcm_hw_params_get_rate +#undef snd_pcm_hw_params_get_rate_min +#undef snd_pcm_hw_params_get_rate_max +#undef snd_pcm_hw_params_test_rate +#undef snd_pcm_hw_params_set_rate +#undef snd_pcm_hw_params_set_rate_min +#undef snd_pcm_hw_params_set_rate_max +#undef snd_pcm_hw_params_set_rate_minmax +#undef snd_pcm_hw_params_set_rate_near +#undef snd_pcm_hw_params_set_rate_first +#undef snd_pcm_hw_params_set_rate_last +#undef snd_pcm_hw_params_set_rate_resample +#undef snd_pcm_hw_params_get_rate_resample +#undef snd_pcm_hw_params_set_export_buffer +#undef snd_pcm_hw_params_get_export_buffer +#undef snd_pcm_hw_params_set_period_wakeup +#undef snd_pcm_hw_params_get_period_wakeup +#undef snd_pcm_hw_params_get_period_time +#undef snd_pcm_hw_params_get_period_time_min +#undef snd_pcm_hw_params_get_period_time_max +#undef snd_pcm_hw_params_test_period_time +#undef snd_pcm_hw_params_set_period_time +#undef snd_pcm_hw_params_set_period_time_min +#undef snd_pcm_hw_params_set_period_time_max +#undef snd_pcm_hw_params_set_period_time_minmax +#undef snd_pcm_hw_params_set_period_time_near +#undef snd_pcm_hw_params_set_period_time_first +#undef snd_pcm_hw_params_set_period_time_last +#undef snd_pcm_hw_params_get_period_size +#undef snd_pcm_hw_params_get_period_size_min +#undef snd_pcm_hw_params_get_period_size_max +#undef snd_pcm_hw_params_test_period_size +#undef snd_pcm_hw_params_set_period_size +#undef snd_pcm_hw_params_set_period_size_min +#undef snd_pcm_hw_params_set_period_size_max +#undef snd_pcm_hw_params_set_period_size_minmax +#undef snd_pcm_hw_params_set_period_size_near +#undef snd_pcm_hw_params_set_period_size_first +#undef snd_pcm_hw_params_set_period_size_last +#undef snd_pcm_hw_params_set_period_size_integer +#undef snd_pcm_hw_params_get_periods +#undef snd_pcm_hw_params_get_periods_min +#undef snd_pcm_hw_params_get_periods_max +#undef snd_pcm_hw_params_test_periods +#undef snd_pcm_hw_params_set_periods +#undef snd_pcm_hw_params_set_periods_min +#undef snd_pcm_hw_params_set_periods_max +#undef snd_pcm_hw_params_set_periods_minmax +#undef snd_pcm_hw_params_set_periods_near +#undef snd_pcm_hw_params_set_periods_first +#undef snd_pcm_hw_params_set_periods_last +#undef snd_pcm_hw_params_set_periods_integer +#undef snd_pcm_hw_params_get_buffer_time +#undef snd_pcm_hw_params_get_buffer_time_min +#undef snd_pcm_hw_params_get_buffer_time_max +#undef snd_pcm_hw_params_test_buffer_time +#undef snd_pcm_hw_params_set_buffer_time +#undef snd_pcm_hw_params_set_buffer_time_min +#undef snd_pcm_hw_params_set_buffer_time_max +#undef snd_pcm_hw_params_set_buffer_time_minmax +#undef snd_pcm_hw_params_set_buffer_time_near +#undef snd_pcm_hw_params_set_buffer_time_first +#undef snd_pcm_hw_params_set_buffer_time_last +#undef snd_pcm_hw_params_get_buffer_size +#undef snd_pcm_hw_params_get_buffer_size_min +#undef snd_pcm_hw_params_get_buffer_size_max +#undef snd_pcm_hw_params_test_buffer_size +#undef snd_pcm_hw_params_set_buffer_size +#undef snd_pcm_hw_params_set_buffer_size_min +#undef snd_pcm_hw_params_set_buffer_size_max +#undef snd_pcm_hw_params_set_buffer_size_minmax +#undef snd_pcm_hw_params_set_buffer_size_near +#undef snd_pcm_hw_params_set_buffer_size_first +#undef snd_pcm_hw_params_set_buffer_size_last +#undef snd_pcm_hw_params_get_min_align +#undef snd_pcm_sw_params_sizeof +#undef snd_pcm_sw_params_malloc +#undef snd_pcm_sw_params_free +#undef snd_pcm_sw_params_copy +#undef snd_pcm_sw_params_get_boundary +#undef snd_pcm_sw_params_set_tstamp_mode +#undef snd_pcm_sw_params_get_tstamp_mode +#undef snd_pcm_sw_params_set_tstamp_type +#undef snd_pcm_sw_params_get_tstamp_type +#undef snd_pcm_sw_params_set_avail_min +#undef snd_pcm_sw_params_get_avail_min +#undef snd_pcm_sw_params_set_period_event +#undef snd_pcm_sw_params_get_period_event +#undef snd_pcm_sw_params_set_start_threshold +#undef snd_pcm_sw_params_get_start_threshold +#undef snd_pcm_sw_params_set_stop_threshold +#undef snd_pcm_sw_params_get_stop_threshold +#undef snd_pcm_sw_params_set_silence_threshold +#undef snd_pcm_sw_params_get_silence_threshold +#undef snd_pcm_sw_params_set_silence_size +#undef snd_pcm_sw_params_get_silence_size +#undef snd_pcm_access_mask_sizeof +#undef snd_pcm_access_mask_malloc +#undef snd_pcm_access_mask_free +#undef snd_pcm_access_mask_copy +#undef snd_pcm_access_mask_none +#undef snd_pcm_access_mask_any +#undef snd_pcm_access_mask_test +#undef snd_pcm_access_mask_empty +#undef snd_pcm_access_mask_set +#undef snd_pcm_access_mask_reset +#undef snd_pcm_format_mask_sizeof +#undef snd_pcm_format_mask_malloc +#undef snd_pcm_format_mask_free +#undef snd_pcm_format_mask_copy +#undef snd_pcm_format_mask_none +#undef snd_pcm_format_mask_any +#undef snd_pcm_format_mask_test +#undef snd_pcm_format_mask_empty +#undef snd_pcm_format_mask_set +#undef snd_pcm_format_mask_reset +#undef snd_pcm_subformat_mask_sizeof +#undef snd_pcm_subformat_mask_malloc +#undef snd_pcm_subformat_mask_free +#undef snd_pcm_subformat_mask_copy +#undef snd_pcm_subformat_mask_none +#undef snd_pcm_subformat_mask_any +#undef snd_pcm_subformat_mask_test +#undef snd_pcm_subformat_mask_empty +#undef snd_pcm_subformat_mask_set +#undef snd_pcm_subformat_mask_reset +#undef snd_pcm_status_sizeof +#undef snd_pcm_status_malloc +#undef snd_pcm_status_free +#undef snd_pcm_status_copy +#undef snd_pcm_status_get_state +#undef snd_pcm_status_get_trigger_tstamp +#undef snd_pcm_status_get_trigger_htstamp +#undef snd_pcm_status_get_tstamp +#undef snd_pcm_status_get_htstamp +#undef snd_pcm_status_get_audio_htstamp +#undef snd_pcm_status_get_driver_htstamp +#undef snd_pcm_status_get_audio_htstamp_report +#undef snd_pcm_status_set_audio_htstamp_config +#undef snd_pcm_status_get_delay +#undef snd_pcm_status_get_avail +#undef snd_pcm_status_get_avail_max +#undef snd_pcm_status_get_overrange +#undef snd_pcm_type_name +#undef snd_pcm_stream_name +#undef snd_pcm_access_name +#undef snd_pcm_format_name +#undef snd_pcm_format_description +#undef snd_pcm_subformat_name +#undef snd_pcm_subformat_description +#undef snd_pcm_format_value +#undef snd_pcm_tstamp_mode_name +#undef snd_pcm_state_name +#undef snd_pcm_dump +#undef snd_pcm_dump_hw_setup +#undef snd_pcm_dump_sw_setup +#undef snd_pcm_dump_setup +#undef snd_pcm_hw_params_dump +#undef snd_pcm_sw_params_dump +#undef snd_pcm_status_dump +#undef snd_pcm_mmap_begin +#undef snd_pcm_mmap_commit +#undef snd_pcm_mmap_writei +#undef snd_pcm_mmap_readi +#undef snd_pcm_mmap_writen +#undef snd_pcm_mmap_readn +#undef snd_pcm_format_signed +#undef snd_pcm_format_unsigned +#undef snd_pcm_format_linear +#undef snd_pcm_format_float +#undef snd_pcm_format_little_endian +#undef snd_pcm_format_big_endian +#undef snd_pcm_format_cpu_endian +#undef snd_pcm_format_width +#undef snd_pcm_format_physical_width +#undef snd_pcm_build_linear_format +#undef snd_pcm_format_size +#undef snd_pcm_format_silence +#undef snd_pcm_format_silence_16 +#undef snd_pcm_format_silence_32 +#undef snd_pcm_format_silence_64 +#undef snd_pcm_format_set_silence +#undef snd_pcm_bytes_to_frames +#undef snd_pcm_frames_to_bytes +#undef snd_pcm_bytes_to_samples +#undef snd_pcm_samples_to_bytes +#undef snd_pcm_area_silence +#undef snd_pcm_areas_silence +#undef snd_pcm_area_copy +#undef snd_pcm_areas_copy +#undef snd_pcm_areas_copy_wrap +#undef snd_pcm_hook_get_pcm +#undef snd_pcm_hook_get_private +#undef snd_pcm_hook_set_private +#undef snd_pcm_hook_add +#undef snd_pcm_hook_remove +#undef snd_pcm_meter_get_bufsize +#undef snd_pcm_meter_get_channels +#undef snd_pcm_meter_get_rate +#undef snd_pcm_meter_get_now +#undef snd_pcm_meter_get_boundary +#undef snd_pcm_meter_add_scope +#undef snd_pcm_meter_search_scope +#undef snd_pcm_scope_malloc +#undef snd_pcm_scope_set_ops +#undef snd_pcm_scope_set_name +#undef snd_pcm_scope_get_name +#undef snd_pcm_scope_get_callback_private +#undef snd_pcm_scope_set_callback_private +#undef snd_pcm_scope_s16_open +#undef snd_pcm_scope_s16_get_channel_buffer +#undef snd_spcm_init +#undef snd_spcm_init_duplex +#undef snd_spcm_init_get_params +#undef snd_pcm_start_mode_name +#undef snd_pcm_xrun_mode_name +#undef snd_pcm_sw_params_set_start_mode +#undef snd_pcm_sw_params_get_start_mode +#undef snd_pcm_sw_params_set_xrun_mode +#undef snd_pcm_sw_params_get_xrun_mode +#undef snd_pcm_sw_params_set_xfer_align +#undef snd_pcm_sw_params_get_xfer_align +#undef snd_pcm_sw_params_set_sleep_min +#undef snd_pcm_sw_params_get_sleep_min +#undef snd_pcm_hw_params_get_tick_time +#undef snd_pcm_hw_params_get_tick_time_min +#undef snd_pcm_hw_params_get_tick_time_max +#undef snd_pcm_hw_params_test_tick_time +#undef snd_pcm_hw_params_set_tick_time +#undef snd_pcm_hw_params_set_tick_time_min +#undef snd_pcm_hw_params_set_tick_time_max +#undef snd_pcm_hw_params_set_tick_time_minmax +#undef snd_pcm_hw_params_set_tick_time_near +#undef snd_pcm_hw_params_set_tick_time_first +#undef snd_pcm_hw_params_set_tick_time_last +#undef snd_rawmidi_open +#undef snd_rawmidi_open_lconf +#undef snd_rawmidi_close +#undef snd_rawmidi_poll_descriptors_count +#undef snd_rawmidi_poll_descriptors +#undef snd_rawmidi_poll_descriptors_revents +#undef snd_rawmidi_nonblock +#undef snd_rawmidi_info_sizeof +#undef snd_rawmidi_info_malloc +#undef snd_rawmidi_info_free +#undef snd_rawmidi_info_copy +#undef snd_rawmidi_info_get_device +#undef snd_rawmidi_info_get_subdevice +#undef snd_rawmidi_info_get_stream +#undef snd_rawmidi_info_get_card +#undef snd_rawmidi_info_get_flags +#undef snd_rawmidi_info_get_id +#undef snd_rawmidi_info_get_name +#undef snd_rawmidi_info_get_subdevice_name +#undef snd_rawmidi_info_get_subdevices_count +#undef snd_rawmidi_info_get_subdevices_avail +#undef snd_rawmidi_info_set_device +#undef snd_rawmidi_info_set_subdevice +#undef snd_rawmidi_info_set_stream +#undef snd_rawmidi_info +#undef snd_rawmidi_params_sizeof +#undef snd_rawmidi_params_malloc +#undef snd_rawmidi_params_free +#undef snd_rawmidi_params_copy +#undef snd_rawmidi_params_set_buffer_size +#undef snd_rawmidi_params_get_buffer_size +#undef snd_rawmidi_params_set_avail_min +#undef snd_rawmidi_params_get_avail_min +#undef snd_rawmidi_params_set_no_active_sensing +#undef snd_rawmidi_params_get_no_active_sensing +#undef snd_rawmidi_params +#undef snd_rawmidi_params_current +#undef snd_rawmidi_status_sizeof +#undef snd_rawmidi_status_malloc +#undef snd_rawmidi_status_free +#undef snd_rawmidi_status_copy +#undef snd_rawmidi_status_get_tstamp +#undef snd_rawmidi_status_get_avail +#undef snd_rawmidi_status_get_xruns +#undef snd_rawmidi_status +#undef snd_rawmidi_drain +#undef snd_rawmidi_drop +#undef snd_rawmidi_write +#undef snd_rawmidi_read +#undef snd_rawmidi_name +#undef snd_rawmidi_type +#undef snd_rawmidi_stream +#undef snd_timer_query_open +#undef snd_timer_query_open_lconf +#undef snd_timer_query_close +#undef snd_timer_query_next_device +#undef snd_timer_query_info +#undef snd_timer_query_params +#undef snd_timer_query_status +#undef snd_timer_open +#undef snd_timer_open_lconf +#undef snd_timer_close +#undef snd_async_add_timer_handler +#undef snd_async_handler_get_timer +#undef snd_timer_poll_descriptors_count +#undef snd_timer_poll_descriptors +#undef snd_timer_poll_descriptors_revents +#undef snd_timer_info +#undef snd_timer_params +#undef snd_timer_status +#undef snd_timer_start +#undef snd_timer_stop +#undef snd_timer_continue +#undef snd_timer_read +#undef snd_timer_id_sizeof +#undef snd_timer_id_malloc +#undef snd_timer_id_free +#undef snd_timer_id_copy +#undef snd_timer_id_set_class +#undef snd_timer_id_get_class +#undef snd_timer_id_set_sclass +#undef snd_timer_id_get_sclass +#undef snd_timer_id_set_card +#undef snd_timer_id_get_card +#undef snd_timer_id_set_device +#undef snd_timer_id_get_device +#undef snd_timer_id_set_subdevice +#undef snd_timer_id_get_subdevice +#undef snd_timer_ginfo_sizeof +#undef snd_timer_ginfo_malloc +#undef snd_timer_ginfo_free +#undef snd_timer_ginfo_copy +#undef snd_timer_ginfo_set_tid +#undef snd_timer_ginfo_get_tid +#undef snd_timer_ginfo_get_flags +#undef snd_timer_ginfo_get_card +#undef snd_timer_ginfo_get_id +#undef snd_timer_ginfo_get_name +#undef snd_timer_ginfo_get_resolution +#undef snd_timer_ginfo_get_resolution_min +#undef snd_timer_ginfo_get_resolution_max +#undef snd_timer_ginfo_get_clients +#undef snd_timer_info_sizeof +#undef snd_timer_info_malloc +#undef snd_timer_info_free +#undef snd_timer_info_copy +#undef snd_timer_info_is_slave +#undef snd_timer_info_get_card +#undef snd_timer_info_get_id +#undef snd_timer_info_get_name +#undef snd_timer_info_get_resolution +#undef snd_timer_params_sizeof +#undef snd_timer_params_malloc +#undef snd_timer_params_free +#undef snd_timer_params_copy +#undef snd_timer_params_set_auto_start +#undef snd_timer_params_get_auto_start +#undef snd_timer_params_set_exclusive +#undef snd_timer_params_get_exclusive +#undef snd_timer_params_set_early_event +#undef snd_timer_params_get_early_event +#undef snd_timer_params_set_ticks +#undef snd_timer_params_get_ticks +#undef snd_timer_params_set_queue_size +#undef snd_timer_params_get_queue_size +#undef snd_timer_params_set_filter +#undef snd_timer_params_get_filter +#undef snd_timer_status_sizeof +#undef snd_timer_status_malloc +#undef snd_timer_status_free +#undef snd_timer_status_copy +#undef snd_timer_status_get_timestamp +#undef snd_timer_status_get_resolution +#undef snd_timer_status_get_lost +#undef snd_timer_status_get_overrun +#undef snd_timer_status_get_queue +#undef snd_timer_info_get_ticks +#undef snd_hwdep_open +#undef snd_hwdep_close +#undef snd_hwdep_poll_descriptors +#undef snd_hwdep_poll_descriptors_count +#undef snd_hwdep_poll_descriptors_revents +#undef snd_hwdep_nonblock +#undef snd_hwdep_info +#undef snd_hwdep_dsp_status +#undef snd_hwdep_dsp_load +#undef snd_hwdep_ioctl +#undef snd_hwdep_write +#undef snd_hwdep_read +#undef snd_hwdep_info_sizeof +#undef snd_hwdep_info_malloc +#undef snd_hwdep_info_free +#undef snd_hwdep_info_copy +#undef snd_hwdep_info_get_device +#undef snd_hwdep_info_get_card +#undef snd_hwdep_info_get_id +#undef snd_hwdep_info_get_name +#undef snd_hwdep_info_get_iface +#undef snd_hwdep_info_set_device +#undef snd_hwdep_dsp_status_sizeof +#undef snd_hwdep_dsp_status_malloc +#undef snd_hwdep_dsp_status_free +#undef snd_hwdep_dsp_status_copy +#undef snd_hwdep_dsp_status_get_version +#undef snd_hwdep_dsp_status_get_id +#undef snd_hwdep_dsp_status_get_num_dsps +#undef snd_hwdep_dsp_status_get_dsp_loaded +#undef snd_hwdep_dsp_status_get_chip_ready +#undef snd_hwdep_dsp_image_sizeof +#undef snd_hwdep_dsp_image_malloc +#undef snd_hwdep_dsp_image_free +#undef snd_hwdep_dsp_image_copy +#undef snd_hwdep_dsp_image_get_index +#undef snd_hwdep_dsp_image_get_name +#undef snd_hwdep_dsp_image_get_image +#undef snd_hwdep_dsp_image_get_length +#undef snd_hwdep_dsp_image_set_index +#undef snd_hwdep_dsp_image_set_name +#undef snd_hwdep_dsp_image_set_image +#undef snd_hwdep_dsp_image_set_length +#undef snd_card_load +#undef snd_card_next +#undef snd_card_get_index +#undef snd_card_get_name +#undef snd_card_get_longname +#undef snd_device_name_hint +#undef snd_device_name_free_hint +#undef snd_device_name_get_hint +#undef snd_ctl_open +#undef snd_ctl_open_lconf +#undef snd_ctl_open_fallback +#undef snd_ctl_close +#undef snd_ctl_nonblock +#undef snd_async_add_ctl_handler +#undef snd_async_handler_get_ctl +#undef snd_ctl_poll_descriptors_count +#undef snd_ctl_poll_descriptors +#undef snd_ctl_poll_descriptors_revents +#undef snd_ctl_subscribe_events +#undef snd_ctl_card_info +#undef snd_ctl_elem_list +#undef snd_ctl_elem_info +#undef snd_ctl_elem_read +#undef snd_ctl_elem_write +#undef snd_ctl_elem_lock +#undef snd_ctl_elem_unlock +#undef snd_ctl_elem_tlv_read +#undef snd_ctl_elem_tlv_write +#undef snd_ctl_elem_tlv_command +#undef snd_ctl_hwdep_next_device +#undef snd_ctl_hwdep_info +#undef snd_ctl_pcm_next_device +#undef snd_ctl_pcm_info +#undef snd_ctl_pcm_prefer_subdevice +#undef snd_ctl_rawmidi_next_device +#undef snd_ctl_rawmidi_info +#undef snd_ctl_rawmidi_prefer_subdevice +#undef snd_ctl_set_power_state +#undef snd_ctl_get_power_state +#undef snd_ctl_read +#undef snd_ctl_wait +#undef snd_ctl_name +#undef snd_ctl_type +#undef snd_ctl_elem_type_name +#undef snd_ctl_elem_iface_name +#undef snd_ctl_event_type_name +#undef snd_ctl_event_elem_get_mask +#undef snd_ctl_event_elem_get_numid +#undef snd_ctl_event_elem_get_id +#undef snd_ctl_event_elem_get_interface +#undef snd_ctl_event_elem_get_device +#undef snd_ctl_event_elem_get_subdevice +#undef snd_ctl_event_elem_get_name +#undef snd_ctl_event_elem_get_index +#undef snd_ctl_elem_list_alloc_space +#undef snd_ctl_elem_list_free_space +#undef snd_ctl_ascii_elem_id_get +#undef snd_ctl_ascii_elem_id_parse +#undef snd_ctl_ascii_value_parse +#undef snd_ctl_elem_id_sizeof +#undef snd_ctl_elem_id_malloc +#undef snd_ctl_elem_id_free +#undef snd_ctl_elem_id_clear +#undef snd_ctl_elem_id_copy +#undef snd_ctl_elem_id_get_numid +#undef snd_ctl_elem_id_get_interface +#undef snd_ctl_elem_id_get_device +#undef snd_ctl_elem_id_get_subdevice +#undef snd_ctl_elem_id_get_name +#undef snd_ctl_elem_id_get_index +#undef snd_ctl_elem_id_set_numid +#undef snd_ctl_elem_id_set_interface +#undef snd_ctl_elem_id_set_device +#undef snd_ctl_elem_id_set_subdevice +#undef snd_ctl_elem_id_set_name +#undef snd_ctl_elem_id_set_index +#undef snd_ctl_card_info_sizeof +#undef snd_ctl_card_info_malloc +#undef snd_ctl_card_info_free +#undef snd_ctl_card_info_clear +#undef snd_ctl_card_info_copy +#undef snd_ctl_card_info_get_card +#undef snd_ctl_card_info_get_id +#undef snd_ctl_card_info_get_driver +#undef snd_ctl_card_info_get_name +#undef snd_ctl_card_info_get_longname +#undef snd_ctl_card_info_get_mixername +#undef snd_ctl_card_info_get_components +#undef snd_ctl_event_sizeof +#undef snd_ctl_event_malloc +#undef snd_ctl_event_free +#undef snd_ctl_event_clear +#undef snd_ctl_event_copy +#undef snd_ctl_event_get_type +#undef snd_ctl_elem_list_sizeof +#undef snd_ctl_elem_list_malloc +#undef snd_ctl_elem_list_free +#undef snd_ctl_elem_list_clear +#undef snd_ctl_elem_list_copy +#undef snd_ctl_elem_list_set_offset +#undef snd_ctl_elem_list_get_used +#undef snd_ctl_elem_list_get_count +#undef snd_ctl_elem_list_get_id +#undef snd_ctl_elem_list_get_numid +#undef snd_ctl_elem_list_get_interface +#undef snd_ctl_elem_list_get_device +#undef snd_ctl_elem_list_get_subdevice +#undef snd_ctl_elem_list_get_name +#undef snd_ctl_elem_list_get_index +#undef snd_ctl_elem_info_sizeof +#undef snd_ctl_elem_info_malloc +#undef snd_ctl_elem_info_free +#undef snd_ctl_elem_info_clear +#undef snd_ctl_elem_info_copy +#undef snd_ctl_elem_info_get_type +#undef snd_ctl_elem_info_is_readable +#undef snd_ctl_elem_info_is_writable +#undef snd_ctl_elem_info_is_volatile +#undef snd_ctl_elem_info_is_inactive +#undef snd_ctl_elem_info_is_locked +#undef snd_ctl_elem_info_is_tlv_readable +#undef snd_ctl_elem_info_is_tlv_writable +#undef snd_ctl_elem_info_is_tlv_commandable +#undef snd_ctl_elem_info_is_owner +#undef snd_ctl_elem_info_is_user +#undef snd_ctl_elem_info_get_owner +#undef snd_ctl_elem_info_get_count +#undef snd_ctl_elem_info_get_min +#undef snd_ctl_elem_info_get_max +#undef snd_ctl_elem_info_get_step +#undef snd_ctl_elem_info_get_min64 +#undef snd_ctl_elem_info_get_max64 +#undef snd_ctl_elem_info_get_step64 +#undef snd_ctl_elem_info_get_items +#undef snd_ctl_elem_info_set_item +#undef snd_ctl_elem_info_get_item_name +#undef snd_ctl_elem_info_get_dimensions +#undef snd_ctl_elem_info_get_dimension +#undef snd_ctl_elem_info_set_dimension +#undef snd_ctl_elem_info_get_id +#undef snd_ctl_elem_info_get_numid +#undef snd_ctl_elem_info_get_interface +#undef snd_ctl_elem_info_get_device +#undef snd_ctl_elem_info_get_subdevice +#undef snd_ctl_elem_info_get_name +#undef snd_ctl_elem_info_get_index +#undef snd_ctl_elem_info_set_id +#undef snd_ctl_elem_info_set_numid +#undef snd_ctl_elem_info_set_interface +#undef snd_ctl_elem_info_set_device +#undef snd_ctl_elem_info_set_subdevice +#undef snd_ctl_elem_info_set_name +#undef snd_ctl_elem_info_set_index +#undef snd_ctl_add_integer_elem_set +#undef snd_ctl_add_integer64_elem_set +#undef snd_ctl_add_boolean_elem_set +#undef snd_ctl_add_enumerated_elem_set +#undef snd_ctl_add_bytes_elem_set +#undef snd_ctl_elem_add_integer +#undef snd_ctl_elem_add_integer64 +#undef snd_ctl_elem_add_boolean +#undef snd_ctl_elem_add_enumerated +#undef snd_ctl_elem_add_iec958 +#undef snd_ctl_elem_remove +#undef snd_ctl_elem_value_sizeof +#undef snd_ctl_elem_value_malloc +#undef snd_ctl_elem_value_free +#undef snd_ctl_elem_value_clear +#undef snd_ctl_elem_value_copy +#undef snd_ctl_elem_value_compare +#undef snd_ctl_elem_value_get_id +#undef snd_ctl_elem_value_get_numid +#undef snd_ctl_elem_value_get_interface +#undef snd_ctl_elem_value_get_device +#undef snd_ctl_elem_value_get_subdevice +#undef snd_ctl_elem_value_get_name +#undef snd_ctl_elem_value_get_index +#undef snd_ctl_elem_value_set_id +#undef snd_ctl_elem_value_set_numid +#undef snd_ctl_elem_value_set_interface +#undef snd_ctl_elem_value_set_device +#undef snd_ctl_elem_value_set_subdevice +#undef snd_ctl_elem_value_set_name +#undef snd_ctl_elem_value_set_index +#undef snd_ctl_elem_value_get_boolean +#undef snd_ctl_elem_value_get_integer +#undef snd_ctl_elem_value_get_integer64 +#undef snd_ctl_elem_value_get_enumerated +#undef snd_ctl_elem_value_get_byte +#undef snd_ctl_elem_value_set_boolean +#undef snd_ctl_elem_value_set_integer +#undef snd_ctl_elem_value_set_integer64 +#undef snd_ctl_elem_value_set_enumerated +#undef snd_ctl_elem_value_set_byte +#undef snd_ctl_elem_set_bytes +#undef snd_ctl_elem_value_get_bytes +#undef snd_ctl_elem_value_get_iec958 +#undef snd_ctl_elem_value_set_iec958 +#undef snd_tlv_parse_dB_info +#undef snd_tlv_get_dB_range +#undef snd_tlv_convert_to_dB +#undef snd_tlv_convert_from_dB +#undef snd_ctl_get_dB_range +#undef snd_ctl_convert_to_dB +#undef snd_ctl_convert_from_dB +#undef snd_hctl_compare_fast +#undef snd_hctl_open +#undef snd_hctl_open_ctl +#undef snd_hctl_close +#undef snd_hctl_nonblock +#undef snd_hctl_poll_descriptors_count +#undef snd_hctl_poll_descriptors +#undef snd_hctl_poll_descriptors_revents +#undef snd_hctl_get_count +#undef snd_hctl_set_compare +#undef snd_hctl_first_elem +#undef snd_hctl_last_elem +#undef snd_hctl_find_elem +#undef snd_hctl_set_callback +#undef snd_hctl_set_callback_private +#undef snd_hctl_get_callback_private +#undef snd_hctl_load +#undef snd_hctl_free +#undef snd_hctl_handle_events +#undef snd_hctl_name +#undef snd_hctl_wait +#undef snd_hctl_ctl +#undef snd_hctl_elem_next +#undef snd_hctl_elem_prev +#undef snd_hctl_elem_info +#undef snd_hctl_elem_read +#undef snd_hctl_elem_write +#undef snd_hctl_elem_tlv_read +#undef snd_hctl_elem_tlv_write +#undef snd_hctl_elem_tlv_command +#undef snd_hctl_elem_get_hctl +#undef snd_hctl_elem_get_id +#undef snd_hctl_elem_get_numid +#undef snd_hctl_elem_get_interface +#undef snd_hctl_elem_get_device +#undef snd_hctl_elem_get_subdevice +#undef snd_hctl_elem_get_name +#undef snd_hctl_elem_get_index +#undef snd_hctl_elem_set_callback +#undef snd_hctl_elem_get_callback_private +#undef snd_hctl_elem_set_callback_private +#undef snd_sctl_build +#undef snd_sctl_free +#undef snd_sctl_install +#undef snd_sctl_remove +#undef snd_mixer_open +#undef snd_mixer_close +#undef snd_mixer_first_elem +#undef snd_mixer_last_elem +#undef snd_mixer_handle_events +#undef snd_mixer_attach +#undef snd_mixer_attach_hctl +#undef snd_mixer_detach +#undef snd_mixer_detach_hctl +#undef snd_mixer_get_hctl +#undef snd_mixer_poll_descriptors_count +#undef snd_mixer_poll_descriptors +#undef snd_mixer_poll_descriptors_revents +#undef snd_mixer_load +#undef snd_mixer_free +#undef snd_mixer_wait +#undef snd_mixer_set_compare +#undef snd_mixer_set_callback +#undef snd_mixer_get_callback_private +#undef snd_mixer_set_callback_private +#undef snd_mixer_get_count +#undef snd_mixer_class_unregister +#undef snd_mixer_elem_next +#undef snd_mixer_elem_prev +#undef snd_mixer_elem_set_callback +#undef snd_mixer_elem_get_callback_private +#undef snd_mixer_elem_set_callback_private +#undef snd_mixer_elem_get_type +#undef snd_mixer_class_register +#undef snd_mixer_elem_new +#undef snd_mixer_elem_add +#undef snd_mixer_elem_remove +#undef snd_mixer_elem_free +#undef snd_mixer_elem_info +#undef snd_mixer_elem_value +#undef snd_mixer_elem_attach +#undef snd_mixer_elem_detach +#undef snd_mixer_elem_empty +#undef snd_mixer_elem_get_private +#undef snd_mixer_class_sizeof +#undef snd_mixer_class_malloc +#undef snd_mixer_class_free +#undef snd_mixer_class_copy +#undef snd_mixer_class_get_mixer +#undef snd_mixer_class_get_event +#undef snd_mixer_class_get_private +#undef snd_mixer_class_get_compare +#undef snd_mixer_class_set_event +#undef snd_mixer_class_set_private +#undef snd_mixer_class_set_private_free +#undef snd_mixer_class_set_compare +#undef snd_mixer_selem_channel_name +#undef snd_mixer_selem_register +#undef snd_mixer_selem_get_id +#undef snd_mixer_selem_get_name +#undef snd_mixer_selem_get_index +#undef snd_mixer_find_selem +#undef snd_mixer_selem_is_active +#undef snd_mixer_selem_is_playback_mono +#undef snd_mixer_selem_has_playback_channel +#undef snd_mixer_selem_is_capture_mono +#undef snd_mixer_selem_has_capture_channel +#undef snd_mixer_selem_get_capture_group +#undef snd_mixer_selem_has_common_volume +#undef snd_mixer_selem_has_playback_volume +#undef snd_mixer_selem_has_playback_volume_joined +#undef snd_mixer_selem_has_capture_volume +#undef snd_mixer_selem_has_capture_volume_joined +#undef snd_mixer_selem_has_common_switch +#undef snd_mixer_selem_has_playback_switch +#undef snd_mixer_selem_has_playback_switch_joined +#undef snd_mixer_selem_has_capture_switch +#undef snd_mixer_selem_has_capture_switch_joined +#undef snd_mixer_selem_has_capture_switch_exclusive +#undef snd_mixer_selem_ask_playback_vol_dB +#undef snd_mixer_selem_ask_capture_vol_dB +#undef snd_mixer_selem_ask_playback_dB_vol +#undef snd_mixer_selem_ask_capture_dB_vol +#undef snd_mixer_selem_get_playback_volume +#undef snd_mixer_selem_get_capture_volume +#undef snd_mixer_selem_get_playback_dB +#undef snd_mixer_selem_get_capture_dB +#undef snd_mixer_selem_get_playback_switch +#undef snd_mixer_selem_get_capture_switch +#undef snd_mixer_selem_set_playback_volume +#undef snd_mixer_selem_set_capture_volume +#undef snd_mixer_selem_set_playback_dB +#undef snd_mixer_selem_set_capture_dB +#undef snd_mixer_selem_set_playback_volume_all +#undef snd_mixer_selem_set_capture_volume_all +#undef snd_mixer_selem_set_playback_dB_all +#undef snd_mixer_selem_set_capture_dB_all +#undef snd_mixer_selem_set_playback_switch +#undef snd_mixer_selem_set_capture_switch +#undef snd_mixer_selem_set_playback_switch_all +#undef snd_mixer_selem_set_capture_switch_all +#undef snd_mixer_selem_get_playback_volume_range +#undef snd_mixer_selem_get_playback_dB_range +#undef snd_mixer_selem_set_playback_volume_range +#undef snd_mixer_selem_get_capture_volume_range +#undef snd_mixer_selem_get_capture_dB_range +#undef snd_mixer_selem_set_capture_volume_range +#undef snd_mixer_selem_is_enumerated +#undef snd_mixer_selem_is_enum_playback +#undef snd_mixer_selem_is_enum_capture +#undef snd_mixer_selem_get_enum_items +#undef snd_mixer_selem_get_enum_item_name +#undef snd_mixer_selem_get_enum_item +#undef snd_mixer_selem_set_enum_item +#undef snd_mixer_selem_id_sizeof +#undef snd_mixer_selem_id_malloc +#undef snd_mixer_selem_id_free +#undef snd_mixer_selem_id_copy +#undef snd_mixer_selem_id_get_name +#undef snd_mixer_selem_id_get_index +#undef snd_mixer_selem_id_set_name +#undef snd_mixer_selem_id_set_index +#undef snd_mixer_selem_id_parse +#undef snd_seq_open +#undef snd_seq_open_lconf +#undef snd_seq_name +#undef snd_seq_type +#undef snd_seq_close +#undef snd_seq_poll_descriptors_count +#undef snd_seq_poll_descriptors +#undef snd_seq_poll_descriptors_revents +#undef snd_seq_nonblock +#undef snd_seq_client_id +#undef snd_seq_get_output_buffer_size +#undef snd_seq_get_input_buffer_size +#undef snd_seq_set_output_buffer_size +#undef snd_seq_set_input_buffer_size +#undef snd_seq_system_info_sizeof +#undef snd_seq_system_info_malloc +#undef snd_seq_system_info_free +#undef snd_seq_system_info_copy +#undef snd_seq_system_info_get_queues +#undef snd_seq_system_info_get_clients +#undef snd_seq_system_info_get_ports +#undef snd_seq_system_info_get_channels +#undef snd_seq_system_info_get_cur_clients +#undef snd_seq_system_info_get_cur_queues +#undef snd_seq_system_info +#undef snd_seq_client_info_sizeof +#undef snd_seq_client_info_malloc +#undef snd_seq_client_info_free +#undef snd_seq_client_info_copy +#undef snd_seq_client_info_get_client +#undef snd_seq_client_info_get_type +#undef snd_seq_client_info_get_name +#undef snd_seq_client_info_get_broadcast_filter +#undef snd_seq_client_info_get_error_bounce +#undef snd_seq_client_info_get_card +#undef snd_seq_client_info_get_pid +#undef snd_seq_client_info_get_event_filter +#undef snd_seq_client_info_get_num_ports +#undef snd_seq_client_info_get_event_lost +#undef snd_seq_client_info_set_client +#undef snd_seq_client_info_set_name +#undef snd_seq_client_info_set_broadcast_filter +#undef snd_seq_client_info_set_error_bounce +#undef snd_seq_client_info_set_event_filter +#undef snd_seq_client_info_event_filter_clear +#undef snd_seq_client_info_event_filter_add +#undef snd_seq_client_info_event_filter_del +#undef snd_seq_client_info_event_filter_check +#undef snd_seq_get_client_info +#undef snd_seq_get_any_client_info +#undef snd_seq_set_client_info +#undef snd_seq_query_next_client +#undef snd_seq_client_pool_sizeof +#undef snd_seq_client_pool_malloc +#undef snd_seq_client_pool_free +#undef snd_seq_client_pool_copy +#undef snd_seq_client_pool_get_client +#undef snd_seq_client_pool_get_output_pool +#undef snd_seq_client_pool_get_input_pool +#undef snd_seq_client_pool_get_output_room +#undef snd_seq_client_pool_get_output_free +#undef snd_seq_client_pool_get_input_free +#undef snd_seq_client_pool_set_output_pool +#undef snd_seq_client_pool_set_input_pool +#undef snd_seq_client_pool_set_output_room +#undef snd_seq_get_client_pool +#undef snd_seq_set_client_pool +#undef snd_seq_port_info_sizeof +#undef snd_seq_port_info_malloc +#undef snd_seq_port_info_free +#undef snd_seq_port_info_copy +#undef snd_seq_port_info_get_client +#undef snd_seq_port_info_get_port +#undef snd_seq_port_info_get_addr +#undef snd_seq_port_info_get_name +#undef snd_seq_port_info_get_capability +#undef snd_seq_port_info_get_type +#undef snd_seq_port_info_get_midi_channels +#undef snd_seq_port_info_get_midi_voices +#undef snd_seq_port_info_get_synth_voices +#undef snd_seq_port_info_get_read_use +#undef snd_seq_port_info_get_write_use +#undef snd_seq_port_info_get_port_specified +#undef snd_seq_port_info_get_timestamping +#undef snd_seq_port_info_get_timestamp_real +#undef snd_seq_port_info_get_timestamp_queue +#undef snd_seq_port_info_set_client +#undef snd_seq_port_info_set_port +#undef snd_seq_port_info_set_addr +#undef snd_seq_port_info_set_name +#undef snd_seq_port_info_set_capability +#undef snd_seq_port_info_set_type +#undef snd_seq_port_info_set_midi_channels +#undef snd_seq_port_info_set_midi_voices +#undef snd_seq_port_info_set_synth_voices +#undef snd_seq_port_info_set_port_specified +#undef snd_seq_port_info_set_timestamping +#undef snd_seq_port_info_set_timestamp_real +#undef snd_seq_port_info_set_timestamp_queue +#undef snd_seq_create_port +#undef snd_seq_delete_port +#undef snd_seq_get_port_info +#undef snd_seq_get_any_port_info +#undef snd_seq_set_port_info +#undef snd_seq_query_next_port +#undef snd_seq_port_subscribe_sizeof +#undef snd_seq_port_subscribe_malloc +#undef snd_seq_port_subscribe_free +#undef snd_seq_port_subscribe_copy +#undef snd_seq_port_subscribe_get_sender +#undef snd_seq_port_subscribe_get_dest +#undef snd_seq_port_subscribe_get_queue +#undef snd_seq_port_subscribe_get_exclusive +#undef snd_seq_port_subscribe_get_time_update +#undef snd_seq_port_subscribe_get_time_real +#undef snd_seq_port_subscribe_set_sender +#undef snd_seq_port_subscribe_set_dest +#undef snd_seq_port_subscribe_set_queue +#undef snd_seq_port_subscribe_set_exclusive +#undef snd_seq_port_subscribe_set_time_update +#undef snd_seq_port_subscribe_set_time_real +#undef snd_seq_get_port_subscription +#undef snd_seq_subscribe_port +#undef snd_seq_unsubscribe_port +#undef snd_seq_query_subscribe_sizeof +#undef snd_seq_query_subscribe_malloc +#undef snd_seq_query_subscribe_free +#undef snd_seq_query_subscribe_copy +#undef snd_seq_query_subscribe_get_client +#undef snd_seq_query_subscribe_get_port +#undef snd_seq_query_subscribe_get_root +#undef snd_seq_query_subscribe_get_type +#undef snd_seq_query_subscribe_get_index +#undef snd_seq_query_subscribe_get_num_subs +#undef snd_seq_query_subscribe_get_addr +#undef snd_seq_query_subscribe_get_queue +#undef snd_seq_query_subscribe_get_exclusive +#undef snd_seq_query_subscribe_get_time_update +#undef snd_seq_query_subscribe_get_time_real +#undef snd_seq_query_subscribe_set_client +#undef snd_seq_query_subscribe_set_port +#undef snd_seq_query_subscribe_set_root +#undef snd_seq_query_subscribe_set_type +#undef snd_seq_query_subscribe_set_index +#undef snd_seq_query_port_subscribers +#undef snd_seq_queue_info_sizeof +#undef snd_seq_queue_info_malloc +#undef snd_seq_queue_info_free +#undef snd_seq_queue_info_copy +#undef snd_seq_queue_info_get_queue +#undef snd_seq_queue_info_get_name +#undef snd_seq_queue_info_get_owner +#undef snd_seq_queue_info_get_locked +#undef snd_seq_queue_info_get_flags +#undef snd_seq_queue_info_set_name +#undef snd_seq_queue_info_set_owner +#undef snd_seq_queue_info_set_locked +#undef snd_seq_queue_info_set_flags +#undef snd_seq_create_queue +#undef snd_seq_alloc_named_queue +#undef snd_seq_alloc_queue +#undef snd_seq_free_queue +#undef snd_seq_get_queue_info +#undef snd_seq_set_queue_info +#undef snd_seq_query_named_queue +#undef snd_seq_get_queue_usage +#undef snd_seq_set_queue_usage +#undef snd_seq_queue_status_sizeof +#undef snd_seq_queue_status_malloc +#undef snd_seq_queue_status_free +#undef snd_seq_queue_status_copy +#undef snd_seq_queue_status_get_queue +#undef snd_seq_queue_status_get_events +#undef snd_seq_queue_status_get_tick_time +#undef snd_seq_queue_status_get_real_time +#undef snd_seq_queue_status_get_status +#undef snd_seq_get_queue_status +#undef snd_seq_queue_tempo_sizeof +#undef snd_seq_queue_tempo_malloc +#undef snd_seq_queue_tempo_free +#undef snd_seq_queue_tempo_copy +#undef snd_seq_queue_tempo_get_queue +#undef snd_seq_queue_tempo_get_tempo +#undef snd_seq_queue_tempo_get_ppq +#undef snd_seq_queue_tempo_get_skew +#undef snd_seq_queue_tempo_get_skew_base +#undef snd_seq_queue_tempo_set_tempo +#undef snd_seq_queue_tempo_set_ppq +#undef snd_seq_queue_tempo_set_skew +#undef snd_seq_queue_tempo_set_skew_base +#undef snd_seq_get_queue_tempo +#undef snd_seq_set_queue_tempo +#undef snd_seq_queue_timer_sizeof +#undef snd_seq_queue_timer_malloc +#undef snd_seq_queue_timer_free +#undef snd_seq_queue_timer_copy +#undef snd_seq_queue_timer_get_queue +#undef snd_seq_queue_timer_get_type +#undef snd_seq_queue_timer_get_id +#undef snd_seq_queue_timer_get_resolution +#undef snd_seq_queue_timer_set_type +#undef snd_seq_queue_timer_set_id +#undef snd_seq_queue_timer_set_resolution +#undef snd_seq_get_queue_timer +#undef snd_seq_set_queue_timer +#undef snd_seq_free_event +#undef snd_seq_event_length +#undef snd_seq_event_output +#undef snd_seq_event_output_buffer +#undef snd_seq_event_output_direct +#undef snd_seq_event_input +#undef snd_seq_event_input_pending +#undef snd_seq_drain_output +#undef snd_seq_event_output_pending +#undef snd_seq_extract_output +#undef snd_seq_drop_output +#undef snd_seq_drop_output_buffer +#undef snd_seq_drop_input +#undef snd_seq_drop_input_buffer +#undef snd_seq_remove_events_sizeof +#undef snd_seq_remove_events_malloc +#undef snd_seq_remove_events_free +#undef snd_seq_remove_events_copy +#undef snd_seq_remove_events_get_condition +#undef snd_seq_remove_events_get_queue +#undef snd_seq_remove_events_get_time +#undef snd_seq_remove_events_get_dest +#undef snd_seq_remove_events_get_channel +#undef snd_seq_remove_events_get_event_type +#undef snd_seq_remove_events_get_tag +#undef snd_seq_remove_events_set_condition +#undef snd_seq_remove_events_set_queue +#undef snd_seq_remove_events_set_time +#undef snd_seq_remove_events_set_dest +#undef snd_seq_remove_events_set_channel +#undef snd_seq_remove_events_set_event_type +#undef snd_seq_remove_events_set_tag +#undef snd_seq_remove_events +#undef snd_seq_set_bit +#undef snd_seq_unset_bit +#undef snd_seq_change_bit +#undef snd_seq_get_bit +#undef snd_seq_control_queue +#undef snd_seq_create_simple_port +#undef snd_seq_delete_simple_port +#undef snd_seq_connect_from +#undef snd_seq_connect_to +#undef snd_seq_disconnect_from +#undef snd_seq_disconnect_to +#undef snd_seq_set_client_name +#undef snd_seq_set_client_event_filter +#undef snd_seq_set_client_pool_output +#undef snd_seq_set_client_pool_output_room +#undef snd_seq_set_client_pool_input +#undef snd_seq_sync_output_queue +#undef snd_seq_parse_address +#undef snd_seq_reset_pool_output +#undef snd_seq_reset_pool_input +#undef snd_midi_event_new +#undef snd_midi_event_resize_buffer +#undef snd_midi_event_free +#undef snd_midi_event_init +#undef snd_midi_event_reset_encode +#undef snd_midi_event_reset_decode +#undef snd_midi_event_no_status +#undef snd_midi_event_encode +#undef snd_midi_event_encode_byte +#undef snd_midi_event_decode +#ifdef __cplusplus +extern "C" { +#endif +#define snd_asoundlib_version snd_asoundlib_version_dylibloader_wrapper_asound +#define snd_dlpath snd_dlpath_dylibloader_wrapper_asound +#define snd_dlopen snd_dlopen_dylibloader_wrapper_asound +#define snd_dlsym snd_dlsym_dylibloader_wrapper_asound +#define snd_dlclose snd_dlclose_dylibloader_wrapper_asound +#define snd_async_add_handler snd_async_add_handler_dylibloader_wrapper_asound +#define snd_async_del_handler snd_async_del_handler_dylibloader_wrapper_asound +#define snd_async_handler_get_fd snd_async_handler_get_fd_dylibloader_wrapper_asound +#define snd_async_handler_get_signo snd_async_handler_get_signo_dylibloader_wrapper_asound +#define snd_async_handler_get_callback_private snd_async_handler_get_callback_private_dylibloader_wrapper_asound +#define snd_shm_area_create snd_shm_area_create_dylibloader_wrapper_asound +#define snd_shm_area_share snd_shm_area_share_dylibloader_wrapper_asound +#define snd_shm_area_destroy snd_shm_area_destroy_dylibloader_wrapper_asound +#define snd_user_file snd_user_file_dylibloader_wrapper_asound +#define snd_input_stdio_open snd_input_stdio_open_dylibloader_wrapper_asound +#define snd_input_stdio_attach snd_input_stdio_attach_dylibloader_wrapper_asound +#define snd_input_buffer_open snd_input_buffer_open_dylibloader_wrapper_asound +#define snd_input_close snd_input_close_dylibloader_wrapper_asound +#define snd_input_scanf snd_input_scanf_dylibloader_wrapper_asound +#define snd_input_gets snd_input_gets_dylibloader_wrapper_asound +#define snd_input_getc snd_input_getc_dylibloader_wrapper_asound +#define snd_input_ungetc snd_input_ungetc_dylibloader_wrapper_asound +#define snd_output_stdio_open snd_output_stdio_open_dylibloader_wrapper_asound +#define snd_output_stdio_attach snd_output_stdio_attach_dylibloader_wrapper_asound +#define snd_output_buffer_open snd_output_buffer_open_dylibloader_wrapper_asound +#define snd_output_buffer_string snd_output_buffer_string_dylibloader_wrapper_asound +#define snd_output_close snd_output_close_dylibloader_wrapper_asound +#define snd_output_printf snd_output_printf_dylibloader_wrapper_asound +#define snd_output_vprintf snd_output_vprintf_dylibloader_wrapper_asound +#define snd_output_puts snd_output_puts_dylibloader_wrapper_asound +#define snd_output_putc snd_output_putc_dylibloader_wrapper_asound +#define snd_output_flush snd_output_flush_dylibloader_wrapper_asound +#define snd_strerror snd_strerror_dylibloader_wrapper_asound +#define snd_lib_error_set_handler snd_lib_error_set_handler_dylibloader_wrapper_asound +#define snd_lib_error_set_local snd_lib_error_set_local_dylibloader_wrapper_asound +#define snd_config_topdir snd_config_topdir_dylibloader_wrapper_asound +#define snd_config_top snd_config_top_dylibloader_wrapper_asound +#define snd_config_load snd_config_load_dylibloader_wrapper_asound +#define snd_config_load_override snd_config_load_override_dylibloader_wrapper_asound +#define snd_config_save snd_config_save_dylibloader_wrapper_asound +#define snd_config_update snd_config_update_dylibloader_wrapper_asound +#define snd_config_update_r snd_config_update_r_dylibloader_wrapper_asound +#define snd_config_update_free snd_config_update_free_dylibloader_wrapper_asound +#define snd_config_update_free_global snd_config_update_free_global_dylibloader_wrapper_asound +#define snd_config_update_ref snd_config_update_ref_dylibloader_wrapper_asound +#define snd_config_ref snd_config_ref_dylibloader_wrapper_asound +#define snd_config_unref snd_config_unref_dylibloader_wrapper_asound +#define snd_config_search snd_config_search_dylibloader_wrapper_asound +#define snd_config_searchv snd_config_searchv_dylibloader_wrapper_asound +#define snd_config_search_definition snd_config_search_definition_dylibloader_wrapper_asound +#define snd_config_expand snd_config_expand_dylibloader_wrapper_asound +#define snd_config_evaluate snd_config_evaluate_dylibloader_wrapper_asound +#define snd_config_add snd_config_add_dylibloader_wrapper_asound +#define snd_config_add_before snd_config_add_before_dylibloader_wrapper_asound +#define snd_config_add_after snd_config_add_after_dylibloader_wrapper_asound +#define snd_config_remove snd_config_remove_dylibloader_wrapper_asound +#define snd_config_delete snd_config_delete_dylibloader_wrapper_asound +#define snd_config_delete_compound_members snd_config_delete_compound_members_dylibloader_wrapper_asound +#define snd_config_copy snd_config_copy_dylibloader_wrapper_asound +#define snd_config_make snd_config_make_dylibloader_wrapper_asound +#define snd_config_make_integer snd_config_make_integer_dylibloader_wrapper_asound +#define snd_config_make_integer64 snd_config_make_integer64_dylibloader_wrapper_asound +#define snd_config_make_real snd_config_make_real_dylibloader_wrapper_asound +#define snd_config_make_string snd_config_make_string_dylibloader_wrapper_asound +#define snd_config_make_pointer snd_config_make_pointer_dylibloader_wrapper_asound +#define snd_config_make_compound snd_config_make_compound_dylibloader_wrapper_asound +#define snd_config_imake_integer snd_config_imake_integer_dylibloader_wrapper_asound +#define snd_config_imake_integer64 snd_config_imake_integer64_dylibloader_wrapper_asound +#define snd_config_imake_real snd_config_imake_real_dylibloader_wrapper_asound +#define snd_config_imake_string snd_config_imake_string_dylibloader_wrapper_asound +#define snd_config_imake_safe_string snd_config_imake_safe_string_dylibloader_wrapper_asound +#define snd_config_imake_pointer snd_config_imake_pointer_dylibloader_wrapper_asound +#define snd_config_get_type snd_config_get_type_dylibloader_wrapper_asound +#define snd_config_is_array snd_config_is_array_dylibloader_wrapper_asound +#define snd_config_set_id snd_config_set_id_dylibloader_wrapper_asound +#define snd_config_set_integer snd_config_set_integer_dylibloader_wrapper_asound +#define snd_config_set_integer64 snd_config_set_integer64_dylibloader_wrapper_asound +#define snd_config_set_real snd_config_set_real_dylibloader_wrapper_asound +#define snd_config_set_string snd_config_set_string_dylibloader_wrapper_asound +#define snd_config_set_ascii snd_config_set_ascii_dylibloader_wrapper_asound +#define snd_config_set_pointer snd_config_set_pointer_dylibloader_wrapper_asound +#define snd_config_get_id snd_config_get_id_dylibloader_wrapper_asound +#define snd_config_get_integer snd_config_get_integer_dylibloader_wrapper_asound +#define snd_config_get_integer64 snd_config_get_integer64_dylibloader_wrapper_asound +#define snd_config_get_real snd_config_get_real_dylibloader_wrapper_asound +#define snd_config_get_ireal snd_config_get_ireal_dylibloader_wrapper_asound +#define snd_config_get_string snd_config_get_string_dylibloader_wrapper_asound +#define snd_config_get_ascii snd_config_get_ascii_dylibloader_wrapper_asound +#define snd_config_get_pointer snd_config_get_pointer_dylibloader_wrapper_asound +#define snd_config_test_id snd_config_test_id_dylibloader_wrapper_asound +#define snd_config_iterator_first snd_config_iterator_first_dylibloader_wrapper_asound +#define snd_config_iterator_next snd_config_iterator_next_dylibloader_wrapper_asound +#define snd_config_iterator_end snd_config_iterator_end_dylibloader_wrapper_asound +#define snd_config_iterator_entry snd_config_iterator_entry_dylibloader_wrapper_asound +#define snd_config_get_bool_ascii snd_config_get_bool_ascii_dylibloader_wrapper_asound +#define snd_config_get_bool snd_config_get_bool_dylibloader_wrapper_asound +#define snd_config_get_ctl_iface_ascii snd_config_get_ctl_iface_ascii_dylibloader_wrapper_asound +#define snd_config_get_ctl_iface snd_config_get_ctl_iface_dylibloader_wrapper_asound +#define snd_names_list snd_names_list_dylibloader_wrapper_asound +#define snd_names_list_free snd_names_list_free_dylibloader_wrapper_asound +#define snd_pcm_open snd_pcm_open_dylibloader_wrapper_asound +#define snd_pcm_open_lconf snd_pcm_open_lconf_dylibloader_wrapper_asound +#define snd_pcm_open_fallback snd_pcm_open_fallback_dylibloader_wrapper_asound +#define snd_pcm_close snd_pcm_close_dylibloader_wrapper_asound +#define snd_pcm_name snd_pcm_name_dylibloader_wrapper_asound +#define snd_pcm_type snd_pcm_type_dylibloader_wrapper_asound +#define snd_pcm_stream snd_pcm_stream_dylibloader_wrapper_asound +#define snd_pcm_poll_descriptors_count snd_pcm_poll_descriptors_count_dylibloader_wrapper_asound +#define snd_pcm_poll_descriptors snd_pcm_poll_descriptors_dylibloader_wrapper_asound +#define snd_pcm_poll_descriptors_revents snd_pcm_poll_descriptors_revents_dylibloader_wrapper_asound +#define snd_pcm_nonblock snd_pcm_nonblock_dylibloader_wrapper_asound +#define snd_async_add_pcm_handler snd_async_add_pcm_handler_dylibloader_wrapper_asound +#define snd_async_handler_get_pcm snd_async_handler_get_pcm_dylibloader_wrapper_asound +#define snd_pcm_info snd_pcm_info_dylibloader_wrapper_asound +#define snd_pcm_hw_params_current snd_pcm_hw_params_current_dylibloader_wrapper_asound +#define snd_pcm_hw_params snd_pcm_hw_params_dylibloader_wrapper_asound +#define snd_pcm_hw_free snd_pcm_hw_free_dylibloader_wrapper_asound +#define snd_pcm_sw_params_current snd_pcm_sw_params_current_dylibloader_wrapper_asound +#define snd_pcm_sw_params snd_pcm_sw_params_dylibloader_wrapper_asound +#define snd_pcm_prepare snd_pcm_prepare_dylibloader_wrapper_asound +#define snd_pcm_reset snd_pcm_reset_dylibloader_wrapper_asound +#define snd_pcm_status snd_pcm_status_dylibloader_wrapper_asound +#define snd_pcm_start snd_pcm_start_dylibloader_wrapper_asound +#define snd_pcm_drop snd_pcm_drop_dylibloader_wrapper_asound +#define snd_pcm_drain snd_pcm_drain_dylibloader_wrapper_asound +#define snd_pcm_pause snd_pcm_pause_dylibloader_wrapper_asound +#define snd_pcm_state snd_pcm_state_dylibloader_wrapper_asound +#define snd_pcm_hwsync snd_pcm_hwsync_dylibloader_wrapper_asound +#define snd_pcm_delay snd_pcm_delay_dylibloader_wrapper_asound +#define snd_pcm_resume snd_pcm_resume_dylibloader_wrapper_asound +#define snd_pcm_htimestamp snd_pcm_htimestamp_dylibloader_wrapper_asound +#define snd_pcm_avail snd_pcm_avail_dylibloader_wrapper_asound +#define snd_pcm_avail_update snd_pcm_avail_update_dylibloader_wrapper_asound +#define snd_pcm_avail_delay snd_pcm_avail_delay_dylibloader_wrapper_asound +#define snd_pcm_rewindable snd_pcm_rewindable_dylibloader_wrapper_asound +#define snd_pcm_rewind snd_pcm_rewind_dylibloader_wrapper_asound +#define snd_pcm_forwardable snd_pcm_forwardable_dylibloader_wrapper_asound +#define snd_pcm_forward snd_pcm_forward_dylibloader_wrapper_asound +#define snd_pcm_writei snd_pcm_writei_dylibloader_wrapper_asound +#define snd_pcm_readi snd_pcm_readi_dylibloader_wrapper_asound +#define snd_pcm_writen snd_pcm_writen_dylibloader_wrapper_asound +#define snd_pcm_readn snd_pcm_readn_dylibloader_wrapper_asound +#define snd_pcm_wait snd_pcm_wait_dylibloader_wrapper_asound +#define snd_pcm_link snd_pcm_link_dylibloader_wrapper_asound +#define snd_pcm_unlink snd_pcm_unlink_dylibloader_wrapper_asound +#define snd_pcm_query_chmaps snd_pcm_query_chmaps_dylibloader_wrapper_asound +#define snd_pcm_query_chmaps_from_hw snd_pcm_query_chmaps_from_hw_dylibloader_wrapper_asound +#define snd_pcm_free_chmaps snd_pcm_free_chmaps_dylibloader_wrapper_asound +#define snd_pcm_get_chmap snd_pcm_get_chmap_dylibloader_wrapper_asound +#define snd_pcm_set_chmap snd_pcm_set_chmap_dylibloader_wrapper_asound +#define snd_pcm_chmap_type_name snd_pcm_chmap_type_name_dylibloader_wrapper_asound +#define snd_pcm_chmap_name snd_pcm_chmap_name_dylibloader_wrapper_asound +#define snd_pcm_chmap_long_name snd_pcm_chmap_long_name_dylibloader_wrapper_asound +#define snd_pcm_chmap_print snd_pcm_chmap_print_dylibloader_wrapper_asound +#define snd_pcm_chmap_from_string snd_pcm_chmap_from_string_dylibloader_wrapper_asound +#define snd_pcm_chmap_parse_string snd_pcm_chmap_parse_string_dylibloader_wrapper_asound +#define snd_pcm_recover snd_pcm_recover_dylibloader_wrapper_asound +#define snd_pcm_set_params snd_pcm_set_params_dylibloader_wrapper_asound +#define snd_pcm_get_params snd_pcm_get_params_dylibloader_wrapper_asound +#define snd_pcm_info_sizeof snd_pcm_info_sizeof_dylibloader_wrapper_asound +#define snd_pcm_info_malloc snd_pcm_info_malloc_dylibloader_wrapper_asound +#define snd_pcm_info_free snd_pcm_info_free_dylibloader_wrapper_asound +#define snd_pcm_info_copy snd_pcm_info_copy_dylibloader_wrapper_asound +#define snd_pcm_info_get_device snd_pcm_info_get_device_dylibloader_wrapper_asound +#define snd_pcm_info_get_subdevice snd_pcm_info_get_subdevice_dylibloader_wrapper_asound +#define snd_pcm_info_get_stream snd_pcm_info_get_stream_dylibloader_wrapper_asound +#define snd_pcm_info_get_card snd_pcm_info_get_card_dylibloader_wrapper_asound +#define snd_pcm_info_get_id snd_pcm_info_get_id_dylibloader_wrapper_asound +#define snd_pcm_info_get_name snd_pcm_info_get_name_dylibloader_wrapper_asound +#define snd_pcm_info_get_subdevice_name snd_pcm_info_get_subdevice_name_dylibloader_wrapper_asound +#define snd_pcm_info_get_class snd_pcm_info_get_class_dylibloader_wrapper_asound +#define snd_pcm_info_get_subclass snd_pcm_info_get_subclass_dylibloader_wrapper_asound +#define snd_pcm_info_get_subdevices_count snd_pcm_info_get_subdevices_count_dylibloader_wrapper_asound +#define snd_pcm_info_get_subdevices_avail snd_pcm_info_get_subdevices_avail_dylibloader_wrapper_asound +#define snd_pcm_info_get_sync snd_pcm_info_get_sync_dylibloader_wrapper_asound +#define snd_pcm_info_set_device snd_pcm_info_set_device_dylibloader_wrapper_asound +#define snd_pcm_info_set_subdevice snd_pcm_info_set_subdevice_dylibloader_wrapper_asound +#define snd_pcm_info_set_stream snd_pcm_info_set_stream_dylibloader_wrapper_asound +#define snd_pcm_hw_params_any snd_pcm_hw_params_any_dylibloader_wrapper_asound +#define snd_pcm_hw_params_can_mmap_sample_resolution snd_pcm_hw_params_can_mmap_sample_resolution_dylibloader_wrapper_asound +#define snd_pcm_hw_params_is_double snd_pcm_hw_params_is_double_dylibloader_wrapper_asound +#define snd_pcm_hw_params_is_batch snd_pcm_hw_params_is_batch_dylibloader_wrapper_asound +#define snd_pcm_hw_params_is_block_transfer snd_pcm_hw_params_is_block_transfer_dylibloader_wrapper_asound +#define snd_pcm_hw_params_is_monotonic snd_pcm_hw_params_is_monotonic_dylibloader_wrapper_asound +#define snd_pcm_hw_params_can_overrange snd_pcm_hw_params_can_overrange_dylibloader_wrapper_asound +#define snd_pcm_hw_params_can_pause snd_pcm_hw_params_can_pause_dylibloader_wrapper_asound +#define snd_pcm_hw_params_can_resume snd_pcm_hw_params_can_resume_dylibloader_wrapper_asound +#define snd_pcm_hw_params_is_half_duplex snd_pcm_hw_params_is_half_duplex_dylibloader_wrapper_asound +#define snd_pcm_hw_params_is_joint_duplex snd_pcm_hw_params_is_joint_duplex_dylibloader_wrapper_asound +#define snd_pcm_hw_params_can_sync_start snd_pcm_hw_params_can_sync_start_dylibloader_wrapper_asound +#define snd_pcm_hw_params_can_disable_period_wakeup snd_pcm_hw_params_can_disable_period_wakeup_dylibloader_wrapper_asound +#define snd_pcm_hw_params_supports_audio_wallclock_ts snd_pcm_hw_params_supports_audio_wallclock_ts_dylibloader_wrapper_asound +#define snd_pcm_hw_params_supports_audio_ts_type snd_pcm_hw_params_supports_audio_ts_type_dylibloader_wrapper_asound +#define snd_pcm_hw_params_get_rate_numden snd_pcm_hw_params_get_rate_numden_dylibloader_wrapper_asound +#define snd_pcm_hw_params_get_sbits snd_pcm_hw_params_get_sbits_dylibloader_wrapper_asound +#define snd_pcm_hw_params_get_fifo_size snd_pcm_hw_params_get_fifo_size_dylibloader_wrapper_asound +#define snd_pcm_hw_params_sizeof snd_pcm_hw_params_sizeof_dylibloader_wrapper_asound +#define snd_pcm_hw_params_malloc snd_pcm_hw_params_malloc_dylibloader_wrapper_asound +#define snd_pcm_hw_params_free snd_pcm_hw_params_free_dylibloader_wrapper_asound +#define snd_pcm_hw_params_copy snd_pcm_hw_params_copy_dylibloader_wrapper_asound +#define snd_pcm_hw_params_get_access snd_pcm_hw_params_get_access_dylibloader_wrapper_asound +#define snd_pcm_hw_params_test_access snd_pcm_hw_params_test_access_dylibloader_wrapper_asound +#define snd_pcm_hw_params_set_access snd_pcm_hw_params_set_access_dylibloader_wrapper_asound +#define snd_pcm_hw_params_set_access_first snd_pcm_hw_params_set_access_first_dylibloader_wrapper_asound +#define snd_pcm_hw_params_set_access_last snd_pcm_hw_params_set_access_last_dylibloader_wrapper_asound +#define snd_pcm_hw_params_set_access_mask snd_pcm_hw_params_set_access_mask_dylibloader_wrapper_asound +#define snd_pcm_hw_params_get_access_mask snd_pcm_hw_params_get_access_mask_dylibloader_wrapper_asound +#define snd_pcm_hw_params_get_format snd_pcm_hw_params_get_format_dylibloader_wrapper_asound +#define snd_pcm_hw_params_test_format snd_pcm_hw_params_test_format_dylibloader_wrapper_asound +#define snd_pcm_hw_params_set_format snd_pcm_hw_params_set_format_dylibloader_wrapper_asound +#define snd_pcm_hw_params_set_format_first snd_pcm_hw_params_set_format_first_dylibloader_wrapper_asound +#define snd_pcm_hw_params_set_format_last snd_pcm_hw_params_set_format_last_dylibloader_wrapper_asound +#define snd_pcm_hw_params_set_format_mask snd_pcm_hw_params_set_format_mask_dylibloader_wrapper_asound +#define snd_pcm_hw_params_get_format_mask snd_pcm_hw_params_get_format_mask_dylibloader_wrapper_asound +#define snd_pcm_hw_params_get_subformat snd_pcm_hw_params_get_subformat_dylibloader_wrapper_asound +#define snd_pcm_hw_params_test_subformat snd_pcm_hw_params_test_subformat_dylibloader_wrapper_asound +#define snd_pcm_hw_params_set_subformat snd_pcm_hw_params_set_subformat_dylibloader_wrapper_asound +#define snd_pcm_hw_params_set_subformat_first snd_pcm_hw_params_set_subformat_first_dylibloader_wrapper_asound +#define snd_pcm_hw_params_set_subformat_last snd_pcm_hw_params_set_subformat_last_dylibloader_wrapper_asound +#define snd_pcm_hw_params_set_subformat_mask snd_pcm_hw_params_set_subformat_mask_dylibloader_wrapper_asound +#define snd_pcm_hw_params_get_subformat_mask snd_pcm_hw_params_get_subformat_mask_dylibloader_wrapper_asound +#define snd_pcm_hw_params_get_channels snd_pcm_hw_params_get_channels_dylibloader_wrapper_asound +#define snd_pcm_hw_params_get_channels_min snd_pcm_hw_params_get_channels_min_dylibloader_wrapper_asound +#define snd_pcm_hw_params_get_channels_max snd_pcm_hw_params_get_channels_max_dylibloader_wrapper_asound +#define snd_pcm_hw_params_test_channels snd_pcm_hw_params_test_channels_dylibloader_wrapper_asound +#define snd_pcm_hw_params_set_channels snd_pcm_hw_params_set_channels_dylibloader_wrapper_asound +#define snd_pcm_hw_params_set_channels_min snd_pcm_hw_params_set_channels_min_dylibloader_wrapper_asound +#define snd_pcm_hw_params_set_channels_max snd_pcm_hw_params_set_channels_max_dylibloader_wrapper_asound +#define snd_pcm_hw_params_set_channels_minmax snd_pcm_hw_params_set_channels_minmax_dylibloader_wrapper_asound +#define snd_pcm_hw_params_set_channels_near snd_pcm_hw_params_set_channels_near_dylibloader_wrapper_asound +#define snd_pcm_hw_params_set_channels_first snd_pcm_hw_params_set_channels_first_dylibloader_wrapper_asound +#define snd_pcm_hw_params_set_channels_last snd_pcm_hw_params_set_channels_last_dylibloader_wrapper_asound +#define snd_pcm_hw_params_get_rate snd_pcm_hw_params_get_rate_dylibloader_wrapper_asound +#define snd_pcm_hw_params_get_rate_min snd_pcm_hw_params_get_rate_min_dylibloader_wrapper_asound +#define snd_pcm_hw_params_get_rate_max snd_pcm_hw_params_get_rate_max_dylibloader_wrapper_asound +#define snd_pcm_hw_params_test_rate snd_pcm_hw_params_test_rate_dylibloader_wrapper_asound +#define snd_pcm_hw_params_set_rate snd_pcm_hw_params_set_rate_dylibloader_wrapper_asound +#define snd_pcm_hw_params_set_rate_min snd_pcm_hw_params_set_rate_min_dylibloader_wrapper_asound +#define snd_pcm_hw_params_set_rate_max snd_pcm_hw_params_set_rate_max_dylibloader_wrapper_asound +#define snd_pcm_hw_params_set_rate_minmax snd_pcm_hw_params_set_rate_minmax_dylibloader_wrapper_asound +#define snd_pcm_hw_params_set_rate_near snd_pcm_hw_params_set_rate_near_dylibloader_wrapper_asound +#define snd_pcm_hw_params_set_rate_first snd_pcm_hw_params_set_rate_first_dylibloader_wrapper_asound +#define snd_pcm_hw_params_set_rate_last snd_pcm_hw_params_set_rate_last_dylibloader_wrapper_asound +#define snd_pcm_hw_params_set_rate_resample snd_pcm_hw_params_set_rate_resample_dylibloader_wrapper_asound +#define snd_pcm_hw_params_get_rate_resample snd_pcm_hw_params_get_rate_resample_dylibloader_wrapper_asound +#define snd_pcm_hw_params_set_export_buffer snd_pcm_hw_params_set_export_buffer_dylibloader_wrapper_asound +#define snd_pcm_hw_params_get_export_buffer snd_pcm_hw_params_get_export_buffer_dylibloader_wrapper_asound +#define snd_pcm_hw_params_set_period_wakeup snd_pcm_hw_params_set_period_wakeup_dylibloader_wrapper_asound +#define snd_pcm_hw_params_get_period_wakeup snd_pcm_hw_params_get_period_wakeup_dylibloader_wrapper_asound +#define snd_pcm_hw_params_get_period_time snd_pcm_hw_params_get_period_time_dylibloader_wrapper_asound +#define snd_pcm_hw_params_get_period_time_min snd_pcm_hw_params_get_period_time_min_dylibloader_wrapper_asound +#define snd_pcm_hw_params_get_period_time_max snd_pcm_hw_params_get_period_time_max_dylibloader_wrapper_asound +#define snd_pcm_hw_params_test_period_time snd_pcm_hw_params_test_period_time_dylibloader_wrapper_asound +#define snd_pcm_hw_params_set_period_time snd_pcm_hw_params_set_period_time_dylibloader_wrapper_asound +#define snd_pcm_hw_params_set_period_time_min snd_pcm_hw_params_set_period_time_min_dylibloader_wrapper_asound +#define snd_pcm_hw_params_set_period_time_max snd_pcm_hw_params_set_period_time_max_dylibloader_wrapper_asound +#define snd_pcm_hw_params_set_period_time_minmax snd_pcm_hw_params_set_period_time_minmax_dylibloader_wrapper_asound +#define snd_pcm_hw_params_set_period_time_near snd_pcm_hw_params_set_period_time_near_dylibloader_wrapper_asound +#define snd_pcm_hw_params_set_period_time_first snd_pcm_hw_params_set_period_time_first_dylibloader_wrapper_asound +#define snd_pcm_hw_params_set_period_time_last snd_pcm_hw_params_set_period_time_last_dylibloader_wrapper_asound +#define snd_pcm_hw_params_get_period_size snd_pcm_hw_params_get_period_size_dylibloader_wrapper_asound +#define snd_pcm_hw_params_get_period_size_min snd_pcm_hw_params_get_period_size_min_dylibloader_wrapper_asound +#define snd_pcm_hw_params_get_period_size_max snd_pcm_hw_params_get_period_size_max_dylibloader_wrapper_asound +#define snd_pcm_hw_params_test_period_size snd_pcm_hw_params_test_period_size_dylibloader_wrapper_asound +#define snd_pcm_hw_params_set_period_size snd_pcm_hw_params_set_period_size_dylibloader_wrapper_asound +#define snd_pcm_hw_params_set_period_size_min snd_pcm_hw_params_set_period_size_min_dylibloader_wrapper_asound +#define snd_pcm_hw_params_set_period_size_max snd_pcm_hw_params_set_period_size_max_dylibloader_wrapper_asound +#define snd_pcm_hw_params_set_period_size_minmax snd_pcm_hw_params_set_period_size_minmax_dylibloader_wrapper_asound +#define snd_pcm_hw_params_set_period_size_near snd_pcm_hw_params_set_period_size_near_dylibloader_wrapper_asound +#define snd_pcm_hw_params_set_period_size_first snd_pcm_hw_params_set_period_size_first_dylibloader_wrapper_asound +#define snd_pcm_hw_params_set_period_size_last snd_pcm_hw_params_set_period_size_last_dylibloader_wrapper_asound +#define snd_pcm_hw_params_set_period_size_integer snd_pcm_hw_params_set_period_size_integer_dylibloader_wrapper_asound +#define snd_pcm_hw_params_get_periods snd_pcm_hw_params_get_periods_dylibloader_wrapper_asound +#define snd_pcm_hw_params_get_periods_min snd_pcm_hw_params_get_periods_min_dylibloader_wrapper_asound +#define snd_pcm_hw_params_get_periods_max snd_pcm_hw_params_get_periods_max_dylibloader_wrapper_asound +#define snd_pcm_hw_params_test_periods snd_pcm_hw_params_test_periods_dylibloader_wrapper_asound +#define snd_pcm_hw_params_set_periods snd_pcm_hw_params_set_periods_dylibloader_wrapper_asound +#define snd_pcm_hw_params_set_periods_min snd_pcm_hw_params_set_periods_min_dylibloader_wrapper_asound +#define snd_pcm_hw_params_set_periods_max snd_pcm_hw_params_set_periods_max_dylibloader_wrapper_asound +#define snd_pcm_hw_params_set_periods_minmax snd_pcm_hw_params_set_periods_minmax_dylibloader_wrapper_asound +#define snd_pcm_hw_params_set_periods_near snd_pcm_hw_params_set_periods_near_dylibloader_wrapper_asound +#define snd_pcm_hw_params_set_periods_first snd_pcm_hw_params_set_periods_first_dylibloader_wrapper_asound +#define snd_pcm_hw_params_set_periods_last snd_pcm_hw_params_set_periods_last_dylibloader_wrapper_asound +#define snd_pcm_hw_params_set_periods_integer snd_pcm_hw_params_set_periods_integer_dylibloader_wrapper_asound +#define snd_pcm_hw_params_get_buffer_time snd_pcm_hw_params_get_buffer_time_dylibloader_wrapper_asound +#define snd_pcm_hw_params_get_buffer_time_min snd_pcm_hw_params_get_buffer_time_min_dylibloader_wrapper_asound +#define snd_pcm_hw_params_get_buffer_time_max snd_pcm_hw_params_get_buffer_time_max_dylibloader_wrapper_asound +#define snd_pcm_hw_params_test_buffer_time snd_pcm_hw_params_test_buffer_time_dylibloader_wrapper_asound +#define snd_pcm_hw_params_set_buffer_time snd_pcm_hw_params_set_buffer_time_dylibloader_wrapper_asound +#define snd_pcm_hw_params_set_buffer_time_min snd_pcm_hw_params_set_buffer_time_min_dylibloader_wrapper_asound +#define snd_pcm_hw_params_set_buffer_time_max snd_pcm_hw_params_set_buffer_time_max_dylibloader_wrapper_asound +#define snd_pcm_hw_params_set_buffer_time_minmax snd_pcm_hw_params_set_buffer_time_minmax_dylibloader_wrapper_asound +#define snd_pcm_hw_params_set_buffer_time_near snd_pcm_hw_params_set_buffer_time_near_dylibloader_wrapper_asound +#define snd_pcm_hw_params_set_buffer_time_first snd_pcm_hw_params_set_buffer_time_first_dylibloader_wrapper_asound +#define snd_pcm_hw_params_set_buffer_time_last snd_pcm_hw_params_set_buffer_time_last_dylibloader_wrapper_asound +#define snd_pcm_hw_params_get_buffer_size snd_pcm_hw_params_get_buffer_size_dylibloader_wrapper_asound +#define snd_pcm_hw_params_get_buffer_size_min snd_pcm_hw_params_get_buffer_size_min_dylibloader_wrapper_asound +#define snd_pcm_hw_params_get_buffer_size_max snd_pcm_hw_params_get_buffer_size_max_dylibloader_wrapper_asound +#define snd_pcm_hw_params_test_buffer_size snd_pcm_hw_params_test_buffer_size_dylibloader_wrapper_asound +#define snd_pcm_hw_params_set_buffer_size snd_pcm_hw_params_set_buffer_size_dylibloader_wrapper_asound +#define snd_pcm_hw_params_set_buffer_size_min snd_pcm_hw_params_set_buffer_size_min_dylibloader_wrapper_asound +#define snd_pcm_hw_params_set_buffer_size_max snd_pcm_hw_params_set_buffer_size_max_dylibloader_wrapper_asound +#define snd_pcm_hw_params_set_buffer_size_minmax snd_pcm_hw_params_set_buffer_size_minmax_dylibloader_wrapper_asound +#define snd_pcm_hw_params_set_buffer_size_near snd_pcm_hw_params_set_buffer_size_near_dylibloader_wrapper_asound +#define snd_pcm_hw_params_set_buffer_size_first snd_pcm_hw_params_set_buffer_size_first_dylibloader_wrapper_asound +#define snd_pcm_hw_params_set_buffer_size_last snd_pcm_hw_params_set_buffer_size_last_dylibloader_wrapper_asound +#define snd_pcm_hw_params_get_min_align snd_pcm_hw_params_get_min_align_dylibloader_wrapper_asound +#define snd_pcm_sw_params_sizeof snd_pcm_sw_params_sizeof_dylibloader_wrapper_asound +#define snd_pcm_sw_params_malloc snd_pcm_sw_params_malloc_dylibloader_wrapper_asound +#define snd_pcm_sw_params_free snd_pcm_sw_params_free_dylibloader_wrapper_asound +#define snd_pcm_sw_params_copy snd_pcm_sw_params_copy_dylibloader_wrapper_asound +#define snd_pcm_sw_params_get_boundary snd_pcm_sw_params_get_boundary_dylibloader_wrapper_asound +#define snd_pcm_sw_params_set_tstamp_mode snd_pcm_sw_params_set_tstamp_mode_dylibloader_wrapper_asound +#define snd_pcm_sw_params_get_tstamp_mode snd_pcm_sw_params_get_tstamp_mode_dylibloader_wrapper_asound +#define snd_pcm_sw_params_set_tstamp_type snd_pcm_sw_params_set_tstamp_type_dylibloader_wrapper_asound +#define snd_pcm_sw_params_get_tstamp_type snd_pcm_sw_params_get_tstamp_type_dylibloader_wrapper_asound +#define snd_pcm_sw_params_set_avail_min snd_pcm_sw_params_set_avail_min_dylibloader_wrapper_asound +#define snd_pcm_sw_params_get_avail_min snd_pcm_sw_params_get_avail_min_dylibloader_wrapper_asound +#define snd_pcm_sw_params_set_period_event snd_pcm_sw_params_set_period_event_dylibloader_wrapper_asound +#define snd_pcm_sw_params_get_period_event snd_pcm_sw_params_get_period_event_dylibloader_wrapper_asound +#define snd_pcm_sw_params_set_start_threshold snd_pcm_sw_params_set_start_threshold_dylibloader_wrapper_asound +#define snd_pcm_sw_params_get_start_threshold snd_pcm_sw_params_get_start_threshold_dylibloader_wrapper_asound +#define snd_pcm_sw_params_set_stop_threshold snd_pcm_sw_params_set_stop_threshold_dylibloader_wrapper_asound +#define snd_pcm_sw_params_get_stop_threshold snd_pcm_sw_params_get_stop_threshold_dylibloader_wrapper_asound +#define snd_pcm_sw_params_set_silence_threshold snd_pcm_sw_params_set_silence_threshold_dylibloader_wrapper_asound +#define snd_pcm_sw_params_get_silence_threshold snd_pcm_sw_params_get_silence_threshold_dylibloader_wrapper_asound +#define snd_pcm_sw_params_set_silence_size snd_pcm_sw_params_set_silence_size_dylibloader_wrapper_asound +#define snd_pcm_sw_params_get_silence_size snd_pcm_sw_params_get_silence_size_dylibloader_wrapper_asound +#define snd_pcm_access_mask_sizeof snd_pcm_access_mask_sizeof_dylibloader_wrapper_asound +#define snd_pcm_access_mask_malloc snd_pcm_access_mask_malloc_dylibloader_wrapper_asound +#define snd_pcm_access_mask_free snd_pcm_access_mask_free_dylibloader_wrapper_asound +#define snd_pcm_access_mask_copy snd_pcm_access_mask_copy_dylibloader_wrapper_asound +#define snd_pcm_access_mask_none snd_pcm_access_mask_none_dylibloader_wrapper_asound +#define snd_pcm_access_mask_any snd_pcm_access_mask_any_dylibloader_wrapper_asound +#define snd_pcm_access_mask_test snd_pcm_access_mask_test_dylibloader_wrapper_asound +#define snd_pcm_access_mask_empty snd_pcm_access_mask_empty_dylibloader_wrapper_asound +#define snd_pcm_access_mask_set snd_pcm_access_mask_set_dylibloader_wrapper_asound +#define snd_pcm_access_mask_reset snd_pcm_access_mask_reset_dylibloader_wrapper_asound +#define snd_pcm_format_mask_sizeof snd_pcm_format_mask_sizeof_dylibloader_wrapper_asound +#define snd_pcm_format_mask_malloc snd_pcm_format_mask_malloc_dylibloader_wrapper_asound +#define snd_pcm_format_mask_free snd_pcm_format_mask_free_dylibloader_wrapper_asound +#define snd_pcm_format_mask_copy snd_pcm_format_mask_copy_dylibloader_wrapper_asound +#define snd_pcm_format_mask_none snd_pcm_format_mask_none_dylibloader_wrapper_asound +#define snd_pcm_format_mask_any snd_pcm_format_mask_any_dylibloader_wrapper_asound +#define snd_pcm_format_mask_test snd_pcm_format_mask_test_dylibloader_wrapper_asound +#define snd_pcm_format_mask_empty snd_pcm_format_mask_empty_dylibloader_wrapper_asound +#define snd_pcm_format_mask_set snd_pcm_format_mask_set_dylibloader_wrapper_asound +#define snd_pcm_format_mask_reset snd_pcm_format_mask_reset_dylibloader_wrapper_asound +#define snd_pcm_subformat_mask_sizeof snd_pcm_subformat_mask_sizeof_dylibloader_wrapper_asound +#define snd_pcm_subformat_mask_malloc snd_pcm_subformat_mask_malloc_dylibloader_wrapper_asound +#define snd_pcm_subformat_mask_free snd_pcm_subformat_mask_free_dylibloader_wrapper_asound +#define snd_pcm_subformat_mask_copy snd_pcm_subformat_mask_copy_dylibloader_wrapper_asound +#define snd_pcm_subformat_mask_none snd_pcm_subformat_mask_none_dylibloader_wrapper_asound +#define snd_pcm_subformat_mask_any snd_pcm_subformat_mask_any_dylibloader_wrapper_asound +#define snd_pcm_subformat_mask_test snd_pcm_subformat_mask_test_dylibloader_wrapper_asound +#define snd_pcm_subformat_mask_empty snd_pcm_subformat_mask_empty_dylibloader_wrapper_asound +#define snd_pcm_subformat_mask_set snd_pcm_subformat_mask_set_dylibloader_wrapper_asound +#define snd_pcm_subformat_mask_reset snd_pcm_subformat_mask_reset_dylibloader_wrapper_asound +#define snd_pcm_status_sizeof snd_pcm_status_sizeof_dylibloader_wrapper_asound +#define snd_pcm_status_malloc snd_pcm_status_malloc_dylibloader_wrapper_asound +#define snd_pcm_status_free snd_pcm_status_free_dylibloader_wrapper_asound +#define snd_pcm_status_copy snd_pcm_status_copy_dylibloader_wrapper_asound +#define snd_pcm_status_get_state snd_pcm_status_get_state_dylibloader_wrapper_asound +#define snd_pcm_status_get_trigger_tstamp snd_pcm_status_get_trigger_tstamp_dylibloader_wrapper_asound +#define snd_pcm_status_get_trigger_htstamp snd_pcm_status_get_trigger_htstamp_dylibloader_wrapper_asound +#define snd_pcm_status_get_tstamp snd_pcm_status_get_tstamp_dylibloader_wrapper_asound +#define snd_pcm_status_get_htstamp snd_pcm_status_get_htstamp_dylibloader_wrapper_asound +#define snd_pcm_status_get_audio_htstamp snd_pcm_status_get_audio_htstamp_dylibloader_wrapper_asound +#define snd_pcm_status_get_driver_htstamp snd_pcm_status_get_driver_htstamp_dylibloader_wrapper_asound +#define snd_pcm_status_get_audio_htstamp_report snd_pcm_status_get_audio_htstamp_report_dylibloader_wrapper_asound +#define snd_pcm_status_set_audio_htstamp_config snd_pcm_status_set_audio_htstamp_config_dylibloader_wrapper_asound +#define snd_pcm_status_get_delay snd_pcm_status_get_delay_dylibloader_wrapper_asound +#define snd_pcm_status_get_avail snd_pcm_status_get_avail_dylibloader_wrapper_asound +#define snd_pcm_status_get_avail_max snd_pcm_status_get_avail_max_dylibloader_wrapper_asound +#define snd_pcm_status_get_overrange snd_pcm_status_get_overrange_dylibloader_wrapper_asound +#define snd_pcm_type_name snd_pcm_type_name_dylibloader_wrapper_asound +#define snd_pcm_stream_name snd_pcm_stream_name_dylibloader_wrapper_asound +#define snd_pcm_access_name snd_pcm_access_name_dylibloader_wrapper_asound +#define snd_pcm_format_name snd_pcm_format_name_dylibloader_wrapper_asound +#define snd_pcm_format_description snd_pcm_format_description_dylibloader_wrapper_asound +#define snd_pcm_subformat_name snd_pcm_subformat_name_dylibloader_wrapper_asound +#define snd_pcm_subformat_description snd_pcm_subformat_description_dylibloader_wrapper_asound +#define snd_pcm_format_value snd_pcm_format_value_dylibloader_wrapper_asound +#define snd_pcm_tstamp_mode_name snd_pcm_tstamp_mode_name_dylibloader_wrapper_asound +#define snd_pcm_state_name snd_pcm_state_name_dylibloader_wrapper_asound +#define snd_pcm_dump snd_pcm_dump_dylibloader_wrapper_asound +#define snd_pcm_dump_hw_setup snd_pcm_dump_hw_setup_dylibloader_wrapper_asound +#define snd_pcm_dump_sw_setup snd_pcm_dump_sw_setup_dylibloader_wrapper_asound +#define snd_pcm_dump_setup snd_pcm_dump_setup_dylibloader_wrapper_asound +#define snd_pcm_hw_params_dump snd_pcm_hw_params_dump_dylibloader_wrapper_asound +#define snd_pcm_sw_params_dump snd_pcm_sw_params_dump_dylibloader_wrapper_asound +#define snd_pcm_status_dump snd_pcm_status_dump_dylibloader_wrapper_asound +#define snd_pcm_mmap_begin snd_pcm_mmap_begin_dylibloader_wrapper_asound +#define snd_pcm_mmap_commit snd_pcm_mmap_commit_dylibloader_wrapper_asound +#define snd_pcm_mmap_writei snd_pcm_mmap_writei_dylibloader_wrapper_asound +#define snd_pcm_mmap_readi snd_pcm_mmap_readi_dylibloader_wrapper_asound +#define snd_pcm_mmap_writen snd_pcm_mmap_writen_dylibloader_wrapper_asound +#define snd_pcm_mmap_readn snd_pcm_mmap_readn_dylibloader_wrapper_asound +#define snd_pcm_format_signed snd_pcm_format_signed_dylibloader_wrapper_asound +#define snd_pcm_format_unsigned snd_pcm_format_unsigned_dylibloader_wrapper_asound +#define snd_pcm_format_linear snd_pcm_format_linear_dylibloader_wrapper_asound +#define snd_pcm_format_float snd_pcm_format_float_dylibloader_wrapper_asound +#define snd_pcm_format_little_endian snd_pcm_format_little_endian_dylibloader_wrapper_asound +#define snd_pcm_format_big_endian snd_pcm_format_big_endian_dylibloader_wrapper_asound +#define snd_pcm_format_cpu_endian snd_pcm_format_cpu_endian_dylibloader_wrapper_asound +#define snd_pcm_format_width snd_pcm_format_width_dylibloader_wrapper_asound +#define snd_pcm_format_physical_width snd_pcm_format_physical_width_dylibloader_wrapper_asound +#define snd_pcm_build_linear_format snd_pcm_build_linear_format_dylibloader_wrapper_asound +#define snd_pcm_format_size snd_pcm_format_size_dylibloader_wrapper_asound +#define snd_pcm_format_silence snd_pcm_format_silence_dylibloader_wrapper_asound +#define snd_pcm_format_silence_16 snd_pcm_format_silence_16_dylibloader_wrapper_asound +#define snd_pcm_format_silence_32 snd_pcm_format_silence_32_dylibloader_wrapper_asound +#define snd_pcm_format_silence_64 snd_pcm_format_silence_64_dylibloader_wrapper_asound +#define snd_pcm_format_set_silence snd_pcm_format_set_silence_dylibloader_wrapper_asound +#define snd_pcm_bytes_to_frames snd_pcm_bytes_to_frames_dylibloader_wrapper_asound +#define snd_pcm_frames_to_bytes snd_pcm_frames_to_bytes_dylibloader_wrapper_asound +#define snd_pcm_bytes_to_samples snd_pcm_bytes_to_samples_dylibloader_wrapper_asound +#define snd_pcm_samples_to_bytes snd_pcm_samples_to_bytes_dylibloader_wrapper_asound +#define snd_pcm_area_silence snd_pcm_area_silence_dylibloader_wrapper_asound +#define snd_pcm_areas_silence snd_pcm_areas_silence_dylibloader_wrapper_asound +#define snd_pcm_area_copy snd_pcm_area_copy_dylibloader_wrapper_asound +#define snd_pcm_areas_copy snd_pcm_areas_copy_dylibloader_wrapper_asound +#define snd_pcm_areas_copy_wrap snd_pcm_areas_copy_wrap_dylibloader_wrapper_asound +#define snd_pcm_hook_get_pcm snd_pcm_hook_get_pcm_dylibloader_wrapper_asound +#define snd_pcm_hook_get_private snd_pcm_hook_get_private_dylibloader_wrapper_asound +#define snd_pcm_hook_set_private snd_pcm_hook_set_private_dylibloader_wrapper_asound +#define snd_pcm_hook_add snd_pcm_hook_add_dylibloader_wrapper_asound +#define snd_pcm_hook_remove snd_pcm_hook_remove_dylibloader_wrapper_asound +#define snd_pcm_meter_get_bufsize snd_pcm_meter_get_bufsize_dylibloader_wrapper_asound +#define snd_pcm_meter_get_channels snd_pcm_meter_get_channels_dylibloader_wrapper_asound +#define snd_pcm_meter_get_rate snd_pcm_meter_get_rate_dylibloader_wrapper_asound +#define snd_pcm_meter_get_now snd_pcm_meter_get_now_dylibloader_wrapper_asound +#define snd_pcm_meter_get_boundary snd_pcm_meter_get_boundary_dylibloader_wrapper_asound +#define snd_pcm_meter_add_scope snd_pcm_meter_add_scope_dylibloader_wrapper_asound +#define snd_pcm_meter_search_scope snd_pcm_meter_search_scope_dylibloader_wrapper_asound +#define snd_pcm_scope_malloc snd_pcm_scope_malloc_dylibloader_wrapper_asound +#define snd_pcm_scope_set_ops snd_pcm_scope_set_ops_dylibloader_wrapper_asound +#define snd_pcm_scope_set_name snd_pcm_scope_set_name_dylibloader_wrapper_asound +#define snd_pcm_scope_get_name snd_pcm_scope_get_name_dylibloader_wrapper_asound +#define snd_pcm_scope_get_callback_private snd_pcm_scope_get_callback_private_dylibloader_wrapper_asound +#define snd_pcm_scope_set_callback_private snd_pcm_scope_set_callback_private_dylibloader_wrapper_asound +#define snd_pcm_scope_s16_open snd_pcm_scope_s16_open_dylibloader_wrapper_asound +#define snd_pcm_scope_s16_get_channel_buffer snd_pcm_scope_s16_get_channel_buffer_dylibloader_wrapper_asound +#define snd_spcm_init snd_spcm_init_dylibloader_wrapper_asound +#define snd_spcm_init_duplex snd_spcm_init_duplex_dylibloader_wrapper_asound +#define snd_spcm_init_get_params snd_spcm_init_get_params_dylibloader_wrapper_asound +#define snd_pcm_start_mode_name snd_pcm_start_mode_name_dylibloader_wrapper_asound +#define snd_pcm_xrun_mode_name snd_pcm_xrun_mode_name_dylibloader_wrapper_asound +#define snd_pcm_sw_params_set_start_mode snd_pcm_sw_params_set_start_mode_dylibloader_wrapper_asound +#define snd_pcm_sw_params_get_start_mode snd_pcm_sw_params_get_start_mode_dylibloader_wrapper_asound +#define snd_pcm_sw_params_set_xrun_mode snd_pcm_sw_params_set_xrun_mode_dylibloader_wrapper_asound +#define snd_pcm_sw_params_get_xrun_mode snd_pcm_sw_params_get_xrun_mode_dylibloader_wrapper_asound +#define snd_pcm_sw_params_set_xfer_align snd_pcm_sw_params_set_xfer_align_dylibloader_wrapper_asound +#define snd_pcm_sw_params_get_xfer_align snd_pcm_sw_params_get_xfer_align_dylibloader_wrapper_asound +#define snd_pcm_sw_params_set_sleep_min snd_pcm_sw_params_set_sleep_min_dylibloader_wrapper_asound +#define snd_pcm_sw_params_get_sleep_min snd_pcm_sw_params_get_sleep_min_dylibloader_wrapper_asound +#define snd_pcm_hw_params_get_tick_time snd_pcm_hw_params_get_tick_time_dylibloader_wrapper_asound +#define snd_pcm_hw_params_get_tick_time_min snd_pcm_hw_params_get_tick_time_min_dylibloader_wrapper_asound +#define snd_pcm_hw_params_get_tick_time_max snd_pcm_hw_params_get_tick_time_max_dylibloader_wrapper_asound +#define snd_pcm_hw_params_test_tick_time snd_pcm_hw_params_test_tick_time_dylibloader_wrapper_asound +#define snd_pcm_hw_params_set_tick_time snd_pcm_hw_params_set_tick_time_dylibloader_wrapper_asound +#define snd_pcm_hw_params_set_tick_time_min snd_pcm_hw_params_set_tick_time_min_dylibloader_wrapper_asound +#define snd_pcm_hw_params_set_tick_time_max snd_pcm_hw_params_set_tick_time_max_dylibloader_wrapper_asound +#define snd_pcm_hw_params_set_tick_time_minmax snd_pcm_hw_params_set_tick_time_minmax_dylibloader_wrapper_asound +#define snd_pcm_hw_params_set_tick_time_near snd_pcm_hw_params_set_tick_time_near_dylibloader_wrapper_asound +#define snd_pcm_hw_params_set_tick_time_first snd_pcm_hw_params_set_tick_time_first_dylibloader_wrapper_asound +#define snd_pcm_hw_params_set_tick_time_last snd_pcm_hw_params_set_tick_time_last_dylibloader_wrapper_asound +#define snd_rawmidi_open snd_rawmidi_open_dylibloader_wrapper_asound +#define snd_rawmidi_open_lconf snd_rawmidi_open_lconf_dylibloader_wrapper_asound +#define snd_rawmidi_close snd_rawmidi_close_dylibloader_wrapper_asound +#define snd_rawmidi_poll_descriptors_count snd_rawmidi_poll_descriptors_count_dylibloader_wrapper_asound +#define snd_rawmidi_poll_descriptors snd_rawmidi_poll_descriptors_dylibloader_wrapper_asound +#define snd_rawmidi_poll_descriptors_revents snd_rawmidi_poll_descriptors_revents_dylibloader_wrapper_asound +#define snd_rawmidi_nonblock snd_rawmidi_nonblock_dylibloader_wrapper_asound +#define snd_rawmidi_info_sizeof snd_rawmidi_info_sizeof_dylibloader_wrapper_asound +#define snd_rawmidi_info_malloc snd_rawmidi_info_malloc_dylibloader_wrapper_asound +#define snd_rawmidi_info_free snd_rawmidi_info_free_dylibloader_wrapper_asound +#define snd_rawmidi_info_copy snd_rawmidi_info_copy_dylibloader_wrapper_asound +#define snd_rawmidi_info_get_device snd_rawmidi_info_get_device_dylibloader_wrapper_asound +#define snd_rawmidi_info_get_subdevice snd_rawmidi_info_get_subdevice_dylibloader_wrapper_asound +#define snd_rawmidi_info_get_stream snd_rawmidi_info_get_stream_dylibloader_wrapper_asound +#define snd_rawmidi_info_get_card snd_rawmidi_info_get_card_dylibloader_wrapper_asound +#define snd_rawmidi_info_get_flags snd_rawmidi_info_get_flags_dylibloader_wrapper_asound +#define snd_rawmidi_info_get_id snd_rawmidi_info_get_id_dylibloader_wrapper_asound +#define snd_rawmidi_info_get_name snd_rawmidi_info_get_name_dylibloader_wrapper_asound +#define snd_rawmidi_info_get_subdevice_name snd_rawmidi_info_get_subdevice_name_dylibloader_wrapper_asound +#define snd_rawmidi_info_get_subdevices_count snd_rawmidi_info_get_subdevices_count_dylibloader_wrapper_asound +#define snd_rawmidi_info_get_subdevices_avail snd_rawmidi_info_get_subdevices_avail_dylibloader_wrapper_asound +#define snd_rawmidi_info_set_device snd_rawmidi_info_set_device_dylibloader_wrapper_asound +#define snd_rawmidi_info_set_subdevice snd_rawmidi_info_set_subdevice_dylibloader_wrapper_asound +#define snd_rawmidi_info_set_stream snd_rawmidi_info_set_stream_dylibloader_wrapper_asound +#define snd_rawmidi_info snd_rawmidi_info_dylibloader_wrapper_asound +#define snd_rawmidi_params_sizeof snd_rawmidi_params_sizeof_dylibloader_wrapper_asound +#define snd_rawmidi_params_malloc snd_rawmidi_params_malloc_dylibloader_wrapper_asound +#define snd_rawmidi_params_free snd_rawmidi_params_free_dylibloader_wrapper_asound +#define snd_rawmidi_params_copy snd_rawmidi_params_copy_dylibloader_wrapper_asound +#define snd_rawmidi_params_set_buffer_size snd_rawmidi_params_set_buffer_size_dylibloader_wrapper_asound +#define snd_rawmidi_params_get_buffer_size snd_rawmidi_params_get_buffer_size_dylibloader_wrapper_asound +#define snd_rawmidi_params_set_avail_min snd_rawmidi_params_set_avail_min_dylibloader_wrapper_asound +#define snd_rawmidi_params_get_avail_min snd_rawmidi_params_get_avail_min_dylibloader_wrapper_asound +#define snd_rawmidi_params_set_no_active_sensing snd_rawmidi_params_set_no_active_sensing_dylibloader_wrapper_asound +#define snd_rawmidi_params_get_no_active_sensing snd_rawmidi_params_get_no_active_sensing_dylibloader_wrapper_asound +#define snd_rawmidi_params snd_rawmidi_params_dylibloader_wrapper_asound +#define snd_rawmidi_params_current snd_rawmidi_params_current_dylibloader_wrapper_asound +#define snd_rawmidi_status_sizeof snd_rawmidi_status_sizeof_dylibloader_wrapper_asound +#define snd_rawmidi_status_malloc snd_rawmidi_status_malloc_dylibloader_wrapper_asound +#define snd_rawmidi_status_free snd_rawmidi_status_free_dylibloader_wrapper_asound +#define snd_rawmidi_status_copy snd_rawmidi_status_copy_dylibloader_wrapper_asound +#define snd_rawmidi_status_get_tstamp snd_rawmidi_status_get_tstamp_dylibloader_wrapper_asound +#define snd_rawmidi_status_get_avail snd_rawmidi_status_get_avail_dylibloader_wrapper_asound +#define snd_rawmidi_status_get_xruns snd_rawmidi_status_get_xruns_dylibloader_wrapper_asound +#define snd_rawmidi_status snd_rawmidi_status_dylibloader_wrapper_asound +#define snd_rawmidi_drain snd_rawmidi_drain_dylibloader_wrapper_asound +#define snd_rawmidi_drop snd_rawmidi_drop_dylibloader_wrapper_asound +#define snd_rawmidi_write snd_rawmidi_write_dylibloader_wrapper_asound +#define snd_rawmidi_read snd_rawmidi_read_dylibloader_wrapper_asound +#define snd_rawmidi_name snd_rawmidi_name_dylibloader_wrapper_asound +#define snd_rawmidi_type snd_rawmidi_type_dylibloader_wrapper_asound +#define snd_rawmidi_stream snd_rawmidi_stream_dylibloader_wrapper_asound +#define snd_timer_query_open snd_timer_query_open_dylibloader_wrapper_asound +#define snd_timer_query_open_lconf snd_timer_query_open_lconf_dylibloader_wrapper_asound +#define snd_timer_query_close snd_timer_query_close_dylibloader_wrapper_asound +#define snd_timer_query_next_device snd_timer_query_next_device_dylibloader_wrapper_asound +#define snd_timer_query_info snd_timer_query_info_dylibloader_wrapper_asound +#define snd_timer_query_params snd_timer_query_params_dylibloader_wrapper_asound +#define snd_timer_query_status snd_timer_query_status_dylibloader_wrapper_asound +#define snd_timer_open snd_timer_open_dylibloader_wrapper_asound +#define snd_timer_open_lconf snd_timer_open_lconf_dylibloader_wrapper_asound +#define snd_timer_close snd_timer_close_dylibloader_wrapper_asound +#define snd_async_add_timer_handler snd_async_add_timer_handler_dylibloader_wrapper_asound +#define snd_async_handler_get_timer snd_async_handler_get_timer_dylibloader_wrapper_asound +#define snd_timer_poll_descriptors_count snd_timer_poll_descriptors_count_dylibloader_wrapper_asound +#define snd_timer_poll_descriptors snd_timer_poll_descriptors_dylibloader_wrapper_asound +#define snd_timer_poll_descriptors_revents snd_timer_poll_descriptors_revents_dylibloader_wrapper_asound +#define snd_timer_info snd_timer_info_dylibloader_wrapper_asound +#define snd_timer_params snd_timer_params_dylibloader_wrapper_asound +#define snd_timer_status snd_timer_status_dylibloader_wrapper_asound +#define snd_timer_start snd_timer_start_dylibloader_wrapper_asound +#define snd_timer_stop snd_timer_stop_dylibloader_wrapper_asound +#define snd_timer_continue snd_timer_continue_dylibloader_wrapper_asound +#define snd_timer_read snd_timer_read_dylibloader_wrapper_asound +#define snd_timer_id_sizeof snd_timer_id_sizeof_dylibloader_wrapper_asound +#define snd_timer_id_malloc snd_timer_id_malloc_dylibloader_wrapper_asound +#define snd_timer_id_free snd_timer_id_free_dylibloader_wrapper_asound +#define snd_timer_id_copy snd_timer_id_copy_dylibloader_wrapper_asound +#define snd_timer_id_set_class snd_timer_id_set_class_dylibloader_wrapper_asound +#define snd_timer_id_get_class snd_timer_id_get_class_dylibloader_wrapper_asound +#define snd_timer_id_set_sclass snd_timer_id_set_sclass_dylibloader_wrapper_asound +#define snd_timer_id_get_sclass snd_timer_id_get_sclass_dylibloader_wrapper_asound +#define snd_timer_id_set_card snd_timer_id_set_card_dylibloader_wrapper_asound +#define snd_timer_id_get_card snd_timer_id_get_card_dylibloader_wrapper_asound +#define snd_timer_id_set_device snd_timer_id_set_device_dylibloader_wrapper_asound +#define snd_timer_id_get_device snd_timer_id_get_device_dylibloader_wrapper_asound +#define snd_timer_id_set_subdevice snd_timer_id_set_subdevice_dylibloader_wrapper_asound +#define snd_timer_id_get_subdevice snd_timer_id_get_subdevice_dylibloader_wrapper_asound +#define snd_timer_ginfo_sizeof snd_timer_ginfo_sizeof_dylibloader_wrapper_asound +#define snd_timer_ginfo_malloc snd_timer_ginfo_malloc_dylibloader_wrapper_asound +#define snd_timer_ginfo_free snd_timer_ginfo_free_dylibloader_wrapper_asound +#define snd_timer_ginfo_copy snd_timer_ginfo_copy_dylibloader_wrapper_asound +#define snd_timer_ginfo_set_tid snd_timer_ginfo_set_tid_dylibloader_wrapper_asound +#define snd_timer_ginfo_get_tid snd_timer_ginfo_get_tid_dylibloader_wrapper_asound +#define snd_timer_ginfo_get_flags snd_timer_ginfo_get_flags_dylibloader_wrapper_asound +#define snd_timer_ginfo_get_card snd_timer_ginfo_get_card_dylibloader_wrapper_asound +#define snd_timer_ginfo_get_id snd_timer_ginfo_get_id_dylibloader_wrapper_asound +#define snd_timer_ginfo_get_name snd_timer_ginfo_get_name_dylibloader_wrapper_asound +#define snd_timer_ginfo_get_resolution snd_timer_ginfo_get_resolution_dylibloader_wrapper_asound +#define snd_timer_ginfo_get_resolution_min snd_timer_ginfo_get_resolution_min_dylibloader_wrapper_asound +#define snd_timer_ginfo_get_resolution_max snd_timer_ginfo_get_resolution_max_dylibloader_wrapper_asound +#define snd_timer_ginfo_get_clients snd_timer_ginfo_get_clients_dylibloader_wrapper_asound +#define snd_timer_info_sizeof snd_timer_info_sizeof_dylibloader_wrapper_asound +#define snd_timer_info_malloc snd_timer_info_malloc_dylibloader_wrapper_asound +#define snd_timer_info_free snd_timer_info_free_dylibloader_wrapper_asound +#define snd_timer_info_copy snd_timer_info_copy_dylibloader_wrapper_asound +#define snd_timer_info_is_slave snd_timer_info_is_slave_dylibloader_wrapper_asound +#define snd_timer_info_get_card snd_timer_info_get_card_dylibloader_wrapper_asound +#define snd_timer_info_get_id snd_timer_info_get_id_dylibloader_wrapper_asound +#define snd_timer_info_get_name snd_timer_info_get_name_dylibloader_wrapper_asound +#define snd_timer_info_get_resolution snd_timer_info_get_resolution_dylibloader_wrapper_asound +#define snd_timer_params_sizeof snd_timer_params_sizeof_dylibloader_wrapper_asound +#define snd_timer_params_malloc snd_timer_params_malloc_dylibloader_wrapper_asound +#define snd_timer_params_free snd_timer_params_free_dylibloader_wrapper_asound +#define snd_timer_params_copy snd_timer_params_copy_dylibloader_wrapper_asound +#define snd_timer_params_set_auto_start snd_timer_params_set_auto_start_dylibloader_wrapper_asound +#define snd_timer_params_get_auto_start snd_timer_params_get_auto_start_dylibloader_wrapper_asound +#define snd_timer_params_set_exclusive snd_timer_params_set_exclusive_dylibloader_wrapper_asound +#define snd_timer_params_get_exclusive snd_timer_params_get_exclusive_dylibloader_wrapper_asound +#define snd_timer_params_set_early_event snd_timer_params_set_early_event_dylibloader_wrapper_asound +#define snd_timer_params_get_early_event snd_timer_params_get_early_event_dylibloader_wrapper_asound +#define snd_timer_params_set_ticks snd_timer_params_set_ticks_dylibloader_wrapper_asound +#define snd_timer_params_get_ticks snd_timer_params_get_ticks_dylibloader_wrapper_asound +#define snd_timer_params_set_queue_size snd_timer_params_set_queue_size_dylibloader_wrapper_asound +#define snd_timer_params_get_queue_size snd_timer_params_get_queue_size_dylibloader_wrapper_asound +#define snd_timer_params_set_filter snd_timer_params_set_filter_dylibloader_wrapper_asound +#define snd_timer_params_get_filter snd_timer_params_get_filter_dylibloader_wrapper_asound +#define snd_timer_status_sizeof snd_timer_status_sizeof_dylibloader_wrapper_asound +#define snd_timer_status_malloc snd_timer_status_malloc_dylibloader_wrapper_asound +#define snd_timer_status_free snd_timer_status_free_dylibloader_wrapper_asound +#define snd_timer_status_copy snd_timer_status_copy_dylibloader_wrapper_asound +#define snd_timer_status_get_timestamp snd_timer_status_get_timestamp_dylibloader_wrapper_asound +#define snd_timer_status_get_resolution snd_timer_status_get_resolution_dylibloader_wrapper_asound +#define snd_timer_status_get_lost snd_timer_status_get_lost_dylibloader_wrapper_asound +#define snd_timer_status_get_overrun snd_timer_status_get_overrun_dylibloader_wrapper_asound +#define snd_timer_status_get_queue snd_timer_status_get_queue_dylibloader_wrapper_asound +#define snd_timer_info_get_ticks snd_timer_info_get_ticks_dylibloader_wrapper_asound +#define snd_hwdep_open snd_hwdep_open_dylibloader_wrapper_asound +#define snd_hwdep_close snd_hwdep_close_dylibloader_wrapper_asound +#define snd_hwdep_poll_descriptors snd_hwdep_poll_descriptors_dylibloader_wrapper_asound +#define snd_hwdep_poll_descriptors_count snd_hwdep_poll_descriptors_count_dylibloader_wrapper_asound +#define snd_hwdep_poll_descriptors_revents snd_hwdep_poll_descriptors_revents_dylibloader_wrapper_asound +#define snd_hwdep_nonblock snd_hwdep_nonblock_dylibloader_wrapper_asound +#define snd_hwdep_info snd_hwdep_info_dylibloader_wrapper_asound +#define snd_hwdep_dsp_status snd_hwdep_dsp_status_dylibloader_wrapper_asound +#define snd_hwdep_dsp_load snd_hwdep_dsp_load_dylibloader_wrapper_asound +#define snd_hwdep_ioctl snd_hwdep_ioctl_dylibloader_wrapper_asound +#define snd_hwdep_write snd_hwdep_write_dylibloader_wrapper_asound +#define snd_hwdep_read snd_hwdep_read_dylibloader_wrapper_asound +#define snd_hwdep_info_sizeof snd_hwdep_info_sizeof_dylibloader_wrapper_asound +#define snd_hwdep_info_malloc snd_hwdep_info_malloc_dylibloader_wrapper_asound +#define snd_hwdep_info_free snd_hwdep_info_free_dylibloader_wrapper_asound +#define snd_hwdep_info_copy snd_hwdep_info_copy_dylibloader_wrapper_asound +#define snd_hwdep_info_get_device snd_hwdep_info_get_device_dylibloader_wrapper_asound +#define snd_hwdep_info_get_card snd_hwdep_info_get_card_dylibloader_wrapper_asound +#define snd_hwdep_info_get_id snd_hwdep_info_get_id_dylibloader_wrapper_asound +#define snd_hwdep_info_get_name snd_hwdep_info_get_name_dylibloader_wrapper_asound +#define snd_hwdep_info_get_iface snd_hwdep_info_get_iface_dylibloader_wrapper_asound +#define snd_hwdep_info_set_device snd_hwdep_info_set_device_dylibloader_wrapper_asound +#define snd_hwdep_dsp_status_sizeof snd_hwdep_dsp_status_sizeof_dylibloader_wrapper_asound +#define snd_hwdep_dsp_status_malloc snd_hwdep_dsp_status_malloc_dylibloader_wrapper_asound +#define snd_hwdep_dsp_status_free snd_hwdep_dsp_status_free_dylibloader_wrapper_asound +#define snd_hwdep_dsp_status_copy snd_hwdep_dsp_status_copy_dylibloader_wrapper_asound +#define snd_hwdep_dsp_status_get_version snd_hwdep_dsp_status_get_version_dylibloader_wrapper_asound +#define snd_hwdep_dsp_status_get_id snd_hwdep_dsp_status_get_id_dylibloader_wrapper_asound +#define snd_hwdep_dsp_status_get_num_dsps snd_hwdep_dsp_status_get_num_dsps_dylibloader_wrapper_asound +#define snd_hwdep_dsp_status_get_dsp_loaded snd_hwdep_dsp_status_get_dsp_loaded_dylibloader_wrapper_asound +#define snd_hwdep_dsp_status_get_chip_ready snd_hwdep_dsp_status_get_chip_ready_dylibloader_wrapper_asound +#define snd_hwdep_dsp_image_sizeof snd_hwdep_dsp_image_sizeof_dylibloader_wrapper_asound +#define snd_hwdep_dsp_image_malloc snd_hwdep_dsp_image_malloc_dylibloader_wrapper_asound +#define snd_hwdep_dsp_image_free snd_hwdep_dsp_image_free_dylibloader_wrapper_asound +#define snd_hwdep_dsp_image_copy snd_hwdep_dsp_image_copy_dylibloader_wrapper_asound +#define snd_hwdep_dsp_image_get_index snd_hwdep_dsp_image_get_index_dylibloader_wrapper_asound +#define snd_hwdep_dsp_image_get_name snd_hwdep_dsp_image_get_name_dylibloader_wrapper_asound +#define snd_hwdep_dsp_image_get_image snd_hwdep_dsp_image_get_image_dylibloader_wrapper_asound +#define snd_hwdep_dsp_image_get_length snd_hwdep_dsp_image_get_length_dylibloader_wrapper_asound +#define snd_hwdep_dsp_image_set_index snd_hwdep_dsp_image_set_index_dylibloader_wrapper_asound +#define snd_hwdep_dsp_image_set_name snd_hwdep_dsp_image_set_name_dylibloader_wrapper_asound +#define snd_hwdep_dsp_image_set_image snd_hwdep_dsp_image_set_image_dylibloader_wrapper_asound +#define snd_hwdep_dsp_image_set_length snd_hwdep_dsp_image_set_length_dylibloader_wrapper_asound +#define snd_card_load snd_card_load_dylibloader_wrapper_asound +#define snd_card_next snd_card_next_dylibloader_wrapper_asound +#define snd_card_get_index snd_card_get_index_dylibloader_wrapper_asound +#define snd_card_get_name snd_card_get_name_dylibloader_wrapper_asound +#define snd_card_get_longname snd_card_get_longname_dylibloader_wrapper_asound +#define snd_device_name_hint snd_device_name_hint_dylibloader_wrapper_asound +#define snd_device_name_free_hint snd_device_name_free_hint_dylibloader_wrapper_asound +#define snd_device_name_get_hint snd_device_name_get_hint_dylibloader_wrapper_asound +#define snd_ctl_open snd_ctl_open_dylibloader_wrapper_asound +#define snd_ctl_open_lconf snd_ctl_open_lconf_dylibloader_wrapper_asound +#define snd_ctl_open_fallback snd_ctl_open_fallback_dylibloader_wrapper_asound +#define snd_ctl_close snd_ctl_close_dylibloader_wrapper_asound +#define snd_ctl_nonblock snd_ctl_nonblock_dylibloader_wrapper_asound +#define snd_async_add_ctl_handler snd_async_add_ctl_handler_dylibloader_wrapper_asound +#define snd_async_handler_get_ctl snd_async_handler_get_ctl_dylibloader_wrapper_asound +#define snd_ctl_poll_descriptors_count snd_ctl_poll_descriptors_count_dylibloader_wrapper_asound +#define snd_ctl_poll_descriptors snd_ctl_poll_descriptors_dylibloader_wrapper_asound +#define snd_ctl_poll_descriptors_revents snd_ctl_poll_descriptors_revents_dylibloader_wrapper_asound +#define snd_ctl_subscribe_events snd_ctl_subscribe_events_dylibloader_wrapper_asound +#define snd_ctl_card_info snd_ctl_card_info_dylibloader_wrapper_asound +#define snd_ctl_elem_list snd_ctl_elem_list_dylibloader_wrapper_asound +#define snd_ctl_elem_info snd_ctl_elem_info_dylibloader_wrapper_asound +#define snd_ctl_elem_read snd_ctl_elem_read_dylibloader_wrapper_asound +#define snd_ctl_elem_write snd_ctl_elem_write_dylibloader_wrapper_asound +#define snd_ctl_elem_lock snd_ctl_elem_lock_dylibloader_wrapper_asound +#define snd_ctl_elem_unlock snd_ctl_elem_unlock_dylibloader_wrapper_asound +#define snd_ctl_elem_tlv_read snd_ctl_elem_tlv_read_dylibloader_wrapper_asound +#define snd_ctl_elem_tlv_write snd_ctl_elem_tlv_write_dylibloader_wrapper_asound +#define snd_ctl_elem_tlv_command snd_ctl_elem_tlv_command_dylibloader_wrapper_asound +#define snd_ctl_hwdep_next_device snd_ctl_hwdep_next_device_dylibloader_wrapper_asound +#define snd_ctl_hwdep_info snd_ctl_hwdep_info_dylibloader_wrapper_asound +#define snd_ctl_pcm_next_device snd_ctl_pcm_next_device_dylibloader_wrapper_asound +#define snd_ctl_pcm_info snd_ctl_pcm_info_dylibloader_wrapper_asound +#define snd_ctl_pcm_prefer_subdevice snd_ctl_pcm_prefer_subdevice_dylibloader_wrapper_asound +#define snd_ctl_rawmidi_next_device snd_ctl_rawmidi_next_device_dylibloader_wrapper_asound +#define snd_ctl_rawmidi_info snd_ctl_rawmidi_info_dylibloader_wrapper_asound +#define snd_ctl_rawmidi_prefer_subdevice snd_ctl_rawmidi_prefer_subdevice_dylibloader_wrapper_asound +#define snd_ctl_set_power_state snd_ctl_set_power_state_dylibloader_wrapper_asound +#define snd_ctl_get_power_state snd_ctl_get_power_state_dylibloader_wrapper_asound +#define snd_ctl_read snd_ctl_read_dylibloader_wrapper_asound +#define snd_ctl_wait snd_ctl_wait_dylibloader_wrapper_asound +#define snd_ctl_name snd_ctl_name_dylibloader_wrapper_asound +#define snd_ctl_type snd_ctl_type_dylibloader_wrapper_asound +#define snd_ctl_elem_type_name snd_ctl_elem_type_name_dylibloader_wrapper_asound +#define snd_ctl_elem_iface_name snd_ctl_elem_iface_name_dylibloader_wrapper_asound +#define snd_ctl_event_type_name snd_ctl_event_type_name_dylibloader_wrapper_asound +#define snd_ctl_event_elem_get_mask snd_ctl_event_elem_get_mask_dylibloader_wrapper_asound +#define snd_ctl_event_elem_get_numid snd_ctl_event_elem_get_numid_dylibloader_wrapper_asound +#define snd_ctl_event_elem_get_id snd_ctl_event_elem_get_id_dylibloader_wrapper_asound +#define snd_ctl_event_elem_get_interface snd_ctl_event_elem_get_interface_dylibloader_wrapper_asound +#define snd_ctl_event_elem_get_device snd_ctl_event_elem_get_device_dylibloader_wrapper_asound +#define snd_ctl_event_elem_get_subdevice snd_ctl_event_elem_get_subdevice_dylibloader_wrapper_asound +#define snd_ctl_event_elem_get_name snd_ctl_event_elem_get_name_dylibloader_wrapper_asound +#define snd_ctl_event_elem_get_index snd_ctl_event_elem_get_index_dylibloader_wrapper_asound +#define snd_ctl_elem_list_alloc_space snd_ctl_elem_list_alloc_space_dylibloader_wrapper_asound +#define snd_ctl_elem_list_free_space snd_ctl_elem_list_free_space_dylibloader_wrapper_asound +#define snd_ctl_ascii_elem_id_get snd_ctl_ascii_elem_id_get_dylibloader_wrapper_asound +#define snd_ctl_ascii_elem_id_parse snd_ctl_ascii_elem_id_parse_dylibloader_wrapper_asound +#define snd_ctl_ascii_value_parse snd_ctl_ascii_value_parse_dylibloader_wrapper_asound +#define snd_ctl_elem_id_sizeof snd_ctl_elem_id_sizeof_dylibloader_wrapper_asound +#define snd_ctl_elem_id_malloc snd_ctl_elem_id_malloc_dylibloader_wrapper_asound +#define snd_ctl_elem_id_free snd_ctl_elem_id_free_dylibloader_wrapper_asound +#define snd_ctl_elem_id_clear snd_ctl_elem_id_clear_dylibloader_wrapper_asound +#define snd_ctl_elem_id_copy snd_ctl_elem_id_copy_dylibloader_wrapper_asound +#define snd_ctl_elem_id_get_numid snd_ctl_elem_id_get_numid_dylibloader_wrapper_asound +#define snd_ctl_elem_id_get_interface snd_ctl_elem_id_get_interface_dylibloader_wrapper_asound +#define snd_ctl_elem_id_get_device snd_ctl_elem_id_get_device_dylibloader_wrapper_asound +#define snd_ctl_elem_id_get_subdevice snd_ctl_elem_id_get_subdevice_dylibloader_wrapper_asound +#define snd_ctl_elem_id_get_name snd_ctl_elem_id_get_name_dylibloader_wrapper_asound +#define snd_ctl_elem_id_get_index snd_ctl_elem_id_get_index_dylibloader_wrapper_asound +#define snd_ctl_elem_id_set_numid snd_ctl_elem_id_set_numid_dylibloader_wrapper_asound +#define snd_ctl_elem_id_set_interface snd_ctl_elem_id_set_interface_dylibloader_wrapper_asound +#define snd_ctl_elem_id_set_device snd_ctl_elem_id_set_device_dylibloader_wrapper_asound +#define snd_ctl_elem_id_set_subdevice snd_ctl_elem_id_set_subdevice_dylibloader_wrapper_asound +#define snd_ctl_elem_id_set_name snd_ctl_elem_id_set_name_dylibloader_wrapper_asound +#define snd_ctl_elem_id_set_index snd_ctl_elem_id_set_index_dylibloader_wrapper_asound +#define snd_ctl_card_info_sizeof snd_ctl_card_info_sizeof_dylibloader_wrapper_asound +#define snd_ctl_card_info_malloc snd_ctl_card_info_malloc_dylibloader_wrapper_asound +#define snd_ctl_card_info_free snd_ctl_card_info_free_dylibloader_wrapper_asound +#define snd_ctl_card_info_clear snd_ctl_card_info_clear_dylibloader_wrapper_asound +#define snd_ctl_card_info_copy snd_ctl_card_info_copy_dylibloader_wrapper_asound +#define snd_ctl_card_info_get_card snd_ctl_card_info_get_card_dylibloader_wrapper_asound +#define snd_ctl_card_info_get_id snd_ctl_card_info_get_id_dylibloader_wrapper_asound +#define snd_ctl_card_info_get_driver snd_ctl_card_info_get_driver_dylibloader_wrapper_asound +#define snd_ctl_card_info_get_name snd_ctl_card_info_get_name_dylibloader_wrapper_asound +#define snd_ctl_card_info_get_longname snd_ctl_card_info_get_longname_dylibloader_wrapper_asound +#define snd_ctl_card_info_get_mixername snd_ctl_card_info_get_mixername_dylibloader_wrapper_asound +#define snd_ctl_card_info_get_components snd_ctl_card_info_get_components_dylibloader_wrapper_asound +#define snd_ctl_event_sizeof snd_ctl_event_sizeof_dylibloader_wrapper_asound +#define snd_ctl_event_malloc snd_ctl_event_malloc_dylibloader_wrapper_asound +#define snd_ctl_event_free snd_ctl_event_free_dylibloader_wrapper_asound +#define snd_ctl_event_clear snd_ctl_event_clear_dylibloader_wrapper_asound +#define snd_ctl_event_copy snd_ctl_event_copy_dylibloader_wrapper_asound +#define snd_ctl_event_get_type snd_ctl_event_get_type_dylibloader_wrapper_asound +#define snd_ctl_elem_list_sizeof snd_ctl_elem_list_sizeof_dylibloader_wrapper_asound +#define snd_ctl_elem_list_malloc snd_ctl_elem_list_malloc_dylibloader_wrapper_asound +#define snd_ctl_elem_list_free snd_ctl_elem_list_free_dylibloader_wrapper_asound +#define snd_ctl_elem_list_clear snd_ctl_elem_list_clear_dylibloader_wrapper_asound +#define snd_ctl_elem_list_copy snd_ctl_elem_list_copy_dylibloader_wrapper_asound +#define snd_ctl_elem_list_set_offset snd_ctl_elem_list_set_offset_dylibloader_wrapper_asound +#define snd_ctl_elem_list_get_used snd_ctl_elem_list_get_used_dylibloader_wrapper_asound +#define snd_ctl_elem_list_get_count snd_ctl_elem_list_get_count_dylibloader_wrapper_asound +#define snd_ctl_elem_list_get_id snd_ctl_elem_list_get_id_dylibloader_wrapper_asound +#define snd_ctl_elem_list_get_numid snd_ctl_elem_list_get_numid_dylibloader_wrapper_asound +#define snd_ctl_elem_list_get_interface snd_ctl_elem_list_get_interface_dylibloader_wrapper_asound +#define snd_ctl_elem_list_get_device snd_ctl_elem_list_get_device_dylibloader_wrapper_asound +#define snd_ctl_elem_list_get_subdevice snd_ctl_elem_list_get_subdevice_dylibloader_wrapper_asound +#define snd_ctl_elem_list_get_name snd_ctl_elem_list_get_name_dylibloader_wrapper_asound +#define snd_ctl_elem_list_get_index snd_ctl_elem_list_get_index_dylibloader_wrapper_asound +#define snd_ctl_elem_info_sizeof snd_ctl_elem_info_sizeof_dylibloader_wrapper_asound +#define snd_ctl_elem_info_malloc snd_ctl_elem_info_malloc_dylibloader_wrapper_asound +#define snd_ctl_elem_info_free snd_ctl_elem_info_free_dylibloader_wrapper_asound +#define snd_ctl_elem_info_clear snd_ctl_elem_info_clear_dylibloader_wrapper_asound +#define snd_ctl_elem_info_copy snd_ctl_elem_info_copy_dylibloader_wrapper_asound +#define snd_ctl_elem_info_get_type snd_ctl_elem_info_get_type_dylibloader_wrapper_asound +#define snd_ctl_elem_info_is_readable snd_ctl_elem_info_is_readable_dylibloader_wrapper_asound +#define snd_ctl_elem_info_is_writable snd_ctl_elem_info_is_writable_dylibloader_wrapper_asound +#define snd_ctl_elem_info_is_volatile snd_ctl_elem_info_is_volatile_dylibloader_wrapper_asound +#define snd_ctl_elem_info_is_inactive snd_ctl_elem_info_is_inactive_dylibloader_wrapper_asound +#define snd_ctl_elem_info_is_locked snd_ctl_elem_info_is_locked_dylibloader_wrapper_asound +#define snd_ctl_elem_info_is_tlv_readable snd_ctl_elem_info_is_tlv_readable_dylibloader_wrapper_asound +#define snd_ctl_elem_info_is_tlv_writable snd_ctl_elem_info_is_tlv_writable_dylibloader_wrapper_asound +#define snd_ctl_elem_info_is_tlv_commandable snd_ctl_elem_info_is_tlv_commandable_dylibloader_wrapper_asound +#define snd_ctl_elem_info_is_owner snd_ctl_elem_info_is_owner_dylibloader_wrapper_asound +#define snd_ctl_elem_info_is_user snd_ctl_elem_info_is_user_dylibloader_wrapper_asound +#define snd_ctl_elem_info_get_owner snd_ctl_elem_info_get_owner_dylibloader_wrapper_asound +#define snd_ctl_elem_info_get_count snd_ctl_elem_info_get_count_dylibloader_wrapper_asound +#define snd_ctl_elem_info_get_min snd_ctl_elem_info_get_min_dylibloader_wrapper_asound +#define snd_ctl_elem_info_get_max snd_ctl_elem_info_get_max_dylibloader_wrapper_asound +#define snd_ctl_elem_info_get_step snd_ctl_elem_info_get_step_dylibloader_wrapper_asound +#define snd_ctl_elem_info_get_min64 snd_ctl_elem_info_get_min64_dylibloader_wrapper_asound +#define snd_ctl_elem_info_get_max64 snd_ctl_elem_info_get_max64_dylibloader_wrapper_asound +#define snd_ctl_elem_info_get_step64 snd_ctl_elem_info_get_step64_dylibloader_wrapper_asound +#define snd_ctl_elem_info_get_items snd_ctl_elem_info_get_items_dylibloader_wrapper_asound +#define snd_ctl_elem_info_set_item snd_ctl_elem_info_set_item_dylibloader_wrapper_asound +#define snd_ctl_elem_info_get_item_name snd_ctl_elem_info_get_item_name_dylibloader_wrapper_asound +#define snd_ctl_elem_info_get_dimensions snd_ctl_elem_info_get_dimensions_dylibloader_wrapper_asound +#define snd_ctl_elem_info_get_dimension snd_ctl_elem_info_get_dimension_dylibloader_wrapper_asound +#define snd_ctl_elem_info_set_dimension snd_ctl_elem_info_set_dimension_dylibloader_wrapper_asound +#define snd_ctl_elem_info_get_id snd_ctl_elem_info_get_id_dylibloader_wrapper_asound +#define snd_ctl_elem_info_get_numid snd_ctl_elem_info_get_numid_dylibloader_wrapper_asound +#define snd_ctl_elem_info_get_interface snd_ctl_elem_info_get_interface_dylibloader_wrapper_asound +#define snd_ctl_elem_info_get_device snd_ctl_elem_info_get_device_dylibloader_wrapper_asound +#define snd_ctl_elem_info_get_subdevice snd_ctl_elem_info_get_subdevice_dylibloader_wrapper_asound +#define snd_ctl_elem_info_get_name snd_ctl_elem_info_get_name_dylibloader_wrapper_asound +#define snd_ctl_elem_info_get_index snd_ctl_elem_info_get_index_dylibloader_wrapper_asound +#define snd_ctl_elem_info_set_id snd_ctl_elem_info_set_id_dylibloader_wrapper_asound +#define snd_ctl_elem_info_set_numid snd_ctl_elem_info_set_numid_dylibloader_wrapper_asound +#define snd_ctl_elem_info_set_interface snd_ctl_elem_info_set_interface_dylibloader_wrapper_asound +#define snd_ctl_elem_info_set_device snd_ctl_elem_info_set_device_dylibloader_wrapper_asound +#define snd_ctl_elem_info_set_subdevice snd_ctl_elem_info_set_subdevice_dylibloader_wrapper_asound +#define snd_ctl_elem_info_set_name snd_ctl_elem_info_set_name_dylibloader_wrapper_asound +#define snd_ctl_elem_info_set_index snd_ctl_elem_info_set_index_dylibloader_wrapper_asound +#define snd_ctl_add_integer_elem_set snd_ctl_add_integer_elem_set_dylibloader_wrapper_asound +#define snd_ctl_add_integer64_elem_set snd_ctl_add_integer64_elem_set_dylibloader_wrapper_asound +#define snd_ctl_add_boolean_elem_set snd_ctl_add_boolean_elem_set_dylibloader_wrapper_asound +#define snd_ctl_add_enumerated_elem_set snd_ctl_add_enumerated_elem_set_dylibloader_wrapper_asound +#define snd_ctl_add_bytes_elem_set snd_ctl_add_bytes_elem_set_dylibloader_wrapper_asound +#define snd_ctl_elem_add_integer snd_ctl_elem_add_integer_dylibloader_wrapper_asound +#define snd_ctl_elem_add_integer64 snd_ctl_elem_add_integer64_dylibloader_wrapper_asound +#define snd_ctl_elem_add_boolean snd_ctl_elem_add_boolean_dylibloader_wrapper_asound +#define snd_ctl_elem_add_enumerated snd_ctl_elem_add_enumerated_dylibloader_wrapper_asound +#define snd_ctl_elem_add_iec958 snd_ctl_elem_add_iec958_dylibloader_wrapper_asound +#define snd_ctl_elem_remove snd_ctl_elem_remove_dylibloader_wrapper_asound +#define snd_ctl_elem_value_sizeof snd_ctl_elem_value_sizeof_dylibloader_wrapper_asound +#define snd_ctl_elem_value_malloc snd_ctl_elem_value_malloc_dylibloader_wrapper_asound +#define snd_ctl_elem_value_free snd_ctl_elem_value_free_dylibloader_wrapper_asound +#define snd_ctl_elem_value_clear snd_ctl_elem_value_clear_dylibloader_wrapper_asound +#define snd_ctl_elem_value_copy snd_ctl_elem_value_copy_dylibloader_wrapper_asound +#define snd_ctl_elem_value_compare snd_ctl_elem_value_compare_dylibloader_wrapper_asound +#define snd_ctl_elem_value_get_id snd_ctl_elem_value_get_id_dylibloader_wrapper_asound +#define snd_ctl_elem_value_get_numid snd_ctl_elem_value_get_numid_dylibloader_wrapper_asound +#define snd_ctl_elem_value_get_interface snd_ctl_elem_value_get_interface_dylibloader_wrapper_asound +#define snd_ctl_elem_value_get_device snd_ctl_elem_value_get_device_dylibloader_wrapper_asound +#define snd_ctl_elem_value_get_subdevice snd_ctl_elem_value_get_subdevice_dylibloader_wrapper_asound +#define snd_ctl_elem_value_get_name snd_ctl_elem_value_get_name_dylibloader_wrapper_asound +#define snd_ctl_elem_value_get_index snd_ctl_elem_value_get_index_dylibloader_wrapper_asound +#define snd_ctl_elem_value_set_id snd_ctl_elem_value_set_id_dylibloader_wrapper_asound +#define snd_ctl_elem_value_set_numid snd_ctl_elem_value_set_numid_dylibloader_wrapper_asound +#define snd_ctl_elem_value_set_interface snd_ctl_elem_value_set_interface_dylibloader_wrapper_asound +#define snd_ctl_elem_value_set_device snd_ctl_elem_value_set_device_dylibloader_wrapper_asound +#define snd_ctl_elem_value_set_subdevice snd_ctl_elem_value_set_subdevice_dylibloader_wrapper_asound +#define snd_ctl_elem_value_set_name snd_ctl_elem_value_set_name_dylibloader_wrapper_asound +#define snd_ctl_elem_value_set_index snd_ctl_elem_value_set_index_dylibloader_wrapper_asound +#define snd_ctl_elem_value_get_boolean snd_ctl_elem_value_get_boolean_dylibloader_wrapper_asound +#define snd_ctl_elem_value_get_integer snd_ctl_elem_value_get_integer_dylibloader_wrapper_asound +#define snd_ctl_elem_value_get_integer64 snd_ctl_elem_value_get_integer64_dylibloader_wrapper_asound +#define snd_ctl_elem_value_get_enumerated snd_ctl_elem_value_get_enumerated_dylibloader_wrapper_asound +#define snd_ctl_elem_value_get_byte snd_ctl_elem_value_get_byte_dylibloader_wrapper_asound +#define snd_ctl_elem_value_set_boolean snd_ctl_elem_value_set_boolean_dylibloader_wrapper_asound +#define snd_ctl_elem_value_set_integer snd_ctl_elem_value_set_integer_dylibloader_wrapper_asound +#define snd_ctl_elem_value_set_integer64 snd_ctl_elem_value_set_integer64_dylibloader_wrapper_asound +#define snd_ctl_elem_value_set_enumerated snd_ctl_elem_value_set_enumerated_dylibloader_wrapper_asound +#define snd_ctl_elem_value_set_byte snd_ctl_elem_value_set_byte_dylibloader_wrapper_asound +#define snd_ctl_elem_set_bytes snd_ctl_elem_set_bytes_dylibloader_wrapper_asound +#define snd_ctl_elem_value_get_bytes snd_ctl_elem_value_get_bytes_dylibloader_wrapper_asound +#define snd_ctl_elem_value_get_iec958 snd_ctl_elem_value_get_iec958_dylibloader_wrapper_asound +#define snd_ctl_elem_value_set_iec958 snd_ctl_elem_value_set_iec958_dylibloader_wrapper_asound +#define snd_tlv_parse_dB_info snd_tlv_parse_dB_info_dylibloader_wrapper_asound +#define snd_tlv_get_dB_range snd_tlv_get_dB_range_dylibloader_wrapper_asound +#define snd_tlv_convert_to_dB snd_tlv_convert_to_dB_dylibloader_wrapper_asound +#define snd_tlv_convert_from_dB snd_tlv_convert_from_dB_dylibloader_wrapper_asound +#define snd_ctl_get_dB_range snd_ctl_get_dB_range_dylibloader_wrapper_asound +#define snd_ctl_convert_to_dB snd_ctl_convert_to_dB_dylibloader_wrapper_asound +#define snd_ctl_convert_from_dB snd_ctl_convert_from_dB_dylibloader_wrapper_asound +#define snd_hctl_compare_fast snd_hctl_compare_fast_dylibloader_wrapper_asound +#define snd_hctl_open snd_hctl_open_dylibloader_wrapper_asound +#define snd_hctl_open_ctl snd_hctl_open_ctl_dylibloader_wrapper_asound +#define snd_hctl_close snd_hctl_close_dylibloader_wrapper_asound +#define snd_hctl_nonblock snd_hctl_nonblock_dylibloader_wrapper_asound +#define snd_hctl_poll_descriptors_count snd_hctl_poll_descriptors_count_dylibloader_wrapper_asound +#define snd_hctl_poll_descriptors snd_hctl_poll_descriptors_dylibloader_wrapper_asound +#define snd_hctl_poll_descriptors_revents snd_hctl_poll_descriptors_revents_dylibloader_wrapper_asound +#define snd_hctl_get_count snd_hctl_get_count_dylibloader_wrapper_asound +#define snd_hctl_set_compare snd_hctl_set_compare_dylibloader_wrapper_asound +#define snd_hctl_first_elem snd_hctl_first_elem_dylibloader_wrapper_asound +#define snd_hctl_last_elem snd_hctl_last_elem_dylibloader_wrapper_asound +#define snd_hctl_find_elem snd_hctl_find_elem_dylibloader_wrapper_asound +#define snd_hctl_set_callback snd_hctl_set_callback_dylibloader_wrapper_asound +#define snd_hctl_set_callback_private snd_hctl_set_callback_private_dylibloader_wrapper_asound +#define snd_hctl_get_callback_private snd_hctl_get_callback_private_dylibloader_wrapper_asound +#define snd_hctl_load snd_hctl_load_dylibloader_wrapper_asound +#define snd_hctl_free snd_hctl_free_dylibloader_wrapper_asound +#define snd_hctl_handle_events snd_hctl_handle_events_dylibloader_wrapper_asound +#define snd_hctl_name snd_hctl_name_dylibloader_wrapper_asound +#define snd_hctl_wait snd_hctl_wait_dylibloader_wrapper_asound +#define snd_hctl_ctl snd_hctl_ctl_dylibloader_wrapper_asound +#define snd_hctl_elem_next snd_hctl_elem_next_dylibloader_wrapper_asound +#define snd_hctl_elem_prev snd_hctl_elem_prev_dylibloader_wrapper_asound +#define snd_hctl_elem_info snd_hctl_elem_info_dylibloader_wrapper_asound +#define snd_hctl_elem_read snd_hctl_elem_read_dylibloader_wrapper_asound +#define snd_hctl_elem_write snd_hctl_elem_write_dylibloader_wrapper_asound +#define snd_hctl_elem_tlv_read snd_hctl_elem_tlv_read_dylibloader_wrapper_asound +#define snd_hctl_elem_tlv_write snd_hctl_elem_tlv_write_dylibloader_wrapper_asound +#define snd_hctl_elem_tlv_command snd_hctl_elem_tlv_command_dylibloader_wrapper_asound +#define snd_hctl_elem_get_hctl snd_hctl_elem_get_hctl_dylibloader_wrapper_asound +#define snd_hctl_elem_get_id snd_hctl_elem_get_id_dylibloader_wrapper_asound +#define snd_hctl_elem_get_numid snd_hctl_elem_get_numid_dylibloader_wrapper_asound +#define snd_hctl_elem_get_interface snd_hctl_elem_get_interface_dylibloader_wrapper_asound +#define snd_hctl_elem_get_device snd_hctl_elem_get_device_dylibloader_wrapper_asound +#define snd_hctl_elem_get_subdevice snd_hctl_elem_get_subdevice_dylibloader_wrapper_asound +#define snd_hctl_elem_get_name snd_hctl_elem_get_name_dylibloader_wrapper_asound +#define snd_hctl_elem_get_index snd_hctl_elem_get_index_dylibloader_wrapper_asound +#define snd_hctl_elem_set_callback snd_hctl_elem_set_callback_dylibloader_wrapper_asound +#define snd_hctl_elem_get_callback_private snd_hctl_elem_get_callback_private_dylibloader_wrapper_asound +#define snd_hctl_elem_set_callback_private snd_hctl_elem_set_callback_private_dylibloader_wrapper_asound +#define snd_sctl_build snd_sctl_build_dylibloader_wrapper_asound +#define snd_sctl_free snd_sctl_free_dylibloader_wrapper_asound +#define snd_sctl_install snd_sctl_install_dylibloader_wrapper_asound +#define snd_sctl_remove snd_sctl_remove_dylibloader_wrapper_asound +#define snd_mixer_open snd_mixer_open_dylibloader_wrapper_asound +#define snd_mixer_close snd_mixer_close_dylibloader_wrapper_asound +#define snd_mixer_first_elem snd_mixer_first_elem_dylibloader_wrapper_asound +#define snd_mixer_last_elem snd_mixer_last_elem_dylibloader_wrapper_asound +#define snd_mixer_handle_events snd_mixer_handle_events_dylibloader_wrapper_asound +#define snd_mixer_attach snd_mixer_attach_dylibloader_wrapper_asound +#define snd_mixer_attach_hctl snd_mixer_attach_hctl_dylibloader_wrapper_asound +#define snd_mixer_detach snd_mixer_detach_dylibloader_wrapper_asound +#define snd_mixer_detach_hctl snd_mixer_detach_hctl_dylibloader_wrapper_asound +#define snd_mixer_get_hctl snd_mixer_get_hctl_dylibloader_wrapper_asound +#define snd_mixer_poll_descriptors_count snd_mixer_poll_descriptors_count_dylibloader_wrapper_asound +#define snd_mixer_poll_descriptors snd_mixer_poll_descriptors_dylibloader_wrapper_asound +#define snd_mixer_poll_descriptors_revents snd_mixer_poll_descriptors_revents_dylibloader_wrapper_asound +#define snd_mixer_load snd_mixer_load_dylibloader_wrapper_asound +#define snd_mixer_free snd_mixer_free_dylibloader_wrapper_asound +#define snd_mixer_wait snd_mixer_wait_dylibloader_wrapper_asound +#define snd_mixer_set_compare snd_mixer_set_compare_dylibloader_wrapper_asound +#define snd_mixer_set_callback snd_mixer_set_callback_dylibloader_wrapper_asound +#define snd_mixer_get_callback_private snd_mixer_get_callback_private_dylibloader_wrapper_asound +#define snd_mixer_set_callback_private snd_mixer_set_callback_private_dylibloader_wrapper_asound +#define snd_mixer_get_count snd_mixer_get_count_dylibloader_wrapper_asound +#define snd_mixer_class_unregister snd_mixer_class_unregister_dylibloader_wrapper_asound +#define snd_mixer_elem_next snd_mixer_elem_next_dylibloader_wrapper_asound +#define snd_mixer_elem_prev snd_mixer_elem_prev_dylibloader_wrapper_asound +#define snd_mixer_elem_set_callback snd_mixer_elem_set_callback_dylibloader_wrapper_asound +#define snd_mixer_elem_get_callback_private snd_mixer_elem_get_callback_private_dylibloader_wrapper_asound +#define snd_mixer_elem_set_callback_private snd_mixer_elem_set_callback_private_dylibloader_wrapper_asound +#define snd_mixer_elem_get_type snd_mixer_elem_get_type_dylibloader_wrapper_asound +#define snd_mixer_class_register snd_mixer_class_register_dylibloader_wrapper_asound +#define snd_mixer_elem_new snd_mixer_elem_new_dylibloader_wrapper_asound +#define snd_mixer_elem_add snd_mixer_elem_add_dylibloader_wrapper_asound +#define snd_mixer_elem_remove snd_mixer_elem_remove_dylibloader_wrapper_asound +#define snd_mixer_elem_free snd_mixer_elem_free_dylibloader_wrapper_asound +#define snd_mixer_elem_info snd_mixer_elem_info_dylibloader_wrapper_asound +#define snd_mixer_elem_value snd_mixer_elem_value_dylibloader_wrapper_asound +#define snd_mixer_elem_attach snd_mixer_elem_attach_dylibloader_wrapper_asound +#define snd_mixer_elem_detach snd_mixer_elem_detach_dylibloader_wrapper_asound +#define snd_mixer_elem_empty snd_mixer_elem_empty_dylibloader_wrapper_asound +#define snd_mixer_elem_get_private snd_mixer_elem_get_private_dylibloader_wrapper_asound +#define snd_mixer_class_sizeof snd_mixer_class_sizeof_dylibloader_wrapper_asound +#define snd_mixer_class_malloc snd_mixer_class_malloc_dylibloader_wrapper_asound +#define snd_mixer_class_free snd_mixer_class_free_dylibloader_wrapper_asound +#define snd_mixer_class_copy snd_mixer_class_copy_dylibloader_wrapper_asound +#define snd_mixer_class_get_mixer snd_mixer_class_get_mixer_dylibloader_wrapper_asound +#define snd_mixer_class_get_event snd_mixer_class_get_event_dylibloader_wrapper_asound +#define snd_mixer_class_get_private snd_mixer_class_get_private_dylibloader_wrapper_asound +#define snd_mixer_class_get_compare snd_mixer_class_get_compare_dylibloader_wrapper_asound +#define snd_mixer_class_set_event snd_mixer_class_set_event_dylibloader_wrapper_asound +#define snd_mixer_class_set_private snd_mixer_class_set_private_dylibloader_wrapper_asound +#define snd_mixer_class_set_private_free snd_mixer_class_set_private_free_dylibloader_wrapper_asound +#define snd_mixer_class_set_compare snd_mixer_class_set_compare_dylibloader_wrapper_asound +#define snd_mixer_selem_channel_name snd_mixer_selem_channel_name_dylibloader_wrapper_asound +#define snd_mixer_selem_register snd_mixer_selem_register_dylibloader_wrapper_asound +#define snd_mixer_selem_get_id snd_mixer_selem_get_id_dylibloader_wrapper_asound +#define snd_mixer_selem_get_name snd_mixer_selem_get_name_dylibloader_wrapper_asound +#define snd_mixer_selem_get_index snd_mixer_selem_get_index_dylibloader_wrapper_asound +#define snd_mixer_find_selem snd_mixer_find_selem_dylibloader_wrapper_asound +#define snd_mixer_selem_is_active snd_mixer_selem_is_active_dylibloader_wrapper_asound +#define snd_mixer_selem_is_playback_mono snd_mixer_selem_is_playback_mono_dylibloader_wrapper_asound +#define snd_mixer_selem_has_playback_channel snd_mixer_selem_has_playback_channel_dylibloader_wrapper_asound +#define snd_mixer_selem_is_capture_mono snd_mixer_selem_is_capture_mono_dylibloader_wrapper_asound +#define snd_mixer_selem_has_capture_channel snd_mixer_selem_has_capture_channel_dylibloader_wrapper_asound +#define snd_mixer_selem_get_capture_group snd_mixer_selem_get_capture_group_dylibloader_wrapper_asound +#define snd_mixer_selem_has_common_volume snd_mixer_selem_has_common_volume_dylibloader_wrapper_asound +#define snd_mixer_selem_has_playback_volume snd_mixer_selem_has_playback_volume_dylibloader_wrapper_asound +#define snd_mixer_selem_has_playback_volume_joined snd_mixer_selem_has_playback_volume_joined_dylibloader_wrapper_asound +#define snd_mixer_selem_has_capture_volume snd_mixer_selem_has_capture_volume_dylibloader_wrapper_asound +#define snd_mixer_selem_has_capture_volume_joined snd_mixer_selem_has_capture_volume_joined_dylibloader_wrapper_asound +#define snd_mixer_selem_has_common_switch snd_mixer_selem_has_common_switch_dylibloader_wrapper_asound +#define snd_mixer_selem_has_playback_switch snd_mixer_selem_has_playback_switch_dylibloader_wrapper_asound +#define snd_mixer_selem_has_playback_switch_joined snd_mixer_selem_has_playback_switch_joined_dylibloader_wrapper_asound +#define snd_mixer_selem_has_capture_switch snd_mixer_selem_has_capture_switch_dylibloader_wrapper_asound +#define snd_mixer_selem_has_capture_switch_joined snd_mixer_selem_has_capture_switch_joined_dylibloader_wrapper_asound +#define snd_mixer_selem_has_capture_switch_exclusive snd_mixer_selem_has_capture_switch_exclusive_dylibloader_wrapper_asound +#define snd_mixer_selem_ask_playback_vol_dB snd_mixer_selem_ask_playback_vol_dB_dylibloader_wrapper_asound +#define snd_mixer_selem_ask_capture_vol_dB snd_mixer_selem_ask_capture_vol_dB_dylibloader_wrapper_asound +#define snd_mixer_selem_ask_playback_dB_vol snd_mixer_selem_ask_playback_dB_vol_dylibloader_wrapper_asound +#define snd_mixer_selem_ask_capture_dB_vol snd_mixer_selem_ask_capture_dB_vol_dylibloader_wrapper_asound +#define snd_mixer_selem_get_playback_volume snd_mixer_selem_get_playback_volume_dylibloader_wrapper_asound +#define snd_mixer_selem_get_capture_volume snd_mixer_selem_get_capture_volume_dylibloader_wrapper_asound +#define snd_mixer_selem_get_playback_dB snd_mixer_selem_get_playback_dB_dylibloader_wrapper_asound +#define snd_mixer_selem_get_capture_dB snd_mixer_selem_get_capture_dB_dylibloader_wrapper_asound +#define snd_mixer_selem_get_playback_switch snd_mixer_selem_get_playback_switch_dylibloader_wrapper_asound +#define snd_mixer_selem_get_capture_switch snd_mixer_selem_get_capture_switch_dylibloader_wrapper_asound +#define snd_mixer_selem_set_playback_volume snd_mixer_selem_set_playback_volume_dylibloader_wrapper_asound +#define snd_mixer_selem_set_capture_volume snd_mixer_selem_set_capture_volume_dylibloader_wrapper_asound +#define snd_mixer_selem_set_playback_dB snd_mixer_selem_set_playback_dB_dylibloader_wrapper_asound +#define snd_mixer_selem_set_capture_dB snd_mixer_selem_set_capture_dB_dylibloader_wrapper_asound +#define snd_mixer_selem_set_playback_volume_all snd_mixer_selem_set_playback_volume_all_dylibloader_wrapper_asound +#define snd_mixer_selem_set_capture_volume_all snd_mixer_selem_set_capture_volume_all_dylibloader_wrapper_asound +#define snd_mixer_selem_set_playback_dB_all snd_mixer_selem_set_playback_dB_all_dylibloader_wrapper_asound +#define snd_mixer_selem_set_capture_dB_all snd_mixer_selem_set_capture_dB_all_dylibloader_wrapper_asound +#define snd_mixer_selem_set_playback_switch snd_mixer_selem_set_playback_switch_dylibloader_wrapper_asound +#define snd_mixer_selem_set_capture_switch snd_mixer_selem_set_capture_switch_dylibloader_wrapper_asound +#define snd_mixer_selem_set_playback_switch_all snd_mixer_selem_set_playback_switch_all_dylibloader_wrapper_asound +#define snd_mixer_selem_set_capture_switch_all snd_mixer_selem_set_capture_switch_all_dylibloader_wrapper_asound +#define snd_mixer_selem_get_playback_volume_range snd_mixer_selem_get_playback_volume_range_dylibloader_wrapper_asound +#define snd_mixer_selem_get_playback_dB_range snd_mixer_selem_get_playback_dB_range_dylibloader_wrapper_asound +#define snd_mixer_selem_set_playback_volume_range snd_mixer_selem_set_playback_volume_range_dylibloader_wrapper_asound +#define snd_mixer_selem_get_capture_volume_range snd_mixer_selem_get_capture_volume_range_dylibloader_wrapper_asound +#define snd_mixer_selem_get_capture_dB_range snd_mixer_selem_get_capture_dB_range_dylibloader_wrapper_asound +#define snd_mixer_selem_set_capture_volume_range snd_mixer_selem_set_capture_volume_range_dylibloader_wrapper_asound +#define snd_mixer_selem_is_enumerated snd_mixer_selem_is_enumerated_dylibloader_wrapper_asound +#define snd_mixer_selem_is_enum_playback snd_mixer_selem_is_enum_playback_dylibloader_wrapper_asound +#define snd_mixer_selem_is_enum_capture snd_mixer_selem_is_enum_capture_dylibloader_wrapper_asound +#define snd_mixer_selem_get_enum_items snd_mixer_selem_get_enum_items_dylibloader_wrapper_asound +#define snd_mixer_selem_get_enum_item_name snd_mixer_selem_get_enum_item_name_dylibloader_wrapper_asound +#define snd_mixer_selem_get_enum_item snd_mixer_selem_get_enum_item_dylibloader_wrapper_asound +#define snd_mixer_selem_set_enum_item snd_mixer_selem_set_enum_item_dylibloader_wrapper_asound +#define snd_mixer_selem_id_sizeof snd_mixer_selem_id_sizeof_dylibloader_wrapper_asound +#define snd_mixer_selem_id_malloc snd_mixer_selem_id_malloc_dylibloader_wrapper_asound +#define snd_mixer_selem_id_free snd_mixer_selem_id_free_dylibloader_wrapper_asound +#define snd_mixer_selem_id_copy snd_mixer_selem_id_copy_dylibloader_wrapper_asound +#define snd_mixer_selem_id_get_name snd_mixer_selem_id_get_name_dylibloader_wrapper_asound +#define snd_mixer_selem_id_get_index snd_mixer_selem_id_get_index_dylibloader_wrapper_asound +#define snd_mixer_selem_id_set_name snd_mixer_selem_id_set_name_dylibloader_wrapper_asound +#define snd_mixer_selem_id_set_index snd_mixer_selem_id_set_index_dylibloader_wrapper_asound +#define snd_mixer_selem_id_parse snd_mixer_selem_id_parse_dylibloader_wrapper_asound +#define snd_seq_open snd_seq_open_dylibloader_wrapper_asound +#define snd_seq_open_lconf snd_seq_open_lconf_dylibloader_wrapper_asound +#define snd_seq_name snd_seq_name_dylibloader_wrapper_asound +#define snd_seq_type snd_seq_type_dylibloader_wrapper_asound +#define snd_seq_close snd_seq_close_dylibloader_wrapper_asound +#define snd_seq_poll_descriptors_count snd_seq_poll_descriptors_count_dylibloader_wrapper_asound +#define snd_seq_poll_descriptors snd_seq_poll_descriptors_dylibloader_wrapper_asound +#define snd_seq_poll_descriptors_revents snd_seq_poll_descriptors_revents_dylibloader_wrapper_asound +#define snd_seq_nonblock snd_seq_nonblock_dylibloader_wrapper_asound +#define snd_seq_client_id snd_seq_client_id_dylibloader_wrapper_asound +#define snd_seq_get_output_buffer_size snd_seq_get_output_buffer_size_dylibloader_wrapper_asound +#define snd_seq_get_input_buffer_size snd_seq_get_input_buffer_size_dylibloader_wrapper_asound +#define snd_seq_set_output_buffer_size snd_seq_set_output_buffer_size_dylibloader_wrapper_asound +#define snd_seq_set_input_buffer_size snd_seq_set_input_buffer_size_dylibloader_wrapper_asound +#define snd_seq_system_info_sizeof snd_seq_system_info_sizeof_dylibloader_wrapper_asound +#define snd_seq_system_info_malloc snd_seq_system_info_malloc_dylibloader_wrapper_asound +#define snd_seq_system_info_free snd_seq_system_info_free_dylibloader_wrapper_asound +#define snd_seq_system_info_copy snd_seq_system_info_copy_dylibloader_wrapper_asound +#define snd_seq_system_info_get_queues snd_seq_system_info_get_queues_dylibloader_wrapper_asound +#define snd_seq_system_info_get_clients snd_seq_system_info_get_clients_dylibloader_wrapper_asound +#define snd_seq_system_info_get_ports snd_seq_system_info_get_ports_dylibloader_wrapper_asound +#define snd_seq_system_info_get_channels snd_seq_system_info_get_channels_dylibloader_wrapper_asound +#define snd_seq_system_info_get_cur_clients snd_seq_system_info_get_cur_clients_dylibloader_wrapper_asound +#define snd_seq_system_info_get_cur_queues snd_seq_system_info_get_cur_queues_dylibloader_wrapper_asound +#define snd_seq_system_info snd_seq_system_info_dylibloader_wrapper_asound +#define snd_seq_client_info_sizeof snd_seq_client_info_sizeof_dylibloader_wrapper_asound +#define snd_seq_client_info_malloc snd_seq_client_info_malloc_dylibloader_wrapper_asound +#define snd_seq_client_info_free snd_seq_client_info_free_dylibloader_wrapper_asound +#define snd_seq_client_info_copy snd_seq_client_info_copy_dylibloader_wrapper_asound +#define snd_seq_client_info_get_client snd_seq_client_info_get_client_dylibloader_wrapper_asound +#define snd_seq_client_info_get_type snd_seq_client_info_get_type_dylibloader_wrapper_asound +#define snd_seq_client_info_get_name snd_seq_client_info_get_name_dylibloader_wrapper_asound +#define snd_seq_client_info_get_broadcast_filter snd_seq_client_info_get_broadcast_filter_dylibloader_wrapper_asound +#define snd_seq_client_info_get_error_bounce snd_seq_client_info_get_error_bounce_dylibloader_wrapper_asound +#define snd_seq_client_info_get_card snd_seq_client_info_get_card_dylibloader_wrapper_asound +#define snd_seq_client_info_get_pid snd_seq_client_info_get_pid_dylibloader_wrapper_asound +#define snd_seq_client_info_get_event_filter snd_seq_client_info_get_event_filter_dylibloader_wrapper_asound +#define snd_seq_client_info_get_num_ports snd_seq_client_info_get_num_ports_dylibloader_wrapper_asound +#define snd_seq_client_info_get_event_lost snd_seq_client_info_get_event_lost_dylibloader_wrapper_asound +#define snd_seq_client_info_set_client snd_seq_client_info_set_client_dylibloader_wrapper_asound +#define snd_seq_client_info_set_name snd_seq_client_info_set_name_dylibloader_wrapper_asound +#define snd_seq_client_info_set_broadcast_filter snd_seq_client_info_set_broadcast_filter_dylibloader_wrapper_asound +#define snd_seq_client_info_set_error_bounce snd_seq_client_info_set_error_bounce_dylibloader_wrapper_asound +#define snd_seq_client_info_set_event_filter snd_seq_client_info_set_event_filter_dylibloader_wrapper_asound +#define snd_seq_client_info_event_filter_clear snd_seq_client_info_event_filter_clear_dylibloader_wrapper_asound +#define snd_seq_client_info_event_filter_add snd_seq_client_info_event_filter_add_dylibloader_wrapper_asound +#define snd_seq_client_info_event_filter_del snd_seq_client_info_event_filter_del_dylibloader_wrapper_asound +#define snd_seq_client_info_event_filter_check snd_seq_client_info_event_filter_check_dylibloader_wrapper_asound +#define snd_seq_get_client_info snd_seq_get_client_info_dylibloader_wrapper_asound +#define snd_seq_get_any_client_info snd_seq_get_any_client_info_dylibloader_wrapper_asound +#define snd_seq_set_client_info snd_seq_set_client_info_dylibloader_wrapper_asound +#define snd_seq_query_next_client snd_seq_query_next_client_dylibloader_wrapper_asound +#define snd_seq_client_pool_sizeof snd_seq_client_pool_sizeof_dylibloader_wrapper_asound +#define snd_seq_client_pool_malloc snd_seq_client_pool_malloc_dylibloader_wrapper_asound +#define snd_seq_client_pool_free snd_seq_client_pool_free_dylibloader_wrapper_asound +#define snd_seq_client_pool_copy snd_seq_client_pool_copy_dylibloader_wrapper_asound +#define snd_seq_client_pool_get_client snd_seq_client_pool_get_client_dylibloader_wrapper_asound +#define snd_seq_client_pool_get_output_pool snd_seq_client_pool_get_output_pool_dylibloader_wrapper_asound +#define snd_seq_client_pool_get_input_pool snd_seq_client_pool_get_input_pool_dylibloader_wrapper_asound +#define snd_seq_client_pool_get_output_room snd_seq_client_pool_get_output_room_dylibloader_wrapper_asound +#define snd_seq_client_pool_get_output_free snd_seq_client_pool_get_output_free_dylibloader_wrapper_asound +#define snd_seq_client_pool_get_input_free snd_seq_client_pool_get_input_free_dylibloader_wrapper_asound +#define snd_seq_client_pool_set_output_pool snd_seq_client_pool_set_output_pool_dylibloader_wrapper_asound +#define snd_seq_client_pool_set_input_pool snd_seq_client_pool_set_input_pool_dylibloader_wrapper_asound +#define snd_seq_client_pool_set_output_room snd_seq_client_pool_set_output_room_dylibloader_wrapper_asound +#define snd_seq_get_client_pool snd_seq_get_client_pool_dylibloader_wrapper_asound +#define snd_seq_set_client_pool snd_seq_set_client_pool_dylibloader_wrapper_asound +#define snd_seq_port_info_sizeof snd_seq_port_info_sizeof_dylibloader_wrapper_asound +#define snd_seq_port_info_malloc snd_seq_port_info_malloc_dylibloader_wrapper_asound +#define snd_seq_port_info_free snd_seq_port_info_free_dylibloader_wrapper_asound +#define snd_seq_port_info_copy snd_seq_port_info_copy_dylibloader_wrapper_asound +#define snd_seq_port_info_get_client snd_seq_port_info_get_client_dylibloader_wrapper_asound +#define snd_seq_port_info_get_port snd_seq_port_info_get_port_dylibloader_wrapper_asound +#define snd_seq_port_info_get_addr snd_seq_port_info_get_addr_dylibloader_wrapper_asound +#define snd_seq_port_info_get_name snd_seq_port_info_get_name_dylibloader_wrapper_asound +#define snd_seq_port_info_get_capability snd_seq_port_info_get_capability_dylibloader_wrapper_asound +#define snd_seq_port_info_get_type snd_seq_port_info_get_type_dylibloader_wrapper_asound +#define snd_seq_port_info_get_midi_channels snd_seq_port_info_get_midi_channels_dylibloader_wrapper_asound +#define snd_seq_port_info_get_midi_voices snd_seq_port_info_get_midi_voices_dylibloader_wrapper_asound +#define snd_seq_port_info_get_synth_voices snd_seq_port_info_get_synth_voices_dylibloader_wrapper_asound +#define snd_seq_port_info_get_read_use snd_seq_port_info_get_read_use_dylibloader_wrapper_asound +#define snd_seq_port_info_get_write_use snd_seq_port_info_get_write_use_dylibloader_wrapper_asound +#define snd_seq_port_info_get_port_specified snd_seq_port_info_get_port_specified_dylibloader_wrapper_asound +#define snd_seq_port_info_get_timestamping snd_seq_port_info_get_timestamping_dylibloader_wrapper_asound +#define snd_seq_port_info_get_timestamp_real snd_seq_port_info_get_timestamp_real_dylibloader_wrapper_asound +#define snd_seq_port_info_get_timestamp_queue snd_seq_port_info_get_timestamp_queue_dylibloader_wrapper_asound +#define snd_seq_port_info_set_client snd_seq_port_info_set_client_dylibloader_wrapper_asound +#define snd_seq_port_info_set_port snd_seq_port_info_set_port_dylibloader_wrapper_asound +#define snd_seq_port_info_set_addr snd_seq_port_info_set_addr_dylibloader_wrapper_asound +#define snd_seq_port_info_set_name snd_seq_port_info_set_name_dylibloader_wrapper_asound +#define snd_seq_port_info_set_capability snd_seq_port_info_set_capability_dylibloader_wrapper_asound +#define snd_seq_port_info_set_type snd_seq_port_info_set_type_dylibloader_wrapper_asound +#define snd_seq_port_info_set_midi_channels snd_seq_port_info_set_midi_channels_dylibloader_wrapper_asound +#define snd_seq_port_info_set_midi_voices snd_seq_port_info_set_midi_voices_dylibloader_wrapper_asound +#define snd_seq_port_info_set_synth_voices snd_seq_port_info_set_synth_voices_dylibloader_wrapper_asound +#define snd_seq_port_info_set_port_specified snd_seq_port_info_set_port_specified_dylibloader_wrapper_asound +#define snd_seq_port_info_set_timestamping snd_seq_port_info_set_timestamping_dylibloader_wrapper_asound +#define snd_seq_port_info_set_timestamp_real snd_seq_port_info_set_timestamp_real_dylibloader_wrapper_asound +#define snd_seq_port_info_set_timestamp_queue snd_seq_port_info_set_timestamp_queue_dylibloader_wrapper_asound +#define snd_seq_create_port snd_seq_create_port_dylibloader_wrapper_asound +#define snd_seq_delete_port snd_seq_delete_port_dylibloader_wrapper_asound +#define snd_seq_get_port_info snd_seq_get_port_info_dylibloader_wrapper_asound +#define snd_seq_get_any_port_info snd_seq_get_any_port_info_dylibloader_wrapper_asound +#define snd_seq_set_port_info snd_seq_set_port_info_dylibloader_wrapper_asound +#define snd_seq_query_next_port snd_seq_query_next_port_dylibloader_wrapper_asound +#define snd_seq_port_subscribe_sizeof snd_seq_port_subscribe_sizeof_dylibloader_wrapper_asound +#define snd_seq_port_subscribe_malloc snd_seq_port_subscribe_malloc_dylibloader_wrapper_asound +#define snd_seq_port_subscribe_free snd_seq_port_subscribe_free_dylibloader_wrapper_asound +#define snd_seq_port_subscribe_copy snd_seq_port_subscribe_copy_dylibloader_wrapper_asound +#define snd_seq_port_subscribe_get_sender snd_seq_port_subscribe_get_sender_dylibloader_wrapper_asound +#define snd_seq_port_subscribe_get_dest snd_seq_port_subscribe_get_dest_dylibloader_wrapper_asound +#define snd_seq_port_subscribe_get_queue snd_seq_port_subscribe_get_queue_dylibloader_wrapper_asound +#define snd_seq_port_subscribe_get_exclusive snd_seq_port_subscribe_get_exclusive_dylibloader_wrapper_asound +#define snd_seq_port_subscribe_get_time_update snd_seq_port_subscribe_get_time_update_dylibloader_wrapper_asound +#define snd_seq_port_subscribe_get_time_real snd_seq_port_subscribe_get_time_real_dylibloader_wrapper_asound +#define snd_seq_port_subscribe_set_sender snd_seq_port_subscribe_set_sender_dylibloader_wrapper_asound +#define snd_seq_port_subscribe_set_dest snd_seq_port_subscribe_set_dest_dylibloader_wrapper_asound +#define snd_seq_port_subscribe_set_queue snd_seq_port_subscribe_set_queue_dylibloader_wrapper_asound +#define snd_seq_port_subscribe_set_exclusive snd_seq_port_subscribe_set_exclusive_dylibloader_wrapper_asound +#define snd_seq_port_subscribe_set_time_update snd_seq_port_subscribe_set_time_update_dylibloader_wrapper_asound +#define snd_seq_port_subscribe_set_time_real snd_seq_port_subscribe_set_time_real_dylibloader_wrapper_asound +#define snd_seq_get_port_subscription snd_seq_get_port_subscription_dylibloader_wrapper_asound +#define snd_seq_subscribe_port snd_seq_subscribe_port_dylibloader_wrapper_asound +#define snd_seq_unsubscribe_port snd_seq_unsubscribe_port_dylibloader_wrapper_asound +#define snd_seq_query_subscribe_sizeof snd_seq_query_subscribe_sizeof_dylibloader_wrapper_asound +#define snd_seq_query_subscribe_malloc snd_seq_query_subscribe_malloc_dylibloader_wrapper_asound +#define snd_seq_query_subscribe_free snd_seq_query_subscribe_free_dylibloader_wrapper_asound +#define snd_seq_query_subscribe_copy snd_seq_query_subscribe_copy_dylibloader_wrapper_asound +#define snd_seq_query_subscribe_get_client snd_seq_query_subscribe_get_client_dylibloader_wrapper_asound +#define snd_seq_query_subscribe_get_port snd_seq_query_subscribe_get_port_dylibloader_wrapper_asound +#define snd_seq_query_subscribe_get_root snd_seq_query_subscribe_get_root_dylibloader_wrapper_asound +#define snd_seq_query_subscribe_get_type snd_seq_query_subscribe_get_type_dylibloader_wrapper_asound +#define snd_seq_query_subscribe_get_index snd_seq_query_subscribe_get_index_dylibloader_wrapper_asound +#define snd_seq_query_subscribe_get_num_subs snd_seq_query_subscribe_get_num_subs_dylibloader_wrapper_asound +#define snd_seq_query_subscribe_get_addr snd_seq_query_subscribe_get_addr_dylibloader_wrapper_asound +#define snd_seq_query_subscribe_get_queue snd_seq_query_subscribe_get_queue_dylibloader_wrapper_asound +#define snd_seq_query_subscribe_get_exclusive snd_seq_query_subscribe_get_exclusive_dylibloader_wrapper_asound +#define snd_seq_query_subscribe_get_time_update snd_seq_query_subscribe_get_time_update_dylibloader_wrapper_asound +#define snd_seq_query_subscribe_get_time_real snd_seq_query_subscribe_get_time_real_dylibloader_wrapper_asound +#define snd_seq_query_subscribe_set_client snd_seq_query_subscribe_set_client_dylibloader_wrapper_asound +#define snd_seq_query_subscribe_set_port snd_seq_query_subscribe_set_port_dylibloader_wrapper_asound +#define snd_seq_query_subscribe_set_root snd_seq_query_subscribe_set_root_dylibloader_wrapper_asound +#define snd_seq_query_subscribe_set_type snd_seq_query_subscribe_set_type_dylibloader_wrapper_asound +#define snd_seq_query_subscribe_set_index snd_seq_query_subscribe_set_index_dylibloader_wrapper_asound +#define snd_seq_query_port_subscribers snd_seq_query_port_subscribers_dylibloader_wrapper_asound +#define snd_seq_queue_info_sizeof snd_seq_queue_info_sizeof_dylibloader_wrapper_asound +#define snd_seq_queue_info_malloc snd_seq_queue_info_malloc_dylibloader_wrapper_asound +#define snd_seq_queue_info_free snd_seq_queue_info_free_dylibloader_wrapper_asound +#define snd_seq_queue_info_copy snd_seq_queue_info_copy_dylibloader_wrapper_asound +#define snd_seq_queue_info_get_queue snd_seq_queue_info_get_queue_dylibloader_wrapper_asound +#define snd_seq_queue_info_get_name snd_seq_queue_info_get_name_dylibloader_wrapper_asound +#define snd_seq_queue_info_get_owner snd_seq_queue_info_get_owner_dylibloader_wrapper_asound +#define snd_seq_queue_info_get_locked snd_seq_queue_info_get_locked_dylibloader_wrapper_asound +#define snd_seq_queue_info_get_flags snd_seq_queue_info_get_flags_dylibloader_wrapper_asound +#define snd_seq_queue_info_set_name snd_seq_queue_info_set_name_dylibloader_wrapper_asound +#define snd_seq_queue_info_set_owner snd_seq_queue_info_set_owner_dylibloader_wrapper_asound +#define snd_seq_queue_info_set_locked snd_seq_queue_info_set_locked_dylibloader_wrapper_asound +#define snd_seq_queue_info_set_flags snd_seq_queue_info_set_flags_dylibloader_wrapper_asound +#define snd_seq_create_queue snd_seq_create_queue_dylibloader_wrapper_asound +#define snd_seq_alloc_named_queue snd_seq_alloc_named_queue_dylibloader_wrapper_asound +#define snd_seq_alloc_queue snd_seq_alloc_queue_dylibloader_wrapper_asound +#define snd_seq_free_queue snd_seq_free_queue_dylibloader_wrapper_asound +#define snd_seq_get_queue_info snd_seq_get_queue_info_dylibloader_wrapper_asound +#define snd_seq_set_queue_info snd_seq_set_queue_info_dylibloader_wrapper_asound +#define snd_seq_query_named_queue snd_seq_query_named_queue_dylibloader_wrapper_asound +#define snd_seq_get_queue_usage snd_seq_get_queue_usage_dylibloader_wrapper_asound +#define snd_seq_set_queue_usage snd_seq_set_queue_usage_dylibloader_wrapper_asound +#define snd_seq_queue_status_sizeof snd_seq_queue_status_sizeof_dylibloader_wrapper_asound +#define snd_seq_queue_status_malloc snd_seq_queue_status_malloc_dylibloader_wrapper_asound +#define snd_seq_queue_status_free snd_seq_queue_status_free_dylibloader_wrapper_asound +#define snd_seq_queue_status_copy snd_seq_queue_status_copy_dylibloader_wrapper_asound +#define snd_seq_queue_status_get_queue snd_seq_queue_status_get_queue_dylibloader_wrapper_asound +#define snd_seq_queue_status_get_events snd_seq_queue_status_get_events_dylibloader_wrapper_asound +#define snd_seq_queue_status_get_tick_time snd_seq_queue_status_get_tick_time_dylibloader_wrapper_asound +#define snd_seq_queue_status_get_real_time snd_seq_queue_status_get_real_time_dylibloader_wrapper_asound +#define snd_seq_queue_status_get_status snd_seq_queue_status_get_status_dylibloader_wrapper_asound +#define snd_seq_get_queue_status snd_seq_get_queue_status_dylibloader_wrapper_asound +#define snd_seq_queue_tempo_sizeof snd_seq_queue_tempo_sizeof_dylibloader_wrapper_asound +#define snd_seq_queue_tempo_malloc snd_seq_queue_tempo_malloc_dylibloader_wrapper_asound +#define snd_seq_queue_tempo_free snd_seq_queue_tempo_free_dylibloader_wrapper_asound +#define snd_seq_queue_tempo_copy snd_seq_queue_tempo_copy_dylibloader_wrapper_asound +#define snd_seq_queue_tempo_get_queue snd_seq_queue_tempo_get_queue_dylibloader_wrapper_asound +#define snd_seq_queue_tempo_get_tempo snd_seq_queue_tempo_get_tempo_dylibloader_wrapper_asound +#define snd_seq_queue_tempo_get_ppq snd_seq_queue_tempo_get_ppq_dylibloader_wrapper_asound +#define snd_seq_queue_tempo_get_skew snd_seq_queue_tempo_get_skew_dylibloader_wrapper_asound +#define snd_seq_queue_tempo_get_skew_base snd_seq_queue_tempo_get_skew_base_dylibloader_wrapper_asound +#define snd_seq_queue_tempo_set_tempo snd_seq_queue_tempo_set_tempo_dylibloader_wrapper_asound +#define snd_seq_queue_tempo_set_ppq snd_seq_queue_tempo_set_ppq_dylibloader_wrapper_asound +#define snd_seq_queue_tempo_set_skew snd_seq_queue_tempo_set_skew_dylibloader_wrapper_asound +#define snd_seq_queue_tempo_set_skew_base snd_seq_queue_tempo_set_skew_base_dylibloader_wrapper_asound +#define snd_seq_get_queue_tempo snd_seq_get_queue_tempo_dylibloader_wrapper_asound +#define snd_seq_set_queue_tempo snd_seq_set_queue_tempo_dylibloader_wrapper_asound +#define snd_seq_queue_timer_sizeof snd_seq_queue_timer_sizeof_dylibloader_wrapper_asound +#define snd_seq_queue_timer_malloc snd_seq_queue_timer_malloc_dylibloader_wrapper_asound +#define snd_seq_queue_timer_free snd_seq_queue_timer_free_dylibloader_wrapper_asound +#define snd_seq_queue_timer_copy snd_seq_queue_timer_copy_dylibloader_wrapper_asound +#define snd_seq_queue_timer_get_queue snd_seq_queue_timer_get_queue_dylibloader_wrapper_asound +#define snd_seq_queue_timer_get_type snd_seq_queue_timer_get_type_dylibloader_wrapper_asound +#define snd_seq_queue_timer_get_id snd_seq_queue_timer_get_id_dylibloader_wrapper_asound +#define snd_seq_queue_timer_get_resolution snd_seq_queue_timer_get_resolution_dylibloader_wrapper_asound +#define snd_seq_queue_timer_set_type snd_seq_queue_timer_set_type_dylibloader_wrapper_asound +#define snd_seq_queue_timer_set_id snd_seq_queue_timer_set_id_dylibloader_wrapper_asound +#define snd_seq_queue_timer_set_resolution snd_seq_queue_timer_set_resolution_dylibloader_wrapper_asound +#define snd_seq_get_queue_timer snd_seq_get_queue_timer_dylibloader_wrapper_asound +#define snd_seq_set_queue_timer snd_seq_set_queue_timer_dylibloader_wrapper_asound +#define snd_seq_free_event snd_seq_free_event_dylibloader_wrapper_asound +#define snd_seq_event_length snd_seq_event_length_dylibloader_wrapper_asound +#define snd_seq_event_output snd_seq_event_output_dylibloader_wrapper_asound +#define snd_seq_event_output_buffer snd_seq_event_output_buffer_dylibloader_wrapper_asound +#define snd_seq_event_output_direct snd_seq_event_output_direct_dylibloader_wrapper_asound +#define snd_seq_event_input snd_seq_event_input_dylibloader_wrapper_asound +#define snd_seq_event_input_pending snd_seq_event_input_pending_dylibloader_wrapper_asound +#define snd_seq_drain_output snd_seq_drain_output_dylibloader_wrapper_asound +#define snd_seq_event_output_pending snd_seq_event_output_pending_dylibloader_wrapper_asound +#define snd_seq_extract_output snd_seq_extract_output_dylibloader_wrapper_asound +#define snd_seq_drop_output snd_seq_drop_output_dylibloader_wrapper_asound +#define snd_seq_drop_output_buffer snd_seq_drop_output_buffer_dylibloader_wrapper_asound +#define snd_seq_drop_input snd_seq_drop_input_dylibloader_wrapper_asound +#define snd_seq_drop_input_buffer snd_seq_drop_input_buffer_dylibloader_wrapper_asound +#define snd_seq_remove_events_sizeof snd_seq_remove_events_sizeof_dylibloader_wrapper_asound +#define snd_seq_remove_events_malloc snd_seq_remove_events_malloc_dylibloader_wrapper_asound +#define snd_seq_remove_events_free snd_seq_remove_events_free_dylibloader_wrapper_asound +#define snd_seq_remove_events_copy snd_seq_remove_events_copy_dylibloader_wrapper_asound +#define snd_seq_remove_events_get_condition snd_seq_remove_events_get_condition_dylibloader_wrapper_asound +#define snd_seq_remove_events_get_queue snd_seq_remove_events_get_queue_dylibloader_wrapper_asound +#define snd_seq_remove_events_get_time snd_seq_remove_events_get_time_dylibloader_wrapper_asound +#define snd_seq_remove_events_get_dest snd_seq_remove_events_get_dest_dylibloader_wrapper_asound +#define snd_seq_remove_events_get_channel snd_seq_remove_events_get_channel_dylibloader_wrapper_asound +#define snd_seq_remove_events_get_event_type snd_seq_remove_events_get_event_type_dylibloader_wrapper_asound +#define snd_seq_remove_events_get_tag snd_seq_remove_events_get_tag_dylibloader_wrapper_asound +#define snd_seq_remove_events_set_condition snd_seq_remove_events_set_condition_dylibloader_wrapper_asound +#define snd_seq_remove_events_set_queue snd_seq_remove_events_set_queue_dylibloader_wrapper_asound +#define snd_seq_remove_events_set_time snd_seq_remove_events_set_time_dylibloader_wrapper_asound +#define snd_seq_remove_events_set_dest snd_seq_remove_events_set_dest_dylibloader_wrapper_asound +#define snd_seq_remove_events_set_channel snd_seq_remove_events_set_channel_dylibloader_wrapper_asound +#define snd_seq_remove_events_set_event_type snd_seq_remove_events_set_event_type_dylibloader_wrapper_asound +#define snd_seq_remove_events_set_tag snd_seq_remove_events_set_tag_dylibloader_wrapper_asound +#define snd_seq_remove_events snd_seq_remove_events_dylibloader_wrapper_asound +#define snd_seq_set_bit snd_seq_set_bit_dylibloader_wrapper_asound +#define snd_seq_unset_bit snd_seq_unset_bit_dylibloader_wrapper_asound +#define snd_seq_change_bit snd_seq_change_bit_dylibloader_wrapper_asound +#define snd_seq_get_bit snd_seq_get_bit_dylibloader_wrapper_asound +#define snd_seq_control_queue snd_seq_control_queue_dylibloader_wrapper_asound +#define snd_seq_create_simple_port snd_seq_create_simple_port_dylibloader_wrapper_asound +#define snd_seq_delete_simple_port snd_seq_delete_simple_port_dylibloader_wrapper_asound +#define snd_seq_connect_from snd_seq_connect_from_dylibloader_wrapper_asound +#define snd_seq_connect_to snd_seq_connect_to_dylibloader_wrapper_asound +#define snd_seq_disconnect_from snd_seq_disconnect_from_dylibloader_wrapper_asound +#define snd_seq_disconnect_to snd_seq_disconnect_to_dylibloader_wrapper_asound +#define snd_seq_set_client_name snd_seq_set_client_name_dylibloader_wrapper_asound +#define snd_seq_set_client_event_filter snd_seq_set_client_event_filter_dylibloader_wrapper_asound +#define snd_seq_set_client_pool_output snd_seq_set_client_pool_output_dylibloader_wrapper_asound +#define snd_seq_set_client_pool_output_room snd_seq_set_client_pool_output_room_dylibloader_wrapper_asound +#define snd_seq_set_client_pool_input snd_seq_set_client_pool_input_dylibloader_wrapper_asound +#define snd_seq_sync_output_queue snd_seq_sync_output_queue_dylibloader_wrapper_asound +#define snd_seq_parse_address snd_seq_parse_address_dylibloader_wrapper_asound +#define snd_seq_reset_pool_output snd_seq_reset_pool_output_dylibloader_wrapper_asound +#define snd_seq_reset_pool_input snd_seq_reset_pool_input_dylibloader_wrapper_asound +#define snd_midi_event_new snd_midi_event_new_dylibloader_wrapper_asound +#define snd_midi_event_resize_buffer snd_midi_event_resize_buffer_dylibloader_wrapper_asound +#define snd_midi_event_free snd_midi_event_free_dylibloader_wrapper_asound +#define snd_midi_event_init snd_midi_event_init_dylibloader_wrapper_asound +#define snd_midi_event_reset_encode snd_midi_event_reset_encode_dylibloader_wrapper_asound +#define snd_midi_event_reset_decode snd_midi_event_reset_decode_dylibloader_wrapper_asound +#define snd_midi_event_no_status snd_midi_event_no_status_dylibloader_wrapper_asound +#define snd_midi_event_encode snd_midi_event_encode_dylibloader_wrapper_asound +#define snd_midi_event_encode_byte snd_midi_event_encode_byte_dylibloader_wrapper_asound +#define snd_midi_event_decode snd_midi_event_decode_dylibloader_wrapper_asound +extern const char* (*snd_asoundlib_version_dylibloader_wrapper_asound)( void); +extern int (*snd_dlpath_dylibloader_wrapper_asound)( char*, size_t,const char*); +extern void* (*snd_dlopen_dylibloader_wrapper_asound)(const char*, int, char*, size_t); +extern void* (*snd_dlsym_dylibloader_wrapper_asound)( void*,const char*,const char*); +extern int (*snd_dlclose_dylibloader_wrapper_asound)( void*); +extern int (*snd_async_add_handler_dylibloader_wrapper_asound)( snd_async_handler_t**, int, snd_async_callback_t, void*); +extern int (*snd_async_del_handler_dylibloader_wrapper_asound)( snd_async_handler_t*); +extern int (*snd_async_handler_get_fd_dylibloader_wrapper_asound)( snd_async_handler_t*); +extern int (*snd_async_handler_get_signo_dylibloader_wrapper_asound)( snd_async_handler_t*); +extern void* (*snd_async_handler_get_callback_private_dylibloader_wrapper_asound)( snd_async_handler_t*); +extern struct snd_shm_area* (*snd_shm_area_create_dylibloader_wrapper_asound)( int, void*); +extern struct snd_shm_area* (*snd_shm_area_share_dylibloader_wrapper_asound)(struct snd_shm_area*); +extern int (*snd_shm_area_destroy_dylibloader_wrapper_asound)(struct snd_shm_area*); +extern int (*snd_user_file_dylibloader_wrapper_asound)(const char*, char**); +extern int (*snd_input_stdio_open_dylibloader_wrapper_asound)( snd_input_t**,const char*,const char*); +extern int (*snd_input_stdio_attach_dylibloader_wrapper_asound)( snd_input_t**, FILE*, int); +extern int (*snd_input_buffer_open_dylibloader_wrapper_asound)( snd_input_t**,const char*, ssize_t); +extern int (*snd_input_close_dylibloader_wrapper_asound)( snd_input_t*); +extern int (*snd_input_scanf_dylibloader_wrapper_asound)( snd_input_t*,const char*,...); +extern char* (*snd_input_gets_dylibloader_wrapper_asound)( snd_input_t*, char*, size_t); +extern int (*snd_input_getc_dylibloader_wrapper_asound)( snd_input_t*); +extern int (*snd_input_ungetc_dylibloader_wrapper_asound)( snd_input_t*, int); +extern int (*snd_output_stdio_open_dylibloader_wrapper_asound)( snd_output_t**,const char*,const char*); +extern int (*snd_output_stdio_attach_dylibloader_wrapper_asound)( snd_output_t**, FILE*, int); +extern int (*snd_output_buffer_open_dylibloader_wrapper_asound)( snd_output_t**); +extern size_t (*snd_output_buffer_string_dylibloader_wrapper_asound)( snd_output_t*, char**); +extern int (*snd_output_close_dylibloader_wrapper_asound)( snd_output_t*); +extern int (*snd_output_printf_dylibloader_wrapper_asound)( snd_output_t*,const char*,...); +extern int (*snd_output_vprintf_dylibloader_wrapper_asound)( snd_output_t*,const char*, va_list); +extern int (*snd_output_puts_dylibloader_wrapper_asound)( snd_output_t*,const char*); +extern int (*snd_output_putc_dylibloader_wrapper_asound)( snd_output_t*, int); +extern int (*snd_output_flush_dylibloader_wrapper_asound)( snd_output_t*); +extern const char* (*snd_strerror_dylibloader_wrapper_asound)( int); +extern int (*snd_lib_error_set_handler_dylibloader_wrapper_asound)( snd_lib_error_handler_t); +extern snd_local_error_handler_t (*snd_lib_error_set_local_dylibloader_wrapper_asound)( snd_local_error_handler_t); +extern const char* (*snd_config_topdir_dylibloader_wrapper_asound)( void); +extern int (*snd_config_top_dylibloader_wrapper_asound)( snd_config_t**); +extern int (*snd_config_load_dylibloader_wrapper_asound)( snd_config_t*, snd_input_t*); +extern int (*snd_config_load_override_dylibloader_wrapper_asound)( snd_config_t*, snd_input_t*); +extern int (*snd_config_save_dylibloader_wrapper_asound)( snd_config_t*, snd_output_t*); +extern int (*snd_config_update_dylibloader_wrapper_asound)( void); +extern int (*snd_config_update_r_dylibloader_wrapper_asound)( snd_config_t**, snd_config_update_t**,const char*); +extern int (*snd_config_update_free_dylibloader_wrapper_asound)( snd_config_update_t*); +extern int (*snd_config_update_free_global_dylibloader_wrapper_asound)( void); +extern int (*snd_config_update_ref_dylibloader_wrapper_asound)( snd_config_t**); +extern void (*snd_config_ref_dylibloader_wrapper_asound)( snd_config_t*); +extern void (*snd_config_unref_dylibloader_wrapper_asound)( snd_config_t*); +extern int (*snd_config_search_dylibloader_wrapper_asound)( snd_config_t*,const char*, snd_config_t**); +extern int (*snd_config_searchv_dylibloader_wrapper_asound)( snd_config_t*, snd_config_t**,...); +extern int (*snd_config_search_definition_dylibloader_wrapper_asound)( snd_config_t*,const char*,const char*, snd_config_t**); +extern int (*snd_config_expand_dylibloader_wrapper_asound)( snd_config_t*, snd_config_t*,const char*, snd_config_t*, snd_config_t**); +extern int (*snd_config_evaluate_dylibloader_wrapper_asound)( snd_config_t*, snd_config_t*, snd_config_t*, snd_config_t**); +extern int (*snd_config_add_dylibloader_wrapper_asound)( snd_config_t*, snd_config_t*); +extern int (*snd_config_add_before_dylibloader_wrapper_asound)( snd_config_t*, snd_config_t*); +extern int (*snd_config_add_after_dylibloader_wrapper_asound)( snd_config_t*, snd_config_t*); +extern int (*snd_config_remove_dylibloader_wrapper_asound)( snd_config_t*); +extern int (*snd_config_delete_dylibloader_wrapper_asound)( snd_config_t*); +extern int (*snd_config_delete_compound_members_dylibloader_wrapper_asound)(const snd_config_t*); +extern int (*snd_config_copy_dylibloader_wrapper_asound)( snd_config_t**, snd_config_t*); +extern int (*snd_config_make_dylibloader_wrapper_asound)( snd_config_t**,const char*, snd_config_type_t); +extern int (*snd_config_make_integer_dylibloader_wrapper_asound)( snd_config_t**,const char*); +extern int (*snd_config_make_integer64_dylibloader_wrapper_asound)( snd_config_t**,const char*); +extern int (*snd_config_make_real_dylibloader_wrapper_asound)( snd_config_t**,const char*); +extern int (*snd_config_make_string_dylibloader_wrapper_asound)( snd_config_t**,const char*); +extern int (*snd_config_make_pointer_dylibloader_wrapper_asound)( snd_config_t**,const char*); +extern int (*snd_config_make_compound_dylibloader_wrapper_asound)( snd_config_t**,const char*, int); +extern int (*snd_config_imake_integer_dylibloader_wrapper_asound)( snd_config_t**,const char*,const long); +extern int (*snd_config_imake_integer64_dylibloader_wrapper_asound)( snd_config_t**,const char*,const long long); +extern int (*snd_config_imake_real_dylibloader_wrapper_asound)( snd_config_t**,const char*,const double); +extern int (*snd_config_imake_string_dylibloader_wrapper_asound)( snd_config_t**,const char*,const char*); +extern int (*snd_config_imake_safe_string_dylibloader_wrapper_asound)( snd_config_t**,const char*,const char*); +extern int (*snd_config_imake_pointer_dylibloader_wrapper_asound)( snd_config_t**,const char*,const void*); +extern snd_config_type_t (*snd_config_get_type_dylibloader_wrapper_asound)(const snd_config_t*); +extern int (*snd_config_is_array_dylibloader_wrapper_asound)(const snd_config_t*); +extern int (*snd_config_set_id_dylibloader_wrapper_asound)( snd_config_t*,const char*); +extern int (*snd_config_set_integer_dylibloader_wrapper_asound)( snd_config_t*, long); +extern int (*snd_config_set_integer64_dylibloader_wrapper_asound)( snd_config_t*, long long); +extern int (*snd_config_set_real_dylibloader_wrapper_asound)( snd_config_t*, double); +extern int (*snd_config_set_string_dylibloader_wrapper_asound)( snd_config_t*,const char*); +extern int (*snd_config_set_ascii_dylibloader_wrapper_asound)( snd_config_t*,const char*); +extern int (*snd_config_set_pointer_dylibloader_wrapper_asound)( snd_config_t*,const void*); +extern int (*snd_config_get_id_dylibloader_wrapper_asound)(const snd_config_t*,const char**); +extern int (*snd_config_get_integer_dylibloader_wrapper_asound)(const snd_config_t*, long*); +extern int (*snd_config_get_integer64_dylibloader_wrapper_asound)(const snd_config_t*, long long*); +extern int (*snd_config_get_real_dylibloader_wrapper_asound)(const snd_config_t*, double*); +extern int (*snd_config_get_ireal_dylibloader_wrapper_asound)(const snd_config_t*, double*); +extern int (*snd_config_get_string_dylibloader_wrapper_asound)(const snd_config_t*,const char**); +extern int (*snd_config_get_ascii_dylibloader_wrapper_asound)(const snd_config_t*, char**); +extern int (*snd_config_get_pointer_dylibloader_wrapper_asound)(const snd_config_t*,const void**); +extern int (*snd_config_test_id_dylibloader_wrapper_asound)(const snd_config_t*,const char*); +extern snd_config_iterator_t (*snd_config_iterator_first_dylibloader_wrapper_asound)(const snd_config_t*); +extern snd_config_iterator_t (*snd_config_iterator_next_dylibloader_wrapper_asound)(const snd_config_iterator_t); +extern snd_config_iterator_t (*snd_config_iterator_end_dylibloader_wrapper_asound)(const snd_config_t*); +extern snd_config_t* (*snd_config_iterator_entry_dylibloader_wrapper_asound)(const snd_config_iterator_t); +extern int (*snd_config_get_bool_ascii_dylibloader_wrapper_asound)(const char*); +extern int (*snd_config_get_bool_dylibloader_wrapper_asound)(const snd_config_t*); +extern int (*snd_config_get_ctl_iface_ascii_dylibloader_wrapper_asound)(const char*); +extern int (*snd_config_get_ctl_iface_dylibloader_wrapper_asound)(const snd_config_t*); +extern int (*snd_names_list_dylibloader_wrapper_asound)(const char*, snd_devname_t**); +extern void (*snd_names_list_free_dylibloader_wrapper_asound)( snd_devname_t*); +extern int (*snd_pcm_open_dylibloader_wrapper_asound)( snd_pcm_t**,const char*, snd_pcm_stream_t, int); +extern int (*snd_pcm_open_lconf_dylibloader_wrapper_asound)( snd_pcm_t**,const char*, snd_pcm_stream_t, int, snd_config_t*); +extern int (*snd_pcm_open_fallback_dylibloader_wrapper_asound)( snd_pcm_t**, snd_config_t*,const char*,const char*, snd_pcm_stream_t, int); +extern int (*snd_pcm_close_dylibloader_wrapper_asound)( snd_pcm_t*); +extern const char* (*snd_pcm_name_dylibloader_wrapper_asound)( snd_pcm_t*); +extern snd_pcm_type_t (*snd_pcm_type_dylibloader_wrapper_asound)( snd_pcm_t*); +extern snd_pcm_stream_t (*snd_pcm_stream_dylibloader_wrapper_asound)( snd_pcm_t*); +extern int (*snd_pcm_poll_descriptors_count_dylibloader_wrapper_asound)( snd_pcm_t*); +extern int (*snd_pcm_poll_descriptors_dylibloader_wrapper_asound)( snd_pcm_t*,struct pollfd*, unsigned int); +extern int (*snd_pcm_poll_descriptors_revents_dylibloader_wrapper_asound)( snd_pcm_t*,struct pollfd*, unsigned int, unsigned short*); +extern int (*snd_pcm_nonblock_dylibloader_wrapper_asound)( snd_pcm_t*, int); +extern int (*snd_async_add_pcm_handler_dylibloader_wrapper_asound)( snd_async_handler_t**, snd_pcm_t*, snd_async_callback_t, void*); +extern snd_pcm_t* (*snd_async_handler_get_pcm_dylibloader_wrapper_asound)( snd_async_handler_t*); +extern int (*snd_pcm_info_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_info_t*); +extern int (*snd_pcm_hw_params_current_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*); +extern int (*snd_pcm_hw_params_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*); +extern int (*snd_pcm_hw_free_dylibloader_wrapper_asound)( snd_pcm_t*); +extern int (*snd_pcm_sw_params_current_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_sw_params_t*); +extern int (*snd_pcm_sw_params_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_sw_params_t*); +extern int (*snd_pcm_prepare_dylibloader_wrapper_asound)( snd_pcm_t*); +extern int (*snd_pcm_reset_dylibloader_wrapper_asound)( snd_pcm_t*); +extern int (*snd_pcm_status_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_status_t*); +extern int (*snd_pcm_start_dylibloader_wrapper_asound)( snd_pcm_t*); +extern int (*snd_pcm_drop_dylibloader_wrapper_asound)( snd_pcm_t*); +extern int (*snd_pcm_drain_dylibloader_wrapper_asound)( snd_pcm_t*); +extern int (*snd_pcm_pause_dylibloader_wrapper_asound)( snd_pcm_t*, int); +extern snd_pcm_state_t (*snd_pcm_state_dylibloader_wrapper_asound)( snd_pcm_t*); +extern int (*snd_pcm_hwsync_dylibloader_wrapper_asound)( snd_pcm_t*); +extern int (*snd_pcm_delay_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_sframes_t*); +extern int (*snd_pcm_resume_dylibloader_wrapper_asound)( snd_pcm_t*); +extern int (*snd_pcm_htimestamp_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_uframes_t*, snd_htimestamp_t*); +extern snd_pcm_sframes_t (*snd_pcm_avail_dylibloader_wrapper_asound)( snd_pcm_t*); +extern snd_pcm_sframes_t (*snd_pcm_avail_update_dylibloader_wrapper_asound)( snd_pcm_t*); +extern int (*snd_pcm_avail_delay_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_sframes_t*, snd_pcm_sframes_t*); +extern snd_pcm_sframes_t (*snd_pcm_rewindable_dylibloader_wrapper_asound)( snd_pcm_t*); +extern snd_pcm_sframes_t (*snd_pcm_rewind_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_uframes_t); +extern snd_pcm_sframes_t (*snd_pcm_forwardable_dylibloader_wrapper_asound)( snd_pcm_t*); +extern snd_pcm_sframes_t (*snd_pcm_forward_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_uframes_t); +extern snd_pcm_sframes_t (*snd_pcm_writei_dylibloader_wrapper_asound)( snd_pcm_t*,const void*, snd_pcm_uframes_t); +extern snd_pcm_sframes_t (*snd_pcm_readi_dylibloader_wrapper_asound)( snd_pcm_t*, void*, snd_pcm_uframes_t); +extern snd_pcm_sframes_t (*snd_pcm_writen_dylibloader_wrapper_asound)( snd_pcm_t*, void**, snd_pcm_uframes_t); +extern snd_pcm_sframes_t (*snd_pcm_readn_dylibloader_wrapper_asound)( snd_pcm_t*, void**, snd_pcm_uframes_t); +extern int (*snd_pcm_wait_dylibloader_wrapper_asound)( snd_pcm_t*, int); +extern int (*snd_pcm_link_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_t*); +extern int (*snd_pcm_unlink_dylibloader_wrapper_asound)( snd_pcm_t*); +extern snd_pcm_chmap_query_t** (*snd_pcm_query_chmaps_dylibloader_wrapper_asound)( snd_pcm_t*); +extern snd_pcm_chmap_query_t** (*snd_pcm_query_chmaps_from_hw_dylibloader_wrapper_asound)( int, int, int, snd_pcm_stream_t); +extern void (*snd_pcm_free_chmaps_dylibloader_wrapper_asound)( snd_pcm_chmap_query_t**); +extern snd_pcm_chmap_t* (*snd_pcm_get_chmap_dylibloader_wrapper_asound)( snd_pcm_t*); +extern int (*snd_pcm_set_chmap_dylibloader_wrapper_asound)( snd_pcm_t*,const snd_pcm_chmap_t*); +extern const char* (*snd_pcm_chmap_type_name_dylibloader_wrapper_asound)(enum snd_pcm_chmap_type); +extern const char* (*snd_pcm_chmap_name_dylibloader_wrapper_asound)(enum snd_pcm_chmap_position); +extern const char* (*snd_pcm_chmap_long_name_dylibloader_wrapper_asound)(enum snd_pcm_chmap_position); +extern int (*snd_pcm_chmap_print_dylibloader_wrapper_asound)(const snd_pcm_chmap_t*, size_t, char*); +extern unsigned int (*snd_pcm_chmap_from_string_dylibloader_wrapper_asound)(const char*); +extern snd_pcm_chmap_t* (*snd_pcm_chmap_parse_string_dylibloader_wrapper_asound)(const char*); +extern int (*snd_pcm_recover_dylibloader_wrapper_asound)( snd_pcm_t*, int, int); +extern int (*snd_pcm_set_params_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_format_t, snd_pcm_access_t, unsigned int, unsigned int, int, unsigned int); +extern int (*snd_pcm_get_params_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_uframes_t*, snd_pcm_uframes_t*); +extern size_t (*snd_pcm_info_sizeof_dylibloader_wrapper_asound)( void); +extern int (*snd_pcm_info_malloc_dylibloader_wrapper_asound)( snd_pcm_info_t**); +extern void (*snd_pcm_info_free_dylibloader_wrapper_asound)( snd_pcm_info_t*); +extern void (*snd_pcm_info_copy_dylibloader_wrapper_asound)( snd_pcm_info_t*,const snd_pcm_info_t*); +extern unsigned int (*snd_pcm_info_get_device_dylibloader_wrapper_asound)(const snd_pcm_info_t*); +extern unsigned int (*snd_pcm_info_get_subdevice_dylibloader_wrapper_asound)(const snd_pcm_info_t*); +extern snd_pcm_stream_t (*snd_pcm_info_get_stream_dylibloader_wrapper_asound)(const snd_pcm_info_t*); +extern int (*snd_pcm_info_get_card_dylibloader_wrapper_asound)(const snd_pcm_info_t*); +extern const char* (*snd_pcm_info_get_id_dylibloader_wrapper_asound)(const snd_pcm_info_t*); +extern const char* (*snd_pcm_info_get_name_dylibloader_wrapper_asound)(const snd_pcm_info_t*); +extern const char* (*snd_pcm_info_get_subdevice_name_dylibloader_wrapper_asound)(const snd_pcm_info_t*); +extern snd_pcm_class_t (*snd_pcm_info_get_class_dylibloader_wrapper_asound)(const snd_pcm_info_t*); +extern snd_pcm_subclass_t (*snd_pcm_info_get_subclass_dylibloader_wrapper_asound)(const snd_pcm_info_t*); +extern unsigned int (*snd_pcm_info_get_subdevices_count_dylibloader_wrapper_asound)(const snd_pcm_info_t*); +extern unsigned int (*snd_pcm_info_get_subdevices_avail_dylibloader_wrapper_asound)(const snd_pcm_info_t*); +extern snd_pcm_sync_id_t (*snd_pcm_info_get_sync_dylibloader_wrapper_asound)(const snd_pcm_info_t*); +extern void (*snd_pcm_info_set_device_dylibloader_wrapper_asound)( snd_pcm_info_t*, unsigned int); +extern void (*snd_pcm_info_set_subdevice_dylibloader_wrapper_asound)( snd_pcm_info_t*, unsigned int); +extern void (*snd_pcm_info_set_stream_dylibloader_wrapper_asound)( snd_pcm_info_t*, snd_pcm_stream_t); +extern int (*snd_pcm_hw_params_any_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*); +extern int (*snd_pcm_hw_params_can_mmap_sample_resolution_dylibloader_wrapper_asound)(const snd_pcm_hw_params_t*); +extern int (*snd_pcm_hw_params_is_double_dylibloader_wrapper_asound)(const snd_pcm_hw_params_t*); +extern int (*snd_pcm_hw_params_is_batch_dylibloader_wrapper_asound)(const snd_pcm_hw_params_t*); +extern int (*snd_pcm_hw_params_is_block_transfer_dylibloader_wrapper_asound)(const snd_pcm_hw_params_t*); +extern int (*snd_pcm_hw_params_is_monotonic_dylibloader_wrapper_asound)(const snd_pcm_hw_params_t*); +extern int (*snd_pcm_hw_params_can_overrange_dylibloader_wrapper_asound)(const snd_pcm_hw_params_t*); +extern int (*snd_pcm_hw_params_can_pause_dylibloader_wrapper_asound)(const snd_pcm_hw_params_t*); +extern int (*snd_pcm_hw_params_can_resume_dylibloader_wrapper_asound)(const snd_pcm_hw_params_t*); +extern int (*snd_pcm_hw_params_is_half_duplex_dylibloader_wrapper_asound)(const snd_pcm_hw_params_t*); +extern int (*snd_pcm_hw_params_is_joint_duplex_dylibloader_wrapper_asound)(const snd_pcm_hw_params_t*); +extern int (*snd_pcm_hw_params_can_sync_start_dylibloader_wrapper_asound)(const snd_pcm_hw_params_t*); +extern int (*snd_pcm_hw_params_can_disable_period_wakeup_dylibloader_wrapper_asound)(const snd_pcm_hw_params_t*); +extern int (*snd_pcm_hw_params_supports_audio_wallclock_ts_dylibloader_wrapper_asound)(const snd_pcm_hw_params_t*); +extern int (*snd_pcm_hw_params_supports_audio_ts_type_dylibloader_wrapper_asound)(const snd_pcm_hw_params_t*, int); +extern int (*snd_pcm_hw_params_get_rate_numden_dylibloader_wrapper_asound)(const snd_pcm_hw_params_t*, unsigned int*, unsigned int*); +extern int (*snd_pcm_hw_params_get_sbits_dylibloader_wrapper_asound)(const snd_pcm_hw_params_t*); +extern int (*snd_pcm_hw_params_get_fifo_size_dylibloader_wrapper_asound)(const snd_pcm_hw_params_t*); +extern size_t (*snd_pcm_hw_params_sizeof_dylibloader_wrapper_asound)( void); +extern int (*snd_pcm_hw_params_malloc_dylibloader_wrapper_asound)( snd_pcm_hw_params_t**); +extern void (*snd_pcm_hw_params_free_dylibloader_wrapper_asound)( snd_pcm_hw_params_t*); +extern void (*snd_pcm_hw_params_copy_dylibloader_wrapper_asound)( snd_pcm_hw_params_t*,const snd_pcm_hw_params_t*); +extern int (*snd_pcm_hw_params_get_access_dylibloader_wrapper_asound)(const snd_pcm_hw_params_t*, snd_pcm_access_t*); +extern int (*snd_pcm_hw_params_test_access_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, snd_pcm_access_t); +extern int (*snd_pcm_hw_params_set_access_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, snd_pcm_access_t); +extern int (*snd_pcm_hw_params_set_access_first_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, snd_pcm_access_t*); +extern int (*snd_pcm_hw_params_set_access_last_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, snd_pcm_access_t*); +extern int (*snd_pcm_hw_params_set_access_mask_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, snd_pcm_access_mask_t*); +extern int (*snd_pcm_hw_params_get_access_mask_dylibloader_wrapper_asound)( snd_pcm_hw_params_t*, snd_pcm_access_mask_t*); +extern int (*snd_pcm_hw_params_get_format_dylibloader_wrapper_asound)(const snd_pcm_hw_params_t*, snd_pcm_format_t*); +extern int (*snd_pcm_hw_params_test_format_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, snd_pcm_format_t); +extern int (*snd_pcm_hw_params_set_format_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, snd_pcm_format_t); +extern int (*snd_pcm_hw_params_set_format_first_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, snd_pcm_format_t*); +extern int (*snd_pcm_hw_params_set_format_last_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, snd_pcm_format_t*); +extern int (*snd_pcm_hw_params_set_format_mask_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, snd_pcm_format_mask_t*); +extern void (*snd_pcm_hw_params_get_format_mask_dylibloader_wrapper_asound)( snd_pcm_hw_params_t*, snd_pcm_format_mask_t*); +extern int (*snd_pcm_hw_params_get_subformat_dylibloader_wrapper_asound)(const snd_pcm_hw_params_t*, snd_pcm_subformat_t*); +extern int (*snd_pcm_hw_params_test_subformat_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, snd_pcm_subformat_t); +extern int (*snd_pcm_hw_params_set_subformat_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, snd_pcm_subformat_t); +extern int (*snd_pcm_hw_params_set_subformat_first_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, snd_pcm_subformat_t*); +extern int (*snd_pcm_hw_params_set_subformat_last_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, snd_pcm_subformat_t*); +extern int (*snd_pcm_hw_params_set_subformat_mask_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, snd_pcm_subformat_mask_t*); +extern void (*snd_pcm_hw_params_get_subformat_mask_dylibloader_wrapper_asound)( snd_pcm_hw_params_t*, snd_pcm_subformat_mask_t*); +extern int (*snd_pcm_hw_params_get_channels_dylibloader_wrapper_asound)(const snd_pcm_hw_params_t*, unsigned int*); +extern int (*snd_pcm_hw_params_get_channels_min_dylibloader_wrapper_asound)(const snd_pcm_hw_params_t*, unsigned int*); +extern int (*snd_pcm_hw_params_get_channels_max_dylibloader_wrapper_asound)(const snd_pcm_hw_params_t*, unsigned int*); +extern int (*snd_pcm_hw_params_test_channels_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, unsigned int); +extern int (*snd_pcm_hw_params_set_channels_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, unsigned int); +extern int (*snd_pcm_hw_params_set_channels_min_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, unsigned int*); +extern int (*snd_pcm_hw_params_set_channels_max_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, unsigned int*); +extern int (*snd_pcm_hw_params_set_channels_minmax_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, unsigned int*, unsigned int*); +extern int (*snd_pcm_hw_params_set_channels_near_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, unsigned int*); +extern int (*snd_pcm_hw_params_set_channels_first_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, unsigned int*); +extern int (*snd_pcm_hw_params_set_channels_last_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, unsigned int*); +extern int (*snd_pcm_hw_params_get_rate_dylibloader_wrapper_asound)(const snd_pcm_hw_params_t*, unsigned int*, int*); +extern int (*snd_pcm_hw_params_get_rate_min_dylibloader_wrapper_asound)(const snd_pcm_hw_params_t*, unsigned int*, int*); +extern int (*snd_pcm_hw_params_get_rate_max_dylibloader_wrapper_asound)(const snd_pcm_hw_params_t*, unsigned int*, int*); +extern int (*snd_pcm_hw_params_test_rate_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, unsigned int, int); +extern int (*snd_pcm_hw_params_set_rate_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, unsigned int, int); +extern int (*snd_pcm_hw_params_set_rate_min_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, unsigned int*, int*); +extern int (*snd_pcm_hw_params_set_rate_max_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, unsigned int*, int*); +extern int (*snd_pcm_hw_params_set_rate_minmax_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, unsigned int*, int*, unsigned int*, int*); +extern int (*snd_pcm_hw_params_set_rate_near_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, unsigned int*, int*); +extern int (*snd_pcm_hw_params_set_rate_first_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, unsigned int*, int*); +extern int (*snd_pcm_hw_params_set_rate_last_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, unsigned int*, int*); +extern int (*snd_pcm_hw_params_set_rate_resample_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, unsigned int); +extern int (*snd_pcm_hw_params_get_rate_resample_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, unsigned int*); +extern int (*snd_pcm_hw_params_set_export_buffer_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, unsigned int); +extern int (*snd_pcm_hw_params_get_export_buffer_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, unsigned int*); +extern int (*snd_pcm_hw_params_set_period_wakeup_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, unsigned int); +extern int (*snd_pcm_hw_params_get_period_wakeup_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, unsigned int*); +extern int (*snd_pcm_hw_params_get_period_time_dylibloader_wrapper_asound)(const snd_pcm_hw_params_t*, unsigned int*, int*); +extern int (*snd_pcm_hw_params_get_period_time_min_dylibloader_wrapper_asound)(const snd_pcm_hw_params_t*, unsigned int*, int*); +extern int (*snd_pcm_hw_params_get_period_time_max_dylibloader_wrapper_asound)(const snd_pcm_hw_params_t*, unsigned int*, int*); +extern int (*snd_pcm_hw_params_test_period_time_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, unsigned int, int); +extern int (*snd_pcm_hw_params_set_period_time_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, unsigned int, int); +extern int (*snd_pcm_hw_params_set_period_time_min_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, unsigned int*, int*); +extern int (*snd_pcm_hw_params_set_period_time_max_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, unsigned int*, int*); +extern int (*snd_pcm_hw_params_set_period_time_minmax_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, unsigned int*, int*, unsigned int*, int*); +extern int (*snd_pcm_hw_params_set_period_time_near_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, unsigned int*, int*); +extern int (*snd_pcm_hw_params_set_period_time_first_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, unsigned int*, int*); +extern int (*snd_pcm_hw_params_set_period_time_last_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, unsigned int*, int*); +extern int (*snd_pcm_hw_params_get_period_size_dylibloader_wrapper_asound)(const snd_pcm_hw_params_t*, snd_pcm_uframes_t*, int*); +extern int (*snd_pcm_hw_params_get_period_size_min_dylibloader_wrapper_asound)(const snd_pcm_hw_params_t*, snd_pcm_uframes_t*, int*); +extern int (*snd_pcm_hw_params_get_period_size_max_dylibloader_wrapper_asound)(const snd_pcm_hw_params_t*, snd_pcm_uframes_t*, int*); +extern int (*snd_pcm_hw_params_test_period_size_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, snd_pcm_uframes_t, int); +extern int (*snd_pcm_hw_params_set_period_size_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, snd_pcm_uframes_t, int); +extern int (*snd_pcm_hw_params_set_period_size_min_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, snd_pcm_uframes_t*, int*); +extern int (*snd_pcm_hw_params_set_period_size_max_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, snd_pcm_uframes_t*, int*); +extern int (*snd_pcm_hw_params_set_period_size_minmax_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, snd_pcm_uframes_t*, int*, snd_pcm_uframes_t*, int*); +extern int (*snd_pcm_hw_params_set_period_size_near_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, snd_pcm_uframes_t*, int*); +extern int (*snd_pcm_hw_params_set_period_size_first_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, snd_pcm_uframes_t*, int*); +extern int (*snd_pcm_hw_params_set_period_size_last_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, snd_pcm_uframes_t*, int*); +extern int (*snd_pcm_hw_params_set_period_size_integer_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*); +extern int (*snd_pcm_hw_params_get_periods_dylibloader_wrapper_asound)(const snd_pcm_hw_params_t*, unsigned int*, int*); +extern int (*snd_pcm_hw_params_get_periods_min_dylibloader_wrapper_asound)(const snd_pcm_hw_params_t*, unsigned int*, int*); +extern int (*snd_pcm_hw_params_get_periods_max_dylibloader_wrapper_asound)(const snd_pcm_hw_params_t*, unsigned int*, int*); +extern int (*snd_pcm_hw_params_test_periods_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, unsigned int, int); +extern int (*snd_pcm_hw_params_set_periods_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, unsigned int, int); +extern int (*snd_pcm_hw_params_set_periods_min_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, unsigned int*, int*); +extern int (*snd_pcm_hw_params_set_periods_max_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, unsigned int*, int*); +extern int (*snd_pcm_hw_params_set_periods_minmax_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, unsigned int*, int*, unsigned int*, int*); +extern int (*snd_pcm_hw_params_set_periods_near_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, unsigned int*, int*); +extern int (*snd_pcm_hw_params_set_periods_first_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, unsigned int*, int*); +extern int (*snd_pcm_hw_params_set_periods_last_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, unsigned int*, int*); +extern int (*snd_pcm_hw_params_set_periods_integer_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*); +extern int (*snd_pcm_hw_params_get_buffer_time_dylibloader_wrapper_asound)(const snd_pcm_hw_params_t*, unsigned int*, int*); +extern int (*snd_pcm_hw_params_get_buffer_time_min_dylibloader_wrapper_asound)(const snd_pcm_hw_params_t*, unsigned int*, int*); +extern int (*snd_pcm_hw_params_get_buffer_time_max_dylibloader_wrapper_asound)(const snd_pcm_hw_params_t*, unsigned int*, int*); +extern int (*snd_pcm_hw_params_test_buffer_time_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, unsigned int, int); +extern int (*snd_pcm_hw_params_set_buffer_time_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, unsigned int, int); +extern int (*snd_pcm_hw_params_set_buffer_time_min_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, unsigned int*, int*); +extern int (*snd_pcm_hw_params_set_buffer_time_max_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, unsigned int*, int*); +extern int (*snd_pcm_hw_params_set_buffer_time_minmax_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, unsigned int*, int*, unsigned int*, int*); +extern int (*snd_pcm_hw_params_set_buffer_time_near_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, unsigned int*, int*); +extern int (*snd_pcm_hw_params_set_buffer_time_first_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, unsigned int*, int*); +extern int (*snd_pcm_hw_params_set_buffer_time_last_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, unsigned int*, int*); +extern int (*snd_pcm_hw_params_get_buffer_size_dylibloader_wrapper_asound)(const snd_pcm_hw_params_t*, snd_pcm_uframes_t*); +extern int (*snd_pcm_hw_params_get_buffer_size_min_dylibloader_wrapper_asound)(const snd_pcm_hw_params_t*, snd_pcm_uframes_t*); +extern int (*snd_pcm_hw_params_get_buffer_size_max_dylibloader_wrapper_asound)(const snd_pcm_hw_params_t*, snd_pcm_uframes_t*); +extern int (*snd_pcm_hw_params_test_buffer_size_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, snd_pcm_uframes_t); +extern int (*snd_pcm_hw_params_set_buffer_size_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, snd_pcm_uframes_t); +extern int (*snd_pcm_hw_params_set_buffer_size_min_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, snd_pcm_uframes_t*); +extern int (*snd_pcm_hw_params_set_buffer_size_max_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, snd_pcm_uframes_t*); +extern int (*snd_pcm_hw_params_set_buffer_size_minmax_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, snd_pcm_uframes_t*, snd_pcm_uframes_t*); +extern int (*snd_pcm_hw_params_set_buffer_size_near_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, snd_pcm_uframes_t*); +extern int (*snd_pcm_hw_params_set_buffer_size_first_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, snd_pcm_uframes_t*); +extern int (*snd_pcm_hw_params_set_buffer_size_last_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, snd_pcm_uframes_t*); +extern int (*snd_pcm_hw_params_get_min_align_dylibloader_wrapper_asound)(const snd_pcm_hw_params_t*, snd_pcm_uframes_t*); +extern size_t (*snd_pcm_sw_params_sizeof_dylibloader_wrapper_asound)( void); +extern int (*snd_pcm_sw_params_malloc_dylibloader_wrapper_asound)( snd_pcm_sw_params_t**); +extern void (*snd_pcm_sw_params_free_dylibloader_wrapper_asound)( snd_pcm_sw_params_t*); +extern void (*snd_pcm_sw_params_copy_dylibloader_wrapper_asound)( snd_pcm_sw_params_t*,const snd_pcm_sw_params_t*); +extern int (*snd_pcm_sw_params_get_boundary_dylibloader_wrapper_asound)(const snd_pcm_sw_params_t*, snd_pcm_uframes_t*); +extern int (*snd_pcm_sw_params_set_tstamp_mode_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_sw_params_t*, snd_pcm_tstamp_t); +extern int (*snd_pcm_sw_params_get_tstamp_mode_dylibloader_wrapper_asound)(const snd_pcm_sw_params_t*, snd_pcm_tstamp_t*); +extern int (*snd_pcm_sw_params_set_tstamp_type_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_sw_params_t*, snd_pcm_tstamp_type_t); +extern int (*snd_pcm_sw_params_get_tstamp_type_dylibloader_wrapper_asound)(const snd_pcm_sw_params_t*, snd_pcm_tstamp_type_t*); +extern int (*snd_pcm_sw_params_set_avail_min_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_sw_params_t*, snd_pcm_uframes_t); +extern int (*snd_pcm_sw_params_get_avail_min_dylibloader_wrapper_asound)(const snd_pcm_sw_params_t*, snd_pcm_uframes_t*); +extern int (*snd_pcm_sw_params_set_period_event_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_sw_params_t*, int); +extern int (*snd_pcm_sw_params_get_period_event_dylibloader_wrapper_asound)(const snd_pcm_sw_params_t*, int*); +extern int (*snd_pcm_sw_params_set_start_threshold_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_sw_params_t*, snd_pcm_uframes_t); +extern int (*snd_pcm_sw_params_get_start_threshold_dylibloader_wrapper_asound)(const snd_pcm_sw_params_t*, snd_pcm_uframes_t*); +extern int (*snd_pcm_sw_params_set_stop_threshold_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_sw_params_t*, snd_pcm_uframes_t); +extern int (*snd_pcm_sw_params_get_stop_threshold_dylibloader_wrapper_asound)(const snd_pcm_sw_params_t*, snd_pcm_uframes_t*); +extern int (*snd_pcm_sw_params_set_silence_threshold_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_sw_params_t*, snd_pcm_uframes_t); +extern int (*snd_pcm_sw_params_get_silence_threshold_dylibloader_wrapper_asound)(const snd_pcm_sw_params_t*, snd_pcm_uframes_t*); +extern int (*snd_pcm_sw_params_set_silence_size_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_sw_params_t*, snd_pcm_uframes_t); +extern int (*snd_pcm_sw_params_get_silence_size_dylibloader_wrapper_asound)(const snd_pcm_sw_params_t*, snd_pcm_uframes_t*); +extern size_t (*snd_pcm_access_mask_sizeof_dylibloader_wrapper_asound)( void); +extern int (*snd_pcm_access_mask_malloc_dylibloader_wrapper_asound)( snd_pcm_access_mask_t**); +extern void (*snd_pcm_access_mask_free_dylibloader_wrapper_asound)( snd_pcm_access_mask_t*); +extern void (*snd_pcm_access_mask_copy_dylibloader_wrapper_asound)( snd_pcm_access_mask_t*,const snd_pcm_access_mask_t*); +extern void (*snd_pcm_access_mask_none_dylibloader_wrapper_asound)( snd_pcm_access_mask_t*); +extern void (*snd_pcm_access_mask_any_dylibloader_wrapper_asound)( snd_pcm_access_mask_t*); +extern int (*snd_pcm_access_mask_test_dylibloader_wrapper_asound)(const snd_pcm_access_mask_t*, snd_pcm_access_t); +extern int (*snd_pcm_access_mask_empty_dylibloader_wrapper_asound)(const snd_pcm_access_mask_t*); +extern void (*snd_pcm_access_mask_set_dylibloader_wrapper_asound)( snd_pcm_access_mask_t*, snd_pcm_access_t); +extern void (*snd_pcm_access_mask_reset_dylibloader_wrapper_asound)( snd_pcm_access_mask_t*, snd_pcm_access_t); +extern size_t (*snd_pcm_format_mask_sizeof_dylibloader_wrapper_asound)( void); +extern int (*snd_pcm_format_mask_malloc_dylibloader_wrapper_asound)( snd_pcm_format_mask_t**); +extern void (*snd_pcm_format_mask_free_dylibloader_wrapper_asound)( snd_pcm_format_mask_t*); +extern void (*snd_pcm_format_mask_copy_dylibloader_wrapper_asound)( snd_pcm_format_mask_t*,const snd_pcm_format_mask_t*); +extern void (*snd_pcm_format_mask_none_dylibloader_wrapper_asound)( snd_pcm_format_mask_t*); +extern void (*snd_pcm_format_mask_any_dylibloader_wrapper_asound)( snd_pcm_format_mask_t*); +extern int (*snd_pcm_format_mask_test_dylibloader_wrapper_asound)(const snd_pcm_format_mask_t*, snd_pcm_format_t); +extern int (*snd_pcm_format_mask_empty_dylibloader_wrapper_asound)(const snd_pcm_format_mask_t*); +extern void (*snd_pcm_format_mask_set_dylibloader_wrapper_asound)( snd_pcm_format_mask_t*, snd_pcm_format_t); +extern void (*snd_pcm_format_mask_reset_dylibloader_wrapper_asound)( snd_pcm_format_mask_t*, snd_pcm_format_t); +extern size_t (*snd_pcm_subformat_mask_sizeof_dylibloader_wrapper_asound)( void); +extern int (*snd_pcm_subformat_mask_malloc_dylibloader_wrapper_asound)( snd_pcm_subformat_mask_t**); +extern void (*snd_pcm_subformat_mask_free_dylibloader_wrapper_asound)( snd_pcm_subformat_mask_t*); +extern void (*snd_pcm_subformat_mask_copy_dylibloader_wrapper_asound)( snd_pcm_subformat_mask_t*,const snd_pcm_subformat_mask_t*); +extern void (*snd_pcm_subformat_mask_none_dylibloader_wrapper_asound)( snd_pcm_subformat_mask_t*); +extern void (*snd_pcm_subformat_mask_any_dylibloader_wrapper_asound)( snd_pcm_subformat_mask_t*); +extern int (*snd_pcm_subformat_mask_test_dylibloader_wrapper_asound)(const snd_pcm_subformat_mask_t*, snd_pcm_subformat_t); +extern int (*snd_pcm_subformat_mask_empty_dylibloader_wrapper_asound)(const snd_pcm_subformat_mask_t*); +extern void (*snd_pcm_subformat_mask_set_dylibloader_wrapper_asound)( snd_pcm_subformat_mask_t*, snd_pcm_subformat_t); +extern void (*snd_pcm_subformat_mask_reset_dylibloader_wrapper_asound)( snd_pcm_subformat_mask_t*, snd_pcm_subformat_t); +extern size_t (*snd_pcm_status_sizeof_dylibloader_wrapper_asound)( void); +extern int (*snd_pcm_status_malloc_dylibloader_wrapper_asound)( snd_pcm_status_t**); +extern void (*snd_pcm_status_free_dylibloader_wrapper_asound)( snd_pcm_status_t*); +extern void (*snd_pcm_status_copy_dylibloader_wrapper_asound)( snd_pcm_status_t*,const snd_pcm_status_t*); +extern snd_pcm_state_t (*snd_pcm_status_get_state_dylibloader_wrapper_asound)(const snd_pcm_status_t*); +extern void (*snd_pcm_status_get_trigger_tstamp_dylibloader_wrapper_asound)(const snd_pcm_status_t*, snd_timestamp_t*); +extern void (*snd_pcm_status_get_trigger_htstamp_dylibloader_wrapper_asound)(const snd_pcm_status_t*, snd_htimestamp_t*); +extern void (*snd_pcm_status_get_tstamp_dylibloader_wrapper_asound)(const snd_pcm_status_t*, snd_timestamp_t*); +extern void (*snd_pcm_status_get_htstamp_dylibloader_wrapper_asound)(const snd_pcm_status_t*, snd_htimestamp_t*); +extern void (*snd_pcm_status_get_audio_htstamp_dylibloader_wrapper_asound)(const snd_pcm_status_t*, snd_htimestamp_t*); +extern void (*snd_pcm_status_get_driver_htstamp_dylibloader_wrapper_asound)(const snd_pcm_status_t*, snd_htimestamp_t*); +extern void (*snd_pcm_status_get_audio_htstamp_report_dylibloader_wrapper_asound)(const snd_pcm_status_t*, snd_pcm_audio_tstamp_report_t*); +extern void (*snd_pcm_status_set_audio_htstamp_config_dylibloader_wrapper_asound)( snd_pcm_status_t*, snd_pcm_audio_tstamp_config_t*); +extern snd_pcm_sframes_t (*snd_pcm_status_get_delay_dylibloader_wrapper_asound)(const snd_pcm_status_t*); +extern snd_pcm_uframes_t (*snd_pcm_status_get_avail_dylibloader_wrapper_asound)(const snd_pcm_status_t*); +extern snd_pcm_uframes_t (*snd_pcm_status_get_avail_max_dylibloader_wrapper_asound)(const snd_pcm_status_t*); +extern snd_pcm_uframes_t (*snd_pcm_status_get_overrange_dylibloader_wrapper_asound)(const snd_pcm_status_t*); +extern const char* (*snd_pcm_type_name_dylibloader_wrapper_asound)( snd_pcm_type_t); +extern const char* (*snd_pcm_stream_name_dylibloader_wrapper_asound)(const snd_pcm_stream_t); +extern const char* (*snd_pcm_access_name_dylibloader_wrapper_asound)(const snd_pcm_access_t); +extern const char* (*snd_pcm_format_name_dylibloader_wrapper_asound)(const snd_pcm_format_t); +extern const char* (*snd_pcm_format_description_dylibloader_wrapper_asound)(const snd_pcm_format_t); +extern const char* (*snd_pcm_subformat_name_dylibloader_wrapper_asound)(const snd_pcm_subformat_t); +extern const char* (*snd_pcm_subformat_description_dylibloader_wrapper_asound)(const snd_pcm_subformat_t); +extern snd_pcm_format_t (*snd_pcm_format_value_dylibloader_wrapper_asound)(const char*); +extern const char* (*snd_pcm_tstamp_mode_name_dylibloader_wrapper_asound)(const snd_pcm_tstamp_t); +extern const char* (*snd_pcm_state_name_dylibloader_wrapper_asound)(const snd_pcm_state_t); +extern int (*snd_pcm_dump_dylibloader_wrapper_asound)( snd_pcm_t*, snd_output_t*); +extern int (*snd_pcm_dump_hw_setup_dylibloader_wrapper_asound)( snd_pcm_t*, snd_output_t*); +extern int (*snd_pcm_dump_sw_setup_dylibloader_wrapper_asound)( snd_pcm_t*, snd_output_t*); +extern int (*snd_pcm_dump_setup_dylibloader_wrapper_asound)( snd_pcm_t*, snd_output_t*); +extern int (*snd_pcm_hw_params_dump_dylibloader_wrapper_asound)( snd_pcm_hw_params_t*, snd_output_t*); +extern int (*snd_pcm_sw_params_dump_dylibloader_wrapper_asound)( snd_pcm_sw_params_t*, snd_output_t*); +extern int (*snd_pcm_status_dump_dylibloader_wrapper_asound)( snd_pcm_status_t*, snd_output_t*); +extern int (*snd_pcm_mmap_begin_dylibloader_wrapper_asound)( snd_pcm_t*,const snd_pcm_channel_area_t**, snd_pcm_uframes_t*, snd_pcm_uframes_t*); +extern snd_pcm_sframes_t (*snd_pcm_mmap_commit_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_uframes_t, snd_pcm_uframes_t); +extern snd_pcm_sframes_t (*snd_pcm_mmap_writei_dylibloader_wrapper_asound)( snd_pcm_t*,const void*, snd_pcm_uframes_t); +extern snd_pcm_sframes_t (*snd_pcm_mmap_readi_dylibloader_wrapper_asound)( snd_pcm_t*, void*, snd_pcm_uframes_t); +extern snd_pcm_sframes_t (*snd_pcm_mmap_writen_dylibloader_wrapper_asound)( snd_pcm_t*, void**, snd_pcm_uframes_t); +extern snd_pcm_sframes_t (*snd_pcm_mmap_readn_dylibloader_wrapper_asound)( snd_pcm_t*, void**, snd_pcm_uframes_t); +extern int (*snd_pcm_format_signed_dylibloader_wrapper_asound)( snd_pcm_format_t); +extern int (*snd_pcm_format_unsigned_dylibloader_wrapper_asound)( snd_pcm_format_t); +extern int (*snd_pcm_format_linear_dylibloader_wrapper_asound)( snd_pcm_format_t); +extern int (*snd_pcm_format_float_dylibloader_wrapper_asound)( snd_pcm_format_t); +extern int (*snd_pcm_format_little_endian_dylibloader_wrapper_asound)( snd_pcm_format_t); +extern int (*snd_pcm_format_big_endian_dylibloader_wrapper_asound)( snd_pcm_format_t); +extern int (*snd_pcm_format_cpu_endian_dylibloader_wrapper_asound)( snd_pcm_format_t); +extern int (*snd_pcm_format_width_dylibloader_wrapper_asound)( snd_pcm_format_t); +extern int (*snd_pcm_format_physical_width_dylibloader_wrapper_asound)( snd_pcm_format_t); +extern snd_pcm_format_t (*snd_pcm_build_linear_format_dylibloader_wrapper_asound)( int, int, int, int); +extern ssize_t (*snd_pcm_format_size_dylibloader_wrapper_asound)( snd_pcm_format_t, size_t); +extern uint8_t (*snd_pcm_format_silence_dylibloader_wrapper_asound)( snd_pcm_format_t); +extern uint16_t (*snd_pcm_format_silence_16_dylibloader_wrapper_asound)( snd_pcm_format_t); +extern uint32_t (*snd_pcm_format_silence_32_dylibloader_wrapper_asound)( snd_pcm_format_t); +extern uint64_t (*snd_pcm_format_silence_64_dylibloader_wrapper_asound)( snd_pcm_format_t); +extern int (*snd_pcm_format_set_silence_dylibloader_wrapper_asound)( snd_pcm_format_t, void*, unsigned int); +extern snd_pcm_sframes_t (*snd_pcm_bytes_to_frames_dylibloader_wrapper_asound)( snd_pcm_t*, ssize_t); +extern ssize_t (*snd_pcm_frames_to_bytes_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_sframes_t); +extern long (*snd_pcm_bytes_to_samples_dylibloader_wrapper_asound)( snd_pcm_t*, ssize_t); +extern ssize_t (*snd_pcm_samples_to_bytes_dylibloader_wrapper_asound)( snd_pcm_t*, long); +extern int (*snd_pcm_area_silence_dylibloader_wrapper_asound)(const snd_pcm_channel_area_t*, snd_pcm_uframes_t, unsigned int, snd_pcm_format_t); +extern int (*snd_pcm_areas_silence_dylibloader_wrapper_asound)(const snd_pcm_channel_area_t*, snd_pcm_uframes_t, unsigned int, snd_pcm_uframes_t, snd_pcm_format_t); +extern int (*snd_pcm_area_copy_dylibloader_wrapper_asound)(const snd_pcm_channel_area_t*, snd_pcm_uframes_t,const snd_pcm_channel_area_t*, snd_pcm_uframes_t, unsigned int, snd_pcm_format_t); +extern int (*snd_pcm_areas_copy_dylibloader_wrapper_asound)(const snd_pcm_channel_area_t*, snd_pcm_uframes_t,const snd_pcm_channel_area_t*, snd_pcm_uframes_t, unsigned int, snd_pcm_uframes_t, snd_pcm_format_t); +extern int (*snd_pcm_areas_copy_wrap_dylibloader_wrapper_asound)(const snd_pcm_channel_area_t*, snd_pcm_uframes_t,const snd_pcm_uframes_t,const snd_pcm_channel_area_t*, snd_pcm_uframes_t,const snd_pcm_uframes_t,const unsigned int, snd_pcm_uframes_t,const snd_pcm_format_t); +extern snd_pcm_t* (*snd_pcm_hook_get_pcm_dylibloader_wrapper_asound)( snd_pcm_hook_t*); +extern void* (*snd_pcm_hook_get_private_dylibloader_wrapper_asound)( snd_pcm_hook_t*); +extern void (*snd_pcm_hook_set_private_dylibloader_wrapper_asound)( snd_pcm_hook_t*, void*); +extern int (*snd_pcm_hook_add_dylibloader_wrapper_asound)( snd_pcm_hook_t**, snd_pcm_t*, snd_pcm_hook_type_t, snd_pcm_hook_func_t, void*); +extern int (*snd_pcm_hook_remove_dylibloader_wrapper_asound)( snd_pcm_hook_t*); +extern snd_pcm_uframes_t (*snd_pcm_meter_get_bufsize_dylibloader_wrapper_asound)( snd_pcm_t*); +extern unsigned int (*snd_pcm_meter_get_channels_dylibloader_wrapper_asound)( snd_pcm_t*); +extern unsigned int (*snd_pcm_meter_get_rate_dylibloader_wrapper_asound)( snd_pcm_t*); +extern snd_pcm_uframes_t (*snd_pcm_meter_get_now_dylibloader_wrapper_asound)( snd_pcm_t*); +extern snd_pcm_uframes_t (*snd_pcm_meter_get_boundary_dylibloader_wrapper_asound)( snd_pcm_t*); +extern int (*snd_pcm_meter_add_scope_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_scope_t*); +extern snd_pcm_scope_t* (*snd_pcm_meter_search_scope_dylibloader_wrapper_asound)( snd_pcm_t*,const char*); +extern int (*snd_pcm_scope_malloc_dylibloader_wrapper_asound)( snd_pcm_scope_t**); +extern void (*snd_pcm_scope_set_ops_dylibloader_wrapper_asound)( snd_pcm_scope_t*,const snd_pcm_scope_ops_t*); +extern void (*snd_pcm_scope_set_name_dylibloader_wrapper_asound)( snd_pcm_scope_t*,const char*); +extern const char* (*snd_pcm_scope_get_name_dylibloader_wrapper_asound)( snd_pcm_scope_t*); +extern void* (*snd_pcm_scope_get_callback_private_dylibloader_wrapper_asound)( snd_pcm_scope_t*); +extern void (*snd_pcm_scope_set_callback_private_dylibloader_wrapper_asound)( snd_pcm_scope_t*, void*); +extern int (*snd_pcm_scope_s16_open_dylibloader_wrapper_asound)( snd_pcm_t*,const char*, snd_pcm_scope_t**); +extern int16_t* (*snd_pcm_scope_s16_get_channel_buffer_dylibloader_wrapper_asound)( snd_pcm_scope_t*, unsigned int); +extern int (*snd_spcm_init_dylibloader_wrapper_asound)( snd_pcm_t*, unsigned int, unsigned int, snd_pcm_format_t, snd_pcm_subformat_t, snd_spcm_latency_t, snd_pcm_access_t, snd_spcm_xrun_type_t); +extern int (*snd_spcm_init_duplex_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_t*, unsigned int, unsigned int, snd_pcm_format_t, snd_pcm_subformat_t, snd_spcm_latency_t, snd_pcm_access_t, snd_spcm_xrun_type_t, snd_spcm_duplex_type_t); +extern int (*snd_spcm_init_get_params_dylibloader_wrapper_asound)( snd_pcm_t*, unsigned int*, snd_pcm_uframes_t*, snd_pcm_uframes_t*); +extern const char* (*snd_pcm_start_mode_name_dylibloader_wrapper_asound)( snd_pcm_start_t); +extern const char* (*snd_pcm_xrun_mode_name_dylibloader_wrapper_asound)( snd_pcm_xrun_t); +extern int (*snd_pcm_sw_params_set_start_mode_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_sw_params_t*, snd_pcm_start_t); +extern snd_pcm_start_t (*snd_pcm_sw_params_get_start_mode_dylibloader_wrapper_asound)(const snd_pcm_sw_params_t*); +extern int (*snd_pcm_sw_params_set_xrun_mode_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_sw_params_t*, snd_pcm_xrun_t); +extern snd_pcm_xrun_t (*snd_pcm_sw_params_get_xrun_mode_dylibloader_wrapper_asound)(const snd_pcm_sw_params_t*); +extern int (*snd_pcm_sw_params_set_xfer_align_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_sw_params_t*, snd_pcm_uframes_t); +extern int (*snd_pcm_sw_params_get_xfer_align_dylibloader_wrapper_asound)(const snd_pcm_sw_params_t*, snd_pcm_uframes_t*); +extern int (*snd_pcm_sw_params_set_sleep_min_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_sw_params_t*, unsigned int); +extern int (*snd_pcm_sw_params_get_sleep_min_dylibloader_wrapper_asound)(const snd_pcm_sw_params_t*, unsigned int*); +extern int (*snd_pcm_hw_params_get_tick_time_dylibloader_wrapper_asound)(const snd_pcm_hw_params_t*, unsigned int*, int*); +extern int (*snd_pcm_hw_params_get_tick_time_min_dylibloader_wrapper_asound)(const snd_pcm_hw_params_t*, unsigned int*, int*); +extern int (*snd_pcm_hw_params_get_tick_time_max_dylibloader_wrapper_asound)(const snd_pcm_hw_params_t*, unsigned int*, int*); +extern int (*snd_pcm_hw_params_test_tick_time_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, unsigned int, int); +extern int (*snd_pcm_hw_params_set_tick_time_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, unsigned int, int); +extern int (*snd_pcm_hw_params_set_tick_time_min_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, unsigned int*, int*); +extern int (*snd_pcm_hw_params_set_tick_time_max_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, unsigned int*, int*); +extern int (*snd_pcm_hw_params_set_tick_time_minmax_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, unsigned int*, int*, unsigned int*, int*); +extern int (*snd_pcm_hw_params_set_tick_time_near_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, unsigned int*, int*); +extern int (*snd_pcm_hw_params_set_tick_time_first_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, unsigned int*, int*); +extern int (*snd_pcm_hw_params_set_tick_time_last_dylibloader_wrapper_asound)( snd_pcm_t*, snd_pcm_hw_params_t*, unsigned int*, int*); +extern int (*snd_rawmidi_open_dylibloader_wrapper_asound)( snd_rawmidi_t**, snd_rawmidi_t**,const char*, int); +extern int (*snd_rawmidi_open_lconf_dylibloader_wrapper_asound)( snd_rawmidi_t**, snd_rawmidi_t**,const char*, int, snd_config_t*); +extern int (*snd_rawmidi_close_dylibloader_wrapper_asound)( snd_rawmidi_t*); +extern int (*snd_rawmidi_poll_descriptors_count_dylibloader_wrapper_asound)( snd_rawmidi_t*); +extern int (*snd_rawmidi_poll_descriptors_dylibloader_wrapper_asound)( snd_rawmidi_t*,struct pollfd*, unsigned int); +extern int (*snd_rawmidi_poll_descriptors_revents_dylibloader_wrapper_asound)( snd_rawmidi_t*,struct pollfd*, unsigned int, unsigned short*); +extern int (*snd_rawmidi_nonblock_dylibloader_wrapper_asound)( snd_rawmidi_t*, int); +extern size_t (*snd_rawmidi_info_sizeof_dylibloader_wrapper_asound)( void); +extern int (*snd_rawmidi_info_malloc_dylibloader_wrapper_asound)( snd_rawmidi_info_t**); +extern void (*snd_rawmidi_info_free_dylibloader_wrapper_asound)( snd_rawmidi_info_t*); +extern void (*snd_rawmidi_info_copy_dylibloader_wrapper_asound)( snd_rawmidi_info_t*,const snd_rawmidi_info_t*); +extern unsigned int (*snd_rawmidi_info_get_device_dylibloader_wrapper_asound)(const snd_rawmidi_info_t*); +extern unsigned int (*snd_rawmidi_info_get_subdevice_dylibloader_wrapper_asound)(const snd_rawmidi_info_t*); +extern snd_rawmidi_stream_t (*snd_rawmidi_info_get_stream_dylibloader_wrapper_asound)(const snd_rawmidi_info_t*); +extern int (*snd_rawmidi_info_get_card_dylibloader_wrapper_asound)(const snd_rawmidi_info_t*); +extern unsigned int (*snd_rawmidi_info_get_flags_dylibloader_wrapper_asound)(const snd_rawmidi_info_t*); +extern const char* (*snd_rawmidi_info_get_id_dylibloader_wrapper_asound)(const snd_rawmidi_info_t*); +extern const char* (*snd_rawmidi_info_get_name_dylibloader_wrapper_asound)(const snd_rawmidi_info_t*); +extern const char* (*snd_rawmidi_info_get_subdevice_name_dylibloader_wrapper_asound)(const snd_rawmidi_info_t*); +extern unsigned int (*snd_rawmidi_info_get_subdevices_count_dylibloader_wrapper_asound)(const snd_rawmidi_info_t*); +extern unsigned int (*snd_rawmidi_info_get_subdevices_avail_dylibloader_wrapper_asound)(const snd_rawmidi_info_t*); +extern void (*snd_rawmidi_info_set_device_dylibloader_wrapper_asound)( snd_rawmidi_info_t*, unsigned int); +extern void (*snd_rawmidi_info_set_subdevice_dylibloader_wrapper_asound)( snd_rawmidi_info_t*, unsigned int); +extern void (*snd_rawmidi_info_set_stream_dylibloader_wrapper_asound)( snd_rawmidi_info_t*, snd_rawmidi_stream_t); +extern int (*snd_rawmidi_info_dylibloader_wrapper_asound)( snd_rawmidi_t*, snd_rawmidi_info_t*); +extern size_t (*snd_rawmidi_params_sizeof_dylibloader_wrapper_asound)( void); +extern int (*snd_rawmidi_params_malloc_dylibloader_wrapper_asound)( snd_rawmidi_params_t**); +extern void (*snd_rawmidi_params_free_dylibloader_wrapper_asound)( snd_rawmidi_params_t*); +extern void (*snd_rawmidi_params_copy_dylibloader_wrapper_asound)( snd_rawmidi_params_t*,const snd_rawmidi_params_t*); +extern int (*snd_rawmidi_params_set_buffer_size_dylibloader_wrapper_asound)( snd_rawmidi_t*, snd_rawmidi_params_t*, size_t); +extern size_t (*snd_rawmidi_params_get_buffer_size_dylibloader_wrapper_asound)(const snd_rawmidi_params_t*); +extern int (*snd_rawmidi_params_set_avail_min_dylibloader_wrapper_asound)( snd_rawmidi_t*, snd_rawmidi_params_t*, size_t); +extern size_t (*snd_rawmidi_params_get_avail_min_dylibloader_wrapper_asound)(const snd_rawmidi_params_t*); +extern int (*snd_rawmidi_params_set_no_active_sensing_dylibloader_wrapper_asound)( snd_rawmidi_t*, snd_rawmidi_params_t*, int); +extern int (*snd_rawmidi_params_get_no_active_sensing_dylibloader_wrapper_asound)(const snd_rawmidi_params_t*); +extern int (*snd_rawmidi_params_dylibloader_wrapper_asound)( snd_rawmidi_t*, snd_rawmidi_params_t*); +extern int (*snd_rawmidi_params_current_dylibloader_wrapper_asound)( snd_rawmidi_t*, snd_rawmidi_params_t*); +extern size_t (*snd_rawmidi_status_sizeof_dylibloader_wrapper_asound)( void); +extern int (*snd_rawmidi_status_malloc_dylibloader_wrapper_asound)( snd_rawmidi_status_t**); +extern void (*snd_rawmidi_status_free_dylibloader_wrapper_asound)( snd_rawmidi_status_t*); +extern void (*snd_rawmidi_status_copy_dylibloader_wrapper_asound)( snd_rawmidi_status_t*,const snd_rawmidi_status_t*); +extern void (*snd_rawmidi_status_get_tstamp_dylibloader_wrapper_asound)(const snd_rawmidi_status_t*, snd_htimestamp_t*); +extern size_t (*snd_rawmidi_status_get_avail_dylibloader_wrapper_asound)(const snd_rawmidi_status_t*); +extern size_t (*snd_rawmidi_status_get_xruns_dylibloader_wrapper_asound)(const snd_rawmidi_status_t*); +extern int (*snd_rawmidi_status_dylibloader_wrapper_asound)( snd_rawmidi_t*, snd_rawmidi_status_t*); +extern int (*snd_rawmidi_drain_dylibloader_wrapper_asound)( snd_rawmidi_t*); +extern int (*snd_rawmidi_drop_dylibloader_wrapper_asound)( snd_rawmidi_t*); +extern ssize_t (*snd_rawmidi_write_dylibloader_wrapper_asound)( snd_rawmidi_t*,const void*, size_t); +extern ssize_t (*snd_rawmidi_read_dylibloader_wrapper_asound)( snd_rawmidi_t*, void*, size_t); +extern const char* (*snd_rawmidi_name_dylibloader_wrapper_asound)( snd_rawmidi_t*); +extern snd_rawmidi_type_t (*snd_rawmidi_type_dylibloader_wrapper_asound)( snd_rawmidi_t*); +extern snd_rawmidi_stream_t (*snd_rawmidi_stream_dylibloader_wrapper_asound)( snd_rawmidi_t*); +extern int (*snd_timer_query_open_dylibloader_wrapper_asound)( snd_timer_query_t**,const char*, int); +extern int (*snd_timer_query_open_lconf_dylibloader_wrapper_asound)( snd_timer_query_t**,const char*, int, snd_config_t*); +extern int (*snd_timer_query_close_dylibloader_wrapper_asound)( snd_timer_query_t*); +extern int (*snd_timer_query_next_device_dylibloader_wrapper_asound)( snd_timer_query_t*, snd_timer_id_t*); +extern int (*snd_timer_query_info_dylibloader_wrapper_asound)( snd_timer_query_t*, snd_timer_ginfo_t*); +extern int (*snd_timer_query_params_dylibloader_wrapper_asound)( snd_timer_query_t*, snd_timer_gparams_t*); +extern int (*snd_timer_query_status_dylibloader_wrapper_asound)( snd_timer_query_t*, snd_timer_gstatus_t*); +extern int (*snd_timer_open_dylibloader_wrapper_asound)( snd_timer_t**,const char*, int); +extern int (*snd_timer_open_lconf_dylibloader_wrapper_asound)( snd_timer_t**,const char*, int, snd_config_t*); +extern int (*snd_timer_close_dylibloader_wrapper_asound)( snd_timer_t*); +extern int (*snd_async_add_timer_handler_dylibloader_wrapper_asound)( snd_async_handler_t**, snd_timer_t*, snd_async_callback_t, void*); +extern snd_timer_t* (*snd_async_handler_get_timer_dylibloader_wrapper_asound)( snd_async_handler_t*); +extern int (*snd_timer_poll_descriptors_count_dylibloader_wrapper_asound)( snd_timer_t*); +extern int (*snd_timer_poll_descriptors_dylibloader_wrapper_asound)( snd_timer_t*,struct pollfd*, unsigned int); +extern int (*snd_timer_poll_descriptors_revents_dylibloader_wrapper_asound)( snd_timer_t*,struct pollfd*, unsigned int, unsigned short*); +extern int (*snd_timer_info_dylibloader_wrapper_asound)( snd_timer_t*, snd_timer_info_t*); +extern int (*snd_timer_params_dylibloader_wrapper_asound)( snd_timer_t*, snd_timer_params_t*); +extern int (*snd_timer_status_dylibloader_wrapper_asound)( snd_timer_t*, snd_timer_status_t*); +extern int (*snd_timer_start_dylibloader_wrapper_asound)( snd_timer_t*); +extern int (*snd_timer_stop_dylibloader_wrapper_asound)( snd_timer_t*); +extern int (*snd_timer_continue_dylibloader_wrapper_asound)( snd_timer_t*); +extern ssize_t (*snd_timer_read_dylibloader_wrapper_asound)( snd_timer_t*, void*, size_t); +extern size_t (*snd_timer_id_sizeof_dylibloader_wrapper_asound)( void); +extern int (*snd_timer_id_malloc_dylibloader_wrapper_asound)( snd_timer_id_t**); +extern void (*snd_timer_id_free_dylibloader_wrapper_asound)( snd_timer_id_t*); +extern void (*snd_timer_id_copy_dylibloader_wrapper_asound)( snd_timer_id_t*,const snd_timer_id_t*); +extern void (*snd_timer_id_set_class_dylibloader_wrapper_asound)( snd_timer_id_t*, int); +extern int (*snd_timer_id_get_class_dylibloader_wrapper_asound)( snd_timer_id_t*); +extern void (*snd_timer_id_set_sclass_dylibloader_wrapper_asound)( snd_timer_id_t*, int); +extern int (*snd_timer_id_get_sclass_dylibloader_wrapper_asound)( snd_timer_id_t*); +extern void (*snd_timer_id_set_card_dylibloader_wrapper_asound)( snd_timer_id_t*, int); +extern int (*snd_timer_id_get_card_dylibloader_wrapper_asound)( snd_timer_id_t*); +extern void (*snd_timer_id_set_device_dylibloader_wrapper_asound)( snd_timer_id_t*, int); +extern int (*snd_timer_id_get_device_dylibloader_wrapper_asound)( snd_timer_id_t*); +extern void (*snd_timer_id_set_subdevice_dylibloader_wrapper_asound)( snd_timer_id_t*, int); +extern int (*snd_timer_id_get_subdevice_dylibloader_wrapper_asound)( snd_timer_id_t*); +extern size_t (*snd_timer_ginfo_sizeof_dylibloader_wrapper_asound)( void); +extern int (*snd_timer_ginfo_malloc_dylibloader_wrapper_asound)( snd_timer_ginfo_t**); +extern void (*snd_timer_ginfo_free_dylibloader_wrapper_asound)( snd_timer_ginfo_t*); +extern void (*snd_timer_ginfo_copy_dylibloader_wrapper_asound)( snd_timer_ginfo_t*,const snd_timer_ginfo_t*); +extern int (*snd_timer_ginfo_set_tid_dylibloader_wrapper_asound)( snd_timer_ginfo_t*, snd_timer_id_t*); +extern snd_timer_id_t* (*snd_timer_ginfo_get_tid_dylibloader_wrapper_asound)( snd_timer_ginfo_t*); +extern unsigned int (*snd_timer_ginfo_get_flags_dylibloader_wrapper_asound)( snd_timer_ginfo_t*); +extern int (*snd_timer_ginfo_get_card_dylibloader_wrapper_asound)( snd_timer_ginfo_t*); +extern char* (*snd_timer_ginfo_get_id_dylibloader_wrapper_asound)( snd_timer_ginfo_t*); +extern char* (*snd_timer_ginfo_get_name_dylibloader_wrapper_asound)( snd_timer_ginfo_t*); +extern unsigned long (*snd_timer_ginfo_get_resolution_dylibloader_wrapper_asound)( snd_timer_ginfo_t*); +extern unsigned long (*snd_timer_ginfo_get_resolution_min_dylibloader_wrapper_asound)( snd_timer_ginfo_t*); +extern unsigned long (*snd_timer_ginfo_get_resolution_max_dylibloader_wrapper_asound)( snd_timer_ginfo_t*); +extern unsigned int (*snd_timer_ginfo_get_clients_dylibloader_wrapper_asound)( snd_timer_ginfo_t*); +extern size_t (*snd_timer_info_sizeof_dylibloader_wrapper_asound)( void); +extern int (*snd_timer_info_malloc_dylibloader_wrapper_asound)( snd_timer_info_t**); +extern void (*snd_timer_info_free_dylibloader_wrapper_asound)( snd_timer_info_t*); +extern void (*snd_timer_info_copy_dylibloader_wrapper_asound)( snd_timer_info_t*,const snd_timer_info_t*); +extern int (*snd_timer_info_is_slave_dylibloader_wrapper_asound)( snd_timer_info_t*); +extern int (*snd_timer_info_get_card_dylibloader_wrapper_asound)( snd_timer_info_t*); +extern const char* (*snd_timer_info_get_id_dylibloader_wrapper_asound)( snd_timer_info_t*); +extern const char* (*snd_timer_info_get_name_dylibloader_wrapper_asound)( snd_timer_info_t*); +extern long (*snd_timer_info_get_resolution_dylibloader_wrapper_asound)( snd_timer_info_t*); +extern size_t (*snd_timer_params_sizeof_dylibloader_wrapper_asound)( void); +extern int (*snd_timer_params_malloc_dylibloader_wrapper_asound)( snd_timer_params_t**); +extern void (*snd_timer_params_free_dylibloader_wrapper_asound)( snd_timer_params_t*); +extern void (*snd_timer_params_copy_dylibloader_wrapper_asound)( snd_timer_params_t*,const snd_timer_params_t*); +extern int (*snd_timer_params_set_auto_start_dylibloader_wrapper_asound)( snd_timer_params_t*, int); +extern int (*snd_timer_params_get_auto_start_dylibloader_wrapper_asound)( snd_timer_params_t*); +extern int (*snd_timer_params_set_exclusive_dylibloader_wrapper_asound)( snd_timer_params_t*, int); +extern int (*snd_timer_params_get_exclusive_dylibloader_wrapper_asound)( snd_timer_params_t*); +extern int (*snd_timer_params_set_early_event_dylibloader_wrapper_asound)( snd_timer_params_t*, int); +extern int (*snd_timer_params_get_early_event_dylibloader_wrapper_asound)( snd_timer_params_t*); +extern void (*snd_timer_params_set_ticks_dylibloader_wrapper_asound)( snd_timer_params_t*, long); +extern long (*snd_timer_params_get_ticks_dylibloader_wrapper_asound)( snd_timer_params_t*); +extern void (*snd_timer_params_set_queue_size_dylibloader_wrapper_asound)( snd_timer_params_t*, long); +extern long (*snd_timer_params_get_queue_size_dylibloader_wrapper_asound)( snd_timer_params_t*); +extern void (*snd_timer_params_set_filter_dylibloader_wrapper_asound)( snd_timer_params_t*, unsigned int); +extern unsigned int (*snd_timer_params_get_filter_dylibloader_wrapper_asound)( snd_timer_params_t*); +extern size_t (*snd_timer_status_sizeof_dylibloader_wrapper_asound)( void); +extern int (*snd_timer_status_malloc_dylibloader_wrapper_asound)( snd_timer_status_t**); +extern void (*snd_timer_status_free_dylibloader_wrapper_asound)( snd_timer_status_t*); +extern void (*snd_timer_status_copy_dylibloader_wrapper_asound)( snd_timer_status_t*,const snd_timer_status_t*); +extern snd_htimestamp_t (*snd_timer_status_get_timestamp_dylibloader_wrapper_asound)( snd_timer_status_t*); +extern long (*snd_timer_status_get_resolution_dylibloader_wrapper_asound)( snd_timer_status_t*); +extern long (*snd_timer_status_get_lost_dylibloader_wrapper_asound)( snd_timer_status_t*); +extern long (*snd_timer_status_get_overrun_dylibloader_wrapper_asound)( snd_timer_status_t*); +extern long (*snd_timer_status_get_queue_dylibloader_wrapper_asound)( snd_timer_status_t*); +extern long (*snd_timer_info_get_ticks_dylibloader_wrapper_asound)( snd_timer_info_t*); +extern int (*snd_hwdep_open_dylibloader_wrapper_asound)( snd_hwdep_t**,const char*, int); +extern int (*snd_hwdep_close_dylibloader_wrapper_asound)( snd_hwdep_t*); +extern int (*snd_hwdep_poll_descriptors_dylibloader_wrapper_asound)( snd_hwdep_t*,struct pollfd*, unsigned int); +extern int (*snd_hwdep_poll_descriptors_count_dylibloader_wrapper_asound)( snd_hwdep_t*); +extern int (*snd_hwdep_poll_descriptors_revents_dylibloader_wrapper_asound)( snd_hwdep_t*,struct pollfd*, unsigned int, unsigned short*); +extern int (*snd_hwdep_nonblock_dylibloader_wrapper_asound)( snd_hwdep_t*, int); +extern int (*snd_hwdep_info_dylibloader_wrapper_asound)( snd_hwdep_t*, snd_hwdep_info_t*); +extern int (*snd_hwdep_dsp_status_dylibloader_wrapper_asound)( snd_hwdep_t*, snd_hwdep_dsp_status_t*); +extern int (*snd_hwdep_dsp_load_dylibloader_wrapper_asound)( snd_hwdep_t*, snd_hwdep_dsp_image_t*); +extern int (*snd_hwdep_ioctl_dylibloader_wrapper_asound)( snd_hwdep_t*, unsigned int, void*); +extern ssize_t (*snd_hwdep_write_dylibloader_wrapper_asound)( snd_hwdep_t*,const void*, size_t); +extern ssize_t (*snd_hwdep_read_dylibloader_wrapper_asound)( snd_hwdep_t*, void*, size_t); +extern size_t (*snd_hwdep_info_sizeof_dylibloader_wrapper_asound)( void); +extern int (*snd_hwdep_info_malloc_dylibloader_wrapper_asound)( snd_hwdep_info_t**); +extern void (*snd_hwdep_info_free_dylibloader_wrapper_asound)( snd_hwdep_info_t*); +extern void (*snd_hwdep_info_copy_dylibloader_wrapper_asound)( snd_hwdep_info_t*,const snd_hwdep_info_t*); +extern unsigned int (*snd_hwdep_info_get_device_dylibloader_wrapper_asound)(const snd_hwdep_info_t*); +extern int (*snd_hwdep_info_get_card_dylibloader_wrapper_asound)(const snd_hwdep_info_t*); +extern const char* (*snd_hwdep_info_get_id_dylibloader_wrapper_asound)(const snd_hwdep_info_t*); +extern const char* (*snd_hwdep_info_get_name_dylibloader_wrapper_asound)(const snd_hwdep_info_t*); +extern snd_hwdep_iface_t (*snd_hwdep_info_get_iface_dylibloader_wrapper_asound)(const snd_hwdep_info_t*); +extern void (*snd_hwdep_info_set_device_dylibloader_wrapper_asound)( snd_hwdep_info_t*, unsigned int); +extern size_t (*snd_hwdep_dsp_status_sizeof_dylibloader_wrapper_asound)( void); +extern int (*snd_hwdep_dsp_status_malloc_dylibloader_wrapper_asound)( snd_hwdep_dsp_status_t**); +extern void (*snd_hwdep_dsp_status_free_dylibloader_wrapper_asound)( snd_hwdep_dsp_status_t*); +extern void (*snd_hwdep_dsp_status_copy_dylibloader_wrapper_asound)( snd_hwdep_dsp_status_t*,const snd_hwdep_dsp_status_t*); +extern unsigned int (*snd_hwdep_dsp_status_get_version_dylibloader_wrapper_asound)(const snd_hwdep_dsp_status_t*); +extern const char* (*snd_hwdep_dsp_status_get_id_dylibloader_wrapper_asound)(const snd_hwdep_dsp_status_t*); +extern unsigned int (*snd_hwdep_dsp_status_get_num_dsps_dylibloader_wrapper_asound)(const snd_hwdep_dsp_status_t*); +extern unsigned int (*snd_hwdep_dsp_status_get_dsp_loaded_dylibloader_wrapper_asound)(const snd_hwdep_dsp_status_t*); +extern unsigned int (*snd_hwdep_dsp_status_get_chip_ready_dylibloader_wrapper_asound)(const snd_hwdep_dsp_status_t*); +extern size_t (*snd_hwdep_dsp_image_sizeof_dylibloader_wrapper_asound)( void); +extern int (*snd_hwdep_dsp_image_malloc_dylibloader_wrapper_asound)( snd_hwdep_dsp_image_t**); +extern void (*snd_hwdep_dsp_image_free_dylibloader_wrapper_asound)( snd_hwdep_dsp_image_t*); +extern void (*snd_hwdep_dsp_image_copy_dylibloader_wrapper_asound)( snd_hwdep_dsp_image_t*,const snd_hwdep_dsp_image_t*); +extern unsigned int (*snd_hwdep_dsp_image_get_index_dylibloader_wrapper_asound)(const snd_hwdep_dsp_image_t*); +extern const char* (*snd_hwdep_dsp_image_get_name_dylibloader_wrapper_asound)(const snd_hwdep_dsp_image_t*); +extern const void* (*snd_hwdep_dsp_image_get_image_dylibloader_wrapper_asound)(const snd_hwdep_dsp_image_t*); +extern size_t (*snd_hwdep_dsp_image_get_length_dylibloader_wrapper_asound)(const snd_hwdep_dsp_image_t*); +extern void (*snd_hwdep_dsp_image_set_index_dylibloader_wrapper_asound)( snd_hwdep_dsp_image_t*, unsigned int); +extern void (*snd_hwdep_dsp_image_set_name_dylibloader_wrapper_asound)( snd_hwdep_dsp_image_t*,const char*); +extern void (*snd_hwdep_dsp_image_set_image_dylibloader_wrapper_asound)( snd_hwdep_dsp_image_t*, void*); +extern void (*snd_hwdep_dsp_image_set_length_dylibloader_wrapper_asound)( snd_hwdep_dsp_image_t*, size_t); +extern int (*snd_card_load_dylibloader_wrapper_asound)( int); +extern int (*snd_card_next_dylibloader_wrapper_asound)( int*); +extern int (*snd_card_get_index_dylibloader_wrapper_asound)(const char*); +extern int (*snd_card_get_name_dylibloader_wrapper_asound)( int, char**); +extern int (*snd_card_get_longname_dylibloader_wrapper_asound)( int, char**); +extern int (*snd_device_name_hint_dylibloader_wrapper_asound)( int,const char*, void***); +extern int (*snd_device_name_free_hint_dylibloader_wrapper_asound)( void**); +extern char* (*snd_device_name_get_hint_dylibloader_wrapper_asound)(const void*,const char*); +extern int (*snd_ctl_open_dylibloader_wrapper_asound)( snd_ctl_t**,const char*, int); +extern int (*snd_ctl_open_lconf_dylibloader_wrapper_asound)( snd_ctl_t**,const char*, int, snd_config_t*); +extern int (*snd_ctl_open_fallback_dylibloader_wrapper_asound)( snd_ctl_t**, snd_config_t*,const char*,const char*, int); +extern int (*snd_ctl_close_dylibloader_wrapper_asound)( snd_ctl_t*); +extern int (*snd_ctl_nonblock_dylibloader_wrapper_asound)( snd_ctl_t*, int); +extern int (*snd_async_add_ctl_handler_dylibloader_wrapper_asound)( snd_async_handler_t**, snd_ctl_t*, snd_async_callback_t, void*); +extern snd_ctl_t* (*snd_async_handler_get_ctl_dylibloader_wrapper_asound)( snd_async_handler_t*); +extern int (*snd_ctl_poll_descriptors_count_dylibloader_wrapper_asound)( snd_ctl_t*); +extern int (*snd_ctl_poll_descriptors_dylibloader_wrapper_asound)( snd_ctl_t*,struct pollfd*, unsigned int); +extern int (*snd_ctl_poll_descriptors_revents_dylibloader_wrapper_asound)( snd_ctl_t*,struct pollfd*, unsigned int, unsigned short*); +extern int (*snd_ctl_subscribe_events_dylibloader_wrapper_asound)( snd_ctl_t*, int); +extern int (*snd_ctl_card_info_dylibloader_wrapper_asound)( snd_ctl_t*, snd_ctl_card_info_t*); +extern int (*snd_ctl_elem_list_dylibloader_wrapper_asound)( snd_ctl_t*, snd_ctl_elem_list_t*); +extern int (*snd_ctl_elem_info_dylibloader_wrapper_asound)( snd_ctl_t*, snd_ctl_elem_info_t*); +extern int (*snd_ctl_elem_read_dylibloader_wrapper_asound)( snd_ctl_t*, snd_ctl_elem_value_t*); +extern int (*snd_ctl_elem_write_dylibloader_wrapper_asound)( snd_ctl_t*, snd_ctl_elem_value_t*); +extern int (*snd_ctl_elem_lock_dylibloader_wrapper_asound)( snd_ctl_t*, snd_ctl_elem_id_t*); +extern int (*snd_ctl_elem_unlock_dylibloader_wrapper_asound)( snd_ctl_t*, snd_ctl_elem_id_t*); +extern int (*snd_ctl_elem_tlv_read_dylibloader_wrapper_asound)( snd_ctl_t*,const snd_ctl_elem_id_t*, unsigned int*, unsigned int); +extern int (*snd_ctl_elem_tlv_write_dylibloader_wrapper_asound)( snd_ctl_t*,const snd_ctl_elem_id_t*,const unsigned int*); +extern int (*snd_ctl_elem_tlv_command_dylibloader_wrapper_asound)( snd_ctl_t*,const snd_ctl_elem_id_t*,const unsigned int*); +extern int (*snd_ctl_hwdep_next_device_dylibloader_wrapper_asound)( snd_ctl_t*, int*); +extern int (*snd_ctl_hwdep_info_dylibloader_wrapper_asound)( snd_ctl_t*, snd_hwdep_info_t*); +extern int (*snd_ctl_pcm_next_device_dylibloader_wrapper_asound)( snd_ctl_t*, int*); +extern int (*snd_ctl_pcm_info_dylibloader_wrapper_asound)( snd_ctl_t*, snd_pcm_info_t*); +extern int (*snd_ctl_pcm_prefer_subdevice_dylibloader_wrapper_asound)( snd_ctl_t*, int); +extern int (*snd_ctl_rawmidi_next_device_dylibloader_wrapper_asound)( snd_ctl_t*, int*); +extern int (*snd_ctl_rawmidi_info_dylibloader_wrapper_asound)( snd_ctl_t*, snd_rawmidi_info_t*); +extern int (*snd_ctl_rawmidi_prefer_subdevice_dylibloader_wrapper_asound)( snd_ctl_t*, int); +extern int (*snd_ctl_set_power_state_dylibloader_wrapper_asound)( snd_ctl_t*, unsigned int); +extern int (*snd_ctl_get_power_state_dylibloader_wrapper_asound)( snd_ctl_t*, unsigned int*); +extern int (*snd_ctl_read_dylibloader_wrapper_asound)( snd_ctl_t*, snd_ctl_event_t*); +extern int (*snd_ctl_wait_dylibloader_wrapper_asound)( snd_ctl_t*, int); +extern const char* (*snd_ctl_name_dylibloader_wrapper_asound)( snd_ctl_t*); +extern snd_ctl_type_t (*snd_ctl_type_dylibloader_wrapper_asound)( snd_ctl_t*); +extern const char* (*snd_ctl_elem_type_name_dylibloader_wrapper_asound)( snd_ctl_elem_type_t); +extern const char* (*snd_ctl_elem_iface_name_dylibloader_wrapper_asound)( snd_ctl_elem_iface_t); +extern const char* (*snd_ctl_event_type_name_dylibloader_wrapper_asound)( snd_ctl_event_type_t); +extern unsigned int (*snd_ctl_event_elem_get_mask_dylibloader_wrapper_asound)(const snd_ctl_event_t*); +extern unsigned int (*snd_ctl_event_elem_get_numid_dylibloader_wrapper_asound)(const snd_ctl_event_t*); +extern void (*snd_ctl_event_elem_get_id_dylibloader_wrapper_asound)(const snd_ctl_event_t*, snd_ctl_elem_id_t*); +extern snd_ctl_elem_iface_t (*snd_ctl_event_elem_get_interface_dylibloader_wrapper_asound)(const snd_ctl_event_t*); +extern unsigned int (*snd_ctl_event_elem_get_device_dylibloader_wrapper_asound)(const snd_ctl_event_t*); +extern unsigned int (*snd_ctl_event_elem_get_subdevice_dylibloader_wrapper_asound)(const snd_ctl_event_t*); +extern const char* (*snd_ctl_event_elem_get_name_dylibloader_wrapper_asound)(const snd_ctl_event_t*); +extern unsigned int (*snd_ctl_event_elem_get_index_dylibloader_wrapper_asound)(const snd_ctl_event_t*); +extern int (*snd_ctl_elem_list_alloc_space_dylibloader_wrapper_asound)( snd_ctl_elem_list_t*, unsigned int); +extern void (*snd_ctl_elem_list_free_space_dylibloader_wrapper_asound)( snd_ctl_elem_list_t*); +extern char* (*snd_ctl_ascii_elem_id_get_dylibloader_wrapper_asound)( snd_ctl_elem_id_t*); +extern int (*snd_ctl_ascii_elem_id_parse_dylibloader_wrapper_asound)( snd_ctl_elem_id_t*,const char*); +extern int (*snd_ctl_ascii_value_parse_dylibloader_wrapper_asound)( snd_ctl_t*, snd_ctl_elem_value_t*, snd_ctl_elem_info_t*,const char*); +extern size_t (*snd_ctl_elem_id_sizeof_dylibloader_wrapper_asound)( void); +extern int (*snd_ctl_elem_id_malloc_dylibloader_wrapper_asound)( snd_ctl_elem_id_t**); +extern void (*snd_ctl_elem_id_free_dylibloader_wrapper_asound)( snd_ctl_elem_id_t*); +extern void (*snd_ctl_elem_id_clear_dylibloader_wrapper_asound)( snd_ctl_elem_id_t*); +extern void (*snd_ctl_elem_id_copy_dylibloader_wrapper_asound)( snd_ctl_elem_id_t*,const snd_ctl_elem_id_t*); +extern unsigned int (*snd_ctl_elem_id_get_numid_dylibloader_wrapper_asound)(const snd_ctl_elem_id_t*); +extern snd_ctl_elem_iface_t (*snd_ctl_elem_id_get_interface_dylibloader_wrapper_asound)(const snd_ctl_elem_id_t*); +extern unsigned int (*snd_ctl_elem_id_get_device_dylibloader_wrapper_asound)(const snd_ctl_elem_id_t*); +extern unsigned int (*snd_ctl_elem_id_get_subdevice_dylibloader_wrapper_asound)(const snd_ctl_elem_id_t*); +extern const char* (*snd_ctl_elem_id_get_name_dylibloader_wrapper_asound)(const snd_ctl_elem_id_t*); +extern unsigned int (*snd_ctl_elem_id_get_index_dylibloader_wrapper_asound)(const snd_ctl_elem_id_t*); +extern void (*snd_ctl_elem_id_set_numid_dylibloader_wrapper_asound)( snd_ctl_elem_id_t*, unsigned int); +extern void (*snd_ctl_elem_id_set_interface_dylibloader_wrapper_asound)( snd_ctl_elem_id_t*, snd_ctl_elem_iface_t); +extern void (*snd_ctl_elem_id_set_device_dylibloader_wrapper_asound)( snd_ctl_elem_id_t*, unsigned int); +extern void (*snd_ctl_elem_id_set_subdevice_dylibloader_wrapper_asound)( snd_ctl_elem_id_t*, unsigned int); +extern void (*snd_ctl_elem_id_set_name_dylibloader_wrapper_asound)( snd_ctl_elem_id_t*,const char*); +extern void (*snd_ctl_elem_id_set_index_dylibloader_wrapper_asound)( snd_ctl_elem_id_t*, unsigned int); +extern size_t (*snd_ctl_card_info_sizeof_dylibloader_wrapper_asound)( void); +extern int (*snd_ctl_card_info_malloc_dylibloader_wrapper_asound)( snd_ctl_card_info_t**); +extern void (*snd_ctl_card_info_free_dylibloader_wrapper_asound)( snd_ctl_card_info_t*); +extern void (*snd_ctl_card_info_clear_dylibloader_wrapper_asound)( snd_ctl_card_info_t*); +extern void (*snd_ctl_card_info_copy_dylibloader_wrapper_asound)( snd_ctl_card_info_t*,const snd_ctl_card_info_t*); +extern int (*snd_ctl_card_info_get_card_dylibloader_wrapper_asound)(const snd_ctl_card_info_t*); +extern const char* (*snd_ctl_card_info_get_id_dylibloader_wrapper_asound)(const snd_ctl_card_info_t*); +extern const char* (*snd_ctl_card_info_get_driver_dylibloader_wrapper_asound)(const snd_ctl_card_info_t*); +extern const char* (*snd_ctl_card_info_get_name_dylibloader_wrapper_asound)(const snd_ctl_card_info_t*); +extern const char* (*snd_ctl_card_info_get_longname_dylibloader_wrapper_asound)(const snd_ctl_card_info_t*); +extern const char* (*snd_ctl_card_info_get_mixername_dylibloader_wrapper_asound)(const snd_ctl_card_info_t*); +extern const char* (*snd_ctl_card_info_get_components_dylibloader_wrapper_asound)(const snd_ctl_card_info_t*); +extern size_t (*snd_ctl_event_sizeof_dylibloader_wrapper_asound)( void); +extern int (*snd_ctl_event_malloc_dylibloader_wrapper_asound)( snd_ctl_event_t**); +extern void (*snd_ctl_event_free_dylibloader_wrapper_asound)( snd_ctl_event_t*); +extern void (*snd_ctl_event_clear_dylibloader_wrapper_asound)( snd_ctl_event_t*); +extern void (*snd_ctl_event_copy_dylibloader_wrapper_asound)( snd_ctl_event_t*,const snd_ctl_event_t*); +extern snd_ctl_event_type_t (*snd_ctl_event_get_type_dylibloader_wrapper_asound)(const snd_ctl_event_t*); +extern size_t (*snd_ctl_elem_list_sizeof_dylibloader_wrapper_asound)( void); +extern int (*snd_ctl_elem_list_malloc_dylibloader_wrapper_asound)( snd_ctl_elem_list_t**); +extern void (*snd_ctl_elem_list_free_dylibloader_wrapper_asound)( snd_ctl_elem_list_t*); +extern void (*snd_ctl_elem_list_clear_dylibloader_wrapper_asound)( snd_ctl_elem_list_t*); +extern void (*snd_ctl_elem_list_copy_dylibloader_wrapper_asound)( snd_ctl_elem_list_t*,const snd_ctl_elem_list_t*); +extern void (*snd_ctl_elem_list_set_offset_dylibloader_wrapper_asound)( snd_ctl_elem_list_t*, unsigned int); +extern unsigned int (*snd_ctl_elem_list_get_used_dylibloader_wrapper_asound)(const snd_ctl_elem_list_t*); +extern unsigned int (*snd_ctl_elem_list_get_count_dylibloader_wrapper_asound)(const snd_ctl_elem_list_t*); +extern void (*snd_ctl_elem_list_get_id_dylibloader_wrapper_asound)(const snd_ctl_elem_list_t*, unsigned int, snd_ctl_elem_id_t*); +extern unsigned int (*snd_ctl_elem_list_get_numid_dylibloader_wrapper_asound)(const snd_ctl_elem_list_t*, unsigned int); +extern snd_ctl_elem_iface_t (*snd_ctl_elem_list_get_interface_dylibloader_wrapper_asound)(const snd_ctl_elem_list_t*, unsigned int); +extern unsigned int (*snd_ctl_elem_list_get_device_dylibloader_wrapper_asound)(const snd_ctl_elem_list_t*, unsigned int); +extern unsigned int (*snd_ctl_elem_list_get_subdevice_dylibloader_wrapper_asound)(const snd_ctl_elem_list_t*, unsigned int); +extern const char* (*snd_ctl_elem_list_get_name_dylibloader_wrapper_asound)(const snd_ctl_elem_list_t*, unsigned int); +extern unsigned int (*snd_ctl_elem_list_get_index_dylibloader_wrapper_asound)(const snd_ctl_elem_list_t*, unsigned int); +extern size_t (*snd_ctl_elem_info_sizeof_dylibloader_wrapper_asound)( void); +extern int (*snd_ctl_elem_info_malloc_dylibloader_wrapper_asound)( snd_ctl_elem_info_t**); +extern void (*snd_ctl_elem_info_free_dylibloader_wrapper_asound)( snd_ctl_elem_info_t*); +extern void (*snd_ctl_elem_info_clear_dylibloader_wrapper_asound)( snd_ctl_elem_info_t*); +extern void (*snd_ctl_elem_info_copy_dylibloader_wrapper_asound)( snd_ctl_elem_info_t*,const snd_ctl_elem_info_t*); +extern snd_ctl_elem_type_t (*snd_ctl_elem_info_get_type_dylibloader_wrapper_asound)(const snd_ctl_elem_info_t*); +extern int (*snd_ctl_elem_info_is_readable_dylibloader_wrapper_asound)(const snd_ctl_elem_info_t*); +extern int (*snd_ctl_elem_info_is_writable_dylibloader_wrapper_asound)(const snd_ctl_elem_info_t*); +extern int (*snd_ctl_elem_info_is_volatile_dylibloader_wrapper_asound)(const snd_ctl_elem_info_t*); +extern int (*snd_ctl_elem_info_is_inactive_dylibloader_wrapper_asound)(const snd_ctl_elem_info_t*); +extern int (*snd_ctl_elem_info_is_locked_dylibloader_wrapper_asound)(const snd_ctl_elem_info_t*); +extern int (*snd_ctl_elem_info_is_tlv_readable_dylibloader_wrapper_asound)(const snd_ctl_elem_info_t*); +extern int (*snd_ctl_elem_info_is_tlv_writable_dylibloader_wrapper_asound)(const snd_ctl_elem_info_t*); +extern int (*snd_ctl_elem_info_is_tlv_commandable_dylibloader_wrapper_asound)(const snd_ctl_elem_info_t*); +extern int (*snd_ctl_elem_info_is_owner_dylibloader_wrapper_asound)(const snd_ctl_elem_info_t*); +extern int (*snd_ctl_elem_info_is_user_dylibloader_wrapper_asound)(const snd_ctl_elem_info_t*); +extern pid_t (*snd_ctl_elem_info_get_owner_dylibloader_wrapper_asound)(const snd_ctl_elem_info_t*); +extern unsigned int (*snd_ctl_elem_info_get_count_dylibloader_wrapper_asound)(const snd_ctl_elem_info_t*); +extern long (*snd_ctl_elem_info_get_min_dylibloader_wrapper_asound)(const snd_ctl_elem_info_t*); +extern long (*snd_ctl_elem_info_get_max_dylibloader_wrapper_asound)(const snd_ctl_elem_info_t*); +extern long (*snd_ctl_elem_info_get_step_dylibloader_wrapper_asound)(const snd_ctl_elem_info_t*); +extern long long (*snd_ctl_elem_info_get_min64_dylibloader_wrapper_asound)(const snd_ctl_elem_info_t*); +extern long long (*snd_ctl_elem_info_get_max64_dylibloader_wrapper_asound)(const snd_ctl_elem_info_t*); +extern long long (*snd_ctl_elem_info_get_step64_dylibloader_wrapper_asound)(const snd_ctl_elem_info_t*); +extern unsigned int (*snd_ctl_elem_info_get_items_dylibloader_wrapper_asound)(const snd_ctl_elem_info_t*); +extern void (*snd_ctl_elem_info_set_item_dylibloader_wrapper_asound)( snd_ctl_elem_info_t*, unsigned int); +extern const char* (*snd_ctl_elem_info_get_item_name_dylibloader_wrapper_asound)(const snd_ctl_elem_info_t*); +extern int (*snd_ctl_elem_info_get_dimensions_dylibloader_wrapper_asound)(const snd_ctl_elem_info_t*); +extern int (*snd_ctl_elem_info_get_dimension_dylibloader_wrapper_asound)(const snd_ctl_elem_info_t*, unsigned int); +extern int (*snd_ctl_elem_info_set_dimension_dylibloader_wrapper_asound)( snd_ctl_elem_info_t*,const int [4]); +extern void (*snd_ctl_elem_info_get_id_dylibloader_wrapper_asound)(const snd_ctl_elem_info_t*, snd_ctl_elem_id_t*); +extern unsigned int (*snd_ctl_elem_info_get_numid_dylibloader_wrapper_asound)(const snd_ctl_elem_info_t*); +extern snd_ctl_elem_iface_t (*snd_ctl_elem_info_get_interface_dylibloader_wrapper_asound)(const snd_ctl_elem_info_t*); +extern unsigned int (*snd_ctl_elem_info_get_device_dylibloader_wrapper_asound)(const snd_ctl_elem_info_t*); +extern unsigned int (*snd_ctl_elem_info_get_subdevice_dylibloader_wrapper_asound)(const snd_ctl_elem_info_t*); +extern const char* (*snd_ctl_elem_info_get_name_dylibloader_wrapper_asound)(const snd_ctl_elem_info_t*); +extern unsigned int (*snd_ctl_elem_info_get_index_dylibloader_wrapper_asound)(const snd_ctl_elem_info_t*); +extern void (*snd_ctl_elem_info_set_id_dylibloader_wrapper_asound)( snd_ctl_elem_info_t*,const snd_ctl_elem_id_t*); +extern void (*snd_ctl_elem_info_set_numid_dylibloader_wrapper_asound)( snd_ctl_elem_info_t*, unsigned int); +extern void (*snd_ctl_elem_info_set_interface_dylibloader_wrapper_asound)( snd_ctl_elem_info_t*, snd_ctl_elem_iface_t); +extern void (*snd_ctl_elem_info_set_device_dylibloader_wrapper_asound)( snd_ctl_elem_info_t*, unsigned int); +extern void (*snd_ctl_elem_info_set_subdevice_dylibloader_wrapper_asound)( snd_ctl_elem_info_t*, unsigned int); +extern void (*snd_ctl_elem_info_set_name_dylibloader_wrapper_asound)( snd_ctl_elem_info_t*,const char*); +extern void (*snd_ctl_elem_info_set_index_dylibloader_wrapper_asound)( snd_ctl_elem_info_t*, unsigned int); +extern int (*snd_ctl_add_integer_elem_set_dylibloader_wrapper_asound)( snd_ctl_t*, snd_ctl_elem_info_t*, unsigned int, unsigned int, long, long, long); +extern int (*snd_ctl_add_integer64_elem_set_dylibloader_wrapper_asound)( snd_ctl_t*, snd_ctl_elem_info_t*, unsigned int, unsigned int, long long, long long, long long); +extern int (*snd_ctl_add_boolean_elem_set_dylibloader_wrapper_asound)( snd_ctl_t*, snd_ctl_elem_info_t*, unsigned int, unsigned int); +extern int (*snd_ctl_add_enumerated_elem_set_dylibloader_wrapper_asound)( snd_ctl_t*, snd_ctl_elem_info_t*, unsigned int, unsigned int, unsigned int,const char* []); +extern int (*snd_ctl_add_bytes_elem_set_dylibloader_wrapper_asound)( snd_ctl_t*, snd_ctl_elem_info_t*, unsigned int, unsigned int); +extern int (*snd_ctl_elem_add_integer_dylibloader_wrapper_asound)( snd_ctl_t*,const snd_ctl_elem_id_t*, unsigned int, long, long, long); +extern int (*snd_ctl_elem_add_integer64_dylibloader_wrapper_asound)( snd_ctl_t*,const snd_ctl_elem_id_t*, unsigned int, long long, long long, long long); +extern int (*snd_ctl_elem_add_boolean_dylibloader_wrapper_asound)( snd_ctl_t*,const snd_ctl_elem_id_t*, unsigned int); +extern int (*snd_ctl_elem_add_enumerated_dylibloader_wrapper_asound)( snd_ctl_t*,const snd_ctl_elem_id_t*, unsigned int, unsigned int,const char* []); +extern int (*snd_ctl_elem_add_iec958_dylibloader_wrapper_asound)( snd_ctl_t*,const snd_ctl_elem_id_t*); +extern int (*snd_ctl_elem_remove_dylibloader_wrapper_asound)( snd_ctl_t*, snd_ctl_elem_id_t*); +extern size_t (*snd_ctl_elem_value_sizeof_dylibloader_wrapper_asound)( void); +extern int (*snd_ctl_elem_value_malloc_dylibloader_wrapper_asound)( snd_ctl_elem_value_t**); +extern void (*snd_ctl_elem_value_free_dylibloader_wrapper_asound)( snd_ctl_elem_value_t*); +extern void (*snd_ctl_elem_value_clear_dylibloader_wrapper_asound)( snd_ctl_elem_value_t*); +extern void (*snd_ctl_elem_value_copy_dylibloader_wrapper_asound)( snd_ctl_elem_value_t*,const snd_ctl_elem_value_t*); +extern int (*snd_ctl_elem_value_compare_dylibloader_wrapper_asound)( snd_ctl_elem_value_t*,const snd_ctl_elem_value_t*); +extern void (*snd_ctl_elem_value_get_id_dylibloader_wrapper_asound)(const snd_ctl_elem_value_t*, snd_ctl_elem_id_t*); +extern unsigned int (*snd_ctl_elem_value_get_numid_dylibloader_wrapper_asound)(const snd_ctl_elem_value_t*); +extern snd_ctl_elem_iface_t (*snd_ctl_elem_value_get_interface_dylibloader_wrapper_asound)(const snd_ctl_elem_value_t*); +extern unsigned int (*snd_ctl_elem_value_get_device_dylibloader_wrapper_asound)(const snd_ctl_elem_value_t*); +extern unsigned int (*snd_ctl_elem_value_get_subdevice_dylibloader_wrapper_asound)(const snd_ctl_elem_value_t*); +extern const char* (*snd_ctl_elem_value_get_name_dylibloader_wrapper_asound)(const snd_ctl_elem_value_t*); +extern unsigned int (*snd_ctl_elem_value_get_index_dylibloader_wrapper_asound)(const snd_ctl_elem_value_t*); +extern void (*snd_ctl_elem_value_set_id_dylibloader_wrapper_asound)( snd_ctl_elem_value_t*,const snd_ctl_elem_id_t*); +extern void (*snd_ctl_elem_value_set_numid_dylibloader_wrapper_asound)( snd_ctl_elem_value_t*, unsigned int); +extern void (*snd_ctl_elem_value_set_interface_dylibloader_wrapper_asound)( snd_ctl_elem_value_t*, snd_ctl_elem_iface_t); +extern void (*snd_ctl_elem_value_set_device_dylibloader_wrapper_asound)( snd_ctl_elem_value_t*, unsigned int); +extern void (*snd_ctl_elem_value_set_subdevice_dylibloader_wrapper_asound)( snd_ctl_elem_value_t*, unsigned int); +extern void (*snd_ctl_elem_value_set_name_dylibloader_wrapper_asound)( snd_ctl_elem_value_t*,const char*); +extern void (*snd_ctl_elem_value_set_index_dylibloader_wrapper_asound)( snd_ctl_elem_value_t*, unsigned int); +extern int (*snd_ctl_elem_value_get_boolean_dylibloader_wrapper_asound)(const snd_ctl_elem_value_t*, unsigned int); +extern long (*snd_ctl_elem_value_get_integer_dylibloader_wrapper_asound)(const snd_ctl_elem_value_t*, unsigned int); +extern long long (*snd_ctl_elem_value_get_integer64_dylibloader_wrapper_asound)(const snd_ctl_elem_value_t*, unsigned int); +extern unsigned int (*snd_ctl_elem_value_get_enumerated_dylibloader_wrapper_asound)(const snd_ctl_elem_value_t*, unsigned int); +extern unsigned char (*snd_ctl_elem_value_get_byte_dylibloader_wrapper_asound)(const snd_ctl_elem_value_t*, unsigned int); +extern void (*snd_ctl_elem_value_set_boolean_dylibloader_wrapper_asound)( snd_ctl_elem_value_t*, unsigned int, long); +extern void (*snd_ctl_elem_value_set_integer_dylibloader_wrapper_asound)( snd_ctl_elem_value_t*, unsigned int, long); +extern void (*snd_ctl_elem_value_set_integer64_dylibloader_wrapper_asound)( snd_ctl_elem_value_t*, unsigned int, long long); +extern void (*snd_ctl_elem_value_set_enumerated_dylibloader_wrapper_asound)( snd_ctl_elem_value_t*, unsigned int, unsigned int); +extern void (*snd_ctl_elem_value_set_byte_dylibloader_wrapper_asound)( snd_ctl_elem_value_t*, unsigned int, unsigned char); +extern void (*snd_ctl_elem_set_bytes_dylibloader_wrapper_asound)( snd_ctl_elem_value_t*, void*, size_t); +extern const void* (*snd_ctl_elem_value_get_bytes_dylibloader_wrapper_asound)(const snd_ctl_elem_value_t*); +extern void (*snd_ctl_elem_value_get_iec958_dylibloader_wrapper_asound)(const snd_ctl_elem_value_t*, snd_aes_iec958_t*); +extern void (*snd_ctl_elem_value_set_iec958_dylibloader_wrapper_asound)( snd_ctl_elem_value_t*,const snd_aes_iec958_t*); +extern int (*snd_tlv_parse_dB_info_dylibloader_wrapper_asound)( unsigned int*, unsigned int, unsigned int**); +extern int (*snd_tlv_get_dB_range_dylibloader_wrapper_asound)( unsigned int*, long, long, long*, long*); +extern int (*snd_tlv_convert_to_dB_dylibloader_wrapper_asound)( unsigned int*, long, long, long, long*); +extern int (*snd_tlv_convert_from_dB_dylibloader_wrapper_asound)( unsigned int*, long, long, long, long*, int); +extern int (*snd_ctl_get_dB_range_dylibloader_wrapper_asound)( snd_ctl_t*,const snd_ctl_elem_id_t*, long*, long*); +extern int (*snd_ctl_convert_to_dB_dylibloader_wrapper_asound)( snd_ctl_t*,const snd_ctl_elem_id_t*, long, long*); +extern int (*snd_ctl_convert_from_dB_dylibloader_wrapper_asound)( snd_ctl_t*,const snd_ctl_elem_id_t*, long, long*, int); +extern int (*snd_hctl_compare_fast_dylibloader_wrapper_asound)(const snd_hctl_elem_t*,const snd_hctl_elem_t*); +extern int (*snd_hctl_open_dylibloader_wrapper_asound)( snd_hctl_t**,const char*, int); +extern int (*snd_hctl_open_ctl_dylibloader_wrapper_asound)( snd_hctl_t**, snd_ctl_t*); +extern int (*snd_hctl_close_dylibloader_wrapper_asound)( snd_hctl_t*); +extern int (*snd_hctl_nonblock_dylibloader_wrapper_asound)( snd_hctl_t*, int); +extern int (*snd_hctl_poll_descriptors_count_dylibloader_wrapper_asound)( snd_hctl_t*); +extern int (*snd_hctl_poll_descriptors_dylibloader_wrapper_asound)( snd_hctl_t*,struct pollfd*, unsigned int); +extern int (*snd_hctl_poll_descriptors_revents_dylibloader_wrapper_asound)( snd_hctl_t*,struct pollfd*, unsigned int, unsigned short*); +extern unsigned int (*snd_hctl_get_count_dylibloader_wrapper_asound)( snd_hctl_t*); +extern int (*snd_hctl_set_compare_dylibloader_wrapper_asound)( snd_hctl_t*, snd_hctl_compare_t); +extern snd_hctl_elem_t* (*snd_hctl_first_elem_dylibloader_wrapper_asound)( snd_hctl_t*); +extern snd_hctl_elem_t* (*snd_hctl_last_elem_dylibloader_wrapper_asound)( snd_hctl_t*); +extern snd_hctl_elem_t* (*snd_hctl_find_elem_dylibloader_wrapper_asound)( snd_hctl_t*,const snd_ctl_elem_id_t*); +extern void (*snd_hctl_set_callback_dylibloader_wrapper_asound)( snd_hctl_t*, snd_hctl_callback_t); +extern void (*snd_hctl_set_callback_private_dylibloader_wrapper_asound)( snd_hctl_t*, void*); +extern void* (*snd_hctl_get_callback_private_dylibloader_wrapper_asound)( snd_hctl_t*); +extern int (*snd_hctl_load_dylibloader_wrapper_asound)( snd_hctl_t*); +extern int (*snd_hctl_free_dylibloader_wrapper_asound)( snd_hctl_t*); +extern int (*snd_hctl_handle_events_dylibloader_wrapper_asound)( snd_hctl_t*); +extern const char* (*snd_hctl_name_dylibloader_wrapper_asound)( snd_hctl_t*); +extern int (*snd_hctl_wait_dylibloader_wrapper_asound)( snd_hctl_t*, int); +extern snd_ctl_t* (*snd_hctl_ctl_dylibloader_wrapper_asound)( snd_hctl_t*); +extern snd_hctl_elem_t* (*snd_hctl_elem_next_dylibloader_wrapper_asound)( snd_hctl_elem_t*); +extern snd_hctl_elem_t* (*snd_hctl_elem_prev_dylibloader_wrapper_asound)( snd_hctl_elem_t*); +extern int (*snd_hctl_elem_info_dylibloader_wrapper_asound)( snd_hctl_elem_t*, snd_ctl_elem_info_t*); +extern int (*snd_hctl_elem_read_dylibloader_wrapper_asound)( snd_hctl_elem_t*, snd_ctl_elem_value_t*); +extern int (*snd_hctl_elem_write_dylibloader_wrapper_asound)( snd_hctl_elem_t*, snd_ctl_elem_value_t*); +extern int (*snd_hctl_elem_tlv_read_dylibloader_wrapper_asound)( snd_hctl_elem_t*, unsigned int*, unsigned int); +extern int (*snd_hctl_elem_tlv_write_dylibloader_wrapper_asound)( snd_hctl_elem_t*,const unsigned int*); +extern int (*snd_hctl_elem_tlv_command_dylibloader_wrapper_asound)( snd_hctl_elem_t*,const unsigned int*); +extern snd_hctl_t* (*snd_hctl_elem_get_hctl_dylibloader_wrapper_asound)( snd_hctl_elem_t*); +extern void (*snd_hctl_elem_get_id_dylibloader_wrapper_asound)(const snd_hctl_elem_t*, snd_ctl_elem_id_t*); +extern unsigned int (*snd_hctl_elem_get_numid_dylibloader_wrapper_asound)(const snd_hctl_elem_t*); +extern snd_ctl_elem_iface_t (*snd_hctl_elem_get_interface_dylibloader_wrapper_asound)(const snd_hctl_elem_t*); +extern unsigned int (*snd_hctl_elem_get_device_dylibloader_wrapper_asound)(const snd_hctl_elem_t*); +extern unsigned int (*snd_hctl_elem_get_subdevice_dylibloader_wrapper_asound)(const snd_hctl_elem_t*); +extern const char* (*snd_hctl_elem_get_name_dylibloader_wrapper_asound)(const snd_hctl_elem_t*); +extern unsigned int (*snd_hctl_elem_get_index_dylibloader_wrapper_asound)(const snd_hctl_elem_t*); +extern void (*snd_hctl_elem_set_callback_dylibloader_wrapper_asound)( snd_hctl_elem_t*, snd_hctl_elem_callback_t); +extern void* (*snd_hctl_elem_get_callback_private_dylibloader_wrapper_asound)(const snd_hctl_elem_t*); +extern void (*snd_hctl_elem_set_callback_private_dylibloader_wrapper_asound)( snd_hctl_elem_t*, void*); +extern int (*snd_sctl_build_dylibloader_wrapper_asound)( snd_sctl_t**, snd_ctl_t*, snd_config_t*, snd_config_t*, int); +extern int (*snd_sctl_free_dylibloader_wrapper_asound)( snd_sctl_t*); +extern int (*snd_sctl_install_dylibloader_wrapper_asound)( snd_sctl_t*); +extern int (*snd_sctl_remove_dylibloader_wrapper_asound)( snd_sctl_t*); +extern int (*snd_mixer_open_dylibloader_wrapper_asound)( snd_mixer_t**, int); +extern int (*snd_mixer_close_dylibloader_wrapper_asound)( snd_mixer_t*); +extern snd_mixer_elem_t* (*snd_mixer_first_elem_dylibloader_wrapper_asound)( snd_mixer_t*); +extern snd_mixer_elem_t* (*snd_mixer_last_elem_dylibloader_wrapper_asound)( snd_mixer_t*); +extern int (*snd_mixer_handle_events_dylibloader_wrapper_asound)( snd_mixer_t*); +extern int (*snd_mixer_attach_dylibloader_wrapper_asound)( snd_mixer_t*,const char*); +extern int (*snd_mixer_attach_hctl_dylibloader_wrapper_asound)( snd_mixer_t*, snd_hctl_t*); +extern int (*snd_mixer_detach_dylibloader_wrapper_asound)( snd_mixer_t*,const char*); +extern int (*snd_mixer_detach_hctl_dylibloader_wrapper_asound)( snd_mixer_t*, snd_hctl_t*); +extern int (*snd_mixer_get_hctl_dylibloader_wrapper_asound)( snd_mixer_t*,const char*, snd_hctl_t**); +extern int (*snd_mixer_poll_descriptors_count_dylibloader_wrapper_asound)( snd_mixer_t*); +extern int (*snd_mixer_poll_descriptors_dylibloader_wrapper_asound)( snd_mixer_t*,struct pollfd*, unsigned int); +extern int (*snd_mixer_poll_descriptors_revents_dylibloader_wrapper_asound)( snd_mixer_t*,struct pollfd*, unsigned int, unsigned short*); +extern int (*snd_mixer_load_dylibloader_wrapper_asound)( snd_mixer_t*); +extern void (*snd_mixer_free_dylibloader_wrapper_asound)( snd_mixer_t*); +extern int (*snd_mixer_wait_dylibloader_wrapper_asound)( snd_mixer_t*, int); +extern int (*snd_mixer_set_compare_dylibloader_wrapper_asound)( snd_mixer_t*, snd_mixer_compare_t); +extern void (*snd_mixer_set_callback_dylibloader_wrapper_asound)( snd_mixer_t*, snd_mixer_callback_t); +extern void* (*snd_mixer_get_callback_private_dylibloader_wrapper_asound)(const snd_mixer_t*); +extern void (*snd_mixer_set_callback_private_dylibloader_wrapper_asound)( snd_mixer_t*, void*); +extern unsigned int (*snd_mixer_get_count_dylibloader_wrapper_asound)(const snd_mixer_t*); +extern int (*snd_mixer_class_unregister_dylibloader_wrapper_asound)( snd_mixer_class_t*); +extern snd_mixer_elem_t* (*snd_mixer_elem_next_dylibloader_wrapper_asound)( snd_mixer_elem_t*); +extern snd_mixer_elem_t* (*snd_mixer_elem_prev_dylibloader_wrapper_asound)( snd_mixer_elem_t*); +extern void (*snd_mixer_elem_set_callback_dylibloader_wrapper_asound)( snd_mixer_elem_t*, snd_mixer_elem_callback_t); +extern void* (*snd_mixer_elem_get_callback_private_dylibloader_wrapper_asound)(const snd_mixer_elem_t*); +extern void (*snd_mixer_elem_set_callback_private_dylibloader_wrapper_asound)( snd_mixer_elem_t*, void*); +extern snd_mixer_elem_type_t (*snd_mixer_elem_get_type_dylibloader_wrapper_asound)(const snd_mixer_elem_t*); +extern int (*snd_mixer_class_register_dylibloader_wrapper_asound)( snd_mixer_class_t*, snd_mixer_t*); +extern int (*snd_mixer_elem_new_dylibloader_wrapper_asound)( snd_mixer_elem_t**, snd_mixer_elem_type_t, int, void*, void*); +extern int (*snd_mixer_elem_add_dylibloader_wrapper_asound)( snd_mixer_elem_t*, snd_mixer_class_t*); +extern int (*snd_mixer_elem_remove_dylibloader_wrapper_asound)( snd_mixer_elem_t*); +extern void (*snd_mixer_elem_free_dylibloader_wrapper_asound)( snd_mixer_elem_t*); +extern int (*snd_mixer_elem_info_dylibloader_wrapper_asound)( snd_mixer_elem_t*); +extern int (*snd_mixer_elem_value_dylibloader_wrapper_asound)( snd_mixer_elem_t*); +extern int (*snd_mixer_elem_attach_dylibloader_wrapper_asound)( snd_mixer_elem_t*, snd_hctl_elem_t*); +extern int (*snd_mixer_elem_detach_dylibloader_wrapper_asound)( snd_mixer_elem_t*, snd_hctl_elem_t*); +extern int (*snd_mixer_elem_empty_dylibloader_wrapper_asound)( snd_mixer_elem_t*); +extern void* (*snd_mixer_elem_get_private_dylibloader_wrapper_asound)(const snd_mixer_elem_t*); +extern size_t (*snd_mixer_class_sizeof_dylibloader_wrapper_asound)( void); +extern int (*snd_mixer_class_malloc_dylibloader_wrapper_asound)( snd_mixer_class_t**); +extern void (*snd_mixer_class_free_dylibloader_wrapper_asound)( snd_mixer_class_t*); +extern void (*snd_mixer_class_copy_dylibloader_wrapper_asound)( snd_mixer_class_t*,const snd_mixer_class_t*); +extern snd_mixer_t* (*snd_mixer_class_get_mixer_dylibloader_wrapper_asound)(const snd_mixer_class_t*); +extern snd_mixer_event_t (*snd_mixer_class_get_event_dylibloader_wrapper_asound)(const snd_mixer_class_t*); +extern void* (*snd_mixer_class_get_private_dylibloader_wrapper_asound)(const snd_mixer_class_t*); +extern snd_mixer_compare_t (*snd_mixer_class_get_compare_dylibloader_wrapper_asound)(const snd_mixer_class_t*); +extern int (*snd_mixer_class_set_event_dylibloader_wrapper_asound)( snd_mixer_class_t*, snd_mixer_event_t); +extern int (*snd_mixer_class_set_private_dylibloader_wrapper_asound)( snd_mixer_class_t*, void*); +extern int (*snd_mixer_class_set_private_free_dylibloader_wrapper_asound)( snd_mixer_class_t*, void*); +extern int (*snd_mixer_class_set_compare_dylibloader_wrapper_asound)( snd_mixer_class_t*, snd_mixer_compare_t); +extern const char* (*snd_mixer_selem_channel_name_dylibloader_wrapper_asound)( snd_mixer_selem_channel_id_t); +extern int (*snd_mixer_selem_register_dylibloader_wrapper_asound)( snd_mixer_t*,struct snd_mixer_selem_regopt*, snd_mixer_class_t**); +extern void (*snd_mixer_selem_get_id_dylibloader_wrapper_asound)( snd_mixer_elem_t*, snd_mixer_selem_id_t*); +extern const char* (*snd_mixer_selem_get_name_dylibloader_wrapper_asound)( snd_mixer_elem_t*); +extern unsigned int (*snd_mixer_selem_get_index_dylibloader_wrapper_asound)( snd_mixer_elem_t*); +extern snd_mixer_elem_t* (*snd_mixer_find_selem_dylibloader_wrapper_asound)( snd_mixer_t*,const snd_mixer_selem_id_t*); +extern int (*snd_mixer_selem_is_active_dylibloader_wrapper_asound)( snd_mixer_elem_t*); +extern int (*snd_mixer_selem_is_playback_mono_dylibloader_wrapper_asound)( snd_mixer_elem_t*); +extern int (*snd_mixer_selem_has_playback_channel_dylibloader_wrapper_asound)( snd_mixer_elem_t*, snd_mixer_selem_channel_id_t); +extern int (*snd_mixer_selem_is_capture_mono_dylibloader_wrapper_asound)( snd_mixer_elem_t*); +extern int (*snd_mixer_selem_has_capture_channel_dylibloader_wrapper_asound)( snd_mixer_elem_t*, snd_mixer_selem_channel_id_t); +extern int (*snd_mixer_selem_get_capture_group_dylibloader_wrapper_asound)( snd_mixer_elem_t*); +extern int (*snd_mixer_selem_has_common_volume_dylibloader_wrapper_asound)( snd_mixer_elem_t*); +extern int (*snd_mixer_selem_has_playback_volume_dylibloader_wrapper_asound)( snd_mixer_elem_t*); +extern int (*snd_mixer_selem_has_playback_volume_joined_dylibloader_wrapper_asound)( snd_mixer_elem_t*); +extern int (*snd_mixer_selem_has_capture_volume_dylibloader_wrapper_asound)( snd_mixer_elem_t*); +extern int (*snd_mixer_selem_has_capture_volume_joined_dylibloader_wrapper_asound)( snd_mixer_elem_t*); +extern int (*snd_mixer_selem_has_common_switch_dylibloader_wrapper_asound)( snd_mixer_elem_t*); +extern int (*snd_mixer_selem_has_playback_switch_dylibloader_wrapper_asound)( snd_mixer_elem_t*); +extern int (*snd_mixer_selem_has_playback_switch_joined_dylibloader_wrapper_asound)( snd_mixer_elem_t*); +extern int (*snd_mixer_selem_has_capture_switch_dylibloader_wrapper_asound)( snd_mixer_elem_t*); +extern int (*snd_mixer_selem_has_capture_switch_joined_dylibloader_wrapper_asound)( snd_mixer_elem_t*); +extern int (*snd_mixer_selem_has_capture_switch_exclusive_dylibloader_wrapper_asound)( snd_mixer_elem_t*); +extern int (*snd_mixer_selem_ask_playback_vol_dB_dylibloader_wrapper_asound)( snd_mixer_elem_t*, long, long*); +extern int (*snd_mixer_selem_ask_capture_vol_dB_dylibloader_wrapper_asound)( snd_mixer_elem_t*, long, long*); +extern int (*snd_mixer_selem_ask_playback_dB_vol_dylibloader_wrapper_asound)( snd_mixer_elem_t*, long, int, long*); +extern int (*snd_mixer_selem_ask_capture_dB_vol_dylibloader_wrapper_asound)( snd_mixer_elem_t*, long, int, long*); +extern int (*snd_mixer_selem_get_playback_volume_dylibloader_wrapper_asound)( snd_mixer_elem_t*, snd_mixer_selem_channel_id_t, long*); +extern int (*snd_mixer_selem_get_capture_volume_dylibloader_wrapper_asound)( snd_mixer_elem_t*, snd_mixer_selem_channel_id_t, long*); +extern int (*snd_mixer_selem_get_playback_dB_dylibloader_wrapper_asound)( snd_mixer_elem_t*, snd_mixer_selem_channel_id_t, long*); +extern int (*snd_mixer_selem_get_capture_dB_dylibloader_wrapper_asound)( snd_mixer_elem_t*, snd_mixer_selem_channel_id_t, long*); +extern int (*snd_mixer_selem_get_playback_switch_dylibloader_wrapper_asound)( snd_mixer_elem_t*, snd_mixer_selem_channel_id_t, int*); +extern int (*snd_mixer_selem_get_capture_switch_dylibloader_wrapper_asound)( snd_mixer_elem_t*, snd_mixer_selem_channel_id_t, int*); +extern int (*snd_mixer_selem_set_playback_volume_dylibloader_wrapper_asound)( snd_mixer_elem_t*, snd_mixer_selem_channel_id_t, long); +extern int (*snd_mixer_selem_set_capture_volume_dylibloader_wrapper_asound)( snd_mixer_elem_t*, snd_mixer_selem_channel_id_t, long); +extern int (*snd_mixer_selem_set_playback_dB_dylibloader_wrapper_asound)( snd_mixer_elem_t*, snd_mixer_selem_channel_id_t, long, int); +extern int (*snd_mixer_selem_set_capture_dB_dylibloader_wrapper_asound)( snd_mixer_elem_t*, snd_mixer_selem_channel_id_t, long, int); +extern int (*snd_mixer_selem_set_playback_volume_all_dylibloader_wrapper_asound)( snd_mixer_elem_t*, long); +extern int (*snd_mixer_selem_set_capture_volume_all_dylibloader_wrapper_asound)( snd_mixer_elem_t*, long); +extern int (*snd_mixer_selem_set_playback_dB_all_dylibloader_wrapper_asound)( snd_mixer_elem_t*, long, int); +extern int (*snd_mixer_selem_set_capture_dB_all_dylibloader_wrapper_asound)( snd_mixer_elem_t*, long, int); +extern int (*snd_mixer_selem_set_playback_switch_dylibloader_wrapper_asound)( snd_mixer_elem_t*, snd_mixer_selem_channel_id_t, int); +extern int (*snd_mixer_selem_set_capture_switch_dylibloader_wrapper_asound)( snd_mixer_elem_t*, snd_mixer_selem_channel_id_t, int); +extern int (*snd_mixer_selem_set_playback_switch_all_dylibloader_wrapper_asound)( snd_mixer_elem_t*, int); +extern int (*snd_mixer_selem_set_capture_switch_all_dylibloader_wrapper_asound)( snd_mixer_elem_t*, int); +extern int (*snd_mixer_selem_get_playback_volume_range_dylibloader_wrapper_asound)( snd_mixer_elem_t*, long*, long*); +extern int (*snd_mixer_selem_get_playback_dB_range_dylibloader_wrapper_asound)( snd_mixer_elem_t*, long*, long*); +extern int (*snd_mixer_selem_set_playback_volume_range_dylibloader_wrapper_asound)( snd_mixer_elem_t*, long, long); +extern int (*snd_mixer_selem_get_capture_volume_range_dylibloader_wrapper_asound)( snd_mixer_elem_t*, long*, long*); +extern int (*snd_mixer_selem_get_capture_dB_range_dylibloader_wrapper_asound)( snd_mixer_elem_t*, long*, long*); +extern int (*snd_mixer_selem_set_capture_volume_range_dylibloader_wrapper_asound)( snd_mixer_elem_t*, long, long); +extern int (*snd_mixer_selem_is_enumerated_dylibloader_wrapper_asound)( snd_mixer_elem_t*); +extern int (*snd_mixer_selem_is_enum_playback_dylibloader_wrapper_asound)( snd_mixer_elem_t*); +extern int (*snd_mixer_selem_is_enum_capture_dylibloader_wrapper_asound)( snd_mixer_elem_t*); +extern int (*snd_mixer_selem_get_enum_items_dylibloader_wrapper_asound)( snd_mixer_elem_t*); +extern int (*snd_mixer_selem_get_enum_item_name_dylibloader_wrapper_asound)( snd_mixer_elem_t*, unsigned int, size_t, char*); +extern int (*snd_mixer_selem_get_enum_item_dylibloader_wrapper_asound)( snd_mixer_elem_t*, snd_mixer_selem_channel_id_t, unsigned int*); +extern int (*snd_mixer_selem_set_enum_item_dylibloader_wrapper_asound)( snd_mixer_elem_t*, snd_mixer_selem_channel_id_t, unsigned int); +extern size_t (*snd_mixer_selem_id_sizeof_dylibloader_wrapper_asound)( void); +extern int (*snd_mixer_selem_id_malloc_dylibloader_wrapper_asound)( snd_mixer_selem_id_t**); +extern void (*snd_mixer_selem_id_free_dylibloader_wrapper_asound)( snd_mixer_selem_id_t*); +extern void (*snd_mixer_selem_id_copy_dylibloader_wrapper_asound)( snd_mixer_selem_id_t*,const snd_mixer_selem_id_t*); +extern const char* (*snd_mixer_selem_id_get_name_dylibloader_wrapper_asound)(const snd_mixer_selem_id_t*); +extern unsigned int (*snd_mixer_selem_id_get_index_dylibloader_wrapper_asound)(const snd_mixer_selem_id_t*); +extern void (*snd_mixer_selem_id_set_name_dylibloader_wrapper_asound)( snd_mixer_selem_id_t*,const char*); +extern void (*snd_mixer_selem_id_set_index_dylibloader_wrapper_asound)( snd_mixer_selem_id_t*, unsigned int); +extern int (*snd_mixer_selem_id_parse_dylibloader_wrapper_asound)( snd_mixer_selem_id_t*,const char*); +extern int (*snd_seq_open_dylibloader_wrapper_asound)( snd_seq_t**,const char*, int, int); +extern int (*snd_seq_open_lconf_dylibloader_wrapper_asound)( snd_seq_t**,const char*, int, int, snd_config_t*); +extern const char* (*snd_seq_name_dylibloader_wrapper_asound)( snd_seq_t*); +extern snd_seq_type_t (*snd_seq_type_dylibloader_wrapper_asound)( snd_seq_t*); +extern int (*snd_seq_close_dylibloader_wrapper_asound)( snd_seq_t*); +extern int (*snd_seq_poll_descriptors_count_dylibloader_wrapper_asound)( snd_seq_t*, short); +extern int (*snd_seq_poll_descriptors_dylibloader_wrapper_asound)( snd_seq_t*,struct pollfd*, unsigned int, short); +extern int (*snd_seq_poll_descriptors_revents_dylibloader_wrapper_asound)( snd_seq_t*,struct pollfd*, unsigned int, unsigned short*); +extern int (*snd_seq_nonblock_dylibloader_wrapper_asound)( snd_seq_t*, int); +extern int (*snd_seq_client_id_dylibloader_wrapper_asound)( snd_seq_t*); +extern size_t (*snd_seq_get_output_buffer_size_dylibloader_wrapper_asound)( snd_seq_t*); +extern size_t (*snd_seq_get_input_buffer_size_dylibloader_wrapper_asound)( snd_seq_t*); +extern int (*snd_seq_set_output_buffer_size_dylibloader_wrapper_asound)( snd_seq_t*, size_t); +extern int (*snd_seq_set_input_buffer_size_dylibloader_wrapper_asound)( snd_seq_t*, size_t); +extern size_t (*snd_seq_system_info_sizeof_dylibloader_wrapper_asound)( void); +extern int (*snd_seq_system_info_malloc_dylibloader_wrapper_asound)( snd_seq_system_info_t**); +extern void (*snd_seq_system_info_free_dylibloader_wrapper_asound)( snd_seq_system_info_t*); +extern void (*snd_seq_system_info_copy_dylibloader_wrapper_asound)( snd_seq_system_info_t*,const snd_seq_system_info_t*); +extern int (*snd_seq_system_info_get_queues_dylibloader_wrapper_asound)(const snd_seq_system_info_t*); +extern int (*snd_seq_system_info_get_clients_dylibloader_wrapper_asound)(const snd_seq_system_info_t*); +extern int (*snd_seq_system_info_get_ports_dylibloader_wrapper_asound)(const snd_seq_system_info_t*); +extern int (*snd_seq_system_info_get_channels_dylibloader_wrapper_asound)(const snd_seq_system_info_t*); +extern int (*snd_seq_system_info_get_cur_clients_dylibloader_wrapper_asound)(const snd_seq_system_info_t*); +extern int (*snd_seq_system_info_get_cur_queues_dylibloader_wrapper_asound)(const snd_seq_system_info_t*); +extern int (*snd_seq_system_info_dylibloader_wrapper_asound)( snd_seq_t*, snd_seq_system_info_t*); +extern size_t (*snd_seq_client_info_sizeof_dylibloader_wrapper_asound)( void); +extern int (*snd_seq_client_info_malloc_dylibloader_wrapper_asound)( snd_seq_client_info_t**); +extern void (*snd_seq_client_info_free_dylibloader_wrapper_asound)( snd_seq_client_info_t*); +extern void (*snd_seq_client_info_copy_dylibloader_wrapper_asound)( snd_seq_client_info_t*,const snd_seq_client_info_t*); +extern int (*snd_seq_client_info_get_client_dylibloader_wrapper_asound)(const snd_seq_client_info_t*); +extern snd_seq_client_type_t (*snd_seq_client_info_get_type_dylibloader_wrapper_asound)(const snd_seq_client_info_t*); +extern const char* (*snd_seq_client_info_get_name_dylibloader_wrapper_asound)( snd_seq_client_info_t*); +extern int (*snd_seq_client_info_get_broadcast_filter_dylibloader_wrapper_asound)(const snd_seq_client_info_t*); +extern int (*snd_seq_client_info_get_error_bounce_dylibloader_wrapper_asound)(const snd_seq_client_info_t*); +extern int (*snd_seq_client_info_get_card_dylibloader_wrapper_asound)(const snd_seq_client_info_t*); +extern int (*snd_seq_client_info_get_pid_dylibloader_wrapper_asound)(const snd_seq_client_info_t*); +extern const unsigned char* (*snd_seq_client_info_get_event_filter_dylibloader_wrapper_asound)(const snd_seq_client_info_t*); +extern int (*snd_seq_client_info_get_num_ports_dylibloader_wrapper_asound)(const snd_seq_client_info_t*); +extern int (*snd_seq_client_info_get_event_lost_dylibloader_wrapper_asound)(const snd_seq_client_info_t*); +extern void (*snd_seq_client_info_set_client_dylibloader_wrapper_asound)( snd_seq_client_info_t*, int); +extern void (*snd_seq_client_info_set_name_dylibloader_wrapper_asound)( snd_seq_client_info_t*,const char*); +extern void (*snd_seq_client_info_set_broadcast_filter_dylibloader_wrapper_asound)( snd_seq_client_info_t*, int); +extern void (*snd_seq_client_info_set_error_bounce_dylibloader_wrapper_asound)( snd_seq_client_info_t*, int); +extern void (*snd_seq_client_info_set_event_filter_dylibloader_wrapper_asound)( snd_seq_client_info_t*, unsigned char*); +extern void (*snd_seq_client_info_event_filter_clear_dylibloader_wrapper_asound)( snd_seq_client_info_t*); +extern void (*snd_seq_client_info_event_filter_add_dylibloader_wrapper_asound)( snd_seq_client_info_t*, int); +extern void (*snd_seq_client_info_event_filter_del_dylibloader_wrapper_asound)( snd_seq_client_info_t*, int); +extern int (*snd_seq_client_info_event_filter_check_dylibloader_wrapper_asound)( snd_seq_client_info_t*, int); +extern int (*snd_seq_get_client_info_dylibloader_wrapper_asound)( snd_seq_t*, snd_seq_client_info_t*); +extern int (*snd_seq_get_any_client_info_dylibloader_wrapper_asound)( snd_seq_t*, int, snd_seq_client_info_t*); +extern int (*snd_seq_set_client_info_dylibloader_wrapper_asound)( snd_seq_t*, snd_seq_client_info_t*); +extern int (*snd_seq_query_next_client_dylibloader_wrapper_asound)( snd_seq_t*, snd_seq_client_info_t*); +extern size_t (*snd_seq_client_pool_sizeof_dylibloader_wrapper_asound)( void); +extern int (*snd_seq_client_pool_malloc_dylibloader_wrapper_asound)( snd_seq_client_pool_t**); +extern void (*snd_seq_client_pool_free_dylibloader_wrapper_asound)( snd_seq_client_pool_t*); +extern void (*snd_seq_client_pool_copy_dylibloader_wrapper_asound)( snd_seq_client_pool_t*,const snd_seq_client_pool_t*); +extern int (*snd_seq_client_pool_get_client_dylibloader_wrapper_asound)(const snd_seq_client_pool_t*); +extern size_t (*snd_seq_client_pool_get_output_pool_dylibloader_wrapper_asound)(const snd_seq_client_pool_t*); +extern size_t (*snd_seq_client_pool_get_input_pool_dylibloader_wrapper_asound)(const snd_seq_client_pool_t*); +extern size_t (*snd_seq_client_pool_get_output_room_dylibloader_wrapper_asound)(const snd_seq_client_pool_t*); +extern size_t (*snd_seq_client_pool_get_output_free_dylibloader_wrapper_asound)(const snd_seq_client_pool_t*); +extern size_t (*snd_seq_client_pool_get_input_free_dylibloader_wrapper_asound)(const snd_seq_client_pool_t*); +extern void (*snd_seq_client_pool_set_output_pool_dylibloader_wrapper_asound)( snd_seq_client_pool_t*, size_t); +extern void (*snd_seq_client_pool_set_input_pool_dylibloader_wrapper_asound)( snd_seq_client_pool_t*, size_t); +extern void (*snd_seq_client_pool_set_output_room_dylibloader_wrapper_asound)( snd_seq_client_pool_t*, size_t); +extern int (*snd_seq_get_client_pool_dylibloader_wrapper_asound)( snd_seq_t*, snd_seq_client_pool_t*); +extern int (*snd_seq_set_client_pool_dylibloader_wrapper_asound)( snd_seq_t*, snd_seq_client_pool_t*); +extern size_t (*snd_seq_port_info_sizeof_dylibloader_wrapper_asound)( void); +extern int (*snd_seq_port_info_malloc_dylibloader_wrapper_asound)( snd_seq_port_info_t**); +extern void (*snd_seq_port_info_free_dylibloader_wrapper_asound)( snd_seq_port_info_t*); +extern void (*snd_seq_port_info_copy_dylibloader_wrapper_asound)( snd_seq_port_info_t*,const snd_seq_port_info_t*); +extern int (*snd_seq_port_info_get_client_dylibloader_wrapper_asound)(const snd_seq_port_info_t*); +extern int (*snd_seq_port_info_get_port_dylibloader_wrapper_asound)(const snd_seq_port_info_t*); +extern const snd_seq_addr_t* (*snd_seq_port_info_get_addr_dylibloader_wrapper_asound)(const snd_seq_port_info_t*); +extern const char* (*snd_seq_port_info_get_name_dylibloader_wrapper_asound)(const snd_seq_port_info_t*); +extern unsigned int (*snd_seq_port_info_get_capability_dylibloader_wrapper_asound)(const snd_seq_port_info_t*); +extern unsigned int (*snd_seq_port_info_get_type_dylibloader_wrapper_asound)(const snd_seq_port_info_t*); +extern int (*snd_seq_port_info_get_midi_channels_dylibloader_wrapper_asound)(const snd_seq_port_info_t*); +extern int (*snd_seq_port_info_get_midi_voices_dylibloader_wrapper_asound)(const snd_seq_port_info_t*); +extern int (*snd_seq_port_info_get_synth_voices_dylibloader_wrapper_asound)(const snd_seq_port_info_t*); +extern int (*snd_seq_port_info_get_read_use_dylibloader_wrapper_asound)(const snd_seq_port_info_t*); +extern int (*snd_seq_port_info_get_write_use_dylibloader_wrapper_asound)(const snd_seq_port_info_t*); +extern int (*snd_seq_port_info_get_port_specified_dylibloader_wrapper_asound)(const snd_seq_port_info_t*); +extern int (*snd_seq_port_info_get_timestamping_dylibloader_wrapper_asound)(const snd_seq_port_info_t*); +extern int (*snd_seq_port_info_get_timestamp_real_dylibloader_wrapper_asound)(const snd_seq_port_info_t*); +extern int (*snd_seq_port_info_get_timestamp_queue_dylibloader_wrapper_asound)(const snd_seq_port_info_t*); +extern void (*snd_seq_port_info_set_client_dylibloader_wrapper_asound)( snd_seq_port_info_t*, int); +extern void (*snd_seq_port_info_set_port_dylibloader_wrapper_asound)( snd_seq_port_info_t*, int); +extern void (*snd_seq_port_info_set_addr_dylibloader_wrapper_asound)( snd_seq_port_info_t*,const snd_seq_addr_t*); +extern void (*snd_seq_port_info_set_name_dylibloader_wrapper_asound)( snd_seq_port_info_t*,const char*); +extern void (*snd_seq_port_info_set_capability_dylibloader_wrapper_asound)( snd_seq_port_info_t*, unsigned int); +extern void (*snd_seq_port_info_set_type_dylibloader_wrapper_asound)( snd_seq_port_info_t*, unsigned int); +extern void (*snd_seq_port_info_set_midi_channels_dylibloader_wrapper_asound)( snd_seq_port_info_t*, int); +extern void (*snd_seq_port_info_set_midi_voices_dylibloader_wrapper_asound)( snd_seq_port_info_t*, int); +extern void (*snd_seq_port_info_set_synth_voices_dylibloader_wrapper_asound)( snd_seq_port_info_t*, int); +extern void (*snd_seq_port_info_set_port_specified_dylibloader_wrapper_asound)( snd_seq_port_info_t*, int); +extern void (*snd_seq_port_info_set_timestamping_dylibloader_wrapper_asound)( snd_seq_port_info_t*, int); +extern void (*snd_seq_port_info_set_timestamp_real_dylibloader_wrapper_asound)( snd_seq_port_info_t*, int); +extern void (*snd_seq_port_info_set_timestamp_queue_dylibloader_wrapper_asound)( snd_seq_port_info_t*, int); +extern int (*snd_seq_create_port_dylibloader_wrapper_asound)( snd_seq_t*, snd_seq_port_info_t*); +extern int (*snd_seq_delete_port_dylibloader_wrapper_asound)( snd_seq_t*, int); +extern int (*snd_seq_get_port_info_dylibloader_wrapper_asound)( snd_seq_t*, int, snd_seq_port_info_t*); +extern int (*snd_seq_get_any_port_info_dylibloader_wrapper_asound)( snd_seq_t*, int, int, snd_seq_port_info_t*); +extern int (*snd_seq_set_port_info_dylibloader_wrapper_asound)( snd_seq_t*, int, snd_seq_port_info_t*); +extern int (*snd_seq_query_next_port_dylibloader_wrapper_asound)( snd_seq_t*, snd_seq_port_info_t*); +extern size_t (*snd_seq_port_subscribe_sizeof_dylibloader_wrapper_asound)( void); +extern int (*snd_seq_port_subscribe_malloc_dylibloader_wrapper_asound)( snd_seq_port_subscribe_t**); +extern void (*snd_seq_port_subscribe_free_dylibloader_wrapper_asound)( snd_seq_port_subscribe_t*); +extern void (*snd_seq_port_subscribe_copy_dylibloader_wrapper_asound)( snd_seq_port_subscribe_t*,const snd_seq_port_subscribe_t*); +extern const snd_seq_addr_t* (*snd_seq_port_subscribe_get_sender_dylibloader_wrapper_asound)(const snd_seq_port_subscribe_t*); +extern const snd_seq_addr_t* (*snd_seq_port_subscribe_get_dest_dylibloader_wrapper_asound)(const snd_seq_port_subscribe_t*); +extern int (*snd_seq_port_subscribe_get_queue_dylibloader_wrapper_asound)(const snd_seq_port_subscribe_t*); +extern int (*snd_seq_port_subscribe_get_exclusive_dylibloader_wrapper_asound)(const snd_seq_port_subscribe_t*); +extern int (*snd_seq_port_subscribe_get_time_update_dylibloader_wrapper_asound)(const snd_seq_port_subscribe_t*); +extern int (*snd_seq_port_subscribe_get_time_real_dylibloader_wrapper_asound)(const snd_seq_port_subscribe_t*); +extern void (*snd_seq_port_subscribe_set_sender_dylibloader_wrapper_asound)( snd_seq_port_subscribe_t*,const snd_seq_addr_t*); +extern void (*snd_seq_port_subscribe_set_dest_dylibloader_wrapper_asound)( snd_seq_port_subscribe_t*,const snd_seq_addr_t*); +extern void (*snd_seq_port_subscribe_set_queue_dylibloader_wrapper_asound)( snd_seq_port_subscribe_t*, int); +extern void (*snd_seq_port_subscribe_set_exclusive_dylibloader_wrapper_asound)( snd_seq_port_subscribe_t*, int); +extern void (*snd_seq_port_subscribe_set_time_update_dylibloader_wrapper_asound)( snd_seq_port_subscribe_t*, int); +extern void (*snd_seq_port_subscribe_set_time_real_dylibloader_wrapper_asound)( snd_seq_port_subscribe_t*, int); +extern int (*snd_seq_get_port_subscription_dylibloader_wrapper_asound)( snd_seq_t*, snd_seq_port_subscribe_t*); +extern int (*snd_seq_subscribe_port_dylibloader_wrapper_asound)( snd_seq_t*, snd_seq_port_subscribe_t*); +extern int (*snd_seq_unsubscribe_port_dylibloader_wrapper_asound)( snd_seq_t*, snd_seq_port_subscribe_t*); +extern size_t (*snd_seq_query_subscribe_sizeof_dylibloader_wrapper_asound)( void); +extern int (*snd_seq_query_subscribe_malloc_dylibloader_wrapper_asound)( snd_seq_query_subscribe_t**); +extern void (*snd_seq_query_subscribe_free_dylibloader_wrapper_asound)( snd_seq_query_subscribe_t*); +extern void (*snd_seq_query_subscribe_copy_dylibloader_wrapper_asound)( snd_seq_query_subscribe_t*,const snd_seq_query_subscribe_t*); +extern int (*snd_seq_query_subscribe_get_client_dylibloader_wrapper_asound)(const snd_seq_query_subscribe_t*); +extern int (*snd_seq_query_subscribe_get_port_dylibloader_wrapper_asound)(const snd_seq_query_subscribe_t*); +extern const snd_seq_addr_t* (*snd_seq_query_subscribe_get_root_dylibloader_wrapper_asound)(const snd_seq_query_subscribe_t*); +extern snd_seq_query_subs_type_t (*snd_seq_query_subscribe_get_type_dylibloader_wrapper_asound)(const snd_seq_query_subscribe_t*); +extern int (*snd_seq_query_subscribe_get_index_dylibloader_wrapper_asound)(const snd_seq_query_subscribe_t*); +extern int (*snd_seq_query_subscribe_get_num_subs_dylibloader_wrapper_asound)(const snd_seq_query_subscribe_t*); +extern const snd_seq_addr_t* (*snd_seq_query_subscribe_get_addr_dylibloader_wrapper_asound)(const snd_seq_query_subscribe_t*); +extern int (*snd_seq_query_subscribe_get_queue_dylibloader_wrapper_asound)(const snd_seq_query_subscribe_t*); +extern int (*snd_seq_query_subscribe_get_exclusive_dylibloader_wrapper_asound)(const snd_seq_query_subscribe_t*); +extern int (*snd_seq_query_subscribe_get_time_update_dylibloader_wrapper_asound)(const snd_seq_query_subscribe_t*); +extern int (*snd_seq_query_subscribe_get_time_real_dylibloader_wrapper_asound)(const snd_seq_query_subscribe_t*); +extern void (*snd_seq_query_subscribe_set_client_dylibloader_wrapper_asound)( snd_seq_query_subscribe_t*, int); +extern void (*snd_seq_query_subscribe_set_port_dylibloader_wrapper_asound)( snd_seq_query_subscribe_t*, int); +extern void (*snd_seq_query_subscribe_set_root_dylibloader_wrapper_asound)( snd_seq_query_subscribe_t*,const snd_seq_addr_t*); +extern void (*snd_seq_query_subscribe_set_type_dylibloader_wrapper_asound)( snd_seq_query_subscribe_t*, snd_seq_query_subs_type_t); +extern void (*snd_seq_query_subscribe_set_index_dylibloader_wrapper_asound)( snd_seq_query_subscribe_t*, int); +extern int (*snd_seq_query_port_subscribers_dylibloader_wrapper_asound)( snd_seq_t*, snd_seq_query_subscribe_t*); +extern size_t (*snd_seq_queue_info_sizeof_dylibloader_wrapper_asound)( void); +extern int (*snd_seq_queue_info_malloc_dylibloader_wrapper_asound)( snd_seq_queue_info_t**); +extern void (*snd_seq_queue_info_free_dylibloader_wrapper_asound)( snd_seq_queue_info_t*); +extern void (*snd_seq_queue_info_copy_dylibloader_wrapper_asound)( snd_seq_queue_info_t*,const snd_seq_queue_info_t*); +extern int (*snd_seq_queue_info_get_queue_dylibloader_wrapper_asound)(const snd_seq_queue_info_t*); +extern const char* (*snd_seq_queue_info_get_name_dylibloader_wrapper_asound)(const snd_seq_queue_info_t*); +extern int (*snd_seq_queue_info_get_owner_dylibloader_wrapper_asound)(const snd_seq_queue_info_t*); +extern int (*snd_seq_queue_info_get_locked_dylibloader_wrapper_asound)(const snd_seq_queue_info_t*); +extern unsigned int (*snd_seq_queue_info_get_flags_dylibloader_wrapper_asound)(const snd_seq_queue_info_t*); +extern void (*snd_seq_queue_info_set_name_dylibloader_wrapper_asound)( snd_seq_queue_info_t*,const char*); +extern void (*snd_seq_queue_info_set_owner_dylibloader_wrapper_asound)( snd_seq_queue_info_t*, int); +extern void (*snd_seq_queue_info_set_locked_dylibloader_wrapper_asound)( snd_seq_queue_info_t*, int); +extern void (*snd_seq_queue_info_set_flags_dylibloader_wrapper_asound)( snd_seq_queue_info_t*, unsigned int); +extern int (*snd_seq_create_queue_dylibloader_wrapper_asound)( snd_seq_t*, snd_seq_queue_info_t*); +extern int (*snd_seq_alloc_named_queue_dylibloader_wrapper_asound)( snd_seq_t*,const char*); +extern int (*snd_seq_alloc_queue_dylibloader_wrapper_asound)( snd_seq_t*); +extern int (*snd_seq_free_queue_dylibloader_wrapper_asound)( snd_seq_t*, int); +extern int (*snd_seq_get_queue_info_dylibloader_wrapper_asound)( snd_seq_t*, int, snd_seq_queue_info_t*); +extern int (*snd_seq_set_queue_info_dylibloader_wrapper_asound)( snd_seq_t*, int, snd_seq_queue_info_t*); +extern int (*snd_seq_query_named_queue_dylibloader_wrapper_asound)( snd_seq_t*,const char*); +extern int (*snd_seq_get_queue_usage_dylibloader_wrapper_asound)( snd_seq_t*, int); +extern int (*snd_seq_set_queue_usage_dylibloader_wrapper_asound)( snd_seq_t*, int, int); +extern size_t (*snd_seq_queue_status_sizeof_dylibloader_wrapper_asound)( void); +extern int (*snd_seq_queue_status_malloc_dylibloader_wrapper_asound)( snd_seq_queue_status_t**); +extern void (*snd_seq_queue_status_free_dylibloader_wrapper_asound)( snd_seq_queue_status_t*); +extern void (*snd_seq_queue_status_copy_dylibloader_wrapper_asound)( snd_seq_queue_status_t*,const snd_seq_queue_status_t*); +extern int (*snd_seq_queue_status_get_queue_dylibloader_wrapper_asound)(const snd_seq_queue_status_t*); +extern int (*snd_seq_queue_status_get_events_dylibloader_wrapper_asound)(const snd_seq_queue_status_t*); +extern snd_seq_tick_time_t (*snd_seq_queue_status_get_tick_time_dylibloader_wrapper_asound)(const snd_seq_queue_status_t*); +extern const snd_seq_real_time_t* (*snd_seq_queue_status_get_real_time_dylibloader_wrapper_asound)(const snd_seq_queue_status_t*); +extern unsigned int (*snd_seq_queue_status_get_status_dylibloader_wrapper_asound)(const snd_seq_queue_status_t*); +extern int (*snd_seq_get_queue_status_dylibloader_wrapper_asound)( snd_seq_t*, int, snd_seq_queue_status_t*); +extern size_t (*snd_seq_queue_tempo_sizeof_dylibloader_wrapper_asound)( void); +extern int (*snd_seq_queue_tempo_malloc_dylibloader_wrapper_asound)( snd_seq_queue_tempo_t**); +extern void (*snd_seq_queue_tempo_free_dylibloader_wrapper_asound)( snd_seq_queue_tempo_t*); +extern void (*snd_seq_queue_tempo_copy_dylibloader_wrapper_asound)( snd_seq_queue_tempo_t*,const snd_seq_queue_tempo_t*); +extern int (*snd_seq_queue_tempo_get_queue_dylibloader_wrapper_asound)(const snd_seq_queue_tempo_t*); +extern unsigned int (*snd_seq_queue_tempo_get_tempo_dylibloader_wrapper_asound)(const snd_seq_queue_tempo_t*); +extern int (*snd_seq_queue_tempo_get_ppq_dylibloader_wrapper_asound)(const snd_seq_queue_tempo_t*); +extern unsigned int (*snd_seq_queue_tempo_get_skew_dylibloader_wrapper_asound)(const snd_seq_queue_tempo_t*); +extern unsigned int (*snd_seq_queue_tempo_get_skew_base_dylibloader_wrapper_asound)(const snd_seq_queue_tempo_t*); +extern void (*snd_seq_queue_tempo_set_tempo_dylibloader_wrapper_asound)( snd_seq_queue_tempo_t*, unsigned int); +extern void (*snd_seq_queue_tempo_set_ppq_dylibloader_wrapper_asound)( snd_seq_queue_tempo_t*, int); +extern void (*snd_seq_queue_tempo_set_skew_dylibloader_wrapper_asound)( snd_seq_queue_tempo_t*, unsigned int); +extern void (*snd_seq_queue_tempo_set_skew_base_dylibloader_wrapper_asound)( snd_seq_queue_tempo_t*, unsigned int); +extern int (*snd_seq_get_queue_tempo_dylibloader_wrapper_asound)( snd_seq_t*, int, snd_seq_queue_tempo_t*); +extern int (*snd_seq_set_queue_tempo_dylibloader_wrapper_asound)( snd_seq_t*, int, snd_seq_queue_tempo_t*); +extern size_t (*snd_seq_queue_timer_sizeof_dylibloader_wrapper_asound)( void); +extern int (*snd_seq_queue_timer_malloc_dylibloader_wrapper_asound)( snd_seq_queue_timer_t**); +extern void (*snd_seq_queue_timer_free_dylibloader_wrapper_asound)( snd_seq_queue_timer_t*); +extern void (*snd_seq_queue_timer_copy_dylibloader_wrapper_asound)( snd_seq_queue_timer_t*,const snd_seq_queue_timer_t*); +extern int (*snd_seq_queue_timer_get_queue_dylibloader_wrapper_asound)(const snd_seq_queue_timer_t*); +extern snd_seq_queue_timer_type_t (*snd_seq_queue_timer_get_type_dylibloader_wrapper_asound)(const snd_seq_queue_timer_t*); +extern const snd_timer_id_t* (*snd_seq_queue_timer_get_id_dylibloader_wrapper_asound)(const snd_seq_queue_timer_t*); +extern unsigned int (*snd_seq_queue_timer_get_resolution_dylibloader_wrapper_asound)(const snd_seq_queue_timer_t*); +extern void (*snd_seq_queue_timer_set_type_dylibloader_wrapper_asound)( snd_seq_queue_timer_t*, snd_seq_queue_timer_type_t); +extern void (*snd_seq_queue_timer_set_id_dylibloader_wrapper_asound)( snd_seq_queue_timer_t*,const snd_timer_id_t*); +extern void (*snd_seq_queue_timer_set_resolution_dylibloader_wrapper_asound)( snd_seq_queue_timer_t*, unsigned int); +extern int (*snd_seq_get_queue_timer_dylibloader_wrapper_asound)( snd_seq_t*, int, snd_seq_queue_timer_t*); +extern int (*snd_seq_set_queue_timer_dylibloader_wrapper_asound)( snd_seq_t*, int, snd_seq_queue_timer_t*); +extern int (*snd_seq_free_event_dylibloader_wrapper_asound)( snd_seq_event_t*); +extern ssize_t (*snd_seq_event_length_dylibloader_wrapper_asound)( snd_seq_event_t*); +extern int (*snd_seq_event_output_dylibloader_wrapper_asound)( snd_seq_t*, snd_seq_event_t*); +extern int (*snd_seq_event_output_buffer_dylibloader_wrapper_asound)( snd_seq_t*, snd_seq_event_t*); +extern int (*snd_seq_event_output_direct_dylibloader_wrapper_asound)( snd_seq_t*, snd_seq_event_t*); +extern int (*snd_seq_event_input_dylibloader_wrapper_asound)( snd_seq_t*, snd_seq_event_t**); +extern int (*snd_seq_event_input_pending_dylibloader_wrapper_asound)( snd_seq_t*, int); +extern int (*snd_seq_drain_output_dylibloader_wrapper_asound)( snd_seq_t*); +extern int (*snd_seq_event_output_pending_dylibloader_wrapper_asound)( snd_seq_t*); +extern int (*snd_seq_extract_output_dylibloader_wrapper_asound)( snd_seq_t*, snd_seq_event_t**); +extern int (*snd_seq_drop_output_dylibloader_wrapper_asound)( snd_seq_t*); +extern int (*snd_seq_drop_output_buffer_dylibloader_wrapper_asound)( snd_seq_t*); +extern int (*snd_seq_drop_input_dylibloader_wrapper_asound)( snd_seq_t*); +extern int (*snd_seq_drop_input_buffer_dylibloader_wrapper_asound)( snd_seq_t*); +extern size_t (*snd_seq_remove_events_sizeof_dylibloader_wrapper_asound)( void); +extern int (*snd_seq_remove_events_malloc_dylibloader_wrapper_asound)( snd_seq_remove_events_t**); +extern void (*snd_seq_remove_events_free_dylibloader_wrapper_asound)( snd_seq_remove_events_t*); +extern void (*snd_seq_remove_events_copy_dylibloader_wrapper_asound)( snd_seq_remove_events_t*,const snd_seq_remove_events_t*); +extern unsigned int (*snd_seq_remove_events_get_condition_dylibloader_wrapper_asound)(const snd_seq_remove_events_t*); +extern int (*snd_seq_remove_events_get_queue_dylibloader_wrapper_asound)(const snd_seq_remove_events_t*); +extern const snd_seq_timestamp_t* (*snd_seq_remove_events_get_time_dylibloader_wrapper_asound)(const snd_seq_remove_events_t*); +extern const snd_seq_addr_t* (*snd_seq_remove_events_get_dest_dylibloader_wrapper_asound)(const snd_seq_remove_events_t*); +extern int (*snd_seq_remove_events_get_channel_dylibloader_wrapper_asound)(const snd_seq_remove_events_t*); +extern int (*snd_seq_remove_events_get_event_type_dylibloader_wrapper_asound)(const snd_seq_remove_events_t*); +extern int (*snd_seq_remove_events_get_tag_dylibloader_wrapper_asound)(const snd_seq_remove_events_t*); +extern void (*snd_seq_remove_events_set_condition_dylibloader_wrapper_asound)( snd_seq_remove_events_t*, unsigned int); +extern void (*snd_seq_remove_events_set_queue_dylibloader_wrapper_asound)( snd_seq_remove_events_t*, int); +extern void (*snd_seq_remove_events_set_time_dylibloader_wrapper_asound)( snd_seq_remove_events_t*,const snd_seq_timestamp_t*); +extern void (*snd_seq_remove_events_set_dest_dylibloader_wrapper_asound)( snd_seq_remove_events_t*,const snd_seq_addr_t*); +extern void (*snd_seq_remove_events_set_channel_dylibloader_wrapper_asound)( snd_seq_remove_events_t*, int); +extern void (*snd_seq_remove_events_set_event_type_dylibloader_wrapper_asound)( snd_seq_remove_events_t*, int); +extern void (*snd_seq_remove_events_set_tag_dylibloader_wrapper_asound)( snd_seq_remove_events_t*, int); +extern int (*snd_seq_remove_events_dylibloader_wrapper_asound)( snd_seq_t*, snd_seq_remove_events_t*); +extern void (*snd_seq_set_bit_dylibloader_wrapper_asound)( int, void*); +extern void (*snd_seq_unset_bit_dylibloader_wrapper_asound)( int, void*); +extern int (*snd_seq_change_bit_dylibloader_wrapper_asound)( int, void*); +extern int (*snd_seq_get_bit_dylibloader_wrapper_asound)( int, void*); +extern int (*snd_seq_control_queue_dylibloader_wrapper_asound)( snd_seq_t*, int, int, int, snd_seq_event_t*); +extern int (*snd_seq_create_simple_port_dylibloader_wrapper_asound)( snd_seq_t*,const char*, unsigned int, unsigned int); +extern int (*snd_seq_delete_simple_port_dylibloader_wrapper_asound)( snd_seq_t*, int); +extern int (*snd_seq_connect_from_dylibloader_wrapper_asound)( snd_seq_t*, int, int, int); +extern int (*snd_seq_connect_to_dylibloader_wrapper_asound)( snd_seq_t*, int, int, int); +extern int (*snd_seq_disconnect_from_dylibloader_wrapper_asound)( snd_seq_t*, int, int, int); +extern int (*snd_seq_disconnect_to_dylibloader_wrapper_asound)( snd_seq_t*, int, int, int); +extern int (*snd_seq_set_client_name_dylibloader_wrapper_asound)( snd_seq_t*,const char*); +extern int (*snd_seq_set_client_event_filter_dylibloader_wrapper_asound)( snd_seq_t*, int); +extern int (*snd_seq_set_client_pool_output_dylibloader_wrapper_asound)( snd_seq_t*, size_t); +extern int (*snd_seq_set_client_pool_output_room_dylibloader_wrapper_asound)( snd_seq_t*, size_t); +extern int (*snd_seq_set_client_pool_input_dylibloader_wrapper_asound)( snd_seq_t*, size_t); +extern int (*snd_seq_sync_output_queue_dylibloader_wrapper_asound)( snd_seq_t*); +extern int (*snd_seq_parse_address_dylibloader_wrapper_asound)( snd_seq_t*, snd_seq_addr_t*,const char*); +extern int (*snd_seq_reset_pool_output_dylibloader_wrapper_asound)( snd_seq_t*); +extern int (*snd_seq_reset_pool_input_dylibloader_wrapper_asound)( snd_seq_t*); +extern int (*snd_midi_event_new_dylibloader_wrapper_asound)( size_t, snd_midi_event_t**); +extern int (*snd_midi_event_resize_buffer_dylibloader_wrapper_asound)( snd_midi_event_t*, size_t); +extern void (*snd_midi_event_free_dylibloader_wrapper_asound)( snd_midi_event_t*); +extern void (*snd_midi_event_init_dylibloader_wrapper_asound)( snd_midi_event_t*); +extern void (*snd_midi_event_reset_encode_dylibloader_wrapper_asound)( snd_midi_event_t*); +extern void (*snd_midi_event_reset_decode_dylibloader_wrapper_asound)( snd_midi_event_t*); +extern void (*snd_midi_event_no_status_dylibloader_wrapper_asound)( snd_midi_event_t*, int); +extern long (*snd_midi_event_encode_dylibloader_wrapper_asound)( snd_midi_event_t*,const unsigned char*, long, snd_seq_event_t*); +extern int (*snd_midi_event_encode_byte_dylibloader_wrapper_asound)( snd_midi_event_t*, int, snd_seq_event_t*); +extern long (*snd_midi_event_decode_dylibloader_wrapper_asound)( snd_midi_event_t*, unsigned char*, long,const snd_seq_event_t*); +int initialize_asound(); +#ifdef __cplusplus +} +#endif +#endif diff --git a/drivers/alsa/audio_driver_alsa.cpp b/drivers/alsa/audio_driver_alsa.cpp index ea0cba6c52..bc6079f314 100644 --- a/drivers/alsa/audio_driver_alsa.cpp +++ b/drivers/alsa/audio_driver_alsa.cpp @@ -37,8 +37,14 @@ #include <errno.h> +#ifdef PULSEAUDIO_ENABLED +extern "C" { +extern int initialize_pulse(); +} +#endif + Error AudioDriverALSA::init_device() { - mix_rate = GLOBAL_GET("audio/mix_rate"); + mix_rate = GLOBAL_GET("audio/driver/mix_rate"); speaker_mode = SPEAKER_MODE_STEREO; channels = 2; @@ -104,7 +110,7 @@ Error AudioDriverALSA::init_device() { // In ALSA the period size seems to be the one that will determine the actual latency // Ref: https://www.alsa-project.org/main/index.php/FramesPeriods unsigned int periods = 2; - int latency = GLOBAL_GET("audio/output_latency"); + int latency = GLOBAL_GET("audio/driver/output_latency"); buffer_frames = closest_power_of_2(latency * mix_rate / 1000); buffer_size = buffer_frames * periods; period_size = buffer_frames; @@ -147,6 +153,16 @@ Error AudioDriverALSA::init_device() { } Error AudioDriverALSA::init() { +#ifdef PULSEAUDIO_ENABLED + // On pulse enabled systems Alsa will silently use pulse. + // It doesn't matter if this fails as that likely means there is no pulse + initialize_pulse(); +#endif + + if (initialize_asound()) { + return ERR_CANT_OPEN; + } + active = false; thread_exited = false; exit_thread = false; diff --git a/drivers/alsa/audio_driver_alsa.h b/drivers/alsa/audio_driver_alsa.h index c0233f41e1..ca97e76bc2 100644 --- a/drivers/alsa/audio_driver_alsa.h +++ b/drivers/alsa/audio_driver_alsa.h @@ -37,7 +37,7 @@ #include "core/os/thread.h" #include "servers/audio_server.h" -#include <alsa/asoundlib.h> +#include "asound-so_wrap.h" class AudioDriverALSA : public AudioDriver { Thread thread; diff --git a/drivers/alsamidi/midi_driver_alsamidi.h b/drivers/alsamidi/midi_driver_alsamidi.h index 474f139bd6..c327712ee7 100644 --- a/drivers/alsamidi/midi_driver_alsamidi.h +++ b/drivers/alsamidi/midi_driver_alsamidi.h @@ -38,7 +38,7 @@ #include "core/os/thread.h" #include "core/templates/vector.h" -#include <alsa/asoundlib.h> +#include "../alsa/asound-so_wrap.h" #include <stdio.h> class MIDIDriverALSAMidi : public MIDIDriver { diff --git a/drivers/coreaudio/audio_driver_coreaudio.cpp b/drivers/coreaudio/audio_driver_coreaudio.cpp index 6f88107086..baa60f5526 100644 --- a/drivers/coreaudio/audio_driver_coreaudio.cpp +++ b/drivers/coreaudio/audio_driver_coreaudio.cpp @@ -116,7 +116,7 @@ Error AudioDriverCoreAudio::init() { break; } - mix_rate = GLOBAL_GET("audio/mix_rate"); + mix_rate = GLOBAL_GET("audio/driver/mix_rate"); zeromem(&strdesc, sizeof(strdesc)); strdesc.mFormatID = kAudioFormatLinearPCM; @@ -131,7 +131,7 @@ Error AudioDriverCoreAudio::init() { result = AudioUnitSetProperty(audio_unit, kAudioUnitProperty_StreamFormat, kAudioUnitScope_Input, kOutputBus, &strdesc, sizeof(strdesc)); ERR_FAIL_COND_V(result != noErr, FAILED); - int latency = GLOBAL_GET("audio/output_latency"); + int latency = GLOBAL_GET("audio/driver/output_latency"); // Sample rate is independent of channels (ref: https://stackoverflow.com/questions/11048825/audio-sample-frequency-rely-on-channels) buffer_frames = closest_power_of_2(latency * mix_rate / 1000); @@ -157,7 +157,7 @@ Error AudioDriverCoreAudio::init() { result = AudioUnitInitialize(audio_unit); ERR_FAIL_COND_V(result != noErr, FAILED); - if (GLOBAL_GET("audio/enable_audio_input")) { + if (GLOBAL_GET("audio/driver/enable_input")) { return capture_init(); } return OK; @@ -403,7 +403,7 @@ Error AudioDriverCoreAudio::capture_init() { break; } - mix_rate = GLOBAL_GET("audio/mix_rate"); + mix_rate = GLOBAL_GET("audio/driver/mix_rate"); zeromem(&strdesc, sizeof(strdesc)); strdesc.mFormatID = kAudioFormatLinearPCM; diff --git a/drivers/dummy/rasterizer_dummy.h b/drivers/dummy/rasterizer_dummy.h index 082f247476..a76520dcdb 100644 --- a/drivers/dummy/rasterizer_dummy.h +++ b/drivers/dummy/rasterizer_dummy.h @@ -210,8 +210,22 @@ public: bool can_create_resources_async() const override { return false; } /* TEXTURE API */ - RID texture_allocate() override { return RID(); } - void texture_2d_initialize(RID p_texture, const Ref<Image> &p_image) override {} + struct DummyTexture { + Ref<Image> image; + }; + mutable RID_PtrOwner<DummyTexture> texture_owner; + + RID texture_allocate() override { + DummyTexture *texture = memnew(DummyTexture); + ERR_FAIL_COND_V(!texture, RID()); + return texture_owner.make_rid(texture); + } + void texture_2d_initialize(RID p_texture, const Ref<Image> &p_image) override { + DummyTexture *t = texture_owner.getornull(p_texture); + ERR_FAIL_COND(!t); + t->image = p_image->duplicate(); + } + void texture_2d_layered_initialize(RID p_texture, const Vector<Ref<Image>> &p_layers, RS::TextureLayeredType p_layered_type) override {} void texture_2d_update_immediate(RID p_texture, const Ref<Image> &p_image, int p_layer = 0) override {} void texture_2d_update(RID p_texture, const Ref<Image> &p_image, int p_layer = 0) override {} @@ -224,7 +238,12 @@ public: void texture_2d_layered_placeholder_initialize(RID p_texture, RenderingServer::TextureLayeredType p_layered_type) override {} void texture_3d_placeholder_initialize(RID p_texture) override {} - Ref<Image> texture_2d_get(RID p_texture) const override { return Ref<Image>(); } + Ref<Image> texture_2d_get(RID p_texture) const override { + DummyTexture *t = texture_owner.getornull(p_texture); + ERR_FAIL_COND_V(!t, Ref<Image>()); + return t->image; + } + Ref<Image> texture_2d_layer_get(RID p_texture, int p_layer) const override { return Ref<Image>(); } Vector<Ref<Image>> texture_3d_get(RID p_texture) const override { return Vector<Ref<Image>>(); } @@ -635,7 +654,15 @@ public: Rect2i render_target_get_sdf_rect(RID p_render_target) const override { return Rect2i(); } RS::InstanceType get_base_type(RID p_rid) const override { return RS::INSTANCE_NONE; } - bool free(RID p_rid) override { return true; } + bool free(RID p_rid) override { + if (texture_owner.owns(p_rid)) { + // delete the texture + DummyTexture *texture = texture_owner.getornull(p_rid); + texture_owner.free(p_rid); + memdelete(texture); + } + return true; + } bool has_os_feature(const String &p_feature) const override { return false; } diff --git a/drivers/pulseaudio/SCsub b/drivers/pulseaudio/SCsub index 91e1140b75..467d1448dc 100644 --- a/drivers/pulseaudio/SCsub +++ b/drivers/pulseaudio/SCsub @@ -2,4 +2,7 @@ Import("env") +if "pulseaudio" in env and env["pulseaudio"]: + env.add_source_files(env.drivers_sources, "pulse-so_wrap.c") + env.add_source_files(env.drivers_sources, "*.cpp") diff --git a/drivers/pulseaudio/audio_driver_pulseaudio.cpp b/drivers/pulseaudio/audio_driver_pulseaudio.cpp index a5092c8c5c..01bed4e735 100644 --- a/drivers/pulseaudio/audio_driver_pulseaudio.cpp +++ b/drivers/pulseaudio/audio_driver_pulseaudio.cpp @@ -179,7 +179,7 @@ Error AudioDriverPulseAudio::init_device() { break; } - int latency = GLOBAL_GET("audio/output_latency"); + int latency = GLOBAL_GET("audio/driver/output_latency"); buffer_frames = closest_power_of_2(latency * mix_rate / 1000); pa_buffer_size = buffer_frames * pa_map.channels; @@ -233,11 +233,15 @@ Error AudioDriverPulseAudio::init_device() { } Error AudioDriverPulseAudio::init() { + if (initialize_pulse()) { + return ERR_CANT_OPEN; + } + active = false; thread_exited = false; exit_thread = false; - mix_rate = GLOBAL_GET("audio/mix_rate"); + mix_rate = GLOBAL_GET("audio/driver/mix_rate"); pa_ml = pa_mainloop_new(); ERR_FAIL_COND_V(pa_ml == nullptr, ERR_CANT_OPEN); diff --git a/drivers/pulseaudio/audio_driver_pulseaudio.h b/drivers/pulseaudio/audio_driver_pulseaudio.h index 2ddf8d2592..fa9b573d94 100644 --- a/drivers/pulseaudio/audio_driver_pulseaudio.h +++ b/drivers/pulseaudio/audio_driver_pulseaudio.h @@ -37,7 +37,7 @@ #include "core/os/thread.h" #include "servers/audio_server.h" -#include <pulse/pulseaudio.h> +#include "pulse-so_wrap.h" class AudioDriverPulseAudio : public AudioDriver { Thread thread; diff --git a/drivers/pulseaudio/pulse-so_wrap.c b/drivers/pulseaudio/pulse-so_wrap.c new file mode 100644 index 0000000000..fdb002a2e5 --- /dev/null +++ b/drivers/pulseaudio/pulse-so_wrap.c @@ -0,0 +1,3232 @@ +// This file is generated. Do not edit! +// see https://github.com/hpvb/dynload-wrapper for details +// generated by /home/hp/Projects/godot/pulse/generate-wrapper.py 0.2 on 2021-02-18 00:19:07 +// flags: /home/hp/Projects/godot/pulse/generate-wrapper.py --include /usr/include/pulse/pulseaudio.h --sys-include <pulse/pulseaudio.h> --soname libpulse.so.0 --omit-prefix _pa_ --init-name pulse --output-header pulse-so_wrap.h --output-implementation pulse-so_wrap.c +// +#define pa_get_library_version pa_get_library_version_dylibloader_orig_pulse +#define pa_bytes_per_second pa_bytes_per_second_dylibloader_orig_pulse +#define pa_frame_size pa_frame_size_dylibloader_orig_pulse +#define pa_sample_size pa_sample_size_dylibloader_orig_pulse +#define pa_sample_size_of_format pa_sample_size_of_format_dylibloader_orig_pulse +#define pa_bytes_to_usec pa_bytes_to_usec_dylibloader_orig_pulse +#define pa_usec_to_bytes pa_usec_to_bytes_dylibloader_orig_pulse +#define pa_sample_spec_init pa_sample_spec_init_dylibloader_orig_pulse +#define pa_sample_format_valid pa_sample_format_valid_dylibloader_orig_pulse +#define pa_sample_rate_valid pa_sample_rate_valid_dylibloader_orig_pulse +#define pa_channels_valid pa_channels_valid_dylibloader_orig_pulse +#define pa_sample_spec_valid pa_sample_spec_valid_dylibloader_orig_pulse +#define pa_sample_spec_equal pa_sample_spec_equal_dylibloader_orig_pulse +#define pa_sample_format_to_string pa_sample_format_to_string_dylibloader_orig_pulse +#define pa_parse_sample_format pa_parse_sample_format_dylibloader_orig_pulse +#define pa_sample_spec_snprint pa_sample_spec_snprint_dylibloader_orig_pulse +#define pa_bytes_snprint pa_bytes_snprint_dylibloader_orig_pulse +#define pa_sample_format_is_le pa_sample_format_is_le_dylibloader_orig_pulse +#define pa_sample_format_is_be pa_sample_format_is_be_dylibloader_orig_pulse +#define pa_direction_valid pa_direction_valid_dylibloader_orig_pulse +#define pa_direction_to_string pa_direction_to_string_dylibloader_orig_pulse +#define pa_mainloop_api_once pa_mainloop_api_once_dylibloader_orig_pulse +#define pa_proplist_new pa_proplist_new_dylibloader_orig_pulse +#define pa_proplist_free pa_proplist_free_dylibloader_orig_pulse +#define pa_proplist_key_valid pa_proplist_key_valid_dylibloader_orig_pulse +#define pa_proplist_sets pa_proplist_sets_dylibloader_orig_pulse +#define pa_proplist_setp pa_proplist_setp_dylibloader_orig_pulse +#define pa_proplist_setf pa_proplist_setf_dylibloader_orig_pulse +#define pa_proplist_set pa_proplist_set_dylibloader_orig_pulse +#define pa_proplist_gets pa_proplist_gets_dylibloader_orig_pulse +#define pa_proplist_get pa_proplist_get_dylibloader_orig_pulse +#define pa_proplist_update pa_proplist_update_dylibloader_orig_pulse +#define pa_proplist_unset pa_proplist_unset_dylibloader_orig_pulse +#define pa_proplist_unset_many pa_proplist_unset_many_dylibloader_orig_pulse +#define pa_proplist_iterate pa_proplist_iterate_dylibloader_orig_pulse +#define pa_proplist_to_string pa_proplist_to_string_dylibloader_orig_pulse +#define pa_proplist_to_string_sep pa_proplist_to_string_sep_dylibloader_orig_pulse +#define pa_proplist_from_string pa_proplist_from_string_dylibloader_orig_pulse +#define pa_proplist_contains pa_proplist_contains_dylibloader_orig_pulse +#define pa_proplist_clear pa_proplist_clear_dylibloader_orig_pulse +#define pa_proplist_copy pa_proplist_copy_dylibloader_orig_pulse +#define pa_proplist_size pa_proplist_size_dylibloader_orig_pulse +#define pa_proplist_isempty pa_proplist_isempty_dylibloader_orig_pulse +#define pa_proplist_equal pa_proplist_equal_dylibloader_orig_pulse +#define pa_channel_map_init pa_channel_map_init_dylibloader_orig_pulse +#define pa_channel_map_init_mono pa_channel_map_init_mono_dylibloader_orig_pulse +#define pa_channel_map_init_stereo pa_channel_map_init_stereo_dylibloader_orig_pulse +#define pa_channel_map_init_auto pa_channel_map_init_auto_dylibloader_orig_pulse +#define pa_channel_map_init_extend pa_channel_map_init_extend_dylibloader_orig_pulse +#define pa_channel_position_to_string pa_channel_position_to_string_dylibloader_orig_pulse +#define pa_channel_position_from_string pa_channel_position_from_string_dylibloader_orig_pulse +#define pa_channel_position_to_pretty_string pa_channel_position_to_pretty_string_dylibloader_orig_pulse +#define pa_channel_map_snprint pa_channel_map_snprint_dylibloader_orig_pulse +#define pa_channel_map_parse pa_channel_map_parse_dylibloader_orig_pulse +#define pa_channel_map_equal pa_channel_map_equal_dylibloader_orig_pulse +#define pa_channel_map_valid pa_channel_map_valid_dylibloader_orig_pulse +#define pa_channel_map_compatible pa_channel_map_compatible_dylibloader_orig_pulse +#define pa_channel_map_superset pa_channel_map_superset_dylibloader_orig_pulse +#define pa_channel_map_can_balance pa_channel_map_can_balance_dylibloader_orig_pulse +#define pa_channel_map_can_fade pa_channel_map_can_fade_dylibloader_orig_pulse +#define pa_channel_map_can_lfe_balance pa_channel_map_can_lfe_balance_dylibloader_orig_pulse +#define pa_channel_map_to_name pa_channel_map_to_name_dylibloader_orig_pulse +#define pa_channel_map_to_pretty_name pa_channel_map_to_pretty_name_dylibloader_orig_pulse +#define pa_channel_map_has_position pa_channel_map_has_position_dylibloader_orig_pulse +#define pa_channel_map_mask pa_channel_map_mask_dylibloader_orig_pulse +#define pa_encoding_to_string pa_encoding_to_string_dylibloader_orig_pulse +#define pa_encoding_from_string pa_encoding_from_string_dylibloader_orig_pulse +#define pa_format_info_new pa_format_info_new_dylibloader_orig_pulse +#define pa_format_info_copy pa_format_info_copy_dylibloader_orig_pulse +#define pa_format_info_free pa_format_info_free_dylibloader_orig_pulse +#define pa_format_info_valid pa_format_info_valid_dylibloader_orig_pulse +#define pa_format_info_is_pcm pa_format_info_is_pcm_dylibloader_orig_pulse +#define pa_format_info_is_compatible pa_format_info_is_compatible_dylibloader_orig_pulse +#define pa_format_info_snprint pa_format_info_snprint_dylibloader_orig_pulse +#define pa_format_info_from_string pa_format_info_from_string_dylibloader_orig_pulse +#define pa_format_info_from_sample_spec pa_format_info_from_sample_spec_dylibloader_orig_pulse +#define pa_format_info_to_sample_spec pa_format_info_to_sample_spec_dylibloader_orig_pulse +#define pa_format_info_get_prop_type pa_format_info_get_prop_type_dylibloader_orig_pulse +#define pa_format_info_get_prop_int pa_format_info_get_prop_int_dylibloader_orig_pulse +#define pa_format_info_get_prop_int_range pa_format_info_get_prop_int_range_dylibloader_orig_pulse +#define pa_format_info_get_prop_int_array pa_format_info_get_prop_int_array_dylibloader_orig_pulse +#define pa_format_info_get_prop_string pa_format_info_get_prop_string_dylibloader_orig_pulse +#define pa_format_info_get_prop_string_array pa_format_info_get_prop_string_array_dylibloader_orig_pulse +#define pa_format_info_free_string_array pa_format_info_free_string_array_dylibloader_orig_pulse +#define pa_format_info_get_sample_format pa_format_info_get_sample_format_dylibloader_orig_pulse +#define pa_format_info_get_rate pa_format_info_get_rate_dylibloader_orig_pulse +#define pa_format_info_get_channels pa_format_info_get_channels_dylibloader_orig_pulse +#define pa_format_info_get_channel_map pa_format_info_get_channel_map_dylibloader_orig_pulse +#define pa_format_info_set_prop_int pa_format_info_set_prop_int_dylibloader_orig_pulse +#define pa_format_info_set_prop_int_array pa_format_info_set_prop_int_array_dylibloader_orig_pulse +#define pa_format_info_set_prop_int_range pa_format_info_set_prop_int_range_dylibloader_orig_pulse +#define pa_format_info_set_prop_string pa_format_info_set_prop_string_dylibloader_orig_pulse +#define pa_format_info_set_prop_string_array pa_format_info_set_prop_string_array_dylibloader_orig_pulse +#define pa_format_info_set_sample_format pa_format_info_set_sample_format_dylibloader_orig_pulse +#define pa_format_info_set_rate pa_format_info_set_rate_dylibloader_orig_pulse +#define pa_format_info_set_channels pa_format_info_set_channels_dylibloader_orig_pulse +#define pa_format_info_set_channel_map pa_format_info_set_channel_map_dylibloader_orig_pulse +#define pa_operation_ref pa_operation_ref_dylibloader_orig_pulse +#define pa_operation_unref pa_operation_unref_dylibloader_orig_pulse +#define pa_operation_cancel pa_operation_cancel_dylibloader_orig_pulse +#define pa_operation_get_state pa_operation_get_state_dylibloader_orig_pulse +#define pa_operation_set_state_callback pa_operation_set_state_callback_dylibloader_orig_pulse +#define pa_context_new pa_context_new_dylibloader_orig_pulse +#define pa_context_new_with_proplist pa_context_new_with_proplist_dylibloader_orig_pulse +#define pa_context_unref pa_context_unref_dylibloader_orig_pulse +#define pa_context_ref pa_context_ref_dylibloader_orig_pulse +#define pa_context_set_state_callback pa_context_set_state_callback_dylibloader_orig_pulse +#define pa_context_set_event_callback pa_context_set_event_callback_dylibloader_orig_pulse +#define pa_context_errno pa_context_errno_dylibloader_orig_pulse +#define pa_context_is_pending pa_context_is_pending_dylibloader_orig_pulse +#define pa_context_get_state pa_context_get_state_dylibloader_orig_pulse +#define pa_context_connect pa_context_connect_dylibloader_orig_pulse +#define pa_context_disconnect pa_context_disconnect_dylibloader_orig_pulse +#define pa_context_drain pa_context_drain_dylibloader_orig_pulse +#define pa_context_exit_daemon pa_context_exit_daemon_dylibloader_orig_pulse +#define pa_context_set_default_sink pa_context_set_default_sink_dylibloader_orig_pulse +#define pa_context_set_default_source pa_context_set_default_source_dylibloader_orig_pulse +#define pa_context_is_local pa_context_is_local_dylibloader_orig_pulse +#define pa_context_set_name pa_context_set_name_dylibloader_orig_pulse +#define pa_context_get_server pa_context_get_server_dylibloader_orig_pulse +#define pa_context_get_protocol_version pa_context_get_protocol_version_dylibloader_orig_pulse +#define pa_context_get_server_protocol_version pa_context_get_server_protocol_version_dylibloader_orig_pulse +#define pa_context_proplist_update pa_context_proplist_update_dylibloader_orig_pulse +#define pa_context_proplist_remove pa_context_proplist_remove_dylibloader_orig_pulse +#define pa_context_get_index pa_context_get_index_dylibloader_orig_pulse +#define pa_context_rttime_new pa_context_rttime_new_dylibloader_orig_pulse +#define pa_context_rttime_restart pa_context_rttime_restart_dylibloader_orig_pulse +#define pa_context_get_tile_size pa_context_get_tile_size_dylibloader_orig_pulse +#define pa_context_load_cookie_from_file pa_context_load_cookie_from_file_dylibloader_orig_pulse +#define pa_cvolume_equal pa_cvolume_equal_dylibloader_orig_pulse +#define pa_cvolume_init pa_cvolume_init_dylibloader_orig_pulse +#define pa_cvolume_set pa_cvolume_set_dylibloader_orig_pulse +#define pa_cvolume_snprint pa_cvolume_snprint_dylibloader_orig_pulse +#define pa_sw_cvolume_snprint_dB pa_sw_cvolume_snprint_dB_dylibloader_orig_pulse +#define pa_cvolume_snprint_verbose pa_cvolume_snprint_verbose_dylibloader_orig_pulse +#define pa_volume_snprint pa_volume_snprint_dylibloader_orig_pulse +#define pa_sw_volume_snprint_dB pa_sw_volume_snprint_dB_dylibloader_orig_pulse +#define pa_volume_snprint_verbose pa_volume_snprint_verbose_dylibloader_orig_pulse +#define pa_cvolume_avg pa_cvolume_avg_dylibloader_orig_pulse +#define pa_cvolume_avg_mask pa_cvolume_avg_mask_dylibloader_orig_pulse +#define pa_cvolume_max pa_cvolume_max_dylibloader_orig_pulse +#define pa_cvolume_max_mask pa_cvolume_max_mask_dylibloader_orig_pulse +#define pa_cvolume_min pa_cvolume_min_dylibloader_orig_pulse +#define pa_cvolume_min_mask pa_cvolume_min_mask_dylibloader_orig_pulse +#define pa_cvolume_valid pa_cvolume_valid_dylibloader_orig_pulse +#define pa_cvolume_channels_equal_to pa_cvolume_channels_equal_to_dylibloader_orig_pulse +#define pa_sw_volume_multiply pa_sw_volume_multiply_dylibloader_orig_pulse +#define pa_sw_cvolume_multiply pa_sw_cvolume_multiply_dylibloader_orig_pulse +#define pa_sw_cvolume_multiply_scalar pa_sw_cvolume_multiply_scalar_dylibloader_orig_pulse +#define pa_sw_volume_divide pa_sw_volume_divide_dylibloader_orig_pulse +#define pa_sw_cvolume_divide pa_sw_cvolume_divide_dylibloader_orig_pulse +#define pa_sw_cvolume_divide_scalar pa_sw_cvolume_divide_scalar_dylibloader_orig_pulse +#define pa_sw_volume_from_dB pa_sw_volume_from_dB_dylibloader_orig_pulse +#define pa_sw_volume_to_dB pa_sw_volume_to_dB_dylibloader_orig_pulse +#define pa_sw_volume_from_linear pa_sw_volume_from_linear_dylibloader_orig_pulse +#define pa_sw_volume_to_linear pa_sw_volume_to_linear_dylibloader_orig_pulse +#define pa_cvolume_remap pa_cvolume_remap_dylibloader_orig_pulse +#define pa_cvolume_compatible pa_cvolume_compatible_dylibloader_orig_pulse +#define pa_cvolume_compatible_with_channel_map pa_cvolume_compatible_with_channel_map_dylibloader_orig_pulse +#define pa_cvolume_get_balance pa_cvolume_get_balance_dylibloader_orig_pulse +#define pa_cvolume_set_balance pa_cvolume_set_balance_dylibloader_orig_pulse +#define pa_cvolume_get_fade pa_cvolume_get_fade_dylibloader_orig_pulse +#define pa_cvolume_set_fade pa_cvolume_set_fade_dylibloader_orig_pulse +#define pa_cvolume_get_lfe_balance pa_cvolume_get_lfe_balance_dylibloader_orig_pulse +#define pa_cvolume_set_lfe_balance pa_cvolume_set_lfe_balance_dylibloader_orig_pulse +#define pa_cvolume_scale pa_cvolume_scale_dylibloader_orig_pulse +#define pa_cvolume_scale_mask pa_cvolume_scale_mask_dylibloader_orig_pulse +#define pa_cvolume_set_position pa_cvolume_set_position_dylibloader_orig_pulse +#define pa_cvolume_get_position pa_cvolume_get_position_dylibloader_orig_pulse +#define pa_cvolume_merge pa_cvolume_merge_dylibloader_orig_pulse +#define pa_cvolume_inc_clamp pa_cvolume_inc_clamp_dylibloader_orig_pulse +#define pa_cvolume_inc pa_cvolume_inc_dylibloader_orig_pulse +#define pa_cvolume_dec pa_cvolume_dec_dylibloader_orig_pulse +#define pa_stream_new pa_stream_new_dylibloader_orig_pulse +#define pa_stream_new_with_proplist pa_stream_new_with_proplist_dylibloader_orig_pulse +#define pa_stream_new_extended pa_stream_new_extended_dylibloader_orig_pulse +#define pa_stream_unref pa_stream_unref_dylibloader_orig_pulse +#define pa_stream_ref pa_stream_ref_dylibloader_orig_pulse +#define pa_stream_get_state pa_stream_get_state_dylibloader_orig_pulse +#define pa_stream_get_context pa_stream_get_context_dylibloader_orig_pulse +#define pa_stream_get_index pa_stream_get_index_dylibloader_orig_pulse +#define pa_stream_get_device_index pa_stream_get_device_index_dylibloader_orig_pulse +#define pa_stream_get_device_name pa_stream_get_device_name_dylibloader_orig_pulse +#define pa_stream_is_suspended pa_stream_is_suspended_dylibloader_orig_pulse +#define pa_stream_is_corked pa_stream_is_corked_dylibloader_orig_pulse +#define pa_stream_connect_playback pa_stream_connect_playback_dylibloader_orig_pulse +#define pa_stream_connect_record pa_stream_connect_record_dylibloader_orig_pulse +#define pa_stream_disconnect pa_stream_disconnect_dylibloader_orig_pulse +#define pa_stream_begin_write pa_stream_begin_write_dylibloader_orig_pulse +#define pa_stream_cancel_write pa_stream_cancel_write_dylibloader_orig_pulse +#define pa_stream_write pa_stream_write_dylibloader_orig_pulse +#define pa_stream_write_ext_free pa_stream_write_ext_free_dylibloader_orig_pulse +#define pa_stream_peek pa_stream_peek_dylibloader_orig_pulse +#define pa_stream_drop pa_stream_drop_dylibloader_orig_pulse +#define pa_stream_writable_size pa_stream_writable_size_dylibloader_orig_pulse +#define pa_stream_readable_size pa_stream_readable_size_dylibloader_orig_pulse +#define pa_stream_drain pa_stream_drain_dylibloader_orig_pulse +#define pa_stream_update_timing_info pa_stream_update_timing_info_dylibloader_orig_pulse +#define pa_stream_set_state_callback pa_stream_set_state_callback_dylibloader_orig_pulse +#define pa_stream_set_write_callback pa_stream_set_write_callback_dylibloader_orig_pulse +#define pa_stream_set_read_callback pa_stream_set_read_callback_dylibloader_orig_pulse +#define pa_stream_set_overflow_callback pa_stream_set_overflow_callback_dylibloader_orig_pulse +#define pa_stream_get_underflow_index pa_stream_get_underflow_index_dylibloader_orig_pulse +#define pa_stream_set_underflow_callback pa_stream_set_underflow_callback_dylibloader_orig_pulse +#define pa_stream_set_started_callback pa_stream_set_started_callback_dylibloader_orig_pulse +#define pa_stream_set_latency_update_callback pa_stream_set_latency_update_callback_dylibloader_orig_pulse +#define pa_stream_set_moved_callback pa_stream_set_moved_callback_dylibloader_orig_pulse +#define pa_stream_set_suspended_callback pa_stream_set_suspended_callback_dylibloader_orig_pulse +#define pa_stream_set_event_callback pa_stream_set_event_callback_dylibloader_orig_pulse +#define pa_stream_set_buffer_attr_callback pa_stream_set_buffer_attr_callback_dylibloader_orig_pulse +#define pa_stream_cork pa_stream_cork_dylibloader_orig_pulse +#define pa_stream_flush pa_stream_flush_dylibloader_orig_pulse +#define pa_stream_prebuf pa_stream_prebuf_dylibloader_orig_pulse +#define pa_stream_trigger pa_stream_trigger_dylibloader_orig_pulse +#define pa_stream_set_name pa_stream_set_name_dylibloader_orig_pulse +#define pa_stream_get_time pa_stream_get_time_dylibloader_orig_pulse +#define pa_stream_get_latency pa_stream_get_latency_dylibloader_orig_pulse +#define pa_stream_get_timing_info pa_stream_get_timing_info_dylibloader_orig_pulse +#define pa_stream_get_sample_spec pa_stream_get_sample_spec_dylibloader_orig_pulse +#define pa_stream_get_channel_map pa_stream_get_channel_map_dylibloader_orig_pulse +#define pa_stream_get_format_info pa_stream_get_format_info_dylibloader_orig_pulse +#define pa_stream_get_buffer_attr pa_stream_get_buffer_attr_dylibloader_orig_pulse +#define pa_stream_set_buffer_attr pa_stream_set_buffer_attr_dylibloader_orig_pulse +#define pa_stream_update_sample_rate pa_stream_update_sample_rate_dylibloader_orig_pulse +#define pa_stream_proplist_update pa_stream_proplist_update_dylibloader_orig_pulse +#define pa_stream_proplist_remove pa_stream_proplist_remove_dylibloader_orig_pulse +#define pa_stream_set_monitor_stream pa_stream_set_monitor_stream_dylibloader_orig_pulse +#define pa_stream_get_monitor_stream pa_stream_get_monitor_stream_dylibloader_orig_pulse +#define pa_context_get_sink_info_by_name pa_context_get_sink_info_by_name_dylibloader_orig_pulse +#define pa_context_get_sink_info_by_index pa_context_get_sink_info_by_index_dylibloader_orig_pulse +#define pa_context_get_sink_info_list pa_context_get_sink_info_list_dylibloader_orig_pulse +#define pa_context_set_sink_volume_by_index pa_context_set_sink_volume_by_index_dylibloader_orig_pulse +#define pa_context_set_sink_volume_by_name pa_context_set_sink_volume_by_name_dylibloader_orig_pulse +#define pa_context_set_sink_mute_by_index pa_context_set_sink_mute_by_index_dylibloader_orig_pulse +#define pa_context_set_sink_mute_by_name pa_context_set_sink_mute_by_name_dylibloader_orig_pulse +#define pa_context_suspend_sink_by_name pa_context_suspend_sink_by_name_dylibloader_orig_pulse +#define pa_context_suspend_sink_by_index pa_context_suspend_sink_by_index_dylibloader_orig_pulse +#define pa_context_set_sink_port_by_index pa_context_set_sink_port_by_index_dylibloader_orig_pulse +#define pa_context_set_sink_port_by_name pa_context_set_sink_port_by_name_dylibloader_orig_pulse +#define pa_context_get_source_info_by_name pa_context_get_source_info_by_name_dylibloader_orig_pulse +#define pa_context_get_source_info_by_index pa_context_get_source_info_by_index_dylibloader_orig_pulse +#define pa_context_get_source_info_list pa_context_get_source_info_list_dylibloader_orig_pulse +#define pa_context_set_source_volume_by_index pa_context_set_source_volume_by_index_dylibloader_orig_pulse +#define pa_context_set_source_volume_by_name pa_context_set_source_volume_by_name_dylibloader_orig_pulse +#define pa_context_set_source_mute_by_index pa_context_set_source_mute_by_index_dylibloader_orig_pulse +#define pa_context_set_source_mute_by_name pa_context_set_source_mute_by_name_dylibloader_orig_pulse +#define pa_context_suspend_source_by_name pa_context_suspend_source_by_name_dylibloader_orig_pulse +#define pa_context_suspend_source_by_index pa_context_suspend_source_by_index_dylibloader_orig_pulse +#define pa_context_set_source_port_by_index pa_context_set_source_port_by_index_dylibloader_orig_pulse +#define pa_context_set_source_port_by_name pa_context_set_source_port_by_name_dylibloader_orig_pulse +#define pa_context_get_server_info pa_context_get_server_info_dylibloader_orig_pulse +#define pa_context_get_module_info pa_context_get_module_info_dylibloader_orig_pulse +#define pa_context_get_module_info_list pa_context_get_module_info_list_dylibloader_orig_pulse +#define pa_context_load_module pa_context_load_module_dylibloader_orig_pulse +#define pa_context_unload_module pa_context_unload_module_dylibloader_orig_pulse +#define pa_context_get_client_info pa_context_get_client_info_dylibloader_orig_pulse +#define pa_context_get_client_info_list pa_context_get_client_info_list_dylibloader_orig_pulse +#define pa_context_kill_client pa_context_kill_client_dylibloader_orig_pulse +#define pa_context_get_card_info_by_index pa_context_get_card_info_by_index_dylibloader_orig_pulse +#define pa_context_get_card_info_by_name pa_context_get_card_info_by_name_dylibloader_orig_pulse +#define pa_context_get_card_info_list pa_context_get_card_info_list_dylibloader_orig_pulse +#define pa_context_set_card_profile_by_index pa_context_set_card_profile_by_index_dylibloader_orig_pulse +#define pa_context_set_card_profile_by_name pa_context_set_card_profile_by_name_dylibloader_orig_pulse +#define pa_context_set_port_latency_offset pa_context_set_port_latency_offset_dylibloader_orig_pulse +#define pa_context_get_sink_input_info pa_context_get_sink_input_info_dylibloader_orig_pulse +#define pa_context_get_sink_input_info_list pa_context_get_sink_input_info_list_dylibloader_orig_pulse +#define pa_context_move_sink_input_by_name pa_context_move_sink_input_by_name_dylibloader_orig_pulse +#define pa_context_move_sink_input_by_index pa_context_move_sink_input_by_index_dylibloader_orig_pulse +#define pa_context_set_sink_input_volume pa_context_set_sink_input_volume_dylibloader_orig_pulse +#define pa_context_set_sink_input_mute pa_context_set_sink_input_mute_dylibloader_orig_pulse +#define pa_context_kill_sink_input pa_context_kill_sink_input_dylibloader_orig_pulse +#define pa_context_get_source_output_info pa_context_get_source_output_info_dylibloader_orig_pulse +#define pa_context_get_source_output_info_list pa_context_get_source_output_info_list_dylibloader_orig_pulse +#define pa_context_move_source_output_by_name pa_context_move_source_output_by_name_dylibloader_orig_pulse +#define pa_context_move_source_output_by_index pa_context_move_source_output_by_index_dylibloader_orig_pulse +#define pa_context_set_source_output_volume pa_context_set_source_output_volume_dylibloader_orig_pulse +#define pa_context_set_source_output_mute pa_context_set_source_output_mute_dylibloader_orig_pulse +#define pa_context_kill_source_output pa_context_kill_source_output_dylibloader_orig_pulse +#define pa_context_stat pa_context_stat_dylibloader_orig_pulse +#define pa_context_get_sample_info_by_name pa_context_get_sample_info_by_name_dylibloader_orig_pulse +#define pa_context_get_sample_info_by_index pa_context_get_sample_info_by_index_dylibloader_orig_pulse +#define pa_context_get_sample_info_list pa_context_get_sample_info_list_dylibloader_orig_pulse +#define pa_context_get_autoload_info_by_name pa_context_get_autoload_info_by_name_dylibloader_orig_pulse +#define pa_context_get_autoload_info_by_index pa_context_get_autoload_info_by_index_dylibloader_orig_pulse +#define pa_context_get_autoload_info_list pa_context_get_autoload_info_list_dylibloader_orig_pulse +#define pa_context_add_autoload pa_context_add_autoload_dylibloader_orig_pulse +#define pa_context_remove_autoload_by_name pa_context_remove_autoload_by_name_dylibloader_orig_pulse +#define pa_context_remove_autoload_by_index pa_context_remove_autoload_by_index_dylibloader_orig_pulse +#define pa_context_subscribe pa_context_subscribe_dylibloader_orig_pulse +#define pa_context_set_subscribe_callback pa_context_set_subscribe_callback_dylibloader_orig_pulse +#define pa_stream_connect_upload pa_stream_connect_upload_dylibloader_orig_pulse +#define pa_stream_finish_upload pa_stream_finish_upload_dylibloader_orig_pulse +#define pa_context_remove_sample pa_context_remove_sample_dylibloader_orig_pulse +#define pa_context_play_sample pa_context_play_sample_dylibloader_orig_pulse +#define pa_context_play_sample_with_proplist pa_context_play_sample_with_proplist_dylibloader_orig_pulse +#define pa_strerror pa_strerror_dylibloader_orig_pulse +#define pa_xmalloc pa_xmalloc_dylibloader_orig_pulse +#define pa_xmalloc0 pa_xmalloc0_dylibloader_orig_pulse +#define pa_xrealloc pa_xrealloc_dylibloader_orig_pulse +#define pa_xfree pa_xfree_dylibloader_orig_pulse +#define pa_xstrdup pa_xstrdup_dylibloader_orig_pulse +#define pa_xstrndup pa_xstrndup_dylibloader_orig_pulse +#define pa_xmemdup pa_xmemdup_dylibloader_orig_pulse +#define pa_utf8_valid pa_utf8_valid_dylibloader_orig_pulse +#define pa_ascii_valid pa_ascii_valid_dylibloader_orig_pulse +#define pa_utf8_filter pa_utf8_filter_dylibloader_orig_pulse +#define pa_ascii_filter pa_ascii_filter_dylibloader_orig_pulse +#define pa_utf8_to_locale pa_utf8_to_locale_dylibloader_orig_pulse +#define pa_locale_to_utf8 pa_locale_to_utf8_dylibloader_orig_pulse +#define pa_threaded_mainloop_new pa_threaded_mainloop_new_dylibloader_orig_pulse +#define pa_threaded_mainloop_free pa_threaded_mainloop_free_dylibloader_orig_pulse +#define pa_threaded_mainloop_start pa_threaded_mainloop_start_dylibloader_orig_pulse +#define pa_threaded_mainloop_stop pa_threaded_mainloop_stop_dylibloader_orig_pulse +#define pa_threaded_mainloop_lock pa_threaded_mainloop_lock_dylibloader_orig_pulse +#define pa_threaded_mainloop_unlock pa_threaded_mainloop_unlock_dylibloader_orig_pulse +#define pa_threaded_mainloop_wait pa_threaded_mainloop_wait_dylibloader_orig_pulse +#define pa_threaded_mainloop_signal pa_threaded_mainloop_signal_dylibloader_orig_pulse +#define pa_threaded_mainloop_accept pa_threaded_mainloop_accept_dylibloader_orig_pulse +#define pa_threaded_mainloop_get_retval pa_threaded_mainloop_get_retval_dylibloader_orig_pulse +#define pa_threaded_mainloop_get_api pa_threaded_mainloop_get_api_dylibloader_orig_pulse +#define pa_threaded_mainloop_in_thread pa_threaded_mainloop_in_thread_dylibloader_orig_pulse +#define pa_threaded_mainloop_set_name pa_threaded_mainloop_set_name_dylibloader_orig_pulse +#define pa_threaded_mainloop_once_unlocked pa_threaded_mainloop_once_unlocked_dylibloader_orig_pulse +#define pa_mainloop_new pa_mainloop_new_dylibloader_orig_pulse +#define pa_mainloop_free pa_mainloop_free_dylibloader_orig_pulse +#define pa_mainloop_prepare pa_mainloop_prepare_dylibloader_orig_pulse +#define pa_mainloop_poll pa_mainloop_poll_dylibloader_orig_pulse +#define pa_mainloop_dispatch pa_mainloop_dispatch_dylibloader_orig_pulse +#define pa_mainloop_get_retval pa_mainloop_get_retval_dylibloader_orig_pulse +#define pa_mainloop_iterate pa_mainloop_iterate_dylibloader_orig_pulse +#define pa_mainloop_run pa_mainloop_run_dylibloader_orig_pulse +#define pa_mainloop_get_api pa_mainloop_get_api_dylibloader_orig_pulse +#define pa_mainloop_quit pa_mainloop_quit_dylibloader_orig_pulse +#define pa_mainloop_wakeup pa_mainloop_wakeup_dylibloader_orig_pulse +#define pa_mainloop_set_poll_func pa_mainloop_set_poll_func_dylibloader_orig_pulse +#define pa_signal_init pa_signal_init_dylibloader_orig_pulse +#define pa_signal_done pa_signal_done_dylibloader_orig_pulse +#define pa_signal_new pa_signal_new_dylibloader_orig_pulse +#define pa_signal_free pa_signal_free_dylibloader_orig_pulse +#define pa_signal_set_destroy pa_signal_set_destroy_dylibloader_orig_pulse +#define pa_get_user_name pa_get_user_name_dylibloader_orig_pulse +#define pa_get_host_name pa_get_host_name_dylibloader_orig_pulse +#define pa_get_fqdn pa_get_fqdn_dylibloader_orig_pulse +#define pa_get_home_dir pa_get_home_dir_dylibloader_orig_pulse +#define pa_get_binary_name pa_get_binary_name_dylibloader_orig_pulse +#define pa_path_get_filename pa_path_get_filename_dylibloader_orig_pulse +#define pa_msleep pa_msleep_dylibloader_orig_pulse +#define pa_thread_make_realtime pa_thread_make_realtime_dylibloader_orig_pulse +#define pa_gettimeofday pa_gettimeofday_dylibloader_orig_pulse +#define pa_timeval_diff pa_timeval_diff_dylibloader_orig_pulse +#define pa_timeval_cmp pa_timeval_cmp_dylibloader_orig_pulse +#define pa_timeval_age pa_timeval_age_dylibloader_orig_pulse +#define pa_timeval_add pa_timeval_add_dylibloader_orig_pulse +#define pa_timeval_sub pa_timeval_sub_dylibloader_orig_pulse +#define pa_timeval_store pa_timeval_store_dylibloader_orig_pulse +#define pa_timeval_load pa_timeval_load_dylibloader_orig_pulse +#define pa_rtclock_now pa_rtclock_now_dylibloader_orig_pulse +#include <pulse/pulseaudio.h> +#undef pa_get_library_version +#undef pa_bytes_per_second +#undef pa_frame_size +#undef pa_sample_size +#undef pa_sample_size_of_format +#undef pa_bytes_to_usec +#undef pa_usec_to_bytes +#undef pa_sample_spec_init +#undef pa_sample_format_valid +#undef pa_sample_rate_valid +#undef pa_channels_valid +#undef pa_sample_spec_valid +#undef pa_sample_spec_equal +#undef pa_sample_format_to_string +#undef pa_parse_sample_format +#undef pa_sample_spec_snprint +#undef pa_bytes_snprint +#undef pa_sample_format_is_le +#undef pa_sample_format_is_be +#undef pa_direction_valid +#undef pa_direction_to_string +#undef pa_mainloop_api_once +#undef pa_proplist_new +#undef pa_proplist_free +#undef pa_proplist_key_valid +#undef pa_proplist_sets +#undef pa_proplist_setp +#undef pa_proplist_setf +#undef pa_proplist_set +#undef pa_proplist_gets +#undef pa_proplist_get +#undef pa_proplist_update +#undef pa_proplist_unset +#undef pa_proplist_unset_many +#undef pa_proplist_iterate +#undef pa_proplist_to_string +#undef pa_proplist_to_string_sep +#undef pa_proplist_from_string +#undef pa_proplist_contains +#undef pa_proplist_clear +#undef pa_proplist_copy +#undef pa_proplist_size +#undef pa_proplist_isempty +#undef pa_proplist_equal +#undef pa_channel_map_init +#undef pa_channel_map_init_mono +#undef pa_channel_map_init_stereo +#undef pa_channel_map_init_auto +#undef pa_channel_map_init_extend +#undef pa_channel_position_to_string +#undef pa_channel_position_from_string +#undef pa_channel_position_to_pretty_string +#undef pa_channel_map_snprint +#undef pa_channel_map_parse +#undef pa_channel_map_equal +#undef pa_channel_map_valid +#undef pa_channel_map_compatible +#undef pa_channel_map_superset +#undef pa_channel_map_can_balance +#undef pa_channel_map_can_fade +#undef pa_channel_map_can_lfe_balance +#undef pa_channel_map_to_name +#undef pa_channel_map_to_pretty_name +#undef pa_channel_map_has_position +#undef pa_channel_map_mask +#undef pa_encoding_to_string +#undef pa_encoding_from_string +#undef pa_format_info_new +#undef pa_format_info_copy +#undef pa_format_info_free +#undef pa_format_info_valid +#undef pa_format_info_is_pcm +#undef pa_format_info_is_compatible +#undef pa_format_info_snprint +#undef pa_format_info_from_string +#undef pa_format_info_from_sample_spec +#undef pa_format_info_to_sample_spec +#undef pa_format_info_get_prop_type +#undef pa_format_info_get_prop_int +#undef pa_format_info_get_prop_int_range +#undef pa_format_info_get_prop_int_array +#undef pa_format_info_get_prop_string +#undef pa_format_info_get_prop_string_array +#undef pa_format_info_free_string_array +#undef pa_format_info_get_sample_format +#undef pa_format_info_get_rate +#undef pa_format_info_get_channels +#undef pa_format_info_get_channel_map +#undef pa_format_info_set_prop_int +#undef pa_format_info_set_prop_int_array +#undef pa_format_info_set_prop_int_range +#undef pa_format_info_set_prop_string +#undef pa_format_info_set_prop_string_array +#undef pa_format_info_set_sample_format +#undef pa_format_info_set_rate +#undef pa_format_info_set_channels +#undef pa_format_info_set_channel_map +#undef pa_operation_ref +#undef pa_operation_unref +#undef pa_operation_cancel +#undef pa_operation_get_state +#undef pa_operation_set_state_callback +#undef pa_context_new +#undef pa_context_new_with_proplist +#undef pa_context_unref +#undef pa_context_ref +#undef pa_context_set_state_callback +#undef pa_context_set_event_callback +#undef pa_context_errno +#undef pa_context_is_pending +#undef pa_context_get_state +#undef pa_context_connect +#undef pa_context_disconnect +#undef pa_context_drain +#undef pa_context_exit_daemon +#undef pa_context_set_default_sink +#undef pa_context_set_default_source +#undef pa_context_is_local +#undef pa_context_set_name +#undef pa_context_get_server +#undef pa_context_get_protocol_version +#undef pa_context_get_server_protocol_version +#undef pa_context_proplist_update +#undef pa_context_proplist_remove +#undef pa_context_get_index +#undef pa_context_rttime_new +#undef pa_context_rttime_restart +#undef pa_context_get_tile_size +#undef pa_context_load_cookie_from_file +#undef pa_cvolume_equal +#undef pa_cvolume_init +#undef pa_cvolume_set +#undef pa_cvolume_snprint +#undef pa_sw_cvolume_snprint_dB +#undef pa_cvolume_snprint_verbose +#undef pa_volume_snprint +#undef pa_sw_volume_snprint_dB +#undef pa_volume_snprint_verbose +#undef pa_cvolume_avg +#undef pa_cvolume_avg_mask +#undef pa_cvolume_max +#undef pa_cvolume_max_mask +#undef pa_cvolume_min +#undef pa_cvolume_min_mask +#undef pa_cvolume_valid +#undef pa_cvolume_channels_equal_to +#undef pa_sw_volume_multiply +#undef pa_sw_cvolume_multiply +#undef pa_sw_cvolume_multiply_scalar +#undef pa_sw_volume_divide +#undef pa_sw_cvolume_divide +#undef pa_sw_cvolume_divide_scalar +#undef pa_sw_volume_from_dB +#undef pa_sw_volume_to_dB +#undef pa_sw_volume_from_linear +#undef pa_sw_volume_to_linear +#undef pa_cvolume_remap +#undef pa_cvolume_compatible +#undef pa_cvolume_compatible_with_channel_map +#undef pa_cvolume_get_balance +#undef pa_cvolume_set_balance +#undef pa_cvolume_get_fade +#undef pa_cvolume_set_fade +#undef pa_cvolume_get_lfe_balance +#undef pa_cvolume_set_lfe_balance +#undef pa_cvolume_scale +#undef pa_cvolume_scale_mask +#undef pa_cvolume_set_position +#undef pa_cvolume_get_position +#undef pa_cvolume_merge +#undef pa_cvolume_inc_clamp +#undef pa_cvolume_inc +#undef pa_cvolume_dec +#undef pa_stream_new +#undef pa_stream_new_with_proplist +#undef pa_stream_new_extended +#undef pa_stream_unref +#undef pa_stream_ref +#undef pa_stream_get_state +#undef pa_stream_get_context +#undef pa_stream_get_index +#undef pa_stream_get_device_index +#undef pa_stream_get_device_name +#undef pa_stream_is_suspended +#undef pa_stream_is_corked +#undef pa_stream_connect_playback +#undef pa_stream_connect_record +#undef pa_stream_disconnect +#undef pa_stream_begin_write +#undef pa_stream_cancel_write +#undef pa_stream_write +#undef pa_stream_write_ext_free +#undef pa_stream_peek +#undef pa_stream_drop +#undef pa_stream_writable_size +#undef pa_stream_readable_size +#undef pa_stream_drain +#undef pa_stream_update_timing_info +#undef pa_stream_set_state_callback +#undef pa_stream_set_write_callback +#undef pa_stream_set_read_callback +#undef pa_stream_set_overflow_callback +#undef pa_stream_get_underflow_index +#undef pa_stream_set_underflow_callback +#undef pa_stream_set_started_callback +#undef pa_stream_set_latency_update_callback +#undef pa_stream_set_moved_callback +#undef pa_stream_set_suspended_callback +#undef pa_stream_set_event_callback +#undef pa_stream_set_buffer_attr_callback +#undef pa_stream_cork +#undef pa_stream_flush +#undef pa_stream_prebuf +#undef pa_stream_trigger +#undef pa_stream_set_name +#undef pa_stream_get_time +#undef pa_stream_get_latency +#undef pa_stream_get_timing_info +#undef pa_stream_get_sample_spec +#undef pa_stream_get_channel_map +#undef pa_stream_get_format_info +#undef pa_stream_get_buffer_attr +#undef pa_stream_set_buffer_attr +#undef pa_stream_update_sample_rate +#undef pa_stream_proplist_update +#undef pa_stream_proplist_remove +#undef pa_stream_set_monitor_stream +#undef pa_stream_get_monitor_stream +#undef pa_context_get_sink_info_by_name +#undef pa_context_get_sink_info_by_index +#undef pa_context_get_sink_info_list +#undef pa_context_set_sink_volume_by_index +#undef pa_context_set_sink_volume_by_name +#undef pa_context_set_sink_mute_by_index +#undef pa_context_set_sink_mute_by_name +#undef pa_context_suspend_sink_by_name +#undef pa_context_suspend_sink_by_index +#undef pa_context_set_sink_port_by_index +#undef pa_context_set_sink_port_by_name +#undef pa_context_get_source_info_by_name +#undef pa_context_get_source_info_by_index +#undef pa_context_get_source_info_list +#undef pa_context_set_source_volume_by_index +#undef pa_context_set_source_volume_by_name +#undef pa_context_set_source_mute_by_index +#undef pa_context_set_source_mute_by_name +#undef pa_context_suspend_source_by_name +#undef pa_context_suspend_source_by_index +#undef pa_context_set_source_port_by_index +#undef pa_context_set_source_port_by_name +#undef pa_context_get_server_info +#undef pa_context_get_module_info +#undef pa_context_get_module_info_list +#undef pa_context_load_module +#undef pa_context_unload_module +#undef pa_context_get_client_info +#undef pa_context_get_client_info_list +#undef pa_context_kill_client +#undef pa_context_get_card_info_by_index +#undef pa_context_get_card_info_by_name +#undef pa_context_get_card_info_list +#undef pa_context_set_card_profile_by_index +#undef pa_context_set_card_profile_by_name +#undef pa_context_set_port_latency_offset +#undef pa_context_get_sink_input_info +#undef pa_context_get_sink_input_info_list +#undef pa_context_move_sink_input_by_name +#undef pa_context_move_sink_input_by_index +#undef pa_context_set_sink_input_volume +#undef pa_context_set_sink_input_mute +#undef pa_context_kill_sink_input +#undef pa_context_get_source_output_info +#undef pa_context_get_source_output_info_list +#undef pa_context_move_source_output_by_name +#undef pa_context_move_source_output_by_index +#undef pa_context_set_source_output_volume +#undef pa_context_set_source_output_mute +#undef pa_context_kill_source_output +#undef pa_context_stat +#undef pa_context_get_sample_info_by_name +#undef pa_context_get_sample_info_by_index +#undef pa_context_get_sample_info_list +#undef pa_context_get_autoload_info_by_name +#undef pa_context_get_autoload_info_by_index +#undef pa_context_get_autoload_info_list +#undef pa_context_add_autoload +#undef pa_context_remove_autoload_by_name +#undef pa_context_remove_autoload_by_index +#undef pa_context_subscribe +#undef pa_context_set_subscribe_callback +#undef pa_stream_connect_upload +#undef pa_stream_finish_upload +#undef pa_context_remove_sample +#undef pa_context_play_sample +#undef pa_context_play_sample_with_proplist +#undef pa_strerror +#undef pa_xmalloc +#undef pa_xmalloc0 +#undef pa_xrealloc +#undef pa_xfree +#undef pa_xstrdup +#undef pa_xstrndup +#undef pa_xmemdup +#undef pa_utf8_valid +#undef pa_ascii_valid +#undef pa_utf8_filter +#undef pa_ascii_filter +#undef pa_utf8_to_locale +#undef pa_locale_to_utf8 +#undef pa_threaded_mainloop_new +#undef pa_threaded_mainloop_free +#undef pa_threaded_mainloop_start +#undef pa_threaded_mainloop_stop +#undef pa_threaded_mainloop_lock +#undef pa_threaded_mainloop_unlock +#undef pa_threaded_mainloop_wait +#undef pa_threaded_mainloop_signal +#undef pa_threaded_mainloop_accept +#undef pa_threaded_mainloop_get_retval +#undef pa_threaded_mainloop_get_api +#undef pa_threaded_mainloop_in_thread +#undef pa_threaded_mainloop_set_name +#undef pa_threaded_mainloop_once_unlocked +#undef pa_mainloop_new +#undef pa_mainloop_free +#undef pa_mainloop_prepare +#undef pa_mainloop_poll +#undef pa_mainloop_dispatch +#undef pa_mainloop_get_retval +#undef pa_mainloop_iterate +#undef pa_mainloop_run +#undef pa_mainloop_get_api +#undef pa_mainloop_quit +#undef pa_mainloop_wakeup +#undef pa_mainloop_set_poll_func +#undef pa_signal_init +#undef pa_signal_done +#undef pa_signal_new +#undef pa_signal_free +#undef pa_signal_set_destroy +#undef pa_get_user_name +#undef pa_get_host_name +#undef pa_get_fqdn +#undef pa_get_home_dir +#undef pa_get_binary_name +#undef pa_path_get_filename +#undef pa_msleep +#undef pa_thread_make_realtime +#undef pa_gettimeofday +#undef pa_timeval_diff +#undef pa_timeval_cmp +#undef pa_timeval_age +#undef pa_timeval_add +#undef pa_timeval_sub +#undef pa_timeval_store +#undef pa_timeval_load +#undef pa_rtclock_now +#include <dlfcn.h> +#include <stdio.h> +const char* (*pa_get_library_version_dylibloader_wrapper_pulse)( void); +size_t (*pa_bytes_per_second_dylibloader_wrapper_pulse)(const pa_sample_spec*); +size_t (*pa_frame_size_dylibloader_wrapper_pulse)(const pa_sample_spec*); +size_t (*pa_sample_size_dylibloader_wrapper_pulse)(const pa_sample_spec*); +size_t (*pa_sample_size_of_format_dylibloader_wrapper_pulse)( pa_sample_format_t); +pa_usec_t (*pa_bytes_to_usec_dylibloader_wrapper_pulse)( uint64_t,const pa_sample_spec*); +size_t (*pa_usec_to_bytes_dylibloader_wrapper_pulse)( pa_usec_t,const pa_sample_spec*); +pa_sample_spec* (*pa_sample_spec_init_dylibloader_wrapper_pulse)( pa_sample_spec*); +int (*pa_sample_format_valid_dylibloader_wrapper_pulse)( unsigned); +int (*pa_sample_rate_valid_dylibloader_wrapper_pulse)( uint32_t); +int (*pa_channels_valid_dylibloader_wrapper_pulse)( uint8_t); +int (*pa_sample_spec_valid_dylibloader_wrapper_pulse)(const pa_sample_spec*); +int (*pa_sample_spec_equal_dylibloader_wrapper_pulse)(const pa_sample_spec*,const pa_sample_spec*); +const char* (*pa_sample_format_to_string_dylibloader_wrapper_pulse)( pa_sample_format_t); +pa_sample_format_t (*pa_parse_sample_format_dylibloader_wrapper_pulse)(const char*); +char* (*pa_sample_spec_snprint_dylibloader_wrapper_pulse)( char*, size_t,const pa_sample_spec*); +char* (*pa_bytes_snprint_dylibloader_wrapper_pulse)( char*, size_t, unsigned); +int (*pa_sample_format_is_le_dylibloader_wrapper_pulse)( pa_sample_format_t); +int (*pa_sample_format_is_be_dylibloader_wrapper_pulse)( pa_sample_format_t); +int (*pa_direction_valid_dylibloader_wrapper_pulse)( pa_direction_t); +const char* (*pa_direction_to_string_dylibloader_wrapper_pulse)( pa_direction_t); +void (*pa_mainloop_api_once_dylibloader_wrapper_pulse)( pa_mainloop_api*, void*, void*); +pa_proplist* (*pa_proplist_new_dylibloader_wrapper_pulse)( void); +void (*pa_proplist_free_dylibloader_wrapper_pulse)( pa_proplist*); +int (*pa_proplist_key_valid_dylibloader_wrapper_pulse)(const char*); +int (*pa_proplist_sets_dylibloader_wrapper_pulse)( pa_proplist*,const char*,const char*); +int (*pa_proplist_setp_dylibloader_wrapper_pulse)( pa_proplist*,const char*); +int (*pa_proplist_setf_dylibloader_wrapper_pulse)( pa_proplist*,const char*,const char*,...); +int (*pa_proplist_set_dylibloader_wrapper_pulse)( pa_proplist*,const char*,const void*, size_t); +const char* (*pa_proplist_gets_dylibloader_wrapper_pulse)(const pa_proplist*,const char*); +int (*pa_proplist_get_dylibloader_wrapper_pulse)(const pa_proplist*,const char*,const void**, size_t*); +void (*pa_proplist_update_dylibloader_wrapper_pulse)( pa_proplist*, pa_update_mode_t,const pa_proplist*); +int (*pa_proplist_unset_dylibloader_wrapper_pulse)( pa_proplist*,const char*); +int (*pa_proplist_unset_many_dylibloader_wrapper_pulse)( pa_proplist*,const char* []); +const char* (*pa_proplist_iterate_dylibloader_wrapper_pulse)(const pa_proplist*, void**); +char* (*pa_proplist_to_string_dylibloader_wrapper_pulse)(const pa_proplist*); +char* (*pa_proplist_to_string_sep_dylibloader_wrapper_pulse)(const pa_proplist*,const char*); +pa_proplist* (*pa_proplist_from_string_dylibloader_wrapper_pulse)(const char*); +int (*pa_proplist_contains_dylibloader_wrapper_pulse)(const pa_proplist*,const char*); +void (*pa_proplist_clear_dylibloader_wrapper_pulse)( pa_proplist*); +pa_proplist* (*pa_proplist_copy_dylibloader_wrapper_pulse)(const pa_proplist*); +unsigned (*pa_proplist_size_dylibloader_wrapper_pulse)(const pa_proplist*); +int (*pa_proplist_isempty_dylibloader_wrapper_pulse)(const pa_proplist*); +int (*pa_proplist_equal_dylibloader_wrapper_pulse)(const pa_proplist*,const pa_proplist*); +pa_channel_map* (*pa_channel_map_init_dylibloader_wrapper_pulse)( pa_channel_map*); +pa_channel_map* (*pa_channel_map_init_mono_dylibloader_wrapper_pulse)( pa_channel_map*); +pa_channel_map* (*pa_channel_map_init_stereo_dylibloader_wrapper_pulse)( pa_channel_map*); +pa_channel_map* (*pa_channel_map_init_auto_dylibloader_wrapper_pulse)( pa_channel_map*, unsigned, pa_channel_map_def_t); +pa_channel_map* (*pa_channel_map_init_extend_dylibloader_wrapper_pulse)( pa_channel_map*, unsigned, pa_channel_map_def_t); +const char* (*pa_channel_position_to_string_dylibloader_wrapper_pulse)( pa_channel_position_t); +pa_channel_position_t (*pa_channel_position_from_string_dylibloader_wrapper_pulse)(const char*); +const char* (*pa_channel_position_to_pretty_string_dylibloader_wrapper_pulse)( pa_channel_position_t); +char* (*pa_channel_map_snprint_dylibloader_wrapper_pulse)( char*, size_t,const pa_channel_map*); +pa_channel_map* (*pa_channel_map_parse_dylibloader_wrapper_pulse)( pa_channel_map*,const char*); +int (*pa_channel_map_equal_dylibloader_wrapper_pulse)(const pa_channel_map*,const pa_channel_map*); +int (*pa_channel_map_valid_dylibloader_wrapper_pulse)(const pa_channel_map*); +int (*pa_channel_map_compatible_dylibloader_wrapper_pulse)(const pa_channel_map*,const pa_sample_spec*); +int (*pa_channel_map_superset_dylibloader_wrapper_pulse)(const pa_channel_map*,const pa_channel_map*); +int (*pa_channel_map_can_balance_dylibloader_wrapper_pulse)(const pa_channel_map*); +int (*pa_channel_map_can_fade_dylibloader_wrapper_pulse)(const pa_channel_map*); +int (*pa_channel_map_can_lfe_balance_dylibloader_wrapper_pulse)(const pa_channel_map*); +const char* (*pa_channel_map_to_name_dylibloader_wrapper_pulse)(const pa_channel_map*); +const char* (*pa_channel_map_to_pretty_name_dylibloader_wrapper_pulse)(const pa_channel_map*); +int (*pa_channel_map_has_position_dylibloader_wrapper_pulse)(const pa_channel_map*, pa_channel_position_t); +pa_channel_position_mask_t (*pa_channel_map_mask_dylibloader_wrapper_pulse)(const pa_channel_map*); +const char* (*pa_encoding_to_string_dylibloader_wrapper_pulse)( pa_encoding_t); +pa_encoding_t (*pa_encoding_from_string_dylibloader_wrapper_pulse)(const char*); +pa_format_info* (*pa_format_info_new_dylibloader_wrapper_pulse)( void); +pa_format_info* (*pa_format_info_copy_dylibloader_wrapper_pulse)(const pa_format_info*); +void (*pa_format_info_free_dylibloader_wrapper_pulse)( pa_format_info*); +int (*pa_format_info_valid_dylibloader_wrapper_pulse)(const pa_format_info*); +int (*pa_format_info_is_pcm_dylibloader_wrapper_pulse)(const pa_format_info*); +int (*pa_format_info_is_compatible_dylibloader_wrapper_pulse)(const pa_format_info*,const pa_format_info*); +char* (*pa_format_info_snprint_dylibloader_wrapper_pulse)( char*, size_t,const pa_format_info*); +pa_format_info* (*pa_format_info_from_string_dylibloader_wrapper_pulse)(const char*); +pa_format_info* (*pa_format_info_from_sample_spec_dylibloader_wrapper_pulse)(const pa_sample_spec*,const pa_channel_map*); +int (*pa_format_info_to_sample_spec_dylibloader_wrapper_pulse)(const pa_format_info*, pa_sample_spec*, pa_channel_map*); +pa_prop_type_t (*pa_format_info_get_prop_type_dylibloader_wrapper_pulse)(const pa_format_info*,const char*); +int (*pa_format_info_get_prop_int_dylibloader_wrapper_pulse)(const pa_format_info*,const char*, int*); +int (*pa_format_info_get_prop_int_range_dylibloader_wrapper_pulse)(const pa_format_info*,const char*, int*, int*); +int (*pa_format_info_get_prop_int_array_dylibloader_wrapper_pulse)(const pa_format_info*,const char*, int**, int*); +int (*pa_format_info_get_prop_string_dylibloader_wrapper_pulse)(const pa_format_info*,const char*, char**); +int (*pa_format_info_get_prop_string_array_dylibloader_wrapper_pulse)(const pa_format_info*,const char*, char***, int*); +void (*pa_format_info_free_string_array_dylibloader_wrapper_pulse)( char**, int); +int (*pa_format_info_get_sample_format_dylibloader_wrapper_pulse)(const pa_format_info*, pa_sample_format_t*); +int (*pa_format_info_get_rate_dylibloader_wrapper_pulse)(const pa_format_info*, uint32_t*); +int (*pa_format_info_get_channels_dylibloader_wrapper_pulse)(const pa_format_info*, uint8_t*); +int (*pa_format_info_get_channel_map_dylibloader_wrapper_pulse)(const pa_format_info*, pa_channel_map*); +void (*pa_format_info_set_prop_int_dylibloader_wrapper_pulse)( pa_format_info*,const char*, int); +void (*pa_format_info_set_prop_int_array_dylibloader_wrapper_pulse)( pa_format_info*,const char*,const int*, int); +void (*pa_format_info_set_prop_int_range_dylibloader_wrapper_pulse)( pa_format_info*,const char*, int, int); +void (*pa_format_info_set_prop_string_dylibloader_wrapper_pulse)( pa_format_info*,const char*,const char*); +void (*pa_format_info_set_prop_string_array_dylibloader_wrapper_pulse)( pa_format_info*,const char*,const char**, int); +void (*pa_format_info_set_sample_format_dylibloader_wrapper_pulse)( pa_format_info*, pa_sample_format_t); +void (*pa_format_info_set_rate_dylibloader_wrapper_pulse)( pa_format_info*, int); +void (*pa_format_info_set_channels_dylibloader_wrapper_pulse)( pa_format_info*, int); +void (*pa_format_info_set_channel_map_dylibloader_wrapper_pulse)( pa_format_info*,const pa_channel_map*); +pa_operation* (*pa_operation_ref_dylibloader_wrapper_pulse)( pa_operation*); +void (*pa_operation_unref_dylibloader_wrapper_pulse)( pa_operation*); +void (*pa_operation_cancel_dylibloader_wrapper_pulse)( pa_operation*); +pa_operation_state_t (*pa_operation_get_state_dylibloader_wrapper_pulse)(const pa_operation*); +void (*pa_operation_set_state_callback_dylibloader_wrapper_pulse)( pa_operation*, pa_operation_notify_cb_t, void*); +pa_context* (*pa_context_new_dylibloader_wrapper_pulse)( pa_mainloop_api*,const char*); +pa_context* (*pa_context_new_with_proplist_dylibloader_wrapper_pulse)( pa_mainloop_api*,const char*,const pa_proplist*); +void (*pa_context_unref_dylibloader_wrapper_pulse)( pa_context*); +pa_context* (*pa_context_ref_dylibloader_wrapper_pulse)( pa_context*); +void (*pa_context_set_state_callback_dylibloader_wrapper_pulse)( pa_context*, pa_context_notify_cb_t, void*); +void (*pa_context_set_event_callback_dylibloader_wrapper_pulse)( pa_context*, pa_context_event_cb_t, void*); +int (*pa_context_errno_dylibloader_wrapper_pulse)(const pa_context*); +int (*pa_context_is_pending_dylibloader_wrapper_pulse)(const pa_context*); +pa_context_state_t (*pa_context_get_state_dylibloader_wrapper_pulse)(const pa_context*); +int (*pa_context_connect_dylibloader_wrapper_pulse)( pa_context*,const char*, pa_context_flags_t,const pa_spawn_api*); +void (*pa_context_disconnect_dylibloader_wrapper_pulse)( pa_context*); +pa_operation* (*pa_context_drain_dylibloader_wrapper_pulse)( pa_context*, pa_context_notify_cb_t, void*); +pa_operation* (*pa_context_exit_daemon_dylibloader_wrapper_pulse)( pa_context*, pa_context_success_cb_t, void*); +pa_operation* (*pa_context_set_default_sink_dylibloader_wrapper_pulse)( pa_context*,const char*, pa_context_success_cb_t, void*); +pa_operation* (*pa_context_set_default_source_dylibloader_wrapper_pulse)( pa_context*,const char*, pa_context_success_cb_t, void*); +int (*pa_context_is_local_dylibloader_wrapper_pulse)(const pa_context*); +pa_operation* (*pa_context_set_name_dylibloader_wrapper_pulse)( pa_context*,const char*, pa_context_success_cb_t, void*); +const char* (*pa_context_get_server_dylibloader_wrapper_pulse)(const pa_context*); +uint32_t (*pa_context_get_protocol_version_dylibloader_wrapper_pulse)(const pa_context*); +uint32_t (*pa_context_get_server_protocol_version_dylibloader_wrapper_pulse)(const pa_context*); +pa_operation* (*pa_context_proplist_update_dylibloader_wrapper_pulse)( pa_context*, pa_update_mode_t,const pa_proplist*, pa_context_success_cb_t, void*); +pa_operation* (*pa_context_proplist_remove_dylibloader_wrapper_pulse)( pa_context*,const char* [], pa_context_success_cb_t, void*); +uint32_t (*pa_context_get_index_dylibloader_wrapper_pulse)(const pa_context*); +pa_time_event* (*pa_context_rttime_new_dylibloader_wrapper_pulse)(const pa_context*, pa_usec_t, pa_time_event_cb_t, void*); +void (*pa_context_rttime_restart_dylibloader_wrapper_pulse)(const pa_context*, pa_time_event*, pa_usec_t); +size_t (*pa_context_get_tile_size_dylibloader_wrapper_pulse)(const pa_context*,const pa_sample_spec*); +int (*pa_context_load_cookie_from_file_dylibloader_wrapper_pulse)( pa_context*,const char*); +int (*pa_cvolume_equal_dylibloader_wrapper_pulse)(const pa_cvolume*,const pa_cvolume*); +pa_cvolume* (*pa_cvolume_init_dylibloader_wrapper_pulse)( pa_cvolume*); +pa_cvolume* (*pa_cvolume_set_dylibloader_wrapper_pulse)( pa_cvolume*, unsigned, pa_volume_t); +char* (*pa_cvolume_snprint_dylibloader_wrapper_pulse)( char*, size_t,const pa_cvolume*); +char* (*pa_sw_cvolume_snprint_dB_dylibloader_wrapper_pulse)( char*, size_t,const pa_cvolume*); +char* (*pa_cvolume_snprint_verbose_dylibloader_wrapper_pulse)( char*, size_t,const pa_cvolume*,const pa_channel_map*, int); +char* (*pa_volume_snprint_dylibloader_wrapper_pulse)( char*, size_t, pa_volume_t); +char* (*pa_sw_volume_snprint_dB_dylibloader_wrapper_pulse)( char*, size_t, pa_volume_t); +char* (*pa_volume_snprint_verbose_dylibloader_wrapper_pulse)( char*, size_t, pa_volume_t, int); +pa_volume_t (*pa_cvolume_avg_dylibloader_wrapper_pulse)(const pa_cvolume*); +pa_volume_t (*pa_cvolume_avg_mask_dylibloader_wrapper_pulse)(const pa_cvolume*,const pa_channel_map*, pa_channel_position_mask_t); +pa_volume_t (*pa_cvolume_max_dylibloader_wrapper_pulse)(const pa_cvolume*); +pa_volume_t (*pa_cvolume_max_mask_dylibloader_wrapper_pulse)(const pa_cvolume*,const pa_channel_map*, pa_channel_position_mask_t); +pa_volume_t (*pa_cvolume_min_dylibloader_wrapper_pulse)(const pa_cvolume*); +pa_volume_t (*pa_cvolume_min_mask_dylibloader_wrapper_pulse)(const pa_cvolume*,const pa_channel_map*, pa_channel_position_mask_t); +int (*pa_cvolume_valid_dylibloader_wrapper_pulse)(const pa_cvolume*); +int (*pa_cvolume_channels_equal_to_dylibloader_wrapper_pulse)(const pa_cvolume*, pa_volume_t); +pa_volume_t (*pa_sw_volume_multiply_dylibloader_wrapper_pulse)( pa_volume_t, pa_volume_t); +pa_cvolume* (*pa_sw_cvolume_multiply_dylibloader_wrapper_pulse)( pa_cvolume*,const pa_cvolume*,const pa_cvolume*); +pa_cvolume* (*pa_sw_cvolume_multiply_scalar_dylibloader_wrapper_pulse)( pa_cvolume*,const pa_cvolume*, pa_volume_t); +pa_volume_t (*pa_sw_volume_divide_dylibloader_wrapper_pulse)( pa_volume_t, pa_volume_t); +pa_cvolume* (*pa_sw_cvolume_divide_dylibloader_wrapper_pulse)( pa_cvolume*,const pa_cvolume*,const pa_cvolume*); +pa_cvolume* (*pa_sw_cvolume_divide_scalar_dylibloader_wrapper_pulse)( pa_cvolume*,const pa_cvolume*, pa_volume_t); +pa_volume_t (*pa_sw_volume_from_dB_dylibloader_wrapper_pulse)( double); +double (*pa_sw_volume_to_dB_dylibloader_wrapper_pulse)( pa_volume_t); +pa_volume_t (*pa_sw_volume_from_linear_dylibloader_wrapper_pulse)( double); +double (*pa_sw_volume_to_linear_dylibloader_wrapper_pulse)( pa_volume_t); +pa_cvolume* (*pa_cvolume_remap_dylibloader_wrapper_pulse)( pa_cvolume*,const pa_channel_map*,const pa_channel_map*); +int (*pa_cvolume_compatible_dylibloader_wrapper_pulse)(const pa_cvolume*,const pa_sample_spec*); +int (*pa_cvolume_compatible_with_channel_map_dylibloader_wrapper_pulse)(const pa_cvolume*,const pa_channel_map*); +float (*pa_cvolume_get_balance_dylibloader_wrapper_pulse)(const pa_cvolume*,const pa_channel_map*); +pa_cvolume* (*pa_cvolume_set_balance_dylibloader_wrapper_pulse)( pa_cvolume*,const pa_channel_map*, float); +float (*pa_cvolume_get_fade_dylibloader_wrapper_pulse)(const pa_cvolume*,const pa_channel_map*); +pa_cvolume* (*pa_cvolume_set_fade_dylibloader_wrapper_pulse)( pa_cvolume*,const pa_channel_map*, float); +float (*pa_cvolume_get_lfe_balance_dylibloader_wrapper_pulse)(const pa_cvolume*,const pa_channel_map*); +pa_cvolume* (*pa_cvolume_set_lfe_balance_dylibloader_wrapper_pulse)( pa_cvolume*,const pa_channel_map*, float); +pa_cvolume* (*pa_cvolume_scale_dylibloader_wrapper_pulse)( pa_cvolume*, pa_volume_t); +pa_cvolume* (*pa_cvolume_scale_mask_dylibloader_wrapper_pulse)( pa_cvolume*, pa_volume_t,const pa_channel_map*, pa_channel_position_mask_t); +pa_cvolume* (*pa_cvolume_set_position_dylibloader_wrapper_pulse)( pa_cvolume*,const pa_channel_map*, pa_channel_position_t, pa_volume_t); +pa_volume_t (*pa_cvolume_get_position_dylibloader_wrapper_pulse)(const pa_cvolume*,const pa_channel_map*, pa_channel_position_t); +pa_cvolume* (*pa_cvolume_merge_dylibloader_wrapper_pulse)( pa_cvolume*,const pa_cvolume*,const pa_cvolume*); +pa_cvolume* (*pa_cvolume_inc_clamp_dylibloader_wrapper_pulse)( pa_cvolume*, pa_volume_t, pa_volume_t); +pa_cvolume* (*pa_cvolume_inc_dylibloader_wrapper_pulse)( pa_cvolume*, pa_volume_t); +pa_cvolume* (*pa_cvolume_dec_dylibloader_wrapper_pulse)( pa_cvolume*, pa_volume_t); +pa_stream* (*pa_stream_new_dylibloader_wrapper_pulse)( pa_context*,const char*,const pa_sample_spec*,const pa_channel_map*); +pa_stream* (*pa_stream_new_with_proplist_dylibloader_wrapper_pulse)( pa_context*,const char*,const pa_sample_spec*,const pa_channel_map*, pa_proplist*); +pa_stream* (*pa_stream_new_extended_dylibloader_wrapper_pulse)( pa_context*,const char*, pa_format_info**, unsigned int, pa_proplist*); +void (*pa_stream_unref_dylibloader_wrapper_pulse)( pa_stream*); +pa_stream* (*pa_stream_ref_dylibloader_wrapper_pulse)( pa_stream*); +pa_stream_state_t (*pa_stream_get_state_dylibloader_wrapper_pulse)(const pa_stream*); +pa_context* (*pa_stream_get_context_dylibloader_wrapper_pulse)(const pa_stream*); +uint32_t (*pa_stream_get_index_dylibloader_wrapper_pulse)(const pa_stream*); +uint32_t (*pa_stream_get_device_index_dylibloader_wrapper_pulse)(const pa_stream*); +const char* (*pa_stream_get_device_name_dylibloader_wrapper_pulse)(const pa_stream*); +int (*pa_stream_is_suspended_dylibloader_wrapper_pulse)(const pa_stream*); +int (*pa_stream_is_corked_dylibloader_wrapper_pulse)(const pa_stream*); +int (*pa_stream_connect_playback_dylibloader_wrapper_pulse)( pa_stream*,const char*,const pa_buffer_attr*, pa_stream_flags_t,const pa_cvolume*, pa_stream*); +int (*pa_stream_connect_record_dylibloader_wrapper_pulse)( pa_stream*,const char*,const pa_buffer_attr*, pa_stream_flags_t); +int (*pa_stream_disconnect_dylibloader_wrapper_pulse)( pa_stream*); +int (*pa_stream_begin_write_dylibloader_wrapper_pulse)( pa_stream*, void**, size_t*); +int (*pa_stream_cancel_write_dylibloader_wrapper_pulse)( pa_stream*); +int (*pa_stream_write_dylibloader_wrapper_pulse)( pa_stream*,const void*, size_t, pa_free_cb_t, int64_t, pa_seek_mode_t); +int (*pa_stream_write_ext_free_dylibloader_wrapper_pulse)( pa_stream*,const void*, size_t, pa_free_cb_t, void*, int64_t, pa_seek_mode_t); +int (*pa_stream_peek_dylibloader_wrapper_pulse)( pa_stream*,const void**, size_t*); +int (*pa_stream_drop_dylibloader_wrapper_pulse)( pa_stream*); +size_t (*pa_stream_writable_size_dylibloader_wrapper_pulse)(const pa_stream*); +size_t (*pa_stream_readable_size_dylibloader_wrapper_pulse)(const pa_stream*); +pa_operation* (*pa_stream_drain_dylibloader_wrapper_pulse)( pa_stream*, pa_stream_success_cb_t, void*); +pa_operation* (*pa_stream_update_timing_info_dylibloader_wrapper_pulse)( pa_stream*, pa_stream_success_cb_t, void*); +void (*pa_stream_set_state_callback_dylibloader_wrapper_pulse)( pa_stream*, pa_stream_notify_cb_t, void*); +void (*pa_stream_set_write_callback_dylibloader_wrapper_pulse)( pa_stream*, pa_stream_request_cb_t, void*); +void (*pa_stream_set_read_callback_dylibloader_wrapper_pulse)( pa_stream*, pa_stream_request_cb_t, void*); +void (*pa_stream_set_overflow_callback_dylibloader_wrapper_pulse)( pa_stream*, pa_stream_notify_cb_t, void*); +int64_t (*pa_stream_get_underflow_index_dylibloader_wrapper_pulse)(const pa_stream*); +void (*pa_stream_set_underflow_callback_dylibloader_wrapper_pulse)( pa_stream*, pa_stream_notify_cb_t, void*); +void (*pa_stream_set_started_callback_dylibloader_wrapper_pulse)( pa_stream*, pa_stream_notify_cb_t, void*); +void (*pa_stream_set_latency_update_callback_dylibloader_wrapper_pulse)( pa_stream*, pa_stream_notify_cb_t, void*); +void (*pa_stream_set_moved_callback_dylibloader_wrapper_pulse)( pa_stream*, pa_stream_notify_cb_t, void*); +void (*pa_stream_set_suspended_callback_dylibloader_wrapper_pulse)( pa_stream*, pa_stream_notify_cb_t, void*); +void (*pa_stream_set_event_callback_dylibloader_wrapper_pulse)( pa_stream*, pa_stream_event_cb_t, void*); +void (*pa_stream_set_buffer_attr_callback_dylibloader_wrapper_pulse)( pa_stream*, pa_stream_notify_cb_t, void*); +pa_operation* (*pa_stream_cork_dylibloader_wrapper_pulse)( pa_stream*, int, pa_stream_success_cb_t, void*); +pa_operation* (*pa_stream_flush_dylibloader_wrapper_pulse)( pa_stream*, pa_stream_success_cb_t, void*); +pa_operation* (*pa_stream_prebuf_dylibloader_wrapper_pulse)( pa_stream*, pa_stream_success_cb_t, void*); +pa_operation* (*pa_stream_trigger_dylibloader_wrapper_pulse)( pa_stream*, pa_stream_success_cb_t, void*); +pa_operation* (*pa_stream_set_name_dylibloader_wrapper_pulse)( pa_stream*,const char*, pa_stream_success_cb_t, void*); +int (*pa_stream_get_time_dylibloader_wrapper_pulse)( pa_stream*, pa_usec_t*); +int (*pa_stream_get_latency_dylibloader_wrapper_pulse)( pa_stream*, pa_usec_t*, int*); +const pa_timing_info* (*pa_stream_get_timing_info_dylibloader_wrapper_pulse)( pa_stream*); +const pa_sample_spec* (*pa_stream_get_sample_spec_dylibloader_wrapper_pulse)( pa_stream*); +const pa_channel_map* (*pa_stream_get_channel_map_dylibloader_wrapper_pulse)( pa_stream*); +const pa_format_info* (*pa_stream_get_format_info_dylibloader_wrapper_pulse)(const pa_stream*); +const pa_buffer_attr* (*pa_stream_get_buffer_attr_dylibloader_wrapper_pulse)( pa_stream*); +pa_operation* (*pa_stream_set_buffer_attr_dylibloader_wrapper_pulse)( pa_stream*,const pa_buffer_attr*, pa_stream_success_cb_t, void*); +pa_operation* (*pa_stream_update_sample_rate_dylibloader_wrapper_pulse)( pa_stream*, uint32_t, pa_stream_success_cb_t, void*); +pa_operation* (*pa_stream_proplist_update_dylibloader_wrapper_pulse)( pa_stream*, pa_update_mode_t, pa_proplist*, pa_stream_success_cb_t, void*); +pa_operation* (*pa_stream_proplist_remove_dylibloader_wrapper_pulse)( pa_stream*,const char* [], pa_stream_success_cb_t, void*); +int (*pa_stream_set_monitor_stream_dylibloader_wrapper_pulse)( pa_stream*, uint32_t); +uint32_t (*pa_stream_get_monitor_stream_dylibloader_wrapper_pulse)(const pa_stream*); +pa_operation* (*pa_context_get_sink_info_by_name_dylibloader_wrapper_pulse)( pa_context*,const char*, pa_sink_info_cb_t, void*); +pa_operation* (*pa_context_get_sink_info_by_index_dylibloader_wrapper_pulse)( pa_context*, uint32_t, pa_sink_info_cb_t, void*); +pa_operation* (*pa_context_get_sink_info_list_dylibloader_wrapper_pulse)( pa_context*, pa_sink_info_cb_t, void*); +pa_operation* (*pa_context_set_sink_volume_by_index_dylibloader_wrapper_pulse)( pa_context*, uint32_t,const pa_cvolume*, pa_context_success_cb_t, void*); +pa_operation* (*pa_context_set_sink_volume_by_name_dylibloader_wrapper_pulse)( pa_context*,const char*,const pa_cvolume*, pa_context_success_cb_t, void*); +pa_operation* (*pa_context_set_sink_mute_by_index_dylibloader_wrapper_pulse)( pa_context*, uint32_t, int, pa_context_success_cb_t, void*); +pa_operation* (*pa_context_set_sink_mute_by_name_dylibloader_wrapper_pulse)( pa_context*,const char*, int, pa_context_success_cb_t, void*); +pa_operation* (*pa_context_suspend_sink_by_name_dylibloader_wrapper_pulse)( pa_context*,const char*, int, pa_context_success_cb_t, void*); +pa_operation* (*pa_context_suspend_sink_by_index_dylibloader_wrapper_pulse)( pa_context*, uint32_t, int, pa_context_success_cb_t, void*); +pa_operation* (*pa_context_set_sink_port_by_index_dylibloader_wrapper_pulse)( pa_context*, uint32_t,const char*, pa_context_success_cb_t, void*); +pa_operation* (*pa_context_set_sink_port_by_name_dylibloader_wrapper_pulse)( pa_context*,const char*,const char*, pa_context_success_cb_t, void*); +pa_operation* (*pa_context_get_source_info_by_name_dylibloader_wrapper_pulse)( pa_context*,const char*, pa_source_info_cb_t, void*); +pa_operation* (*pa_context_get_source_info_by_index_dylibloader_wrapper_pulse)( pa_context*, uint32_t, pa_source_info_cb_t, void*); +pa_operation* (*pa_context_get_source_info_list_dylibloader_wrapper_pulse)( pa_context*, pa_source_info_cb_t, void*); +pa_operation* (*pa_context_set_source_volume_by_index_dylibloader_wrapper_pulse)( pa_context*, uint32_t,const pa_cvolume*, pa_context_success_cb_t, void*); +pa_operation* (*pa_context_set_source_volume_by_name_dylibloader_wrapper_pulse)( pa_context*,const char*,const pa_cvolume*, pa_context_success_cb_t, void*); +pa_operation* (*pa_context_set_source_mute_by_index_dylibloader_wrapper_pulse)( pa_context*, uint32_t, int, pa_context_success_cb_t, void*); +pa_operation* (*pa_context_set_source_mute_by_name_dylibloader_wrapper_pulse)( pa_context*,const char*, int, pa_context_success_cb_t, void*); +pa_operation* (*pa_context_suspend_source_by_name_dylibloader_wrapper_pulse)( pa_context*,const char*, int, pa_context_success_cb_t, void*); +pa_operation* (*pa_context_suspend_source_by_index_dylibloader_wrapper_pulse)( pa_context*, uint32_t, int, pa_context_success_cb_t, void*); +pa_operation* (*pa_context_set_source_port_by_index_dylibloader_wrapper_pulse)( pa_context*, uint32_t,const char*, pa_context_success_cb_t, void*); +pa_operation* (*pa_context_set_source_port_by_name_dylibloader_wrapper_pulse)( pa_context*,const char*,const char*, pa_context_success_cb_t, void*); +pa_operation* (*pa_context_get_server_info_dylibloader_wrapper_pulse)( pa_context*, pa_server_info_cb_t, void*); +pa_operation* (*pa_context_get_module_info_dylibloader_wrapper_pulse)( pa_context*, uint32_t, pa_module_info_cb_t, void*); +pa_operation* (*pa_context_get_module_info_list_dylibloader_wrapper_pulse)( pa_context*, pa_module_info_cb_t, void*); +pa_operation* (*pa_context_load_module_dylibloader_wrapper_pulse)( pa_context*,const char*,const char*, pa_context_index_cb_t, void*); +pa_operation* (*pa_context_unload_module_dylibloader_wrapper_pulse)( pa_context*, uint32_t, pa_context_success_cb_t, void*); +pa_operation* (*pa_context_get_client_info_dylibloader_wrapper_pulse)( pa_context*, uint32_t, pa_client_info_cb_t, void*); +pa_operation* (*pa_context_get_client_info_list_dylibloader_wrapper_pulse)( pa_context*, pa_client_info_cb_t, void*); +pa_operation* (*pa_context_kill_client_dylibloader_wrapper_pulse)( pa_context*, uint32_t, pa_context_success_cb_t, void*); +pa_operation* (*pa_context_get_card_info_by_index_dylibloader_wrapper_pulse)( pa_context*, uint32_t, pa_card_info_cb_t, void*); +pa_operation* (*pa_context_get_card_info_by_name_dylibloader_wrapper_pulse)( pa_context*,const char*, pa_card_info_cb_t, void*); +pa_operation* (*pa_context_get_card_info_list_dylibloader_wrapper_pulse)( pa_context*, pa_card_info_cb_t, void*); +pa_operation* (*pa_context_set_card_profile_by_index_dylibloader_wrapper_pulse)( pa_context*, uint32_t,const char*, pa_context_success_cb_t, void*); +pa_operation* (*pa_context_set_card_profile_by_name_dylibloader_wrapper_pulse)( pa_context*,const char*,const char*, pa_context_success_cb_t, void*); +pa_operation* (*pa_context_set_port_latency_offset_dylibloader_wrapper_pulse)( pa_context*,const char*,const char*, int64_t, pa_context_success_cb_t, void*); +pa_operation* (*pa_context_get_sink_input_info_dylibloader_wrapper_pulse)( pa_context*, uint32_t, pa_sink_input_info_cb_t, void*); +pa_operation* (*pa_context_get_sink_input_info_list_dylibloader_wrapper_pulse)( pa_context*, pa_sink_input_info_cb_t, void*); +pa_operation* (*pa_context_move_sink_input_by_name_dylibloader_wrapper_pulse)( pa_context*, uint32_t,const char*, pa_context_success_cb_t, void*); +pa_operation* (*pa_context_move_sink_input_by_index_dylibloader_wrapper_pulse)( pa_context*, uint32_t, uint32_t, pa_context_success_cb_t, void*); +pa_operation* (*pa_context_set_sink_input_volume_dylibloader_wrapper_pulse)( pa_context*, uint32_t,const pa_cvolume*, pa_context_success_cb_t, void*); +pa_operation* (*pa_context_set_sink_input_mute_dylibloader_wrapper_pulse)( pa_context*, uint32_t, int, pa_context_success_cb_t, void*); +pa_operation* (*pa_context_kill_sink_input_dylibloader_wrapper_pulse)( pa_context*, uint32_t, pa_context_success_cb_t, void*); +pa_operation* (*pa_context_get_source_output_info_dylibloader_wrapper_pulse)( pa_context*, uint32_t, pa_source_output_info_cb_t, void*); +pa_operation* (*pa_context_get_source_output_info_list_dylibloader_wrapper_pulse)( pa_context*, pa_source_output_info_cb_t, void*); +pa_operation* (*pa_context_move_source_output_by_name_dylibloader_wrapper_pulse)( pa_context*, uint32_t,const char*, pa_context_success_cb_t, void*); +pa_operation* (*pa_context_move_source_output_by_index_dylibloader_wrapper_pulse)( pa_context*, uint32_t, uint32_t, pa_context_success_cb_t, void*); +pa_operation* (*pa_context_set_source_output_volume_dylibloader_wrapper_pulse)( pa_context*, uint32_t,const pa_cvolume*, pa_context_success_cb_t, void*); +pa_operation* (*pa_context_set_source_output_mute_dylibloader_wrapper_pulse)( pa_context*, uint32_t, int, pa_context_success_cb_t, void*); +pa_operation* (*pa_context_kill_source_output_dylibloader_wrapper_pulse)( pa_context*, uint32_t, pa_context_success_cb_t, void*); +pa_operation* (*pa_context_stat_dylibloader_wrapper_pulse)( pa_context*, pa_stat_info_cb_t, void*); +pa_operation* (*pa_context_get_sample_info_by_name_dylibloader_wrapper_pulse)( pa_context*,const char*, pa_sample_info_cb_t, void*); +pa_operation* (*pa_context_get_sample_info_by_index_dylibloader_wrapper_pulse)( pa_context*, uint32_t, pa_sample_info_cb_t, void*); +pa_operation* (*pa_context_get_sample_info_list_dylibloader_wrapper_pulse)( pa_context*, pa_sample_info_cb_t, void*); +pa_operation* (*pa_context_get_autoload_info_by_name_dylibloader_wrapper_pulse)( pa_context*,const char*, pa_autoload_type_t, pa_autoload_info_cb_t, void*); +pa_operation* (*pa_context_get_autoload_info_by_index_dylibloader_wrapper_pulse)( pa_context*, uint32_t, pa_autoload_info_cb_t, void*); +pa_operation* (*pa_context_get_autoload_info_list_dylibloader_wrapper_pulse)( pa_context*, pa_autoload_info_cb_t, void*); +pa_operation* (*pa_context_add_autoload_dylibloader_wrapper_pulse)( pa_context*,const char*, pa_autoload_type_t,const char*,const char*, pa_context_index_cb_t, void*); +pa_operation* (*pa_context_remove_autoload_by_name_dylibloader_wrapper_pulse)( pa_context*,const char*, pa_autoload_type_t, pa_context_success_cb_t, void*); +pa_operation* (*pa_context_remove_autoload_by_index_dylibloader_wrapper_pulse)( pa_context*, uint32_t, pa_context_success_cb_t, void*); +pa_operation* (*pa_context_subscribe_dylibloader_wrapper_pulse)( pa_context*, pa_subscription_mask_t, pa_context_success_cb_t, void*); +void (*pa_context_set_subscribe_callback_dylibloader_wrapper_pulse)( pa_context*, pa_context_subscribe_cb_t, void*); +int (*pa_stream_connect_upload_dylibloader_wrapper_pulse)( pa_stream*, size_t); +int (*pa_stream_finish_upload_dylibloader_wrapper_pulse)( pa_stream*); +pa_operation* (*pa_context_remove_sample_dylibloader_wrapper_pulse)( pa_context*,const char*, pa_context_success_cb_t, void*); +pa_operation* (*pa_context_play_sample_dylibloader_wrapper_pulse)( pa_context*,const char*,const char*, pa_volume_t, pa_context_success_cb_t, void*); +pa_operation* (*pa_context_play_sample_with_proplist_dylibloader_wrapper_pulse)( pa_context*,const char*,const char*, pa_volume_t,const pa_proplist*, pa_context_play_sample_cb_t, void*); +const char* (*pa_strerror_dylibloader_wrapper_pulse)( int); +void* (*pa_xmalloc_dylibloader_wrapper_pulse)( size_t); +void* (*pa_xmalloc0_dylibloader_wrapper_pulse)( size_t); +void* (*pa_xrealloc_dylibloader_wrapper_pulse)( void*, size_t); +void (*pa_xfree_dylibloader_wrapper_pulse)( void*); +char* (*pa_xstrdup_dylibloader_wrapper_pulse)(const char*); +char* (*pa_xstrndup_dylibloader_wrapper_pulse)(const char*, size_t); +void* (*pa_xmemdup_dylibloader_wrapper_pulse)(const void*, size_t); +char* (*pa_utf8_valid_dylibloader_wrapper_pulse)(const char*); +char* (*pa_ascii_valid_dylibloader_wrapper_pulse)(const char*); +char* (*pa_utf8_filter_dylibloader_wrapper_pulse)(const char*); +char* (*pa_ascii_filter_dylibloader_wrapper_pulse)(const char*); +char* (*pa_utf8_to_locale_dylibloader_wrapper_pulse)(const char*); +char* (*pa_locale_to_utf8_dylibloader_wrapper_pulse)(const char*); +pa_threaded_mainloop* (*pa_threaded_mainloop_new_dylibloader_wrapper_pulse)( void); +void (*pa_threaded_mainloop_free_dylibloader_wrapper_pulse)( pa_threaded_mainloop*); +int (*pa_threaded_mainloop_start_dylibloader_wrapper_pulse)( pa_threaded_mainloop*); +void (*pa_threaded_mainloop_stop_dylibloader_wrapper_pulse)( pa_threaded_mainloop*); +void (*pa_threaded_mainloop_lock_dylibloader_wrapper_pulse)( pa_threaded_mainloop*); +void (*pa_threaded_mainloop_unlock_dylibloader_wrapper_pulse)( pa_threaded_mainloop*); +void (*pa_threaded_mainloop_wait_dylibloader_wrapper_pulse)( pa_threaded_mainloop*); +void (*pa_threaded_mainloop_signal_dylibloader_wrapper_pulse)( pa_threaded_mainloop*, int); +void (*pa_threaded_mainloop_accept_dylibloader_wrapper_pulse)( pa_threaded_mainloop*); +int (*pa_threaded_mainloop_get_retval_dylibloader_wrapper_pulse)(const pa_threaded_mainloop*); +pa_mainloop_api* (*pa_threaded_mainloop_get_api_dylibloader_wrapper_pulse)( pa_threaded_mainloop*); +int (*pa_threaded_mainloop_in_thread_dylibloader_wrapper_pulse)( pa_threaded_mainloop*); +void (*pa_threaded_mainloop_set_name_dylibloader_wrapper_pulse)( pa_threaded_mainloop*,const char*); +void (*pa_threaded_mainloop_once_unlocked_dylibloader_wrapper_pulse)( pa_threaded_mainloop*, void*, void*); +pa_mainloop* (*pa_mainloop_new_dylibloader_wrapper_pulse)( void); +void (*pa_mainloop_free_dylibloader_wrapper_pulse)( pa_mainloop*); +int (*pa_mainloop_prepare_dylibloader_wrapper_pulse)( pa_mainloop*, int); +int (*pa_mainloop_poll_dylibloader_wrapper_pulse)( pa_mainloop*); +int (*pa_mainloop_dispatch_dylibloader_wrapper_pulse)( pa_mainloop*); +int (*pa_mainloop_get_retval_dylibloader_wrapper_pulse)(const pa_mainloop*); +int (*pa_mainloop_iterate_dylibloader_wrapper_pulse)( pa_mainloop*, int, int*); +int (*pa_mainloop_run_dylibloader_wrapper_pulse)( pa_mainloop*, int*); +pa_mainloop_api* (*pa_mainloop_get_api_dylibloader_wrapper_pulse)( pa_mainloop*); +void (*pa_mainloop_quit_dylibloader_wrapper_pulse)( pa_mainloop*, int); +void (*pa_mainloop_wakeup_dylibloader_wrapper_pulse)( pa_mainloop*); +void (*pa_mainloop_set_poll_func_dylibloader_wrapper_pulse)( pa_mainloop*, pa_poll_func, void*); +int (*pa_signal_init_dylibloader_wrapper_pulse)( pa_mainloop_api*); +void (*pa_signal_done_dylibloader_wrapper_pulse)( void); +pa_signal_event* (*pa_signal_new_dylibloader_wrapper_pulse)( int, pa_signal_cb_t, void*); +void (*pa_signal_free_dylibloader_wrapper_pulse)( pa_signal_event*); +void (*pa_signal_set_destroy_dylibloader_wrapper_pulse)( pa_signal_event*, pa_signal_destroy_cb_t); +char* (*pa_get_user_name_dylibloader_wrapper_pulse)( char*, size_t); +char* (*pa_get_host_name_dylibloader_wrapper_pulse)( char*, size_t); +char* (*pa_get_fqdn_dylibloader_wrapper_pulse)( char*, size_t); +char* (*pa_get_home_dir_dylibloader_wrapper_pulse)( char*, size_t); +char* (*pa_get_binary_name_dylibloader_wrapper_pulse)( char*, size_t); +char* (*pa_path_get_filename_dylibloader_wrapper_pulse)(const char*); +int (*pa_msleep_dylibloader_wrapper_pulse)( unsigned long); +int (*pa_thread_make_realtime_dylibloader_wrapper_pulse)( int); +struct timeval* (*pa_gettimeofday_dylibloader_wrapper_pulse)(struct timeval*); +pa_usec_t (*pa_timeval_diff_dylibloader_wrapper_pulse)(struct timeval*,struct timeval*); +int (*pa_timeval_cmp_dylibloader_wrapper_pulse)(struct timeval*,struct timeval*); +pa_usec_t (*pa_timeval_age_dylibloader_wrapper_pulse)(struct timeval*); +struct timeval* (*pa_timeval_add_dylibloader_wrapper_pulse)(struct timeval*, pa_usec_t); +struct timeval* (*pa_timeval_sub_dylibloader_wrapper_pulse)(struct timeval*, pa_usec_t); +struct timeval* (*pa_timeval_store_dylibloader_wrapper_pulse)(struct timeval*, pa_usec_t); +pa_usec_t (*pa_timeval_load_dylibloader_wrapper_pulse)(struct timeval*); +pa_usec_t (*pa_rtclock_now_dylibloader_wrapper_pulse)( void); +int initialize_pulse() { + void *handle; + char *error; + handle = dlopen("libpulse.so.0", RTLD_LAZY); + if (!handle) { + fprintf(stderr, "%s\n", dlerror()); + return(1); + } + dlerror(); +// pa_get_library_version + *(void **) (&pa_get_library_version_dylibloader_wrapper_pulse) = dlsym(handle, "pa_get_library_version"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_bytes_per_second + *(void **) (&pa_bytes_per_second_dylibloader_wrapper_pulse) = dlsym(handle, "pa_bytes_per_second"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_frame_size + *(void **) (&pa_frame_size_dylibloader_wrapper_pulse) = dlsym(handle, "pa_frame_size"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_sample_size + *(void **) (&pa_sample_size_dylibloader_wrapper_pulse) = dlsym(handle, "pa_sample_size"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_sample_size_of_format + *(void **) (&pa_sample_size_of_format_dylibloader_wrapper_pulse) = dlsym(handle, "pa_sample_size_of_format"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_bytes_to_usec + *(void **) (&pa_bytes_to_usec_dylibloader_wrapper_pulse) = dlsym(handle, "pa_bytes_to_usec"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_usec_to_bytes + *(void **) (&pa_usec_to_bytes_dylibloader_wrapper_pulse) = dlsym(handle, "pa_usec_to_bytes"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_sample_spec_init + *(void **) (&pa_sample_spec_init_dylibloader_wrapper_pulse) = dlsym(handle, "pa_sample_spec_init"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_sample_format_valid + *(void **) (&pa_sample_format_valid_dylibloader_wrapper_pulse) = dlsym(handle, "pa_sample_format_valid"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_sample_rate_valid + *(void **) (&pa_sample_rate_valid_dylibloader_wrapper_pulse) = dlsym(handle, "pa_sample_rate_valid"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_channels_valid + *(void **) (&pa_channels_valid_dylibloader_wrapper_pulse) = dlsym(handle, "pa_channels_valid"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_sample_spec_valid + *(void **) (&pa_sample_spec_valid_dylibloader_wrapper_pulse) = dlsym(handle, "pa_sample_spec_valid"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_sample_spec_equal + *(void **) (&pa_sample_spec_equal_dylibloader_wrapper_pulse) = dlsym(handle, "pa_sample_spec_equal"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_sample_format_to_string + *(void **) (&pa_sample_format_to_string_dylibloader_wrapper_pulse) = dlsym(handle, "pa_sample_format_to_string"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_parse_sample_format + *(void **) (&pa_parse_sample_format_dylibloader_wrapper_pulse) = dlsym(handle, "pa_parse_sample_format"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_sample_spec_snprint + *(void **) (&pa_sample_spec_snprint_dylibloader_wrapper_pulse) = dlsym(handle, "pa_sample_spec_snprint"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_bytes_snprint + *(void **) (&pa_bytes_snprint_dylibloader_wrapper_pulse) = dlsym(handle, "pa_bytes_snprint"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_sample_format_is_le + *(void **) (&pa_sample_format_is_le_dylibloader_wrapper_pulse) = dlsym(handle, "pa_sample_format_is_le"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_sample_format_is_be + *(void **) (&pa_sample_format_is_be_dylibloader_wrapper_pulse) = dlsym(handle, "pa_sample_format_is_be"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_direction_valid + *(void **) (&pa_direction_valid_dylibloader_wrapper_pulse) = dlsym(handle, "pa_direction_valid"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_direction_to_string + *(void **) (&pa_direction_to_string_dylibloader_wrapper_pulse) = dlsym(handle, "pa_direction_to_string"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_mainloop_api_once + *(void **) (&pa_mainloop_api_once_dylibloader_wrapper_pulse) = dlsym(handle, "pa_mainloop_api_once"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_proplist_new + *(void **) (&pa_proplist_new_dylibloader_wrapper_pulse) = dlsym(handle, "pa_proplist_new"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_proplist_free + *(void **) (&pa_proplist_free_dylibloader_wrapper_pulse) = dlsym(handle, "pa_proplist_free"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_proplist_key_valid + *(void **) (&pa_proplist_key_valid_dylibloader_wrapper_pulse) = dlsym(handle, "pa_proplist_key_valid"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_proplist_sets + *(void **) (&pa_proplist_sets_dylibloader_wrapper_pulse) = dlsym(handle, "pa_proplist_sets"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_proplist_setp + *(void **) (&pa_proplist_setp_dylibloader_wrapper_pulse) = dlsym(handle, "pa_proplist_setp"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_proplist_setf + *(void **) (&pa_proplist_setf_dylibloader_wrapper_pulse) = dlsym(handle, "pa_proplist_setf"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_proplist_set + *(void **) (&pa_proplist_set_dylibloader_wrapper_pulse) = dlsym(handle, "pa_proplist_set"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_proplist_gets + *(void **) (&pa_proplist_gets_dylibloader_wrapper_pulse) = dlsym(handle, "pa_proplist_gets"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_proplist_get + *(void **) (&pa_proplist_get_dylibloader_wrapper_pulse) = dlsym(handle, "pa_proplist_get"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_proplist_update + *(void **) (&pa_proplist_update_dylibloader_wrapper_pulse) = dlsym(handle, "pa_proplist_update"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_proplist_unset + *(void **) (&pa_proplist_unset_dylibloader_wrapper_pulse) = dlsym(handle, "pa_proplist_unset"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_proplist_unset_many + *(void **) (&pa_proplist_unset_many_dylibloader_wrapper_pulse) = dlsym(handle, "pa_proplist_unset_many"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_proplist_iterate + *(void **) (&pa_proplist_iterate_dylibloader_wrapper_pulse) = dlsym(handle, "pa_proplist_iterate"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_proplist_to_string + *(void **) (&pa_proplist_to_string_dylibloader_wrapper_pulse) = dlsym(handle, "pa_proplist_to_string"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_proplist_to_string_sep + *(void **) (&pa_proplist_to_string_sep_dylibloader_wrapper_pulse) = dlsym(handle, "pa_proplist_to_string_sep"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_proplist_from_string + *(void **) (&pa_proplist_from_string_dylibloader_wrapper_pulse) = dlsym(handle, "pa_proplist_from_string"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_proplist_contains + *(void **) (&pa_proplist_contains_dylibloader_wrapper_pulse) = dlsym(handle, "pa_proplist_contains"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_proplist_clear + *(void **) (&pa_proplist_clear_dylibloader_wrapper_pulse) = dlsym(handle, "pa_proplist_clear"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_proplist_copy + *(void **) (&pa_proplist_copy_dylibloader_wrapper_pulse) = dlsym(handle, "pa_proplist_copy"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_proplist_size + *(void **) (&pa_proplist_size_dylibloader_wrapper_pulse) = dlsym(handle, "pa_proplist_size"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_proplist_isempty + *(void **) (&pa_proplist_isempty_dylibloader_wrapper_pulse) = dlsym(handle, "pa_proplist_isempty"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_proplist_equal + *(void **) (&pa_proplist_equal_dylibloader_wrapper_pulse) = dlsym(handle, "pa_proplist_equal"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_channel_map_init + *(void **) (&pa_channel_map_init_dylibloader_wrapper_pulse) = dlsym(handle, "pa_channel_map_init"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_channel_map_init_mono + *(void **) (&pa_channel_map_init_mono_dylibloader_wrapper_pulse) = dlsym(handle, "pa_channel_map_init_mono"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_channel_map_init_stereo + *(void **) (&pa_channel_map_init_stereo_dylibloader_wrapper_pulse) = dlsym(handle, "pa_channel_map_init_stereo"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_channel_map_init_auto + *(void **) (&pa_channel_map_init_auto_dylibloader_wrapper_pulse) = dlsym(handle, "pa_channel_map_init_auto"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_channel_map_init_extend + *(void **) (&pa_channel_map_init_extend_dylibloader_wrapper_pulse) = dlsym(handle, "pa_channel_map_init_extend"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_channel_position_to_string + *(void **) (&pa_channel_position_to_string_dylibloader_wrapper_pulse) = dlsym(handle, "pa_channel_position_to_string"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_channel_position_from_string + *(void **) (&pa_channel_position_from_string_dylibloader_wrapper_pulse) = dlsym(handle, "pa_channel_position_from_string"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_channel_position_to_pretty_string + *(void **) (&pa_channel_position_to_pretty_string_dylibloader_wrapper_pulse) = dlsym(handle, "pa_channel_position_to_pretty_string"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_channel_map_snprint + *(void **) (&pa_channel_map_snprint_dylibloader_wrapper_pulse) = dlsym(handle, "pa_channel_map_snprint"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_channel_map_parse + *(void **) (&pa_channel_map_parse_dylibloader_wrapper_pulse) = dlsym(handle, "pa_channel_map_parse"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_channel_map_equal + *(void **) (&pa_channel_map_equal_dylibloader_wrapper_pulse) = dlsym(handle, "pa_channel_map_equal"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_channel_map_valid + *(void **) (&pa_channel_map_valid_dylibloader_wrapper_pulse) = dlsym(handle, "pa_channel_map_valid"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_channel_map_compatible + *(void **) (&pa_channel_map_compatible_dylibloader_wrapper_pulse) = dlsym(handle, "pa_channel_map_compatible"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_channel_map_superset + *(void **) (&pa_channel_map_superset_dylibloader_wrapper_pulse) = dlsym(handle, "pa_channel_map_superset"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_channel_map_can_balance + *(void **) (&pa_channel_map_can_balance_dylibloader_wrapper_pulse) = dlsym(handle, "pa_channel_map_can_balance"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_channel_map_can_fade + *(void **) (&pa_channel_map_can_fade_dylibloader_wrapper_pulse) = dlsym(handle, "pa_channel_map_can_fade"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_channel_map_can_lfe_balance + *(void **) (&pa_channel_map_can_lfe_balance_dylibloader_wrapper_pulse) = dlsym(handle, "pa_channel_map_can_lfe_balance"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_channel_map_to_name + *(void **) (&pa_channel_map_to_name_dylibloader_wrapper_pulse) = dlsym(handle, "pa_channel_map_to_name"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_channel_map_to_pretty_name + *(void **) (&pa_channel_map_to_pretty_name_dylibloader_wrapper_pulse) = dlsym(handle, "pa_channel_map_to_pretty_name"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_channel_map_has_position + *(void **) (&pa_channel_map_has_position_dylibloader_wrapper_pulse) = dlsym(handle, "pa_channel_map_has_position"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_channel_map_mask + *(void **) (&pa_channel_map_mask_dylibloader_wrapper_pulse) = dlsym(handle, "pa_channel_map_mask"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_encoding_to_string + *(void **) (&pa_encoding_to_string_dylibloader_wrapper_pulse) = dlsym(handle, "pa_encoding_to_string"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_encoding_from_string + *(void **) (&pa_encoding_from_string_dylibloader_wrapper_pulse) = dlsym(handle, "pa_encoding_from_string"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_format_info_new + *(void **) (&pa_format_info_new_dylibloader_wrapper_pulse) = dlsym(handle, "pa_format_info_new"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_format_info_copy + *(void **) (&pa_format_info_copy_dylibloader_wrapper_pulse) = dlsym(handle, "pa_format_info_copy"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_format_info_free + *(void **) (&pa_format_info_free_dylibloader_wrapper_pulse) = dlsym(handle, "pa_format_info_free"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_format_info_valid + *(void **) (&pa_format_info_valid_dylibloader_wrapper_pulse) = dlsym(handle, "pa_format_info_valid"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_format_info_is_pcm + *(void **) (&pa_format_info_is_pcm_dylibloader_wrapper_pulse) = dlsym(handle, "pa_format_info_is_pcm"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_format_info_is_compatible + *(void **) (&pa_format_info_is_compatible_dylibloader_wrapper_pulse) = dlsym(handle, "pa_format_info_is_compatible"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_format_info_snprint + *(void **) (&pa_format_info_snprint_dylibloader_wrapper_pulse) = dlsym(handle, "pa_format_info_snprint"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_format_info_from_string + *(void **) (&pa_format_info_from_string_dylibloader_wrapper_pulse) = dlsym(handle, "pa_format_info_from_string"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_format_info_from_sample_spec + *(void **) (&pa_format_info_from_sample_spec_dylibloader_wrapper_pulse) = dlsym(handle, "pa_format_info_from_sample_spec"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_format_info_to_sample_spec + *(void **) (&pa_format_info_to_sample_spec_dylibloader_wrapper_pulse) = dlsym(handle, "pa_format_info_to_sample_spec"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_format_info_get_prop_type + *(void **) (&pa_format_info_get_prop_type_dylibloader_wrapper_pulse) = dlsym(handle, "pa_format_info_get_prop_type"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_format_info_get_prop_int + *(void **) (&pa_format_info_get_prop_int_dylibloader_wrapper_pulse) = dlsym(handle, "pa_format_info_get_prop_int"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_format_info_get_prop_int_range + *(void **) (&pa_format_info_get_prop_int_range_dylibloader_wrapper_pulse) = dlsym(handle, "pa_format_info_get_prop_int_range"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_format_info_get_prop_int_array + *(void **) (&pa_format_info_get_prop_int_array_dylibloader_wrapper_pulse) = dlsym(handle, "pa_format_info_get_prop_int_array"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_format_info_get_prop_string + *(void **) (&pa_format_info_get_prop_string_dylibloader_wrapper_pulse) = dlsym(handle, "pa_format_info_get_prop_string"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_format_info_get_prop_string_array + *(void **) (&pa_format_info_get_prop_string_array_dylibloader_wrapper_pulse) = dlsym(handle, "pa_format_info_get_prop_string_array"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_format_info_free_string_array + *(void **) (&pa_format_info_free_string_array_dylibloader_wrapper_pulse) = dlsym(handle, "pa_format_info_free_string_array"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_format_info_get_sample_format + *(void **) (&pa_format_info_get_sample_format_dylibloader_wrapper_pulse) = dlsym(handle, "pa_format_info_get_sample_format"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_format_info_get_rate + *(void **) (&pa_format_info_get_rate_dylibloader_wrapper_pulse) = dlsym(handle, "pa_format_info_get_rate"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_format_info_get_channels + *(void **) (&pa_format_info_get_channels_dylibloader_wrapper_pulse) = dlsym(handle, "pa_format_info_get_channels"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_format_info_get_channel_map + *(void **) (&pa_format_info_get_channel_map_dylibloader_wrapper_pulse) = dlsym(handle, "pa_format_info_get_channel_map"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_format_info_set_prop_int + *(void **) (&pa_format_info_set_prop_int_dylibloader_wrapper_pulse) = dlsym(handle, "pa_format_info_set_prop_int"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_format_info_set_prop_int_array + *(void **) (&pa_format_info_set_prop_int_array_dylibloader_wrapper_pulse) = dlsym(handle, "pa_format_info_set_prop_int_array"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_format_info_set_prop_int_range + *(void **) (&pa_format_info_set_prop_int_range_dylibloader_wrapper_pulse) = dlsym(handle, "pa_format_info_set_prop_int_range"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_format_info_set_prop_string + *(void **) (&pa_format_info_set_prop_string_dylibloader_wrapper_pulse) = dlsym(handle, "pa_format_info_set_prop_string"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_format_info_set_prop_string_array + *(void **) (&pa_format_info_set_prop_string_array_dylibloader_wrapper_pulse) = dlsym(handle, "pa_format_info_set_prop_string_array"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_format_info_set_sample_format + *(void **) (&pa_format_info_set_sample_format_dylibloader_wrapper_pulse) = dlsym(handle, "pa_format_info_set_sample_format"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_format_info_set_rate + *(void **) (&pa_format_info_set_rate_dylibloader_wrapper_pulse) = dlsym(handle, "pa_format_info_set_rate"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_format_info_set_channels + *(void **) (&pa_format_info_set_channels_dylibloader_wrapper_pulse) = dlsym(handle, "pa_format_info_set_channels"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_format_info_set_channel_map + *(void **) (&pa_format_info_set_channel_map_dylibloader_wrapper_pulse) = dlsym(handle, "pa_format_info_set_channel_map"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_operation_ref + *(void **) (&pa_operation_ref_dylibloader_wrapper_pulse) = dlsym(handle, "pa_operation_ref"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_operation_unref + *(void **) (&pa_operation_unref_dylibloader_wrapper_pulse) = dlsym(handle, "pa_operation_unref"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_operation_cancel + *(void **) (&pa_operation_cancel_dylibloader_wrapper_pulse) = dlsym(handle, "pa_operation_cancel"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_operation_get_state + *(void **) (&pa_operation_get_state_dylibloader_wrapper_pulse) = dlsym(handle, "pa_operation_get_state"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_operation_set_state_callback + *(void **) (&pa_operation_set_state_callback_dylibloader_wrapper_pulse) = dlsym(handle, "pa_operation_set_state_callback"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_context_new + *(void **) (&pa_context_new_dylibloader_wrapper_pulse) = dlsym(handle, "pa_context_new"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_context_new_with_proplist + *(void **) (&pa_context_new_with_proplist_dylibloader_wrapper_pulse) = dlsym(handle, "pa_context_new_with_proplist"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_context_unref + *(void **) (&pa_context_unref_dylibloader_wrapper_pulse) = dlsym(handle, "pa_context_unref"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_context_ref + *(void **) (&pa_context_ref_dylibloader_wrapper_pulse) = dlsym(handle, "pa_context_ref"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_context_set_state_callback + *(void **) (&pa_context_set_state_callback_dylibloader_wrapper_pulse) = dlsym(handle, "pa_context_set_state_callback"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_context_set_event_callback + *(void **) (&pa_context_set_event_callback_dylibloader_wrapper_pulse) = dlsym(handle, "pa_context_set_event_callback"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_context_errno + *(void **) (&pa_context_errno_dylibloader_wrapper_pulse) = dlsym(handle, "pa_context_errno"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_context_is_pending + *(void **) (&pa_context_is_pending_dylibloader_wrapper_pulse) = dlsym(handle, "pa_context_is_pending"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_context_get_state + *(void **) (&pa_context_get_state_dylibloader_wrapper_pulse) = dlsym(handle, "pa_context_get_state"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_context_connect + *(void **) (&pa_context_connect_dylibloader_wrapper_pulse) = dlsym(handle, "pa_context_connect"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_context_disconnect + *(void **) (&pa_context_disconnect_dylibloader_wrapper_pulse) = dlsym(handle, "pa_context_disconnect"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_context_drain + *(void **) (&pa_context_drain_dylibloader_wrapper_pulse) = dlsym(handle, "pa_context_drain"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_context_exit_daemon + *(void **) (&pa_context_exit_daemon_dylibloader_wrapper_pulse) = dlsym(handle, "pa_context_exit_daemon"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_context_set_default_sink + *(void **) (&pa_context_set_default_sink_dylibloader_wrapper_pulse) = dlsym(handle, "pa_context_set_default_sink"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_context_set_default_source + *(void **) (&pa_context_set_default_source_dylibloader_wrapper_pulse) = dlsym(handle, "pa_context_set_default_source"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_context_is_local + *(void **) (&pa_context_is_local_dylibloader_wrapper_pulse) = dlsym(handle, "pa_context_is_local"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_context_set_name + *(void **) (&pa_context_set_name_dylibloader_wrapper_pulse) = dlsym(handle, "pa_context_set_name"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_context_get_server + *(void **) (&pa_context_get_server_dylibloader_wrapper_pulse) = dlsym(handle, "pa_context_get_server"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_context_get_protocol_version + *(void **) (&pa_context_get_protocol_version_dylibloader_wrapper_pulse) = dlsym(handle, "pa_context_get_protocol_version"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_context_get_server_protocol_version + *(void **) (&pa_context_get_server_protocol_version_dylibloader_wrapper_pulse) = dlsym(handle, "pa_context_get_server_protocol_version"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_context_proplist_update + *(void **) (&pa_context_proplist_update_dylibloader_wrapper_pulse) = dlsym(handle, "pa_context_proplist_update"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_context_proplist_remove + *(void **) (&pa_context_proplist_remove_dylibloader_wrapper_pulse) = dlsym(handle, "pa_context_proplist_remove"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_context_get_index + *(void **) (&pa_context_get_index_dylibloader_wrapper_pulse) = dlsym(handle, "pa_context_get_index"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_context_rttime_new + *(void **) (&pa_context_rttime_new_dylibloader_wrapper_pulse) = dlsym(handle, "pa_context_rttime_new"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_context_rttime_restart + *(void **) (&pa_context_rttime_restart_dylibloader_wrapper_pulse) = dlsym(handle, "pa_context_rttime_restart"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_context_get_tile_size + *(void **) (&pa_context_get_tile_size_dylibloader_wrapper_pulse) = dlsym(handle, "pa_context_get_tile_size"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_context_load_cookie_from_file + *(void **) (&pa_context_load_cookie_from_file_dylibloader_wrapper_pulse) = dlsym(handle, "pa_context_load_cookie_from_file"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_cvolume_equal + *(void **) (&pa_cvolume_equal_dylibloader_wrapper_pulse) = dlsym(handle, "pa_cvolume_equal"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_cvolume_init + *(void **) (&pa_cvolume_init_dylibloader_wrapper_pulse) = dlsym(handle, "pa_cvolume_init"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_cvolume_set + *(void **) (&pa_cvolume_set_dylibloader_wrapper_pulse) = dlsym(handle, "pa_cvolume_set"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_cvolume_snprint + *(void **) (&pa_cvolume_snprint_dylibloader_wrapper_pulse) = dlsym(handle, "pa_cvolume_snprint"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_sw_cvolume_snprint_dB + *(void **) (&pa_sw_cvolume_snprint_dB_dylibloader_wrapper_pulse) = dlsym(handle, "pa_sw_cvolume_snprint_dB"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_cvolume_snprint_verbose + *(void **) (&pa_cvolume_snprint_verbose_dylibloader_wrapper_pulse) = dlsym(handle, "pa_cvolume_snprint_verbose"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_volume_snprint + *(void **) (&pa_volume_snprint_dylibloader_wrapper_pulse) = dlsym(handle, "pa_volume_snprint"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_sw_volume_snprint_dB + *(void **) (&pa_sw_volume_snprint_dB_dylibloader_wrapper_pulse) = dlsym(handle, "pa_sw_volume_snprint_dB"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_volume_snprint_verbose + *(void **) (&pa_volume_snprint_verbose_dylibloader_wrapper_pulse) = dlsym(handle, "pa_volume_snprint_verbose"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_cvolume_avg + *(void **) (&pa_cvolume_avg_dylibloader_wrapper_pulse) = dlsym(handle, "pa_cvolume_avg"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_cvolume_avg_mask + *(void **) (&pa_cvolume_avg_mask_dylibloader_wrapper_pulse) = dlsym(handle, "pa_cvolume_avg_mask"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_cvolume_max + *(void **) (&pa_cvolume_max_dylibloader_wrapper_pulse) = dlsym(handle, "pa_cvolume_max"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_cvolume_max_mask + *(void **) (&pa_cvolume_max_mask_dylibloader_wrapper_pulse) = dlsym(handle, "pa_cvolume_max_mask"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_cvolume_min + *(void **) (&pa_cvolume_min_dylibloader_wrapper_pulse) = dlsym(handle, "pa_cvolume_min"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_cvolume_min_mask + *(void **) (&pa_cvolume_min_mask_dylibloader_wrapper_pulse) = dlsym(handle, "pa_cvolume_min_mask"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_cvolume_valid + *(void **) (&pa_cvolume_valid_dylibloader_wrapper_pulse) = dlsym(handle, "pa_cvolume_valid"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_cvolume_channels_equal_to + *(void **) (&pa_cvolume_channels_equal_to_dylibloader_wrapper_pulse) = dlsym(handle, "pa_cvolume_channels_equal_to"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_sw_volume_multiply + *(void **) (&pa_sw_volume_multiply_dylibloader_wrapper_pulse) = dlsym(handle, "pa_sw_volume_multiply"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_sw_cvolume_multiply + *(void **) (&pa_sw_cvolume_multiply_dylibloader_wrapper_pulse) = dlsym(handle, "pa_sw_cvolume_multiply"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_sw_cvolume_multiply_scalar + *(void **) (&pa_sw_cvolume_multiply_scalar_dylibloader_wrapper_pulse) = dlsym(handle, "pa_sw_cvolume_multiply_scalar"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_sw_volume_divide + *(void **) (&pa_sw_volume_divide_dylibloader_wrapper_pulse) = dlsym(handle, "pa_sw_volume_divide"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_sw_cvolume_divide + *(void **) (&pa_sw_cvolume_divide_dylibloader_wrapper_pulse) = dlsym(handle, "pa_sw_cvolume_divide"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_sw_cvolume_divide_scalar + *(void **) (&pa_sw_cvolume_divide_scalar_dylibloader_wrapper_pulse) = dlsym(handle, "pa_sw_cvolume_divide_scalar"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_sw_volume_from_dB + *(void **) (&pa_sw_volume_from_dB_dylibloader_wrapper_pulse) = dlsym(handle, "pa_sw_volume_from_dB"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_sw_volume_to_dB + *(void **) (&pa_sw_volume_to_dB_dylibloader_wrapper_pulse) = dlsym(handle, "pa_sw_volume_to_dB"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_sw_volume_from_linear + *(void **) (&pa_sw_volume_from_linear_dylibloader_wrapper_pulse) = dlsym(handle, "pa_sw_volume_from_linear"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_sw_volume_to_linear + *(void **) (&pa_sw_volume_to_linear_dylibloader_wrapper_pulse) = dlsym(handle, "pa_sw_volume_to_linear"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_cvolume_remap + *(void **) (&pa_cvolume_remap_dylibloader_wrapper_pulse) = dlsym(handle, "pa_cvolume_remap"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_cvolume_compatible + *(void **) (&pa_cvolume_compatible_dylibloader_wrapper_pulse) = dlsym(handle, "pa_cvolume_compatible"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_cvolume_compatible_with_channel_map + *(void **) (&pa_cvolume_compatible_with_channel_map_dylibloader_wrapper_pulse) = dlsym(handle, "pa_cvolume_compatible_with_channel_map"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_cvolume_get_balance + *(void **) (&pa_cvolume_get_balance_dylibloader_wrapper_pulse) = dlsym(handle, "pa_cvolume_get_balance"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_cvolume_set_balance + *(void **) (&pa_cvolume_set_balance_dylibloader_wrapper_pulse) = dlsym(handle, "pa_cvolume_set_balance"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_cvolume_get_fade + *(void **) (&pa_cvolume_get_fade_dylibloader_wrapper_pulse) = dlsym(handle, "pa_cvolume_get_fade"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_cvolume_set_fade + *(void **) (&pa_cvolume_set_fade_dylibloader_wrapper_pulse) = dlsym(handle, "pa_cvolume_set_fade"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_cvolume_get_lfe_balance + *(void **) (&pa_cvolume_get_lfe_balance_dylibloader_wrapper_pulse) = dlsym(handle, "pa_cvolume_get_lfe_balance"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_cvolume_set_lfe_balance + *(void **) (&pa_cvolume_set_lfe_balance_dylibloader_wrapper_pulse) = dlsym(handle, "pa_cvolume_set_lfe_balance"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_cvolume_scale + *(void **) (&pa_cvolume_scale_dylibloader_wrapper_pulse) = dlsym(handle, "pa_cvolume_scale"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_cvolume_scale_mask + *(void **) (&pa_cvolume_scale_mask_dylibloader_wrapper_pulse) = dlsym(handle, "pa_cvolume_scale_mask"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_cvolume_set_position + *(void **) (&pa_cvolume_set_position_dylibloader_wrapper_pulse) = dlsym(handle, "pa_cvolume_set_position"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_cvolume_get_position + *(void **) (&pa_cvolume_get_position_dylibloader_wrapper_pulse) = dlsym(handle, "pa_cvolume_get_position"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_cvolume_merge + *(void **) (&pa_cvolume_merge_dylibloader_wrapper_pulse) = dlsym(handle, "pa_cvolume_merge"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_cvolume_inc_clamp + *(void **) (&pa_cvolume_inc_clamp_dylibloader_wrapper_pulse) = dlsym(handle, "pa_cvolume_inc_clamp"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_cvolume_inc + *(void **) (&pa_cvolume_inc_dylibloader_wrapper_pulse) = dlsym(handle, "pa_cvolume_inc"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_cvolume_dec + *(void **) (&pa_cvolume_dec_dylibloader_wrapper_pulse) = dlsym(handle, "pa_cvolume_dec"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_stream_new + *(void **) (&pa_stream_new_dylibloader_wrapper_pulse) = dlsym(handle, "pa_stream_new"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_stream_new_with_proplist + *(void **) (&pa_stream_new_with_proplist_dylibloader_wrapper_pulse) = dlsym(handle, "pa_stream_new_with_proplist"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_stream_new_extended + *(void **) (&pa_stream_new_extended_dylibloader_wrapper_pulse) = dlsym(handle, "pa_stream_new_extended"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_stream_unref + *(void **) (&pa_stream_unref_dylibloader_wrapper_pulse) = dlsym(handle, "pa_stream_unref"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_stream_ref + *(void **) (&pa_stream_ref_dylibloader_wrapper_pulse) = dlsym(handle, "pa_stream_ref"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_stream_get_state + *(void **) (&pa_stream_get_state_dylibloader_wrapper_pulse) = dlsym(handle, "pa_stream_get_state"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_stream_get_context + *(void **) (&pa_stream_get_context_dylibloader_wrapper_pulse) = dlsym(handle, "pa_stream_get_context"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_stream_get_index + *(void **) (&pa_stream_get_index_dylibloader_wrapper_pulse) = dlsym(handle, "pa_stream_get_index"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_stream_get_device_index + *(void **) (&pa_stream_get_device_index_dylibloader_wrapper_pulse) = dlsym(handle, "pa_stream_get_device_index"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_stream_get_device_name + *(void **) (&pa_stream_get_device_name_dylibloader_wrapper_pulse) = dlsym(handle, "pa_stream_get_device_name"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_stream_is_suspended + *(void **) (&pa_stream_is_suspended_dylibloader_wrapper_pulse) = dlsym(handle, "pa_stream_is_suspended"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_stream_is_corked + *(void **) (&pa_stream_is_corked_dylibloader_wrapper_pulse) = dlsym(handle, "pa_stream_is_corked"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_stream_connect_playback + *(void **) (&pa_stream_connect_playback_dylibloader_wrapper_pulse) = dlsym(handle, "pa_stream_connect_playback"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_stream_connect_record + *(void **) (&pa_stream_connect_record_dylibloader_wrapper_pulse) = dlsym(handle, "pa_stream_connect_record"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_stream_disconnect + *(void **) (&pa_stream_disconnect_dylibloader_wrapper_pulse) = dlsym(handle, "pa_stream_disconnect"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_stream_begin_write + *(void **) (&pa_stream_begin_write_dylibloader_wrapper_pulse) = dlsym(handle, "pa_stream_begin_write"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_stream_cancel_write + *(void **) (&pa_stream_cancel_write_dylibloader_wrapper_pulse) = dlsym(handle, "pa_stream_cancel_write"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_stream_write + *(void **) (&pa_stream_write_dylibloader_wrapper_pulse) = dlsym(handle, "pa_stream_write"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_stream_write_ext_free + *(void **) (&pa_stream_write_ext_free_dylibloader_wrapper_pulse) = dlsym(handle, "pa_stream_write_ext_free"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_stream_peek + *(void **) (&pa_stream_peek_dylibloader_wrapper_pulse) = dlsym(handle, "pa_stream_peek"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_stream_drop + *(void **) (&pa_stream_drop_dylibloader_wrapper_pulse) = dlsym(handle, "pa_stream_drop"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_stream_writable_size + *(void **) (&pa_stream_writable_size_dylibloader_wrapper_pulse) = dlsym(handle, "pa_stream_writable_size"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_stream_readable_size + *(void **) (&pa_stream_readable_size_dylibloader_wrapper_pulse) = dlsym(handle, "pa_stream_readable_size"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_stream_drain + *(void **) (&pa_stream_drain_dylibloader_wrapper_pulse) = dlsym(handle, "pa_stream_drain"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_stream_update_timing_info + *(void **) (&pa_stream_update_timing_info_dylibloader_wrapper_pulse) = dlsym(handle, "pa_stream_update_timing_info"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_stream_set_state_callback + *(void **) (&pa_stream_set_state_callback_dylibloader_wrapper_pulse) = dlsym(handle, "pa_stream_set_state_callback"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_stream_set_write_callback + *(void **) (&pa_stream_set_write_callback_dylibloader_wrapper_pulse) = dlsym(handle, "pa_stream_set_write_callback"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_stream_set_read_callback + *(void **) (&pa_stream_set_read_callback_dylibloader_wrapper_pulse) = dlsym(handle, "pa_stream_set_read_callback"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_stream_set_overflow_callback + *(void **) (&pa_stream_set_overflow_callback_dylibloader_wrapper_pulse) = dlsym(handle, "pa_stream_set_overflow_callback"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_stream_get_underflow_index + *(void **) (&pa_stream_get_underflow_index_dylibloader_wrapper_pulse) = dlsym(handle, "pa_stream_get_underflow_index"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_stream_set_underflow_callback + *(void **) (&pa_stream_set_underflow_callback_dylibloader_wrapper_pulse) = dlsym(handle, "pa_stream_set_underflow_callback"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_stream_set_started_callback + *(void **) (&pa_stream_set_started_callback_dylibloader_wrapper_pulse) = dlsym(handle, "pa_stream_set_started_callback"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_stream_set_latency_update_callback + *(void **) (&pa_stream_set_latency_update_callback_dylibloader_wrapper_pulse) = dlsym(handle, "pa_stream_set_latency_update_callback"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_stream_set_moved_callback + *(void **) (&pa_stream_set_moved_callback_dylibloader_wrapper_pulse) = dlsym(handle, "pa_stream_set_moved_callback"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_stream_set_suspended_callback + *(void **) (&pa_stream_set_suspended_callback_dylibloader_wrapper_pulse) = dlsym(handle, "pa_stream_set_suspended_callback"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_stream_set_event_callback + *(void **) (&pa_stream_set_event_callback_dylibloader_wrapper_pulse) = dlsym(handle, "pa_stream_set_event_callback"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_stream_set_buffer_attr_callback + *(void **) (&pa_stream_set_buffer_attr_callback_dylibloader_wrapper_pulse) = dlsym(handle, "pa_stream_set_buffer_attr_callback"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_stream_cork + *(void **) (&pa_stream_cork_dylibloader_wrapper_pulse) = dlsym(handle, "pa_stream_cork"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_stream_flush + *(void **) (&pa_stream_flush_dylibloader_wrapper_pulse) = dlsym(handle, "pa_stream_flush"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_stream_prebuf + *(void **) (&pa_stream_prebuf_dylibloader_wrapper_pulse) = dlsym(handle, "pa_stream_prebuf"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_stream_trigger + *(void **) (&pa_stream_trigger_dylibloader_wrapper_pulse) = dlsym(handle, "pa_stream_trigger"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_stream_set_name + *(void **) (&pa_stream_set_name_dylibloader_wrapper_pulse) = dlsym(handle, "pa_stream_set_name"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_stream_get_time + *(void **) (&pa_stream_get_time_dylibloader_wrapper_pulse) = dlsym(handle, "pa_stream_get_time"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_stream_get_latency + *(void **) (&pa_stream_get_latency_dylibloader_wrapper_pulse) = dlsym(handle, "pa_stream_get_latency"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_stream_get_timing_info + *(void **) (&pa_stream_get_timing_info_dylibloader_wrapper_pulse) = dlsym(handle, "pa_stream_get_timing_info"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_stream_get_sample_spec + *(void **) (&pa_stream_get_sample_spec_dylibloader_wrapper_pulse) = dlsym(handle, "pa_stream_get_sample_spec"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_stream_get_channel_map + *(void **) (&pa_stream_get_channel_map_dylibloader_wrapper_pulse) = dlsym(handle, "pa_stream_get_channel_map"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_stream_get_format_info + *(void **) (&pa_stream_get_format_info_dylibloader_wrapper_pulse) = dlsym(handle, "pa_stream_get_format_info"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_stream_get_buffer_attr + *(void **) (&pa_stream_get_buffer_attr_dylibloader_wrapper_pulse) = dlsym(handle, "pa_stream_get_buffer_attr"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_stream_set_buffer_attr + *(void **) (&pa_stream_set_buffer_attr_dylibloader_wrapper_pulse) = dlsym(handle, "pa_stream_set_buffer_attr"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_stream_update_sample_rate + *(void **) (&pa_stream_update_sample_rate_dylibloader_wrapper_pulse) = dlsym(handle, "pa_stream_update_sample_rate"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_stream_proplist_update + *(void **) (&pa_stream_proplist_update_dylibloader_wrapper_pulse) = dlsym(handle, "pa_stream_proplist_update"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_stream_proplist_remove + *(void **) (&pa_stream_proplist_remove_dylibloader_wrapper_pulse) = dlsym(handle, "pa_stream_proplist_remove"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_stream_set_monitor_stream + *(void **) (&pa_stream_set_monitor_stream_dylibloader_wrapper_pulse) = dlsym(handle, "pa_stream_set_monitor_stream"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_stream_get_monitor_stream + *(void **) (&pa_stream_get_monitor_stream_dylibloader_wrapper_pulse) = dlsym(handle, "pa_stream_get_monitor_stream"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_context_get_sink_info_by_name + *(void **) (&pa_context_get_sink_info_by_name_dylibloader_wrapper_pulse) = dlsym(handle, "pa_context_get_sink_info_by_name"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_context_get_sink_info_by_index + *(void **) (&pa_context_get_sink_info_by_index_dylibloader_wrapper_pulse) = dlsym(handle, "pa_context_get_sink_info_by_index"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_context_get_sink_info_list + *(void **) (&pa_context_get_sink_info_list_dylibloader_wrapper_pulse) = dlsym(handle, "pa_context_get_sink_info_list"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_context_set_sink_volume_by_index + *(void **) (&pa_context_set_sink_volume_by_index_dylibloader_wrapper_pulse) = dlsym(handle, "pa_context_set_sink_volume_by_index"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_context_set_sink_volume_by_name + *(void **) (&pa_context_set_sink_volume_by_name_dylibloader_wrapper_pulse) = dlsym(handle, "pa_context_set_sink_volume_by_name"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_context_set_sink_mute_by_index + *(void **) (&pa_context_set_sink_mute_by_index_dylibloader_wrapper_pulse) = dlsym(handle, "pa_context_set_sink_mute_by_index"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_context_set_sink_mute_by_name + *(void **) (&pa_context_set_sink_mute_by_name_dylibloader_wrapper_pulse) = dlsym(handle, "pa_context_set_sink_mute_by_name"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_context_suspend_sink_by_name + *(void **) (&pa_context_suspend_sink_by_name_dylibloader_wrapper_pulse) = dlsym(handle, "pa_context_suspend_sink_by_name"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_context_suspend_sink_by_index + *(void **) (&pa_context_suspend_sink_by_index_dylibloader_wrapper_pulse) = dlsym(handle, "pa_context_suspend_sink_by_index"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_context_set_sink_port_by_index + *(void **) (&pa_context_set_sink_port_by_index_dylibloader_wrapper_pulse) = dlsym(handle, "pa_context_set_sink_port_by_index"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_context_set_sink_port_by_name + *(void **) (&pa_context_set_sink_port_by_name_dylibloader_wrapper_pulse) = dlsym(handle, "pa_context_set_sink_port_by_name"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_context_get_source_info_by_name + *(void **) (&pa_context_get_source_info_by_name_dylibloader_wrapper_pulse) = dlsym(handle, "pa_context_get_source_info_by_name"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_context_get_source_info_by_index + *(void **) (&pa_context_get_source_info_by_index_dylibloader_wrapper_pulse) = dlsym(handle, "pa_context_get_source_info_by_index"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_context_get_source_info_list + *(void **) (&pa_context_get_source_info_list_dylibloader_wrapper_pulse) = dlsym(handle, "pa_context_get_source_info_list"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_context_set_source_volume_by_index + *(void **) (&pa_context_set_source_volume_by_index_dylibloader_wrapper_pulse) = dlsym(handle, "pa_context_set_source_volume_by_index"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_context_set_source_volume_by_name + *(void **) (&pa_context_set_source_volume_by_name_dylibloader_wrapper_pulse) = dlsym(handle, "pa_context_set_source_volume_by_name"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_context_set_source_mute_by_index + *(void **) (&pa_context_set_source_mute_by_index_dylibloader_wrapper_pulse) = dlsym(handle, "pa_context_set_source_mute_by_index"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_context_set_source_mute_by_name + *(void **) (&pa_context_set_source_mute_by_name_dylibloader_wrapper_pulse) = dlsym(handle, "pa_context_set_source_mute_by_name"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_context_suspend_source_by_name + *(void **) (&pa_context_suspend_source_by_name_dylibloader_wrapper_pulse) = dlsym(handle, "pa_context_suspend_source_by_name"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_context_suspend_source_by_index + *(void **) (&pa_context_suspend_source_by_index_dylibloader_wrapper_pulse) = dlsym(handle, "pa_context_suspend_source_by_index"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_context_set_source_port_by_index + *(void **) (&pa_context_set_source_port_by_index_dylibloader_wrapper_pulse) = dlsym(handle, "pa_context_set_source_port_by_index"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_context_set_source_port_by_name + *(void **) (&pa_context_set_source_port_by_name_dylibloader_wrapper_pulse) = dlsym(handle, "pa_context_set_source_port_by_name"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_context_get_server_info + *(void **) (&pa_context_get_server_info_dylibloader_wrapper_pulse) = dlsym(handle, "pa_context_get_server_info"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_context_get_module_info + *(void **) (&pa_context_get_module_info_dylibloader_wrapper_pulse) = dlsym(handle, "pa_context_get_module_info"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_context_get_module_info_list + *(void **) (&pa_context_get_module_info_list_dylibloader_wrapper_pulse) = dlsym(handle, "pa_context_get_module_info_list"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_context_load_module + *(void **) (&pa_context_load_module_dylibloader_wrapper_pulse) = dlsym(handle, "pa_context_load_module"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_context_unload_module + *(void **) (&pa_context_unload_module_dylibloader_wrapper_pulse) = dlsym(handle, "pa_context_unload_module"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_context_get_client_info + *(void **) (&pa_context_get_client_info_dylibloader_wrapper_pulse) = dlsym(handle, "pa_context_get_client_info"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_context_get_client_info_list + *(void **) (&pa_context_get_client_info_list_dylibloader_wrapper_pulse) = dlsym(handle, "pa_context_get_client_info_list"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_context_kill_client + *(void **) (&pa_context_kill_client_dylibloader_wrapper_pulse) = dlsym(handle, "pa_context_kill_client"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_context_get_card_info_by_index + *(void **) (&pa_context_get_card_info_by_index_dylibloader_wrapper_pulse) = dlsym(handle, "pa_context_get_card_info_by_index"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_context_get_card_info_by_name + *(void **) (&pa_context_get_card_info_by_name_dylibloader_wrapper_pulse) = dlsym(handle, "pa_context_get_card_info_by_name"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_context_get_card_info_list + *(void **) (&pa_context_get_card_info_list_dylibloader_wrapper_pulse) = dlsym(handle, "pa_context_get_card_info_list"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_context_set_card_profile_by_index + *(void **) (&pa_context_set_card_profile_by_index_dylibloader_wrapper_pulse) = dlsym(handle, "pa_context_set_card_profile_by_index"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_context_set_card_profile_by_name + *(void **) (&pa_context_set_card_profile_by_name_dylibloader_wrapper_pulse) = dlsym(handle, "pa_context_set_card_profile_by_name"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_context_set_port_latency_offset + *(void **) (&pa_context_set_port_latency_offset_dylibloader_wrapper_pulse) = dlsym(handle, "pa_context_set_port_latency_offset"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_context_get_sink_input_info + *(void **) (&pa_context_get_sink_input_info_dylibloader_wrapper_pulse) = dlsym(handle, "pa_context_get_sink_input_info"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_context_get_sink_input_info_list + *(void **) (&pa_context_get_sink_input_info_list_dylibloader_wrapper_pulse) = dlsym(handle, "pa_context_get_sink_input_info_list"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_context_move_sink_input_by_name + *(void **) (&pa_context_move_sink_input_by_name_dylibloader_wrapper_pulse) = dlsym(handle, "pa_context_move_sink_input_by_name"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_context_move_sink_input_by_index + *(void **) (&pa_context_move_sink_input_by_index_dylibloader_wrapper_pulse) = dlsym(handle, "pa_context_move_sink_input_by_index"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_context_set_sink_input_volume + *(void **) (&pa_context_set_sink_input_volume_dylibloader_wrapper_pulse) = dlsym(handle, "pa_context_set_sink_input_volume"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_context_set_sink_input_mute + *(void **) (&pa_context_set_sink_input_mute_dylibloader_wrapper_pulse) = dlsym(handle, "pa_context_set_sink_input_mute"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_context_kill_sink_input + *(void **) (&pa_context_kill_sink_input_dylibloader_wrapper_pulse) = dlsym(handle, "pa_context_kill_sink_input"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_context_get_source_output_info + *(void **) (&pa_context_get_source_output_info_dylibloader_wrapper_pulse) = dlsym(handle, "pa_context_get_source_output_info"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_context_get_source_output_info_list + *(void **) (&pa_context_get_source_output_info_list_dylibloader_wrapper_pulse) = dlsym(handle, "pa_context_get_source_output_info_list"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_context_move_source_output_by_name + *(void **) (&pa_context_move_source_output_by_name_dylibloader_wrapper_pulse) = dlsym(handle, "pa_context_move_source_output_by_name"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_context_move_source_output_by_index + *(void **) (&pa_context_move_source_output_by_index_dylibloader_wrapper_pulse) = dlsym(handle, "pa_context_move_source_output_by_index"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_context_set_source_output_volume + *(void **) (&pa_context_set_source_output_volume_dylibloader_wrapper_pulse) = dlsym(handle, "pa_context_set_source_output_volume"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_context_set_source_output_mute + *(void **) (&pa_context_set_source_output_mute_dylibloader_wrapper_pulse) = dlsym(handle, "pa_context_set_source_output_mute"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_context_kill_source_output + *(void **) (&pa_context_kill_source_output_dylibloader_wrapper_pulse) = dlsym(handle, "pa_context_kill_source_output"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_context_stat + *(void **) (&pa_context_stat_dylibloader_wrapper_pulse) = dlsym(handle, "pa_context_stat"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_context_get_sample_info_by_name + *(void **) (&pa_context_get_sample_info_by_name_dylibloader_wrapper_pulse) = dlsym(handle, "pa_context_get_sample_info_by_name"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_context_get_sample_info_by_index + *(void **) (&pa_context_get_sample_info_by_index_dylibloader_wrapper_pulse) = dlsym(handle, "pa_context_get_sample_info_by_index"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_context_get_sample_info_list + *(void **) (&pa_context_get_sample_info_list_dylibloader_wrapper_pulse) = dlsym(handle, "pa_context_get_sample_info_list"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_context_get_autoload_info_by_name + *(void **) (&pa_context_get_autoload_info_by_name_dylibloader_wrapper_pulse) = dlsym(handle, "pa_context_get_autoload_info_by_name"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_context_get_autoload_info_by_index + *(void **) (&pa_context_get_autoload_info_by_index_dylibloader_wrapper_pulse) = dlsym(handle, "pa_context_get_autoload_info_by_index"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_context_get_autoload_info_list + *(void **) (&pa_context_get_autoload_info_list_dylibloader_wrapper_pulse) = dlsym(handle, "pa_context_get_autoload_info_list"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_context_add_autoload + *(void **) (&pa_context_add_autoload_dylibloader_wrapper_pulse) = dlsym(handle, "pa_context_add_autoload"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_context_remove_autoload_by_name + *(void **) (&pa_context_remove_autoload_by_name_dylibloader_wrapper_pulse) = dlsym(handle, "pa_context_remove_autoload_by_name"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_context_remove_autoload_by_index + *(void **) (&pa_context_remove_autoload_by_index_dylibloader_wrapper_pulse) = dlsym(handle, "pa_context_remove_autoload_by_index"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_context_subscribe + *(void **) (&pa_context_subscribe_dylibloader_wrapper_pulse) = dlsym(handle, "pa_context_subscribe"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_context_set_subscribe_callback + *(void **) (&pa_context_set_subscribe_callback_dylibloader_wrapper_pulse) = dlsym(handle, "pa_context_set_subscribe_callback"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_stream_connect_upload + *(void **) (&pa_stream_connect_upload_dylibloader_wrapper_pulse) = dlsym(handle, "pa_stream_connect_upload"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_stream_finish_upload + *(void **) (&pa_stream_finish_upload_dylibloader_wrapper_pulse) = dlsym(handle, "pa_stream_finish_upload"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_context_remove_sample + *(void **) (&pa_context_remove_sample_dylibloader_wrapper_pulse) = dlsym(handle, "pa_context_remove_sample"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_context_play_sample + *(void **) (&pa_context_play_sample_dylibloader_wrapper_pulse) = dlsym(handle, "pa_context_play_sample"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_context_play_sample_with_proplist + *(void **) (&pa_context_play_sample_with_proplist_dylibloader_wrapper_pulse) = dlsym(handle, "pa_context_play_sample_with_proplist"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_strerror + *(void **) (&pa_strerror_dylibloader_wrapper_pulse) = dlsym(handle, "pa_strerror"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_xmalloc + *(void **) (&pa_xmalloc_dylibloader_wrapper_pulse) = dlsym(handle, "pa_xmalloc"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_xmalloc0 + *(void **) (&pa_xmalloc0_dylibloader_wrapper_pulse) = dlsym(handle, "pa_xmalloc0"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_xrealloc + *(void **) (&pa_xrealloc_dylibloader_wrapper_pulse) = dlsym(handle, "pa_xrealloc"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_xfree + *(void **) (&pa_xfree_dylibloader_wrapper_pulse) = dlsym(handle, "pa_xfree"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_xstrdup + *(void **) (&pa_xstrdup_dylibloader_wrapper_pulse) = dlsym(handle, "pa_xstrdup"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_xstrndup + *(void **) (&pa_xstrndup_dylibloader_wrapper_pulse) = dlsym(handle, "pa_xstrndup"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_xmemdup + *(void **) (&pa_xmemdup_dylibloader_wrapper_pulse) = dlsym(handle, "pa_xmemdup"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_utf8_valid + *(void **) (&pa_utf8_valid_dylibloader_wrapper_pulse) = dlsym(handle, "pa_utf8_valid"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_ascii_valid + *(void **) (&pa_ascii_valid_dylibloader_wrapper_pulse) = dlsym(handle, "pa_ascii_valid"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_utf8_filter + *(void **) (&pa_utf8_filter_dylibloader_wrapper_pulse) = dlsym(handle, "pa_utf8_filter"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_ascii_filter + *(void **) (&pa_ascii_filter_dylibloader_wrapper_pulse) = dlsym(handle, "pa_ascii_filter"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_utf8_to_locale + *(void **) (&pa_utf8_to_locale_dylibloader_wrapper_pulse) = dlsym(handle, "pa_utf8_to_locale"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_locale_to_utf8 + *(void **) (&pa_locale_to_utf8_dylibloader_wrapper_pulse) = dlsym(handle, "pa_locale_to_utf8"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_threaded_mainloop_new + *(void **) (&pa_threaded_mainloop_new_dylibloader_wrapper_pulse) = dlsym(handle, "pa_threaded_mainloop_new"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_threaded_mainloop_free + *(void **) (&pa_threaded_mainloop_free_dylibloader_wrapper_pulse) = dlsym(handle, "pa_threaded_mainloop_free"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_threaded_mainloop_start + *(void **) (&pa_threaded_mainloop_start_dylibloader_wrapper_pulse) = dlsym(handle, "pa_threaded_mainloop_start"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_threaded_mainloop_stop + *(void **) (&pa_threaded_mainloop_stop_dylibloader_wrapper_pulse) = dlsym(handle, "pa_threaded_mainloop_stop"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_threaded_mainloop_lock + *(void **) (&pa_threaded_mainloop_lock_dylibloader_wrapper_pulse) = dlsym(handle, "pa_threaded_mainloop_lock"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_threaded_mainloop_unlock + *(void **) (&pa_threaded_mainloop_unlock_dylibloader_wrapper_pulse) = dlsym(handle, "pa_threaded_mainloop_unlock"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_threaded_mainloop_wait + *(void **) (&pa_threaded_mainloop_wait_dylibloader_wrapper_pulse) = dlsym(handle, "pa_threaded_mainloop_wait"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_threaded_mainloop_signal + *(void **) (&pa_threaded_mainloop_signal_dylibloader_wrapper_pulse) = dlsym(handle, "pa_threaded_mainloop_signal"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_threaded_mainloop_accept + *(void **) (&pa_threaded_mainloop_accept_dylibloader_wrapper_pulse) = dlsym(handle, "pa_threaded_mainloop_accept"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_threaded_mainloop_get_retval + *(void **) (&pa_threaded_mainloop_get_retval_dylibloader_wrapper_pulse) = dlsym(handle, "pa_threaded_mainloop_get_retval"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_threaded_mainloop_get_api + *(void **) (&pa_threaded_mainloop_get_api_dylibloader_wrapper_pulse) = dlsym(handle, "pa_threaded_mainloop_get_api"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_threaded_mainloop_in_thread + *(void **) (&pa_threaded_mainloop_in_thread_dylibloader_wrapper_pulse) = dlsym(handle, "pa_threaded_mainloop_in_thread"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_threaded_mainloop_set_name + *(void **) (&pa_threaded_mainloop_set_name_dylibloader_wrapper_pulse) = dlsym(handle, "pa_threaded_mainloop_set_name"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_threaded_mainloop_once_unlocked + *(void **) (&pa_threaded_mainloop_once_unlocked_dylibloader_wrapper_pulse) = dlsym(handle, "pa_threaded_mainloop_once_unlocked"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_mainloop_new + *(void **) (&pa_mainloop_new_dylibloader_wrapper_pulse) = dlsym(handle, "pa_mainloop_new"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_mainloop_free + *(void **) (&pa_mainloop_free_dylibloader_wrapper_pulse) = dlsym(handle, "pa_mainloop_free"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_mainloop_prepare + *(void **) (&pa_mainloop_prepare_dylibloader_wrapper_pulse) = dlsym(handle, "pa_mainloop_prepare"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_mainloop_poll + *(void **) (&pa_mainloop_poll_dylibloader_wrapper_pulse) = dlsym(handle, "pa_mainloop_poll"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_mainloop_dispatch + *(void **) (&pa_mainloop_dispatch_dylibloader_wrapper_pulse) = dlsym(handle, "pa_mainloop_dispatch"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_mainloop_get_retval + *(void **) (&pa_mainloop_get_retval_dylibloader_wrapper_pulse) = dlsym(handle, "pa_mainloop_get_retval"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_mainloop_iterate + *(void **) (&pa_mainloop_iterate_dylibloader_wrapper_pulse) = dlsym(handle, "pa_mainloop_iterate"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_mainloop_run + *(void **) (&pa_mainloop_run_dylibloader_wrapper_pulse) = dlsym(handle, "pa_mainloop_run"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_mainloop_get_api + *(void **) (&pa_mainloop_get_api_dylibloader_wrapper_pulse) = dlsym(handle, "pa_mainloop_get_api"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_mainloop_quit + *(void **) (&pa_mainloop_quit_dylibloader_wrapper_pulse) = dlsym(handle, "pa_mainloop_quit"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_mainloop_wakeup + *(void **) (&pa_mainloop_wakeup_dylibloader_wrapper_pulse) = dlsym(handle, "pa_mainloop_wakeup"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_mainloop_set_poll_func + *(void **) (&pa_mainloop_set_poll_func_dylibloader_wrapper_pulse) = dlsym(handle, "pa_mainloop_set_poll_func"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_signal_init + *(void **) (&pa_signal_init_dylibloader_wrapper_pulse) = dlsym(handle, "pa_signal_init"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_signal_done + *(void **) (&pa_signal_done_dylibloader_wrapper_pulse) = dlsym(handle, "pa_signal_done"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_signal_new + *(void **) (&pa_signal_new_dylibloader_wrapper_pulse) = dlsym(handle, "pa_signal_new"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_signal_free + *(void **) (&pa_signal_free_dylibloader_wrapper_pulse) = dlsym(handle, "pa_signal_free"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_signal_set_destroy + *(void **) (&pa_signal_set_destroy_dylibloader_wrapper_pulse) = dlsym(handle, "pa_signal_set_destroy"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_get_user_name + *(void **) (&pa_get_user_name_dylibloader_wrapper_pulse) = dlsym(handle, "pa_get_user_name"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_get_host_name + *(void **) (&pa_get_host_name_dylibloader_wrapper_pulse) = dlsym(handle, "pa_get_host_name"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_get_fqdn + *(void **) (&pa_get_fqdn_dylibloader_wrapper_pulse) = dlsym(handle, "pa_get_fqdn"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_get_home_dir + *(void **) (&pa_get_home_dir_dylibloader_wrapper_pulse) = dlsym(handle, "pa_get_home_dir"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_get_binary_name + *(void **) (&pa_get_binary_name_dylibloader_wrapper_pulse) = dlsym(handle, "pa_get_binary_name"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_path_get_filename + *(void **) (&pa_path_get_filename_dylibloader_wrapper_pulse) = dlsym(handle, "pa_path_get_filename"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_msleep + *(void **) (&pa_msleep_dylibloader_wrapper_pulse) = dlsym(handle, "pa_msleep"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_thread_make_realtime + *(void **) (&pa_thread_make_realtime_dylibloader_wrapper_pulse) = dlsym(handle, "pa_thread_make_realtime"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_gettimeofday + *(void **) (&pa_gettimeofday_dylibloader_wrapper_pulse) = dlsym(handle, "pa_gettimeofday"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_timeval_diff + *(void **) (&pa_timeval_diff_dylibloader_wrapper_pulse) = dlsym(handle, "pa_timeval_diff"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_timeval_cmp + *(void **) (&pa_timeval_cmp_dylibloader_wrapper_pulse) = dlsym(handle, "pa_timeval_cmp"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_timeval_age + *(void **) (&pa_timeval_age_dylibloader_wrapper_pulse) = dlsym(handle, "pa_timeval_age"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_timeval_add + *(void **) (&pa_timeval_add_dylibloader_wrapper_pulse) = dlsym(handle, "pa_timeval_add"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_timeval_sub + *(void **) (&pa_timeval_sub_dylibloader_wrapper_pulse) = dlsym(handle, "pa_timeval_sub"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_timeval_store + *(void **) (&pa_timeval_store_dylibloader_wrapper_pulse) = dlsym(handle, "pa_timeval_store"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_timeval_load + *(void **) (&pa_timeval_load_dylibloader_wrapper_pulse) = dlsym(handle, "pa_timeval_load"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// pa_rtclock_now + *(void **) (&pa_rtclock_now_dylibloader_wrapper_pulse) = dlsym(handle, "pa_rtclock_now"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +return 0; +} diff --git a/drivers/pulseaudio/pulse-so_wrap.h b/drivers/pulseaudio/pulse-so_wrap.h new file mode 100644 index 0000000000..3f50617f81 --- /dev/null +++ b/drivers/pulseaudio/pulse-so_wrap.h @@ -0,0 +1,1444 @@ +#ifndef DYLIBLOAD_WRAPPER_PULSE +#define DYLIBLOAD_WRAPPER_PULSE +// This file is generated. Do not edit! +// see https://github.com/hpvb/dynload-wrapper for details +// generated by /home/hp/Projects/godot/pulse/generate-wrapper.py 0.2 on 2021-02-18 00:19:07 +// flags: /home/hp/Projects/godot/pulse/generate-wrapper.py --include /usr/include/pulse/pulseaudio.h --sys-include <pulse/pulseaudio.h> --soname libpulse.so.0 --omit-prefix _pa_ --init-name pulse --output-header pulse-so_wrap.h --output-implementation pulse-so_wrap.c +// +#define pa_get_library_version pa_get_library_version_dylibloader_orig_pulse +#define pa_bytes_per_second pa_bytes_per_second_dylibloader_orig_pulse +#define pa_frame_size pa_frame_size_dylibloader_orig_pulse +#define pa_sample_size pa_sample_size_dylibloader_orig_pulse +#define pa_sample_size_of_format pa_sample_size_of_format_dylibloader_orig_pulse +#define pa_bytes_to_usec pa_bytes_to_usec_dylibloader_orig_pulse +#define pa_usec_to_bytes pa_usec_to_bytes_dylibloader_orig_pulse +#define pa_sample_spec_init pa_sample_spec_init_dylibloader_orig_pulse +#define pa_sample_format_valid pa_sample_format_valid_dylibloader_orig_pulse +#define pa_sample_rate_valid pa_sample_rate_valid_dylibloader_orig_pulse +#define pa_channels_valid pa_channels_valid_dylibloader_orig_pulse +#define pa_sample_spec_valid pa_sample_spec_valid_dylibloader_orig_pulse +#define pa_sample_spec_equal pa_sample_spec_equal_dylibloader_orig_pulse +#define pa_sample_format_to_string pa_sample_format_to_string_dylibloader_orig_pulse +#define pa_parse_sample_format pa_parse_sample_format_dylibloader_orig_pulse +#define pa_sample_spec_snprint pa_sample_spec_snprint_dylibloader_orig_pulse +#define pa_bytes_snprint pa_bytes_snprint_dylibloader_orig_pulse +#define pa_sample_format_is_le pa_sample_format_is_le_dylibloader_orig_pulse +#define pa_sample_format_is_be pa_sample_format_is_be_dylibloader_orig_pulse +#define pa_direction_valid pa_direction_valid_dylibloader_orig_pulse +#define pa_direction_to_string pa_direction_to_string_dylibloader_orig_pulse +#define pa_mainloop_api_once pa_mainloop_api_once_dylibloader_orig_pulse +#define pa_proplist_new pa_proplist_new_dylibloader_orig_pulse +#define pa_proplist_free pa_proplist_free_dylibloader_orig_pulse +#define pa_proplist_key_valid pa_proplist_key_valid_dylibloader_orig_pulse +#define pa_proplist_sets pa_proplist_sets_dylibloader_orig_pulse +#define pa_proplist_setp pa_proplist_setp_dylibloader_orig_pulse +#define pa_proplist_setf pa_proplist_setf_dylibloader_orig_pulse +#define pa_proplist_set pa_proplist_set_dylibloader_orig_pulse +#define pa_proplist_gets pa_proplist_gets_dylibloader_orig_pulse +#define pa_proplist_get pa_proplist_get_dylibloader_orig_pulse +#define pa_proplist_update pa_proplist_update_dylibloader_orig_pulse +#define pa_proplist_unset pa_proplist_unset_dylibloader_orig_pulse +#define pa_proplist_unset_many pa_proplist_unset_many_dylibloader_orig_pulse +#define pa_proplist_iterate pa_proplist_iterate_dylibloader_orig_pulse +#define pa_proplist_to_string pa_proplist_to_string_dylibloader_orig_pulse +#define pa_proplist_to_string_sep pa_proplist_to_string_sep_dylibloader_orig_pulse +#define pa_proplist_from_string pa_proplist_from_string_dylibloader_orig_pulse +#define pa_proplist_contains pa_proplist_contains_dylibloader_orig_pulse +#define pa_proplist_clear pa_proplist_clear_dylibloader_orig_pulse +#define pa_proplist_copy pa_proplist_copy_dylibloader_orig_pulse +#define pa_proplist_size pa_proplist_size_dylibloader_orig_pulse +#define pa_proplist_isempty pa_proplist_isempty_dylibloader_orig_pulse +#define pa_proplist_equal pa_proplist_equal_dylibloader_orig_pulse +#define pa_channel_map_init pa_channel_map_init_dylibloader_orig_pulse +#define pa_channel_map_init_mono pa_channel_map_init_mono_dylibloader_orig_pulse +#define pa_channel_map_init_stereo pa_channel_map_init_stereo_dylibloader_orig_pulse +#define pa_channel_map_init_auto pa_channel_map_init_auto_dylibloader_orig_pulse +#define pa_channel_map_init_extend pa_channel_map_init_extend_dylibloader_orig_pulse +#define pa_channel_position_to_string pa_channel_position_to_string_dylibloader_orig_pulse +#define pa_channel_position_from_string pa_channel_position_from_string_dylibloader_orig_pulse +#define pa_channel_position_to_pretty_string pa_channel_position_to_pretty_string_dylibloader_orig_pulse +#define pa_channel_map_snprint pa_channel_map_snprint_dylibloader_orig_pulse +#define pa_channel_map_parse pa_channel_map_parse_dylibloader_orig_pulse +#define pa_channel_map_equal pa_channel_map_equal_dylibloader_orig_pulse +#define pa_channel_map_valid pa_channel_map_valid_dylibloader_orig_pulse +#define pa_channel_map_compatible pa_channel_map_compatible_dylibloader_orig_pulse +#define pa_channel_map_superset pa_channel_map_superset_dylibloader_orig_pulse +#define pa_channel_map_can_balance pa_channel_map_can_balance_dylibloader_orig_pulse +#define pa_channel_map_can_fade pa_channel_map_can_fade_dylibloader_orig_pulse +#define pa_channel_map_can_lfe_balance pa_channel_map_can_lfe_balance_dylibloader_orig_pulse +#define pa_channel_map_to_name pa_channel_map_to_name_dylibloader_orig_pulse +#define pa_channel_map_to_pretty_name pa_channel_map_to_pretty_name_dylibloader_orig_pulse +#define pa_channel_map_has_position pa_channel_map_has_position_dylibloader_orig_pulse +#define pa_channel_map_mask pa_channel_map_mask_dylibloader_orig_pulse +#define pa_encoding_to_string pa_encoding_to_string_dylibloader_orig_pulse +#define pa_encoding_from_string pa_encoding_from_string_dylibloader_orig_pulse +#define pa_format_info_new pa_format_info_new_dylibloader_orig_pulse +#define pa_format_info_copy pa_format_info_copy_dylibloader_orig_pulse +#define pa_format_info_free pa_format_info_free_dylibloader_orig_pulse +#define pa_format_info_valid pa_format_info_valid_dylibloader_orig_pulse +#define pa_format_info_is_pcm pa_format_info_is_pcm_dylibloader_orig_pulse +#define pa_format_info_is_compatible pa_format_info_is_compatible_dylibloader_orig_pulse +#define pa_format_info_snprint pa_format_info_snprint_dylibloader_orig_pulse +#define pa_format_info_from_string pa_format_info_from_string_dylibloader_orig_pulse +#define pa_format_info_from_sample_spec pa_format_info_from_sample_spec_dylibloader_orig_pulse +#define pa_format_info_to_sample_spec pa_format_info_to_sample_spec_dylibloader_orig_pulse +#define pa_format_info_get_prop_type pa_format_info_get_prop_type_dylibloader_orig_pulse +#define pa_format_info_get_prop_int pa_format_info_get_prop_int_dylibloader_orig_pulse +#define pa_format_info_get_prop_int_range pa_format_info_get_prop_int_range_dylibloader_orig_pulse +#define pa_format_info_get_prop_int_array pa_format_info_get_prop_int_array_dylibloader_orig_pulse +#define pa_format_info_get_prop_string pa_format_info_get_prop_string_dylibloader_orig_pulse +#define pa_format_info_get_prop_string_array pa_format_info_get_prop_string_array_dylibloader_orig_pulse +#define pa_format_info_free_string_array pa_format_info_free_string_array_dylibloader_orig_pulse +#define pa_format_info_get_sample_format pa_format_info_get_sample_format_dylibloader_orig_pulse +#define pa_format_info_get_rate pa_format_info_get_rate_dylibloader_orig_pulse +#define pa_format_info_get_channels pa_format_info_get_channels_dylibloader_orig_pulse +#define pa_format_info_get_channel_map pa_format_info_get_channel_map_dylibloader_orig_pulse +#define pa_format_info_set_prop_int pa_format_info_set_prop_int_dylibloader_orig_pulse +#define pa_format_info_set_prop_int_array pa_format_info_set_prop_int_array_dylibloader_orig_pulse +#define pa_format_info_set_prop_int_range pa_format_info_set_prop_int_range_dylibloader_orig_pulse +#define pa_format_info_set_prop_string pa_format_info_set_prop_string_dylibloader_orig_pulse +#define pa_format_info_set_prop_string_array pa_format_info_set_prop_string_array_dylibloader_orig_pulse +#define pa_format_info_set_sample_format pa_format_info_set_sample_format_dylibloader_orig_pulse +#define pa_format_info_set_rate pa_format_info_set_rate_dylibloader_orig_pulse +#define pa_format_info_set_channels pa_format_info_set_channels_dylibloader_orig_pulse +#define pa_format_info_set_channel_map pa_format_info_set_channel_map_dylibloader_orig_pulse +#define pa_operation_ref pa_operation_ref_dylibloader_orig_pulse +#define pa_operation_unref pa_operation_unref_dylibloader_orig_pulse +#define pa_operation_cancel pa_operation_cancel_dylibloader_orig_pulse +#define pa_operation_get_state pa_operation_get_state_dylibloader_orig_pulse +#define pa_operation_set_state_callback pa_operation_set_state_callback_dylibloader_orig_pulse +#define pa_context_new pa_context_new_dylibloader_orig_pulse +#define pa_context_new_with_proplist pa_context_new_with_proplist_dylibloader_orig_pulse +#define pa_context_unref pa_context_unref_dylibloader_orig_pulse +#define pa_context_ref pa_context_ref_dylibloader_orig_pulse +#define pa_context_set_state_callback pa_context_set_state_callback_dylibloader_orig_pulse +#define pa_context_set_event_callback pa_context_set_event_callback_dylibloader_orig_pulse +#define pa_context_errno pa_context_errno_dylibloader_orig_pulse +#define pa_context_is_pending pa_context_is_pending_dylibloader_orig_pulse +#define pa_context_get_state pa_context_get_state_dylibloader_orig_pulse +#define pa_context_connect pa_context_connect_dylibloader_orig_pulse +#define pa_context_disconnect pa_context_disconnect_dylibloader_orig_pulse +#define pa_context_drain pa_context_drain_dylibloader_orig_pulse +#define pa_context_exit_daemon pa_context_exit_daemon_dylibloader_orig_pulse +#define pa_context_set_default_sink pa_context_set_default_sink_dylibloader_orig_pulse +#define pa_context_set_default_source pa_context_set_default_source_dylibloader_orig_pulse +#define pa_context_is_local pa_context_is_local_dylibloader_orig_pulse +#define pa_context_set_name pa_context_set_name_dylibloader_orig_pulse +#define pa_context_get_server pa_context_get_server_dylibloader_orig_pulse +#define pa_context_get_protocol_version pa_context_get_protocol_version_dylibloader_orig_pulse +#define pa_context_get_server_protocol_version pa_context_get_server_protocol_version_dylibloader_orig_pulse +#define pa_context_proplist_update pa_context_proplist_update_dylibloader_orig_pulse +#define pa_context_proplist_remove pa_context_proplist_remove_dylibloader_orig_pulse +#define pa_context_get_index pa_context_get_index_dylibloader_orig_pulse +#define pa_context_rttime_new pa_context_rttime_new_dylibloader_orig_pulse +#define pa_context_rttime_restart pa_context_rttime_restart_dylibloader_orig_pulse +#define pa_context_get_tile_size pa_context_get_tile_size_dylibloader_orig_pulse +#define pa_context_load_cookie_from_file pa_context_load_cookie_from_file_dylibloader_orig_pulse +#define pa_cvolume_equal pa_cvolume_equal_dylibloader_orig_pulse +#define pa_cvolume_init pa_cvolume_init_dylibloader_orig_pulse +#define pa_cvolume_set pa_cvolume_set_dylibloader_orig_pulse +#define pa_cvolume_snprint pa_cvolume_snprint_dylibloader_orig_pulse +#define pa_sw_cvolume_snprint_dB pa_sw_cvolume_snprint_dB_dylibloader_orig_pulse +#define pa_cvolume_snprint_verbose pa_cvolume_snprint_verbose_dylibloader_orig_pulse +#define pa_volume_snprint pa_volume_snprint_dylibloader_orig_pulse +#define pa_sw_volume_snprint_dB pa_sw_volume_snprint_dB_dylibloader_orig_pulse +#define pa_volume_snprint_verbose pa_volume_snprint_verbose_dylibloader_orig_pulse +#define pa_cvolume_avg pa_cvolume_avg_dylibloader_orig_pulse +#define pa_cvolume_avg_mask pa_cvolume_avg_mask_dylibloader_orig_pulse +#define pa_cvolume_max pa_cvolume_max_dylibloader_orig_pulse +#define pa_cvolume_max_mask pa_cvolume_max_mask_dylibloader_orig_pulse +#define pa_cvolume_min pa_cvolume_min_dylibloader_orig_pulse +#define pa_cvolume_min_mask pa_cvolume_min_mask_dylibloader_orig_pulse +#define pa_cvolume_valid pa_cvolume_valid_dylibloader_orig_pulse +#define pa_cvolume_channels_equal_to pa_cvolume_channels_equal_to_dylibloader_orig_pulse +#define pa_sw_volume_multiply pa_sw_volume_multiply_dylibloader_orig_pulse +#define pa_sw_cvolume_multiply pa_sw_cvolume_multiply_dylibloader_orig_pulse +#define pa_sw_cvolume_multiply_scalar pa_sw_cvolume_multiply_scalar_dylibloader_orig_pulse +#define pa_sw_volume_divide pa_sw_volume_divide_dylibloader_orig_pulse +#define pa_sw_cvolume_divide pa_sw_cvolume_divide_dylibloader_orig_pulse +#define pa_sw_cvolume_divide_scalar pa_sw_cvolume_divide_scalar_dylibloader_orig_pulse +#define pa_sw_volume_from_dB pa_sw_volume_from_dB_dylibloader_orig_pulse +#define pa_sw_volume_to_dB pa_sw_volume_to_dB_dylibloader_orig_pulse +#define pa_sw_volume_from_linear pa_sw_volume_from_linear_dylibloader_orig_pulse +#define pa_sw_volume_to_linear pa_sw_volume_to_linear_dylibloader_orig_pulse +#define pa_cvolume_remap pa_cvolume_remap_dylibloader_orig_pulse +#define pa_cvolume_compatible pa_cvolume_compatible_dylibloader_orig_pulse +#define pa_cvolume_compatible_with_channel_map pa_cvolume_compatible_with_channel_map_dylibloader_orig_pulse +#define pa_cvolume_get_balance pa_cvolume_get_balance_dylibloader_orig_pulse +#define pa_cvolume_set_balance pa_cvolume_set_balance_dylibloader_orig_pulse +#define pa_cvolume_get_fade pa_cvolume_get_fade_dylibloader_orig_pulse +#define pa_cvolume_set_fade pa_cvolume_set_fade_dylibloader_orig_pulse +#define pa_cvolume_get_lfe_balance pa_cvolume_get_lfe_balance_dylibloader_orig_pulse +#define pa_cvolume_set_lfe_balance pa_cvolume_set_lfe_balance_dylibloader_orig_pulse +#define pa_cvolume_scale pa_cvolume_scale_dylibloader_orig_pulse +#define pa_cvolume_scale_mask pa_cvolume_scale_mask_dylibloader_orig_pulse +#define pa_cvolume_set_position pa_cvolume_set_position_dylibloader_orig_pulse +#define pa_cvolume_get_position pa_cvolume_get_position_dylibloader_orig_pulse +#define pa_cvolume_merge pa_cvolume_merge_dylibloader_orig_pulse +#define pa_cvolume_inc_clamp pa_cvolume_inc_clamp_dylibloader_orig_pulse +#define pa_cvolume_inc pa_cvolume_inc_dylibloader_orig_pulse +#define pa_cvolume_dec pa_cvolume_dec_dylibloader_orig_pulse +#define pa_stream_new pa_stream_new_dylibloader_orig_pulse +#define pa_stream_new_with_proplist pa_stream_new_with_proplist_dylibloader_orig_pulse +#define pa_stream_new_extended pa_stream_new_extended_dylibloader_orig_pulse +#define pa_stream_unref pa_stream_unref_dylibloader_orig_pulse +#define pa_stream_ref pa_stream_ref_dylibloader_orig_pulse +#define pa_stream_get_state pa_stream_get_state_dylibloader_orig_pulse +#define pa_stream_get_context pa_stream_get_context_dylibloader_orig_pulse +#define pa_stream_get_index pa_stream_get_index_dylibloader_orig_pulse +#define pa_stream_get_device_index pa_stream_get_device_index_dylibloader_orig_pulse +#define pa_stream_get_device_name pa_stream_get_device_name_dylibloader_orig_pulse +#define pa_stream_is_suspended pa_stream_is_suspended_dylibloader_orig_pulse +#define pa_stream_is_corked pa_stream_is_corked_dylibloader_orig_pulse +#define pa_stream_connect_playback pa_stream_connect_playback_dylibloader_orig_pulse +#define pa_stream_connect_record pa_stream_connect_record_dylibloader_orig_pulse +#define pa_stream_disconnect pa_stream_disconnect_dylibloader_orig_pulse +#define pa_stream_begin_write pa_stream_begin_write_dylibloader_orig_pulse +#define pa_stream_cancel_write pa_stream_cancel_write_dylibloader_orig_pulse +#define pa_stream_write pa_stream_write_dylibloader_orig_pulse +#define pa_stream_write_ext_free pa_stream_write_ext_free_dylibloader_orig_pulse +#define pa_stream_peek pa_stream_peek_dylibloader_orig_pulse +#define pa_stream_drop pa_stream_drop_dylibloader_orig_pulse +#define pa_stream_writable_size pa_stream_writable_size_dylibloader_orig_pulse +#define pa_stream_readable_size pa_stream_readable_size_dylibloader_orig_pulse +#define pa_stream_drain pa_stream_drain_dylibloader_orig_pulse +#define pa_stream_update_timing_info pa_stream_update_timing_info_dylibloader_orig_pulse +#define pa_stream_set_state_callback pa_stream_set_state_callback_dylibloader_orig_pulse +#define pa_stream_set_write_callback pa_stream_set_write_callback_dylibloader_orig_pulse +#define pa_stream_set_read_callback pa_stream_set_read_callback_dylibloader_orig_pulse +#define pa_stream_set_overflow_callback pa_stream_set_overflow_callback_dylibloader_orig_pulse +#define pa_stream_get_underflow_index pa_stream_get_underflow_index_dylibloader_orig_pulse +#define pa_stream_set_underflow_callback pa_stream_set_underflow_callback_dylibloader_orig_pulse +#define pa_stream_set_started_callback pa_stream_set_started_callback_dylibloader_orig_pulse +#define pa_stream_set_latency_update_callback pa_stream_set_latency_update_callback_dylibloader_orig_pulse +#define pa_stream_set_moved_callback pa_stream_set_moved_callback_dylibloader_orig_pulse +#define pa_stream_set_suspended_callback pa_stream_set_suspended_callback_dylibloader_orig_pulse +#define pa_stream_set_event_callback pa_stream_set_event_callback_dylibloader_orig_pulse +#define pa_stream_set_buffer_attr_callback pa_stream_set_buffer_attr_callback_dylibloader_orig_pulse +#define pa_stream_cork pa_stream_cork_dylibloader_orig_pulse +#define pa_stream_flush pa_stream_flush_dylibloader_orig_pulse +#define pa_stream_prebuf pa_stream_prebuf_dylibloader_orig_pulse +#define pa_stream_trigger pa_stream_trigger_dylibloader_orig_pulse +#define pa_stream_set_name pa_stream_set_name_dylibloader_orig_pulse +#define pa_stream_get_time pa_stream_get_time_dylibloader_orig_pulse +#define pa_stream_get_latency pa_stream_get_latency_dylibloader_orig_pulse +#define pa_stream_get_timing_info pa_stream_get_timing_info_dylibloader_orig_pulse +#define pa_stream_get_sample_spec pa_stream_get_sample_spec_dylibloader_orig_pulse +#define pa_stream_get_channel_map pa_stream_get_channel_map_dylibloader_orig_pulse +#define pa_stream_get_format_info pa_stream_get_format_info_dylibloader_orig_pulse +#define pa_stream_get_buffer_attr pa_stream_get_buffer_attr_dylibloader_orig_pulse +#define pa_stream_set_buffer_attr pa_stream_set_buffer_attr_dylibloader_orig_pulse +#define pa_stream_update_sample_rate pa_stream_update_sample_rate_dylibloader_orig_pulse +#define pa_stream_proplist_update pa_stream_proplist_update_dylibloader_orig_pulse +#define pa_stream_proplist_remove pa_stream_proplist_remove_dylibloader_orig_pulse +#define pa_stream_set_monitor_stream pa_stream_set_monitor_stream_dylibloader_orig_pulse +#define pa_stream_get_monitor_stream pa_stream_get_monitor_stream_dylibloader_orig_pulse +#define pa_context_get_sink_info_by_name pa_context_get_sink_info_by_name_dylibloader_orig_pulse +#define pa_context_get_sink_info_by_index pa_context_get_sink_info_by_index_dylibloader_orig_pulse +#define pa_context_get_sink_info_list pa_context_get_sink_info_list_dylibloader_orig_pulse +#define pa_context_set_sink_volume_by_index pa_context_set_sink_volume_by_index_dylibloader_orig_pulse +#define pa_context_set_sink_volume_by_name pa_context_set_sink_volume_by_name_dylibloader_orig_pulse +#define pa_context_set_sink_mute_by_index pa_context_set_sink_mute_by_index_dylibloader_orig_pulse +#define pa_context_set_sink_mute_by_name pa_context_set_sink_mute_by_name_dylibloader_orig_pulse +#define pa_context_suspend_sink_by_name pa_context_suspend_sink_by_name_dylibloader_orig_pulse +#define pa_context_suspend_sink_by_index pa_context_suspend_sink_by_index_dylibloader_orig_pulse +#define pa_context_set_sink_port_by_index pa_context_set_sink_port_by_index_dylibloader_orig_pulse +#define pa_context_set_sink_port_by_name pa_context_set_sink_port_by_name_dylibloader_orig_pulse +#define pa_context_get_source_info_by_name pa_context_get_source_info_by_name_dylibloader_orig_pulse +#define pa_context_get_source_info_by_index pa_context_get_source_info_by_index_dylibloader_orig_pulse +#define pa_context_get_source_info_list pa_context_get_source_info_list_dylibloader_orig_pulse +#define pa_context_set_source_volume_by_index pa_context_set_source_volume_by_index_dylibloader_orig_pulse +#define pa_context_set_source_volume_by_name pa_context_set_source_volume_by_name_dylibloader_orig_pulse +#define pa_context_set_source_mute_by_index pa_context_set_source_mute_by_index_dylibloader_orig_pulse +#define pa_context_set_source_mute_by_name pa_context_set_source_mute_by_name_dylibloader_orig_pulse +#define pa_context_suspend_source_by_name pa_context_suspend_source_by_name_dylibloader_orig_pulse +#define pa_context_suspend_source_by_index pa_context_suspend_source_by_index_dylibloader_orig_pulse +#define pa_context_set_source_port_by_index pa_context_set_source_port_by_index_dylibloader_orig_pulse +#define pa_context_set_source_port_by_name pa_context_set_source_port_by_name_dylibloader_orig_pulse +#define pa_context_get_server_info pa_context_get_server_info_dylibloader_orig_pulse +#define pa_context_get_module_info pa_context_get_module_info_dylibloader_orig_pulse +#define pa_context_get_module_info_list pa_context_get_module_info_list_dylibloader_orig_pulse +#define pa_context_load_module pa_context_load_module_dylibloader_orig_pulse +#define pa_context_unload_module pa_context_unload_module_dylibloader_orig_pulse +#define pa_context_get_client_info pa_context_get_client_info_dylibloader_orig_pulse +#define pa_context_get_client_info_list pa_context_get_client_info_list_dylibloader_orig_pulse +#define pa_context_kill_client pa_context_kill_client_dylibloader_orig_pulse +#define pa_context_get_card_info_by_index pa_context_get_card_info_by_index_dylibloader_orig_pulse +#define pa_context_get_card_info_by_name pa_context_get_card_info_by_name_dylibloader_orig_pulse +#define pa_context_get_card_info_list pa_context_get_card_info_list_dylibloader_orig_pulse +#define pa_context_set_card_profile_by_index pa_context_set_card_profile_by_index_dylibloader_orig_pulse +#define pa_context_set_card_profile_by_name pa_context_set_card_profile_by_name_dylibloader_orig_pulse +#define pa_context_set_port_latency_offset pa_context_set_port_latency_offset_dylibloader_orig_pulse +#define pa_context_get_sink_input_info pa_context_get_sink_input_info_dylibloader_orig_pulse +#define pa_context_get_sink_input_info_list pa_context_get_sink_input_info_list_dylibloader_orig_pulse +#define pa_context_move_sink_input_by_name pa_context_move_sink_input_by_name_dylibloader_orig_pulse +#define pa_context_move_sink_input_by_index pa_context_move_sink_input_by_index_dylibloader_orig_pulse +#define pa_context_set_sink_input_volume pa_context_set_sink_input_volume_dylibloader_orig_pulse +#define pa_context_set_sink_input_mute pa_context_set_sink_input_mute_dylibloader_orig_pulse +#define pa_context_kill_sink_input pa_context_kill_sink_input_dylibloader_orig_pulse +#define pa_context_get_source_output_info pa_context_get_source_output_info_dylibloader_orig_pulse +#define pa_context_get_source_output_info_list pa_context_get_source_output_info_list_dylibloader_orig_pulse +#define pa_context_move_source_output_by_name pa_context_move_source_output_by_name_dylibloader_orig_pulse +#define pa_context_move_source_output_by_index pa_context_move_source_output_by_index_dylibloader_orig_pulse +#define pa_context_set_source_output_volume pa_context_set_source_output_volume_dylibloader_orig_pulse +#define pa_context_set_source_output_mute pa_context_set_source_output_mute_dylibloader_orig_pulse +#define pa_context_kill_source_output pa_context_kill_source_output_dylibloader_orig_pulse +#define pa_context_stat pa_context_stat_dylibloader_orig_pulse +#define pa_context_get_sample_info_by_name pa_context_get_sample_info_by_name_dylibloader_orig_pulse +#define pa_context_get_sample_info_by_index pa_context_get_sample_info_by_index_dylibloader_orig_pulse +#define pa_context_get_sample_info_list pa_context_get_sample_info_list_dylibloader_orig_pulse +#define pa_context_get_autoload_info_by_name pa_context_get_autoload_info_by_name_dylibloader_orig_pulse +#define pa_context_get_autoload_info_by_index pa_context_get_autoload_info_by_index_dylibloader_orig_pulse +#define pa_context_get_autoload_info_list pa_context_get_autoload_info_list_dylibloader_orig_pulse +#define pa_context_add_autoload pa_context_add_autoload_dylibloader_orig_pulse +#define pa_context_remove_autoload_by_name pa_context_remove_autoload_by_name_dylibloader_orig_pulse +#define pa_context_remove_autoload_by_index pa_context_remove_autoload_by_index_dylibloader_orig_pulse +#define pa_context_subscribe pa_context_subscribe_dylibloader_orig_pulse +#define pa_context_set_subscribe_callback pa_context_set_subscribe_callback_dylibloader_orig_pulse +#define pa_stream_connect_upload pa_stream_connect_upload_dylibloader_orig_pulse +#define pa_stream_finish_upload pa_stream_finish_upload_dylibloader_orig_pulse +#define pa_context_remove_sample pa_context_remove_sample_dylibloader_orig_pulse +#define pa_context_play_sample pa_context_play_sample_dylibloader_orig_pulse +#define pa_context_play_sample_with_proplist pa_context_play_sample_with_proplist_dylibloader_orig_pulse +#define pa_strerror pa_strerror_dylibloader_orig_pulse +#define pa_xmalloc pa_xmalloc_dylibloader_orig_pulse +#define pa_xmalloc0 pa_xmalloc0_dylibloader_orig_pulse +#define pa_xrealloc pa_xrealloc_dylibloader_orig_pulse +#define pa_xfree pa_xfree_dylibloader_orig_pulse +#define pa_xstrdup pa_xstrdup_dylibloader_orig_pulse +#define pa_xstrndup pa_xstrndup_dylibloader_orig_pulse +#define pa_xmemdup pa_xmemdup_dylibloader_orig_pulse +#define pa_utf8_valid pa_utf8_valid_dylibloader_orig_pulse +#define pa_ascii_valid pa_ascii_valid_dylibloader_orig_pulse +#define pa_utf8_filter pa_utf8_filter_dylibloader_orig_pulse +#define pa_ascii_filter pa_ascii_filter_dylibloader_orig_pulse +#define pa_utf8_to_locale pa_utf8_to_locale_dylibloader_orig_pulse +#define pa_locale_to_utf8 pa_locale_to_utf8_dylibloader_orig_pulse +#define pa_threaded_mainloop_new pa_threaded_mainloop_new_dylibloader_orig_pulse +#define pa_threaded_mainloop_free pa_threaded_mainloop_free_dylibloader_orig_pulse +#define pa_threaded_mainloop_start pa_threaded_mainloop_start_dylibloader_orig_pulse +#define pa_threaded_mainloop_stop pa_threaded_mainloop_stop_dylibloader_orig_pulse +#define pa_threaded_mainloop_lock pa_threaded_mainloop_lock_dylibloader_orig_pulse +#define pa_threaded_mainloop_unlock pa_threaded_mainloop_unlock_dylibloader_orig_pulse +#define pa_threaded_mainloop_wait pa_threaded_mainloop_wait_dylibloader_orig_pulse +#define pa_threaded_mainloop_signal pa_threaded_mainloop_signal_dylibloader_orig_pulse +#define pa_threaded_mainloop_accept pa_threaded_mainloop_accept_dylibloader_orig_pulse +#define pa_threaded_mainloop_get_retval pa_threaded_mainloop_get_retval_dylibloader_orig_pulse +#define pa_threaded_mainloop_get_api pa_threaded_mainloop_get_api_dylibloader_orig_pulse +#define pa_threaded_mainloop_in_thread pa_threaded_mainloop_in_thread_dylibloader_orig_pulse +#define pa_threaded_mainloop_set_name pa_threaded_mainloop_set_name_dylibloader_orig_pulse +#define pa_threaded_mainloop_once_unlocked pa_threaded_mainloop_once_unlocked_dylibloader_orig_pulse +#define pa_mainloop_new pa_mainloop_new_dylibloader_orig_pulse +#define pa_mainloop_free pa_mainloop_free_dylibloader_orig_pulse +#define pa_mainloop_prepare pa_mainloop_prepare_dylibloader_orig_pulse +#define pa_mainloop_poll pa_mainloop_poll_dylibloader_orig_pulse +#define pa_mainloop_dispatch pa_mainloop_dispatch_dylibloader_orig_pulse +#define pa_mainloop_get_retval pa_mainloop_get_retval_dylibloader_orig_pulse +#define pa_mainloop_iterate pa_mainloop_iterate_dylibloader_orig_pulse +#define pa_mainloop_run pa_mainloop_run_dylibloader_orig_pulse +#define pa_mainloop_get_api pa_mainloop_get_api_dylibloader_orig_pulse +#define pa_mainloop_quit pa_mainloop_quit_dylibloader_orig_pulse +#define pa_mainloop_wakeup pa_mainloop_wakeup_dylibloader_orig_pulse +#define pa_mainloop_set_poll_func pa_mainloop_set_poll_func_dylibloader_orig_pulse +#define pa_signal_init pa_signal_init_dylibloader_orig_pulse +#define pa_signal_done pa_signal_done_dylibloader_orig_pulse +#define pa_signal_new pa_signal_new_dylibloader_orig_pulse +#define pa_signal_free pa_signal_free_dylibloader_orig_pulse +#define pa_signal_set_destroy pa_signal_set_destroy_dylibloader_orig_pulse +#define pa_get_user_name pa_get_user_name_dylibloader_orig_pulse +#define pa_get_host_name pa_get_host_name_dylibloader_orig_pulse +#define pa_get_fqdn pa_get_fqdn_dylibloader_orig_pulse +#define pa_get_home_dir pa_get_home_dir_dylibloader_orig_pulse +#define pa_get_binary_name pa_get_binary_name_dylibloader_orig_pulse +#define pa_path_get_filename pa_path_get_filename_dylibloader_orig_pulse +#define pa_msleep pa_msleep_dylibloader_orig_pulse +#define pa_thread_make_realtime pa_thread_make_realtime_dylibloader_orig_pulse +#define pa_gettimeofday pa_gettimeofday_dylibloader_orig_pulse +#define pa_timeval_diff pa_timeval_diff_dylibloader_orig_pulse +#define pa_timeval_cmp pa_timeval_cmp_dylibloader_orig_pulse +#define pa_timeval_age pa_timeval_age_dylibloader_orig_pulse +#define pa_timeval_add pa_timeval_add_dylibloader_orig_pulse +#define pa_timeval_sub pa_timeval_sub_dylibloader_orig_pulse +#define pa_timeval_store pa_timeval_store_dylibloader_orig_pulse +#define pa_timeval_load pa_timeval_load_dylibloader_orig_pulse +#define pa_rtclock_now pa_rtclock_now_dylibloader_orig_pulse +#include <pulse/pulseaudio.h> +#undef pa_get_library_version +#undef pa_bytes_per_second +#undef pa_frame_size +#undef pa_sample_size +#undef pa_sample_size_of_format +#undef pa_bytes_to_usec +#undef pa_usec_to_bytes +#undef pa_sample_spec_init +#undef pa_sample_format_valid +#undef pa_sample_rate_valid +#undef pa_channels_valid +#undef pa_sample_spec_valid +#undef pa_sample_spec_equal +#undef pa_sample_format_to_string +#undef pa_parse_sample_format +#undef pa_sample_spec_snprint +#undef pa_bytes_snprint +#undef pa_sample_format_is_le +#undef pa_sample_format_is_be +#undef pa_direction_valid +#undef pa_direction_to_string +#undef pa_mainloop_api_once +#undef pa_proplist_new +#undef pa_proplist_free +#undef pa_proplist_key_valid +#undef pa_proplist_sets +#undef pa_proplist_setp +#undef pa_proplist_setf +#undef pa_proplist_set +#undef pa_proplist_gets +#undef pa_proplist_get +#undef pa_proplist_update +#undef pa_proplist_unset +#undef pa_proplist_unset_many +#undef pa_proplist_iterate +#undef pa_proplist_to_string +#undef pa_proplist_to_string_sep +#undef pa_proplist_from_string +#undef pa_proplist_contains +#undef pa_proplist_clear +#undef pa_proplist_copy +#undef pa_proplist_size +#undef pa_proplist_isempty +#undef pa_proplist_equal +#undef pa_channel_map_init +#undef pa_channel_map_init_mono +#undef pa_channel_map_init_stereo +#undef pa_channel_map_init_auto +#undef pa_channel_map_init_extend +#undef pa_channel_position_to_string +#undef pa_channel_position_from_string +#undef pa_channel_position_to_pretty_string +#undef pa_channel_map_snprint +#undef pa_channel_map_parse +#undef pa_channel_map_equal +#undef pa_channel_map_valid +#undef pa_channel_map_compatible +#undef pa_channel_map_superset +#undef pa_channel_map_can_balance +#undef pa_channel_map_can_fade +#undef pa_channel_map_can_lfe_balance +#undef pa_channel_map_to_name +#undef pa_channel_map_to_pretty_name +#undef pa_channel_map_has_position +#undef pa_channel_map_mask +#undef pa_encoding_to_string +#undef pa_encoding_from_string +#undef pa_format_info_new +#undef pa_format_info_copy +#undef pa_format_info_free +#undef pa_format_info_valid +#undef pa_format_info_is_pcm +#undef pa_format_info_is_compatible +#undef pa_format_info_snprint +#undef pa_format_info_from_string +#undef pa_format_info_from_sample_spec +#undef pa_format_info_to_sample_spec +#undef pa_format_info_get_prop_type +#undef pa_format_info_get_prop_int +#undef pa_format_info_get_prop_int_range +#undef pa_format_info_get_prop_int_array +#undef pa_format_info_get_prop_string +#undef pa_format_info_get_prop_string_array +#undef pa_format_info_free_string_array +#undef pa_format_info_get_sample_format +#undef pa_format_info_get_rate +#undef pa_format_info_get_channels +#undef pa_format_info_get_channel_map +#undef pa_format_info_set_prop_int +#undef pa_format_info_set_prop_int_array +#undef pa_format_info_set_prop_int_range +#undef pa_format_info_set_prop_string +#undef pa_format_info_set_prop_string_array +#undef pa_format_info_set_sample_format +#undef pa_format_info_set_rate +#undef pa_format_info_set_channels +#undef pa_format_info_set_channel_map +#undef pa_operation_ref +#undef pa_operation_unref +#undef pa_operation_cancel +#undef pa_operation_get_state +#undef pa_operation_set_state_callback +#undef pa_context_new +#undef pa_context_new_with_proplist +#undef pa_context_unref +#undef pa_context_ref +#undef pa_context_set_state_callback +#undef pa_context_set_event_callback +#undef pa_context_errno +#undef pa_context_is_pending +#undef pa_context_get_state +#undef pa_context_connect +#undef pa_context_disconnect +#undef pa_context_drain +#undef pa_context_exit_daemon +#undef pa_context_set_default_sink +#undef pa_context_set_default_source +#undef pa_context_is_local +#undef pa_context_set_name +#undef pa_context_get_server +#undef pa_context_get_protocol_version +#undef pa_context_get_server_protocol_version +#undef pa_context_proplist_update +#undef pa_context_proplist_remove +#undef pa_context_get_index +#undef pa_context_rttime_new +#undef pa_context_rttime_restart +#undef pa_context_get_tile_size +#undef pa_context_load_cookie_from_file +#undef pa_cvolume_equal +#undef pa_cvolume_init +#undef pa_cvolume_set +#undef pa_cvolume_snprint +#undef pa_sw_cvolume_snprint_dB +#undef pa_cvolume_snprint_verbose +#undef pa_volume_snprint +#undef pa_sw_volume_snprint_dB +#undef pa_volume_snprint_verbose +#undef pa_cvolume_avg +#undef pa_cvolume_avg_mask +#undef pa_cvolume_max +#undef pa_cvolume_max_mask +#undef pa_cvolume_min +#undef pa_cvolume_min_mask +#undef pa_cvolume_valid +#undef pa_cvolume_channels_equal_to +#undef pa_sw_volume_multiply +#undef pa_sw_cvolume_multiply +#undef pa_sw_cvolume_multiply_scalar +#undef pa_sw_volume_divide +#undef pa_sw_cvolume_divide +#undef pa_sw_cvolume_divide_scalar +#undef pa_sw_volume_from_dB +#undef pa_sw_volume_to_dB +#undef pa_sw_volume_from_linear +#undef pa_sw_volume_to_linear +#undef pa_cvolume_remap +#undef pa_cvolume_compatible +#undef pa_cvolume_compatible_with_channel_map +#undef pa_cvolume_get_balance +#undef pa_cvolume_set_balance +#undef pa_cvolume_get_fade +#undef pa_cvolume_set_fade +#undef pa_cvolume_get_lfe_balance +#undef pa_cvolume_set_lfe_balance +#undef pa_cvolume_scale +#undef pa_cvolume_scale_mask +#undef pa_cvolume_set_position +#undef pa_cvolume_get_position +#undef pa_cvolume_merge +#undef pa_cvolume_inc_clamp +#undef pa_cvolume_inc +#undef pa_cvolume_dec +#undef pa_stream_new +#undef pa_stream_new_with_proplist +#undef pa_stream_new_extended +#undef pa_stream_unref +#undef pa_stream_ref +#undef pa_stream_get_state +#undef pa_stream_get_context +#undef pa_stream_get_index +#undef pa_stream_get_device_index +#undef pa_stream_get_device_name +#undef pa_stream_is_suspended +#undef pa_stream_is_corked +#undef pa_stream_connect_playback +#undef pa_stream_connect_record +#undef pa_stream_disconnect +#undef pa_stream_begin_write +#undef pa_stream_cancel_write +#undef pa_stream_write +#undef pa_stream_write_ext_free +#undef pa_stream_peek +#undef pa_stream_drop +#undef pa_stream_writable_size +#undef pa_stream_readable_size +#undef pa_stream_drain +#undef pa_stream_update_timing_info +#undef pa_stream_set_state_callback +#undef pa_stream_set_write_callback +#undef pa_stream_set_read_callback +#undef pa_stream_set_overflow_callback +#undef pa_stream_get_underflow_index +#undef pa_stream_set_underflow_callback +#undef pa_stream_set_started_callback +#undef pa_stream_set_latency_update_callback +#undef pa_stream_set_moved_callback +#undef pa_stream_set_suspended_callback +#undef pa_stream_set_event_callback +#undef pa_stream_set_buffer_attr_callback +#undef pa_stream_cork +#undef pa_stream_flush +#undef pa_stream_prebuf +#undef pa_stream_trigger +#undef pa_stream_set_name +#undef pa_stream_get_time +#undef pa_stream_get_latency +#undef pa_stream_get_timing_info +#undef pa_stream_get_sample_spec +#undef pa_stream_get_channel_map +#undef pa_stream_get_format_info +#undef pa_stream_get_buffer_attr +#undef pa_stream_set_buffer_attr +#undef pa_stream_update_sample_rate +#undef pa_stream_proplist_update +#undef pa_stream_proplist_remove +#undef pa_stream_set_monitor_stream +#undef pa_stream_get_monitor_stream +#undef pa_context_get_sink_info_by_name +#undef pa_context_get_sink_info_by_index +#undef pa_context_get_sink_info_list +#undef pa_context_set_sink_volume_by_index +#undef pa_context_set_sink_volume_by_name +#undef pa_context_set_sink_mute_by_index +#undef pa_context_set_sink_mute_by_name +#undef pa_context_suspend_sink_by_name +#undef pa_context_suspend_sink_by_index +#undef pa_context_set_sink_port_by_index +#undef pa_context_set_sink_port_by_name +#undef pa_context_get_source_info_by_name +#undef pa_context_get_source_info_by_index +#undef pa_context_get_source_info_list +#undef pa_context_set_source_volume_by_index +#undef pa_context_set_source_volume_by_name +#undef pa_context_set_source_mute_by_index +#undef pa_context_set_source_mute_by_name +#undef pa_context_suspend_source_by_name +#undef pa_context_suspend_source_by_index +#undef pa_context_set_source_port_by_index +#undef pa_context_set_source_port_by_name +#undef pa_context_get_server_info +#undef pa_context_get_module_info +#undef pa_context_get_module_info_list +#undef pa_context_load_module +#undef pa_context_unload_module +#undef pa_context_get_client_info +#undef pa_context_get_client_info_list +#undef pa_context_kill_client +#undef pa_context_get_card_info_by_index +#undef pa_context_get_card_info_by_name +#undef pa_context_get_card_info_list +#undef pa_context_set_card_profile_by_index +#undef pa_context_set_card_profile_by_name +#undef pa_context_set_port_latency_offset +#undef pa_context_get_sink_input_info +#undef pa_context_get_sink_input_info_list +#undef pa_context_move_sink_input_by_name +#undef pa_context_move_sink_input_by_index +#undef pa_context_set_sink_input_volume +#undef pa_context_set_sink_input_mute +#undef pa_context_kill_sink_input +#undef pa_context_get_source_output_info +#undef pa_context_get_source_output_info_list +#undef pa_context_move_source_output_by_name +#undef pa_context_move_source_output_by_index +#undef pa_context_set_source_output_volume +#undef pa_context_set_source_output_mute +#undef pa_context_kill_source_output +#undef pa_context_stat +#undef pa_context_get_sample_info_by_name +#undef pa_context_get_sample_info_by_index +#undef pa_context_get_sample_info_list +#undef pa_context_get_autoload_info_by_name +#undef pa_context_get_autoload_info_by_index +#undef pa_context_get_autoload_info_list +#undef pa_context_add_autoload +#undef pa_context_remove_autoload_by_name +#undef pa_context_remove_autoload_by_index +#undef pa_context_subscribe +#undef pa_context_set_subscribe_callback +#undef pa_stream_connect_upload +#undef pa_stream_finish_upload +#undef pa_context_remove_sample +#undef pa_context_play_sample +#undef pa_context_play_sample_with_proplist +#undef pa_strerror +#undef pa_xmalloc +#undef pa_xmalloc0 +#undef pa_xrealloc +#undef pa_xfree +#undef pa_xstrdup +#undef pa_xstrndup +#undef pa_xmemdup +#undef pa_utf8_valid +#undef pa_ascii_valid +#undef pa_utf8_filter +#undef pa_ascii_filter +#undef pa_utf8_to_locale +#undef pa_locale_to_utf8 +#undef pa_threaded_mainloop_new +#undef pa_threaded_mainloop_free +#undef pa_threaded_mainloop_start +#undef pa_threaded_mainloop_stop +#undef pa_threaded_mainloop_lock +#undef pa_threaded_mainloop_unlock +#undef pa_threaded_mainloop_wait +#undef pa_threaded_mainloop_signal +#undef pa_threaded_mainloop_accept +#undef pa_threaded_mainloop_get_retval +#undef pa_threaded_mainloop_get_api +#undef pa_threaded_mainloop_in_thread +#undef pa_threaded_mainloop_set_name +#undef pa_threaded_mainloop_once_unlocked +#undef pa_mainloop_new +#undef pa_mainloop_free +#undef pa_mainloop_prepare +#undef pa_mainloop_poll +#undef pa_mainloop_dispatch +#undef pa_mainloop_get_retval +#undef pa_mainloop_iterate +#undef pa_mainloop_run +#undef pa_mainloop_get_api +#undef pa_mainloop_quit +#undef pa_mainloop_wakeup +#undef pa_mainloop_set_poll_func +#undef pa_signal_init +#undef pa_signal_done +#undef pa_signal_new +#undef pa_signal_free +#undef pa_signal_set_destroy +#undef pa_get_user_name +#undef pa_get_host_name +#undef pa_get_fqdn +#undef pa_get_home_dir +#undef pa_get_binary_name +#undef pa_path_get_filename +#undef pa_msleep +#undef pa_thread_make_realtime +#undef pa_gettimeofday +#undef pa_timeval_diff +#undef pa_timeval_cmp +#undef pa_timeval_age +#undef pa_timeval_add +#undef pa_timeval_sub +#undef pa_timeval_store +#undef pa_timeval_load +#undef pa_rtclock_now +#ifdef __cplusplus +extern "C" { +#endif +#define pa_get_library_version pa_get_library_version_dylibloader_wrapper_pulse +#define pa_bytes_per_second pa_bytes_per_second_dylibloader_wrapper_pulse +#define pa_frame_size pa_frame_size_dylibloader_wrapper_pulse +#define pa_sample_size pa_sample_size_dylibloader_wrapper_pulse +#define pa_sample_size_of_format pa_sample_size_of_format_dylibloader_wrapper_pulse +#define pa_bytes_to_usec pa_bytes_to_usec_dylibloader_wrapper_pulse +#define pa_usec_to_bytes pa_usec_to_bytes_dylibloader_wrapper_pulse +#define pa_sample_spec_init pa_sample_spec_init_dylibloader_wrapper_pulse +#define pa_sample_format_valid pa_sample_format_valid_dylibloader_wrapper_pulse +#define pa_sample_rate_valid pa_sample_rate_valid_dylibloader_wrapper_pulse +#define pa_channels_valid pa_channels_valid_dylibloader_wrapper_pulse +#define pa_sample_spec_valid pa_sample_spec_valid_dylibloader_wrapper_pulse +#define pa_sample_spec_equal pa_sample_spec_equal_dylibloader_wrapper_pulse +#define pa_sample_format_to_string pa_sample_format_to_string_dylibloader_wrapper_pulse +#define pa_parse_sample_format pa_parse_sample_format_dylibloader_wrapper_pulse +#define pa_sample_spec_snprint pa_sample_spec_snprint_dylibloader_wrapper_pulse +#define pa_bytes_snprint pa_bytes_snprint_dylibloader_wrapper_pulse +#define pa_sample_format_is_le pa_sample_format_is_le_dylibloader_wrapper_pulse +#define pa_sample_format_is_be pa_sample_format_is_be_dylibloader_wrapper_pulse +#define pa_direction_valid pa_direction_valid_dylibloader_wrapper_pulse +#define pa_direction_to_string pa_direction_to_string_dylibloader_wrapper_pulse +#define pa_mainloop_api_once pa_mainloop_api_once_dylibloader_wrapper_pulse +#define pa_proplist_new pa_proplist_new_dylibloader_wrapper_pulse +#define pa_proplist_free pa_proplist_free_dylibloader_wrapper_pulse +#define pa_proplist_key_valid pa_proplist_key_valid_dylibloader_wrapper_pulse +#define pa_proplist_sets pa_proplist_sets_dylibloader_wrapper_pulse +#define pa_proplist_setp pa_proplist_setp_dylibloader_wrapper_pulse +#define pa_proplist_setf pa_proplist_setf_dylibloader_wrapper_pulse +#define pa_proplist_set pa_proplist_set_dylibloader_wrapper_pulse +#define pa_proplist_gets pa_proplist_gets_dylibloader_wrapper_pulse +#define pa_proplist_get pa_proplist_get_dylibloader_wrapper_pulse +#define pa_proplist_update pa_proplist_update_dylibloader_wrapper_pulse +#define pa_proplist_unset pa_proplist_unset_dylibloader_wrapper_pulse +#define pa_proplist_unset_many pa_proplist_unset_many_dylibloader_wrapper_pulse +#define pa_proplist_iterate pa_proplist_iterate_dylibloader_wrapper_pulse +#define pa_proplist_to_string pa_proplist_to_string_dylibloader_wrapper_pulse +#define pa_proplist_to_string_sep pa_proplist_to_string_sep_dylibloader_wrapper_pulse +#define pa_proplist_from_string pa_proplist_from_string_dylibloader_wrapper_pulse +#define pa_proplist_contains pa_proplist_contains_dylibloader_wrapper_pulse +#define pa_proplist_clear pa_proplist_clear_dylibloader_wrapper_pulse +#define pa_proplist_copy pa_proplist_copy_dylibloader_wrapper_pulse +#define pa_proplist_size pa_proplist_size_dylibloader_wrapper_pulse +#define pa_proplist_isempty pa_proplist_isempty_dylibloader_wrapper_pulse +#define pa_proplist_equal pa_proplist_equal_dylibloader_wrapper_pulse +#define pa_channel_map_init pa_channel_map_init_dylibloader_wrapper_pulse +#define pa_channel_map_init_mono pa_channel_map_init_mono_dylibloader_wrapper_pulse +#define pa_channel_map_init_stereo pa_channel_map_init_stereo_dylibloader_wrapper_pulse +#define pa_channel_map_init_auto pa_channel_map_init_auto_dylibloader_wrapper_pulse +#define pa_channel_map_init_extend pa_channel_map_init_extend_dylibloader_wrapper_pulse +#define pa_channel_position_to_string pa_channel_position_to_string_dylibloader_wrapper_pulse +#define pa_channel_position_from_string pa_channel_position_from_string_dylibloader_wrapper_pulse +#define pa_channel_position_to_pretty_string pa_channel_position_to_pretty_string_dylibloader_wrapper_pulse +#define pa_channel_map_snprint pa_channel_map_snprint_dylibloader_wrapper_pulse +#define pa_channel_map_parse pa_channel_map_parse_dylibloader_wrapper_pulse +#define pa_channel_map_equal pa_channel_map_equal_dylibloader_wrapper_pulse +#define pa_channel_map_valid pa_channel_map_valid_dylibloader_wrapper_pulse +#define pa_channel_map_compatible pa_channel_map_compatible_dylibloader_wrapper_pulse +#define pa_channel_map_superset pa_channel_map_superset_dylibloader_wrapper_pulse +#define pa_channel_map_can_balance pa_channel_map_can_balance_dylibloader_wrapper_pulse +#define pa_channel_map_can_fade pa_channel_map_can_fade_dylibloader_wrapper_pulse +#define pa_channel_map_can_lfe_balance pa_channel_map_can_lfe_balance_dylibloader_wrapper_pulse +#define pa_channel_map_to_name pa_channel_map_to_name_dylibloader_wrapper_pulse +#define pa_channel_map_to_pretty_name pa_channel_map_to_pretty_name_dylibloader_wrapper_pulse +#define pa_channel_map_has_position pa_channel_map_has_position_dylibloader_wrapper_pulse +#define pa_channel_map_mask pa_channel_map_mask_dylibloader_wrapper_pulse +#define pa_encoding_to_string pa_encoding_to_string_dylibloader_wrapper_pulse +#define pa_encoding_from_string pa_encoding_from_string_dylibloader_wrapper_pulse +#define pa_format_info_new pa_format_info_new_dylibloader_wrapper_pulse +#define pa_format_info_copy pa_format_info_copy_dylibloader_wrapper_pulse +#define pa_format_info_free pa_format_info_free_dylibloader_wrapper_pulse +#define pa_format_info_valid pa_format_info_valid_dylibloader_wrapper_pulse +#define pa_format_info_is_pcm pa_format_info_is_pcm_dylibloader_wrapper_pulse +#define pa_format_info_is_compatible pa_format_info_is_compatible_dylibloader_wrapper_pulse +#define pa_format_info_snprint pa_format_info_snprint_dylibloader_wrapper_pulse +#define pa_format_info_from_string pa_format_info_from_string_dylibloader_wrapper_pulse +#define pa_format_info_from_sample_spec pa_format_info_from_sample_spec_dylibloader_wrapper_pulse +#define pa_format_info_to_sample_spec pa_format_info_to_sample_spec_dylibloader_wrapper_pulse +#define pa_format_info_get_prop_type pa_format_info_get_prop_type_dylibloader_wrapper_pulse +#define pa_format_info_get_prop_int pa_format_info_get_prop_int_dylibloader_wrapper_pulse +#define pa_format_info_get_prop_int_range pa_format_info_get_prop_int_range_dylibloader_wrapper_pulse +#define pa_format_info_get_prop_int_array pa_format_info_get_prop_int_array_dylibloader_wrapper_pulse +#define pa_format_info_get_prop_string pa_format_info_get_prop_string_dylibloader_wrapper_pulse +#define pa_format_info_get_prop_string_array pa_format_info_get_prop_string_array_dylibloader_wrapper_pulse +#define pa_format_info_free_string_array pa_format_info_free_string_array_dylibloader_wrapper_pulse +#define pa_format_info_get_sample_format pa_format_info_get_sample_format_dylibloader_wrapper_pulse +#define pa_format_info_get_rate pa_format_info_get_rate_dylibloader_wrapper_pulse +#define pa_format_info_get_channels pa_format_info_get_channels_dylibloader_wrapper_pulse +#define pa_format_info_get_channel_map pa_format_info_get_channel_map_dylibloader_wrapper_pulse +#define pa_format_info_set_prop_int pa_format_info_set_prop_int_dylibloader_wrapper_pulse +#define pa_format_info_set_prop_int_array pa_format_info_set_prop_int_array_dylibloader_wrapper_pulse +#define pa_format_info_set_prop_int_range pa_format_info_set_prop_int_range_dylibloader_wrapper_pulse +#define pa_format_info_set_prop_string pa_format_info_set_prop_string_dylibloader_wrapper_pulse +#define pa_format_info_set_prop_string_array pa_format_info_set_prop_string_array_dylibloader_wrapper_pulse +#define pa_format_info_set_sample_format pa_format_info_set_sample_format_dylibloader_wrapper_pulse +#define pa_format_info_set_rate pa_format_info_set_rate_dylibloader_wrapper_pulse +#define pa_format_info_set_channels pa_format_info_set_channels_dylibloader_wrapper_pulse +#define pa_format_info_set_channel_map pa_format_info_set_channel_map_dylibloader_wrapper_pulse +#define pa_operation_ref pa_operation_ref_dylibloader_wrapper_pulse +#define pa_operation_unref pa_operation_unref_dylibloader_wrapper_pulse +#define pa_operation_cancel pa_operation_cancel_dylibloader_wrapper_pulse +#define pa_operation_get_state pa_operation_get_state_dylibloader_wrapper_pulse +#define pa_operation_set_state_callback pa_operation_set_state_callback_dylibloader_wrapper_pulse +#define pa_context_new pa_context_new_dylibloader_wrapper_pulse +#define pa_context_new_with_proplist pa_context_new_with_proplist_dylibloader_wrapper_pulse +#define pa_context_unref pa_context_unref_dylibloader_wrapper_pulse +#define pa_context_ref pa_context_ref_dylibloader_wrapper_pulse +#define pa_context_set_state_callback pa_context_set_state_callback_dylibloader_wrapper_pulse +#define pa_context_set_event_callback pa_context_set_event_callback_dylibloader_wrapper_pulse +#define pa_context_errno pa_context_errno_dylibloader_wrapper_pulse +#define pa_context_is_pending pa_context_is_pending_dylibloader_wrapper_pulse +#define pa_context_get_state pa_context_get_state_dylibloader_wrapper_pulse +#define pa_context_connect pa_context_connect_dylibloader_wrapper_pulse +#define pa_context_disconnect pa_context_disconnect_dylibloader_wrapper_pulse +#define pa_context_drain pa_context_drain_dylibloader_wrapper_pulse +#define pa_context_exit_daemon pa_context_exit_daemon_dylibloader_wrapper_pulse +#define pa_context_set_default_sink pa_context_set_default_sink_dylibloader_wrapper_pulse +#define pa_context_set_default_source pa_context_set_default_source_dylibloader_wrapper_pulse +#define pa_context_is_local pa_context_is_local_dylibloader_wrapper_pulse +#define pa_context_set_name pa_context_set_name_dylibloader_wrapper_pulse +#define pa_context_get_server pa_context_get_server_dylibloader_wrapper_pulse +#define pa_context_get_protocol_version pa_context_get_protocol_version_dylibloader_wrapper_pulse +#define pa_context_get_server_protocol_version pa_context_get_server_protocol_version_dylibloader_wrapper_pulse +#define pa_context_proplist_update pa_context_proplist_update_dylibloader_wrapper_pulse +#define pa_context_proplist_remove pa_context_proplist_remove_dylibloader_wrapper_pulse +#define pa_context_get_index pa_context_get_index_dylibloader_wrapper_pulse +#define pa_context_rttime_new pa_context_rttime_new_dylibloader_wrapper_pulse +#define pa_context_rttime_restart pa_context_rttime_restart_dylibloader_wrapper_pulse +#define pa_context_get_tile_size pa_context_get_tile_size_dylibloader_wrapper_pulse +#define pa_context_load_cookie_from_file pa_context_load_cookie_from_file_dylibloader_wrapper_pulse +#define pa_cvolume_equal pa_cvolume_equal_dylibloader_wrapper_pulse +#define pa_cvolume_init pa_cvolume_init_dylibloader_wrapper_pulse +#define pa_cvolume_set pa_cvolume_set_dylibloader_wrapper_pulse +#define pa_cvolume_snprint pa_cvolume_snprint_dylibloader_wrapper_pulse +#define pa_sw_cvolume_snprint_dB pa_sw_cvolume_snprint_dB_dylibloader_wrapper_pulse +#define pa_cvolume_snprint_verbose pa_cvolume_snprint_verbose_dylibloader_wrapper_pulse +#define pa_volume_snprint pa_volume_snprint_dylibloader_wrapper_pulse +#define pa_sw_volume_snprint_dB pa_sw_volume_snprint_dB_dylibloader_wrapper_pulse +#define pa_volume_snprint_verbose pa_volume_snprint_verbose_dylibloader_wrapper_pulse +#define pa_cvolume_avg pa_cvolume_avg_dylibloader_wrapper_pulse +#define pa_cvolume_avg_mask pa_cvolume_avg_mask_dylibloader_wrapper_pulse +#define pa_cvolume_max pa_cvolume_max_dylibloader_wrapper_pulse +#define pa_cvolume_max_mask pa_cvolume_max_mask_dylibloader_wrapper_pulse +#define pa_cvolume_min pa_cvolume_min_dylibloader_wrapper_pulse +#define pa_cvolume_min_mask pa_cvolume_min_mask_dylibloader_wrapper_pulse +#define pa_cvolume_valid pa_cvolume_valid_dylibloader_wrapper_pulse +#define pa_cvolume_channels_equal_to pa_cvolume_channels_equal_to_dylibloader_wrapper_pulse +#define pa_sw_volume_multiply pa_sw_volume_multiply_dylibloader_wrapper_pulse +#define pa_sw_cvolume_multiply pa_sw_cvolume_multiply_dylibloader_wrapper_pulse +#define pa_sw_cvolume_multiply_scalar pa_sw_cvolume_multiply_scalar_dylibloader_wrapper_pulse +#define pa_sw_volume_divide pa_sw_volume_divide_dylibloader_wrapper_pulse +#define pa_sw_cvolume_divide pa_sw_cvolume_divide_dylibloader_wrapper_pulse +#define pa_sw_cvolume_divide_scalar pa_sw_cvolume_divide_scalar_dylibloader_wrapper_pulse +#define pa_sw_volume_from_dB pa_sw_volume_from_dB_dylibloader_wrapper_pulse +#define pa_sw_volume_to_dB pa_sw_volume_to_dB_dylibloader_wrapper_pulse +#define pa_sw_volume_from_linear pa_sw_volume_from_linear_dylibloader_wrapper_pulse +#define pa_sw_volume_to_linear pa_sw_volume_to_linear_dylibloader_wrapper_pulse +#define pa_cvolume_remap pa_cvolume_remap_dylibloader_wrapper_pulse +#define pa_cvolume_compatible pa_cvolume_compatible_dylibloader_wrapper_pulse +#define pa_cvolume_compatible_with_channel_map pa_cvolume_compatible_with_channel_map_dylibloader_wrapper_pulse +#define pa_cvolume_get_balance pa_cvolume_get_balance_dylibloader_wrapper_pulse +#define pa_cvolume_set_balance pa_cvolume_set_balance_dylibloader_wrapper_pulse +#define pa_cvolume_get_fade pa_cvolume_get_fade_dylibloader_wrapper_pulse +#define pa_cvolume_set_fade pa_cvolume_set_fade_dylibloader_wrapper_pulse +#define pa_cvolume_get_lfe_balance pa_cvolume_get_lfe_balance_dylibloader_wrapper_pulse +#define pa_cvolume_set_lfe_balance pa_cvolume_set_lfe_balance_dylibloader_wrapper_pulse +#define pa_cvolume_scale pa_cvolume_scale_dylibloader_wrapper_pulse +#define pa_cvolume_scale_mask pa_cvolume_scale_mask_dylibloader_wrapper_pulse +#define pa_cvolume_set_position pa_cvolume_set_position_dylibloader_wrapper_pulse +#define pa_cvolume_get_position pa_cvolume_get_position_dylibloader_wrapper_pulse +#define pa_cvolume_merge pa_cvolume_merge_dylibloader_wrapper_pulse +#define pa_cvolume_inc_clamp pa_cvolume_inc_clamp_dylibloader_wrapper_pulse +#define pa_cvolume_inc pa_cvolume_inc_dylibloader_wrapper_pulse +#define pa_cvolume_dec pa_cvolume_dec_dylibloader_wrapper_pulse +#define pa_stream_new pa_stream_new_dylibloader_wrapper_pulse +#define pa_stream_new_with_proplist pa_stream_new_with_proplist_dylibloader_wrapper_pulse +#define pa_stream_new_extended pa_stream_new_extended_dylibloader_wrapper_pulse +#define pa_stream_unref pa_stream_unref_dylibloader_wrapper_pulse +#define pa_stream_ref pa_stream_ref_dylibloader_wrapper_pulse +#define pa_stream_get_state pa_stream_get_state_dylibloader_wrapper_pulse +#define pa_stream_get_context pa_stream_get_context_dylibloader_wrapper_pulse +#define pa_stream_get_index pa_stream_get_index_dylibloader_wrapper_pulse +#define pa_stream_get_device_index pa_stream_get_device_index_dylibloader_wrapper_pulse +#define pa_stream_get_device_name pa_stream_get_device_name_dylibloader_wrapper_pulse +#define pa_stream_is_suspended pa_stream_is_suspended_dylibloader_wrapper_pulse +#define pa_stream_is_corked pa_stream_is_corked_dylibloader_wrapper_pulse +#define pa_stream_connect_playback pa_stream_connect_playback_dylibloader_wrapper_pulse +#define pa_stream_connect_record pa_stream_connect_record_dylibloader_wrapper_pulse +#define pa_stream_disconnect pa_stream_disconnect_dylibloader_wrapper_pulse +#define pa_stream_begin_write pa_stream_begin_write_dylibloader_wrapper_pulse +#define pa_stream_cancel_write pa_stream_cancel_write_dylibloader_wrapper_pulse +#define pa_stream_write pa_stream_write_dylibloader_wrapper_pulse +#define pa_stream_write_ext_free pa_stream_write_ext_free_dylibloader_wrapper_pulse +#define pa_stream_peek pa_stream_peek_dylibloader_wrapper_pulse +#define pa_stream_drop pa_stream_drop_dylibloader_wrapper_pulse +#define pa_stream_writable_size pa_stream_writable_size_dylibloader_wrapper_pulse +#define pa_stream_readable_size pa_stream_readable_size_dylibloader_wrapper_pulse +#define pa_stream_drain pa_stream_drain_dylibloader_wrapper_pulse +#define pa_stream_update_timing_info pa_stream_update_timing_info_dylibloader_wrapper_pulse +#define pa_stream_set_state_callback pa_stream_set_state_callback_dylibloader_wrapper_pulse +#define pa_stream_set_write_callback pa_stream_set_write_callback_dylibloader_wrapper_pulse +#define pa_stream_set_read_callback pa_stream_set_read_callback_dylibloader_wrapper_pulse +#define pa_stream_set_overflow_callback pa_stream_set_overflow_callback_dylibloader_wrapper_pulse +#define pa_stream_get_underflow_index pa_stream_get_underflow_index_dylibloader_wrapper_pulse +#define pa_stream_set_underflow_callback pa_stream_set_underflow_callback_dylibloader_wrapper_pulse +#define pa_stream_set_started_callback pa_stream_set_started_callback_dylibloader_wrapper_pulse +#define pa_stream_set_latency_update_callback pa_stream_set_latency_update_callback_dylibloader_wrapper_pulse +#define pa_stream_set_moved_callback pa_stream_set_moved_callback_dylibloader_wrapper_pulse +#define pa_stream_set_suspended_callback pa_stream_set_suspended_callback_dylibloader_wrapper_pulse +#define pa_stream_set_event_callback pa_stream_set_event_callback_dylibloader_wrapper_pulse +#define pa_stream_set_buffer_attr_callback pa_stream_set_buffer_attr_callback_dylibloader_wrapper_pulse +#define pa_stream_cork pa_stream_cork_dylibloader_wrapper_pulse +#define pa_stream_flush pa_stream_flush_dylibloader_wrapper_pulse +#define pa_stream_prebuf pa_stream_prebuf_dylibloader_wrapper_pulse +#define pa_stream_trigger pa_stream_trigger_dylibloader_wrapper_pulse +#define pa_stream_set_name pa_stream_set_name_dylibloader_wrapper_pulse +#define pa_stream_get_time pa_stream_get_time_dylibloader_wrapper_pulse +#define pa_stream_get_latency pa_stream_get_latency_dylibloader_wrapper_pulse +#define pa_stream_get_timing_info pa_stream_get_timing_info_dylibloader_wrapper_pulse +#define pa_stream_get_sample_spec pa_stream_get_sample_spec_dylibloader_wrapper_pulse +#define pa_stream_get_channel_map pa_stream_get_channel_map_dylibloader_wrapper_pulse +#define pa_stream_get_format_info pa_stream_get_format_info_dylibloader_wrapper_pulse +#define pa_stream_get_buffer_attr pa_stream_get_buffer_attr_dylibloader_wrapper_pulse +#define pa_stream_set_buffer_attr pa_stream_set_buffer_attr_dylibloader_wrapper_pulse +#define pa_stream_update_sample_rate pa_stream_update_sample_rate_dylibloader_wrapper_pulse +#define pa_stream_proplist_update pa_stream_proplist_update_dylibloader_wrapper_pulse +#define pa_stream_proplist_remove pa_stream_proplist_remove_dylibloader_wrapper_pulse +#define pa_stream_set_monitor_stream pa_stream_set_monitor_stream_dylibloader_wrapper_pulse +#define pa_stream_get_monitor_stream pa_stream_get_monitor_stream_dylibloader_wrapper_pulse +#define pa_context_get_sink_info_by_name pa_context_get_sink_info_by_name_dylibloader_wrapper_pulse +#define pa_context_get_sink_info_by_index pa_context_get_sink_info_by_index_dylibloader_wrapper_pulse +#define pa_context_get_sink_info_list pa_context_get_sink_info_list_dylibloader_wrapper_pulse +#define pa_context_set_sink_volume_by_index pa_context_set_sink_volume_by_index_dylibloader_wrapper_pulse +#define pa_context_set_sink_volume_by_name pa_context_set_sink_volume_by_name_dylibloader_wrapper_pulse +#define pa_context_set_sink_mute_by_index pa_context_set_sink_mute_by_index_dylibloader_wrapper_pulse +#define pa_context_set_sink_mute_by_name pa_context_set_sink_mute_by_name_dylibloader_wrapper_pulse +#define pa_context_suspend_sink_by_name pa_context_suspend_sink_by_name_dylibloader_wrapper_pulse +#define pa_context_suspend_sink_by_index pa_context_suspend_sink_by_index_dylibloader_wrapper_pulse +#define pa_context_set_sink_port_by_index pa_context_set_sink_port_by_index_dylibloader_wrapper_pulse +#define pa_context_set_sink_port_by_name pa_context_set_sink_port_by_name_dylibloader_wrapper_pulse +#define pa_context_get_source_info_by_name pa_context_get_source_info_by_name_dylibloader_wrapper_pulse +#define pa_context_get_source_info_by_index pa_context_get_source_info_by_index_dylibloader_wrapper_pulse +#define pa_context_get_source_info_list pa_context_get_source_info_list_dylibloader_wrapper_pulse +#define pa_context_set_source_volume_by_index pa_context_set_source_volume_by_index_dylibloader_wrapper_pulse +#define pa_context_set_source_volume_by_name pa_context_set_source_volume_by_name_dylibloader_wrapper_pulse +#define pa_context_set_source_mute_by_index pa_context_set_source_mute_by_index_dylibloader_wrapper_pulse +#define pa_context_set_source_mute_by_name pa_context_set_source_mute_by_name_dylibloader_wrapper_pulse +#define pa_context_suspend_source_by_name pa_context_suspend_source_by_name_dylibloader_wrapper_pulse +#define pa_context_suspend_source_by_index pa_context_suspend_source_by_index_dylibloader_wrapper_pulse +#define pa_context_set_source_port_by_index pa_context_set_source_port_by_index_dylibloader_wrapper_pulse +#define pa_context_set_source_port_by_name pa_context_set_source_port_by_name_dylibloader_wrapper_pulse +#define pa_context_get_server_info pa_context_get_server_info_dylibloader_wrapper_pulse +#define pa_context_get_module_info pa_context_get_module_info_dylibloader_wrapper_pulse +#define pa_context_get_module_info_list pa_context_get_module_info_list_dylibloader_wrapper_pulse +#define pa_context_load_module pa_context_load_module_dylibloader_wrapper_pulse +#define pa_context_unload_module pa_context_unload_module_dylibloader_wrapper_pulse +#define pa_context_get_client_info pa_context_get_client_info_dylibloader_wrapper_pulse +#define pa_context_get_client_info_list pa_context_get_client_info_list_dylibloader_wrapper_pulse +#define pa_context_kill_client pa_context_kill_client_dylibloader_wrapper_pulse +#define pa_context_get_card_info_by_index pa_context_get_card_info_by_index_dylibloader_wrapper_pulse +#define pa_context_get_card_info_by_name pa_context_get_card_info_by_name_dylibloader_wrapper_pulse +#define pa_context_get_card_info_list pa_context_get_card_info_list_dylibloader_wrapper_pulse +#define pa_context_set_card_profile_by_index pa_context_set_card_profile_by_index_dylibloader_wrapper_pulse +#define pa_context_set_card_profile_by_name pa_context_set_card_profile_by_name_dylibloader_wrapper_pulse +#define pa_context_set_port_latency_offset pa_context_set_port_latency_offset_dylibloader_wrapper_pulse +#define pa_context_get_sink_input_info pa_context_get_sink_input_info_dylibloader_wrapper_pulse +#define pa_context_get_sink_input_info_list pa_context_get_sink_input_info_list_dylibloader_wrapper_pulse +#define pa_context_move_sink_input_by_name pa_context_move_sink_input_by_name_dylibloader_wrapper_pulse +#define pa_context_move_sink_input_by_index pa_context_move_sink_input_by_index_dylibloader_wrapper_pulse +#define pa_context_set_sink_input_volume pa_context_set_sink_input_volume_dylibloader_wrapper_pulse +#define pa_context_set_sink_input_mute pa_context_set_sink_input_mute_dylibloader_wrapper_pulse +#define pa_context_kill_sink_input pa_context_kill_sink_input_dylibloader_wrapper_pulse +#define pa_context_get_source_output_info pa_context_get_source_output_info_dylibloader_wrapper_pulse +#define pa_context_get_source_output_info_list pa_context_get_source_output_info_list_dylibloader_wrapper_pulse +#define pa_context_move_source_output_by_name pa_context_move_source_output_by_name_dylibloader_wrapper_pulse +#define pa_context_move_source_output_by_index pa_context_move_source_output_by_index_dylibloader_wrapper_pulse +#define pa_context_set_source_output_volume pa_context_set_source_output_volume_dylibloader_wrapper_pulse +#define pa_context_set_source_output_mute pa_context_set_source_output_mute_dylibloader_wrapper_pulse +#define pa_context_kill_source_output pa_context_kill_source_output_dylibloader_wrapper_pulse +#define pa_context_stat pa_context_stat_dylibloader_wrapper_pulse +#define pa_context_get_sample_info_by_name pa_context_get_sample_info_by_name_dylibloader_wrapper_pulse +#define pa_context_get_sample_info_by_index pa_context_get_sample_info_by_index_dylibloader_wrapper_pulse +#define pa_context_get_sample_info_list pa_context_get_sample_info_list_dylibloader_wrapper_pulse +#define pa_context_get_autoload_info_by_name pa_context_get_autoload_info_by_name_dylibloader_wrapper_pulse +#define pa_context_get_autoload_info_by_index pa_context_get_autoload_info_by_index_dylibloader_wrapper_pulse +#define pa_context_get_autoload_info_list pa_context_get_autoload_info_list_dylibloader_wrapper_pulse +#define pa_context_add_autoload pa_context_add_autoload_dylibloader_wrapper_pulse +#define pa_context_remove_autoload_by_name pa_context_remove_autoload_by_name_dylibloader_wrapper_pulse +#define pa_context_remove_autoload_by_index pa_context_remove_autoload_by_index_dylibloader_wrapper_pulse +#define pa_context_subscribe pa_context_subscribe_dylibloader_wrapper_pulse +#define pa_context_set_subscribe_callback pa_context_set_subscribe_callback_dylibloader_wrapper_pulse +#define pa_stream_connect_upload pa_stream_connect_upload_dylibloader_wrapper_pulse +#define pa_stream_finish_upload pa_stream_finish_upload_dylibloader_wrapper_pulse +#define pa_context_remove_sample pa_context_remove_sample_dylibloader_wrapper_pulse +#define pa_context_play_sample pa_context_play_sample_dylibloader_wrapper_pulse +#define pa_context_play_sample_with_proplist pa_context_play_sample_with_proplist_dylibloader_wrapper_pulse +#define pa_strerror pa_strerror_dylibloader_wrapper_pulse +#define pa_xmalloc pa_xmalloc_dylibloader_wrapper_pulse +#define pa_xmalloc0 pa_xmalloc0_dylibloader_wrapper_pulse +#define pa_xrealloc pa_xrealloc_dylibloader_wrapper_pulse +#define pa_xfree pa_xfree_dylibloader_wrapper_pulse +#define pa_xstrdup pa_xstrdup_dylibloader_wrapper_pulse +#define pa_xstrndup pa_xstrndup_dylibloader_wrapper_pulse +#define pa_xmemdup pa_xmemdup_dylibloader_wrapper_pulse +#define pa_utf8_valid pa_utf8_valid_dylibloader_wrapper_pulse +#define pa_ascii_valid pa_ascii_valid_dylibloader_wrapper_pulse +#define pa_utf8_filter pa_utf8_filter_dylibloader_wrapper_pulse +#define pa_ascii_filter pa_ascii_filter_dylibloader_wrapper_pulse +#define pa_utf8_to_locale pa_utf8_to_locale_dylibloader_wrapper_pulse +#define pa_locale_to_utf8 pa_locale_to_utf8_dylibloader_wrapper_pulse +#define pa_threaded_mainloop_new pa_threaded_mainloop_new_dylibloader_wrapper_pulse +#define pa_threaded_mainloop_free pa_threaded_mainloop_free_dylibloader_wrapper_pulse +#define pa_threaded_mainloop_start pa_threaded_mainloop_start_dylibloader_wrapper_pulse +#define pa_threaded_mainloop_stop pa_threaded_mainloop_stop_dylibloader_wrapper_pulse +#define pa_threaded_mainloop_lock pa_threaded_mainloop_lock_dylibloader_wrapper_pulse +#define pa_threaded_mainloop_unlock pa_threaded_mainloop_unlock_dylibloader_wrapper_pulse +#define pa_threaded_mainloop_wait pa_threaded_mainloop_wait_dylibloader_wrapper_pulse +#define pa_threaded_mainloop_signal pa_threaded_mainloop_signal_dylibloader_wrapper_pulse +#define pa_threaded_mainloop_accept pa_threaded_mainloop_accept_dylibloader_wrapper_pulse +#define pa_threaded_mainloop_get_retval pa_threaded_mainloop_get_retval_dylibloader_wrapper_pulse +#define pa_threaded_mainloop_get_api pa_threaded_mainloop_get_api_dylibloader_wrapper_pulse +#define pa_threaded_mainloop_in_thread pa_threaded_mainloop_in_thread_dylibloader_wrapper_pulse +#define pa_threaded_mainloop_set_name pa_threaded_mainloop_set_name_dylibloader_wrapper_pulse +#define pa_threaded_mainloop_once_unlocked pa_threaded_mainloop_once_unlocked_dylibloader_wrapper_pulse +#define pa_mainloop_new pa_mainloop_new_dylibloader_wrapper_pulse +#define pa_mainloop_free pa_mainloop_free_dylibloader_wrapper_pulse +#define pa_mainloop_prepare pa_mainloop_prepare_dylibloader_wrapper_pulse +#define pa_mainloop_poll pa_mainloop_poll_dylibloader_wrapper_pulse +#define pa_mainloop_dispatch pa_mainloop_dispatch_dylibloader_wrapper_pulse +#define pa_mainloop_get_retval pa_mainloop_get_retval_dylibloader_wrapper_pulse +#define pa_mainloop_iterate pa_mainloop_iterate_dylibloader_wrapper_pulse +#define pa_mainloop_run pa_mainloop_run_dylibloader_wrapper_pulse +#define pa_mainloop_get_api pa_mainloop_get_api_dylibloader_wrapper_pulse +#define pa_mainloop_quit pa_mainloop_quit_dylibloader_wrapper_pulse +#define pa_mainloop_wakeup pa_mainloop_wakeup_dylibloader_wrapper_pulse +#define pa_mainloop_set_poll_func pa_mainloop_set_poll_func_dylibloader_wrapper_pulse +#define pa_signal_init pa_signal_init_dylibloader_wrapper_pulse +#define pa_signal_done pa_signal_done_dylibloader_wrapper_pulse +#define pa_signal_new pa_signal_new_dylibloader_wrapper_pulse +#define pa_signal_free pa_signal_free_dylibloader_wrapper_pulse +#define pa_signal_set_destroy pa_signal_set_destroy_dylibloader_wrapper_pulse +#define pa_get_user_name pa_get_user_name_dylibloader_wrapper_pulse +#define pa_get_host_name pa_get_host_name_dylibloader_wrapper_pulse +#define pa_get_fqdn pa_get_fqdn_dylibloader_wrapper_pulse +#define pa_get_home_dir pa_get_home_dir_dylibloader_wrapper_pulse +#define pa_get_binary_name pa_get_binary_name_dylibloader_wrapper_pulse +#define pa_path_get_filename pa_path_get_filename_dylibloader_wrapper_pulse +#define pa_msleep pa_msleep_dylibloader_wrapper_pulse +#define pa_thread_make_realtime pa_thread_make_realtime_dylibloader_wrapper_pulse +#define pa_gettimeofday pa_gettimeofday_dylibloader_wrapper_pulse +#define pa_timeval_diff pa_timeval_diff_dylibloader_wrapper_pulse +#define pa_timeval_cmp pa_timeval_cmp_dylibloader_wrapper_pulse +#define pa_timeval_age pa_timeval_age_dylibloader_wrapper_pulse +#define pa_timeval_add pa_timeval_add_dylibloader_wrapper_pulse +#define pa_timeval_sub pa_timeval_sub_dylibloader_wrapper_pulse +#define pa_timeval_store pa_timeval_store_dylibloader_wrapper_pulse +#define pa_timeval_load pa_timeval_load_dylibloader_wrapper_pulse +#define pa_rtclock_now pa_rtclock_now_dylibloader_wrapper_pulse +extern const char* (*pa_get_library_version_dylibloader_wrapper_pulse)( void); +extern size_t (*pa_bytes_per_second_dylibloader_wrapper_pulse)(const pa_sample_spec*); +extern size_t (*pa_frame_size_dylibloader_wrapper_pulse)(const pa_sample_spec*); +extern size_t (*pa_sample_size_dylibloader_wrapper_pulse)(const pa_sample_spec*); +extern size_t (*pa_sample_size_of_format_dylibloader_wrapper_pulse)( pa_sample_format_t); +extern pa_usec_t (*pa_bytes_to_usec_dylibloader_wrapper_pulse)( uint64_t,const pa_sample_spec*); +extern size_t (*pa_usec_to_bytes_dylibloader_wrapper_pulse)( pa_usec_t,const pa_sample_spec*); +extern pa_sample_spec* (*pa_sample_spec_init_dylibloader_wrapper_pulse)( pa_sample_spec*); +extern int (*pa_sample_format_valid_dylibloader_wrapper_pulse)( unsigned); +extern int (*pa_sample_rate_valid_dylibloader_wrapper_pulse)( uint32_t); +extern int (*pa_channels_valid_dylibloader_wrapper_pulse)( uint8_t); +extern int (*pa_sample_spec_valid_dylibloader_wrapper_pulse)(const pa_sample_spec*); +extern int (*pa_sample_spec_equal_dylibloader_wrapper_pulse)(const pa_sample_spec*,const pa_sample_spec*); +extern const char* (*pa_sample_format_to_string_dylibloader_wrapper_pulse)( pa_sample_format_t); +extern pa_sample_format_t (*pa_parse_sample_format_dylibloader_wrapper_pulse)(const char*); +extern char* (*pa_sample_spec_snprint_dylibloader_wrapper_pulse)( char*, size_t,const pa_sample_spec*); +extern char* (*pa_bytes_snprint_dylibloader_wrapper_pulse)( char*, size_t, unsigned); +extern int (*pa_sample_format_is_le_dylibloader_wrapper_pulse)( pa_sample_format_t); +extern int (*pa_sample_format_is_be_dylibloader_wrapper_pulse)( pa_sample_format_t); +extern int (*pa_direction_valid_dylibloader_wrapper_pulse)( pa_direction_t); +extern const char* (*pa_direction_to_string_dylibloader_wrapper_pulse)( pa_direction_t); +extern void (*pa_mainloop_api_once_dylibloader_wrapper_pulse)( pa_mainloop_api*, void*, void*); +extern pa_proplist* (*pa_proplist_new_dylibloader_wrapper_pulse)( void); +extern void (*pa_proplist_free_dylibloader_wrapper_pulse)( pa_proplist*); +extern int (*pa_proplist_key_valid_dylibloader_wrapper_pulse)(const char*); +extern int (*pa_proplist_sets_dylibloader_wrapper_pulse)( pa_proplist*,const char*,const char*); +extern int (*pa_proplist_setp_dylibloader_wrapper_pulse)( pa_proplist*,const char*); +extern int (*pa_proplist_setf_dylibloader_wrapper_pulse)( pa_proplist*,const char*,const char*,...); +extern int (*pa_proplist_set_dylibloader_wrapper_pulse)( pa_proplist*,const char*,const void*, size_t); +extern const char* (*pa_proplist_gets_dylibloader_wrapper_pulse)(const pa_proplist*,const char*); +extern int (*pa_proplist_get_dylibloader_wrapper_pulse)(const pa_proplist*,const char*,const void**, size_t*); +extern void (*pa_proplist_update_dylibloader_wrapper_pulse)( pa_proplist*, pa_update_mode_t,const pa_proplist*); +extern int (*pa_proplist_unset_dylibloader_wrapper_pulse)( pa_proplist*,const char*); +extern int (*pa_proplist_unset_many_dylibloader_wrapper_pulse)( pa_proplist*,const char* []); +extern const char* (*pa_proplist_iterate_dylibloader_wrapper_pulse)(const pa_proplist*, void**); +extern char* (*pa_proplist_to_string_dylibloader_wrapper_pulse)(const pa_proplist*); +extern char* (*pa_proplist_to_string_sep_dylibloader_wrapper_pulse)(const pa_proplist*,const char*); +extern pa_proplist* (*pa_proplist_from_string_dylibloader_wrapper_pulse)(const char*); +extern int (*pa_proplist_contains_dylibloader_wrapper_pulse)(const pa_proplist*,const char*); +extern void (*pa_proplist_clear_dylibloader_wrapper_pulse)( pa_proplist*); +extern pa_proplist* (*pa_proplist_copy_dylibloader_wrapper_pulse)(const pa_proplist*); +extern unsigned (*pa_proplist_size_dylibloader_wrapper_pulse)(const pa_proplist*); +extern int (*pa_proplist_isempty_dylibloader_wrapper_pulse)(const pa_proplist*); +extern int (*pa_proplist_equal_dylibloader_wrapper_pulse)(const pa_proplist*,const pa_proplist*); +extern pa_channel_map* (*pa_channel_map_init_dylibloader_wrapper_pulse)( pa_channel_map*); +extern pa_channel_map* (*pa_channel_map_init_mono_dylibloader_wrapper_pulse)( pa_channel_map*); +extern pa_channel_map* (*pa_channel_map_init_stereo_dylibloader_wrapper_pulse)( pa_channel_map*); +extern pa_channel_map* (*pa_channel_map_init_auto_dylibloader_wrapper_pulse)( pa_channel_map*, unsigned, pa_channel_map_def_t); +extern pa_channel_map* (*pa_channel_map_init_extend_dylibloader_wrapper_pulse)( pa_channel_map*, unsigned, pa_channel_map_def_t); +extern const char* (*pa_channel_position_to_string_dylibloader_wrapper_pulse)( pa_channel_position_t); +extern pa_channel_position_t (*pa_channel_position_from_string_dylibloader_wrapper_pulse)(const char*); +extern const char* (*pa_channel_position_to_pretty_string_dylibloader_wrapper_pulse)( pa_channel_position_t); +extern char* (*pa_channel_map_snprint_dylibloader_wrapper_pulse)( char*, size_t,const pa_channel_map*); +extern pa_channel_map* (*pa_channel_map_parse_dylibloader_wrapper_pulse)( pa_channel_map*,const char*); +extern int (*pa_channel_map_equal_dylibloader_wrapper_pulse)(const pa_channel_map*,const pa_channel_map*); +extern int (*pa_channel_map_valid_dylibloader_wrapper_pulse)(const pa_channel_map*); +extern int (*pa_channel_map_compatible_dylibloader_wrapper_pulse)(const pa_channel_map*,const pa_sample_spec*); +extern int (*pa_channel_map_superset_dylibloader_wrapper_pulse)(const pa_channel_map*,const pa_channel_map*); +extern int (*pa_channel_map_can_balance_dylibloader_wrapper_pulse)(const pa_channel_map*); +extern int (*pa_channel_map_can_fade_dylibloader_wrapper_pulse)(const pa_channel_map*); +extern int (*pa_channel_map_can_lfe_balance_dylibloader_wrapper_pulse)(const pa_channel_map*); +extern const char* (*pa_channel_map_to_name_dylibloader_wrapper_pulse)(const pa_channel_map*); +extern const char* (*pa_channel_map_to_pretty_name_dylibloader_wrapper_pulse)(const pa_channel_map*); +extern int (*pa_channel_map_has_position_dylibloader_wrapper_pulse)(const pa_channel_map*, pa_channel_position_t); +extern pa_channel_position_mask_t (*pa_channel_map_mask_dylibloader_wrapper_pulse)(const pa_channel_map*); +extern const char* (*pa_encoding_to_string_dylibloader_wrapper_pulse)( pa_encoding_t); +extern pa_encoding_t (*pa_encoding_from_string_dylibloader_wrapper_pulse)(const char*); +extern pa_format_info* (*pa_format_info_new_dylibloader_wrapper_pulse)( void); +extern pa_format_info* (*pa_format_info_copy_dylibloader_wrapper_pulse)(const pa_format_info*); +extern void (*pa_format_info_free_dylibloader_wrapper_pulse)( pa_format_info*); +extern int (*pa_format_info_valid_dylibloader_wrapper_pulse)(const pa_format_info*); +extern int (*pa_format_info_is_pcm_dylibloader_wrapper_pulse)(const pa_format_info*); +extern int (*pa_format_info_is_compatible_dylibloader_wrapper_pulse)(const pa_format_info*,const pa_format_info*); +extern char* (*pa_format_info_snprint_dylibloader_wrapper_pulse)( char*, size_t,const pa_format_info*); +extern pa_format_info* (*pa_format_info_from_string_dylibloader_wrapper_pulse)(const char*); +extern pa_format_info* (*pa_format_info_from_sample_spec_dylibloader_wrapper_pulse)(const pa_sample_spec*,const pa_channel_map*); +extern int (*pa_format_info_to_sample_spec_dylibloader_wrapper_pulse)(const pa_format_info*, pa_sample_spec*, pa_channel_map*); +extern pa_prop_type_t (*pa_format_info_get_prop_type_dylibloader_wrapper_pulse)(const pa_format_info*,const char*); +extern int (*pa_format_info_get_prop_int_dylibloader_wrapper_pulse)(const pa_format_info*,const char*, int*); +extern int (*pa_format_info_get_prop_int_range_dylibloader_wrapper_pulse)(const pa_format_info*,const char*, int*, int*); +extern int (*pa_format_info_get_prop_int_array_dylibloader_wrapper_pulse)(const pa_format_info*,const char*, int**, int*); +extern int (*pa_format_info_get_prop_string_dylibloader_wrapper_pulse)(const pa_format_info*,const char*, char**); +extern int (*pa_format_info_get_prop_string_array_dylibloader_wrapper_pulse)(const pa_format_info*,const char*, char***, int*); +extern void (*pa_format_info_free_string_array_dylibloader_wrapper_pulse)( char**, int); +extern int (*pa_format_info_get_sample_format_dylibloader_wrapper_pulse)(const pa_format_info*, pa_sample_format_t*); +extern int (*pa_format_info_get_rate_dylibloader_wrapper_pulse)(const pa_format_info*, uint32_t*); +extern int (*pa_format_info_get_channels_dylibloader_wrapper_pulse)(const pa_format_info*, uint8_t*); +extern int (*pa_format_info_get_channel_map_dylibloader_wrapper_pulse)(const pa_format_info*, pa_channel_map*); +extern void (*pa_format_info_set_prop_int_dylibloader_wrapper_pulse)( pa_format_info*,const char*, int); +extern void (*pa_format_info_set_prop_int_array_dylibloader_wrapper_pulse)( pa_format_info*,const char*,const int*, int); +extern void (*pa_format_info_set_prop_int_range_dylibloader_wrapper_pulse)( pa_format_info*,const char*, int, int); +extern void (*pa_format_info_set_prop_string_dylibloader_wrapper_pulse)( pa_format_info*,const char*,const char*); +extern void (*pa_format_info_set_prop_string_array_dylibloader_wrapper_pulse)( pa_format_info*,const char*,const char**, int); +extern void (*pa_format_info_set_sample_format_dylibloader_wrapper_pulse)( pa_format_info*, pa_sample_format_t); +extern void (*pa_format_info_set_rate_dylibloader_wrapper_pulse)( pa_format_info*, int); +extern void (*pa_format_info_set_channels_dylibloader_wrapper_pulse)( pa_format_info*, int); +extern void (*pa_format_info_set_channel_map_dylibloader_wrapper_pulse)( pa_format_info*,const pa_channel_map*); +extern pa_operation* (*pa_operation_ref_dylibloader_wrapper_pulse)( pa_operation*); +extern void (*pa_operation_unref_dylibloader_wrapper_pulse)( pa_operation*); +extern void (*pa_operation_cancel_dylibloader_wrapper_pulse)( pa_operation*); +extern pa_operation_state_t (*pa_operation_get_state_dylibloader_wrapper_pulse)(const pa_operation*); +extern void (*pa_operation_set_state_callback_dylibloader_wrapper_pulse)( pa_operation*, pa_operation_notify_cb_t, void*); +extern pa_context* (*pa_context_new_dylibloader_wrapper_pulse)( pa_mainloop_api*,const char*); +extern pa_context* (*pa_context_new_with_proplist_dylibloader_wrapper_pulse)( pa_mainloop_api*,const char*,const pa_proplist*); +extern void (*pa_context_unref_dylibloader_wrapper_pulse)( pa_context*); +extern pa_context* (*pa_context_ref_dylibloader_wrapper_pulse)( pa_context*); +extern void (*pa_context_set_state_callback_dylibloader_wrapper_pulse)( pa_context*, pa_context_notify_cb_t, void*); +extern void (*pa_context_set_event_callback_dylibloader_wrapper_pulse)( pa_context*, pa_context_event_cb_t, void*); +extern int (*pa_context_errno_dylibloader_wrapper_pulse)(const pa_context*); +extern int (*pa_context_is_pending_dylibloader_wrapper_pulse)(const pa_context*); +extern pa_context_state_t (*pa_context_get_state_dylibloader_wrapper_pulse)(const pa_context*); +extern int (*pa_context_connect_dylibloader_wrapper_pulse)( pa_context*,const char*, pa_context_flags_t,const pa_spawn_api*); +extern void (*pa_context_disconnect_dylibloader_wrapper_pulse)( pa_context*); +extern pa_operation* (*pa_context_drain_dylibloader_wrapper_pulse)( pa_context*, pa_context_notify_cb_t, void*); +extern pa_operation* (*pa_context_exit_daemon_dylibloader_wrapper_pulse)( pa_context*, pa_context_success_cb_t, void*); +extern pa_operation* (*pa_context_set_default_sink_dylibloader_wrapper_pulse)( pa_context*,const char*, pa_context_success_cb_t, void*); +extern pa_operation* (*pa_context_set_default_source_dylibloader_wrapper_pulse)( pa_context*,const char*, pa_context_success_cb_t, void*); +extern int (*pa_context_is_local_dylibloader_wrapper_pulse)(const pa_context*); +extern pa_operation* (*pa_context_set_name_dylibloader_wrapper_pulse)( pa_context*,const char*, pa_context_success_cb_t, void*); +extern const char* (*pa_context_get_server_dylibloader_wrapper_pulse)(const pa_context*); +extern uint32_t (*pa_context_get_protocol_version_dylibloader_wrapper_pulse)(const pa_context*); +extern uint32_t (*pa_context_get_server_protocol_version_dylibloader_wrapper_pulse)(const pa_context*); +extern pa_operation* (*pa_context_proplist_update_dylibloader_wrapper_pulse)( pa_context*, pa_update_mode_t,const pa_proplist*, pa_context_success_cb_t, void*); +extern pa_operation* (*pa_context_proplist_remove_dylibloader_wrapper_pulse)( pa_context*,const char* [], pa_context_success_cb_t, void*); +extern uint32_t (*pa_context_get_index_dylibloader_wrapper_pulse)(const pa_context*); +extern pa_time_event* (*pa_context_rttime_new_dylibloader_wrapper_pulse)(const pa_context*, pa_usec_t, pa_time_event_cb_t, void*); +extern void (*pa_context_rttime_restart_dylibloader_wrapper_pulse)(const pa_context*, pa_time_event*, pa_usec_t); +extern size_t (*pa_context_get_tile_size_dylibloader_wrapper_pulse)(const pa_context*,const pa_sample_spec*); +extern int (*pa_context_load_cookie_from_file_dylibloader_wrapper_pulse)( pa_context*,const char*); +extern int (*pa_cvolume_equal_dylibloader_wrapper_pulse)(const pa_cvolume*,const pa_cvolume*); +extern pa_cvolume* (*pa_cvolume_init_dylibloader_wrapper_pulse)( pa_cvolume*); +extern pa_cvolume* (*pa_cvolume_set_dylibloader_wrapper_pulse)( pa_cvolume*, unsigned, pa_volume_t); +extern char* (*pa_cvolume_snprint_dylibloader_wrapper_pulse)( char*, size_t,const pa_cvolume*); +extern char* (*pa_sw_cvolume_snprint_dB_dylibloader_wrapper_pulse)( char*, size_t,const pa_cvolume*); +extern char* (*pa_cvolume_snprint_verbose_dylibloader_wrapper_pulse)( char*, size_t,const pa_cvolume*,const pa_channel_map*, int); +extern char* (*pa_volume_snprint_dylibloader_wrapper_pulse)( char*, size_t, pa_volume_t); +extern char* (*pa_sw_volume_snprint_dB_dylibloader_wrapper_pulse)( char*, size_t, pa_volume_t); +extern char* (*pa_volume_snprint_verbose_dylibloader_wrapper_pulse)( char*, size_t, pa_volume_t, int); +extern pa_volume_t (*pa_cvolume_avg_dylibloader_wrapper_pulse)(const pa_cvolume*); +extern pa_volume_t (*pa_cvolume_avg_mask_dylibloader_wrapper_pulse)(const pa_cvolume*,const pa_channel_map*, pa_channel_position_mask_t); +extern pa_volume_t (*pa_cvolume_max_dylibloader_wrapper_pulse)(const pa_cvolume*); +extern pa_volume_t (*pa_cvolume_max_mask_dylibloader_wrapper_pulse)(const pa_cvolume*,const pa_channel_map*, pa_channel_position_mask_t); +extern pa_volume_t (*pa_cvolume_min_dylibloader_wrapper_pulse)(const pa_cvolume*); +extern pa_volume_t (*pa_cvolume_min_mask_dylibloader_wrapper_pulse)(const pa_cvolume*,const pa_channel_map*, pa_channel_position_mask_t); +extern int (*pa_cvolume_valid_dylibloader_wrapper_pulse)(const pa_cvolume*); +extern int (*pa_cvolume_channels_equal_to_dylibloader_wrapper_pulse)(const pa_cvolume*, pa_volume_t); +extern pa_volume_t (*pa_sw_volume_multiply_dylibloader_wrapper_pulse)( pa_volume_t, pa_volume_t); +extern pa_cvolume* (*pa_sw_cvolume_multiply_dylibloader_wrapper_pulse)( pa_cvolume*,const pa_cvolume*,const pa_cvolume*); +extern pa_cvolume* (*pa_sw_cvolume_multiply_scalar_dylibloader_wrapper_pulse)( pa_cvolume*,const pa_cvolume*, pa_volume_t); +extern pa_volume_t (*pa_sw_volume_divide_dylibloader_wrapper_pulse)( pa_volume_t, pa_volume_t); +extern pa_cvolume* (*pa_sw_cvolume_divide_dylibloader_wrapper_pulse)( pa_cvolume*,const pa_cvolume*,const pa_cvolume*); +extern pa_cvolume* (*pa_sw_cvolume_divide_scalar_dylibloader_wrapper_pulse)( pa_cvolume*,const pa_cvolume*, pa_volume_t); +extern pa_volume_t (*pa_sw_volume_from_dB_dylibloader_wrapper_pulse)( double); +extern double (*pa_sw_volume_to_dB_dylibloader_wrapper_pulse)( pa_volume_t); +extern pa_volume_t (*pa_sw_volume_from_linear_dylibloader_wrapper_pulse)( double); +extern double (*pa_sw_volume_to_linear_dylibloader_wrapper_pulse)( pa_volume_t); +extern pa_cvolume* (*pa_cvolume_remap_dylibloader_wrapper_pulse)( pa_cvolume*,const pa_channel_map*,const pa_channel_map*); +extern int (*pa_cvolume_compatible_dylibloader_wrapper_pulse)(const pa_cvolume*,const pa_sample_spec*); +extern int (*pa_cvolume_compatible_with_channel_map_dylibloader_wrapper_pulse)(const pa_cvolume*,const pa_channel_map*); +extern float (*pa_cvolume_get_balance_dylibloader_wrapper_pulse)(const pa_cvolume*,const pa_channel_map*); +extern pa_cvolume* (*pa_cvolume_set_balance_dylibloader_wrapper_pulse)( pa_cvolume*,const pa_channel_map*, float); +extern float (*pa_cvolume_get_fade_dylibloader_wrapper_pulse)(const pa_cvolume*,const pa_channel_map*); +extern pa_cvolume* (*pa_cvolume_set_fade_dylibloader_wrapper_pulse)( pa_cvolume*,const pa_channel_map*, float); +extern float (*pa_cvolume_get_lfe_balance_dylibloader_wrapper_pulse)(const pa_cvolume*,const pa_channel_map*); +extern pa_cvolume* (*pa_cvolume_set_lfe_balance_dylibloader_wrapper_pulse)( pa_cvolume*,const pa_channel_map*, float); +extern pa_cvolume* (*pa_cvolume_scale_dylibloader_wrapper_pulse)( pa_cvolume*, pa_volume_t); +extern pa_cvolume* (*pa_cvolume_scale_mask_dylibloader_wrapper_pulse)( pa_cvolume*, pa_volume_t,const pa_channel_map*, pa_channel_position_mask_t); +extern pa_cvolume* (*pa_cvolume_set_position_dylibloader_wrapper_pulse)( pa_cvolume*,const pa_channel_map*, pa_channel_position_t, pa_volume_t); +extern pa_volume_t (*pa_cvolume_get_position_dylibloader_wrapper_pulse)(const pa_cvolume*,const pa_channel_map*, pa_channel_position_t); +extern pa_cvolume* (*pa_cvolume_merge_dylibloader_wrapper_pulse)( pa_cvolume*,const pa_cvolume*,const pa_cvolume*); +extern pa_cvolume* (*pa_cvolume_inc_clamp_dylibloader_wrapper_pulse)( pa_cvolume*, pa_volume_t, pa_volume_t); +extern pa_cvolume* (*pa_cvolume_inc_dylibloader_wrapper_pulse)( pa_cvolume*, pa_volume_t); +extern pa_cvolume* (*pa_cvolume_dec_dylibloader_wrapper_pulse)( pa_cvolume*, pa_volume_t); +extern pa_stream* (*pa_stream_new_dylibloader_wrapper_pulse)( pa_context*,const char*,const pa_sample_spec*,const pa_channel_map*); +extern pa_stream* (*pa_stream_new_with_proplist_dylibloader_wrapper_pulse)( pa_context*,const char*,const pa_sample_spec*,const pa_channel_map*, pa_proplist*); +extern pa_stream* (*pa_stream_new_extended_dylibloader_wrapper_pulse)( pa_context*,const char*, pa_format_info**, unsigned int, pa_proplist*); +extern void (*pa_stream_unref_dylibloader_wrapper_pulse)( pa_stream*); +extern pa_stream* (*pa_stream_ref_dylibloader_wrapper_pulse)( pa_stream*); +extern pa_stream_state_t (*pa_stream_get_state_dylibloader_wrapper_pulse)(const pa_stream*); +extern pa_context* (*pa_stream_get_context_dylibloader_wrapper_pulse)(const pa_stream*); +extern uint32_t (*pa_stream_get_index_dylibloader_wrapper_pulse)(const pa_stream*); +extern uint32_t (*pa_stream_get_device_index_dylibloader_wrapper_pulse)(const pa_stream*); +extern const char* (*pa_stream_get_device_name_dylibloader_wrapper_pulse)(const pa_stream*); +extern int (*pa_stream_is_suspended_dylibloader_wrapper_pulse)(const pa_stream*); +extern int (*pa_stream_is_corked_dylibloader_wrapper_pulse)(const pa_stream*); +extern int (*pa_stream_connect_playback_dylibloader_wrapper_pulse)( pa_stream*,const char*,const pa_buffer_attr*, pa_stream_flags_t,const pa_cvolume*, pa_stream*); +extern int (*pa_stream_connect_record_dylibloader_wrapper_pulse)( pa_stream*,const char*,const pa_buffer_attr*, pa_stream_flags_t); +extern int (*pa_stream_disconnect_dylibloader_wrapper_pulse)( pa_stream*); +extern int (*pa_stream_begin_write_dylibloader_wrapper_pulse)( pa_stream*, void**, size_t*); +extern int (*pa_stream_cancel_write_dylibloader_wrapper_pulse)( pa_stream*); +extern int (*pa_stream_write_dylibloader_wrapper_pulse)( pa_stream*,const void*, size_t, pa_free_cb_t, int64_t, pa_seek_mode_t); +extern int (*pa_stream_write_ext_free_dylibloader_wrapper_pulse)( pa_stream*,const void*, size_t, pa_free_cb_t, void*, int64_t, pa_seek_mode_t); +extern int (*pa_stream_peek_dylibloader_wrapper_pulse)( pa_stream*,const void**, size_t*); +extern int (*pa_stream_drop_dylibloader_wrapper_pulse)( pa_stream*); +extern size_t (*pa_stream_writable_size_dylibloader_wrapper_pulse)(const pa_stream*); +extern size_t (*pa_stream_readable_size_dylibloader_wrapper_pulse)(const pa_stream*); +extern pa_operation* (*pa_stream_drain_dylibloader_wrapper_pulse)( pa_stream*, pa_stream_success_cb_t, void*); +extern pa_operation* (*pa_stream_update_timing_info_dylibloader_wrapper_pulse)( pa_stream*, pa_stream_success_cb_t, void*); +extern void (*pa_stream_set_state_callback_dylibloader_wrapper_pulse)( pa_stream*, pa_stream_notify_cb_t, void*); +extern void (*pa_stream_set_write_callback_dylibloader_wrapper_pulse)( pa_stream*, pa_stream_request_cb_t, void*); +extern void (*pa_stream_set_read_callback_dylibloader_wrapper_pulse)( pa_stream*, pa_stream_request_cb_t, void*); +extern void (*pa_stream_set_overflow_callback_dylibloader_wrapper_pulse)( pa_stream*, pa_stream_notify_cb_t, void*); +extern int64_t (*pa_stream_get_underflow_index_dylibloader_wrapper_pulse)(const pa_stream*); +extern void (*pa_stream_set_underflow_callback_dylibloader_wrapper_pulse)( pa_stream*, pa_stream_notify_cb_t, void*); +extern void (*pa_stream_set_started_callback_dylibloader_wrapper_pulse)( pa_stream*, pa_stream_notify_cb_t, void*); +extern void (*pa_stream_set_latency_update_callback_dylibloader_wrapper_pulse)( pa_stream*, pa_stream_notify_cb_t, void*); +extern void (*pa_stream_set_moved_callback_dylibloader_wrapper_pulse)( pa_stream*, pa_stream_notify_cb_t, void*); +extern void (*pa_stream_set_suspended_callback_dylibloader_wrapper_pulse)( pa_stream*, pa_stream_notify_cb_t, void*); +extern void (*pa_stream_set_event_callback_dylibloader_wrapper_pulse)( pa_stream*, pa_stream_event_cb_t, void*); +extern void (*pa_stream_set_buffer_attr_callback_dylibloader_wrapper_pulse)( pa_stream*, pa_stream_notify_cb_t, void*); +extern pa_operation* (*pa_stream_cork_dylibloader_wrapper_pulse)( pa_stream*, int, pa_stream_success_cb_t, void*); +extern pa_operation* (*pa_stream_flush_dylibloader_wrapper_pulse)( pa_stream*, pa_stream_success_cb_t, void*); +extern pa_operation* (*pa_stream_prebuf_dylibloader_wrapper_pulse)( pa_stream*, pa_stream_success_cb_t, void*); +extern pa_operation* (*pa_stream_trigger_dylibloader_wrapper_pulse)( pa_stream*, pa_stream_success_cb_t, void*); +extern pa_operation* (*pa_stream_set_name_dylibloader_wrapper_pulse)( pa_stream*,const char*, pa_stream_success_cb_t, void*); +extern int (*pa_stream_get_time_dylibloader_wrapper_pulse)( pa_stream*, pa_usec_t*); +extern int (*pa_stream_get_latency_dylibloader_wrapper_pulse)( pa_stream*, pa_usec_t*, int*); +extern const pa_timing_info* (*pa_stream_get_timing_info_dylibloader_wrapper_pulse)( pa_stream*); +extern const pa_sample_spec* (*pa_stream_get_sample_spec_dylibloader_wrapper_pulse)( pa_stream*); +extern const pa_channel_map* (*pa_stream_get_channel_map_dylibloader_wrapper_pulse)( pa_stream*); +extern const pa_format_info* (*pa_stream_get_format_info_dylibloader_wrapper_pulse)(const pa_stream*); +extern const pa_buffer_attr* (*pa_stream_get_buffer_attr_dylibloader_wrapper_pulse)( pa_stream*); +extern pa_operation* (*pa_stream_set_buffer_attr_dylibloader_wrapper_pulse)( pa_stream*,const pa_buffer_attr*, pa_stream_success_cb_t, void*); +extern pa_operation* (*pa_stream_update_sample_rate_dylibloader_wrapper_pulse)( pa_stream*, uint32_t, pa_stream_success_cb_t, void*); +extern pa_operation* (*pa_stream_proplist_update_dylibloader_wrapper_pulse)( pa_stream*, pa_update_mode_t, pa_proplist*, pa_stream_success_cb_t, void*); +extern pa_operation* (*pa_stream_proplist_remove_dylibloader_wrapper_pulse)( pa_stream*,const char* [], pa_stream_success_cb_t, void*); +extern int (*pa_stream_set_monitor_stream_dylibloader_wrapper_pulse)( pa_stream*, uint32_t); +extern uint32_t (*pa_stream_get_monitor_stream_dylibloader_wrapper_pulse)(const pa_stream*); +extern pa_operation* (*pa_context_get_sink_info_by_name_dylibloader_wrapper_pulse)( pa_context*,const char*, pa_sink_info_cb_t, void*); +extern pa_operation* (*pa_context_get_sink_info_by_index_dylibloader_wrapper_pulse)( pa_context*, uint32_t, pa_sink_info_cb_t, void*); +extern pa_operation* (*pa_context_get_sink_info_list_dylibloader_wrapper_pulse)( pa_context*, pa_sink_info_cb_t, void*); +extern pa_operation* (*pa_context_set_sink_volume_by_index_dylibloader_wrapper_pulse)( pa_context*, uint32_t,const pa_cvolume*, pa_context_success_cb_t, void*); +extern pa_operation* (*pa_context_set_sink_volume_by_name_dylibloader_wrapper_pulse)( pa_context*,const char*,const pa_cvolume*, pa_context_success_cb_t, void*); +extern pa_operation* (*pa_context_set_sink_mute_by_index_dylibloader_wrapper_pulse)( pa_context*, uint32_t, int, pa_context_success_cb_t, void*); +extern pa_operation* (*pa_context_set_sink_mute_by_name_dylibloader_wrapper_pulse)( pa_context*,const char*, int, pa_context_success_cb_t, void*); +extern pa_operation* (*pa_context_suspend_sink_by_name_dylibloader_wrapper_pulse)( pa_context*,const char*, int, pa_context_success_cb_t, void*); +extern pa_operation* (*pa_context_suspend_sink_by_index_dylibloader_wrapper_pulse)( pa_context*, uint32_t, int, pa_context_success_cb_t, void*); +extern pa_operation* (*pa_context_set_sink_port_by_index_dylibloader_wrapper_pulse)( pa_context*, uint32_t,const char*, pa_context_success_cb_t, void*); +extern pa_operation* (*pa_context_set_sink_port_by_name_dylibloader_wrapper_pulse)( pa_context*,const char*,const char*, pa_context_success_cb_t, void*); +extern pa_operation* (*pa_context_get_source_info_by_name_dylibloader_wrapper_pulse)( pa_context*,const char*, pa_source_info_cb_t, void*); +extern pa_operation* (*pa_context_get_source_info_by_index_dylibloader_wrapper_pulse)( pa_context*, uint32_t, pa_source_info_cb_t, void*); +extern pa_operation* (*pa_context_get_source_info_list_dylibloader_wrapper_pulse)( pa_context*, pa_source_info_cb_t, void*); +extern pa_operation* (*pa_context_set_source_volume_by_index_dylibloader_wrapper_pulse)( pa_context*, uint32_t,const pa_cvolume*, pa_context_success_cb_t, void*); +extern pa_operation* (*pa_context_set_source_volume_by_name_dylibloader_wrapper_pulse)( pa_context*,const char*,const pa_cvolume*, pa_context_success_cb_t, void*); +extern pa_operation* (*pa_context_set_source_mute_by_index_dylibloader_wrapper_pulse)( pa_context*, uint32_t, int, pa_context_success_cb_t, void*); +extern pa_operation* (*pa_context_set_source_mute_by_name_dylibloader_wrapper_pulse)( pa_context*,const char*, int, pa_context_success_cb_t, void*); +extern pa_operation* (*pa_context_suspend_source_by_name_dylibloader_wrapper_pulse)( pa_context*,const char*, int, pa_context_success_cb_t, void*); +extern pa_operation* (*pa_context_suspend_source_by_index_dylibloader_wrapper_pulse)( pa_context*, uint32_t, int, pa_context_success_cb_t, void*); +extern pa_operation* (*pa_context_set_source_port_by_index_dylibloader_wrapper_pulse)( pa_context*, uint32_t,const char*, pa_context_success_cb_t, void*); +extern pa_operation* (*pa_context_set_source_port_by_name_dylibloader_wrapper_pulse)( pa_context*,const char*,const char*, pa_context_success_cb_t, void*); +extern pa_operation* (*pa_context_get_server_info_dylibloader_wrapper_pulse)( pa_context*, pa_server_info_cb_t, void*); +extern pa_operation* (*pa_context_get_module_info_dylibloader_wrapper_pulse)( pa_context*, uint32_t, pa_module_info_cb_t, void*); +extern pa_operation* (*pa_context_get_module_info_list_dylibloader_wrapper_pulse)( pa_context*, pa_module_info_cb_t, void*); +extern pa_operation* (*pa_context_load_module_dylibloader_wrapper_pulse)( pa_context*,const char*,const char*, pa_context_index_cb_t, void*); +extern pa_operation* (*pa_context_unload_module_dylibloader_wrapper_pulse)( pa_context*, uint32_t, pa_context_success_cb_t, void*); +extern pa_operation* (*pa_context_get_client_info_dylibloader_wrapper_pulse)( pa_context*, uint32_t, pa_client_info_cb_t, void*); +extern pa_operation* (*pa_context_get_client_info_list_dylibloader_wrapper_pulse)( pa_context*, pa_client_info_cb_t, void*); +extern pa_operation* (*pa_context_kill_client_dylibloader_wrapper_pulse)( pa_context*, uint32_t, pa_context_success_cb_t, void*); +extern pa_operation* (*pa_context_get_card_info_by_index_dylibloader_wrapper_pulse)( pa_context*, uint32_t, pa_card_info_cb_t, void*); +extern pa_operation* (*pa_context_get_card_info_by_name_dylibloader_wrapper_pulse)( pa_context*,const char*, pa_card_info_cb_t, void*); +extern pa_operation* (*pa_context_get_card_info_list_dylibloader_wrapper_pulse)( pa_context*, pa_card_info_cb_t, void*); +extern pa_operation* (*pa_context_set_card_profile_by_index_dylibloader_wrapper_pulse)( pa_context*, uint32_t,const char*, pa_context_success_cb_t, void*); +extern pa_operation* (*pa_context_set_card_profile_by_name_dylibloader_wrapper_pulse)( pa_context*,const char*,const char*, pa_context_success_cb_t, void*); +extern pa_operation* (*pa_context_set_port_latency_offset_dylibloader_wrapper_pulse)( pa_context*,const char*,const char*, int64_t, pa_context_success_cb_t, void*); +extern pa_operation* (*pa_context_get_sink_input_info_dylibloader_wrapper_pulse)( pa_context*, uint32_t, pa_sink_input_info_cb_t, void*); +extern pa_operation* (*pa_context_get_sink_input_info_list_dylibloader_wrapper_pulse)( pa_context*, pa_sink_input_info_cb_t, void*); +extern pa_operation* (*pa_context_move_sink_input_by_name_dylibloader_wrapper_pulse)( pa_context*, uint32_t,const char*, pa_context_success_cb_t, void*); +extern pa_operation* (*pa_context_move_sink_input_by_index_dylibloader_wrapper_pulse)( pa_context*, uint32_t, uint32_t, pa_context_success_cb_t, void*); +extern pa_operation* (*pa_context_set_sink_input_volume_dylibloader_wrapper_pulse)( pa_context*, uint32_t,const pa_cvolume*, pa_context_success_cb_t, void*); +extern pa_operation* (*pa_context_set_sink_input_mute_dylibloader_wrapper_pulse)( pa_context*, uint32_t, int, pa_context_success_cb_t, void*); +extern pa_operation* (*pa_context_kill_sink_input_dylibloader_wrapper_pulse)( pa_context*, uint32_t, pa_context_success_cb_t, void*); +extern pa_operation* (*pa_context_get_source_output_info_dylibloader_wrapper_pulse)( pa_context*, uint32_t, pa_source_output_info_cb_t, void*); +extern pa_operation* (*pa_context_get_source_output_info_list_dylibloader_wrapper_pulse)( pa_context*, pa_source_output_info_cb_t, void*); +extern pa_operation* (*pa_context_move_source_output_by_name_dylibloader_wrapper_pulse)( pa_context*, uint32_t,const char*, pa_context_success_cb_t, void*); +extern pa_operation* (*pa_context_move_source_output_by_index_dylibloader_wrapper_pulse)( pa_context*, uint32_t, uint32_t, pa_context_success_cb_t, void*); +extern pa_operation* (*pa_context_set_source_output_volume_dylibloader_wrapper_pulse)( pa_context*, uint32_t,const pa_cvolume*, pa_context_success_cb_t, void*); +extern pa_operation* (*pa_context_set_source_output_mute_dylibloader_wrapper_pulse)( pa_context*, uint32_t, int, pa_context_success_cb_t, void*); +extern pa_operation* (*pa_context_kill_source_output_dylibloader_wrapper_pulse)( pa_context*, uint32_t, pa_context_success_cb_t, void*); +extern pa_operation* (*pa_context_stat_dylibloader_wrapper_pulse)( pa_context*, pa_stat_info_cb_t, void*); +extern pa_operation* (*pa_context_get_sample_info_by_name_dylibloader_wrapper_pulse)( pa_context*,const char*, pa_sample_info_cb_t, void*); +extern pa_operation* (*pa_context_get_sample_info_by_index_dylibloader_wrapper_pulse)( pa_context*, uint32_t, pa_sample_info_cb_t, void*); +extern pa_operation* (*pa_context_get_sample_info_list_dylibloader_wrapper_pulse)( pa_context*, pa_sample_info_cb_t, void*); +extern pa_operation* (*pa_context_get_autoload_info_by_name_dylibloader_wrapper_pulse)( pa_context*,const char*, pa_autoload_type_t, pa_autoload_info_cb_t, void*); +extern pa_operation* (*pa_context_get_autoload_info_by_index_dylibloader_wrapper_pulse)( pa_context*, uint32_t, pa_autoload_info_cb_t, void*); +extern pa_operation* (*pa_context_get_autoload_info_list_dylibloader_wrapper_pulse)( pa_context*, pa_autoload_info_cb_t, void*); +extern pa_operation* (*pa_context_add_autoload_dylibloader_wrapper_pulse)( pa_context*,const char*, pa_autoload_type_t,const char*,const char*, pa_context_index_cb_t, void*); +extern pa_operation* (*pa_context_remove_autoload_by_name_dylibloader_wrapper_pulse)( pa_context*,const char*, pa_autoload_type_t, pa_context_success_cb_t, void*); +extern pa_operation* (*pa_context_remove_autoload_by_index_dylibloader_wrapper_pulse)( pa_context*, uint32_t, pa_context_success_cb_t, void*); +extern pa_operation* (*pa_context_subscribe_dylibloader_wrapper_pulse)( pa_context*, pa_subscription_mask_t, pa_context_success_cb_t, void*); +extern void (*pa_context_set_subscribe_callback_dylibloader_wrapper_pulse)( pa_context*, pa_context_subscribe_cb_t, void*); +extern int (*pa_stream_connect_upload_dylibloader_wrapper_pulse)( pa_stream*, size_t); +extern int (*pa_stream_finish_upload_dylibloader_wrapper_pulse)( pa_stream*); +extern pa_operation* (*pa_context_remove_sample_dylibloader_wrapper_pulse)( pa_context*,const char*, pa_context_success_cb_t, void*); +extern pa_operation* (*pa_context_play_sample_dylibloader_wrapper_pulse)( pa_context*,const char*,const char*, pa_volume_t, pa_context_success_cb_t, void*); +extern pa_operation* (*pa_context_play_sample_with_proplist_dylibloader_wrapper_pulse)( pa_context*,const char*,const char*, pa_volume_t,const pa_proplist*, pa_context_play_sample_cb_t, void*); +extern const char* (*pa_strerror_dylibloader_wrapper_pulse)( int); +extern void* (*pa_xmalloc_dylibloader_wrapper_pulse)( size_t); +extern void* (*pa_xmalloc0_dylibloader_wrapper_pulse)( size_t); +extern void* (*pa_xrealloc_dylibloader_wrapper_pulse)( void*, size_t); +extern void (*pa_xfree_dylibloader_wrapper_pulse)( void*); +extern char* (*pa_xstrdup_dylibloader_wrapper_pulse)(const char*); +extern char* (*pa_xstrndup_dylibloader_wrapper_pulse)(const char*, size_t); +extern void* (*pa_xmemdup_dylibloader_wrapper_pulse)(const void*, size_t); +extern char* (*pa_utf8_valid_dylibloader_wrapper_pulse)(const char*); +extern char* (*pa_ascii_valid_dylibloader_wrapper_pulse)(const char*); +extern char* (*pa_utf8_filter_dylibloader_wrapper_pulse)(const char*); +extern char* (*pa_ascii_filter_dylibloader_wrapper_pulse)(const char*); +extern char* (*pa_utf8_to_locale_dylibloader_wrapper_pulse)(const char*); +extern char* (*pa_locale_to_utf8_dylibloader_wrapper_pulse)(const char*); +extern pa_threaded_mainloop* (*pa_threaded_mainloop_new_dylibloader_wrapper_pulse)( void); +extern void (*pa_threaded_mainloop_free_dylibloader_wrapper_pulse)( pa_threaded_mainloop*); +extern int (*pa_threaded_mainloop_start_dylibloader_wrapper_pulse)( pa_threaded_mainloop*); +extern void (*pa_threaded_mainloop_stop_dylibloader_wrapper_pulse)( pa_threaded_mainloop*); +extern void (*pa_threaded_mainloop_lock_dylibloader_wrapper_pulse)( pa_threaded_mainloop*); +extern void (*pa_threaded_mainloop_unlock_dylibloader_wrapper_pulse)( pa_threaded_mainloop*); +extern void (*pa_threaded_mainloop_wait_dylibloader_wrapper_pulse)( pa_threaded_mainloop*); +extern void (*pa_threaded_mainloop_signal_dylibloader_wrapper_pulse)( pa_threaded_mainloop*, int); +extern void (*pa_threaded_mainloop_accept_dylibloader_wrapper_pulse)( pa_threaded_mainloop*); +extern int (*pa_threaded_mainloop_get_retval_dylibloader_wrapper_pulse)(const pa_threaded_mainloop*); +extern pa_mainloop_api* (*pa_threaded_mainloop_get_api_dylibloader_wrapper_pulse)( pa_threaded_mainloop*); +extern int (*pa_threaded_mainloop_in_thread_dylibloader_wrapper_pulse)( pa_threaded_mainloop*); +extern void (*pa_threaded_mainloop_set_name_dylibloader_wrapper_pulse)( pa_threaded_mainloop*,const char*); +extern void (*pa_threaded_mainloop_once_unlocked_dylibloader_wrapper_pulse)( pa_threaded_mainloop*, void*, void*); +extern pa_mainloop* (*pa_mainloop_new_dylibloader_wrapper_pulse)( void); +extern void (*pa_mainloop_free_dylibloader_wrapper_pulse)( pa_mainloop*); +extern int (*pa_mainloop_prepare_dylibloader_wrapper_pulse)( pa_mainloop*, int); +extern int (*pa_mainloop_poll_dylibloader_wrapper_pulse)( pa_mainloop*); +extern int (*pa_mainloop_dispatch_dylibloader_wrapper_pulse)( pa_mainloop*); +extern int (*pa_mainloop_get_retval_dylibloader_wrapper_pulse)(const pa_mainloop*); +extern int (*pa_mainloop_iterate_dylibloader_wrapper_pulse)( pa_mainloop*, int, int*); +extern int (*pa_mainloop_run_dylibloader_wrapper_pulse)( pa_mainloop*, int*); +extern pa_mainloop_api* (*pa_mainloop_get_api_dylibloader_wrapper_pulse)( pa_mainloop*); +extern void (*pa_mainloop_quit_dylibloader_wrapper_pulse)( pa_mainloop*, int); +extern void (*pa_mainloop_wakeup_dylibloader_wrapper_pulse)( pa_mainloop*); +extern void (*pa_mainloop_set_poll_func_dylibloader_wrapper_pulse)( pa_mainloop*, pa_poll_func, void*); +extern int (*pa_signal_init_dylibloader_wrapper_pulse)( pa_mainloop_api*); +extern void (*pa_signal_done_dylibloader_wrapper_pulse)( void); +extern pa_signal_event* (*pa_signal_new_dylibloader_wrapper_pulse)( int, pa_signal_cb_t, void*); +extern void (*pa_signal_free_dylibloader_wrapper_pulse)( pa_signal_event*); +extern void (*pa_signal_set_destroy_dylibloader_wrapper_pulse)( pa_signal_event*, pa_signal_destroy_cb_t); +extern char* (*pa_get_user_name_dylibloader_wrapper_pulse)( char*, size_t); +extern char* (*pa_get_host_name_dylibloader_wrapper_pulse)( char*, size_t); +extern char* (*pa_get_fqdn_dylibloader_wrapper_pulse)( char*, size_t); +extern char* (*pa_get_home_dir_dylibloader_wrapper_pulse)( char*, size_t); +extern char* (*pa_get_binary_name_dylibloader_wrapper_pulse)( char*, size_t); +extern char* (*pa_path_get_filename_dylibloader_wrapper_pulse)(const char*); +extern int (*pa_msleep_dylibloader_wrapper_pulse)( unsigned long); +extern int (*pa_thread_make_realtime_dylibloader_wrapper_pulse)( int); +extern struct timeval* (*pa_gettimeofday_dylibloader_wrapper_pulse)(struct timeval*); +extern pa_usec_t (*pa_timeval_diff_dylibloader_wrapper_pulse)(struct timeval*,struct timeval*); +extern int (*pa_timeval_cmp_dylibloader_wrapper_pulse)(struct timeval*,struct timeval*); +extern pa_usec_t (*pa_timeval_age_dylibloader_wrapper_pulse)(struct timeval*); +extern struct timeval* (*pa_timeval_add_dylibloader_wrapper_pulse)(struct timeval*, pa_usec_t); +extern struct timeval* (*pa_timeval_sub_dylibloader_wrapper_pulse)(struct timeval*, pa_usec_t); +extern struct timeval* (*pa_timeval_store_dylibloader_wrapper_pulse)(struct timeval*, pa_usec_t); +extern pa_usec_t (*pa_timeval_load_dylibloader_wrapper_pulse)(struct timeval*); +extern pa_usec_t (*pa_rtclock_now_dylibloader_wrapper_pulse)( void); +int initialize_pulse(); +#ifdef __cplusplus +} +#endif +#endif diff --git a/drivers/wasapi/audio_driver_wasapi.cpp b/drivers/wasapi/audio_driver_wasapi.cpp index f2d541754f..43c8722b06 100644 --- a/drivers/wasapi/audio_driver_wasapi.cpp +++ b/drivers/wasapi/audio_driver_wasapi.cpp @@ -387,7 +387,7 @@ Error AudioDriverWASAPI::finish_capture_device() { } Error AudioDriverWASAPI::init() { - mix_rate = GLOBAL_GET("audio/mix_rate"); + mix_rate = GLOBAL_GET("audio/driver/mix_rate"); Error err = init_render_device(); if (err != OK) { diff --git a/drivers/xaudio2/audio_driver_xaudio2.cpp b/drivers/xaudio2/audio_driver_xaudio2.cpp index 1bb8da769b..1c7bf5d6c6 100644 --- a/drivers/xaudio2/audio_driver_xaudio2.cpp +++ b/drivers/xaudio2/audio_driver_xaudio2.cpp @@ -44,12 +44,12 @@ Error AudioDriverXAudio2::init() { pcm_open = false; samples_in = nullptr; - mix_rate = GLOBAL_GET("audio/mix_rate"); + mix_rate = GLOBAL_GET("audio/driver/mix_rate"); // FIXME: speaker_mode seems unused in the Xaudio2 driver so far speaker_mode = SPEAKER_MODE_STEREO; channels = 2; - int latency = GLOBAL_GET("audio/output_latency"); + int latency = GLOBAL_GET("audio/driver/output_latency"); buffer_size = closest_power_of_2(latency * mix_rate / 1000); samples_in = memnew_arr(int32_t, buffer_size * channels); diff --git a/editor/audio_stream_preview.cpp b/editor/audio_stream_preview.cpp index 8be8735f3e..539657afd7 100644 --- a/editor/audio_stream_preview.cpp +++ b/editor/audio_stream_preview.cpp @@ -155,7 +155,7 @@ void AudioStreamPreviewGenerator::_preview_thread(void *p_preview) { preview->playback->stop(); - preview->generating = false; + preview->generating.clear(); } Ref<AudioStreamPreview> AudioStreamPreviewGenerator::generate_preview(const Ref<AudioStream> &p_stream) { @@ -172,7 +172,7 @@ Ref<AudioStreamPreview> AudioStreamPreviewGenerator::generate_preview(const Ref< Preview *preview = &previews[p_stream->get_instance_id()]; preview->base_stream = p_stream; preview->playback = preview->base_stream->instance_playback(); - preview->generating = true; + preview->generating.set(); preview->id = p_stream->get_instance_id(); float len_s = preview->base_stream->get_length(); @@ -217,7 +217,7 @@ void AudioStreamPreviewGenerator::_notification(int p_what) { if (p_what == NOTIFICATION_PROCESS) { List<ObjectID> to_erase; for (Map<ObjectID, Preview>::Element *E = previews.front(); E; E = E->next()) { - if (!E->get().generating) { + if (!E->get().generating.is_set()) { if (E->get().thread) { E->get().thread->wait_to_finish(); memdelete(E->get().thread); diff --git a/editor/audio_stream_preview.h b/editor/audio_stream_preview.h index 21c9ea203e..accc7275c0 100644 --- a/editor/audio_stream_preview.h +++ b/editor/audio_stream_preview.h @@ -32,6 +32,7 @@ #define AUDIO_STREAM_PREVIEW_H #include "core/os/thread.h" +#include "core/templates/safe_refcount.h" #include "scene/main/node.h" #include "servers/audio/audio_stream.h" @@ -60,9 +61,20 @@ class AudioStreamPreviewGenerator : public Node { Ref<AudioStreamPreview> preview; Ref<AudioStream> base_stream; Ref<AudioStreamPlayback> playback; - volatile bool generating = false; + SafeFlag generating; ObjectID id; Thread *thread = nullptr; + + // Needed for the bookkeeping of the Map + Preview &operator=(const Preview &p_rhs) { + preview = p_rhs.preview; + base_stream = p_rhs.base_stream; + playback = p_rhs.playback; + generating.set_to(generating.is_set()); + id = p_rhs.id; + thread = p_rhs.thread; + return *this; + } }; Map<ObjectID, Preview> previews; diff --git a/editor/dependency_editor.cpp b/editor/dependency_editor.cpp index 2780b74469..25e155aafe 100644 --- a/editor/dependency_editor.cpp +++ b/editor/dependency_editor.cpp @@ -480,8 +480,8 @@ void DependencyRemoveDialog::ok_pressed() { if (files_to_delete[i] == String(ProjectSettings::get_singleton()->get("application/boot_splash/image"))) { ProjectSettings::get_singleton()->set("application/boot_splash/image", ""); } - if (files_to_delete[i] == String(ProjectSettings::get_singleton()->get("rendering/environment/default_environment"))) { - ProjectSettings::get_singleton()->set("rendering/environment/default_environment", ""); + if (files_to_delete[i] == String(ProjectSettings::get_singleton()->get("rendering/environment/defaults/default_environment"))) { + ProjectSettings::get_singleton()->set("rendering/environment/defaults/default_environment", ""); } if (files_to_delete[i] == String(ProjectSettings::get_singleton()->get("display/mouse_cursor/custom_image"))) { ProjectSettings::get_singleton()->set("display/mouse_cursor/custom_image", ""); @@ -492,8 +492,8 @@ void DependencyRemoveDialog::ok_pressed() { if (files_to_delete[i] == String(ProjectSettings::get_singleton()->get("gui/theme/custom_font"))) { ProjectSettings::get_singleton()->set("gui/theme/custom_font", ""); } - if (files_to_delete[i] == String(ProjectSettings::get_singleton()->get("audio/default_bus_layout"))) { - ProjectSettings::get_singleton()->set("audio/default_bus_layout", ""); + if (files_to_delete[i] == String(ProjectSettings::get_singleton()->get("audio/buses/default_bus_layout"))) { + ProjectSettings::get_singleton()->set("audio/buses/default_bus_layout", ""); } String path = OS::get_singleton()->get_resource_dir() + files_to_delete[i].replace_first("res://", "/"); diff --git a/editor/editor_audio_buses.cpp b/editor/editor_audio_buses.cpp index 69a13957e6..9a826ab106 100644 --- a/editor/editor_audio_buses.cpp +++ b/editor/editor_audio_buses.cpp @@ -1191,7 +1191,7 @@ void EditorAudioBuses::_load_layout() { } void EditorAudioBuses::_load_default_layout() { - String layout_path = ProjectSettings::get_singleton()->get("audio/default_bus_layout"); + String layout_path = ProjectSettings::get_singleton()->get("audio/buses/default_bus_layout"); Ref<AudioBusLayout> state = ResourceLoader::load(layout_path, "", ResourceFormatLoader::CACHE_MODE_IGNORE); if (state.is_null()) { @@ -1257,7 +1257,7 @@ EditorAudioBuses::EditorAudioBuses() { add_child(top_hb); file = memnew(Label); - String layout_path = ProjectSettings::get_singleton()->get("audio/default_bus_layout"); + String layout_path = ProjectSettings::get_singleton()->get("audio/buses/default_bus_layout"); file->set_text(String(TTR("Layout")) + ": " + layout_path.get_file()); file->set_clip_text(true); file->set_h_size_flags(SIZE_EXPAND_FILL); @@ -1313,7 +1313,7 @@ EditorAudioBuses::EditorAudioBuses() { set_v_size_flags(SIZE_EXPAND_FILL); - edited_path = ProjectSettings::get_singleton()->get("audio/default_bus_layout"); + edited_path = ProjectSettings::get_singleton()->get("audio/buses/default_bus_layout"); file_dialog = memnew(EditorFileDialog); List<String> ext; diff --git a/editor/editor_export.cpp b/editor/editor_export.cpp index 24256b843e..949306de42 100644 --- a/editor/editor_export.cpp +++ b/editor/editor_export.cpp @@ -1403,9 +1403,9 @@ void EditorExport::add_export_preset(const Ref<EditorExportPreset> &p_preset, in } String EditorExportPlatform::test_etc2() const { - String driver = ProjectSettings::get_singleton()->get("rendering/quality/driver/driver_name"); - bool etc_supported = ProjectSettings::get_singleton()->get("rendering/vram_compression/import_etc"); - bool etc2_supported = ProjectSettings::get_singleton()->get("rendering/vram_compression/import_etc2"); + String driver = ProjectSettings::get_singleton()->get("rendering/driver/driver_name"); + bool etc_supported = ProjectSettings::get_singleton()->get("rendering/textures/vram_compression/import_etc"); + bool etc2_supported = ProjectSettings::get_singleton()->get("rendering/textures/vram_compression/import_etc2"); if (driver == "GLES2" && !etc_supported) { return TTR("Target platform requires 'ETC' texture compression for GLES2. Enable 'Import Etc' in Project Settings."); @@ -1417,9 +1417,9 @@ String EditorExportPlatform::test_etc2() const { } String EditorExportPlatform::test_etc2_or_pvrtc() const { - String driver = ProjectSettings::get_singleton()->get("rendering/quality/driver/driver_name"); - bool etc2_supported = ProjectSettings::get_singleton()->get("rendering/vram_compression/import_etc2"); - bool pvrtc_supported = ProjectSettings::get_singleton()->get("rendering/vram_compression/import_pvrtc"); + String driver = ProjectSettings::get_singleton()->get("rendering/driver/driver_name"); + bool etc2_supported = ProjectSettings::get_singleton()->get("rendering/textures/vram_compression/import_etc2"); + bool pvrtc_supported = ProjectSettings::get_singleton()->get("rendering/textures/vram_compression/import_pvrtc"); if (driver == "GLES2" && !pvrtc_supported) { return TTR("Target platform requires 'PVRTC' texture compression for GLES2. Enable 'Import Pvrtc' in Project Settings."); @@ -1902,7 +1902,7 @@ void EditorExportTextSceneToBinaryPlugin::_export_file(const String &p_path, con return; } - bool convert = GLOBAL_GET("editor/convert_text_resources_to_binary_on_export"); + bool convert = GLOBAL_GET("editor/export/convert_text_resources_to_binary"); if (!convert) { return; } @@ -1922,5 +1922,5 @@ void EditorExportTextSceneToBinaryPlugin::_export_file(const String &p_path, con } EditorExportTextSceneToBinaryPlugin::EditorExportTextSceneToBinaryPlugin() { - GLOBAL_DEF("editor/convert_text_resources_to_binary_on_export", false); + GLOBAL_DEF("editor/export/convert_text_resources_to_binary", false); } diff --git a/editor/editor_file_system.cpp b/editor/editor_file_system.cpp index 4b68de26e7..3c6649a66a 100644 --- a/editor/editor_file_system.cpp +++ b/editor/editor_file_system.cpp @@ -1413,11 +1413,11 @@ void EditorFileSystem::_scan_script_classes(EditorFileSystemDirectory *p_dir) { } void EditorFileSystem::update_script_classes() { - if (!update_script_classes_queued) { + if (!update_script_classes_queued.is_set()) { return; } - update_script_classes_queued = false; + update_script_classes_queued.clear(); ScriptServer::global_classes_clear(); if (get_filesystem()) { _scan_script_classes(get_filesystem()); @@ -1436,11 +1436,11 @@ void EditorFileSystem::update_script_classes() { } void EditorFileSystem::_queue_update_script_classes() { - if (update_script_classes_queued) { + if (update_script_classes_queued.is_set()) { return; } - update_script_classes_queued = true; + update_script_classes_queued.set(); call_deferred("update_script_classes"); } @@ -2067,7 +2067,7 @@ void EditorFileSystem::_update_extensions() { EditorFileSystem::EditorFileSystem() { ResourceLoader::import = _resource_import; - reimport_on_missing_imported_files = GLOBAL_DEF("editor/reimport_missing_imported_files", true); + reimport_on_missing_imported_files = GLOBAL_DEF("editor/import/reimport_missing_imported_files", true); singleton = this; filesystem = memnew(EditorFileSystemDirectory); //like, empty @@ -2091,7 +2091,7 @@ EditorFileSystem::EditorFileSystem() { memdelete(da); scan_total = 0; - update_script_classes_queued = false; + update_script_classes_queued.clear(); first_scan = true; scan_changes_pending = false; revalidate_import_files = false; diff --git a/editor/editor_file_system.h b/editor/editor_file_system.h index fa0b89e667..dec2330256 100644 --- a/editor/editor_file_system.h +++ b/editor/editor_file_system.h @@ -34,6 +34,7 @@ #include "core/os/dir_access.h" #include "core/os/thread.h" #include "core/os/thread_safe.h" +#include "core/templates/safe_refcount.h" #include "core/templates/set.h" #include "scene/main/node.h" class FileAccess; @@ -220,7 +221,7 @@ class EditorFileSystem : public Node { }; void _scan_script_classes(EditorFileSystemDirectory *p_dir); - volatile bool update_script_classes_queued; + SafeFlag update_script_classes_queued; void _queue_update_script_classes(); String _get_global_script_class(const String &p_type, const String &p_path, String *r_extends, String *r_icon_path) const; diff --git a/editor/editor_inspector.cpp b/editor/editor_inspector.cpp index a7f808f63a..60071f6263 100644 --- a/editor/editor_inspector.cpp +++ b/editor/editor_inspector.cpp @@ -1689,7 +1689,7 @@ void EditorInspector::update_tree() { bool valid = true; //if no properties in category, skip while (N) { - if (N->get().usage & PROPERTY_USAGE_EDITOR) { + if (N->get().usage & PROPERTY_USAGE_EDITOR && (!restrict_to_basic || (N->get().usage & PROPERTY_USAGE_EDITOR_BASIC_SETTING))) { break; } if (N->get().usage & PROPERTY_USAGE_CATEGORY) { @@ -1757,7 +1757,7 @@ void EditorInspector::update_tree() { continue; - } else if (!(p.usage & PROPERTY_USAGE_EDITOR) || _is_property_disabled_by_feature_profile(p.name)) { + } else if (!(p.usage & PROPERTY_USAGE_EDITOR) || _is_property_disabled_by_feature_profile(p.name) || (restrict_to_basic && !(p.usage & PROPERTY_USAGE_EDITOR_BASIC_SETTING))) { continue; } @@ -2620,6 +2620,11 @@ void EditorInspector::_update_script_class_properties(const Object &p_object, Li r_list.erase(bottom); } +void EditorInspector::set_restrict_to_basic_settings(bool p_restrict) { + restrict_to_basic = p_restrict; + update_tree(); +} + void EditorInspector::_bind_methods() { ClassDB::bind_method("_edit_request_change", &EditorInspector::_edit_request_change); diff --git a/editor/editor_inspector.h b/editor/editor_inspector.h index b98801975f..18250780be 100644 --- a/editor/editor_inspector.h +++ b/editor/editor_inspector.h @@ -313,6 +313,8 @@ class EditorInspector : public ScrollContainer { String property_prefix; //used for sectioned inspector String object_class; + bool restrict_to_basic = false; + void _edit_set(const String &p_name, const Variant &p_value, bool p_refresh_all, const String &p_changed_field); void _property_changed(const String &p_path, const Variant &p_value, const String &p_name = "", bool p_changing = false); @@ -400,6 +402,8 @@ public: void set_use_deletable_properties(bool p_enabled); + void set_restrict_to_basic_settings(bool p_restrict); + EditorInspector(); }; diff --git a/editor/editor_node.cpp b/editor/editor_node.cpp index 57fa552845..ec8430e645 100644 --- a/editor/editor_node.cpp +++ b/editor/editor_node.cpp @@ -431,70 +431,70 @@ void EditorNode::_unhandled_input(const Ref<InputEvent> &p_event) { } void EditorNode::_update_from_settings() { - int current_filter = GLOBAL_GET("rendering/canvas_textures/default_texture_filter"); + int current_filter = GLOBAL_GET("rendering/textures/canvas_textures/default_texture_filter"); if (current_filter != scene_root->get_default_canvas_item_texture_filter()) { Viewport::DefaultCanvasItemTextureFilter tf = (Viewport::DefaultCanvasItemTextureFilter)current_filter; scene_root->set_default_canvas_item_texture_filter(tf); } - int current_repeat = GLOBAL_GET("rendering/canvas_textures/default_texture_repeat"); + int current_repeat = GLOBAL_GET("rendering/textures/canvas_textures/default_texture_repeat"); if (current_repeat != scene_root->get_default_canvas_item_texture_repeat()) { Viewport::DefaultCanvasItemTextureRepeat tr = (Viewport::DefaultCanvasItemTextureRepeat)current_repeat; scene_root->set_default_canvas_item_texture_repeat(tr); } - RS::DOFBokehShape dof_shape = RS::DOFBokehShape(int(GLOBAL_GET("rendering/quality/depth_of_field/depth_of_field_bokeh_shape"))); + RS::DOFBokehShape dof_shape = RS::DOFBokehShape(int(GLOBAL_GET("rendering/camera/depth_of_field/depth_of_field_bokeh_shape"))); RS::get_singleton()->camera_effects_set_dof_blur_bokeh_shape(dof_shape); - RS::DOFBlurQuality dof_quality = RS::DOFBlurQuality(int(GLOBAL_GET("rendering/quality/depth_of_field/depth_of_field_bokeh_quality"))); - bool dof_jitter = GLOBAL_GET("rendering/quality/depth_of_field/depth_of_field_use_jitter"); + RS::DOFBlurQuality dof_quality = RS::DOFBlurQuality(int(GLOBAL_GET("rendering/camera/depth_of_field/depth_of_field_bokeh_quality"))); + bool dof_jitter = GLOBAL_GET("rendering/camera/depth_of_field/depth_of_field_use_jitter"); RS::get_singleton()->camera_effects_set_dof_blur_quality(dof_quality, dof_jitter); - RS::get_singleton()->environment_set_ssao_quality(RS::EnvironmentSSAOQuality(int(GLOBAL_GET("rendering/quality/ssao/quality"))), GLOBAL_GET("rendering/quality/ssao/half_size"), GLOBAL_GET("rendering/quality/ssao/adaptive_target"), GLOBAL_GET("rendering/quality/ssao/blur_passes"), GLOBAL_GET("rendering/quality/ssao/fadeout_from"), GLOBAL_GET("rendering/quality/ssao/fadeout_to")); - RS::get_singleton()->screen_space_roughness_limiter_set_active(GLOBAL_GET("rendering/quality/screen_filters/screen_space_roughness_limiter_enabled"), GLOBAL_GET("rendering/quality/screen_filters/screen_space_roughness_limiter_amount"), GLOBAL_GET("rendering/quality/screen_filters/screen_space_roughness_limiter_limit")); - bool glow_bicubic = int(GLOBAL_GET("rendering/quality/glow/upscale_mode")) > 0; + RS::get_singleton()->environment_set_ssao_quality(RS::EnvironmentSSAOQuality(int(GLOBAL_GET("rendering/environment/ssao/quality"))), GLOBAL_GET("rendering/environment/ssao/half_size"), GLOBAL_GET("rendering/environment/ssao/adaptive_target"), GLOBAL_GET("rendering/environment/ssao/blur_passes"), GLOBAL_GET("rendering/environment/ssao/fadeout_from"), GLOBAL_GET("rendering/environment/ssao/fadeout_to")); + RS::get_singleton()->screen_space_roughness_limiter_set_active(GLOBAL_GET("rendering/anti_aliasing/screen_space_roughness_limiter/enabled"), GLOBAL_GET("rendering/anti_aliasing/screen_space_roughness_limiter/amount"), GLOBAL_GET("rendering/anti_aliasing/screen_space_roughness_limiter/limit")); + bool glow_bicubic = int(GLOBAL_GET("rendering/environment/glow/upscale_mode")) > 0; RS::get_singleton()->environment_glow_set_use_bicubic_upscale(glow_bicubic); - bool glow_high_quality = GLOBAL_GET("rendering/quality/glow/use_high_quality"); + bool glow_high_quality = GLOBAL_GET("rendering/environment/glow/use_high_quality"); RS::get_singleton()->environment_glow_set_use_high_quality(glow_high_quality); - RS::EnvironmentSSRRoughnessQuality ssr_roughness_quality = RS::EnvironmentSSRRoughnessQuality(int(GLOBAL_GET("rendering/quality/screen_space_reflection/roughness_quality"))); + RS::EnvironmentSSRRoughnessQuality ssr_roughness_quality = RS::EnvironmentSSRRoughnessQuality(int(GLOBAL_GET("rendering/environment/screen_space_reflection/roughness_quality"))); RS::get_singleton()->environment_set_ssr_roughness_quality(ssr_roughness_quality); - RS::SubSurfaceScatteringQuality sss_quality = RS::SubSurfaceScatteringQuality(int(GLOBAL_GET("rendering/quality/subsurface_scattering/subsurface_scattering_quality"))); + RS::SubSurfaceScatteringQuality sss_quality = RS::SubSurfaceScatteringQuality(int(GLOBAL_GET("rendering/environment/subsurface_scattering/subsurface_scattering_quality"))); RS::get_singleton()->sub_surface_scattering_set_quality(sss_quality); - float sss_scale = GLOBAL_GET("rendering/quality/subsurface_scattering/subsurface_scattering_scale"); - float sss_depth_scale = GLOBAL_GET("rendering/quality/subsurface_scattering/subsurface_scattering_depth_scale"); + float sss_scale = GLOBAL_GET("rendering/environment/subsurface_scattering/subsurface_scattering_scale"); + float sss_depth_scale = GLOBAL_GET("rendering/environment/subsurface_scattering/subsurface_scattering_depth_scale"); RS::get_singleton()->sub_surface_scattering_set_scale(sss_scale, sss_depth_scale); - uint32_t directional_shadow_size = GLOBAL_GET("rendering/quality/directional_shadow/size"); - uint32_t directional_shadow_16_bits = GLOBAL_GET("rendering/quality/directional_shadow/16_bits"); + uint32_t directional_shadow_size = GLOBAL_GET("rendering/shadows/directional_shadow/size"); + uint32_t directional_shadow_16_bits = GLOBAL_GET("rendering/shadows/directional_shadow/16_bits"); RS::get_singleton()->directional_shadow_atlas_set_size(directional_shadow_size, directional_shadow_16_bits); - RS::ShadowQuality shadows_quality = RS::ShadowQuality(int(GLOBAL_GET("rendering/quality/shadows/soft_shadow_quality"))); + RS::ShadowQuality shadows_quality = RS::ShadowQuality(int(GLOBAL_GET("rendering/shadows/shadows/soft_shadow_quality"))); RS::get_singleton()->shadows_quality_set(shadows_quality); - RS::ShadowQuality directional_shadow_quality = RS::ShadowQuality(int(GLOBAL_GET("rendering/quality/directional_shadow/soft_shadow_quality"))); + RS::ShadowQuality directional_shadow_quality = RS::ShadowQuality(int(GLOBAL_GET("rendering/shadows/directional_shadow/soft_shadow_quality"))); RS::get_singleton()->directional_shadow_quality_set(directional_shadow_quality); - float probe_update_speed = GLOBAL_GET("rendering/lightmapper/probe_capture_update_speed"); + float probe_update_speed = GLOBAL_GET("rendering/lightmapping/probe_capture/update_speed"); RS::get_singleton()->lightmap_set_probe_capture_update_speed(probe_update_speed); - RS::EnvironmentSDFGIFramesToConverge frames_to_converge = RS::EnvironmentSDFGIFramesToConverge(int(GLOBAL_GET("rendering/sdfgi/frames_to_converge"))); + RS::EnvironmentSDFGIFramesToConverge frames_to_converge = RS::EnvironmentSDFGIFramesToConverge(int(GLOBAL_GET("rendering/global_illumination/sdfgi/frames_to_converge"))); RS::get_singleton()->environment_set_sdfgi_frames_to_converge(frames_to_converge); - RS::EnvironmentSDFGIRayCount ray_count = RS::EnvironmentSDFGIRayCount(int(GLOBAL_GET("rendering/sdfgi/probe_ray_count"))); + RS::EnvironmentSDFGIRayCount ray_count = RS::EnvironmentSDFGIRayCount(int(GLOBAL_GET("rendering/global_illumination/sdfgi/probe_ray_count"))); RS::get_singleton()->environment_set_sdfgi_ray_count(ray_count); - RS::GIProbeQuality gi_probe_quality = RS::GIProbeQuality(int(GLOBAL_GET("rendering/quality/gi_probes/quality"))); + RS::GIProbeQuality gi_probe_quality = RS::GIProbeQuality(int(GLOBAL_GET("rendering/global_illumination/gi_probes/quality"))); RS::get_singleton()->gi_probe_set_quality(gi_probe_quality); - RS::get_singleton()->environment_set_volumetric_fog_volume_size(GLOBAL_GET("rendering/volumetric_fog/volume_size"), GLOBAL_GET("rendering/volumetric_fog/volume_depth")); - RS::get_singleton()->environment_set_volumetric_fog_filter_active(bool(GLOBAL_GET("rendering/volumetric_fog/use_filter"))); - RS::get_singleton()->canvas_set_shadow_texture_size(GLOBAL_GET("rendering/quality/2d_shadow_atlas/size")); + RS::get_singleton()->environment_set_volumetric_fog_volume_size(GLOBAL_GET("rendering/environment/volumetric_fog/volume_size"), GLOBAL_GET("rendering/environment/volumetric_fog/volume_depth")); + RS::get_singleton()->environment_set_volumetric_fog_filter_active(bool(GLOBAL_GET("rendering/environment/volumetric_fog/use_filter"))); + RS::get_singleton()->canvas_set_shadow_texture_size(GLOBAL_GET("rendering/2d/shadow_atlas/size")); - bool use_half_res_gi = GLOBAL_DEF("rendering/quality/gi/use_half_resolution", false); + bool use_half_res_gi = GLOBAL_DEF("rendering/global_illumination/gi/use_half_resolution", false); RS::get_singleton()->gi_set_use_half_resolution(use_half_res_gi); - bool snap_2d_transforms = GLOBAL_GET("rendering/quality/2d/snap_2d_transforms_to_pixel"); + bool snap_2d_transforms = GLOBAL_GET("rendering/2d/snap/snap_2d_transforms_to_pixel"); scene_root->set_snap_2d_transforms_to_pixel(snap_2d_transforms); - bool snap_2d_vertices = GLOBAL_GET("rendering/quality/2d/snap_2d_vertices_to_pixel"); + bool snap_2d_vertices = GLOBAL_GET("rendering/2d/snap/snap_2d_vertices_to_pixel"); scene_root->set_snap_2d_vertices_to_pixel(snap_2d_vertices); - Viewport::SDFOversize sdf_oversize = Viewport::SDFOversize(int(GLOBAL_GET("rendering/quality/2d_sdf/oversize"))); + Viewport::SDFOversize sdf_oversize = Viewport::SDFOversize(int(GLOBAL_GET("rendering/2d/sdf/oversize"))); scene_root->set_sdf_oversize(sdf_oversize); - Viewport::SDFScale sdf_scale = Viewport::SDFScale(int(GLOBAL_GET("rendering/quality/2d_sdf/scale"))); + Viewport::SDFScale sdf_scale = Viewport::SDFScale(int(GLOBAL_GET("rendering/2d/sdf/scale"))); scene_root->set_sdf_scale(sdf_scale); - float lod_threshold = GLOBAL_GET("rendering/quality/mesh_lod/threshold_pixels"); + float lod_threshold = GLOBAL_GET("rendering/mesh_lod/lod_change/threshold_pixels"); scene_root->set_lod_threshold(lod_threshold); } @@ -2260,7 +2260,7 @@ void EditorNode::_run(bool p_current, const String &p_custom) { List<String> breakpoints; editor_data.get_editor_breakpoints(&breakpoints); - args = ProjectSettings::get_singleton()->get("editor/main_run_args"); + args = ProjectSettings::get_singleton()->get("editor/run/main_run_args"); skip_breakpoints = EditorDebuggerNode::get_singleton()->is_skip_breakpoints(); EditorDebuggerNode::get_singleton()->start(); @@ -2520,16 +2520,6 @@ void EditorNode::_menu_option_confirm(int p_option, bool p_confirmed) { } break; - case FILE_IMPORT_SUBSCENE: { - if (!editor_data.get_edited_scene_root()) { - show_accept(TTR("This operation can't be done without a selected node."), TTR("OK")); - break; - } - - scene_tree_dock->import_subscene(); - - } break; - case FILE_EXTERNAL_OPEN_SCENE: { if (unsaved_cache && !p_confirmed) { confirmation->get_ok_button()->set_text(TTR("Open")); @@ -2799,7 +2789,7 @@ void EditorNode::_menu_option_confirm(int p_option, bool p_confirmed) { } break; case SET_VIDEO_DRIVER_SAVE_AND_RESTART: { - ProjectSettings::get_singleton()->set("rendering/quality/driver/driver_name", video_driver_request); + ProjectSettings::get_singleton()->set("rendering/driver/driver_name", video_driver_request); ProjectSettings::get_singleton()->save(); save_all_scenes(); @@ -5565,7 +5555,8 @@ static void _execute_thread(void *p_ud) { eta->exitcode = err; } - eta->done = true; + eta->done.set(); + ; } int EditorNode::execute_and_show_output(const String &p_title, const String &p_path, const List<String> &p_arguments, bool p_close_on_ok, bool p_close_on_errors) { @@ -5579,13 +5570,12 @@ int EditorNode::execute_and_show_output(const String &p_title, const String &p_p eta.path = p_path; eta.args = p_arguments; eta.exitcode = 255; - eta.done = false; int prev_len = 0; eta.execute_output_thread.start(_execute_thread, &eta); - while (!eta.done) { + while (!eta.done.is_set()) { { MutexLock lock(eta.execute_output_mutex); if (prev_len != eta.output.length()) { @@ -5849,7 +5839,7 @@ EditorNode::EditorNode() { register_exporters(); - GLOBAL_DEF("editor/main_run_args", ""); + GLOBAL_DEF("editor/run/main_run_args", ""); ClassDB::set_class_enabled("RootMotionView", true); @@ -6225,8 +6215,8 @@ EditorNode::EditorNode() { pm_export->connect("id_pressed", callable_mp(this, &EditorNode::_menu_option)); p->add_separator(); - p->add_shortcut(ED_SHORTCUT("editor/undo", TTR("Undo"), KEY_MASK_CMD + KEY_Z), EDIT_UNDO, true); - p->add_shortcut(ED_SHORTCUT("editor/redo", TTR("Redo"), KEY_MASK_CMD + KEY_MASK_SHIFT + KEY_Z), EDIT_REDO, true); + p->add_shortcut(ED_GET_SHORTCUT("ui_undo"), EDIT_UNDO, true); + p->add_shortcut(ED_GET_SHORTCUT("ui_redo"), EDIT_REDO, true); p->add_separator(); p->add_shortcut(ED_SHORTCUT("editor/reload_saved_scene", TTR("Reload Saved Scene")), EDIT_RELOAD_SAVED_SCENE); @@ -6467,7 +6457,7 @@ EditorNode::EditorNode() { #warning needs to be reimplemented #endif #if 0 - String video_drivers = ProjectSettings::get_singleton()->get_custom_property_info()["rendering/quality/driver/driver_name"].hint_string; + String video_drivers = ProjectSettings::get_singleton()->get_custom_property_info()["rendering/driver/driver_name"].hint_string; String current_video_driver = OS::get_singleton()->get_video_driver_name(OS::get_singleton()->get_current_video_driver()); video_driver_current = 0; for (int i = 0; i < video_drivers.get_slice_count(","); i++) { diff --git a/editor/editor_node.h b/editor/editor_node.h index 8068ca89ee..91d873d16f 100644 --- a/editor/editor_node.h +++ b/editor/editor_node.h @@ -31,6 +31,7 @@ #ifndef EDITOR_NODE_H #define EDITOR_NODE_H +#include "core/templates/safe_refcount.h" #include "editor/editor_data.h" #include "editor/editor_export.h" #include "editor/editor_folding.h" @@ -111,7 +112,7 @@ public: Thread execute_output_thread; Mutex execute_output_mutex; int exitcode = 0; - volatile bool done = false; + SafeFlag done; }; private: @@ -128,7 +129,6 @@ private: FILE_SAVE_ALL_SCENES, FILE_SAVE_AND_RUN, FILE_SHOW_IN_FILESYSTEM, - FILE_IMPORT_SUBSCENE, FILE_EXPORT_PROJECT, FILE_EXPORT_MESH_LIBRARY, FILE_INSTALL_ANDROID_SOURCE, @@ -719,8 +719,6 @@ public: void save_resource(const Ref<Resource> &p_resource); void save_resource_as(const Ref<Resource> &p_resource, const String &p_at_path = String()); - void merge_from_scene() { _menu_option_confirm(FILE_IMPORT_SUBSCENE, false); } - void show_about() { _menu_option_confirm(HELP_ABOUT, false); } static bool has_unsaved_changes() { return singleton->unsaved_cache; } diff --git a/editor/editor_resource_preview.cpp b/editor/editor_resource_preview.cpp index 8056846f52..77288be614 100644 --- a/editor/editor_resource_preview.cpp +++ b/editor/editor_resource_preview.cpp @@ -206,8 +206,8 @@ void EditorResourcePreview::_generate_preview(Ref<ImageTexture> &r_texture, Ref< } void EditorResourcePreview::_thread() { - exited = false; - while (!exit) { + exited.clear(); + while (!exit.is_set()) { preview_sem.wait(); preview_mutex.lock(); @@ -326,7 +326,7 @@ void EditorResourcePreview::_thread() { preview_mutex.unlock(); } } - exited = true; + exited.set(); } void EditorResourcePreview::queue_edited_resource_preview(const Ref<Resource> &p_res, Object *p_receiver, const StringName &p_receiver_func, const Variant &p_userdata) { @@ -430,9 +430,9 @@ void EditorResourcePreview::start() { void EditorResourcePreview::stop() { if (thread.is_started()) { - exit = true; + exit.set(); preview_sem.post(); - while (!exited) { + while (!exited.is_set()) { OS::get_singleton()->delay_usec(10000); RenderingServer::get_singleton()->sync(); //sync pending stuff, as thread may be blocked on visual server } @@ -443,8 +443,6 @@ void EditorResourcePreview::stop() { EditorResourcePreview::EditorResourcePreview() { singleton = this; order = 0; - exit = false; - exited = false; } EditorResourcePreview::~EditorResourcePreview() { diff --git a/editor/editor_resource_preview.h b/editor/editor_resource_preview.h index 99c48967d8..c4e796dcf1 100644 --- a/editor/editor_resource_preview.h +++ b/editor/editor_resource_preview.h @@ -33,6 +33,7 @@ #include "core/os/semaphore.h" #include "core/os/thread.h" +#include "core/templates/safe_refcount.h" #include "scene/main/node.h" #include "scene/resources/texture.h" @@ -71,8 +72,8 @@ class EditorResourcePreview : public Node { Mutex preview_mutex; Semaphore preview_sem; Thread thread; - volatile bool exit; - volatile bool exited; + SafeFlag exit; + SafeFlag exited; struct Item { Ref<Texture2D> preview; diff --git a/editor/editor_sectioned_inspector.cpp b/editor/editor_sectioned_inspector.cpp index fb4821a760..f81c87be9e 100644 --- a/editor/editor_sectioned_inspector.cpp +++ b/editor/editor_sectioned_inspector.cpp @@ -226,7 +226,7 @@ void SectionedInspector::update_category_list() { if (pi.usage & PROPERTY_USAGE_CATEGORY) { continue; - } else if (!(pi.usage & PROPERTY_USAGE_EDITOR)) { + } else if (!(pi.usage & PROPERTY_USAGE_EDITOR) || (restrict_to_basic && !(pi.usage & PROPERTY_USAGE_EDITOR_BASIC_SETTING))) { continue; } @@ -294,6 +294,12 @@ EditorInspector *SectionedInspector::get_inspector() { return inspector; } +void SectionedInspector::set_restrict_to_basic_settings(bool p_restrict) { + restrict_to_basic = p_restrict; + update_category_list(); + inspector->set_restrict_to_basic_settings(p_restrict); +} + SectionedInspector::SectionedInspector() : sections(memnew(Tree)), filter(memnew(SectionedInspectorFilter)), diff --git a/editor/editor_sectioned_inspector.h b/editor/editor_sectioned_inspector.h index 55fb94fecc..1068a4f932 100644 --- a/editor/editor_sectioned_inspector.h +++ b/editor/editor_sectioned_inspector.h @@ -51,6 +51,8 @@ class SectionedInspector : public HSplitContainer { String selected_category; + bool restrict_to_basic = false; + static void _bind_methods(); void _section_selected(); @@ -65,6 +67,7 @@ public: void set_current_section(const String &p_section); String get_current_section() const; + void set_restrict_to_basic_settings(bool p_restrict); void update_category_list(); SectionedInspector(); diff --git a/editor/editor_settings.cpp b/editor/editor_settings.cpp index b6fa2f6d03..40647497af 100644 --- a/editor/editor_settings.cpp +++ b/editor/editor_settings.cpp @@ -31,6 +31,7 @@ #include "editor_settings.h" #include "core/config/project_settings.h" +#include "core/input/input_map.h" #include "core/io/certs_compressed.gen.h" #include "core/io/compression.h" #include "core/io/config_file.h" @@ -70,7 +71,7 @@ bool EditorSettings::_set(const StringName &p_name, const Variant &p_value) { bool EditorSettings::_set_only(const StringName &p_name, const Variant &p_value) { _THREAD_SAFE_METHOD_ - if (p_name.operator String() == "shortcuts") { + if (p_name == "shortcuts") { Array arr = p_value; ERR_FAIL_COND_V(arr.size() && arr.size() & 1, true); for (int i = 0; i < arr.size(); i += 2) { @@ -84,6 +85,24 @@ bool EditorSettings::_set_only(const StringName &p_name, const Variant &p_value) } return false; + } else if (p_name == "builtin_action_overrides") { + Array actions_arr = p_value; + for (int i = 0; i < actions_arr.size(); i++) { + Dictionary action_dict = actions_arr[i]; + + String name = action_dict["name"]; + Array events = action_dict["events"]; + + InputMap *im = InputMap::get_singleton(); + im->action_erase_events(name); + + builtin_action_overrides[name].clear(); + for (int ev_idx = 0; ev_idx < events.size(); ev_idx++) { + im->action_add_event(name, events[ev_idx]); + builtin_action_overrides[name].push_back(events[ev_idx]); + } + } + return false; } bool changed = false; @@ -118,11 +137,16 @@ bool EditorSettings::_set_only(const StringName &p_name, const Variant &p_value) bool EditorSettings::_get(const StringName &p_name, Variant &r_ret) const { _THREAD_SAFE_METHOD_ - if (p_name.operator String() == "shortcuts") { + if (p_name == "shortcuts") { Array arr; for (const Map<String, Ref<Shortcut>>::Element *E = shortcuts.front(); E; E = E->next()) { Ref<Shortcut> sc = E->get(); + if (builtin_action_overrides.has(E->key())) { + // This shortcut was auto-generated from built in actions: don't save. + continue; + } + if (optimize_save) { if (!sc->has_meta("original")) { continue; //this came from settings but is not any longer used @@ -139,6 +163,27 @@ bool EditorSettings::_get(const StringName &p_name, Variant &r_ret) const { } r_ret = arr; return true; + } else if (p_name == "builtin_action_overrides") { + Array actions_arr; + for (Map<String, List<Ref<InputEvent>>>::Element *E = builtin_action_overrides.front(); E; E = E->next()) { + List<Ref<InputEvent>> events = E->get(); + + // TODO: skip actions which are the same as the builtin. + Dictionary action_dict; + action_dict["name"] = E->key(); + + Array events_arr; + for (List<Ref<InputEvent>>::Element *I = events.front(); I; I = I->next()) { + events_arr.push_back(I->get()); + } + + action_dict["events"] = events_arr; + + actions_arr.push_back(action_dict); + } + + r_ret = actions_arr; + return true; } const VariantContainer *v = props.getptr(p_name); @@ -220,6 +265,7 @@ void EditorSettings::_get_property_list(List<PropertyInfo> *p_list) const { } p_list->push_back(PropertyInfo(Variant::ARRAY, "shortcuts", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_NOEDITOR | PROPERTY_USAGE_INTERNAL)); //do not edit + p_list->push_back(PropertyInfo(Variant::ARRAY, "builtin_action_overrides", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_NOEDITOR | PROPERTY_USAGE_INTERNAL)); } void EditorSettings::_add_property_info_bind(const Dictionary &p_info) { @@ -1285,7 +1331,7 @@ String EditorSettings::get_script_templates_dir() const { } String EditorSettings::get_project_script_templates_dir() const { - return ProjectSettings::get_singleton()->get("editor/script_templates_search_path"); + return ProjectSettings::get_singleton()->get("editor/script/templates_search_path"); } // Cache directory @@ -1539,12 +1585,39 @@ bool EditorSettings::is_shortcut(const String &p_name, const Ref<InputEvent> &p_ } Ref<Shortcut> EditorSettings::get_shortcut(const String &p_name) const { - const Map<String, Ref<Shortcut>>::Element *E = shortcuts.find(p_name); - if (!E) { - return Ref<Shortcut>(); + const Map<String, Ref<Shortcut>>::Element *SC = shortcuts.find(p_name); + if (SC) { + return SC->get(); + } + + // If no shortcut with the provided name is found in the list, check the built-in shortcuts. + // Use the first item in the action list for the shortcut event, since a shortcut can only have 1 linked event. + + Ref<Shortcut> sc; + const Map<String, List<Ref<InputEvent>>>::Element *builtin_override = builtin_action_overrides.find(p_name); + if (builtin_override) { + sc.instance(); + sc->set_shortcut(builtin_override->get().front()->get()); + sc->set_name(InputMap::get_singleton()->get_builtin_display_name(p_name)); + } + + // If there was no override, check the default builtins to see if it has an InputEvent for the provided name. + if (sc.is_null()) { + const OrderedHashMap<String, List<Ref<InputEvent>>>::ConstElement builtin_default = InputMap::get_singleton()->get_builtins().find(p_name); + if (builtin_default) { + sc.instance(); + sc->set_shortcut(builtin_default.get().front()->get()); + sc->set_name(InputMap::get_singleton()->get_builtin_display_name(p_name)); + } + } + + if (sc.is_valid()) { + // Add the shortcut to the list. + shortcuts[p_name] = sc; + return sc; } - return E->get(); + return Ref<Shortcut>(); } void EditorSettings::get_shortcut_list(List<String> *r_shortcuts) { @@ -1610,6 +1683,66 @@ Ref<Shortcut> ED_SHORTCUT(const String &p_path, const String &p_name, uint32_t p return sc; } +void EditorSettings::set_builtin_action_override(const String &p_name, const Array &p_events) { + List<Ref<InputEvent>> event_list; + + // Override the whole list, since events may have their order changed or be added, removed or edited. + InputMap::get_singleton()->action_erase_events(p_name); + for (int i = 0; i < p_events.size(); i++) { + event_list.push_back(p_events[i]); + InputMap::get_singleton()->action_add_event(p_name, p_events[i]); + } + + // Check if the provided event array is same as built-in. If it is, it does not need to be added to the overrides. + // Note that event order must also be the same. + bool same_as_builtin = true; + OrderedHashMap<String, List<Ref<InputEvent>>>::ConstElement builtin_default = InputMap::get_singleton()->get_builtins().find(p_name); + if (builtin_default) { + List<Ref<InputEvent>> builtin_events = builtin_default.get(); + + if (p_events.size() == builtin_events.size()) { + int event_idx = 0; + + // Check equality of each event. + for (List<Ref<InputEvent>>::Element *E = builtin_events.front(); E; E = E->next()) { + if (!E->get()->shortcut_match(p_events[event_idx])) { + same_as_builtin = false; + break; + } + event_idx++; + } + } else { + same_as_builtin = false; + } + } + + if (same_as_builtin && builtin_action_overrides.has(p_name)) { + builtin_action_overrides.erase(p_name); + } else { + builtin_action_overrides[p_name] = event_list; + } + + // Update the shortcut (if it is used somewhere in the editor) to be the first event of the new list. + if (shortcuts.has(p_name)) { + shortcuts[p_name]->set_shortcut(event_list.front()->get()); + } +} + +const Array EditorSettings::get_builtin_action_overrides(const String &p_name) const { + const Map<String, List<Ref<InputEvent>>>::Element *AO = builtin_action_overrides.find(p_name); + if (AO) { + Array event_array; + + List<Ref<InputEvent>> events_list = AO->get(); + for (List<Ref<InputEvent>>::Element *E = events_list.front(); E; E = E->next()) { + event_array.push_back(E->get()); + } + return event_array; + } + + return Array(); +} + void EditorSettings::notify_changes() { _THREAD_SAFE_METHOD_ @@ -1648,6 +1781,8 @@ void EditorSettings::_bind_methods() { ClassDB::bind_method(D_METHOD("set_recent_dirs", "dirs"), &EditorSettings::set_recent_dirs); ClassDB::bind_method(D_METHOD("get_recent_dirs"), &EditorSettings::get_recent_dirs); + ClassDB::bind_method(D_METHOD("set_builtin_action_override", "name", "actions_list"), &EditorSettings::set_builtin_action_override); + ADD_SIGNAL(MethodInfo("settings_changed")); BIND_CONSTANT(NOTIFICATION_EDITOR_SETTINGS_CHANGED); diff --git a/editor/editor_settings.h b/editor/editor_settings.h index 616a938a86..e5f8527faf 100644 --- a/editor/editor_settings.h +++ b/editor/editor_settings.h @@ -84,7 +84,8 @@ private: int last_order; Ref<Resource> clipboard; - Map<String, Ref<Shortcut>> shortcuts; + mutable Map<String, Ref<Shortcut>> shortcuts; + Map<String, List<Ref<InputEvent>>> builtin_action_overrides; String resource_path; String settings_dir; @@ -186,6 +187,9 @@ public: Ref<Shortcut> get_shortcut(const String &p_name) const; void get_shortcut_list(List<String> *r_shortcuts); + void set_builtin_action_override(const String &p_name, const Array &p_events); + const Array get_builtin_action_overrides(const String &p_name) const; + void notify_changes(); EditorSettings(); diff --git a/editor/editor_sub_scene.cpp b/editor/editor_sub_scene.cpp deleted file mode 100644 index e319fbff52..0000000000 --- a/editor/editor_sub_scene.cpp +++ /dev/null @@ -1,265 +0,0 @@ -/*************************************************************************/ -/* editor_sub_scene.cpp */ -/*************************************************************************/ -/* This file is part of: */ -/* GODOT ENGINE */ -/* https://godotengine.org */ -/*************************************************************************/ -/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */ -/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */ -/* */ -/* Permission is hereby granted, free of charge, to any person obtaining */ -/* a copy of this software and associated documentation files (the */ -/* "Software"), to deal in the Software without restriction, including */ -/* without limitation the rights to use, copy, modify, merge, publish, */ -/* distribute, sublicense, and/or sell copies of the Software, and to */ -/* permit persons to whom the Software is furnished to do so, subject to */ -/* the following conditions: */ -/* */ -/* The above copyright notice and this permission notice shall be */ -/* included in all copies or substantial portions of the Software. */ -/* */ -/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */ -/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */ -/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/ -/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */ -/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */ -/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */ -/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -/*************************************************************************/ - -#include "editor_sub_scene.h" - -#include "editor/editor_node.h" -#include "scene/gui/margin_container.h" -#include "scene/resources/packed_scene.h" - -void EditorSubScene::_path_selected(const String &p_path) { - path->set_text(p_path); - _path_changed(p_path); -} - -void EditorSubScene::_path_changed(const String &p_path) { - tree->clear(); - - if (scene) { - memdelete(scene); - scene = nullptr; - } - - if (p_path == "") { - return; - } - - Ref<PackedScene> ps = ResourceLoader::load(p_path, "PackedScene"); - - if (ps.is_null()) { - return; - } - - scene = ps->instance(); - if (!scene) { - return; - } - - _fill_tree(scene, nullptr); -} - -void EditorSubScene::_path_browse() { - file_dialog->popup_file_dialog(); -} - -void EditorSubScene::_notification(int p_what) { - if (p_what == NOTIFICATION_VISIBILITY_CHANGED) { - if (is_visible() && scene == nullptr) { - _path_browse(); - } - } -} - -void EditorSubScene::_fill_tree(Node *p_node, TreeItem *p_parent) { - TreeItem *it = tree->create_item(p_parent); - it->set_metadata(0, p_node); - it->set_text(0, p_node->get_name()); - it->set_editable(0, false); - it->set_selectable(0, true); - it->set_icon(0, EditorNode::get_singleton()->get_object_icon(p_node, "Node")); - - for (int i = 0; i < p_node->get_child_count(); i++) { - Node *c = p_node->get_child(i); - if (c->get_owner() != scene) { - continue; - } - _fill_tree(c, it); - } -} - -void EditorSubScene::_selected_changed() { - TreeItem *item = tree->get_selected(); - ERR_FAIL_COND(!item); - Node *n = item->get_metadata(0); - - if (!n || !selection.find(n)) { - selection.clear(); - is_root = false; - } -} - -void EditorSubScene::_item_multi_selected(Object *p_object, int p_cell, bool p_selected) { - if (!is_root) { - TreeItem *item = Object::cast_to<TreeItem>(p_object); - ERR_FAIL_COND(!item); - - Node *n = item->get_metadata(0); - - if (!n) { - return; - } - if (p_selected) { - if (n == scene) { - is_root = true; - selection.clear(); - } - selection.push_back(n); - } else { - List<Node *>::Element *E = selection.find(n); - - if (E) { - selection.erase(E); - } - } - } -} - -void EditorSubScene::_item_activated() { - _ok_pressed(); // From AcceptDialog. -} - -void EditorSubScene::_remove_selection_child(Node *p_node) { - if (p_node->get_child_count() > 0) { - for (int i = 0; i < p_node->get_child_count(); i++) { - Node *c = p_node->get_child(i); - List<Node *>::Element *E = selection.find(c); - if (E) { - selection.move_to_back(E); - selection.pop_back(); - } - if (c->get_child_count() > 0) { - _remove_selection_child(c); - } - } - } -} - -void EditorSubScene::ok_pressed() { - if (selection.size() <= 0) { - return; - } - for (List<Node *>::Element *E = selection.front(); E; E = E->next()) { - Node *c = E->get(); - _remove_selection_child(c); - } - emit_signal("subscene_selected"); - hide(); - clear(); -} - -void EditorSubScene::_reown(Node *p_node, List<Node *> *p_to_reown) { - if (p_node == scene) { - scene->set_filename(""); - p_to_reown->push_back(p_node); - } else if (p_node->get_owner() == scene) { - p_to_reown->push_back(p_node); - } - - for (int i = 0; i < p_node->get_child_count(); i++) { - Node *c = p_node->get_child(i); - _reown(c, p_to_reown); - } -} - -void EditorSubScene::move(Node *p_new_parent, Node *p_new_owner) { - if (!scene) { - return; - } - - if (selection.size() <= 0) { - return; - } - - for (List<Node *>::Element *E = selection.front(); E; E = E->next()) { - Node *selnode = E->get(); - if (!selnode) { - return; - } - List<Node *> to_reown; - _reown(selnode, &to_reown); - if (selnode != scene) { - selnode->get_parent()->remove_child(selnode); - } - - p_new_parent->add_child(selnode); - for (List<Node *>::Element *F = to_reown.front(); F; F = F->next()) { - F->get()->set_owner(p_new_owner); - } - } - if (!is_root) { - memdelete(scene); - } - scene = nullptr; - //return selnode; -} - -void EditorSubScene::clear() { - path->set_text(""); - _path_changed(""); -} - -void EditorSubScene::_bind_methods() { - ADD_SIGNAL(MethodInfo("subscene_selected")); -} - -EditorSubScene::EditorSubScene() { - scene = nullptr; - is_root = false; - - set_title(TTR("Select Node(s) to Import")); - set_hide_on_ok(false); - - VBoxContainer *vb = memnew(VBoxContainer); - add_child(vb); - //set_child_rect(vb); - - HBoxContainer *hb = memnew(HBoxContainer); - path = memnew(LineEdit); - path->connect("text_entered", callable_mp(this, &EditorSubScene::_path_changed)); - hb->add_child(path); - path->set_h_size_flags(Control::SIZE_EXPAND_FILL); - Button *b = memnew(Button); - b->set_text(TTR("Browse")); - hb->add_child(b); - b->connect("pressed", callable_mp(this, &EditorSubScene::_path_browse)); - vb->add_margin_child(TTR("Scene Path:"), hb); - - tree = memnew(Tree); - tree->set_v_size_flags(Control::SIZE_EXPAND_FILL); - vb->add_margin_child(TTR("Import From Node:"), tree, true); - tree->set_select_mode(Tree::SELECT_MULTI); - tree->connect("multi_selected", callable_mp(this, &EditorSubScene::_item_multi_selected)); - //tree->connect("nothing_selected", this, "_deselect_items"); - tree->connect("cell_selected", callable_mp(this, &EditorSubScene::_selected_changed)); - - tree->connect("item_activated", callable_mp(this, &EditorSubScene::_item_activated), make_binds(), CONNECT_DEFERRED); - - file_dialog = memnew(EditorFileDialog); - List<String> extensions; - ResourceLoader::get_recognized_extensions_for_type("PackedScene", &extensions); - - for (List<String>::Element *E = extensions.front(); E; E = E->next()) { - file_dialog->add_filter("*." + E->get()); - } - - file_dialog->set_file_mode(EditorFileDialog::FILE_MODE_OPEN_FILE); - add_child(file_dialog); - file_dialog->connect("file_selected", callable_mp(this, &EditorSubScene::_path_selected)); -} diff --git a/editor/find_in_files.cpp b/editor/find_in_files.cpp index 27e539d71c..47079a92b7 100644 --- a/editor/find_in_files.cpp +++ b/editor/find_in_files.cpp @@ -463,7 +463,7 @@ void FindInFilesDialog::_notification(int p_what) { for (int i = 0; i < _filters_container->get_child_count(); i++) { _filters_container->get_child(i)->queue_delete(); } - Array exts = ProjectSettings::get_singleton()->get("editor/search_in_file_extensions"); + Array exts = ProjectSettings::get_singleton()->get("editor/script/search_in_file_extensions"); for (int i = 0; i < exts.size(); ++i) { CheckBox *cb = memnew(CheckBox); cb->set_text(exts[i]); diff --git a/editor/icons/GPUParticlesAttractorBox.svg b/editor/icons/GPUParticlesAttractorBox.svg new file mode 100644 index 0000000000..3c27b2d3cb --- /dev/null +++ b/editor/icons/GPUParticlesAttractorBox.svg @@ -0,0 +1 @@ +<svg height="16" viewBox="0 0 16 16" width="16" xmlns="http://www.w3.org/2000/svg"><circle cx="8" cy="8" fill="#fc9c9c" fill-opacity=".996078" r="1"/><g fill="none" stroke="#fc9c9c" stroke-opacity=".996078"><ellipse cx="8" cy="-8" rx="2.339226" ry="4.949748" transform="rotate(90)"/><ellipse cx="8" cy="8" rx="2.339226" ry="4.949748"/><path d="m1.498906 1.498906h13.002189v13.002188h-13.002189z" stroke-width=".997813"/></g></svg> diff --git a/editor/icons/GPUParticlesAttractorSphere.svg b/editor/icons/GPUParticlesAttractorSphere.svg new file mode 100644 index 0000000000..5473a23854 --- /dev/null +++ b/editor/icons/GPUParticlesAttractorSphere.svg @@ -0,0 +1 @@ +<svg height="16" viewBox="0 0 16 16" width="16" xmlns="http://www.w3.org/2000/svg"><ellipse cx="-8" cy="-7.999999" fill="none" rx="6.499003" ry="6.499001" stroke="#fc9c9c" stroke-opacity=".996078" stroke-width="1.002" transform="scale(-1)"/><circle cx="8" cy="8" fill="#fc9c9c" fill-opacity=".996078" r="1"/><g fill="none" stroke="#fc9c9c" stroke-opacity=".996078"><ellipse cx="11.313708" rx="2.339226" ry="4.949748" transform="matrix(.70710678 .70710678 -.70710678 .70710678 0 0)"/><ellipse cy="11.313708" rx="2.339226" ry="4.949748" transform="matrix(.70710678 -.70710678 .70710678 .70710678 0 0)"/></g></svg> diff --git a/editor/icons/GPUParticlesAttractorVectorField.svg b/editor/icons/GPUParticlesAttractorVectorField.svg new file mode 100644 index 0000000000..93a29789e3 --- /dev/null +++ b/editor/icons/GPUParticlesAttractorVectorField.svg @@ -0,0 +1 @@ +<svg height="16" viewBox="0 0 16 16" width="16" xmlns="http://www.w3.org/2000/svg"><ellipse cx="6.663637" cy="9.245457" fill="#fc9c9c" fill-opacity=".996078" rx="1.030661" ry=".998146"/><ellipse cx="-6.672815" cy="-9.387111" fill="none" rx="2.408711" ry="5.096776" stroke="#fc9c9c" stroke-opacity=".996078" stroke-width="1.0297" transform="matrix(-.99999945 .00104887 .00104887 -.99999945 0 0)"/><ellipse cx="9.387111" cy="-6.672815" fill="none" rx="2.408711" ry="5.096776" stroke="#fc9c9c" stroke-opacity=".996078" stroke-width="1.0297" transform="matrix(-.00104887 .99999945 -.99999945 .00104887 0 0)"/><g fill="#fc9c9c" fill-opacity=".996078"><path d="m11.8 15 2.4-2.4.8.8v-2.4h-2.4l.8.8-2.4 2.4z"/><path d="m11 6 3-3 1 1v-3h-3l1 1-3 3z"/><path d="m1.8 5 2.4-2.4.8.8v-2.4h-2.4l.8.8-2.4 2.4z"/></g></svg> diff --git a/editor/icons/GPUParticlesCollisionBox.svg b/editor/icons/GPUParticlesCollisionBox.svg new file mode 100644 index 0000000000..f7296b34c3 --- /dev/null +++ b/editor/icons/GPUParticlesCollisionBox.svg @@ -0,0 +1 @@ +<svg height="16" viewBox="0 0 14.999999 14.999999" width="16" xmlns="http://www.w3.org/2000/svg"><g fill="#fc9c9c" fill-opacity=".996078"><path d="m7.5 2.8124998-5.5883107 2.7941554v5.7660988l5.5883107 2.794155 5.588311-2.794155v-5.7660988zm0 1.6886278 3.145021 1.5732692-3.145021 1.5717523-3.1450214-1.5717523zm-3.9916505 2.8362274 3.1933204 1.5966602v3.1465378l-3.1933204-1.598256zm7.9833015 0v3.145021l-3.1933209 1.598257v-3.146538z" stroke-width=".851579"/><circle cx="1.875" cy="3.75" r=".9375"/><circle cx="13.124999" cy="3.75" r=".9375"/><circle cx="9.374999" cy="1.875" r=".9375"/><circle cx="5.625" cy="1.875" r=".9375"/></g></svg> diff --git a/editor/icons/GPUParticlesCollisionHeightField.svg b/editor/icons/GPUParticlesCollisionHeightField.svg new file mode 100644 index 0000000000..b483f299e9 --- /dev/null +++ b/editor/icons/GPUParticlesCollisionHeightField.svg @@ -0,0 +1 @@ +<svg height="16" viewBox="0 0 16 16" width="16" xmlns="http://www.w3.org/2000/svg"><g fill="#fc9c9c"><path d="m1 10c1-1 3-2 3-4s2-4 4-4 4 2 4 4 2 3 3 4l-7 5z"/><circle cx="2" cy="6" r="1"/><circle cx="14" cy="6" r="1"/><circle cx="12" cy="2" r="1"/><circle cx="4" cy="2" r="1"/></g></svg> diff --git a/editor/icons/GPUParticlesCollisionSDF.svg b/editor/icons/GPUParticlesCollisionSDF.svg new file mode 100644 index 0000000000..6279990f3a --- /dev/null +++ b/editor/icons/GPUParticlesCollisionSDF.svg @@ -0,0 +1 @@ +<svg height="16" viewBox="0 0 16 16" width="16" xmlns="http://www.w3.org/2000/svg"><path d="m14 14h-12v-9s3 4 5.9999999 3.9999999c3.0000001-.0000001 6.0000001-3.9999999 6.0000001-3.9999999z" fill="none" stroke="#fc9c9c" stroke-linejoin="round" stroke-opacity=".996078" stroke-width="2"/><g fill="#fc9c9c" fill-opacity=".996078"><circle cx="2" cy="2" r="1"/><circle cx="14" cy="2" r="1"/><circle cx="10" cy="5" r="1"/><circle cx="6" cy="5" r="1"/></g></svg> diff --git a/editor/icons/GPUParticlesCollisionSphere.svg b/editor/icons/GPUParticlesCollisionSphere.svg new file mode 100644 index 0000000000..fc7715445c --- /dev/null +++ b/editor/icons/GPUParticlesCollisionSphere.svg @@ -0,0 +1 @@ +<svg height="16" viewBox="0 0 16 16" width="16" xmlns="http://www.w3.org/2000/svg"><g fill="#fc9c9c" fill-opacity=".996078"><path d="m8 3.0532484c-3.2888554 0-5.9733758 2.6845204-5.9733758 5.9733758 0 3.2889408 2.6845204 5.9733758 5.9733758 5.9733758 3.288855 0 5.973376-2.684435 5.973376-5.9733758 0-3.2888554-2.684521-5.9733758-5.973376-5.9733758zm-.8533394 1.79005v4.1567016c-1.1034532-.0608789-2.2238878-.2544573-3.3650586-.5900074.256693-1.7901354 1.6087154-3.2141029 3.3650586-3.5667027zm1.7066788 0c1.7535276.3520281 3.1035956 1.77213 3.3633516 3.55834-1.113266.3129793-2.2321649.5142138-3.3633516.5866709zm3.2300606 5.3599956c-.434043 1.51792-1.663927 2.690664-3.2300606 3.005035v-2.518376c1.0915918-.0617 2.1691036-.227875 3.2300606-.486668zm-8.161765.015c1.0865571.272147 2.162106.428504 3.2250256.480003v2.510013c-1.5608431-.313338-2.7870065-1.479605-3.2250256-2.990016z" stroke-width=".853339"/><circle cx="2" cy="5" r="1"/><circle cx="14" cy="5" r="1"/><circle cx="10" cy="2" r="1"/><circle cx="6" cy="2" r="1"/></g></svg> diff --git a/editor/import/resource_importer_layered_texture.cpp b/editor/import/resource_importer_layered_texture.cpp index 3139ef5146..6d2215c379 100644 --- a/editor/import/resource_importer_layered_texture.cpp +++ b/editor/import/resource_importer_layered_texture.cpp @@ -391,8 +391,8 @@ Error ResourceImporterLayeredTexture::import(const String &p_source_file, const bool ok_on_pc = false; bool is_hdr = (image->get_format() >= Image::FORMAT_RF && image->get_format() <= Image::FORMAT_RGBE9995); bool is_ldr = (image->get_format() >= Image::FORMAT_L8 && image->get_format() <= Image::FORMAT_RGB565); - bool can_bptc = ProjectSettings::get_singleton()->get("rendering/vram_compression/import_bptc"); - bool can_s3tc = ProjectSettings::get_singleton()->get("rendering/vram_compression/import_s3tc"); + bool can_bptc = ProjectSettings::get_singleton()->get("rendering/textures/vram_compression/import_bptc"); + bool can_s3tc = ProjectSettings::get_singleton()->get("rendering/textures/vram_compression/import_s3tc"); if (can_bptc) { formats_imported.push_back("bptc"); //needs to be aded anyway @@ -447,13 +447,13 @@ Error ResourceImporterLayeredTexture::import(const String &p_source_file, const ok_on_pc = true; } - if (ProjectSettings::get_singleton()->get("rendering/vram_compression/import_etc2")) { + if (ProjectSettings::get_singleton()->get("rendering/textures/vram_compression/import_etc2")) { _save_tex(slices, p_save_path + ".etc2." + extension, compress_mode, lossy, Image::COMPRESS_ETC2, csource, used_channels, mipmaps, true); r_platform_variants->push_back("etc2"); formats_imported.push_back("etc2"); } - if (ProjectSettings::get_singleton()->get("rendering/vram_compression/import_pvrtc")) { + if (ProjectSettings::get_singleton()->get("rendering/textures/vram_compression/import_pvrtc")) { _save_tex(slices, p_save_path + ".etc2." + extension, compress_mode, lossy, Image::COMPRESS_ETC2, csource, used_channels, mipmaps, true); r_platform_variants->push_back("pvrtc"); formats_imported.push_back("pvrtc"); @@ -492,7 +492,7 @@ String ResourceImporterLayeredTexture::get_import_settings_string() const { int index = 0; while (compression_formats[index]) { - String setting_path = "rendering/vram_compression/import_" + String(compression_formats[index]); + String setting_path = "rendering/textures/vram_compression/import_" + String(compression_formats[index]); bool test = ProjectSettings::get_singleton()->get(setting_path); if (test) { s += String(compression_formats[index]); @@ -524,7 +524,7 @@ bool ResourceImporterLayeredTexture::are_import_settings_valid(const String &p_p int index = 0; bool valid = true; while (compression_formats[index]) { - String setting_path = "rendering/vram_compression/import_" + String(compression_formats[index]); + String setting_path = "rendering/textures/vram_compression/import_" + String(compression_formats[index]); bool test = ProjectSettings::get_singleton()->get(setting_path); if (test) { if (formats_imported.find(compression_formats[index]) == -1) { diff --git a/editor/import/resource_importer_texture.cpp b/editor/import/resource_importer_texture.cpp index eb16e873e6..de8031af35 100644 --- a/editor/import/resource_importer_texture.cpp +++ b/editor/import/resource_importer_texture.cpp @@ -172,7 +172,7 @@ bool ResourceImporterTexture::get_option_visibility(const String &p_option, cons if (compress_mode < COMPRESS_VRAM_COMPRESSED) { return false; } - if (!ProjectSettings::get_singleton()->get("rendering/vram_compression/import_bptc")) { + if (!ProjectSettings::get_singleton()->get("rendering/textures/vram_compression/import_bptc")) { return false; } } @@ -473,8 +473,8 @@ Error ResourceImporterTexture::import(const String &p_source_file, const String bool ok_on_pc = false; bool is_hdr = (image->get_format() >= Image::FORMAT_RF && image->get_format() <= Image::FORMAT_RGBE9995); bool is_ldr = (image->get_format() >= Image::FORMAT_L8 && image->get_format() <= Image::FORMAT_RGB565); - bool can_bptc = ProjectSettings::get_singleton()->get("rendering/vram_compression/import_bptc"); - bool can_s3tc = ProjectSettings::get_singleton()->get("rendering/vram_compression/import_s3tc"); + bool can_bptc = ProjectSettings::get_singleton()->get("rendering/textures/vram_compression/import_bptc"); + bool can_s3tc = ProjectSettings::get_singleton()->get("rendering/textures/vram_compression/import_s3tc"); if (can_bptc) { //add to the list anyway @@ -524,19 +524,19 @@ Error ResourceImporterTexture::import(const String &p_source_file, const String ok_on_pc = true; } - if (ProjectSettings::get_singleton()->get("rendering/vram_compression/import_etc2")) { + if (ProjectSettings::get_singleton()->get("rendering/textures/vram_compression/import_etc2")) { _save_stex(image, p_save_path + ".etc2.stex", compress_mode, lossy, Image::COMPRESS_ETC2, mipmaps, stream, detect_3d, detect_roughness, detect_normal, force_normal, srgb_friendly_pack, true, mipmap_limit, normal_image, roughness_channel); r_platform_variants->push_back("etc2"); formats_imported.push_back("etc2"); } - if (ProjectSettings::get_singleton()->get("rendering/vram_compression/import_etc")) { + if (ProjectSettings::get_singleton()->get("rendering/textures/vram_compression/import_etc")) { _save_stex(image, p_save_path + ".etc.stex", compress_mode, lossy, Image::COMPRESS_ETC, mipmaps, stream, detect_3d, detect_roughness, detect_normal, force_normal, srgb_friendly_pack, true, mipmap_limit, normal_image, roughness_channel); r_platform_variants->push_back("etc"); formats_imported.push_back("etc"); } - if (ProjectSettings::get_singleton()->get("rendering/vram_compression/import_pvrtc")) { + if (ProjectSettings::get_singleton()->get("rendering/textures/vram_compression/import_pvrtc")) { _save_stex(image, p_save_path + ".pvrtc.stex", compress_mode, lossy, Image::COMPRESS_PVRTC1_4, mipmaps, stream, detect_3d, detect_roughness, detect_normal, force_normal, srgb_friendly_pack, true, mipmap_limit, normal_image, roughness_channel); r_platform_variants->push_back("pvrtc"); formats_imported.push_back("pvrtc"); @@ -574,7 +574,7 @@ String ResourceImporterTexture::get_import_settings_string() const { int index = 0; while (compression_formats[index]) { - String setting_path = "rendering/vram_compression/import_" + String(compression_formats[index]); + String setting_path = "rendering/textures/vram_compression/import_" + String(compression_formats[index]); bool test = ProjectSettings::get_singleton()->get(setting_path); if (test) { s += String(compression_formats[index]); @@ -606,7 +606,7 @@ bool ResourceImporterTexture::are_import_settings_valid(const String &p_path) co int index = 0; bool valid = true; while (compression_formats[index]) { - String setting_path = "rendering/vram_compression/import_" + String(compression_formats[index]); + String setting_path = "rendering/textures/vram_compression/import_" + String(compression_formats[index]); bool test = ProjectSettings::get_singleton()->get(setting_path); if (test) { if (formats_imported.find(compression_formats[index]) == -1) { diff --git a/editor/import/scene_importer_mesh.cpp b/editor/import/scene_importer_mesh.cpp index 78a7cd84f1..46eb4e4fdc 100644 --- a/editor/import/scene_importer_mesh.cpp +++ b/editor/import/scene_importer_mesh.cpp @@ -444,7 +444,7 @@ void EditorSceneImporterMesh::_bind_methods() { ClassDB::bind_method(D_METHOD("set_blend_shape_mode", "mode"), &EditorSceneImporterMesh::set_blend_shape_mode); ClassDB::bind_method(D_METHOD("get_blend_shape_mode"), &EditorSceneImporterMesh::get_blend_shape_mode); - ClassDB::bind_method(D_METHOD("add_surface", "primitive", "arrays", "blend_shapes", "lods", "material"), &EditorSceneImporterMesh::add_surface, DEFVAL(Array()), DEFVAL(Dictionary()), DEFVAL(Ref<Material>()), DEFVAL(String())); + ClassDB::bind_method(D_METHOD("add_surface", "primitive", "arrays", "blend_shapes", "lods", "material", "name"), &EditorSceneImporterMesh::add_surface, DEFVAL(Array()), DEFVAL(Dictionary()), DEFVAL(Ref<Material>()), DEFVAL(String())); ClassDB::bind_method(D_METHOD("get_surface_count"), &EditorSceneImporterMesh::get_surface_count); ClassDB::bind_method(D_METHOD("get_surface_primitive_type", "surface_idx"), &EditorSceneImporterMesh::get_surface_primitive_type); diff --git a/editor/localization_editor.cpp b/editor/localization_editor.cpp index 60553143d5..0e68af06f0 100644 --- a/editor/localization_editor.cpp +++ b/editor/localization_editor.cpp @@ -84,7 +84,7 @@ void LocalizationEditor::add_translation(const String &p_translation) { } void LocalizationEditor::_translation_add(const PackedStringArray &p_paths) { - PackedStringArray translations = ProjectSettings::get_singleton()->get("locale/translations"); + PackedStringArray translations = ProjectSettings::get_singleton()->get("internationalization/locale/translations"); for (int i = 0; i < p_paths.size(); i++) { if (!translations.has(p_paths[i])) { // Don't add duplicate translation paths. @@ -93,8 +93,8 @@ void LocalizationEditor::_translation_add(const PackedStringArray &p_paths) { } undo_redo->create_action(vformat(TTR("Add %d Translations"), p_paths.size())); - undo_redo->add_do_property(ProjectSettings::get_singleton(), "locale/translations", translations); - undo_redo->add_undo_property(ProjectSettings::get_singleton(), "locale/translations", ProjectSettings::get_singleton()->get("locale/translations")); + undo_redo->add_do_property(ProjectSettings::get_singleton(), "internationalization/locale/translations", translations); + undo_redo->add_undo_property(ProjectSettings::get_singleton(), "internationalization/locale/translations", ProjectSettings::get_singleton()->get("internationalization/locale/translations")); undo_redo->add_do_method(this, "update_translations"); undo_redo->add_undo_method(this, "update_translations"); undo_redo->add_do_method(this, "emit_signal", localization_changed); @@ -112,15 +112,15 @@ void LocalizationEditor::_translation_delete(Object *p_item, int p_column, int p int idx = ti->get_metadata(0); - PackedStringArray translations = ProjectSettings::get_singleton()->get("locale/translations"); + PackedStringArray translations = ProjectSettings::get_singleton()->get("internationalization/locale/translations"); ERR_FAIL_INDEX(idx, translations.size()); translations.remove(idx); undo_redo->create_action(TTR("Remove Translation")); - undo_redo->add_do_property(ProjectSettings::get_singleton(), "locale/translations", translations); - undo_redo->add_undo_property(ProjectSettings::get_singleton(), "locale/translations", ProjectSettings::get_singleton()->get("locale/translations")); + undo_redo->add_do_property(ProjectSettings::get_singleton(), "internationalization/locale/translations", translations); + undo_redo->add_undo_property(ProjectSettings::get_singleton(), "internationalization/locale/translations", ProjectSettings::get_singleton()->get("internationalization/locale/translations")); undo_redo->add_do_method(this, "update_translations"); undo_redo->add_undo_method(this, "update_translations"); undo_redo->add_do_method(this, "emit_signal", localization_changed); @@ -136,8 +136,8 @@ void LocalizationEditor::_translation_res_add(const PackedStringArray &p_paths) Variant prev; Dictionary remaps; - if (ProjectSettings::get_singleton()->has_setting("locale/translation_remaps")) { - remaps = ProjectSettings::get_singleton()->get("locale/translation_remaps"); + if (ProjectSettings::get_singleton()->has_setting("internationalization/locale/translation_remaps")) { + remaps = ProjectSettings::get_singleton()->get("internationalization/locale/translation_remaps"); prev = remaps; } @@ -149,8 +149,8 @@ void LocalizationEditor::_translation_res_add(const PackedStringArray &p_paths) } undo_redo->create_action(vformat(TTR("Translation Resource Remap: Add %d Path(s)"), p_paths.size())); - undo_redo->add_do_property(ProjectSettings::get_singleton(), "locale/translation_remaps", remaps); - undo_redo->add_undo_property(ProjectSettings::get_singleton(), "locale/translation_remaps", prev); + undo_redo->add_do_property(ProjectSettings::get_singleton(), "internationalization/locale/translation_remaps", remaps); + undo_redo->add_undo_property(ProjectSettings::get_singleton(), "internationalization/locale/translation_remaps", prev); undo_redo->add_do_method(this, "update_translations"); undo_redo->add_undo_method(this, "update_translations"); undo_redo->add_do_method(this, "emit_signal", localization_changed); @@ -163,9 +163,9 @@ void LocalizationEditor::_translation_res_option_file_open() { } void LocalizationEditor::_translation_res_option_add(const PackedStringArray &p_paths) { - ERR_FAIL_COND(!ProjectSettings::get_singleton()->has_setting("locale/translation_remaps")); + ERR_FAIL_COND(!ProjectSettings::get_singleton()->has_setting("internationalization/locale/translation_remaps")); - Dictionary remaps = ProjectSettings::get_singleton()->get("locale/translation_remaps"); + Dictionary remaps = ProjectSettings::get_singleton()->get("internationalization/locale/translation_remaps"); TreeItem *k = translation_remap->get_selected(); ERR_FAIL_COND(!k); @@ -180,8 +180,8 @@ void LocalizationEditor::_translation_res_option_add(const PackedStringArray &p_ remaps[key] = r; undo_redo->create_action(vformat(TTR("Translation Resource Remap: Add %d Remap(s)"), p_paths.size())); - undo_redo->add_do_property(ProjectSettings::get_singleton(), "locale/translation_remaps", remaps); - undo_redo->add_undo_property(ProjectSettings::get_singleton(), "locale/translation_remaps", ProjectSettings::get_singleton()->get("locale/translation_remaps")); + undo_redo->add_do_property(ProjectSettings::get_singleton(), "internationalization/locale/translation_remaps", remaps); + undo_redo->add_undo_property(ProjectSettings::get_singleton(), "internationalization/locale/translation_remaps", ProjectSettings::get_singleton()->get("internationalization/locale/translation_remaps")); undo_redo->add_do_method(this, "update_translations"); undo_redo->add_undo_method(this, "update_translations"); undo_redo->add_do_method(this, "emit_signal", localization_changed); @@ -202,11 +202,11 @@ void LocalizationEditor::_translation_res_option_changed() { return; } - if (!ProjectSettings::get_singleton()->has_setting("locale/translation_remaps")) { + if (!ProjectSettings::get_singleton()->has_setting("internationalization/locale/translation_remaps")) { return; } - Dictionary remaps = ProjectSettings::get_singleton()->get("locale/translation_remaps"); + Dictionary remaps = ProjectSettings::get_singleton()->get("internationalization/locale/translation_remaps"); TreeItem *k = translation_remap->get_selected(); ERR_FAIL_COND(!k); @@ -234,8 +234,8 @@ void LocalizationEditor::_translation_res_option_changed() { updating_translations = true; undo_redo->create_action(TTR("Change Resource Remap Language")); - undo_redo->add_do_property(ProjectSettings::get_singleton(), "locale/translation_remaps", remaps); - undo_redo->add_undo_property(ProjectSettings::get_singleton(), "locale/translation_remaps", ProjectSettings::get_singleton()->get("locale/translation_remaps")); + undo_redo->add_do_property(ProjectSettings::get_singleton(), "internationalization/locale/translation_remaps", remaps); + undo_redo->add_undo_property(ProjectSettings::get_singleton(), "internationalization/locale/translation_remaps", ProjectSettings::get_singleton()->get("internationalization/locale/translation_remaps")); undo_redo->add_do_method(this, "update_translations"); undo_redo->add_undo_method(this, "update_translations"); undo_redo->add_do_method(this, "emit_signal", localization_changed); @@ -249,11 +249,11 @@ void LocalizationEditor::_translation_res_delete(Object *p_item, int p_column, i return; } - if (!ProjectSettings::get_singleton()->has_setting("locale/translation_remaps")) { + if (!ProjectSettings::get_singleton()->has_setting("internationalization/locale/translation_remaps")) { return; } - Dictionary remaps = ProjectSettings::get_singleton()->get("locale/translation_remaps"); + Dictionary remaps = ProjectSettings::get_singleton()->get("internationalization/locale/translation_remaps"); TreeItem *k = Object::cast_to<TreeItem>(p_item); @@ -263,8 +263,8 @@ void LocalizationEditor::_translation_res_delete(Object *p_item, int p_column, i remaps.erase(key); undo_redo->create_action(TTR("Remove Resource Remap")); - undo_redo->add_do_property(ProjectSettings::get_singleton(), "locale/translation_remaps", remaps); - undo_redo->add_undo_property(ProjectSettings::get_singleton(), "locale/translation_remaps", ProjectSettings::get_singleton()->get("locale/translation_remaps")); + undo_redo->add_do_property(ProjectSettings::get_singleton(), "internationalization/locale/translation_remaps", remaps); + undo_redo->add_undo_property(ProjectSettings::get_singleton(), "internationalization/locale/translation_remaps", ProjectSettings::get_singleton()->get("internationalization/locale/translation_remaps")); undo_redo->add_do_method(this, "update_translations"); undo_redo->add_undo_method(this, "update_translations"); undo_redo->add_do_method(this, "emit_signal", localization_changed); @@ -277,11 +277,11 @@ void LocalizationEditor::_translation_res_option_delete(Object *p_item, int p_co return; } - if (!ProjectSettings::get_singleton()->has_setting("locale/translation_remaps")) { + if (!ProjectSettings::get_singleton()->has_setting("internationalization/locale/translation_remaps")) { return; } - Dictionary remaps = ProjectSettings::get_singleton()->get("locale/translation_remaps"); + Dictionary remaps = ProjectSettings::get_singleton()->get("internationalization/locale/translation_remaps"); TreeItem *k = translation_remap->get_selected(); ERR_FAIL_COND(!k); @@ -298,8 +298,8 @@ void LocalizationEditor::_translation_res_option_delete(Object *p_item, int p_co remaps[key] = r; undo_redo->create_action(TTR("Remove Resource Remap Option")); - undo_redo->add_do_property(ProjectSettings::get_singleton(), "locale/translation_remaps", remaps); - undo_redo->add_undo_property(ProjectSettings::get_singleton(), "locale/translation_remaps", ProjectSettings::get_singleton()->get("locale/translation_remaps")); + undo_redo->add_do_property(ProjectSettings::get_singleton(), "internationalization/locale/translation_remaps", remaps); + undo_redo->add_undo_property(ProjectSettings::get_singleton(), "internationalization/locale/translation_remaps", ProjectSettings::get_singleton()->get("internationalization/locale/translation_remaps")); undo_redo->add_do_method(this, "update_translations"); undo_redo->add_undo_method(this, "update_translations"); undo_redo->add_do_method(this, "emit_signal", localization_changed); @@ -316,8 +316,8 @@ void LocalizationEditor::_translation_filter_option_changed() { Variant prev; Array f_locales_all; - if (ProjectSettings::get_singleton()->has_setting("locale/locale_filter")) { - f_locales_all = ProjectSettings::get_singleton()->get("locale/locale_filter"); + if (ProjectSettings::get_singleton()->has_setting("internationalization/locale/locale_filter")) { + f_locales_all = ProjectSettings::get_singleton()->get("internationalization/locale/locale_filter"); prev = f_locales_all; if (f_locales_all.size() != 2) { @@ -346,8 +346,8 @@ void LocalizationEditor::_translation_filter_option_changed() { f_locales.sort(); undo_redo->create_action(TTR("Changed Locale Filter")); - undo_redo->add_do_property(ProjectSettings::get_singleton(), "locale/locale_filter", f_locales_all); - undo_redo->add_undo_property(ProjectSettings::get_singleton(), "locale/locale_filter", prev); + undo_redo->add_do_property(ProjectSettings::get_singleton(), "internationalization/locale/locale_filter", f_locales_all); + undo_redo->add_undo_property(ProjectSettings::get_singleton(), "internationalization/locale/locale_filter", prev); undo_redo->add_do_method(this, "update_translations"); undo_redo->add_undo_method(this, "update_translations"); undo_redo->add_do_method(this, "emit_signal", localization_changed); @@ -361,8 +361,8 @@ void LocalizationEditor::_translation_filter_mode_changed(int p_mode) { Variant prev; Array f_locales_all; - if (ProjectSettings::get_singleton()->has_setting("locale/locale_filter")) { - f_locales_all = ProjectSettings::get_singleton()->get("locale/locale_filter"); + if (ProjectSettings::get_singleton()->has_setting("internationalization/locale/locale_filter")) { + f_locales_all = ProjectSettings::get_singleton()->get("internationalization/locale/locale_filter"); prev = f_locales_all; if (f_locales_all.size() != 2) { @@ -378,8 +378,8 @@ void LocalizationEditor::_translation_filter_mode_changed(int p_mode) { } undo_redo->create_action(TTR("Changed Locale Filter Mode")); - undo_redo->add_do_property(ProjectSettings::get_singleton(), "locale/locale_filter", f_locales_all); - undo_redo->add_undo_property(ProjectSettings::get_singleton(), "locale/locale_filter", prev); + undo_redo->add_do_property(ProjectSettings::get_singleton(), "internationalization/locale/locale_filter", f_locales_all); + undo_redo->add_undo_property(ProjectSettings::get_singleton(), "internationalization/locale/locale_filter", prev); undo_redo->add_do_method(this, "update_translations"); undo_redo->add_undo_method(this, "update_translations"); undo_redo->add_do_method(this, "emit_signal", localization_changed); @@ -388,7 +388,7 @@ void LocalizationEditor::_translation_filter_mode_changed(int p_mode) { } void LocalizationEditor::_pot_add(const PackedStringArray &p_paths) { - PackedStringArray pot_translations = ProjectSettings::get_singleton()->get("locale/translations_pot_files"); + PackedStringArray pot_translations = ProjectSettings::get_singleton()->get("internationalization/locale/translations_pot_files"); for (int i = 0; i < p_paths.size(); i++) { for (int j = 0; j < pot_translations.size(); j++) { @@ -401,8 +401,8 @@ void LocalizationEditor::_pot_add(const PackedStringArray &p_paths) { } undo_redo->create_action(vformat(TTR("Add %d file(s) for POT generation"), p_paths.size())); - undo_redo->add_do_property(ProjectSettings::get_singleton(), "locale/translations_pot_files", pot_translations); - undo_redo->add_undo_property(ProjectSettings::get_singleton(), "locale/translations_pot_files", ProjectSettings::get_singleton()->get("locale/translations_pot_files")); + undo_redo->add_do_property(ProjectSettings::get_singleton(), "internationalization/locale/translations_pot_files", pot_translations); + undo_redo->add_undo_property(ProjectSettings::get_singleton(), "internationalization/locale/translations_pot_files", ProjectSettings::get_singleton()->get("internationalization/locale/translations_pot_files")); undo_redo->add_do_method(this, "update_translations"); undo_redo->add_undo_method(this, "update_translations"); undo_redo->add_do_method(this, "emit_signal", localization_changed); @@ -416,15 +416,15 @@ void LocalizationEditor::_pot_delete(Object *p_item, int p_column, int p_button) int idx = ti->get_metadata(0); - PackedStringArray pot_translations = ProjectSettings::get_singleton()->get("locale/translations_pot_files"); + PackedStringArray pot_translations = ProjectSettings::get_singleton()->get("internationalization/locale/translations_pot_files"); ERR_FAIL_INDEX(idx, pot_translations.size()); pot_translations.remove(idx); undo_redo->create_action(TTR("Remove file from POT generation")); - undo_redo->add_do_property(ProjectSettings::get_singleton(), "locale/translations_pot_files", pot_translations); - undo_redo->add_undo_property(ProjectSettings::get_singleton(), "locale/translations_pot_files", ProjectSettings::get_singleton()->get("locale/translations_pot_files")); + undo_redo->add_do_property(ProjectSettings::get_singleton(), "internationalization/locale/translations_pot_files", pot_translations); + undo_redo->add_undo_property(ProjectSettings::get_singleton(), "internationalization/locale/translations_pot_files", ProjectSettings::get_singleton()->get("internationalization/locale/translations_pot_files")); undo_redo->add_do_method(this, "update_translations"); undo_redo->add_undo_method(this, "update_translations"); undo_redo->add_do_method(this, "emit_signal", localization_changed); @@ -463,8 +463,8 @@ void LocalizationEditor::update_translations() { translation_list->clear(); TreeItem *root = translation_list->create_item(nullptr); translation_list->set_hide_root(true); - if (ProjectSettings::get_singleton()->has_setting("locale/translations")) { - PackedStringArray translations = ProjectSettings::get_singleton()->get("locale/translations"); + if (ProjectSettings::get_singleton()->has_setting("internationalization/locale/translations")) { + PackedStringArray translations = ProjectSettings::get_singleton()->get("internationalization/locale/translations"); for (int i = 0; i < translations.size(); i++) { TreeItem *t = translation_list->create_item(root); t->set_editable(0, false); @@ -482,8 +482,8 @@ void LocalizationEditor::update_translations() { Array l_filter_all; bool is_arr_empty = true; - if (ProjectSettings::get_singleton()->has_setting("locale/locale_filter")) { - l_filter_all = ProjectSettings::get_singleton()->get("locale/locale_filter"); + if (ProjectSettings::get_singleton()->has_setting("internationalization/locale/locale_filter")) { + l_filter_all = ProjectSettings::get_singleton()->get("internationalization/locale/locale_filter"); if (l_filter_all.size() == 2) { translation_locale_filter_mode->select(l_filter_all[0]); @@ -573,8 +573,8 @@ void LocalizationEditor::update_translations() { } } - if (ProjectSettings::get_singleton()->has_setting("locale/translation_remaps")) { - Dictionary remaps = ProjectSettings::get_singleton()->get("locale/translation_remaps"); + if (ProjectSettings::get_singleton()->has_setting("internationalization/locale/translation_remaps")) { + Dictionary remaps = ProjectSettings::get_singleton()->get("internationalization/locale/translation_remaps"); List<Variant> rk; remaps.get_key_list(&rk); Vector<String> keys; @@ -631,8 +631,8 @@ void LocalizationEditor::update_translations() { translation_pot_list->clear(); root = translation_pot_list->create_item(nullptr); translation_pot_list->set_hide_root(true); - if (ProjectSettings::get_singleton()->has_setting("locale/translations_pot_files")) { - PackedStringArray pot_translations = ProjectSettings::get_singleton()->get("locale/translations_pot_files"); + if (ProjectSettings::get_singleton()->has_setting("internationalization/locale/translations_pot_files")) { + PackedStringArray pot_translations = ProjectSettings::get_singleton()->get("internationalization/locale/translations_pot_files"); for (int i = 0; i < pot_translations.size(); i++) { TreeItem *t = translation_pot_list->create_item(root); t->set_editable(0, false); diff --git a/editor/node_3d_editor_gizmos.cpp b/editor/node_3d_editor_gizmos.cpp index bd825d0802..9e2fb01bb8 100644 --- a/editor/node_3d_editor_gizmos.cpp +++ b/editor/node_3d_editor_gizmos.cpp @@ -557,7 +557,7 @@ bool EditorNode3DGizmo::intersect_ray(Camera3D *p_camera, const Point2 &p_point, Transform t = spatial_node->get_global_transform(); Vector3 camera_position = p_camera->get_camera_transform().origin; if (camera_position.distance_squared_to(t.origin) > 0.01) { - t.set_look_at(t.origin, camera_position, Vector3(0, 1, 0)); + t.set_look_at(t.origin, camera_position); } float scale = t.origin.distance_to(p_camera->get_camera_transform().origin); @@ -574,7 +574,7 @@ bool EditorNode3DGizmo::intersect_ray(Camera3D *p_camera, const Point2 &p_point, if (orig_camera_transform.origin.distance_squared_to(t.origin) > 0.01 && ABS(orig_camera_transform.basis.get_axis(Vector3::AXIS_Z).dot(Vector3(0, 1, 0))) < 0.99) { - p_camera->look_at(t.origin, Vector3(0, 1, 0)); + p_camera->look_at(t.origin); } Vector3 c0 = t.xform(Vector3(selectable_icon_size, selectable_icon_size, 0) * scale); diff --git a/editor/plugins/animation_player_editor_plugin.cpp b/editor/plugins/animation_player_editor_plugin.cpp index cda88c00f3..7c623505b5 100644 --- a/editor/plugins/animation_player_editor_plugin.cpp +++ b/editor/plugins/animation_player_editor_plugin.cpp @@ -1397,7 +1397,7 @@ void AnimationPlayerEditor::_prepare_onion_layers_2() { // Render every past/future step with the capture shader. RS::get_singleton()->canvas_item_set_material(onion.capture.canvas_item, onion.capture.material->get_rid()); - onion.capture.material->set_shader_param("bkg_color", GLOBAL_GET("rendering/environment/default_clear_color")); + onion.capture.material->set_shader_param("bkg_color", GLOBAL_GET("rendering/environment/defaults/default_clear_color")); onion.capture.material->set_shader_param("differences_only", onion.differences_only); onion.capture.material->set_shader_param("present", onion.differences_only ? RS::get_singleton()->viewport_get_texture(present_rid) : RID()); diff --git a/editor/plugins/asset_library_editor_plugin.cpp b/editor/plugins/asset_library_editor_plugin.cpp index d726cd031e..4d9c5625a3 100644 --- a/editor/plugins/asset_library_editor_plugin.cpp +++ b/editor/plugins/asset_library_editor_plugin.cpp @@ -350,7 +350,7 @@ void EditorAssetLibraryItemDownload::_http_download_completed(int p_status, int if (sha256 != download_sha256) { error_text = TTR("Bad download hash, assuming file has been tampered with.") + "\n"; error_text += TTR("Expected:") + " " + sha256 + "\n" + TTR("Got:") + " " + download_sha256; - status->set_text(TTR("Failed sha256 hash check")); + status->set_text(TTR("Failed SHA-256 hash check")); } } } break; @@ -359,6 +359,8 @@ void EditorAssetLibraryItemDownload::_http_download_completed(int p_status, int if (error_text != String()) { download_error->set_text(TTR("Asset Download Error:") + "\n" + error_text); download_error->popup_centered(); + // Let the user retry the download. + retry->show(); return; } @@ -459,6 +461,9 @@ void EditorAssetLibraryItemDownload::_install() { } void EditorAssetLibraryItemDownload::_make_request() { + // Hide the Retry button if we've just pressed it. + retry->hide(); + download->cancel_request(); download->set_download_file(EditorSettings::get_singleton()->get_cache_dir().plus_file("tmp_asset_" + itos(asset_id)) + ".zip"); @@ -516,6 +521,8 @@ EditorAssetLibraryItemDownload::EditorAssetLibraryItemDownload() { retry = memnew(Button); retry->set_text(TTR("Retry")); retry->connect("pressed", callable_mp(this, &EditorAssetLibraryItemDownload::_make_request)); + // Only show the Retry button in case of a failure. + retry->hide(); hb2->add_child(retry); hb2->add_child(install); diff --git a/editor/plugins/editor_preview_plugins.cpp b/editor/plugins/editor_preview_plugins.cpp index 63bb785c5e..eb3c06fba1 100644 --- a/editor/plugins/editor_preview_plugins.cpp +++ b/editor/plugins/editor_preview_plugins.cpp @@ -301,7 +301,7 @@ EditorPackedScenePreviewPlugin::EditorPackedScenePreviewPlugin() { ////////////////////////////////////////////////////////////////// void EditorMaterialPreviewPlugin::_preview_done(const Variant &p_udata) { - preview_done = true; + preview_done.set(); } void EditorMaterialPreviewPlugin::_bind_methods() { @@ -325,10 +325,10 @@ Ref<Texture2D> EditorMaterialPreviewPlugin::generate(const RES &p_from, const Si RS::get_singleton()->viewport_set_update_mode(viewport, RS::VIEWPORT_UPDATE_ONCE); //once used for capture - preview_done = false; + preview_done.clear(); RS::get_singleton()->request_frame_drawn_callback(const_cast<EditorMaterialPreviewPlugin *>(this), "_preview_done", Variant()); - while (!preview_done) { + while (!preview_done.is_set()) { OS::get_singleton()->delay_usec(10); } @@ -677,7 +677,7 @@ EditorAudioStreamPreviewPlugin::EditorAudioStreamPreviewPlugin() { /////////////////////////////////////////////////////////////////////////// void EditorMeshPreviewPlugin::_preview_done(const Variant &p_udata) { - preview_done = true; + preview_done.set(); } void EditorMeshPreviewPlugin::_bind_methods() { @@ -714,10 +714,10 @@ Ref<Texture2D> EditorMeshPreviewPlugin::generate(const RES &p_from, const Size2 RS::get_singleton()->viewport_set_update_mode(viewport, RS::VIEWPORT_UPDATE_ONCE); //once used for capture - preview_done = false; + preview_done.clear(); RS::get_singleton()->request_frame_drawn_callback(const_cast<EditorMeshPreviewPlugin *>(this), "_preview_done", Variant()); - while (!preview_done) { + while (!preview_done.is_set()) { OS::get_singleton()->delay_usec(10); } @@ -792,7 +792,7 @@ EditorMeshPreviewPlugin::~EditorMeshPreviewPlugin() { /////////////////////////////////////////////////////////////////////////// void EditorFontPreviewPlugin::_preview_done(const Variant &p_udata) { - preview_done = true; + preview_done.set(); } void EditorFontPreviewPlugin::_bind_methods() { @@ -883,11 +883,11 @@ Ref<Texture2D> EditorFontPreviewPlugin::generate_from_path(const String &p_path, font->draw_string(canvas_item, pos, sample, HALIGN_LEFT, -1.f, 50, Color(1, 1, 1)); - preview_done = false; + preview_done.clear(); RS::get_singleton()->viewport_set_update_mode(viewport, RS::VIEWPORT_UPDATE_ONCE); //once used for capture RS::get_singleton()->request_frame_drawn_callback(const_cast<EditorFontPreviewPlugin *>(this), "_preview_done", Variant()); - while (!preview_done) { + while (!preview_done.is_set()) { OS::get_singleton()->delay_usec(10); } diff --git a/editor/plugins/editor_preview_plugins.h b/editor/plugins/editor_preview_plugins.h index 57e2911c89..6e8b9a34cf 100644 --- a/editor/plugins/editor_preview_plugins.h +++ b/editor/plugins/editor_preview_plugins.h @@ -33,6 +33,8 @@ #include "editor/editor_resource_preview.h" +#include "core/templates/safe_refcount.h" + void post_process_preview(Ref<Image> p_image); class EditorTexturePreviewPlugin : public EditorResourcePreviewGenerator { @@ -90,7 +92,7 @@ class EditorMaterialPreviewPlugin : public EditorResourcePreviewGenerator { RID light2; RID light_instance2; RID camera; - mutable volatile bool preview_done = false; + mutable SafeFlag preview_done; void _preview_done(const Variant &p_udata); @@ -134,7 +136,7 @@ class EditorMeshPreviewPlugin : public EditorResourcePreviewGenerator { RID light2; RID light_instance2; RID camera; - mutable volatile bool preview_done = false; + mutable SafeFlag preview_done; void _preview_done(const Variant &p_udata); @@ -156,7 +158,7 @@ class EditorFontPreviewPlugin : public EditorResourcePreviewGenerator { RID viewport_texture; RID canvas; RID canvas_item; - mutable volatile bool preview_done = false; + mutable SafeFlag preview_done; void _preview_done(const Variant &p_udata); diff --git a/editor/plugins/node_3d_editor_plugin.cpp b/editor/plugins/node_3d_editor_plugin.cpp index c591e7f42d..610ef0c601 100644 --- a/editor/plugins/node_3d_editor_plugin.cpp +++ b/editor/plugins/node_3d_editor_plugin.cpp @@ -2337,12 +2337,12 @@ void Node3DEditorPlugin::edited_scene_changed() { void Node3DEditorViewport::_project_settings_changed() { //update shadow atlas if changed - int shadowmap_size = ProjectSettings::get_singleton()->get("rendering/quality/shadow_atlas/size"); - bool shadowmap_16_bits = ProjectSettings::get_singleton()->get("rendering/quality/shadow_atlas/16_bits"); - int atlas_q0 = ProjectSettings::get_singleton()->get("rendering/quality/shadow_atlas/quadrant_0_subdiv"); - int atlas_q1 = ProjectSettings::get_singleton()->get("rendering/quality/shadow_atlas/quadrant_1_subdiv"); - int atlas_q2 = ProjectSettings::get_singleton()->get("rendering/quality/shadow_atlas/quadrant_2_subdiv"); - int atlas_q3 = ProjectSettings::get_singleton()->get("rendering/quality/shadow_atlas/quadrant_3_subdiv"); + int shadowmap_size = ProjectSettings::get_singleton()->get("rendering/shadows/shadow_atlas/size"); + bool shadowmap_16_bits = ProjectSettings::get_singleton()->get("rendering/shadows/shadow_atlas/16_bits"); + int atlas_q0 = ProjectSettings::get_singleton()->get("rendering/shadows/shadow_atlas/quadrant_0_subdiv"); + int atlas_q1 = ProjectSettings::get_singleton()->get("rendering/shadows/shadow_atlas/quadrant_1_subdiv"); + int atlas_q2 = ProjectSettings::get_singleton()->get("rendering/shadows/shadow_atlas/quadrant_2_subdiv"); + int atlas_q3 = ProjectSettings::get_singleton()->get("rendering/shadows/shadow_atlas/quadrant_3_subdiv"); viewport->set_shadow_atlas_size(shadowmap_size); viewport->set_shadow_atlas_16_bits(shadowmap_16_bits); @@ -2359,11 +2359,11 @@ void Node3DEditorViewport::_project_settings_changed() { // Update MSAA, screen-space AA and debanding if changed - const int msaa_mode = ProjectSettings::get_singleton()->get("rendering/quality/screen_filters/msaa"); + const int msaa_mode = ProjectSettings::get_singleton()->get("rendering/anti_aliasing/quality/msaa"); viewport->set_msaa(Viewport::MSAA(msaa_mode)); - const int ssaa_mode = GLOBAL_GET("rendering/quality/screen_filters/screen_space_aa"); + const int ssaa_mode = GLOBAL_GET("rendering/anti_aliasing/quality/screen_space_aa"); viewport->set_screen_space_aa(Viewport::ScreenSpaceAA(ssaa_mode)); - const bool use_debanding = GLOBAL_GET("rendering/quality/screen_filters/use_debanding"); + const bool use_debanding = GLOBAL_GET("rendering/anti_aliasing/quality/use_debanding"); viewport->set_use_debanding(use_debanding); } diff --git a/editor/plugins/script_text_editor.cpp b/editor/plugins/script_text_editor.cpp index 71b18497b0..b6df66b8af 100644 --- a/editor/plugins/script_text_editor.cpp +++ b/editor/plugins/script_text_editor.cpp @@ -1066,7 +1066,7 @@ void ScriptTextEditor::_edit_option(int p_op) { return; } - tx->indent_left(); + tx->indent_selected_lines_left(); } break; case EDIT_INDENT_RIGHT: { Ref<Script> scr = script; @@ -1074,7 +1074,7 @@ void ScriptTextEditor::_edit_option(int p_op) { return; } - tx->indent_right(); + tx->indent_selected_lines_right(); } break; case EDIT_DELETE_LINE: { code_editor->delete_lines(); @@ -1632,16 +1632,16 @@ void ScriptTextEditor::_color_changed(const Color &p_color) { void ScriptTextEditor::_make_context_menu(bool p_selection, bool p_color, bool p_foldable, bool p_open_docs, bool p_goto_definition, Vector2 p_pos) { context_menu->clear(); - context_menu->add_shortcut(ED_GET_SHORTCUT("script_text_editor/undo"), EDIT_UNDO); - context_menu->add_shortcut(ED_GET_SHORTCUT("script_text_editor/redo"), EDIT_REDO); + context_menu->add_shortcut(ED_GET_SHORTCUT("ui_undo"), EDIT_UNDO); + context_menu->add_shortcut(ED_GET_SHORTCUT("ui_redo"), EDIT_REDO); context_menu->add_separator(); - context_menu->add_shortcut(ED_GET_SHORTCUT("script_text_editor/cut"), EDIT_CUT); - context_menu->add_shortcut(ED_GET_SHORTCUT("script_text_editor/copy"), EDIT_COPY); - context_menu->add_shortcut(ED_GET_SHORTCUT("script_text_editor/paste"), EDIT_PASTE); + context_menu->add_shortcut(ED_GET_SHORTCUT("ui_cut"), EDIT_CUT); + context_menu->add_shortcut(ED_GET_SHORTCUT("ui_copy"), EDIT_COPY); + context_menu->add_shortcut(ED_GET_SHORTCUT("ui_paste"), EDIT_PASTE); context_menu->add_separator(); - context_menu->add_shortcut(ED_GET_SHORTCUT("script_text_editor/select_all"), EDIT_SELECT_ALL); + context_menu->add_shortcut(ED_GET_SHORTCUT("ui_text_select_all"), EDIT_SELECT_ALL); context_menu->add_separator(); context_menu->add_shortcut(ED_GET_SHORTCUT("script_text_editor/indent_left"), EDIT_INDENT_LEFT); @@ -1743,14 +1743,14 @@ void ScriptTextEditor::_enable_code_editor() { search_menu->get_popup()->connect("id_pressed", callable_mp(this, &ScriptTextEditor::_edit_option)); edit_hb->add_child(edit_menu); - edit_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("script_text_editor/undo"), EDIT_UNDO); - edit_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("script_text_editor/redo"), EDIT_REDO); + edit_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("ui_undo"), EDIT_UNDO); + edit_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("ui_redo"), EDIT_REDO); edit_menu->get_popup()->add_separator(); - edit_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("script_text_editor/cut"), EDIT_CUT); - edit_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("script_text_editor/copy"), EDIT_COPY); - edit_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("script_text_editor/paste"), EDIT_PASTE); + edit_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("ui_cut"), EDIT_CUT); + edit_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("ui_copy"), EDIT_COPY); + edit_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("ui_paste"), EDIT_PASTE); edit_menu->get_popup()->add_separator(); - edit_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("script_text_editor/select_all"), EDIT_SELECT_ALL); + edit_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("ui_text_select_all"), EDIT_SELECT_ALL); edit_menu->get_popup()->add_separator(); edit_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("script_text_editor/move_up"), EDIT_MOVE_LINE_UP); edit_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("script_text_editor/move_down"), EDIT_MOVE_LINE_DOWN); @@ -1763,7 +1763,7 @@ void ScriptTextEditor::_enable_code_editor() { edit_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("script_text_editor/unfold_all_lines"), EDIT_UNFOLD_ALL_LINES); edit_menu->get_popup()->add_separator(); edit_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("script_text_editor/clone_down"), EDIT_CLONE_DOWN); - edit_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("script_text_editor/complete_symbol"), EDIT_COMPLETE); + edit_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("ui_text_completion_query"), EDIT_COMPLETE); edit_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("script_text_editor/evaluate_selection"), EDIT_EVALUATE); edit_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("script_text_editor/trim_trailing_whitespace"), EDIT_TRIM_TRAILING_WHITESAPCE); edit_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("script_text_editor/convert_indent_to_spaces"), EDIT_CONVERT_INDENT_TO_SPACES); @@ -1915,12 +1915,6 @@ static ScriptEditorBase *create_editor(const RES &p_resource) { } void ScriptTextEditor::register_editor() { - ED_SHORTCUT("script_text_editor/undo", TTR("Undo"), KEY_MASK_CMD | KEY_Z); - ED_SHORTCUT("script_text_editor/redo", TTR("Redo"), KEY_MASK_CMD | KEY_Y); - ED_SHORTCUT("script_text_editor/cut", TTR("Cut"), KEY_MASK_CMD | KEY_X); - ED_SHORTCUT("script_text_editor/copy", TTR("Copy"), KEY_MASK_CMD | KEY_C); - ED_SHORTCUT("script_text_editor/paste", TTR("Paste"), KEY_MASK_CMD | KEY_V); - ED_SHORTCUT("script_text_editor/select_all", TTR("Select All"), KEY_MASK_CMD | KEY_A); ED_SHORTCUT("script_text_editor/move_up", TTR("Move Up"), KEY_MASK_ALT | KEY_UP); ED_SHORTCUT("script_text_editor/move_down", TTR("Move Down"), KEY_MASK_ALT | KEY_DOWN); ED_SHORTCUT("script_text_editor/delete_line", TTR("Delete Line"), KEY_MASK_CMD | KEY_MASK_SHIFT | KEY_K); @@ -1936,10 +1930,8 @@ void ScriptTextEditor::register_editor() { ED_SHORTCUT("script_text_editor/unfold_all_lines", TTR("Unfold All Lines"), 0); #ifdef OSX_ENABLED ED_SHORTCUT("script_text_editor/clone_down", TTR("Clone Down"), KEY_MASK_SHIFT | KEY_MASK_CMD | KEY_C); - ED_SHORTCUT("script_text_editor/complete_symbol", TTR("Complete Symbol"), KEY_MASK_CTRL | KEY_SPACE); #else ED_SHORTCUT("script_text_editor/clone_down", TTR("Clone Down"), KEY_MASK_CMD | KEY_D); - ED_SHORTCUT("script_text_editor/complete_symbol", TTR("Complete Symbol"), KEY_MASK_CMD | KEY_SPACE); #endif ED_SHORTCUT("script_text_editor/evaluate_selection", TTR("Evaluate Selection"), KEY_MASK_CMD | KEY_MASK_SHIFT | KEY_E); ED_SHORTCUT("script_text_editor/trim_trailing_whitespace", TTR("Trim Trailing Whitespace"), KEY_MASK_CMD | KEY_MASK_ALT | KEY_T); diff --git a/editor/plugins/shader_editor_plugin.cpp b/editor/plugins/shader_editor_plugin.cpp index 8be82628cb..c8a46715ad 100644 --- a/editor/plugins/shader_editor_plugin.cpp +++ b/editor/plugins/shader_editor_plugin.cpp @@ -282,7 +282,7 @@ void ShaderEditor::_menu_option(int p_option) { } CodeEdit *tx = shader_editor->get_text_editor(); - tx->indent_left(); + tx->indent_selected_lines_left(); } break; case EDIT_INDENT_RIGHT: { @@ -291,7 +291,7 @@ void ShaderEditor::_menu_option(int p_option) { } CodeEdit *tx = shader_editor->get_text_editor(); - tx->indent_right(); + tx->indent_selected_lines_right(); } break; case EDIT_DELETE_LINE: { @@ -533,15 +533,15 @@ void ShaderEditor::_bookmark_item_pressed(int p_idx) { void ShaderEditor::_make_context_menu(bool p_selection, Vector2 p_position) { context_menu->clear(); if (p_selection) { - context_menu->add_shortcut(ED_GET_SHORTCUT("script_text_editor/cut"), EDIT_CUT); - context_menu->add_shortcut(ED_GET_SHORTCUT("script_text_editor/copy"), EDIT_COPY); + context_menu->add_shortcut(ED_GET_SHORTCUT("ui_cut"), EDIT_CUT); + context_menu->add_shortcut(ED_GET_SHORTCUT("ui_copy"), EDIT_COPY); } - context_menu->add_shortcut(ED_GET_SHORTCUT("script_text_editor/paste"), EDIT_PASTE); + context_menu->add_shortcut(ED_GET_SHORTCUT("ui_paste"), EDIT_PASTE); context_menu->add_separator(); - context_menu->add_shortcut(ED_GET_SHORTCUT("script_text_editor/select_all"), EDIT_SELECT_ALL); - context_menu->add_shortcut(ED_GET_SHORTCUT("script_text_editor/undo"), EDIT_UNDO); - context_menu->add_shortcut(ED_GET_SHORTCUT("script_text_editor/redo"), EDIT_REDO); + context_menu->add_shortcut(ED_GET_SHORTCUT("ui_text_select_all"), EDIT_SELECT_ALL); + context_menu->add_shortcut(ED_GET_SHORTCUT("ui_undo"), EDIT_UNDO); + context_menu->add_shortcut(ED_GET_SHORTCUT("ui_redo"), EDIT_REDO); context_menu->add_separator(); context_menu->add_shortcut(ED_GET_SHORTCUT("script_text_editor/indent_left"), EDIT_INDENT_LEFT); @@ -585,14 +585,14 @@ ShaderEditor::ShaderEditor(EditorNode *p_node) { edit_menu->set_text(TTR("Edit")); edit_menu->set_switch_on_hover(true); - edit_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("script_text_editor/undo"), EDIT_UNDO); - edit_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("script_text_editor/redo"), EDIT_REDO); + edit_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("ui_undo"), EDIT_UNDO); + edit_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("ui_redo"), EDIT_REDO); edit_menu->get_popup()->add_separator(); - edit_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("script_text_editor/cut"), EDIT_CUT); - edit_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("script_text_editor/copy"), EDIT_COPY); - edit_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("script_text_editor/paste"), EDIT_PASTE); + edit_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("ui_cut"), EDIT_CUT); + edit_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("ui_copy"), EDIT_COPY); + edit_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("ui_paste"), EDIT_PASTE); edit_menu->get_popup()->add_separator(); - edit_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("script_text_editor/select_all"), EDIT_SELECT_ALL); + edit_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("ui_text_select_all"), EDIT_SELECT_ALL); edit_menu->get_popup()->add_separator(); edit_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("script_text_editor/move_up"), EDIT_MOVE_LINE_UP); edit_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("script_text_editor/move_down"), EDIT_MOVE_LINE_DOWN); @@ -602,7 +602,7 @@ ShaderEditor::ShaderEditor(EditorNode *p_node) { edit_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("script_text_editor/toggle_comment"), EDIT_TOGGLE_COMMENT); edit_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("script_text_editor/clone_down"), EDIT_CLONE_DOWN); edit_menu->get_popup()->add_separator(); - edit_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("script_text_editor/complete_symbol"), EDIT_COMPLETE); + edit_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("ui_text_completion_query"), EDIT_COMPLETE); edit_menu->get_popup()->connect("id_pressed", callable_mp(this, &ShaderEditor::_menu_option)); search_menu = memnew(MenuButton); diff --git a/editor/plugins/skeleton_3d_editor_plugin.cpp b/editor/plugins/skeleton_3d_editor_plugin.cpp index e160e6ca0d..121ccfa417 100644 --- a/editor/plugins/skeleton_3d_editor_plugin.cpp +++ b/editor/plugins/skeleton_3d_editor_plugin.cpp @@ -388,7 +388,7 @@ PhysicalBone3D *Skeleton3DEditor::create_physical_bone(int bone_id, int bone_chi bone_shape->set_transform(capsule_transform); Transform body_transform; - body_transform.set_look_at(Vector3(0, 0, 0), child_rest.origin, Vector3(0, 1, 0)); + body_transform.set_look_at(Vector3(0, 0, 0), child_rest.origin); body_transform.origin = body_transform.basis.xform(Vector3(0, 0, -half_height)); Transform joint_transform; diff --git a/editor/plugins/text_editor.cpp b/editor/plugins/text_editor.cpp index d45011c8aa..b88f1c91e6 100644 --- a/editor/plugins/text_editor.cpp +++ b/editor/plugins/text_editor.cpp @@ -363,10 +363,10 @@ void TextEditor::_edit_option(int p_op) { code_editor->move_lines_down(); } break; case EDIT_INDENT_LEFT: { - tx->indent_left(); + tx->indent_selected_lines_left(); } break; case EDIT_INDENT_RIGHT: { - tx->indent_right(); + tx->indent_selected_lines_right(); } break; case EDIT_DELETE_LINE: { code_editor->delete_lines(); @@ -514,15 +514,15 @@ void TextEditor::_text_edit_gui_input(const Ref<InputEvent> &ev) { void TextEditor::_make_context_menu(bool p_selection, bool p_can_fold, bool p_is_folded, Vector2 p_position) { context_menu->clear(); if (p_selection) { - context_menu->add_shortcut(ED_GET_SHORTCUT("script_text_editor/cut"), EDIT_CUT); - context_menu->add_shortcut(ED_GET_SHORTCUT("script_text_editor/copy"), EDIT_COPY); + context_menu->add_shortcut(ED_GET_SHORTCUT("ui_cut"), EDIT_CUT); + context_menu->add_shortcut(ED_GET_SHORTCUT("ui_copy"), EDIT_COPY); } - context_menu->add_shortcut(ED_GET_SHORTCUT("script_text_editor/paste"), EDIT_PASTE); + context_menu->add_shortcut(ED_GET_SHORTCUT("ui_paste"), EDIT_PASTE); context_menu->add_separator(); - context_menu->add_shortcut(ED_GET_SHORTCUT("script_text_editor/select_all"), EDIT_SELECT_ALL); - context_menu->add_shortcut(ED_GET_SHORTCUT("script_text_editor/undo"), EDIT_UNDO); - context_menu->add_shortcut(ED_GET_SHORTCUT("script_text_editor/redo"), EDIT_REDO); + context_menu->add_shortcut(ED_GET_SHORTCUT("ui_text_select_all"), EDIT_SELECT_ALL); + context_menu->add_shortcut(ED_GET_SHORTCUT("ui_undo"), EDIT_UNDO); + context_menu->add_shortcut(ED_GET_SHORTCUT("ui_redo"), EDIT_REDO); context_menu->add_separator(); context_menu->add_shortcut(ED_GET_SHORTCUT("script_text_editor/indent_left"), EDIT_INDENT_LEFT); context_menu->add_shortcut(ED_GET_SHORTCUT("script_text_editor/indent_right"), EDIT_INDENT_RIGHT); @@ -584,14 +584,14 @@ TextEditor::TextEditor() { edit_menu->set_switch_on_hover(true); edit_menu->get_popup()->connect("id_pressed", callable_mp(this, &TextEditor::_edit_option)); - edit_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("script_text_editor/undo"), EDIT_UNDO); - edit_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("script_text_editor/redo"), EDIT_REDO); + edit_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("ui_undo"), EDIT_UNDO); + edit_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("un_redo"), EDIT_REDO); edit_menu->get_popup()->add_separator(); - edit_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("script_text_editor/cut"), EDIT_CUT); - edit_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("script_text_editor/copy"), EDIT_COPY); - edit_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("script_text_editor/paste"), EDIT_PASTE); + edit_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("ui_cut"), EDIT_CUT); + edit_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("ui_copy"), EDIT_COPY); + edit_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("ui_paste"), EDIT_PASTE); edit_menu->get_popup()->add_separator(); - edit_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("script_text_editor/select_all"), EDIT_SELECT_ALL); + edit_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("ui_text_select_all"), EDIT_SELECT_ALL); edit_menu->get_popup()->add_separator(); edit_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("script_text_editor/move_up"), EDIT_MOVE_LINE_UP); edit_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("script_text_editor/move_down"), EDIT_MOVE_LINE_DOWN); diff --git a/editor/plugins/visual_shader_editor_plugin.cpp b/editor/plugins/visual_shader_editor_plugin.cpp index 5061067ded..a63e641c2b 100644 --- a/editor/plugins/visual_shader_editor_plugin.cpp +++ b/editor/plugins/visual_shader_editor_plugin.cpp @@ -1023,7 +1023,7 @@ void VisualShaderEditor::_update_options_menu() { Color unsupported_color = get_theme_color("error_color", "Editor"); Color supported_color = get_theme_color("warning_color", "Editor"); - static bool low_driver = ProjectSettings::get_singleton()->get("rendering/quality/driver/driver_name") == "GLES2"; + static bool low_driver = ProjectSettings::get_singleton()->get("rendering/driver/driver_name") == "GLES2"; Map<String, TreeItem *> folders; diff --git a/editor/pot_generator.cpp b/editor/pot_generator.cpp index 2d65c00a89..497cc0cbdc 100644 --- a/editor/pot_generator.cpp +++ b/editor/pot_generator.cpp @@ -55,7 +55,7 @@ void POTGenerator::_print_all_translation_strings() { #endif void POTGenerator::generate_pot(const String &p_file) { - if (!ProjectSettings::get_singleton()->has_setting("locale/translations_pot_files")) { + if (!ProjectSettings::get_singleton()->has_setting("internationalization/locale/translations_pot_files")) { WARN_PRINT("No files selected for POT generation."); return; } @@ -63,7 +63,7 @@ void POTGenerator::generate_pot(const String &p_file) { // Clear all_translation_strings of the previous round. all_translation_strings.clear(); - Vector<String> files = ProjectSettings::get_singleton()->get("locale/translations_pot_files"); + Vector<String> files = ProjectSettings::get_singleton()->get("internationalization/locale/translations_pot_files"); // Collect all translatable strings according to files order in "POT Generation" setting. for (int i = 0; i < files.size(); i++) { @@ -100,7 +100,7 @@ void POTGenerator::_write_to_pot(const String &p_file) { } String project_name = ProjectSettings::get_singleton()->get("application/config/name"); - Vector<String> files = ProjectSettings::get_singleton()->get("locale/translations_pot_files"); + Vector<String> files = ProjectSettings::get_singleton()->get("internationalization/locale/translations_pot_files"); String extracted_files = ""; for (int i = 0; i < files.size(); i++) { extracted_files += "# " + files[i] + "\n"; diff --git a/editor/project_manager.cpp b/editor/project_manager.cpp index 7b00c688fa..7d421bdf81 100644 --- a/editor/project_manager.cpp +++ b/editor/project_manager.cpp @@ -474,15 +474,15 @@ private: } ProjectSettings::CustomMap initial_settings; if (rasterizer_button_group->get_pressed_button()->get_meta("driver_name") == "Vulkan") { - initial_settings["rendering/quality/driver/driver_name"] = "Vulkan"; + initial_settings["rendering/driver/driver_name"] = "Vulkan"; } else { - initial_settings["rendering/quality/driver/driver_name"] = "GLES2"; - initial_settings["rendering/vram_compression/import_etc2"] = false; - initial_settings["rendering/vram_compression/import_etc"] = true; + initial_settings["rendering/driver/driver_name"] = "GLES2"; + initial_settings["rendering/textures/vram_compression/import_etc2"] = false; + initial_settings["rendering/textures/vram_compression/import_etc"] = true; } initial_settings["application/config/name"] = project_name->get_text(); initial_settings["application/config/icon"] = "res://icon.png"; - initial_settings["rendering/environment/default_environment"] = "res://default_env.tres"; + initial_settings["rendering/environment/defaults/default_environment"] = "res://default_env.tres"; if (ProjectSettings::get_singleton()->save_custom(dir.plus_file("project.godot"), initial_settings, Vector<String>(), false) != OK) { set_message(TTR("Couldn't create project.godot in project path."), MESSAGE_ERROR); diff --git a/editor/project_settings_editor.cpp b/editor/project_settings_editor.cpp index 76fdf47eb6..4aadb4295f 100644 --- a/editor/project_settings_editor.cpp +++ b/editor/project_settings_editor.cpp @@ -75,8 +75,12 @@ void ProjectSettingsEditor::_advanced_pressed() { if (advanced->is_pressed()) { _update_advanced_bar(); advanced_bar->show(); + EditorSettings::get_singleton()->set_project_metadata("project_settings", "advanced_mode", true); + inspector->set_restrict_to_basic_settings(false); } else { advanced_bar->hide(); + EditorSettings::get_singleton()->set_project_metadata("project_settings", "advanced_mode", false); + inspector->set_restrict_to_basic_settings(true); } } @@ -191,9 +195,6 @@ void ProjectSettingsEditor::_update_advanced_bar() { add_button->set_disabled(disable_add); del_button->set_disabled(disable_del); - - error_label->set_text(error_msg); - error_label->set_visible(error_msg != ""); } String ProjectSettingsEditor::_get_setting_name() const { @@ -273,16 +274,11 @@ void ProjectSettingsEditor::_notification(int p_what) { case NOTIFICATION_VISIBILITY_CHANGED: { if (!is_visible()) { EditorSettings::get_singleton()->set_project_metadata("dialog_bounds", "project_settings", Rect2(get_position(), get_size())); - if (advanced->is_pressed()) { - advanced->set_pressed(false); - advanced_bar->hide(); - } } } break; case NOTIFICATION_ENTER_TREE: { inspector->edit(ps); - error_label->add_theme_color_override("font_color", error_label->get_theme_color("error_color", "Editor")); add_button->set_icon(get_theme_icon("Add", "EditorIcons")); del_button->set_icon(get_theme_icon("Remove", "EditorIcons")); @@ -340,23 +336,19 @@ ProjectSettingsEditor::ProjectSettingsEditor(EditorData *p_data) { search_bar->add_child(search_box); advanced = memnew(CheckButton); - advanced->set_text(TTR("Advanced")); + advanced->set_text(TTR("Advanced Settings")); advanced->connect("pressed", callable_mp(this, &ProjectSettingsEditor::_advanced_pressed)); search_bar->add_child(advanced); } { // Advanced bar. - advanced_bar = memnew(VBoxContainer); - advanced_bar->set_h_size_flags(Control::SIZE_EXPAND_FILL); + advanced_bar = memnew(HBoxContainer); advanced_bar->hide(); header->add_child(advanced_bar); - advanced_bar->add_child(memnew(HSeparator)); - - HBoxContainer *hbc = memnew(HBoxContainer); + HBoxContainer *hbc = advanced_bar; hbc->set_h_size_flags(Control::SIZE_EXPAND_FILL); - advanced_bar->add_margin_child(TTR("Add or Remove Custom Project Settings:"), hbc, true); category_box = memnew(LineEdit); category_box->set_h_size_flags(Control::SIZE_EXPAND_FILL); @@ -365,7 +357,7 @@ ProjectSettingsEditor::ProjectSettingsEditor(EditorData *p_data) { hbc->add_child(category_box); Label *l = memnew(Label); - l->set_text("/"); + l->set_text(" / "); hbc->add_child(l); property_box = memnew(LineEdit); @@ -408,9 +400,6 @@ ProjectSettingsEditor::ProjectSettingsEditor(EditorData *p_data) { del_button->set_flat(true); del_button->connect("pressed", callable_mp(this, &ProjectSettingsEditor::_delete_setting), varray(false)); hbc->add_child(del_button); - - error_label = memnew(Label); - advanced_bar->add_child(error_label); } inspector = memnew(SectionedInspector); @@ -484,4 +473,13 @@ ProjectSettingsEditor::ProjectSettingsEditor(EditorData *p_data) { get_ok_button()->set_text(TTR("Close")); set_hide_on_ok(true); + + bool use_advanced = EditorSettings::get_singleton()->get_project_metadata("project_settings", "advanced_mode", false); + + if (use_advanced) { + advanced->set_pressed(true); + advanced_bar->show(); + } + + inspector->set_restrict_to_basic_settings(!use_advanced); } diff --git a/editor/project_settings_editor.h b/editor/project_settings_editor.h index 88c96540ff..a43adecc4e 100644 --- a/editor/project_settings_editor.h +++ b/editor/project_settings_editor.h @@ -68,14 +68,13 @@ class ProjectSettingsEditor : public AcceptDialog { LineEdit *search_box; CheckButton *advanced; - VBoxContainer *advanced_bar; + HBoxContainer *advanced_bar; LineEdit *category_box; LineEdit *property_box; Button *add_button; Button *del_button; OptionButton *type; OptionButton *feature_override; - Label *error_label; ConfirmationDialog *del_confirmation; diff --git a/editor/scene_tree_dock.cpp b/editor/scene_tree_dock.cpp index c1edeeeb0e..48c4d33184 100644 --- a/editor/scene_tree_dock.cpp +++ b/editor/scene_tree_dock.cpp @@ -107,8 +107,6 @@ void SceneTreeDock::_unhandled_key_input(Ref<InputEvent> p_event) { _tool_selected(TOOL_MOVE_DOWN); } else if (ED_IS_SHORTCUT("scene_tree/reparent", p_event)) { _tool_selected(TOOL_REPARENT); - } else if (ED_IS_SHORTCUT("scene_tree/merge_from_scene", p_event)) { - _tool_selected(TOOL_MERGE_FROM_SCENE); } else if (ED_IS_SHORTCUT("scene_tree/save_branch_as_scene", p_event)) { _tool_selected(TOOL_NEW_SCENE_FROM); } else if (ED_IS_SHORTCUT("scene_tree/delete_no_confirm", p_event)) { @@ -880,13 +878,6 @@ void SceneTreeDock::_tool_selected(int p_tool, bool p_confirm_override) { } } break; - case TOOL_MERGE_FROM_SCENE: { - if (!profile_allow_editing) { - break; - } - - EditorNode::get_singleton()->merge_from_scene(); - } break; case TOOL_NEW_SCENE_FROM: { if (!profile_allow_editing) { break; @@ -2291,21 +2282,6 @@ void SceneTreeDock::set_selected(Node *p_node, bool p_emit_selected) { scene_tree->set_selected(p_node, p_emit_selected); } -void SceneTreeDock::import_subscene() { - import_subscene_dialog->popup_centered_clamped(Size2(500, 800) * EDSCALE, 0.8); -} - -void SceneTreeDock::_import_subscene() { - Node *parent = scene_tree->get_selected(); - if (!parent) { - parent = editor_data->get_edited_scene_root(); - ERR_FAIL_COND(!parent); - } - - import_subscene_dialog->move(parent, edited_scene); - editor_data->get_undo_redo().clear_history(); //no undo for now.. -} - void SceneTreeDock::_new_scene_from(String p_file) { List<Node *> selection = editor_selection->get_selected_node_list(); @@ -2622,7 +2598,6 @@ void SceneTreeDock::_tree_rmb(const Vector2 &p_menu_pos) { if (selection.size() == 1) { if (profile_allow_editing) { menu->add_separator(); - menu->add_icon_shortcut(get_theme_icon("Blend", "EditorIcons"), ED_GET_SHORTCUT("scene_tree/merge_from_scene"), TOOL_MERGE_FROM_SCENE); menu->add_icon_shortcut(get_theme_icon("CreateNewSceneFrom", "EditorIcons"), ED_GET_SHORTCUT("scene_tree/save_branch_as_scene"), TOOL_NEW_SCENE_FROM); } if (full_selection.size() == 1) { @@ -2921,7 +2896,7 @@ void SceneTreeDock::_create_remap_for_node(Node *p_node, Map<RES, RES> &r_remap) if (v.is_ref()) { RES res = v; if (res.is_valid()) { - if (res->get_path() == "" && !r_remap.has(res)) { + if ((res->get_path() == "" || res->get_path().find("::") > -1) && !r_remap.has(res)) { _create_remap_for_resource(res, r_remap); } } @@ -2948,7 +2923,7 @@ void SceneTreeDock::_create_remap_for_resource(RES p_resource, Map<RES, RES> &r_ if (v.is_ref()) { RES res = v; if (res.is_valid()) { - if (res->get_path() == "" && !r_remap.has(res)) { + if ((res->get_path() == "" || res->get_path().find("::") > -1) && !r_remap.has(res)) { _create_remap_for_resource(res, r_remap); } } @@ -3000,7 +2975,6 @@ SceneTreeDock::SceneTreeDock(EditorNode *p_editor, Node *p_scene_root, EditorSel ED_SHORTCUT("scene_tree/reparent", TTR("Reparent")); ED_SHORTCUT("scene_tree/reparent_to_new_node", TTR("Reparent to New Node")); ED_SHORTCUT("scene_tree/make_root", TTR("Make Scene Root")); - ED_SHORTCUT("scene_tree/merge_from_scene", TTR("Merge From Scene")); ED_SHORTCUT("scene_tree/save_branch_as_scene", TTR("Save Branch as Scene")); ED_SHORTCUT("scene_tree/copy_node_path", TTR("Copy Node Path"), KEY_MASK_CMD | KEY_MASK_SHIFT | KEY_C); ED_SHORTCUT("scene_tree/delete_no_confirm", TTR("Delete (No Confirm)"), KEY_MASK_SHIFT | KEY_DELETE); @@ -3130,10 +3104,6 @@ SceneTreeDock::SceneTreeDock(EditorNode *p_editor, Node *p_scene_root, EditorSel add_child(placeholder_editable_instance_remove_dialog); placeholder_editable_instance_remove_dialog->connect("confirmed", callable_mp(this, &SceneTreeDock::_toggle_placeholder_from_selection)); - import_subscene_dialog = memnew(EditorSubScene); - add_child(import_subscene_dialog); - import_subscene_dialog->connect("subscene_selected", callable_mp(this, &SceneTreeDock::_import_subscene)); - new_scene_from_dialog = memnew(EditorFileDialog); new_scene_from_dialog->set_file_mode(EditorFileDialog::FILE_MODE_SAVE_FILE); add_child(new_scene_from_dialog); diff --git a/editor/scene_tree_dock.h b/editor/scene_tree_dock.h index a042188be6..9bc281c7fb 100644 --- a/editor/scene_tree_dock.h +++ b/editor/scene_tree_dock.h @@ -34,7 +34,6 @@ #include "editor/connections_dialog.h" #include "editor/create_dialog.h" #include "editor/editor_data.h" -#include "editor/editor_sub_scene.h" #include "editor/groups_editor.h" #include "editor/quick_open.h" #include "editor/rename_dialog.h" @@ -74,7 +73,6 @@ class SceneTreeDock : public VBoxContainer { TOOL_REPARENT_TO_NEW_NODE, TOOL_MAKE_ROOT, TOOL_NEW_SCENE_FROM, - TOOL_MERGE_FROM_SCENE, TOOL_MULTI_EDIT, TOOL_ERASE, TOOL_COPY_NODE_PATH, @@ -141,7 +139,6 @@ class SceneTreeDock : public VBoxContainer { ReparentDialog *reparent_dialog; EditorQuickOpen *quick_open; - EditorSubScene *import_subscene_dialog; EditorFileDialog *new_scene_from_dialog; LineEdit *filter; diff --git a/editor/settings_config_dialog.cpp b/editor/settings_config_dialog.cpp index 1dad3c091d..ffd5716364 100644 --- a/editor/settings_config_dialog.cpp +++ b/editor/settings_config_dialog.cpp @@ -143,7 +143,7 @@ void EditorSettingsDialog::_unhandled_input(const Ref<InputEvent> &p_event) { if (k.is_valid() && k->is_pressed()) { bool handled = false; - if (ED_IS_SHORTCUT("editor/undo", p_event)) { + if (ED_IS_SHORTCUT("ui_undo", p_event)) { String action = undo_redo->get_current_action_name(); if (action != "") { EditorNode::get_log()->add_message("Undo: " + action, EditorLog::MSG_TYPE_EDITOR); @@ -152,7 +152,7 @@ void EditorSettingsDialog::_unhandled_input(const Ref<InputEvent> &p_event) { handled = true; } - if (ED_IS_SHORTCUT("editor/redo", p_event)) { + if (ED_IS_SHORTCUT("ui_redo", p_event)) { undo_redo->redo(); String action = undo_redo->get_current_action_name(); if (action != "") { diff --git a/editor/translations/af.po b/editor/translations/af.po index c537e790e7..9c2cb8bdee 100644 --- a/editor/translations/af.po +++ b/editor/translations/af.po @@ -3143,6 +3143,22 @@ msgid "Open & Run a Script" msgstr "" #: editor/editor_node.cpp +msgid "" +"The following files are newer on disk.\n" +"What action should be taken?" +msgstr "" + +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp +msgid "Reload" +msgstr "" + +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp +msgid "Resave" +msgstr "" + +#: editor/editor_node.cpp msgid "New Inherited" msgstr "" @@ -7058,16 +7074,6 @@ msgid "" "What action should be taken?:" msgstr "" -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/shader_editor_plugin.cpp -msgid "Reload" -msgstr "" - -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/shader_editor_plugin.cpp -msgid "Resave" -msgstr "" - #: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp msgid "Debugger" msgstr "" @@ -10021,6 +10027,11 @@ msgid "Projects" msgstr "Projek Stigters" #: editor/project_manager.cpp +#, fuzzy +msgid "Loading, please wait..." +msgstr "Laai" + +#: editor/project_manager.cpp msgid "Last Modified" msgstr "" diff --git a/editor/translations/ar.po b/editor/translations/ar.po index 7af493c55a..82edf48cf2 100644 --- a/editor/translations/ar.po +++ b/editor/translations/ar.po @@ -3154,6 +3154,25 @@ msgid "Open & Run a Script" msgstr "ÙØªØ Ùˆ تشغيل كود" #: editor/editor_node.cpp +#, fuzzy +msgid "" +"The following files are newer on disk.\n" +"What action should be taken?" +msgstr "" +"Ø§Ù„Ù…Ù„ÙØ§Øª التالية Ø£ØØ¯Ø« على القرص.\n" +"ما الإجراء الذي ينبغي اتخاذه؟:" + +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp +msgid "Reload" +msgstr "إعادة تØÙ…يل" + +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp +msgid "Resave" +msgstr "إعادة ØÙظ" + +#: editor/editor_node.cpp msgid "New Inherited" msgstr "موروث جديد" @@ -7008,16 +7027,6 @@ msgstr "" "Ø§Ù„Ù…Ù„ÙØ§Øª التالية Ø£ØØ¯Ø« على القرص.\n" "ما الإجراء الذي ينبغي اتخاذه؟:" -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/shader_editor_plugin.cpp -msgid "Reload" -msgstr "إعادة تØÙ…يل" - -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/shader_editor_plugin.cpp -msgid "Resave" -msgstr "إعادة ØÙظ" - #: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp msgid "Debugger" msgstr "Ù…ÙÙ†Ù‚Ø Ø§Ù„Ø£Ø®Ø·Ø§Ø¡" @@ -10028,6 +10037,11 @@ msgid "Projects" msgstr "المشاريع" #: editor/project_manager.cpp +#, fuzzy +msgid "Loading, please wait..." +msgstr "يستقبل المرايا، من ÙØ¶Ù„Ùƒ إنتظر..." + +#: editor/project_manager.cpp msgid "Last Modified" msgstr "آخر ما تم تعديله" diff --git a/editor/translations/bg.po b/editor/translations/bg.po index b03e325ec5..886a8c8e6a 100644 --- a/editor/translations/bg.po +++ b/editor/translations/bg.po @@ -17,7 +17,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2021-02-05 09:20+0000\n" +"PO-Revision-Date: 2021-02-15 10:51+0000\n" "Last-Translator: Любомир ВаÑилев <lyubomirv@gmx.com>\n" "Language-Team: Bulgarian <https://hosted.weblate.org/projects/godot-engine/" "godot/bg/>\n" @@ -3000,6 +3000,25 @@ msgstr "" #: editor/editor_node.cpp #, fuzzy +msgid "" +"The following files are newer on disk.\n" +"What action should be taken?" +msgstr "" +"Следните файлове Ñа по-нови на диÑка.\n" +"Кое дейÑтвие трÑбва да Ñе предприеме?:" + +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp +msgid "Reload" +msgstr "Презареждане" + +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp +msgid "Resave" +msgstr "ПрезапиÑване" + +#: editor/editor_node.cpp +#, fuzzy msgid "New Inherited" msgstr "Ðов Ñкрипт" @@ -6797,16 +6816,6 @@ msgstr "" "Следните файлове Ñа по-нови на диÑка.\n" "Кое дейÑтвие трÑбва да Ñе предприеме?:" -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/shader_editor_plugin.cpp -msgid "Reload" -msgstr "Презареждане" - -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/shader_editor_plugin.cpp -msgid "Resave" -msgstr "ПрезапиÑване" - #: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp msgid "Debugger" msgstr "Дебъгер" @@ -7560,7 +7569,7 @@ msgstr "Преобразуване в Mesh2D" #: editor/plugins/sprite_editor_plugin.cpp msgid "Invalid geometry, can't create polygon." -msgstr "" +msgstr "Ðеправилна геометриÑ, не може да Ñе Ñъздаде полигон." #: editor/plugins/sprite_editor_plugin.cpp msgid "Convert to Polygon2D" @@ -7568,7 +7577,7 @@ msgstr "Превръщане в Polygon2D" #: editor/plugins/sprite_editor_plugin.cpp msgid "Invalid geometry, can't create collision polygon." -msgstr "" +msgstr "Ðеправилна геометриÑ, не може да Ñе Ñъздаде полигон за колизии." #: editor/plugins/sprite_editor_plugin.cpp msgid "Create CollisionPolygon2D Sibling" @@ -7580,7 +7589,7 @@ msgstr "" #: editor/plugins/sprite_editor_plugin.cpp msgid "Create LightOccluder2D Sibling" -msgstr "" +msgstr "Създаване на ÑÑŠÑеден LightOccluder2D" #: editor/plugins/sprite_editor_plugin.cpp msgid "Sprite" @@ -7588,15 +7597,15 @@ msgstr "" #: editor/plugins/sprite_editor_plugin.cpp msgid "Simplification: " -msgstr "" +msgstr "ОпроÑÑ‚Ñване: " #: editor/plugins/sprite_editor_plugin.cpp msgid "Shrink (Pixels): " -msgstr "" +msgstr "СмалÑване (пикÑели): " #: editor/plugins/sprite_editor_plugin.cpp msgid "Grow (Pixels): " -msgstr "" +msgstr "УголемÑване (пикÑели): " #: editor/plugins/sprite_editor_plugin.cpp msgid "Update Preview" @@ -7612,11 +7621,11 @@ msgstr "ÐÑма избрани кадри" #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Add %d Frame(s)" -msgstr "" +msgstr "ДобавÑне на %d кадър/кадри" #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Add Frame" -msgstr "" +msgstr "ДобавÑне на кадър" #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Unable to load images" @@ -7624,27 +7633,27 @@ msgstr "ИзображениÑта не могат да бъдат заредеР#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "ERROR: Couldn't load frame resource!" -msgstr "" +msgstr "ГРЕШКÐ: Ðе може да Ñе зареди реÑурÑÑŠÑ‚ Ñ ÐºÐ°Ð´ÑŠÑ€Ð°!" #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Resource clipboard is empty or not a texture!" -msgstr "" +msgstr "Буферът за обмен на реÑурÑи е празен или не Ñъдържа текÑтура!" #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Paste Frame" -msgstr "" +msgstr "ПоÑтавÑне на кадър" #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Add Empty" -msgstr "" +msgstr "ДобавÑне на празен" #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Change Animation FPS" -msgstr "" +msgstr "ПромÑна на ÑкороÑтта (кадри/Ñек) на анимациÑта" #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "(empty)" -msgstr "" +msgstr "(празно)" #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Move Frame" @@ -7664,7 +7673,7 @@ msgstr "СкороÑÑ‚:" #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Loop" -msgstr "" +msgstr "ПовтарÑне" #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Animation Frames:" @@ -7680,11 +7689,11 @@ msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Insert Empty (Before)" -msgstr "" +msgstr "Вмъкване на празен (преди)" #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Insert Empty (After)" -msgstr "" +msgstr "Вмъкване на празен (Ñлед)" #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Move (Before)" @@ -7692,7 +7701,7 @@ msgstr "ПремеÑтване (преди)" #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Move (After)" -msgstr "" +msgstr "ПремеÑтване (Ñлед)" #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Select Frames" @@ -7700,11 +7709,11 @@ msgstr "Избиране на кадри" #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Horizontal:" -msgstr "" +msgstr "Хоризонтала:" #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Vertical:" -msgstr "" +msgstr "Вертикала:" #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Select/Clear All Frames" @@ -7724,40 +7733,40 @@ msgstr "" #: editor/plugins/texture_region_editor_plugin.cpp msgid "Set Margin" -msgstr "" +msgstr "Задаване на отÑтъп" #: editor/plugins/texture_region_editor_plugin.cpp msgid "Snap Mode:" -msgstr "" +msgstr "Режим на прилепване:" #: editor/plugins/texture_region_editor_plugin.cpp #: scene/resources/visual_shader.cpp msgid "None" -msgstr "" +msgstr "ÐÑма" #: editor/plugins/texture_region_editor_plugin.cpp msgid "Pixel Snap" -msgstr "" +msgstr "Прилепване към пикÑелите" #: editor/plugins/texture_region_editor_plugin.cpp msgid "Grid Snap" -msgstr "" +msgstr "Прилепване към решетката" #: editor/plugins/texture_region_editor_plugin.cpp msgid "Auto Slice" -msgstr "" +msgstr "Ðвтоматично отрÑзване" #: editor/plugins/texture_region_editor_plugin.cpp msgid "Offset:" -msgstr "" +msgstr "ОтмеÑтване:" #: editor/plugins/texture_region_editor_plugin.cpp msgid "Step:" -msgstr "" +msgstr "Стъпка:" #: editor/plugins/texture_region_editor_plugin.cpp msgid "Sep.:" -msgstr "" +msgstr "Разделител:" #: editor/plugins/texture_region_editor_plugin.cpp msgid "TextureRegion" @@ -7765,15 +7774,15 @@ msgstr "ТекÑтурна облаÑÑ‚" #: editor/plugins/theme_editor_plugin.cpp msgid "Add All Items" -msgstr "" +msgstr "ДобавÑне на вÑички елементи" #: editor/plugins/theme_editor_plugin.cpp msgid "Add All" -msgstr "" +msgstr "ДобавÑне на вÑичко" #: editor/plugins/theme_editor_plugin.cpp msgid "Remove All Items" -msgstr "" +msgstr "Премахване на вÑички елементи" #: editor/plugins/theme_editor_plugin.cpp editor/project_manager.cpp msgid "Remove All" @@ -7785,7 +7794,7 @@ msgstr "Редактиране на темата" #: editor/plugins/theme_editor_plugin.cpp msgid "Theme editing menu." -msgstr "" +msgstr "Меню за редактиране на темата." #: editor/plugins/theme_editor_plugin.cpp msgid "Add Class Items" @@ -7817,7 +7826,7 @@ msgstr "Заключен бутон" #: editor/plugins/theme_editor_plugin.cpp msgid "Item" -msgstr "" +msgstr "Елемент" #: editor/plugins/theme_editor_plugin.cpp msgid "Disabled Item" @@ -7825,11 +7834,11 @@ msgstr "Заключен елемент" #: editor/plugins/theme_editor_plugin.cpp msgid "Check Item" -msgstr "" +msgstr "Елемент за отметка" #: editor/plugins/theme_editor_plugin.cpp msgid "Checked Item" -msgstr "" +msgstr "Отметнат елемент" #: editor/plugins/theme_editor_plugin.cpp msgid "Radio Item" @@ -7841,27 +7850,27 @@ msgstr "" #: editor/plugins/theme_editor_plugin.cpp msgid "Named Sep." -msgstr "" +msgstr "Именуван разд." #: editor/plugins/theme_editor_plugin.cpp msgid "Submenu" -msgstr "" +msgstr "Подменю" #: editor/plugins/theme_editor_plugin.cpp msgid "Subitem 1" -msgstr "" +msgstr "Поделемент 1" #: editor/plugins/theme_editor_plugin.cpp msgid "Subitem 2" -msgstr "" +msgstr "Поделемент 2" #: editor/plugins/theme_editor_plugin.cpp msgid "Has" -msgstr "" +msgstr "Има" #: editor/plugins/theme_editor_plugin.cpp msgid "Many" -msgstr "" +msgstr "Много" #: editor/plugins/theme_editor_plugin.cpp msgid "Disabled LineEdit" @@ -7869,15 +7878,15 @@ msgstr "Заключено текÑтово поле" #: editor/plugins/theme_editor_plugin.cpp msgid "Tab 1" -msgstr "" +msgstr "Раздел 1" #: editor/plugins/theme_editor_plugin.cpp msgid "Tab 2" -msgstr "" +msgstr "Раздел 2" #: editor/plugins/theme_editor_plugin.cpp msgid "Tab 3" -msgstr "" +msgstr "Раздел 3" #: editor/plugins/theme_editor_plugin.cpp msgid "Editable Item" @@ -7885,32 +7894,32 @@ msgstr "Редактируем елемент" #: editor/plugins/theme_editor_plugin.cpp msgid "Subtree" -msgstr "" +msgstr "Поддърво" #: editor/plugins/theme_editor_plugin.cpp msgid "Has,Many,Options" -msgstr "" +msgstr "Има,Много,Опции" #: editor/plugins/theme_editor_plugin.cpp msgid "Data Type:" -msgstr "" +msgstr "Тип на данните:" #: editor/plugins/theme_editor_plugin.cpp #: editor/plugins/tile_set_editor_plugin.cpp msgid "Icon" -msgstr "" +msgstr "Иконка" #: editor/plugins/theme_editor_plugin.cpp editor/rename_dialog.cpp msgid "Style" -msgstr "" +msgstr "Стил" #: editor/plugins/theme_editor_plugin.cpp msgid "Font" -msgstr "" +msgstr "Шрифт" #: editor/plugins/theme_editor_plugin.cpp msgid "Color" -msgstr "" +msgstr "Цват" #: editor/plugins/theme_editor_plugin.cpp msgid "Theme File" @@ -7918,11 +7927,11 @@ msgstr "Файл Ñ Ñ‚ÐµÐ¼Ð°" #: editor/plugins/tile_map_editor_plugin.cpp msgid "Erase Selection" -msgstr "" +msgstr "Изтриване на избраното" #: editor/plugins/tile_map_editor_plugin.cpp msgid "Fix Invalid Tiles" -msgstr "" +msgstr "Поправка на неправилните плочки" #: editor/plugins/tile_map_editor_plugin.cpp #: modules/gridmap/grid_map_editor_plugin.cpp @@ -9661,6 +9670,11 @@ msgid "Projects" msgstr "Проекти" #: editor/project_manager.cpp +#, fuzzy +msgid "Loading, please wait..." +msgstr "Зареждане…" + +#: editor/project_manager.cpp msgid "Last Modified" msgstr "" diff --git a/editor/translations/bn.po b/editor/translations/bn.po index 53a1d59aa3..03e3d0388a 100644 --- a/editor/translations/bn.po +++ b/editor/translations/bn.po @@ -15,7 +15,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2021-02-01 20:53+0000\n" +"PO-Revision-Date: 2021-02-15 10:51+0000\n" "Last-Translator: Mokarrom Hossain <mhb2016.bzs@gmail.com>\n" "Language-Team: Bengali <https://hosted.weblate.org/projects/godot-engine/" "godot/bn/>\n" @@ -439,14 +439,12 @@ msgid "Track is not of type Spatial, can't insert key" msgstr "টà§à¦°à§à¦¯à¦¾à¦• Spatial টাইপের নয়, কী সনà§à¦¨à¦¿à¦¬à§‡à¦¶ করতে পারে না" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Add Transform Track Key" -msgstr "রà§à¦ªà¦¾à¦¨à§à¦¤à¦°à§‡à¦° ধরণ" +msgstr "টà§à¦°à¦¾à¦¨à§à¦¸à¦«à¦°à§à¦® টà§à¦°à§à¦¯à¦¾à¦• কী যà§à¦•à§à¦¤ করà§à¦¨" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Add Track Key" -msgstr "অà§à¦¯à¦¾à¦¨à¦¿à¦®à§‡à¦¶à¦¨ (Anim) টà§à¦°à§à¦¯à¦¾à¦• যোগ করà§à¦¨" +msgstr "টà§à¦°à§à¦¯à¦¾à¦• কী যà§à¦•à§à¦¤ করà§à¦¨" #: editor/animation_track_editor.cpp msgid "Track path is invalid, so can't add a method key." @@ -514,11 +512,11 @@ msgstr "অà§à¦¯à¦¾à¦¨à¦¿à¦®à§‡à¦¶à¦¨ তৈরি à¦à¦¬à¦‚ সমà§à¦ªà¦¾à¦¦ #: editor/animation_track_editor.cpp msgid "Only show tracks from nodes selected in tree." -msgstr "" +msgstr "Tree মধà§à¦¯à§‡ নিরà§à¦¬à¦¾à¦šà¦¿à¦¤ নোডগà§à¦²à¦¿ থেকে কেবল টà§à¦°à§à¦¯à¦¾à¦•গà§à¦²à¦¿ দেখান।" #: editor/animation_track_editor.cpp msgid "Group tracks by node or display them as plain list." -msgstr "" +msgstr "নোড দà§à¦¬à¦¾à¦°à¦¾ গà§à¦°à§à¦ª টà§à¦°à§à¦¯à¦¾à¦• করà§à¦¨ বা তাদের সরল তালিকা হিসাবে পà§à¦°à¦¦à¦°à§à¦¶à¦¨ করà§à¦¨à¥¤" #: editor/animation_track_editor.cpp msgid "Snap:" @@ -552,9 +550,8 @@ msgid "Animation properties." msgstr "অà§à¦¯à¦¾à¦¨à¦¿à¦®à§‡à¦¶à¦¨ বৈশিষà§à¦Ÿà§à¦¯à¥¤" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Copy Tracks" -msgstr "মানসমূহ পà§à¦°à¦¤à¦¿à¦²à¦¿à¦ªà¦¿/কপি করà§à¦¨" +msgstr "টà§à¦°à§à¦¯à¦¾à¦•গà§à¦²à¦¿ অনà§à¦²à¦¿à¦ªà¦¿ করà§à¦¨" #: editor/animation_track_editor.cpp msgid "Scale Selection" @@ -598,7 +595,7 @@ msgstr "" #: editor/animation_track_editor.cpp msgid "Use Bezier Curves" -msgstr "" +msgstr "বেজিয়ার কারà§à¦ বà§à¦¯à¦¬à¦¹à¦¾à¦° করà§à¦¨" #: editor/animation_track_editor.cpp msgid "Anim. Optimizer" @@ -645,9 +642,8 @@ msgid "Scale Ratio:" msgstr "সà§à¦•েল/মাপের অনà§à¦ªà¦¾à¦¤:" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Select Tracks to Copy" -msgstr "গà§à¦£à¦¾à¦—à§à¦£/বৈশিষà§à¦Ÿà§à¦¯ বাছাই করà§à¦¨" +msgstr "গà§à¦£à¦¾à¦—à§à¦£/বৈশিষà§à¦Ÿà§à¦¯ copy করà§à¦¨" #: editor/animation_track_editor.cpp editor/editor_log.cpp #: editor/editor_properties.cpp @@ -3283,6 +3279,25 @@ msgstr "à¦à¦•টি সà§à¦•à§à¦°à¦¿à¦ªà§à¦Ÿ খà§à¦²à§à¦¨ à¦à¦¬à¦‚ চঠ#: editor/editor_node.cpp #, fuzzy +msgid "" +"The following files are newer on disk.\n" +"What action should be taken?" +msgstr "" +"নিমà§à¦¨à§‹à¦•à§à¦¤ ফাইলসমূহ ডিসà§à¦•ে নতà§à¦¨à¦¤à¦°à¥¤\n" +"কোন সিধানà§à¦¤à¦Ÿà¦¿ নেয়া উচিত হবে?:" + +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp +msgid "Reload" +msgstr "রিলোড" + +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp +msgid "Resave" +msgstr "পà§à¦¨à¦ƒà¦¸à¦‚রকà§à¦·à¦£" + +#: editor/editor_node.cpp +#, fuzzy msgid "New Inherited" msgstr "নতà§à¦¨ উতà§à¦¤à¦°à¦¾à¦§à¦¿à¦•ারী দৃশà§à¦¯..." @@ -7463,16 +7478,6 @@ msgstr "" "নিমà§à¦¨à§‹à¦•à§à¦¤ ফাইলসমূহ ডিসà§à¦•ে নতà§à¦¨à¦¤à¦°à¥¤\n" "কোন সিধানà§à¦¤à¦Ÿà¦¿ নেয়া উচিত হবে?:" -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/shader_editor_plugin.cpp -msgid "Reload" -msgstr "রিলোড" - -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/shader_editor_plugin.cpp -msgid "Resave" -msgstr "পà§à¦¨à¦ƒà¦¸à¦‚রকà§à¦·à¦£" - #: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp msgid "Debugger" msgstr "ডিবাগার" @@ -10615,6 +10620,11 @@ msgid "Projects" msgstr "নতà§à¦¨ পà§à¦°à¦•লà§à¦ª" #: editor/project_manager.cpp +#, fuzzy +msgid "Loading, please wait..." +msgstr "মিরর রিটà§à¦°à¦¾à¦‡à¦ করা হচà§à¦›à§‡, দযা করে অপেকà§à¦·à¦¾ করà§à¦¨..." + +#: editor/project_manager.cpp msgid "Last Modified" msgstr "" diff --git a/editor/translations/br.po b/editor/translations/br.po index 94fec8b3b1..0b056dd9ed 100644 --- a/editor/translations/br.po +++ b/editor/translations/br.po @@ -2998,6 +2998,22 @@ msgid "Open & Run a Script" msgstr "" #: editor/editor_node.cpp +msgid "" +"The following files are newer on disk.\n" +"What action should be taken?" +msgstr "" + +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp +msgid "Reload" +msgstr "" + +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp +msgid "Resave" +msgstr "" + +#: editor/editor_node.cpp msgid "New Inherited" msgstr "" @@ -6750,16 +6766,6 @@ msgid "" "What action should be taken?:" msgstr "" -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/shader_editor_plugin.cpp -msgid "Reload" -msgstr "" - -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/shader_editor_plugin.cpp -msgid "Resave" -msgstr "" - #: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp msgid "Debugger" msgstr "" @@ -9598,6 +9604,10 @@ msgid "Projects" msgstr "" #: editor/project_manager.cpp +msgid "Loading, please wait..." +msgstr "" + +#: editor/project_manager.cpp msgid "Last Modified" msgstr "" diff --git a/editor/translations/ca.po b/editor/translations/ca.po index c728113731..568e373a6a 100644 --- a/editor/translations/ca.po +++ b/editor/translations/ca.po @@ -3166,6 +3166,25 @@ msgid "Open & Run a Script" msgstr "Obre i Executa un Script" #: editor/editor_node.cpp +#, fuzzy +msgid "" +"The following files are newer on disk.\n" +"What action should be taken?" +msgstr "" +"El disc conté versions més recents dels fitxer següents. \n" +"Quina acció voleu seguir?:" + +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp +msgid "Reload" +msgstr "Torna a Carregar" + +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp +msgid "Resave" +msgstr "Torna a Desar" + +#: editor/editor_node.cpp msgid "New Inherited" msgstr "Nou Heretat" @@ -7124,16 +7143,6 @@ msgstr "" "El disc conté versions més recents dels fitxer següents. \n" "Quina acció voleu seguir?:" -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/shader_editor_plugin.cpp -msgid "Reload" -msgstr "Torna a Carregar" - -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/shader_editor_plugin.cpp -msgid "Resave" -msgstr "Torna a Desar" - #: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp msgid "Debugger" msgstr "Depurador" @@ -10297,6 +10306,11 @@ msgstr "Projecte" #: editor/project_manager.cpp #, fuzzy +msgid "Loading, please wait..." +msgstr "S'estan buscant rèpliques..." + +#: editor/project_manager.cpp +#, fuzzy msgid "Last Modified" msgstr "Última modificació" diff --git a/editor/translations/cs.po b/editor/translations/cs.po index c3be08c016..04eb87654d 100644 --- a/editor/translations/cs.po +++ b/editor/translations/cs.po @@ -3139,6 +3139,25 @@ msgid "Open & Run a Script" msgstr "OtevÅ™Ãt a spustit skript" #: editor/editor_node.cpp +#, fuzzy +msgid "" +"The following files are newer on disk.\n" +"What action should be taken?" +msgstr "" +"NásledujÃcà soubory majà novÄ›jšà verzi na disku.\n" +"Jaká akce se má vykonat?:" + +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp +msgid "Reload" +msgstr "Znovu naÄÃst" + +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp +msgid "Resave" +msgstr "Znovu uložit" + +#: editor/editor_node.cpp msgid "New Inherited" msgstr "Nové zdÄ›dÄ›né" @@ -6994,16 +7013,6 @@ msgstr "" "NásledujÃcà soubory majà novÄ›jšà verzi na disku.\n" "Jaká akce se má vykonat?:" -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/shader_editor_plugin.cpp -msgid "Reload" -msgstr "Znovu naÄÃst" - -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/shader_editor_plugin.cpp -msgid "Resave" -msgstr "Znovu uložit" - #: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp msgid "Debugger" msgstr "Ladicà program" @@ -9995,6 +10004,11 @@ msgid "Projects" msgstr "Projekty" #: editor/project_manager.cpp +#, fuzzy +msgid "Loading, please wait..." +msgstr "ZÃskávánà zrcadel, prosÃm Äekejte..." + +#: editor/project_manager.cpp msgid "Last Modified" msgstr "Datum modifikace" diff --git a/editor/translations/da.po b/editor/translations/da.po index 2231930b01..8569251e55 100644 --- a/editor/translations/da.po +++ b/editor/translations/da.po @@ -3240,6 +3240,23 @@ msgid "Open & Run a Script" msgstr "Ã…ben & Kør et Script" #: editor/editor_node.cpp +#, fuzzy +msgid "" +"The following files are newer on disk.\n" +"What action should be taken?" +msgstr "De følgende filer kunne ikke trækkes ud af pakken:" + +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp +msgid "Reload" +msgstr "" + +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp +msgid "Resave" +msgstr "" + +#: editor/editor_node.cpp msgid "New Inherited" msgstr "Ny Arved" @@ -7233,16 +7250,6 @@ msgid "" "What action should be taken?:" msgstr "" -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/shader_editor_plugin.cpp -msgid "Reload" -msgstr "" - -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/shader_editor_plugin.cpp -msgid "Resave" -msgstr "" - #: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp msgid "Debugger" msgstr "" @@ -10253,6 +10260,11 @@ msgid "Projects" msgstr "Projekt" #: editor/project_manager.cpp +#, fuzzy +msgid "Loading, please wait..." +msgstr "Henter spejle, vent venligst ..." + +#: editor/project_manager.cpp msgid "Last Modified" msgstr "" diff --git a/editor/translations/de.po b/editor/translations/de.po index 79b57dac4e..abb61ade0d 100644 --- a/editor/translations/de.po +++ b/editor/translations/de.po @@ -62,11 +62,12 @@ # Patric Wust <patric.wust@gmx.de>, 2020. # Jonathan Hassel <jonathan.hassel@icloud.com>, 2020. # Artur Schönfeld <schoenfeld.artur@ymail.com>, 2020. +# kidinashell <kidinashell@protonmail.com>, 2021. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2021-01-16 01:28+0000\n" +"PO-Revision-Date: 2021-02-07 05:50+0000\n" "Last-Translator: So Wieso <sowieso@dukun.de>\n" "Language-Team: German <https://hosted.weblate.org/projects/godot-engine/" "godot/de/>\n" @@ -3215,6 +3216,25 @@ msgid "Open & Run a Script" msgstr "Skript öffnen und ausführen" #: editor/editor_node.cpp +#, fuzzy +msgid "" +"The following files are newer on disk.\n" +"What action should be taken?" +msgstr "" +"Die folgenden Dateien wurden im Dateisystem verändert.\n" +"Wie soll weiter vorgegangen werden?:" + +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp +msgid "Reload" +msgstr "Neu laden" + +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp +msgid "Resave" +msgstr "Erneut speichern" + +#: editor/editor_node.cpp msgid "New Inherited" msgstr "Neu Geerbte" @@ -7095,16 +7115,6 @@ msgstr "" "Die folgenden Dateien wurden im Dateisystem verändert.\n" "Wie soll weiter vorgegangen werden?:" -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/shader_editor_plugin.cpp -msgid "Reload" -msgstr "Neu laden" - -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/shader_editor_plugin.cpp -msgid "Resave" -msgstr "Erneut speichern" - #: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp msgid "Debugger" msgstr "Debugger" @@ -7426,9 +7436,8 @@ msgid "Yaw" msgstr "Gieren" #: editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "Size" -msgstr "Größe: " +msgstr "Größe" #: editor/plugins/spatial_editor_plugin.cpp msgid "Objects Drawn" @@ -10128,6 +10137,11 @@ msgid "Projects" msgstr "Projekte" #: editor/project_manager.cpp +#, fuzzy +msgid "Loading, please wait..." +msgstr "Mirrors werden geladen, bitte warten..." + +#: editor/project_manager.cpp msgid "Last Modified" msgstr "Zuletzt bearbeitet" diff --git a/editor/translations/editor.pot b/editor/translations/editor.pot index 5c298ea575..bda182e494 100644 --- a/editor/translations/editor.pot +++ b/editor/translations/editor.pot @@ -2976,6 +2976,22 @@ msgid "Open & Run a Script" msgstr "" #: editor/editor_node.cpp +msgid "" +"The following files are newer on disk.\n" +"What action should be taken?" +msgstr "" + +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp +msgid "Reload" +msgstr "" + +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp +msgid "Resave" +msgstr "" + +#: editor/editor_node.cpp msgid "New Inherited" msgstr "" @@ -6728,16 +6744,6 @@ msgid "" "What action should be taken?:" msgstr "" -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/shader_editor_plugin.cpp -msgid "Reload" -msgstr "" - -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/shader_editor_plugin.cpp -msgid "Resave" -msgstr "" - #: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp msgid "Debugger" msgstr "" @@ -9576,6 +9582,10 @@ msgid "Projects" msgstr "" #: editor/project_manager.cpp +msgid "Loading, please wait..." +msgstr "" + +#: editor/project_manager.cpp msgid "Last Modified" msgstr "" diff --git a/editor/translations/el.po b/editor/translations/el.po index abbfbaedfc..5fb433a3cb 100644 --- a/editor/translations/el.po +++ b/editor/translations/el.po @@ -10,12 +10,13 @@ # pandektis <pandektis@gmail.com>, 2020. # KostasMSC <kargyris@athtech.gr>, 2020. # lawfulRobot <czavantias@gmail.com>, 2020. +# Michalis <michalisntovas@yahoo.gr>, 2021. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2020-09-30 12:32+0000\n" -"Last-Translator: lawfulRobot <czavantias@gmail.com>\n" +"PO-Revision-Date: 2021-02-15 10:51+0000\n" +"Last-Translator: Michalis <michalisntovas@yahoo.gr>\n" "Language-Team: Greek <https://hosted.weblate.org/projects/godot-engine/godot/" "el/>\n" "Language: el\n" @@ -23,7 +24,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.3-dev\n" +"X-Generator: Weblate 4.5-dev\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -1878,7 +1879,7 @@ msgstr "Αποθήκευση αÏχείου" #: editor/editor_file_dialog.cpp msgid "Go Back" -msgstr "Πήγαινε πίσω" +msgstr "ΕπιστÏοφή" #: editor/editor_file_dialog.cpp msgid "Go Forward" @@ -3158,6 +3159,25 @@ msgid "Open & Run a Script" msgstr "Άνοιξε & ΤÏÎξε μία δÎσμη ενεÏγειών" #: editor/editor_node.cpp +#, fuzzy +msgid "" +"The following files are newer on disk.\n" +"What action should be taken?" +msgstr "" +"Τα ακόλουθα αÏχεία είναι νεότεÏα στον δίσκο.\n" +"Τι δÏάση να ληφθεί;:" + +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp +msgid "Reload" +msgstr "ΕπαναφόÏτωση" + +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp +msgid "Resave" +msgstr "Επαναποθήκευση" + +#: editor/editor_node.cpp msgid "New Inherited" msgstr "ÎÎα κληÏονομημÎνη" @@ -3905,7 +3925,7 @@ msgstr "Αντικατάσταση..." #: editor/find_in_files.cpp editor/progress_dialog.cpp scene/gui/dialogs.cpp msgid "Cancel" -msgstr "ΑκÏÏωση" +msgstr "ΆκυÏο" #: editor/find_in_files.cpp msgid "Find: " @@ -7015,7 +7035,7 @@ msgstr "Διακοπή" #: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp #: editor/script_editor_debugger.cpp msgid "Continue" -msgstr "ΣυνÎχιση" +msgstr "ΣυνÎχεια" #: editor/plugins/script_editor_plugin.cpp msgid "Keep Debugger Open" @@ -7053,16 +7073,6 @@ msgstr "" "Τα ακόλουθα αÏχεία είναι νεότεÏα στον δίσκο.\n" "Τι δÏάση να ληφθεί;:" -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/shader_editor_plugin.cpp -msgid "Reload" -msgstr "ΕπαναφόÏτωση" - -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/shader_editor_plugin.cpp -msgid "Resave" -msgstr "Επαναποθήκευση" - #: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp msgid "Debugger" msgstr "Αποσφαλματωτής" @@ -10086,6 +10096,11 @@ msgid "Projects" msgstr "ΈÏγα" #: editor/project_manager.cpp +#, fuzzy +msgid "Loading, please wait..." +msgstr "Ανάκτηση δεδοÎνων κατοπτÏισμοÏ, παÏακαλώ πεÏιμÎνετε..." + +#: editor/project_manager.cpp msgid "Last Modified" msgstr "Τελευταία ΤÏοποποιημÎνα" diff --git a/editor/translations/eo.po b/editor/translations/eo.po index 64b727be90..a485cca645 100644 --- a/editor/translations/eo.po +++ b/editor/translations/eo.po @@ -3075,6 +3075,22 @@ msgid "Open & Run a Script" msgstr "Malfermi & ruli skripto" #: editor/editor_node.cpp +msgid "" +"The following files are newer on disk.\n" +"What action should be taken?" +msgstr "" + +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp +msgid "Reload" +msgstr "" + +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp +msgid "Resave" +msgstr "" + +#: editor/editor_node.cpp msgid "New Inherited" msgstr "" @@ -6858,16 +6874,6 @@ msgid "" "What action should be taken?:" msgstr "" -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/shader_editor_plugin.cpp -msgid "Reload" -msgstr "" - -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/shader_editor_plugin.cpp -msgid "Resave" -msgstr "" - #: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp msgid "Debugger" msgstr "" @@ -9731,6 +9737,10 @@ msgid "Projects" msgstr "Projektoj" #: editor/project_manager.cpp +msgid "Loading, please wait..." +msgstr "" + +#: editor/project_manager.cpp #, fuzzy msgid "Last Modified" msgstr "Modifita" diff --git a/editor/translations/es.po b/editor/translations/es.po index c6f5ff06d7..e9617793bb 100644 --- a/editor/translations/es.po +++ b/editor/translations/es.po @@ -18,7 +18,7 @@ # Jose Maria Martinez <josemar1992@hotmail.com>, 2018. # Juan Quiroga <juanquiroga9@gmail.com>, 2017. # Kiji Pixel <raccoon.fella@gmail.com>, 2017. -# Lisandro Lorea <lisandrolorea@gmail.com>, 2016-2017, 2019, 2020. +# Lisandro Lorea <lisandrolorea@gmail.com>, 2016-2017, 2019, 2020, 2021. # Lonsfor <lotharw@protonmail.com>, 2017-2018. # Mario Nachbaur <manachbaur@gmail.com>, 2018. # Oscar Carballal <oscar.carballal@protonmail.com>, 2017-2018. @@ -58,12 +58,13 @@ # Ricardo Pérez <ricpelo@gmail.com>, 2021. # A <kaieltroll@gmail.com>, 2021. # Lucasdelpiero <lucasdelpiero98@gmail.com>, 2021. +# SteamGoblin <SteamGoblin860@gmail.com>, 2021. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2021-01-16 01:29+0000\n" -"Last-Translator: Javier Ocampos <xavier.ocampos@gmail.com>\n" +"PO-Revision-Date: 2021-02-15 10:51+0000\n" +"Last-Translator: SteamGoblin <SteamGoblin860@gmail.com>\n" "Language-Team: Spanish <https://hosted.weblate.org/projects/godot-engine/" "godot/es/>\n" "Language: es\n" @@ -3214,6 +3215,25 @@ msgid "Open & Run a Script" msgstr "Abrir y Ejecutar un Script" #: editor/editor_node.cpp +#, fuzzy +msgid "" +"The following files are newer on disk.\n" +"What action should be taken?" +msgstr "" +"Los siguientes archivos son nuevos en disco.\n" +"¿Qué es lo que quieres hacer?:" + +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp +msgid "Reload" +msgstr "Recargar" + +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp +msgid "Resave" +msgstr "Volver a Guardar" + +#: editor/editor_node.cpp msgid "New Inherited" msgstr "Nueva Escena Heredada" @@ -7100,16 +7120,6 @@ msgstr "" "Los siguientes archivos son nuevos en disco.\n" "¿Qué es lo que quieres hacer?:" -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/shader_editor_plugin.cpp -msgid "Reload" -msgstr "Recargar" - -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/shader_editor_plugin.cpp -msgid "Resave" -msgstr "Volver a Guardar" - #: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp msgid "Debugger" msgstr "Depurador" @@ -7426,12 +7436,11 @@ msgstr "Altura" #: editor/plugins/spatial_editor_plugin.cpp msgid "Yaw" -msgstr "Yaw" +msgstr "Guiñada" #: editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "Size" -msgstr "Tamaño: " +msgstr "Tamaño" #: editor/plugins/spatial_editor_plugin.cpp msgid "Objects Drawn" @@ -10126,6 +10135,11 @@ msgid "Projects" msgstr "Proyectos" #: editor/project_manager.cpp +#, fuzzy +msgid "Loading, please wait..." +msgstr "Obteniendo mirrors, por favor espera..." + +#: editor/project_manager.cpp msgid "Last Modified" msgstr "Ultima Modificación" @@ -12772,7 +12786,7 @@ msgstr "ARVROrigin requiere un nodo hijo ARVRCamera." #: scene/3d/baked_lightmap.cpp msgid "Finding meshes and lights" -msgstr "Encontrar mallas y luces" +msgstr "Encontrando mallas y luces" #: scene/3d/baked_lightmap.cpp msgid "Preparing geometry (%d/%d)" diff --git a/editor/translations/es_AR.po b/editor/translations/es_AR.po index 4f32171d5f..89a9b0778e 100644 --- a/editor/translations/es_AR.po +++ b/editor/translations/es_AR.po @@ -21,7 +21,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2021-01-29 19:32+0000\n" +"PO-Revision-Date: 2021-02-05 23:44+0000\n" "Last-Translator: Lisandro Lorea <lisandrolorea@gmail.com>\n" "Language-Team: Spanish (Argentina) <https://hosted.weblate.org/projects/" "godot-engine/godot/es_AR/>\n" @@ -3169,6 +3169,25 @@ msgid "Open & Run a Script" msgstr "Abrir y Correr un Script" #: editor/editor_node.cpp +#, fuzzy +msgid "" +"The following files are newer on disk.\n" +"What action should be taken?" +msgstr "" +"Los siguientes archivos son nuevos en disco.\n" +"¿Qué acción se deberÃa tomar?:" + +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp +msgid "Reload" +msgstr "Volver a Cargar" + +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp +msgid "Resave" +msgstr "Volver a Guardar" + +#: editor/editor_node.cpp msgid "New Inherited" msgstr "Nuevo Heredado" @@ -7048,16 +7067,6 @@ msgstr "" "Los siguientes archivos son nuevos en disco.\n" "¿Qué acción se deberÃa tomar?:" -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/shader_editor_plugin.cpp -msgid "Reload" -msgstr "Volver a Cargar" - -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/shader_editor_plugin.cpp -msgid "Resave" -msgstr "Volver a Guardar" - #: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp msgid "Debugger" msgstr "Depurador" @@ -7377,9 +7386,8 @@ msgid "Yaw" msgstr "Yaw" #: editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "Size" -msgstr "Tamaño: " +msgstr "Tamaño" #: editor/plugins/spatial_editor_plugin.cpp msgid "Objects Drawn" @@ -10073,6 +10081,11 @@ msgid "Projects" msgstr "Proyectos" #: editor/project_manager.cpp +#, fuzzy +msgid "Loading, please wait..." +msgstr "Recuperando mirrors, esperá, por favor..." + +#: editor/project_manager.cpp msgid "Last Modified" msgstr "Ultima Modificación" diff --git a/editor/translations/et.po b/editor/translations/et.po index d0eb9f05e4..3babd690d9 100644 --- a/editor/translations/et.po +++ b/editor/translations/et.po @@ -3030,6 +3030,22 @@ msgid "Open & Run a Script" msgstr "" #: editor/editor_node.cpp +msgid "" +"The following files are newer on disk.\n" +"What action should be taken?" +msgstr "" + +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp +msgid "Reload" +msgstr "" + +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp +msgid "Resave" +msgstr "" + +#: editor/editor_node.cpp msgid "New Inherited" msgstr "" @@ -6782,16 +6798,6 @@ msgid "" "What action should be taken?:" msgstr "" -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/shader_editor_plugin.cpp -msgid "Reload" -msgstr "" - -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/shader_editor_plugin.cpp -msgid "Resave" -msgstr "" - #: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp msgid "Debugger" msgstr "Siluja" @@ -9639,6 +9645,10 @@ msgid "Projects" msgstr "Projektid" #: editor/project_manager.cpp +msgid "Loading, please wait..." +msgstr "" + +#: editor/project_manager.cpp msgid "Last Modified" msgstr "" diff --git a/editor/translations/eu.po b/editor/translations/eu.po index f5557a0f3c..3cd7a78f25 100644 --- a/editor/translations/eu.po +++ b/editor/translations/eu.po @@ -2991,6 +2991,22 @@ msgid "Open & Run a Script" msgstr "" #: editor/editor_node.cpp +msgid "" +"The following files are newer on disk.\n" +"What action should be taken?" +msgstr "" + +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp +msgid "Reload" +msgstr "" + +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp +msgid "Resave" +msgstr "" + +#: editor/editor_node.cpp msgid "New Inherited" msgstr "" @@ -6750,16 +6766,6 @@ msgid "" "What action should be taken?:" msgstr "" -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/shader_editor_plugin.cpp -msgid "Reload" -msgstr "" - -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/shader_editor_plugin.cpp -msgid "Resave" -msgstr "" - #: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp msgid "Debugger" msgstr "" @@ -9602,6 +9608,13 @@ msgid "Projects" msgstr "" #: editor/project_manager.cpp +#, fuzzy +msgid "Loading, please wait..." +msgstr "" +"Fitxategiak arakatzen,\n" +"Itxaron mesedez..." + +#: editor/project_manager.cpp msgid "Last Modified" msgstr "" diff --git a/editor/translations/fa.po b/editor/translations/fa.po index 7445611ef2..a6b5b83312 100644 --- a/editor/translations/fa.po +++ b/editor/translations/fa.po @@ -3046,6 +3046,23 @@ msgid "Open & Run a Script" msgstr "گشودن Ùˆ اجرای یک اسکریپت" #: editor/editor_node.cpp +#, fuzzy +msgid "" +"The following files are newer on disk.\n" +"What action should be taken?" +msgstr "استخراج پرونده های زیر از بسته بندی انجام نشد:" + +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp +msgid "Reload" +msgstr "" + +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp +msgid "Resave" +msgstr "" + +#: editor/editor_node.cpp msgid "New Inherited" msgstr "وارث جدید" @@ -7028,16 +7045,6 @@ msgid "" "What action should be taken?:" msgstr "" -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/shader_editor_plugin.cpp -msgid "Reload" -msgstr "" - -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/shader_editor_plugin.cpp -msgid "Resave" -msgstr "" - #: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp msgid "Debugger" msgstr "" @@ -10063,6 +10070,11 @@ msgid "Projects" msgstr "Ø·Ø±Ø Ù‡Ø§" #: editor/project_manager.cpp +#, fuzzy +msgid "Loading, please wait..." +msgstr "بارگیری" + +#: editor/project_manager.cpp msgid "Last Modified" msgstr "" diff --git a/editor/translations/fi.po b/editor/translations/fi.po index 765ce4810c..2768e46e1b 100644 --- a/editor/translations/fi.po +++ b/editor/translations/fi.po @@ -15,7 +15,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2021-01-21 11:57+0000\n" +"PO-Revision-Date: 2021-02-05 23:44+0000\n" "Last-Translator: Tapani Niemi <tapani.niemi@kapsi.fi>\n" "Language-Team: Finnish <https://hosted.weblate.org/projects/godot-engine/" "godot/fi/>\n" @@ -3129,6 +3129,25 @@ msgid "Open & Run a Script" msgstr "Avaa ja suorita skripti" #: editor/editor_node.cpp +#, fuzzy +msgid "" +"The following files are newer on disk.\n" +"What action should be taken?" +msgstr "" +"Seuraavat tiedostot ovat uudempia levyllä.\n" +"Mikä toimenpide tulisi suorittaa?:" + +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp +msgid "Reload" +msgstr "Lataa uudelleen" + +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp +msgid "Resave" +msgstr "Tallenna uudelleen" + +#: editor/editor_node.cpp msgid "New Inherited" msgstr "Uusi peritty skene" @@ -6999,16 +7018,6 @@ msgstr "" "Seuraavat tiedostot ovat uudempia levyllä.\n" "Mikä toimenpide tulisi suorittaa?:" -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/shader_editor_plugin.cpp -msgid "Reload" -msgstr "Lataa uudelleen" - -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/shader_editor_plugin.cpp -msgid "Resave" -msgstr "Tallenna uudelleen" - #: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp msgid "Debugger" msgstr "Debuggeri" @@ -7327,9 +7336,8 @@ msgid "Yaw" msgstr "Käännös (yaw)" #: editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "Size" -msgstr "Koko: " +msgstr "Koko" #: editor/plugins/spatial_editor_plugin.cpp msgid "Objects Drawn" @@ -10014,6 +10022,11 @@ msgid "Projects" msgstr "Projektit" #: editor/project_manager.cpp +#, fuzzy +msgid "Loading, please wait..." +msgstr "Noudetaan peilipalvelimia, hetkinen..." + +#: editor/project_manager.cpp msgid "Last Modified" msgstr "Viimeksi muutettu" diff --git a/editor/translations/fil.po b/editor/translations/fil.po index ef79d29343..40dc021b75 100644 --- a/editor/translations/fil.po +++ b/editor/translations/fil.po @@ -2992,6 +2992,22 @@ msgid "Open & Run a Script" msgstr "" #: editor/editor_node.cpp +msgid "" +"The following files are newer on disk.\n" +"What action should be taken?" +msgstr "" + +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp +msgid "Reload" +msgstr "" + +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp +msgid "Resave" +msgstr "" + +#: editor/editor_node.cpp msgid "New Inherited" msgstr "" @@ -6750,16 +6766,6 @@ msgid "" "What action should be taken?:" msgstr "" -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/shader_editor_plugin.cpp -msgid "Reload" -msgstr "" - -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/shader_editor_plugin.cpp -msgid "Resave" -msgstr "" - #: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp msgid "Debugger" msgstr "" @@ -9602,6 +9608,10 @@ msgid "Projects" msgstr "" #: editor/project_manager.cpp +msgid "Loading, please wait..." +msgstr "" + +#: editor/project_manager.cpp msgid "Last Modified" msgstr "" diff --git a/editor/translations/fr.po b/editor/translations/fr.po index 4493eff913..a0ac83396b 100644 --- a/editor/translations/fr.po +++ b/editor/translations/fr.po @@ -3239,6 +3239,24 @@ msgid "Open & Run a Script" msgstr "Ouvrir et exécuter un script" #: editor/editor_node.cpp +msgid "" +"The following files are newer on disk.\n" +"What action should be taken?" +msgstr "" +"Les fichiers suivants sont plus récents sur le disque.\n" +"Quelle action doit être prise ?" + +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp +msgid "Reload" +msgstr "Recharger" + +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp +msgid "Resave" +msgstr "Ré-enregistrer" + +#: editor/editor_node.cpp msgid "New Inherited" msgstr "Nouveau hérité" @@ -7133,16 +7151,6 @@ msgstr "" "Les fichiers suivants sont plus récents sur le disque.\n" "Quelle action doit être prise ? :" -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/shader_editor_plugin.cpp -msgid "Reload" -msgstr "Recharger" - -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/shader_editor_plugin.cpp -msgid "Resave" -msgstr "Ré-enregistrer" - #: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp msgid "Debugger" msgstr "Débogueur" @@ -10170,6 +10178,10 @@ msgid "Projects" msgstr "Projets" #: editor/project_manager.cpp +msgid "Loading, please wait..." +msgstr "Chargement en cours, veuillez patienter..." + +#: editor/project_manager.cpp msgid "Last Modified" msgstr "Dernière modification" diff --git a/editor/translations/ga.po b/editor/translations/ga.po index 206dad7441..2e97bc49ee 100644 --- a/editor/translations/ga.po +++ b/editor/translations/ga.po @@ -2986,6 +2986,22 @@ msgid "Open & Run a Script" msgstr "" #: editor/editor_node.cpp +msgid "" +"The following files are newer on disk.\n" +"What action should be taken?" +msgstr "" + +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp +msgid "Reload" +msgstr "" + +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp +msgid "Resave" +msgstr "" + +#: editor/editor_node.cpp msgid "New Inherited" msgstr "" @@ -6744,16 +6760,6 @@ msgid "" "What action should be taken?:" msgstr "" -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/shader_editor_plugin.cpp -msgid "Reload" -msgstr "" - -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/shader_editor_plugin.cpp -msgid "Resave" -msgstr "" - #: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp msgid "Debugger" msgstr "" @@ -9597,6 +9603,10 @@ msgid "Projects" msgstr "" #: editor/project_manager.cpp +msgid "Loading, please wait..." +msgstr "" + +#: editor/project_manager.cpp msgid "Last Modified" msgstr "" diff --git a/editor/translations/gl.po b/editor/translations/gl.po index c3efe67d46..8a4250e00e 100644 --- a/editor/translations/gl.po +++ b/editor/translations/gl.po @@ -1,13 +1,14 @@ -# LANGUAGE translation of the Godot Engine editor. +# Galician translation of the Godot Engine editor. # Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. # Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). # This file is distributed under the same license as the Godot source code. # # Andy Barcia <andybarcia4@gmail.com>, 2021. +# PokeGalaico <abloodyfreaks@gmail.com>, 2021. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" -"PO-Revision-Date: 2021-02-05 09:20+0000\n" +"PO-Revision-Date: 2021-02-15 10:51+0000\n" "Last-Translator: Andy Barcia <andybarcia4@gmail.com>\n" "Language-Team: Galician <https://hosted.weblate.org/projects/godot-engine/" "godot/gl/>\n" @@ -237,7 +238,7 @@ msgstr "Clips de Audio:" #: editor/animation_track_editor.cpp msgid "Anim Clips:" -msgstr "" +msgstr "Clips de Animación:" #: editor/animation_track_editor.cpp msgid "Change Track Path" @@ -281,7 +282,7 @@ msgstr "Discreto" #: editor/animation_track_editor.cpp msgid "Trigger" -msgstr "" +msgstr "Detonante (Trigger)" #: editor/animation_track_editor.cpp msgid "Capture" @@ -514,7 +515,7 @@ msgstr "Agrupar pistas por nodo ou mostralas coma unha simple lista." #: editor/animation_track_editor.cpp msgid "Snap:" -msgstr "" +msgstr "Axuste de CuadrÃcula:" #: editor/animation_track_editor.cpp msgid "Animation step value." @@ -658,11 +659,11 @@ msgstr "Engadir Clip de Pista de Audio" #: editor/animation_track_editor_plugins.cpp msgid "Change Audio Track Clip Start Offset" -msgstr "" +msgstr "Cambiar Inicio do Clip na Pista de Audio" #: editor/animation_track_editor_plugins.cpp msgid "Change Audio Track Clip End Offset" -msgstr "" +msgstr "Cambiar Final do Clip na Pista de Audio" #: editor/array_property_edit.cpp msgid "Resize Array" @@ -959,11 +960,11 @@ msgstr "Descrición:" #: editor/dependency_editor.cpp msgid "Search Replacement For:" -msgstr "" +msgstr "Buscar Substitución Para:" #: editor/dependency_editor.cpp msgid "Dependencies For:" -msgstr "" +msgstr "Dependencias De:" #: editor/dependency_editor.cpp msgid "" @@ -971,7 +972,7 @@ msgid "" "Changes will only take effect when reloaded." msgstr "" "A escena '%s' agora mesmo está sendo editada.\n" -"Os cambios so terán efecto cando sexa recargada." +"Os cambios só terán efecto cando sexa recargada." #: editor/dependency_editor.cpp msgid "" @@ -979,7 +980,7 @@ msgid "" "Changes will only take effect when reloaded." msgstr "" "O recurso '%s' agora mesmo está sendo usado.\n" -"Os cambios so terán efecto cando sexa recargado." +"Os cambios só terán efecto cando sexa recargado." #: editor/dependency_editor.cpp #: modules/gdnative/gdnative_library_editor_plugin.cpp @@ -1001,7 +1002,7 @@ msgstr "Dependencias:" #: editor/dependency_editor.cpp msgid "Fix Broken" -msgstr "" +msgstr "Corrixir Erros" #: editor/dependency_editor.cpp msgid "Dependency Editor" @@ -1101,7 +1102,7 @@ msgstr "É Dono de" #: editor/dependency_editor.cpp msgid "Resources Without Explicit Ownership:" -msgstr "" +msgstr "Recursos Sen Dono ExplÃcito:" #: editor/dictionary_property_edit.cpp msgid "Change Dictionary Key" @@ -1444,15 +1445,15 @@ msgstr "Non debe coincidir co nome dunha constante global xa existente." #: editor/editor_autoload_settings.cpp msgid "Keyword cannot be used as an autoload name." -msgstr "" +msgstr "Unha palabra clave non pode usarse como nome dun AutoCargador." #: editor/editor_autoload_settings.cpp msgid "Autoload '%s' already exists!" -msgstr "" +msgstr "Xa existe un AutoCargador nomeado '%s'!" #: editor/editor_autoload_settings.cpp msgid "Rename Autoload" -msgstr "" +msgstr "Renomear AutoCargador" #: editor/editor_autoload_settings.cpp msgid "Toggle AutoLoad Globals" @@ -1460,11 +1461,11 @@ msgstr "" #: editor/editor_autoload_settings.cpp msgid "Move Autoload" -msgstr "" +msgstr "Mover AutoCargador" #: editor/editor_autoload_settings.cpp msgid "Remove Autoload" -msgstr "" +msgstr "Eliminar AutoCargador" #: editor/editor_autoload_settings.cpp editor/editor_plugin_settings.cpp msgid "Enable" @@ -1472,15 +1473,15 @@ msgstr "Activar" #: editor/editor_autoload_settings.cpp msgid "Rearrange Autoloads" -msgstr "" +msgstr "Reordenar AutoCargadores" #: editor/editor_autoload_settings.cpp msgid "Can't add autoload:" -msgstr "" +msgstr "Non se puido engadir AutoCargador:" #: editor/editor_autoload_settings.cpp msgid "Add AutoLoad" -msgstr "" +msgstr "Engadir AutoCargador" #: editor/editor_autoload_settings.cpp editor/editor_file_dialog.cpp #: editor/editor_plugin_settings.cpp @@ -1559,7 +1560,7 @@ msgstr "Elixir" #: editor/editor_export.cpp msgid "Storing File:" -msgstr "" +msgstr "Gardando Arquivo:" #: editor/editor_export.cpp msgid "No export template found at the expected path:" @@ -1660,77 +1661,78 @@ msgstr "Biblioteca de Assets" #: editor/editor_feature_profile.cpp msgid "Scene Tree Editing" -msgstr "" +msgstr "Edición de Ãrbore de Escenas" #: editor/editor_feature_profile.cpp msgid "Node Dock" -msgstr "" +msgstr "Panel de Nodos" #: editor/editor_feature_profile.cpp msgid "FileSystem Dock" -msgstr "" +msgstr "Panel de Sistema de Arquivos" #: editor/editor_feature_profile.cpp msgid "Import Dock" -msgstr "" +msgstr "Panel de Importación" #: editor/editor_feature_profile.cpp msgid "Erase profile '%s'? (no undo)" -msgstr "" +msgstr "Eliminar perfil '%s'? (non se pode deshacer)" #: editor/editor_feature_profile.cpp msgid "Profile must be a valid filename and must not contain '.'" -msgstr "" +msgstr "Un perfil debe ter un nome de arquivo válido, e non pode conter '.'" #: editor/editor_feature_profile.cpp msgid "Profile with this name already exists." -msgstr "" +msgstr "Un perfil con este nome xa existe." #: editor/editor_feature_profile.cpp msgid "(Editor Disabled, Properties Disabled)" -msgstr "" +msgstr "(Editor Desactivado, Propiedades Desactivadas)" #: editor/editor_feature_profile.cpp msgid "(Properties Disabled)" -msgstr "" +msgstr "(Propiedades Desactivadas)" #: editor/editor_feature_profile.cpp msgid "(Editor Disabled)" -msgstr "" +msgstr "(Editor Desactivado)" #: editor/editor_feature_profile.cpp msgid "Class Options:" -msgstr "" +msgstr "Opcións de Clase:" #: editor/editor_feature_profile.cpp msgid "Enable Contextual Editor" -msgstr "" +msgstr "Activar o Editor Contextual" #: editor/editor_feature_profile.cpp msgid "Enabled Properties:" -msgstr "" +msgstr "Propiedades Activadas:" #: editor/editor_feature_profile.cpp msgid "Enabled Features:" -msgstr "" +msgstr "CaracterÃsticas Activadas:" #: editor/editor_feature_profile.cpp msgid "Enabled Classes:" -msgstr "" +msgstr "Clases Activadas:" #: editor/editor_feature_profile.cpp msgid "File '%s' format is invalid, import aborted." -msgstr "" +msgstr "O formato '%s' do arquivo non é válido, a importación foi cancelada." #: editor/editor_feature_profile.cpp msgid "" "Profile '%s' already exists. Remove it first before importing, import " "aborted." msgstr "" +"O perfil '%s' xa existe. ElimÃnao antes de importar; importación abortada." #: editor/editor_feature_profile.cpp msgid "Error saving profile to path: '%s'." -msgstr "" +msgstr "Erro gardando o perfil á ruta: '%s'." #: editor/editor_feature_profile.cpp msgid "Unset" @@ -1738,151 +1740,152 @@ msgstr "" #: editor/editor_feature_profile.cpp msgid "Current Profile:" -msgstr "" +msgstr "Perfil Actual:" #: editor/editor_feature_profile.cpp msgid "Make Current" -msgstr "" +msgstr "Convertelo no Actual" #: editor/editor_feature_profile.cpp #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/version_control_editor_plugin.cpp msgid "New" -msgstr "" +msgstr "Novo" #: editor/editor_feature_profile.cpp editor/editor_node.cpp #: editor/project_manager.cpp msgid "Import" -msgstr "" +msgstr "Importación" #: editor/editor_feature_profile.cpp editor/project_export.cpp msgid "Export" -msgstr "" +msgstr "Exportación" #: editor/editor_feature_profile.cpp msgid "Available Profiles:" -msgstr "" +msgstr "Perfils Dispoñibles:" #: editor/editor_feature_profile.cpp msgid "Class Options" -msgstr "" +msgstr "Opcións de Clase" #: editor/editor_feature_profile.cpp msgid "New profile name:" -msgstr "" +msgstr "Nome do novo perfil:" #: editor/editor_feature_profile.cpp msgid "Erase Profile" -msgstr "" +msgstr "Eliminar Perfil" #: editor/editor_feature_profile.cpp msgid "Godot Feature Profile" -msgstr "" +msgstr "Perfil de CaracterÃsticas de Godot" #: editor/editor_feature_profile.cpp msgid "Import Profile(s)" -msgstr "" +msgstr "Importar Perfil(s)" #: editor/editor_feature_profile.cpp msgid "Export Profile" -msgstr "" +msgstr "Exportar Perfil" #: editor/editor_feature_profile.cpp msgid "Manage Editor Feature Profiles" -msgstr "" +msgstr "Administrar Perfils de CaracterÃsticas de Godot" #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Select Current Folder" -msgstr "" +msgstr "Seleccionar Cartafol Actual" #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "File Exists, Overwrite?" -msgstr "" +msgstr "O arquivo xa existe ¿Queres sobreescribilo?" #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Select This Folder" -msgstr "" +msgstr "Seleccionar Este Cartafol" #: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp msgid "Copy Path" -msgstr "" +msgstr "Copiar Ruta" #: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp msgid "Open in File Manager" -msgstr "" +msgstr "Abrir no Explorador de Arquivos" #: editor/editor_file_dialog.cpp editor/editor_node.cpp #: editor/filesystem_dock.cpp editor/project_manager.cpp msgid "Show in File Manager" -msgstr "" +msgstr "Amosar no Explorador de Arquivos" #: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp msgid "New Folder..." -msgstr "" +msgstr "Novo Cartafol..." #: editor/editor_file_dialog.cpp editor/find_in_files.cpp #: editor/plugins/version_control_editor_plugin.cpp msgid "Refresh" -msgstr "" +msgstr "Actualizar" #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "All Recognized" -msgstr "" +msgstr "Todos Recoñecidos" #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "All Files (*)" -msgstr "" +msgstr "Todos os Arquivos (*)" #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Open a File" -msgstr "" +msgstr "Abrir un Arquivo" #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Open File(s)" -msgstr "" +msgstr "Abrir Arquivo(s)" #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Open a Directory" -msgstr "" +msgstr "Abrir un Directorio" #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Open a File or Directory" -msgstr "" +msgstr "Abrir un Arquivo ou Directorio" #: editor/editor_file_dialog.cpp editor/editor_node.cpp #: editor/editor_properties.cpp editor/inspector_dock.cpp #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/script_editor_plugin.cpp scene/gui/file_dialog.cpp msgid "Save" -msgstr "" +msgstr "Gardar" #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Save a File" -msgstr "" +msgstr "Gardar un Arquivo" #: editor/editor_file_dialog.cpp msgid "Go Back" -msgstr "" +msgstr "Retroceder" #: editor/editor_file_dialog.cpp msgid "Go Forward" -msgstr "" +msgstr "Avanzar" #: editor/editor_file_dialog.cpp msgid "Go Up" -msgstr "" +msgstr "Subir" #: editor/editor_file_dialog.cpp +#, fuzzy msgid "Toggle Hidden Files" -msgstr "" +msgstr "Amosar/Ocultar Arquivos Ocultos" #: editor/editor_file_dialog.cpp msgid "Toggle Favorite" -msgstr "" +msgstr "Act./Desact. Favorito" #: editor/editor_file_dialog.cpp msgid "Toggle Mode" -msgstr "" +msgstr "Act./Desact. Modo" #: editor/editor_file_dialog.cpp msgid "Focus Path" @@ -1890,61 +1893,61 @@ msgstr "" #: editor/editor_file_dialog.cpp msgid "Move Favorite Up" -msgstr "" +msgstr "Subir Favorito" #: editor/editor_file_dialog.cpp msgid "Move Favorite Down" -msgstr "" +msgstr "Baixar Favorito" #: editor/editor_file_dialog.cpp msgid "Go to previous folder." -msgstr "" +msgstr "Ir ao cartafol anterior." #: editor/editor_file_dialog.cpp msgid "Go to next folder." -msgstr "" +msgstr "Ir ao cartafol seguinte." #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Go to parent folder." -msgstr "" +msgstr "Ir ao cartafol padre." #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Refresh files." -msgstr "" +msgstr "Actualizar Arquivos." #: editor/editor_file_dialog.cpp msgid "(Un)favorite current folder." -msgstr "" +msgstr "Quitar cartafol actual de favoritos." #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Toggle the visibility of hidden files." -msgstr "" +msgstr "Amosar/Ocultar arquivos ocultos." #: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp msgid "View items as a grid of thumbnails." -msgstr "" +msgstr "Ver elementos coma unha cuadrÃcula de miniaturas." #: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp msgid "View items as a list." -msgstr "" +msgstr "Ver elementos coma unha lista." #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Directories & Files:" -msgstr "" +msgstr "Directorios e Arquivos:" #: editor/editor_file_dialog.cpp editor/plugins/sprite_editor_plugin.cpp #: editor/plugins/style_box_editor_plugin.cpp #: editor/plugins/theme_editor_plugin.cpp editor/rename_dialog.cpp msgid "Preview:" -msgstr "" +msgstr "Vista Previa:" #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "File:" -msgstr "" +msgstr "Arquivo:" #: editor/editor_file_system.cpp msgid "ScanSources" -msgstr "" +msgstr "Escanear Fontes" #: editor/editor_file_system.cpp msgid "" @@ -1954,52 +1957,53 @@ msgstr "" #: editor/editor_file_system.cpp msgid "(Re)Importing Assets" -msgstr "" +msgstr "(Re)Importando Assets" #: editor/editor_help.cpp editor/plugins/spatial_editor_plugin.cpp msgid "Top" -msgstr "" +msgstr "Superior" #: editor/editor_help.cpp msgid "Class:" -msgstr "" +msgstr "Clase:" #: editor/editor_help.cpp editor/scene_tree_editor.cpp #: editor/script_create_dialog.cpp msgid "Inherits:" -msgstr "" +msgstr "Herda de:" #: editor/editor_help.cpp msgid "Inherited by:" -msgstr "" +msgstr "Herdado de:" #: editor/editor_help.cpp msgid "Description" -msgstr "" +msgstr "Descrición" #: editor/editor_help.cpp msgid "Online Tutorials" -msgstr "" +msgstr "Tutoriales en liña" #: editor/editor_help.cpp msgid "Properties" -msgstr "" +msgstr "Propiedades" #: editor/editor_help.cpp msgid "override:" -msgstr "" +msgstr "sobrescribir:" #: editor/editor_help.cpp msgid "default:" -msgstr "" +msgstr "por defecto:" #: editor/editor_help.cpp msgid "Methods" -msgstr "" +msgstr "Métodos" #: editor/editor_help.cpp +#, fuzzy msgid "Theme Properties" -msgstr "" +msgstr "Propiedades do Tema" #: editor/editor_help.cpp msgid "Enumerations" @@ -2007,120 +2011,124 @@ msgstr "" #: editor/editor_help.cpp msgid "Constants" -msgstr "" +msgstr "Constantes" #: editor/editor_help.cpp msgid "Property Descriptions" -msgstr "" +msgstr "Descrición de Propiedades" #: editor/editor_help.cpp msgid "(value)" -msgstr "" +msgstr "(valor)" #: editor/editor_help.cpp msgid "" "There is currently no description for this property. Please help us by " "[color=$color][url=$url]contributing one[/url][/color]!" msgstr "" +"Actualmente non hai unha descripción desta propiedade. Axúdanos [color=" +"$color][url=$url]contribuÃndo cunha descripción[/url][/color]!" #: editor/editor_help.cpp msgid "Method Descriptions" -msgstr "" +msgstr "Descrición de Métodos" #: editor/editor_help.cpp msgid "" "There is currently no description for this method. Please help us by [color=" "$color][url=$url]contributing one[/url][/color]!" msgstr "" +"Actualmente non hai unha descripción deste método. Axúdanos [color=$color]" +"[url=$url]contribuÃndo cunha descripción[/url][/color]!" #: editor/editor_help_search.cpp editor/editor_node.cpp #: editor/plugins/script_editor_plugin.cpp msgid "Search Help" -msgstr "" +msgstr "Buscar na Axuda" #: editor/editor_help_search.cpp msgid "Case Sensitive" -msgstr "" +msgstr "Distinguir MaÃusculas e Minúsculas" #: editor/editor_help_search.cpp msgid "Show Hierarchy" -msgstr "" +msgstr "Amosar XerarquÃa" #: editor/editor_help_search.cpp msgid "Display All" -msgstr "" +msgstr "Amosar Todo" #: editor/editor_help_search.cpp msgid "Classes Only" -msgstr "" +msgstr "Só Clases" #: editor/editor_help_search.cpp msgid "Methods Only" -msgstr "" +msgstr "Só Métodos" #: editor/editor_help_search.cpp msgid "Signals Only" -msgstr "" +msgstr "Só Sinais" #: editor/editor_help_search.cpp msgid "Constants Only" -msgstr "" +msgstr "Só Constantes" #: editor/editor_help_search.cpp msgid "Properties Only" -msgstr "" +msgstr "Só Propiedades" #: editor/editor_help_search.cpp msgid "Theme Properties Only" -msgstr "" +msgstr "Só Propiedades de Temas" #: editor/editor_help_search.cpp msgid "Member Type" -msgstr "" +msgstr "Tipo do Membro" #: editor/editor_help_search.cpp msgid "Class" -msgstr "" +msgstr "Clase" #: editor/editor_help_search.cpp msgid "Method" -msgstr "" +msgstr "Método" #: editor/editor_help_search.cpp editor/plugins/script_text_editor.cpp msgid "Signal" -msgstr "" +msgstr "Sinal" #: editor/editor_help_search.cpp editor/plugins/theme_editor_plugin.cpp msgid "Constant" -msgstr "" +msgstr "Constante" #: editor/editor_help_search.cpp msgid "Property" -msgstr "" +msgstr "Propiedade" #: editor/editor_help_search.cpp msgid "Theme Property" -msgstr "" +msgstr "Propiedade de Temas" #: editor/editor_inspector.cpp editor/project_settings_editor.cpp msgid "Property:" -msgstr "" +msgstr "Propiedade:" #: editor/editor_inspector.cpp msgid "Set" -msgstr "" +msgstr "Establecer" #: editor/editor_inspector.cpp msgid "Set Multiple:" -msgstr "" +msgstr "Establecer Varios:" #: editor/editor_log.cpp msgid "Output:" -msgstr "" +msgstr "SaÃda:" #: editor/editor_log.cpp editor/plugins/tile_map_editor_plugin.cpp msgid "Copy Selection" -msgstr "" +msgstr "Copiar Selección" #: editor/editor_log.cpp editor/editor_network_profiler.cpp #: editor/editor_profiler.cpp editor/editor_properties.cpp @@ -2130,144 +2138,152 @@ msgstr "" #: modules/gdnative/gdnative_library_editor_plugin.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Clear" -msgstr "" +msgstr "Limpar" #: editor/editor_log.cpp msgid "Clear Output" -msgstr "" +msgstr "Limpar SaÃda" #: editor/editor_network_profiler.cpp editor/editor_node.cpp #: editor/editor_profiler.cpp msgid "Stop" -msgstr "" +msgstr "Deter" #: editor/editor_network_profiler.cpp editor/editor_profiler.cpp #: editor/plugins/animation_state_machine_editor.cpp editor/rename_dialog.cpp msgid "Start" -msgstr "" +msgstr "Iniciar" #: editor/editor_network_profiler.cpp msgid "%s/s" -msgstr "" +msgstr "%s/s" #: editor/editor_network_profiler.cpp msgid "Down" -msgstr "" +msgstr "Baixada" #: editor/editor_network_profiler.cpp msgid "Up" -msgstr "" +msgstr "Subida" #: editor/editor_network_profiler.cpp editor/editor_node.cpp msgid "Node" -msgstr "" +msgstr "Nodo" #: editor/editor_network_profiler.cpp msgid "Incoming RPC" -msgstr "" +msgstr "RPC Entrante" #: editor/editor_network_profiler.cpp msgid "Incoming RSET" -msgstr "" +msgstr "RSET Entrante" #: editor/editor_network_profiler.cpp msgid "Outgoing RPC" -msgstr "" +msgstr "RPC SaÃnte" #: editor/editor_network_profiler.cpp msgid "Outgoing RSET" -msgstr "" +msgstr "RSET SaÃnte" #: editor/editor_node.cpp editor/project_manager.cpp msgid "New Window" -msgstr "" +msgstr "Nova Xanela" #: editor/editor_node.cpp msgid "Imported resources can't be saved." -msgstr "" +msgstr "Os recursos importados non se poden gardar." #: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp #: scene/gui/dialogs.cpp msgid "OK" -msgstr "" +msgstr "Vale" #: editor/editor_node.cpp editor/plugins/animation_player_editor_plugin.cpp msgid "Error saving resource!" -msgstr "" +msgstr "Erro gardando o recurso!" #: editor/editor_node.cpp msgid "" "This resource can't be saved because it does not belong to the edited scene. " "Make it unique first." msgstr "" +"Este recurso non pode gardarse porque non pertence á escena actual. Primero " +"fágao único." #: editor/editor_node.cpp editor/plugins/animation_player_editor_plugin.cpp msgid "Save Resource As..." -msgstr "" +msgstr "Gardar Recurso Como..." #: editor/editor_node.cpp msgid "Can't open file for writing:" -msgstr "" +msgstr "Non se puido abrir o arquivo para escritura:" #: editor/editor_node.cpp msgid "Requested file format unknown:" -msgstr "" +msgstr "O formato do arquivo solicitado é descoñecido:" #: editor/editor_node.cpp msgid "Error while saving." -msgstr "" +msgstr "Erro ao gardar." #: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp msgid "Can't open '%s'. The file could have been moved or deleted." msgstr "" +"Non se puido abrir '%s'. Pode ser que o arquivo fose movido ou eliminado." #: editor/editor_node.cpp msgid "Error while parsing '%s'." -msgstr "" +msgstr "Erro ao analizar sintacticamente '%s'." #: editor/editor_node.cpp msgid "Unexpected end of file '%s'." -msgstr "" +msgstr "Fin de arquivo inesperado en '%s'." #: editor/editor_node.cpp msgid "Missing '%s' or its dependencies." -msgstr "" +msgstr "Non se encontrou '%s' ou as súas dependencias." #: editor/editor_node.cpp msgid "Error while loading '%s'." -msgstr "" +msgstr "Erro ao cargar '%s'." #: editor/editor_node.cpp msgid "Saving Scene" -msgstr "" +msgstr "Gardando Escena" #: editor/editor_node.cpp msgid "Analyzing" -msgstr "" +msgstr "Analizando" #: editor/editor_node.cpp msgid "Creating Thumbnail" -msgstr "" +msgstr "Creando Miniatura" #: editor/editor_node.cpp msgid "This operation can't be done without a tree root." -msgstr "" +msgstr "Esta operación non pode realizarse sen un nodo raÃz." #: editor/editor_node.cpp msgid "" "This scene can't be saved because there is a cyclic instancing inclusion.\n" "Please resolve it and then attempt to save again." msgstr "" +"Esta escena non pode gardarse porque hai unha relación de instanciación " +"cÃclica con outra escena.\n" +"Por favor, solucione o problema e inténteo de novo." #: editor/editor_node.cpp msgid "" "Couldn't save scene. Likely dependencies (instances or inheritance) couldn't " "be satisfied." msgstr "" +"Non se puido gardar a escena. Posiblemente as dependencias (instancias ou " +"herenzas) non puideron satisfacerse." #: editor/editor_node.cpp editor/scene_tree_dock.cpp msgid "Can't overwrite scene that is still open!" -msgstr "" +msgstr "Non se pode sobreescribir escena que sigue aberta!" #: editor/editor_node.cpp msgid "Can't load MeshLibrary for merging!" @@ -2290,6 +2306,9 @@ msgid "" "An error occurred while trying to save the editor layout.\n" "Make sure the editor's user data path is writable." msgstr "" +"Produciuse un erro mentres se trataba de gardar a disposición das ventás do " +"editor.\n" +"Asegúrese de que o cartafol do editor ten dereitos de escritura." #: editor/editor_node.cpp msgid "" @@ -2297,14 +2316,17 @@ msgid "" "To restore the Default layout to its base settings, use the Delete Layout " "option and delete the Default layout." msgstr "" +"A disposición por defecto do editor foi sobreescrita.\n" +"Para devolver a disposición por defecto a súa configuración orixinal, usa a " +"opción 'Eliminar Disposición' e elimina a Disposición por defecto." #: editor/editor_node.cpp msgid "Layout name not found!" -msgstr "" +msgstr "Nome de disposición non encontrada!" #: editor/editor_node.cpp msgid "Restored the Default layout to its base settings." -msgstr "" +msgstr "Restableceuse a disposición por defecto aos seus valores orixinais." #: editor/editor_node.cpp msgid "" @@ -2312,18 +2334,25 @@ msgid "" "Please read the documentation relevant to importing scenes to better " "understand this workflow." msgstr "" +"Este recurso pertence a unha escena importada, polo que non é editable.\n" +"Por favor; lea a documentación referente a importación de escenas para " +"entender o fluxo de traballo." #: editor/editor_node.cpp msgid "" "This resource belongs to a scene that was instanced or inherited.\n" "Changes to it won't be kept when saving the current scene." msgstr "" +"Este recurso pertence a unha escena instanciada ou herdada.\n" +"Os cambios que lle faga non se gardarán cando garde a escena actual." #: editor/editor_node.cpp msgid "" "This resource was imported, so it's not editable. Change its settings in the " "import panel and then re-import." msgstr "" +"Este recurso foi importado, polo que non é editable. Cambia a súa " +"configuración no panel de importación, e reimportao." #: editor/editor_node.cpp msgid "" @@ -2332,6 +2361,10 @@ msgid "" "Please read the documentation relevant to importing scenes to better " "understand this workflow." msgstr "" +"Esta escena foi importada, polo que cambios na escena non serán gardados.\n" +"Instanciala ou herdala permitirá facerlle cambios permanentes.\n" +"Por favor, lea a documentación referente a importación de escenas para " +"entender o fluxo de traballo." #: editor/editor_node.cpp msgid "" @@ -2339,70 +2372,74 @@ msgid "" "Please read the documentation relevant to debugging to better understand " "this workflow." msgstr "" +"Este é un obxecto remoto, polo que os cambios que lle faga non serán " +"permanentes.\n" +"Por favor; lea a documentación referente a depuración para entender o fluxo " +"de traballo." #: editor/editor_node.cpp msgid "There is no defined scene to run." -msgstr "" +msgstr "Non hai unha escena definida para executar." #: editor/editor_node.cpp msgid "Save scene before running..." -msgstr "" +msgstr "Garda a escena antes de executala..." #: editor/editor_node.cpp msgid "Could not start subprocess!" -msgstr "" +msgstr "Non se puido iniciar subproceso!" #: editor/editor_node.cpp editor/filesystem_dock.cpp msgid "Open Scene" -msgstr "" +msgstr "Abrir Escena" #: editor/editor_node.cpp msgid "Open Base Scene" -msgstr "" +msgstr "Abrir Escena Base" #: editor/editor_node.cpp msgid "Quick Open..." -msgstr "" +msgstr "Apertura Rápida..." #: editor/editor_node.cpp msgid "Quick Open Scene..." -msgstr "" +msgstr "Apertura Rápida de Escena..." #: editor/editor_node.cpp msgid "Quick Open Script..." -msgstr "" +msgstr "Apertura Rápida de Script..." #: editor/editor_node.cpp msgid "Save & Close" -msgstr "" +msgstr "Gardar e Pechar" #: editor/editor_node.cpp msgid "Save changes to '%s' before closing?" -msgstr "" +msgstr "Gardar os cambios de '%s' antes de pechar?" #: editor/editor_node.cpp msgid "Saved %s modified resource(s)." -msgstr "" +msgstr "Gardado(s) %s recurso(s) modificado(s)." #: editor/editor_node.cpp msgid "A root node is required to save the scene." -msgstr "" +msgstr "NecesÃtase un nodo raÃz para gardar a escena." #: editor/editor_node.cpp msgid "Save Scene As..." -msgstr "" +msgstr "Gardar Escena Como..." #: editor/editor_node.cpp editor/scene_tree_dock.cpp msgid "This operation can't be done without a scene." -msgstr "" +msgstr "Esta operación non pode realizarse se unha escena." #: editor/editor_node.cpp msgid "Export Mesh Library" -msgstr "" +msgstr "Exportar Biblioteca de Mallas" #: editor/editor_node.cpp msgid "This operation can't be done without a root node." -msgstr "" +msgstr "Esta operación non pode realizarse sen un nodo raÃz." #: editor/editor_node.cpp msgid "Export Tile Set" @@ -2410,122 +2447,144 @@ msgstr "" #: editor/editor_node.cpp msgid "This operation can't be done without a selected node." -msgstr "" +msgstr "Esta operación non pode realizarse sen un nodo seleccionado." #: editor/editor_node.cpp msgid "Current scene not saved. Open anyway?" -msgstr "" +msgstr "Escena actual non gardada ¿Abrir de todos os modos?" #: editor/editor_node.cpp msgid "Can't reload a scene that was never saved." -msgstr "" +msgstr "Non se pode volver a cargar unha escena que nunca foi gardada." #: editor/editor_node.cpp msgid "Reload Saved Scene" -msgstr "" +msgstr "Recargar Escena Gardada" #: editor/editor_node.cpp msgid "" "The current scene has unsaved changes.\n" "Reload the saved scene anyway? This action cannot be undone." msgstr "" +"A escena actual ten cambios non gardados.\n" +"Quere volver a cargar a escena cargada de todos os modos? Esta acción non se " +"pode deshacer." #: editor/editor_node.cpp msgid "Quick Run Scene..." -msgstr "" +msgstr "Execución Rápida de Escena..." #: editor/editor_node.cpp msgid "Quit" -msgstr "" +msgstr "SaÃr" #: editor/editor_node.cpp msgid "Yes" -msgstr "" +msgstr "Si" #: editor/editor_node.cpp msgid "Exit the editor?" -msgstr "" +msgstr "SaÃr do editor?" #: editor/editor_node.cpp msgid "Open Project Manager?" -msgstr "" +msgstr "Abrir o Administrador de Proxectos?" #: editor/editor_node.cpp msgid "Save & Quit" -msgstr "" +msgstr "Gardar e SaÃr" #: editor/editor_node.cpp msgid "Save changes to the following scene(s) before quitting?" -msgstr "" +msgstr "Gardar os cambios nas seguintes escenas antes de saÃr?" #: editor/editor_node.cpp msgid "Save changes the following scene(s) before opening Project Manager?" msgstr "" +"Gardar os cambios nas seguintes escenas antes de abrir o Administrador de " +"Proxectos?" #: editor/editor_node.cpp msgid "" "This option is deprecated. Situations where refresh must be forced are now " "considered a bug. Please report." msgstr "" +"Esta opción está anticuada. As situacións nas que a actualización debe ser " +"forzada agora considéranse un erro. Por favor, repórtao." #: editor/editor_node.cpp msgid "Pick a Main Scene" -msgstr "" +msgstr "Elexir unha Escena Principal" #: editor/editor_node.cpp msgid "Close Scene" -msgstr "" +msgstr "Pechar Escena" #: editor/editor_node.cpp msgid "Reopen Closed Scene" -msgstr "" +msgstr "Reabrir Escena Pechada" #: editor/editor_node.cpp msgid "Unable to enable addon plugin at: '%s' parsing of config failed." msgstr "" +"Non se puido activar a caracterÃstica adicional (Plugin): Fallou a análise " +"sintáctica da configuración de '%s'." #: editor/editor_node.cpp msgid "Unable to find script field for addon plugin at: 'res://addons/%s'." msgstr "" +"Non se puido encontrar o campo do Script na caracterÃstica adicional " +"(Plugin) en 'res://addons/%s'." #: editor/editor_node.cpp msgid "Unable to load addon script from path: '%s'." msgstr "" +"Non se puido cargar Script de caracterÃstica adicional (Addon) na ruta: '%s'." #: editor/editor_node.cpp msgid "" "Unable to load addon script from path: '%s' There seems to be an error in " "the code, please check the syntax." msgstr "" +"Non se puido cargar Script de caracterÃstica adicional (Addon) na ruta: " +"'%s'. Parece que hai un erro no código; por favor, comproba a sintaxe." #: editor/editor_node.cpp msgid "" "Unable to load addon script from path: '%s' Base type is not EditorPlugin." msgstr "" +"Non se puido cargar o Script da caracterÃstica adicional (Plugin): O tipo " +"base de %s non é EditorPlugin." #: editor/editor_node.cpp msgid "Unable to load addon script from path: '%s' Script is not in tool mode." msgstr "" +"Non se puido cargar Script de caracterÃstica adicional (Addon) na ruta: " +"'%s'. O script non está en modo ferramenta (tool)." #: editor/editor_node.cpp msgid "" "Scene '%s' was automatically imported, so it can't be modified.\n" "To make changes to it, a new inherited scene can be created." msgstr "" +"A escena '%s' foi automáticamente importada, polo que non pode modificarse.\n" +"Para facerlle cambios pódese crear unha nova escena herdada." #: editor/editor_node.cpp msgid "" "Error loading scene, it must be inside the project path. Use 'Import' to " "open the scene, then save it inside the project path." msgstr "" +"Erro cargando a escena: debe estar dentro da ruta do proxecto. Usa \"Importar" +"\" para abrir a escena, e despois gardala dentro da ruta do proxecto." #: editor/editor_node.cpp msgid "Scene '%s' has broken dependencies:" -msgstr "" +msgstr "A escena '%s' ten dependencias rotas:" #: editor/editor_node.cpp msgid "Clear Recent Scenes" -msgstr "" +msgstr "Limpar Escenas Recentes" #: editor/editor_node.cpp msgid "" @@ -2533,6 +2592,9 @@ msgid "" "You can change it later in \"Project Settings\" under the 'application' " "category." msgstr "" +"Nunca se definiu unha escena principal. Seleccionar unha?\n" +"Podes cambialo despois na \"Configuración do Proxecto\", na categorÃa " +"\"Aplicación\"." #: editor/editor_node.cpp msgid "" @@ -2540,6 +2602,9 @@ msgid "" "You can change it later in \"Project Settings\" under the 'application' " "category." msgstr "" +"A escena seleccionada '%s' non existe. Seleccionar unha válida?\n" +"Podes cambiala despois en \"Configuración do Proxecto\" na categorÃa " +"\"aplicación\"." #: editor/editor_node.cpp msgid "" @@ -2547,48 +2612,52 @@ msgid "" "You can change it later in \"Project Settings\" under the 'application' " "category." msgstr "" +"A escena seleccionada '%s' non é un arquivo de escenas. Seleccionar un " +"arquivo válido?\n" +"Podes cambialo despois en \"Configuración do Proxecto\" na categorÃa " +"\"aplicación\"." #: editor/editor_node.cpp msgid "Save Layout" -msgstr "" +msgstr "Gardar Disposición" #: editor/editor_node.cpp msgid "Delete Layout" -msgstr "" +msgstr "Eliminar Dispoción" #: editor/editor_node.cpp editor/import_dock.cpp #: editor/script_create_dialog.cpp msgid "Default" -msgstr "" +msgstr "Por Defecto" #: editor/editor_node.cpp editor/editor_properties.cpp #: editor/plugins/script_editor_plugin.cpp editor/property_editor.cpp msgid "Show in FileSystem" -msgstr "" +msgstr "Amosar no Sistema de Arquivos" #: editor/editor_node.cpp msgid "Play This Scene" -msgstr "" +msgstr "Reproducir Esta Escena" #: editor/editor_node.cpp msgid "Close Tab" -msgstr "" +msgstr "Pechar Pestana" #: editor/editor_node.cpp msgid "Undo Close Tab" -msgstr "" +msgstr "Desfacer Pechar Pestana" #: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp msgid "Close Other Tabs" -msgstr "" +msgstr "Pechar Outras Pestanas" #: editor/editor_node.cpp msgid "Close Tabs to the Right" -msgstr "" +msgstr "Pechar Pestanas á Dereita" #: editor/editor_node.cpp msgid "Close All Tabs" -msgstr "" +msgstr "Pechar Todas as Pestanas" #: editor/editor_node.cpp msgid "Switch Scene Tab" @@ -2596,87 +2665,87 @@ msgstr "" #: editor/editor_node.cpp msgid "%d more files or folders" -msgstr "" +msgstr "%d arquivos ou cartafois máis" #: editor/editor_node.cpp msgid "%d more folders" -msgstr "" +msgstr "%d cartafois máis" #: editor/editor_node.cpp msgid "%d more files" -msgstr "" +msgstr "%d arquivos máis" #: editor/editor_node.cpp msgid "Dock Position" -msgstr "" +msgstr "Posición do Panel" #: editor/editor_node.cpp msgid "Distraction Free Mode" -msgstr "" +msgstr "Modo Sen Distraccións" #: editor/editor_node.cpp msgid "Toggle distraction-free mode." -msgstr "" +msgstr "Act./Desact. modo sen distraccións." #: editor/editor_node.cpp msgid "Add a new scene." -msgstr "" +msgstr "Engadir unha nova escena." #: editor/editor_node.cpp msgid "Scene" -msgstr "" +msgstr "Escena" #: editor/editor_node.cpp msgid "Go to previously opened scene." -msgstr "" +msgstr "Ir á escena aberta previamente." #: editor/editor_node.cpp msgid "Copy Text" -msgstr "" +msgstr "Copiar Texto" #: editor/editor_node.cpp msgid "Next tab" -msgstr "" +msgstr "Seguinte pestana" #: editor/editor_node.cpp msgid "Previous tab" -msgstr "" +msgstr "Anterior Pestana" #: editor/editor_node.cpp msgid "Filter Files..." -msgstr "" +msgstr "Filtrar Arquivos..." #: editor/editor_node.cpp msgid "Operations with scene files." -msgstr "" +msgstr "Operacións con arquivos de escenas." #: editor/editor_node.cpp msgid "New Scene" -msgstr "" +msgstr "Nova Escena" #: editor/editor_node.cpp msgid "New Inherited Scene..." -msgstr "" +msgstr "Nova Escena Herdada..." #: editor/editor_node.cpp msgid "Open Scene..." -msgstr "" +msgstr "Abrir Escena..." #: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp msgid "Open Recent" -msgstr "" +msgstr "Abrir Recente" #: editor/editor_node.cpp msgid "Save Scene" -msgstr "" +msgstr "Gardar Escena" #: editor/editor_node.cpp msgid "Save All Scenes" -msgstr "" +msgstr "Gardar Todas as Escenas" #: editor/editor_node.cpp msgid "Convert To..." -msgstr "" +msgstr "Converter a..." #: editor/editor_node.cpp msgid "MeshLibrary..." @@ -2689,41 +2758,41 @@ msgstr "" #: editor/editor_node.cpp editor/plugins/script_text_editor.cpp #: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Undo" -msgstr "" +msgstr "Desfacer" #: editor/editor_node.cpp editor/plugins/script_text_editor.cpp #: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Redo" -msgstr "" +msgstr "Refacer" #: editor/editor_node.cpp msgid "Miscellaneous project or scene-wide tools." -msgstr "" +msgstr "Ferramentas varias do proxecto ou escena." #: editor/editor_node.cpp editor/project_manager.cpp #: editor/script_create_dialog.cpp msgid "Project" -msgstr "" +msgstr "Proxecto" #: editor/editor_node.cpp msgid "Project Settings..." -msgstr "" +msgstr "Axustes do Proxecto..." #: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp msgid "Version Control" -msgstr "" +msgstr "Control de Versións" #: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp msgid "Set Up Version Control" -msgstr "" +msgstr "Configurar Control de Versións" #: editor/editor_node.cpp msgid "Shut Down Version Control" -msgstr "" +msgstr "Desactivar Control de Versións" #: editor/editor_node.cpp msgid "Export..." -msgstr "" +msgstr "Exportar..." #: editor/editor_node.cpp msgid "Install Android Build Template..." @@ -2731,28 +2800,28 @@ msgstr "" #: editor/editor_node.cpp msgid "Open Project Data Folder" -msgstr "" +msgstr "Abrir Cartafol de Datos do Proxecto" #: editor/editor_node.cpp editor/plugins/tile_set_editor_plugin.cpp msgid "Tools" -msgstr "" +msgstr "Ferramentas" #: editor/editor_node.cpp msgid "Orphan Resource Explorer..." -msgstr "" +msgstr "Explorador de Recursos Orfos..." #: editor/editor_node.cpp msgid "Quit to Project List" -msgstr "" +msgstr "SaÃr á Lista de Proxectos" #: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp #: editor/project_export.cpp msgid "Debug" -msgstr "" +msgstr "Depuración" #: editor/editor_node.cpp msgid "Deploy with Remote Debug" -msgstr "" +msgstr "Exportar con Depuración Remota" #: editor/editor_node.cpp msgid "" @@ -2763,10 +2832,17 @@ msgid "" "mobile device).\n" "You don't need to enable it to use the GDScript debugger locally." msgstr "" +"Cando esta opción está activada, usar o despregue dun só clic fará que o " +"executable intente conectarse a IP deste computador, para poder depurar o " +"proxecto mentres este está executandose no dispositivo.\n" +"Esta opción está pensada para ser utilizada coa depuración remota " +"(normalmente nun dispositivo móbil).\n" +"Non necesita activar esta opción para utilizar o depurador de GDScript de " +"forma local." #: editor/editor_node.cpp msgid "Small Deploy with Network Filesystem" -msgstr "" +msgstr "Exportación Reducida co Sistema de Arquivos en Rede" #: editor/editor_node.cpp msgid "" @@ -2777,6 +2853,12 @@ msgid "" "On Android, deploying will use the USB cable for faster performance. This " "option speeds up testing for projects with large assets." msgstr "" +"Cando esta opción está activada, usar o despregue don só clic para Android " +"exportará só o executable, sen os datos do proxecto.\n" +"O sistema de arquivos proporcionarase por o editor na rede.\n" +"En Android ao despregar a aplicación usarase o USB para obter maior " +"rendemento. Esta opción acelera o proceso de proba en proxectos con gran " +"cantidade de Assets." #: editor/editor_node.cpp msgid "Visible Collision Shapes" @@ -2790,7 +2872,7 @@ msgstr "" #: editor/editor_node.cpp msgid "Visible Navigation" -msgstr "" +msgstr "Navegación Visible" #: editor/editor_node.cpp msgid "" @@ -2800,7 +2882,7 @@ msgstr "" #: editor/editor_node.cpp msgid "Synchronize Scene Changes" -msgstr "" +msgstr "Sincronizar Cambios na Escena" #: editor/editor_node.cpp msgid "" @@ -2809,10 +2891,14 @@ msgid "" "When used remotely on a device, this is more efficient when the network " "filesystem option is enabled." msgstr "" +"Cando esta opción está activada, calquera cambio na escena no editor verase " +"reflectido no proxecto en execución.\n" +"Cando é usado remotamente nun dispositivo, é máis eficiente cando o sistema " +"de arquivos en rede está activado." #: editor/editor_node.cpp msgid "Synchronize Script Changes" -msgstr "" +msgstr "Sincronizar Cambios nos Scripts" #: editor/editor_node.cpp msgid "" @@ -2821,50 +2907,56 @@ msgid "" "When used remotely on a device, this is more efficient when the network " "filesystem option is enabled." msgstr "" +"Cando esta opción está activada, calquera script gardada será recargada no " +"proxecto mentras este está en execución.\n" +"Cando é usado remotamente nun dispositivo, é máis eficiente cando o sistema " +"de arquivos en rede está activado." #: editor/editor_node.cpp editor/script_create_dialog.cpp msgid "Editor" -msgstr "" +msgstr "Editor" #: editor/editor_node.cpp msgid "Editor Settings..." -msgstr "" +msgstr "Configuración do Editor..." #: editor/editor_node.cpp msgid "Editor Layout" -msgstr "" +msgstr "Disposición das Ventás do Editor" #: editor/editor_node.cpp msgid "Take Screenshot" -msgstr "" +msgstr "Captura de Pantalla" #: editor/editor_node.cpp msgid "Screenshots are stored in the Editor Data/Settings Folder." msgstr "" +"As capturas de pantalla gárdanse no cartafol de Datos/Configuración do " +"Editor." #: editor/editor_node.cpp msgid "Toggle Fullscreen" -msgstr "" +msgstr "Act./Desact. Pantalla Completa" #: editor/editor_node.cpp msgid "Toggle System Console" -msgstr "" +msgstr "Act./Desact. Consola do Sistema" #: editor/editor_node.cpp msgid "Open Editor Data/Settings Folder" -msgstr "" +msgstr "Abrir Cartafol de Datos/Configuración do Editor" #: editor/editor_node.cpp msgid "Open Editor Data Folder" -msgstr "" +msgstr "Abrir Cartafol de Datos do Editor" #: editor/editor_node.cpp msgid "Open Editor Settings Folder" -msgstr "" +msgstr "Abrir Cartafol de Configuración do Editor" #: editor/editor_node.cpp msgid "Manage Editor Features..." -msgstr "" +msgstr "Administrar CaracterÃsticas do Editor..." #: editor/editor_node.cpp msgid "Manage Export Templates..." @@ -2872,7 +2964,7 @@ msgstr "" #: editor/editor_node.cpp editor/plugins/shader_editor_plugin.cpp msgid "Help" -msgstr "" +msgstr "Axuda" #: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp @@ -2880,89 +2972,89 @@ msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp editor/project_manager.cpp #: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp msgid "Search" -msgstr "" +msgstr "Buscar" #: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp #: editor/plugins/shader_editor_plugin.cpp msgid "Online Docs" -msgstr "" +msgstr "Documentación En Liña" #: editor/editor_node.cpp msgid "Q&A" -msgstr "" +msgstr "Preguntas e Respostas" #: editor/editor_node.cpp msgid "Report a Bug" -msgstr "" +msgstr "Reportar un Erro" #: editor/editor_node.cpp msgid "Send Docs Feedback" -msgstr "" +msgstr "Reportar Problema ca Documentación" #: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp msgid "Community" -msgstr "" +msgstr "Comunidade" #: editor/editor_node.cpp msgid "About" -msgstr "" +msgstr "Acerca De" #: editor/editor_node.cpp msgid "Play the project." -msgstr "" +msgstr "Reproduce o proxecto." #: editor/editor_node.cpp msgid "Play" -msgstr "" +msgstr "Executar" #: editor/editor_node.cpp msgid "Pause the scene execution for debugging." -msgstr "" +msgstr "Pausa a execución da escena para a depuración." #: editor/editor_node.cpp msgid "Pause Scene" -msgstr "" +msgstr "Pausar Escena" #: editor/editor_node.cpp msgid "Stop the scene." -msgstr "" +msgstr "Detén a escena." #: editor/editor_node.cpp msgid "Play the edited scene." -msgstr "" +msgstr "Reproduce a escena actual." #: editor/editor_node.cpp msgid "Play Scene" -msgstr "" +msgstr "Executar Escena" #: editor/editor_node.cpp msgid "Play custom scene" -msgstr "" +msgstr "Executar escena a elixir" #: editor/editor_node.cpp msgid "Play Custom Scene" -msgstr "" +msgstr "Executar Escena a Elixir" #: editor/editor_node.cpp msgid "Changing the video driver requires restarting the editor." -msgstr "" +msgstr "Cambiar o controlador de vÃdeo require reiniciar o editor." #: editor/editor_node.cpp editor/project_settings_editor.cpp #: editor/settings_config_dialog.cpp msgid "Save & Restart" -msgstr "" +msgstr "Gardar e Reinicar" #: editor/editor_node.cpp msgid "Spins when the editor window redraws." -msgstr "" +msgstr "Xira cando o editor actualiza a pantalla." #: editor/editor_node.cpp msgid "Update Continuously" -msgstr "" +msgstr "Actualizar de Maneira Continua" #: editor/editor_node.cpp msgid "Update When Changed" -msgstr "" +msgstr "Actualizar Cando Sexa Necesario" #: editor/editor_node.cpp msgid "Hide Update Spinner" @@ -2970,23 +3062,23 @@ msgstr "" #: editor/editor_node.cpp msgid "FileSystem" -msgstr "" +msgstr "Sistema de Arquivos" #: editor/editor_node.cpp msgid "Inspector" -msgstr "" +msgstr "Inspector" #: editor/editor_node.cpp msgid "Expand Bottom Panel" -msgstr "" +msgstr "Estender Panel Inferior" #: editor/editor_node.cpp msgid "Output" -msgstr "" +msgstr "SaÃda" #: editor/editor_node.cpp msgid "Don't Save" -msgstr "" +msgstr "Non Gardar" #: editor/editor_node.cpp msgid "Android build template is missing, please install relevant templates." @@ -3025,180 +3117,203 @@ msgstr "" #: editor/editor_node.cpp msgid "Export Library" -msgstr "" +msgstr "Biblioteca de Exportación" #: editor/editor_node.cpp msgid "Merge With Existing" -msgstr "" +msgstr "Combinar Con Existentes" #: editor/editor_node.cpp msgid "Open & Run a Script" +msgstr "Abrir e Executar un Script" + +#: editor/editor_node.cpp +#, fuzzy +msgid "" +"The following files are newer on disk.\n" +"What action should be taken?" msgstr "" +"Este shader foi modificado en disco.\n" +"Que acción deberÃan de tomarse?" + +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp +msgid "Reload" +msgstr "Recargar" + +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp +msgid "Resave" +msgstr "Volver a Gardar" #: editor/editor_node.cpp msgid "New Inherited" -msgstr "" +msgstr "Nova Escena Herdada" #: editor/editor_node.cpp msgid "Load Errors" -msgstr "" +msgstr "Erros durante a Carga" #: editor/editor_node.cpp editor/plugins/tile_map_editor_plugin.cpp msgid "Select" -msgstr "" +msgstr "Elixir" #: editor/editor_node.cpp msgid "Open 2D Editor" -msgstr "" +msgstr "Abrir Editor 2D" #: editor/editor_node.cpp msgid "Open 3D Editor" -msgstr "" +msgstr "Abrir Editor 3D" #: editor/editor_node.cpp msgid "Open Script Editor" -msgstr "" +msgstr "Abrir Editor de Scripts" #: editor/editor_node.cpp editor/project_manager.cpp msgid "Open Asset Library" -msgstr "" +msgstr "Abrir Biblioteca de Assets" #: editor/editor_node.cpp msgid "Open the next Editor" -msgstr "" +msgstr "Abrir o seguinte editor" #: editor/editor_node.cpp msgid "Open the previous Editor" -msgstr "" +msgstr "Abrir o anterior editor" #: editor/editor_node.h msgid "Warning!" -msgstr "" +msgstr "Aviso!" #: editor/editor_path.cpp msgid "No sub-resources found." -msgstr "" +msgstr "Non se atopou ningún sub-recurso." #: editor/editor_plugin.cpp msgid "Creating Mesh Previews" -msgstr "" +msgstr "Creando Previsualización de Mallas" #: editor/editor_plugin.cpp msgid "Thumbnail..." -msgstr "" +msgstr "Miniatura..." #: editor/editor_plugin_settings.cpp msgid "Main Script:" -msgstr "" +msgstr "Script Principal:" #: editor/editor_plugin_settings.cpp msgid "Edit Plugin" -msgstr "" +msgstr "Editar CaracterÃstica Adicional (Plugin)" #: editor/editor_plugin_settings.cpp msgid "Installed Plugins:" -msgstr "" +msgstr "CaracterÃsticas Adicionais (Plugins) Instalados:" #: editor/editor_plugin_settings.cpp editor/plugin_config_dialog.cpp msgid "Update" -msgstr "" +msgstr "Actualizar" #: editor/editor_plugin_settings.cpp editor/plugin_config_dialog.cpp #: editor/plugins/asset_library_editor_plugin.cpp msgid "Version:" -msgstr "" +msgstr "Versión:" #: editor/editor_plugin_settings.cpp editor/plugin_config_dialog.cpp msgid "Author:" -msgstr "" +msgstr "Autor:" #: editor/editor_plugin_settings.cpp msgid "Status:" -msgstr "" +msgstr "Estado:" #: editor/editor_plugin_settings.cpp msgid "Edit:" -msgstr "" +msgstr "Editar:" #: editor/editor_profiler.cpp msgid "Measure:" -msgstr "" +msgstr "Medida:" #: editor/editor_profiler.cpp msgid "Frame Time (sec)" -msgstr "" +msgstr "Duración de Fotograma (seg)" #: editor/editor_profiler.cpp msgid "Average Time (sec)" -msgstr "" +msgstr "Tempo Medio (seg)" #: editor/editor_profiler.cpp msgid "Frame %" -msgstr "" +msgstr "Fotograma %" #: editor/editor_profiler.cpp msgid "Physics Frame %" -msgstr "" +msgstr "Fotograma de FÃsica %" #: editor/editor_profiler.cpp msgid "Inclusive" -msgstr "" +msgstr "Inclusivo" #: editor/editor_profiler.cpp msgid "Self" -msgstr "" +msgstr "Propio" #: editor/editor_profiler.cpp msgid "Frame #:" -msgstr "" +msgstr "Fotograma #:" #: editor/editor_profiler.cpp msgid "Time" -msgstr "" +msgstr "Tempo" #: editor/editor_profiler.cpp msgid "Calls" -msgstr "" +msgstr "Chamadas" #: editor/editor_properties.cpp msgid "Edit Text:" -msgstr "" +msgstr "Editar Texto:" #: editor/editor_properties.cpp editor/script_create_dialog.cpp msgid "On" -msgstr "" +msgstr "Activado" #: editor/editor_properties.cpp msgid "Layer" -msgstr "" +msgstr "Capa" #: editor/editor_properties.cpp msgid "Bit %d, value %d" -msgstr "" +msgstr "Bit %d, valor %d" #: editor/editor_properties.cpp msgid "[Empty]" -msgstr "" +msgstr "[Baleiro]" #: editor/editor_properties.cpp editor/plugins/root_motion_editor_plugin.cpp msgid "Assign..." -msgstr "" +msgstr "Asignar..." #: editor/editor_properties.cpp msgid "Invalid RID" -msgstr "" +msgstr "Identificador de Recurso (RID) inválido" #: editor/editor_properties.cpp msgid "" "The selected resource (%s) does not match any type expected for this " "property (%s)." msgstr "" +"O recurso seleccionado (%s) non coincide con ningún tipo esperado para esta " +"propiedade (%s)." #: editor/editor_properties.cpp msgid "" "Can't create a ViewportTexture on resources saved as a file.\n" "Resource needs to belong to a scene." msgstr "" +"Non se pode crear un ViewportTexture nun recurso gardado coma un arquivo.\n" +"O recurso ten que pertencer a unha escena." #: editor/editor_properties.cpp msgid "" @@ -3210,23 +3325,23 @@ msgstr "" #: editor/editor_properties.cpp editor/property_editor.cpp msgid "Pick a Viewport" -msgstr "" +msgstr "Selecciona unha Mini-Ventá (Viewport)" #: editor/editor_properties.cpp editor/property_editor.cpp msgid "New Script" -msgstr "" +msgstr "Novo Script" #: editor/editor_properties.cpp editor/scene_tree_dock.cpp msgid "Extend Script" -msgstr "" +msgstr "Estender Script" #: editor/editor_properties.cpp editor/property_editor.cpp msgid "New %s" -msgstr "" +msgstr "Novo %s" #: editor/editor_properties.cpp editor/property_editor.cpp msgid "Make Unique" -msgstr "" +msgstr "Facer Único" #: editor/editor_properties.cpp #: editor/plugins/animation_blend_space_1d_editor.cpp @@ -3240,40 +3355,40 @@ msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp editor/property_editor.cpp #: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Paste" -msgstr "" +msgstr "Pegar" #: editor/editor_properties.cpp editor/property_editor.cpp msgid "Convert To %s" -msgstr "" +msgstr "Converter a %s" #: editor/editor_properties.cpp editor/property_editor.cpp msgid "Selected node is not a Viewport!" -msgstr "" +msgstr "O nodo seleccionado non é unha Mini-Ventá (Viewport)!" #: editor/editor_properties_array_dict.cpp msgid "Size: " -msgstr "" +msgstr "Tamaño: " #: editor/editor_properties_array_dict.cpp msgid "Page: " -msgstr "" +msgstr "Páxina: " #: editor/editor_properties_array_dict.cpp #: editor/plugins/theme_editor_plugin.cpp msgid "Remove Item" -msgstr "" +msgstr "Eliminar Elemento" #: editor/editor_properties_array_dict.cpp msgid "New Key:" -msgstr "" +msgstr "Nova Chave:" #: editor/editor_properties_array_dict.cpp msgid "New Value:" -msgstr "" +msgstr "Novo Valor:" #: editor/editor_properties_array_dict.cpp msgid "Add Key/Value Pair" -msgstr "" +msgstr "Engadir Parella Chave/Valor" #: editor/editor_run_native.cpp msgid "" @@ -3281,67 +3396,72 @@ msgid "" "Please add a runnable preset in the Export menu or define an existing preset " "as runnable." msgstr "" +"Non se encontraron axustes de exportación executables para esta plataforma.\n" +"Engade uns axustes de exportación executables, ou define algún xa existente " +"como executable." #: editor/editor_run_script.cpp msgid "Write your logic in the _run() method." -msgstr "" +msgstr "Escribe a túa lóxica no método '_run()'." #: editor/editor_run_script.cpp msgid "There is an edited scene already." -msgstr "" +msgstr "Xa hai unha escena editada." #: editor/editor_run_script.cpp msgid "Couldn't instance script:" -msgstr "" +msgstr "Non se puido instanciar o script:" #: editor/editor_run_script.cpp msgid "Did you forget the 'tool' keyword?" -msgstr "" +msgstr "Olvidaches a palabra clave 'tool'?" #: editor/editor_run_script.cpp msgid "Couldn't run script:" -msgstr "" +msgstr "Non se puido executar o script:" #: editor/editor_run_script.cpp msgid "Did you forget the '_run' method?" -msgstr "" +msgstr "Olvidaches o método '_run'?" #: editor/editor_spin_slider.cpp msgid "Hold Ctrl to round to integers. Hold Shift for more precise changes." msgstr "" +"Mantén pulsado Ctrl para redondear a enteiros. Mantén pulsado Shift para " +"cambios máis precisos." #: editor/editor_sub_scene.cpp msgid "Select Node(s) to Import" -msgstr "" +msgstr "Selecciona o(s) Nodo(s) a Importar" #: editor/editor_sub_scene.cpp editor/project_manager.cpp msgid "Browse" -msgstr "" +msgstr "Examinar" #: editor/editor_sub_scene.cpp msgid "Scene Path:" -msgstr "" +msgstr "Ruta da Escena:" #: editor/editor_sub_scene.cpp msgid "Import From Node:" -msgstr "" +msgstr "Importar Desde Nodo:" #: editor/export_template_manager.cpp msgid "Redownload" -msgstr "" +msgstr "Volver a Descargar" #: editor/export_template_manager.cpp msgid "Uninstall" -msgstr "" +msgstr "Desinstalar" #: editor/export_template_manager.cpp msgid "(Installed)" -msgstr "" +msgstr "(Instalado)" #: editor/export_template_manager.cpp #: editor/plugins/asset_library_editor_plugin.cpp msgid "Download" -msgstr "" +msgstr "Descargar" #: editor/export_template_manager.cpp msgid "Official export templates aren't available for development builds." @@ -3349,11 +3469,11 @@ msgstr "" #: editor/export_template_manager.cpp msgid "(Missing)" -msgstr "" +msgstr "(Non encontrado)" #: editor/export_template_manager.cpp msgid "(Current)" -msgstr "" +msgstr "(Actual)" #: editor/export_template_manager.cpp msgid "Retrieving mirrors, please wait..." @@ -3385,7 +3505,7 @@ msgstr "" #: editor/export_template_manager.cpp msgid "Importing:" -msgstr "" +msgstr "Importando:" #: editor/export_template_manager.cpp msgid "Error getting the list of mirrors." @@ -3409,16 +3529,16 @@ msgstr "" #: editor/export_template_manager.cpp #: editor/plugins/asset_library_editor_plugin.cpp msgid "Can't connect." -msgstr "" +msgstr "Non se pode conectar." #: editor/export_template_manager.cpp #: editor/plugins/asset_library_editor_plugin.cpp msgid "No response." -msgstr "" +msgstr "Sen resposta." #: editor/export_template_manager.cpp msgid "Request Failed." -msgstr "" +msgstr "A Petición Fracasou." #: editor/export_template_manager.cpp msgid "Redirect Loop." @@ -3427,15 +3547,15 @@ msgstr "" #: editor/export_template_manager.cpp #: editor/plugins/asset_library_editor_plugin.cpp msgid "Failed:" -msgstr "" +msgstr "Fracasado:" #: editor/export_template_manager.cpp msgid "Download Complete." -msgstr "" +msgstr "Descarga Completa." #: editor/export_template_manager.cpp msgid "Cannot remove temporary file:" -msgstr "" +msgstr "Non se pode eliminar o arquivo temporal:" #: editor/export_template_manager.cpp msgid "" @@ -3445,7 +3565,7 @@ msgstr "" #: editor/export_template_manager.cpp msgid "Error requesting URL:" -msgstr "" +msgstr "Erro ao solicitar a URL:" #: editor/export_template_manager.cpp msgid "Connecting to Mirror..." @@ -3453,61 +3573,61 @@ msgstr "" #: editor/export_template_manager.cpp msgid "Disconnected" -msgstr "" +msgstr "Desconectado" #: editor/export_template_manager.cpp msgid "Resolving" -msgstr "" +msgstr "Resolvendo" #: editor/export_template_manager.cpp msgid "Can't Resolve" -msgstr "" +msgstr "Non se puido Resolver" #: editor/export_template_manager.cpp #: editor/plugins/asset_library_editor_plugin.cpp msgid "Connecting..." -msgstr "" +msgstr "Conectando..." #: editor/export_template_manager.cpp msgid "Can't Connect" -msgstr "" +msgstr "Non se Pode Conectar" #: editor/export_template_manager.cpp msgid "Connected" -msgstr "" +msgstr "Conectado" #: editor/export_template_manager.cpp #: editor/plugins/asset_library_editor_plugin.cpp msgid "Requesting..." -msgstr "" +msgstr "Solicitando..." #: editor/export_template_manager.cpp msgid "Downloading" -msgstr "" +msgstr "Descargando" #: editor/export_template_manager.cpp msgid "Connection Error" -msgstr "" +msgstr "Erro de Conexión" #: editor/export_template_manager.cpp msgid "SSL Handshake Error" -msgstr "" +msgstr "Erro SSL Handshake" #: editor/export_template_manager.cpp msgid "Uncompressing Android Build Sources" -msgstr "" +msgstr "Descomprimindo Recursos de Compilación de Android" #: editor/export_template_manager.cpp msgid "Current Version:" -msgstr "" +msgstr "Versión Actual:" #: editor/export_template_manager.cpp msgid "Installed Versions:" -msgstr "" +msgstr "Versións Instaladas:" #: editor/export_template_manager.cpp msgid "Install From File" -msgstr "" +msgstr "Instalar Dende Arquivo" #: editor/export_template_manager.cpp msgid "Remove Template" @@ -3531,15 +3651,17 @@ msgstr "" #: editor/export_template_manager.cpp msgid "Select mirror from list: (Shift+Click: Open in Browser)" -msgstr "" +msgstr "Seleccione un mirror da lista: (Shift+Clic: Abrir no Navegador)" #: editor/filesystem_dock.cpp msgid "Favorites" -msgstr "" +msgstr "Favoritos" #: editor/filesystem_dock.cpp msgid "Status: Import of file failed. Please fix file and reimport manually." msgstr "" +"Estado: Fallou a importación do arquivo. Por favor, amaña o arquivo e " +"impórtao manualmente." #: editor/filesystem_dock.cpp msgid "Cannot move/rename resources root." @@ -3547,35 +3669,35 @@ msgstr "" #: editor/filesystem_dock.cpp msgid "Cannot move a folder into itself." -msgstr "" +msgstr "Non se pode mover un cartafol dentro de sà mesmo." #: editor/filesystem_dock.cpp msgid "Error moving:" -msgstr "" +msgstr "Erro ao mover:" #: editor/filesystem_dock.cpp msgid "Error duplicating:" -msgstr "" +msgstr "Erro ao duplicar:" #: editor/filesystem_dock.cpp msgid "Unable to update dependencies:" -msgstr "" +msgstr "Incapaz de actualizar dependencias:" #: editor/filesystem_dock.cpp editor/scene_tree_editor.cpp msgid "No name provided." -msgstr "" +msgstr "Nome non proporcionado." #: editor/filesystem_dock.cpp msgid "Provided name contains invalid characters." -msgstr "" +msgstr "O nome proporcionado contén caracteres inválidos." #: editor/filesystem_dock.cpp msgid "A file or folder with this name already exists." -msgstr "" +msgstr "Xa existe un arquivo ou cartafol con este nome." #: editor/filesystem_dock.cpp msgid "Name contains invalid characters." -msgstr "" +msgstr "O nome contén caracteres inválidos." #: editor/filesystem_dock.cpp msgid "" @@ -3586,257 +3708,267 @@ msgid "" "\n" "Do you wish to overwrite them?" msgstr "" +"Os seguintes arquivos ou cartafois entran en conflicto con elementos da " +"ubicación de destino '%s':\n" +"\n" +"%s\n" +"\n" +"Queres sobreescribilos?" #: editor/filesystem_dock.cpp msgid "Renaming file:" -msgstr "" +msgstr "Renomeando Arquivo:" #: editor/filesystem_dock.cpp msgid "Renaming folder:" -msgstr "" +msgstr "Renomeando Cartafol:" #: editor/filesystem_dock.cpp msgid "Duplicating file:" -msgstr "" +msgstr "Duplicando Arquivo:" #: editor/filesystem_dock.cpp msgid "Duplicating folder:" -msgstr "" +msgstr "Duplicando Cartafol:" #: editor/filesystem_dock.cpp msgid "New Inherited Scene" -msgstr "" +msgstr "Nova Escena Herdada" #: editor/filesystem_dock.cpp msgid "Set As Main Scene" -msgstr "" +msgstr "Establecer coma Escena Principal" #: editor/filesystem_dock.cpp msgid "Open Scenes" -msgstr "" +msgstr "Abrir Escenas" #: editor/filesystem_dock.cpp msgid "Instance" -msgstr "" +msgstr "Instanciar" #: editor/filesystem_dock.cpp msgid "Add to Favorites" -msgstr "" +msgstr "Engadir a Favoritos" #: editor/filesystem_dock.cpp msgid "Remove from Favorites" -msgstr "" +msgstr "Eliminar de Favoritos" #: editor/filesystem_dock.cpp msgid "Edit Dependencies..." -msgstr "" +msgstr "Editar Dependencias..." #: editor/filesystem_dock.cpp msgid "View Owners..." -msgstr "" +msgstr "Ver Donos..." #: editor/filesystem_dock.cpp msgid "Move To..." -msgstr "" +msgstr "Mover a..." #: editor/filesystem_dock.cpp msgid "New Scene..." -msgstr "" +msgstr "Nova Escena..." #: editor/filesystem_dock.cpp editor/plugins/script_editor_plugin.cpp msgid "New Script..." -msgstr "" +msgstr "Novo Script..." #: editor/filesystem_dock.cpp msgid "New Resource..." -msgstr "" +msgstr "Novo Recurso..." #: editor/filesystem_dock.cpp editor/plugins/visual_shader_editor_plugin.cpp #: editor/script_editor_debugger.cpp msgid "Expand All" -msgstr "" +msgstr "Expandir Todo" #: editor/filesystem_dock.cpp editor/plugins/visual_shader_editor_plugin.cpp #: editor/script_editor_debugger.cpp msgid "Collapse All" -msgstr "" +msgstr "Colapsar Todo" #: editor/filesystem_dock.cpp msgid "Duplicate..." -msgstr "" +msgstr "Duplicar..." #: editor/filesystem_dock.cpp msgid "Move to Trash" -msgstr "" +msgstr "Mover á Papeleira" #: editor/filesystem_dock.cpp editor/plugins/animation_player_editor_plugin.cpp msgid "Rename..." -msgstr "" +msgstr "Renomear..." #: editor/filesystem_dock.cpp msgid "Previous Folder/File" -msgstr "" +msgstr "Anterior Cartafol/Arquivo" #: editor/filesystem_dock.cpp msgid "Next Folder/File" -msgstr "" +msgstr "Seguinte Cartafol/Arquivo" #: editor/filesystem_dock.cpp msgid "Re-Scan Filesystem" -msgstr "" +msgstr "Reexaminar Sistema de Arquivos" #: editor/filesystem_dock.cpp msgid "Toggle Split Mode" -msgstr "" +msgstr "Act./Desact. Modo Dividido" #: editor/filesystem_dock.cpp msgid "Search files" -msgstr "" +msgstr "Buscar arquivos" #: editor/filesystem_dock.cpp msgid "" "Scanning Files,\n" "Please Wait..." msgstr "" +"Examinando arquivos,\n" +"Por favor, espere..." #: editor/filesystem_dock.cpp msgid "Move" -msgstr "" +msgstr "Mover" #: editor/filesystem_dock.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp #: editor/project_manager.cpp editor/rename_dialog.cpp #: editor/scene_tree_dock.cpp msgid "Rename" -msgstr "" +msgstr "Renomear" #: editor/filesystem_dock.cpp msgid "Overwrite" -msgstr "" +msgstr "Sobreescribir" #: editor/filesystem_dock.cpp msgid "Create Scene" -msgstr "" +msgstr "Crear Escena" #: editor/filesystem_dock.cpp editor/plugins/script_editor_plugin.cpp msgid "Create Script" -msgstr "" +msgstr "Crear Script" #: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp msgid "Find in Files" -msgstr "" +msgstr "Buscar en Arquivos" #: editor/find_in_files.cpp msgid "Find:" -msgstr "" +msgstr "Buscar:" #: editor/find_in_files.cpp msgid "Folder:" -msgstr "" +msgstr "Cartafol:" #: editor/find_in_files.cpp msgid "Filters:" -msgstr "" +msgstr "Filtros:" #: editor/find_in_files.cpp msgid "" "Include the files with the following extensions. Add or remove them in " "ProjectSettings." msgstr "" +"Inclúe os arquivos coas seguintes extensións. Engádeos ou elimÃnaos na " +"Configuración do proxecto." #: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp msgid "Find..." -msgstr "" +msgstr "Buscar..." #: editor/find_in_files.cpp editor/plugins/script_text_editor.cpp msgid "Replace..." -msgstr "" +msgstr "SubstituÃr..." #: editor/find_in_files.cpp editor/progress_dialog.cpp scene/gui/dialogs.cpp msgid "Cancel" -msgstr "" +msgstr "Cancelar" #: editor/find_in_files.cpp msgid "Find: " -msgstr "" +msgstr "Buscar: " #: editor/find_in_files.cpp msgid "Replace: " -msgstr "" +msgstr "SubstituÃr: " #: editor/find_in_files.cpp msgid "Replace all (no undo)" -msgstr "" +msgstr "SubstituÃr todo (non se pode defacer)" #: editor/find_in_files.cpp msgid "Searching..." -msgstr "" +msgstr "Procurando..." #: editor/find_in_files.cpp msgid "%d match in %d file." -msgstr "" +msgstr "%d coincidencia en %d arquivo." #: editor/find_in_files.cpp msgid "%d matches in %d file." -msgstr "" +msgstr "%d coincidencias en %d arquivo." #: editor/find_in_files.cpp msgid "%d matches in %d files." -msgstr "" +msgstr "%d coincidencias en %d arquivos." #: editor/groups_editor.cpp msgid "Add to Group" -msgstr "" +msgstr "Engadir ao Grupo" #: editor/groups_editor.cpp msgid "Remove from Group" -msgstr "" +msgstr "Eliminar do Grupo" #: editor/groups_editor.cpp msgid "Group name already exists." -msgstr "" +msgstr "Este nome de grupo xa existe." #: editor/groups_editor.cpp msgid "Invalid group name." -msgstr "" +msgstr "Nome de grupo inválido." #: editor/groups_editor.cpp msgid "Rename Group" -msgstr "" +msgstr "Renomear Grupo" #: editor/groups_editor.cpp msgid "Delete Group" -msgstr "" +msgstr "Eliminar Grupo" #: editor/groups_editor.cpp editor/node_dock.cpp msgid "Groups" -msgstr "" +msgstr "Grupos" #: editor/groups_editor.cpp msgid "Nodes Not in Group" -msgstr "" +msgstr "Nodos Fora do Grupo" #: editor/groups_editor.cpp editor/scene_tree_dock.cpp #: editor/scene_tree_editor.cpp msgid "Filter nodes" -msgstr "" +msgstr "Filtrar nodos" #: editor/groups_editor.cpp msgid "Nodes in Group" -msgstr "" +msgstr "Nodos no Grupo" #: editor/groups_editor.cpp msgid "Empty groups will be automatically removed." -msgstr "" +msgstr "Os grupos baleiros serán automaticamente eliminados." #: editor/groups_editor.cpp msgid "Group Editor" -msgstr "" +msgstr "Editor de Grupos" #: editor/groups_editor.cpp msgid "Manage Groups" -msgstr "" +msgstr "Administrar Grupos" #: editor/import/resource_importer_scene.cpp msgid "Import as Single Scene" @@ -3844,31 +3976,31 @@ msgstr "" #: editor/import/resource_importer_scene.cpp msgid "Import with Separate Animations" -msgstr "" +msgstr "Importar con Animacións Separadas" #: editor/import/resource_importer_scene.cpp msgid "Import with Separate Materials" -msgstr "" +msgstr "Importar con Materiais Separados" #: editor/import/resource_importer_scene.cpp msgid "Import with Separate Objects" -msgstr "" +msgstr "Importar con Obxectos Separados" #: editor/import/resource_importer_scene.cpp msgid "Import with Separate Objects+Materials" -msgstr "" +msgstr "Importar con Obxectos e Materiais Separados" #: editor/import/resource_importer_scene.cpp msgid "Import with Separate Objects+Animations" -msgstr "" +msgstr "Importar con Obxectos e Animacións Separadas" #: editor/import/resource_importer_scene.cpp msgid "Import with Separate Materials+Animations" -msgstr "" +msgstr "Importar con Materiais e Animacións Separadas" #: editor/import/resource_importer_scene.cpp msgid "Import with Separate Objects+Materials+Animations" -msgstr "" +msgstr "Importar con Obxectos, Materiais, e Animacións Separados" #: editor/import/resource_importer_scene.cpp msgid "Import as Multiple Scenes" @@ -3876,16 +4008,16 @@ msgstr "" #: editor/import/resource_importer_scene.cpp msgid "Import as Multiple Scenes+Materials" -msgstr "" +msgstr "Importar como Escenas e Materiales Múltiples" #: editor/import/resource_importer_scene.cpp #: editor/plugins/mesh_library_editor_plugin.cpp msgid "Import Scene" -msgstr "" +msgstr "Importar Escena" #: editor/import/resource_importer_scene.cpp msgid "Importing Scene..." -msgstr "" +msgstr "Importando Escena..." #: editor/import/resource_importer_scene.cpp msgid "Generating Lightmaps" @@ -3917,11 +4049,11 @@ msgstr "" #: editor/import/resource_importer_scene.cpp msgid "Saving..." -msgstr "" +msgstr "Gardando..." #: editor/import_dock.cpp msgid "%d Files" -msgstr "" +msgstr "%d Arquivos" #: editor/import_dock.cpp msgid "Set as Default for '%s'" @@ -3933,15 +4065,15 @@ msgstr "" #: editor/import_dock.cpp msgid "Import As:" -msgstr "" +msgstr "Importar Como:" #: editor/import_dock.cpp msgid "Preset" -msgstr "" +msgstr "Axustes de Importación" #: editor/import_dock.cpp msgid "Reimport" -msgstr "" +msgstr "Reimportar" #: editor/import_dock.cpp msgid "Save Scenes, Re-Import, and Restart" @@ -3958,24 +4090,24 @@ msgstr "" #: editor/inspector_dock.cpp msgid "Failed to load resource." -msgstr "" +msgstr "Fallou a carga do Recurso." #: editor/inspector_dock.cpp msgid "Expand All Properties" -msgstr "" +msgstr "Expandir Tódalas Propiedades" #: editor/inspector_dock.cpp msgid "Collapse All Properties" -msgstr "" +msgstr "Colapsar Tódalas Propiedades" #: editor/inspector_dock.cpp editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/script_editor_plugin.cpp msgid "Save As..." -msgstr "" +msgstr "Gardar Como..." #: editor/inspector_dock.cpp msgid "Copy Params" -msgstr "" +msgstr "Copiar Parámetros" #: editor/inspector_dock.cpp msgid "Edit Resource Clipboard" @@ -3983,7 +4115,7 @@ msgstr "" #: editor/inspector_dock.cpp msgid "Copy Resource" -msgstr "" +msgstr "Copiar Recurso" #: editor/inspector_dock.cpp msgid "Make Built-In" @@ -3995,7 +4127,7 @@ msgstr "" #: editor/inspector_dock.cpp msgid "Open in Help" -msgstr "" +msgstr "Abrir na Axuda" #: editor/inspector_dock.cpp msgid "Create a new resource in memory and edit it." @@ -4023,15 +4155,15 @@ msgstr "" #: editor/inspector_dock.cpp msgid "Object properties." -msgstr "" +msgstr "Propiedade de Obxectos." #: editor/inspector_dock.cpp msgid "Filter properties" -msgstr "" +msgstr "Filtrar propiedades" #: editor/inspector_dock.cpp msgid "Changes may be lost!" -msgstr "" +msgstr "Os cambios poderÃan perderse!" #: editor/multi_node_edit.cpp msgid "MultiNode Set" @@ -4039,46 +4171,46 @@ msgstr "" #: editor/node_dock.cpp msgid "Select a single node to edit its signals and groups." -msgstr "" +msgstr "Seleccione un nodo para editar as súas sinais e grupos." #: editor/plugin_config_dialog.cpp msgid "Edit a Plugin" -msgstr "" +msgstr "Editar unha CaracterÃstica Adicional (Plugin)" #: editor/plugin_config_dialog.cpp msgid "Create a Plugin" -msgstr "" +msgstr "Crear unha CaracterÃstica Adicional (Plugin)" #: editor/plugin_config_dialog.cpp msgid "Plugin Name:" -msgstr "" +msgstr "Nome do Plugin:" #: editor/plugin_config_dialog.cpp msgid "Subfolder:" -msgstr "" +msgstr "Subcartafol:" #: editor/plugin_config_dialog.cpp editor/script_create_dialog.cpp msgid "Language:" -msgstr "" +msgstr "Linguaxe:" #: editor/plugin_config_dialog.cpp msgid "Script Name:" -msgstr "" +msgstr "Nome do Script:" #: editor/plugin_config_dialog.cpp msgid "Activate now?" -msgstr "" +msgstr "Activar agora?" #: editor/plugins/abstract_polygon_2d_editor.cpp #: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Create Polygon" -msgstr "" +msgstr "Crear PolÃgono" #: editor/plugins/abstract_polygon_2d_editor.cpp #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp msgid "Create points." -msgstr "" +msgstr "Crear puntos." #: editor/plugins/abstract_polygon_2d_editor.cpp msgid "" @@ -4086,27 +4218,30 @@ msgid "" "LMB: Move Point\n" "RMB: Erase Point" msgstr "" +"Editar puntos.\n" +"Clic Izq: Mover Punto\n" +"Clic Der: Eliminar Punto" #: editor/plugins/abstract_polygon_2d_editor.cpp #: editor/plugins/animation_blend_space_1d_editor.cpp msgid "Erase points." -msgstr "" +msgstr "Borrar puntos." #: editor/plugins/abstract_polygon_2d_editor.cpp msgid "Edit Polygon" -msgstr "" +msgstr "Editar PolÃgono" #: editor/plugins/abstract_polygon_2d_editor.cpp msgid "Insert Point" -msgstr "" +msgstr "Inserir Punto" #: editor/plugins/abstract_polygon_2d_editor.cpp msgid "Edit Polygon (Remove Point)" -msgstr "" +msgstr "Editar PolÃgono (Eliminar Punto)" #: editor/plugins/abstract_polygon_2d_editor.cpp msgid "Remove Polygon And Point" -msgstr "" +msgstr "Eliminar PolÃgono e Punto" #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp @@ -4114,14 +4249,14 @@ msgstr "" #: editor/plugins/animation_state_machine_editor.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Add Animation" -msgstr "" +msgstr "Engadir Animación" #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp #: editor/plugins/animation_blend_tree_editor_plugin.cpp #: editor/plugins/animation_state_machine_editor.cpp msgid "Load..." -msgstr "" +msgstr "Cargar..." #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp @@ -4140,7 +4275,7 @@ msgstr "" #: editor/plugins/animation_blend_space_2d_editor.cpp #: editor/plugins/animation_state_machine_editor.cpp msgid "This type of node can't be used. Only root nodes are allowed." -msgstr "" +msgstr "Non se pode usar este tipo de nodo. Só nodos raÃz están permitidos." #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp @@ -4168,6 +4303,9 @@ msgid "" "AnimationTree is inactive.\n" "Activate to enable playback, check node warnings if activation fails." msgstr "" +"O AnimationTree está inactivo.\n" +"ActÃvao para permitir a reprodución; e comproba os avisos do nodo se hai un " +"erro na activación." #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp @@ -4182,18 +4320,18 @@ msgstr "" #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp scene/gui/graph_edit.cpp msgid "Enable snap and show grid." -msgstr "" +msgstr "Activar axuste de cuadrÃcula e amosar cuadrÃcula." #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp msgid "Point" -msgstr "" +msgstr "Punto" #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp #: editor/plugins/animation_blend_tree_editor_plugin.cpp msgid "Open Editor" -msgstr "" +msgstr "Abrir Editor" #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp @@ -4208,7 +4346,7 @@ msgstr "" #: editor/plugins/animation_blend_space_2d_editor.cpp msgid "Add Triangle" -msgstr "" +msgstr "Engadir Triángulo" #: editor/plugins/animation_blend_space_2d_editor.cpp msgid "Change BlendSpace2D Limits" @@ -4253,16 +4391,16 @@ msgstr "" #: editor/plugins/animation_blend_space_2d_editor.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp msgid "Blend:" -msgstr "" +msgstr "Mezcla:" #: editor/plugins/animation_blend_tree_editor_plugin.cpp msgid "Parameter Changed" -msgstr "" +msgstr "Parámetro Cambiado" #: editor/plugins/animation_blend_tree_editor_plugin.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp msgid "Edit Filters" -msgstr "" +msgstr "Editar Flitros" #: editor/plugins/animation_blend_tree_editor_plugin.cpp msgid "Output node can't be added to the blend tree." @@ -4274,7 +4412,7 @@ msgstr "" #: editor/plugins/animation_blend_tree_editor_plugin.cpp msgid "Node Moved" -msgstr "" +msgstr "Nodo Movido" #: editor/plugins/animation_blend_tree_editor_plugin.cpp msgid "Unable to connect, port may be in use or connection may be invalid." @@ -4283,26 +4421,26 @@ msgstr "" #: editor/plugins/animation_blend_tree_editor_plugin.cpp #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Nodes Connected" -msgstr "" +msgstr "Nodos Conectado" #: editor/plugins/animation_blend_tree_editor_plugin.cpp #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Nodes Disconnected" -msgstr "" +msgstr "Nodos Desconectados" #: editor/plugins/animation_blend_tree_editor_plugin.cpp msgid "Set Animation" -msgstr "" +msgstr "Establecer Animación" #: editor/plugins/animation_blend_tree_editor_plugin.cpp #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Delete Node" -msgstr "" +msgstr "Eliminar Nodo" #: editor/plugins/animation_blend_tree_editor_plugin.cpp #: editor/scene_tree_dock.cpp msgid "Delete Node(s)" -msgstr "" +msgstr "Eliminar Nodo(s)" #: editor/plugins/animation_blend_tree_editor_plugin.cpp msgid "Toggle Filter On/Off" @@ -4310,7 +4448,7 @@ msgstr "" #: editor/plugins/animation_blend_tree_editor_plugin.cpp msgid "Change Filter" -msgstr "" +msgstr "Cambiar Filtro" #: editor/plugins/animation_blend_tree_editor_plugin.cpp msgid "No animation player set, so unable to retrieve track names." @@ -4329,25 +4467,25 @@ msgstr "" #: editor/plugins/animation_blend_tree_editor_plugin.cpp msgid "Anim Clips" -msgstr "" +msgstr "Clips de Animación" #: editor/plugins/animation_blend_tree_editor_plugin.cpp msgid "Audio Clips" -msgstr "" +msgstr "Clips de Audio" #: editor/plugins/animation_blend_tree_editor_plugin.cpp msgid "Functions" -msgstr "" +msgstr "Funcións" #: editor/plugins/animation_blend_tree_editor_plugin.cpp #: editor/plugins/animation_state_machine_editor.cpp msgid "Node Renamed" -msgstr "" +msgstr "Nodo Renomeado" #: editor/plugins/animation_blend_tree_editor_plugin.cpp #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Add Node..." -msgstr "" +msgstr "Engadir Nodo..." #: editor/plugins/animation_blend_tree_editor_plugin.cpp #: editor/plugins/root_motion_editor_plugin.cpp @@ -4360,7 +4498,7 @@ msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Toggle Autoplay" -msgstr "" +msgstr "Act./Desact. Auto-reproducción" #: editor/plugins/animation_player_editor_plugin.cpp msgid "New Animation Name:" @@ -4368,7 +4506,7 @@ msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp msgid "New Anim" -msgstr "" +msgstr "Nova Animación" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Change Animation Name:" @@ -4377,12 +4515,12 @@ msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Delete Animation?" -msgstr "" +msgstr "Eliminar Animación?" #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Remove Animation" -msgstr "" +msgstr "Eliminar Animación" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Invalid animation name!" @@ -4395,7 +4533,7 @@ msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Rename Animation" -msgstr "" +msgstr "Renomear Animación" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Blend Next Changed" @@ -4407,11 +4545,11 @@ msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Load Animation" -msgstr "" +msgstr "Cargar Animación" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Duplicate Animation" -msgstr "" +msgstr "Duplicar Animación" #: editor/plugins/animation_player_editor_plugin.cpp msgid "No animation to copy!" @@ -4423,11 +4561,11 @@ msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Pasted Animation" -msgstr "" +msgstr "Animación Pegada" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Paste Animation" -msgstr "" +msgstr "Pegar Animación" #: editor/plugins/animation_player_editor_plugin.cpp msgid "No animation to edit!" @@ -4463,19 +4601,19 @@ msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Animation Tools" -msgstr "" +msgstr "Ferramentas de Animación" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Animation" -msgstr "" +msgstr "Animación" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Edit Transitions..." -msgstr "" +msgstr "Editar Transicións..." #: editor/plugins/animation_player_editor_plugin.cpp msgid "Open in Inspector" -msgstr "" +msgstr "Abrir no Inspector" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Display list of animations in player." @@ -4495,19 +4633,19 @@ msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Directions" -msgstr "" +msgstr "Direccións" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Past" -msgstr "" +msgstr "Pasado" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Future" -msgstr "" +msgstr "Futuro" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Depth" -msgstr "" +msgstr "Profundidad" #: editor/plugins/animation_player_editor_plugin.cpp msgid "1 step" @@ -4543,14 +4681,14 @@ msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Animation Name:" -msgstr "" +msgstr "Nome da Animación:" #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp msgid "Error!" -msgstr "" +msgstr "Erro!" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Blend Times:" @@ -4566,40 +4704,40 @@ msgstr "" #: editor/plugins/animation_state_machine_editor.cpp msgid "Move Node" -msgstr "" +msgstr "Mover Nodo" #: editor/plugins/animation_state_machine_editor.cpp msgid "Transition exists!" -msgstr "" +msgstr "Existe transición!" #: editor/plugins/animation_state_machine_editor.cpp msgid "Add Transition" -msgstr "" +msgstr "Engadir Transición" #: editor/plugins/animation_state_machine_editor.cpp #: modules/visual_script/visual_script_editor.cpp msgid "Add Node" -msgstr "" +msgstr "Engadir Nodo" #: editor/plugins/animation_state_machine_editor.cpp msgid "End" -msgstr "" +msgstr "Fin" #: editor/plugins/animation_state_machine_editor.cpp msgid "Immediate" -msgstr "" +msgstr "Inmediata" #: editor/plugins/animation_state_machine_editor.cpp msgid "Sync" -msgstr "" +msgstr "Sincronizar" #: editor/plugins/animation_state_machine_editor.cpp msgid "At End" -msgstr "" +msgstr "Ao Final" #: editor/plugins/animation_state_machine_editor.cpp msgid "Travel" -msgstr "" +msgstr "Viaxe" #: editor/plugins/animation_state_machine_editor.cpp msgid "Start and end nodes are needed for a sub-transition." @@ -4611,11 +4749,11 @@ msgstr "" #: editor/plugins/animation_state_machine_editor.cpp msgid "Node Removed" -msgstr "" +msgstr "Nodo Eliminado" #: editor/plugins/animation_state_machine_editor.cpp msgid "Transition Removed" -msgstr "" +msgstr "Transición Eliminada" #: editor/plugins/animation_state_machine_editor.cpp msgid "Set Start Node (Autoplay)" @@ -4630,11 +4768,11 @@ msgstr "" #: editor/plugins/animation_state_machine_editor.cpp msgid "Create new nodes." -msgstr "" +msgstr "Crear novos nodos." #: editor/plugins/animation_state_machine_editor.cpp msgid "Connect nodes." -msgstr "" +msgstr "Conectar nodos." #: editor/plugins/animation_state_machine_editor.cpp msgid "Remove selected node or transition." @@ -4650,11 +4788,11 @@ msgstr "" #: editor/plugins/animation_state_machine_editor.cpp msgid "Transition: " -msgstr "" +msgstr "Transición: " #: editor/plugins/animation_state_machine_editor.cpp msgid "Play Mode:" -msgstr "" +msgstr "Modo de Reprodución:" #: editor/plugins/animation_tree_editor_plugin.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp @@ -4663,12 +4801,12 @@ msgstr "" #: editor/plugins/animation_tree_player_editor_plugin.cpp msgid "New name:" -msgstr "" +msgstr "Novo nome:" #: editor/plugins/animation_tree_player_editor_plugin.cpp #: editor/plugins/multimesh_editor_plugin.cpp msgid "Scale:" -msgstr "" +msgstr "Escala:" #: editor/plugins/animation_tree_player_editor_plugin.cpp msgid "Fade In (s):" @@ -4680,19 +4818,19 @@ msgstr "" #: editor/plugins/animation_tree_player_editor_plugin.cpp msgid "Blend" -msgstr "" +msgstr "Mezcla" #: editor/plugins/animation_tree_player_editor_plugin.cpp msgid "Mix" -msgstr "" +msgstr "Mezcla" #: editor/plugins/animation_tree_player_editor_plugin.cpp msgid "Auto Restart:" -msgstr "" +msgstr "Auto Reinicio:" #: editor/plugins/animation_tree_player_editor_plugin.cpp msgid "Restart (s):" -msgstr "" +msgstr "Reiniciar (s):" #: editor/plugins/animation_tree_player_editor_plugin.cpp msgid "Random Restart (s):" @@ -4700,12 +4838,12 @@ msgstr "" #: editor/plugins/animation_tree_player_editor_plugin.cpp msgid "Start!" -msgstr "" +msgstr "Comezar!" #: editor/plugins/animation_tree_player_editor_plugin.cpp #: editor/plugins/multimesh_editor_plugin.cpp msgid "Amount:" -msgstr "" +msgstr "Cantidade:" #: editor/plugins/animation_tree_player_editor_plugin.cpp msgid "Blend 0:" @@ -4721,13 +4859,13 @@ msgstr "" #: editor/plugins/animation_tree_player_editor_plugin.cpp msgid "Current:" -msgstr "" +msgstr "Actual:" #: editor/plugins/animation_tree_player_editor_plugin.cpp #: editor/plugins/visual_shader_editor_plugin.cpp #: modules/visual_script/visual_script_editor.cpp msgid "Add Input" -msgstr "" +msgstr "Engadir Entrada" #: editor/plugins/animation_tree_player_editor_plugin.cpp msgid "Clear Auto-Advance" @@ -4739,7 +4877,7 @@ msgstr "" #: editor/plugins/animation_tree_player_editor_plugin.cpp msgid "Delete Input" -msgstr "" +msgstr "Eliminar Entrada" #: editor/plugins/animation_tree_player_editor_plugin.cpp msgid "Animation tree is valid." @@ -4751,11 +4889,11 @@ msgstr "" #: editor/plugins/animation_tree_player_editor_plugin.cpp msgid "Animation Node" -msgstr "" +msgstr "Nodo de Animación" #: editor/plugins/animation_tree_player_editor_plugin.cpp msgid "OneShot Node" -msgstr "" +msgstr "Nodo de Execución Única (Oneshot)" #: editor/plugins/animation_tree_player_editor_plugin.cpp msgid "Mix Node" @@ -4787,27 +4925,27 @@ msgstr "" #: editor/plugins/animation_tree_player_editor_plugin.cpp msgid "Import Animations..." -msgstr "" +msgstr "Importar Animacións..." #: editor/plugins/animation_tree_player_editor_plugin.cpp msgid "Edit Node Filters" -msgstr "" +msgstr "Editar Filtros do Nodo" #: editor/plugins/animation_tree_player_editor_plugin.cpp msgid "Filters..." -msgstr "" +msgstr "Filtros..." #: editor/plugins/asset_library_editor_plugin.cpp msgid "Contents:" -msgstr "" +msgstr "Contidos:" #: editor/plugins/asset_library_editor_plugin.cpp msgid "View Files" -msgstr "" +msgstr "Ver Arquivos" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Connection error, please try again." -msgstr "" +msgstr "Houbo un erro na conexión; por favor, inténtao de novo." #: editor/plugins/asset_library_editor_plugin.cpp msgid "Can't connect to host:" @@ -4815,7 +4953,7 @@ msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp msgid "No response from host:" -msgstr "" +msgstr "Non houbo respota por parte do host:" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Can't resolve hostname:" @@ -4827,7 +4965,7 @@ msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Request failed." -msgstr "" +msgstr "A petición fallou." #: editor/plugins/asset_library_editor_plugin.cpp msgid "Cannot save response to:" @@ -4835,7 +4973,7 @@ msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Write error." -msgstr "" +msgstr "Erro de escritura." #: editor/plugins/asset_library_editor_plugin.cpp msgid "Request failed, too many redirects" @@ -4851,7 +4989,7 @@ msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Timeout." -msgstr "" +msgstr "Timeout." #: editor/plugins/asset_library_editor_plugin.cpp msgid "Bad download hash, assuming file has been tampered with." @@ -4859,11 +4997,11 @@ msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Expected:" -msgstr "" +msgstr "Esperado:" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Got:" -msgstr "" +msgstr "Recibido:" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Failed sha256 hash check" @@ -4875,15 +5013,15 @@ msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Downloading (%s / %s)..." -msgstr "" +msgstr "Descargando (%s / %s)..." #: editor/plugins/asset_library_editor_plugin.cpp msgid "Downloading..." -msgstr "" +msgstr "Descargando..." #: editor/plugins/asset_library_editor_plugin.cpp msgid "Resolving..." -msgstr "" +msgstr "Resolvendo..." #: editor/plugins/asset_library_editor_plugin.cpp msgid "Error making request" @@ -4891,19 +5029,19 @@ msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Idle" -msgstr "" +msgstr "Ocioso" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Install..." -msgstr "" +msgstr "Instalar..." #: editor/plugins/asset_library_editor_plugin.cpp msgid "Retry" -msgstr "" +msgstr "Reintentar" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Download Error" -msgstr "" +msgstr "Erro na Descarga" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Download for this asset is already in progress!" @@ -4911,7 +5049,7 @@ msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Recently Updated" -msgstr "" +msgstr "Actualizado Recentemente" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Least Recently Updated" @@ -4919,80 +5057,80 @@ msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Name (A-Z)" -msgstr "" +msgstr "Nome (A-Z)" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Name (Z-A)" -msgstr "" +msgstr "Nome (Z-A)" #: editor/plugins/asset_library_editor_plugin.cpp msgid "License (A-Z)" -msgstr "" +msgstr "Licenza (A-Z)" #: editor/plugins/asset_library_editor_plugin.cpp msgid "License (Z-A)" -msgstr "" +msgstr "Licenza (Z-A)" #: editor/plugins/asset_library_editor_plugin.cpp msgid "First" -msgstr "" +msgstr "Primeiro" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Previous" -msgstr "" +msgstr "Anterior" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Next" -msgstr "" +msgstr "Seguinte" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Last" -msgstr "" +msgstr "Derradeiro" #: editor/plugins/asset_library_editor_plugin.cpp msgid "All" -msgstr "" +msgstr "Todos" #: editor/plugins/asset_library_editor_plugin.cpp msgid "No results for \"%s\"." -msgstr "" +msgstr "Non houbo resultado para \"%s\"." #: editor/plugins/asset_library_editor_plugin.cpp msgid "Import..." -msgstr "" +msgstr "Importar..." #: editor/plugins/asset_library_editor_plugin.cpp msgid "Plugins..." -msgstr "" +msgstr "CaracterÃsticas Adicionais (Plugins)..." #: editor/plugins/asset_library_editor_plugin.cpp editor/project_manager.cpp msgid "Sort:" -msgstr "" +msgstr "Ordenar:" #: editor/plugins/asset_library_editor_plugin.cpp #: editor/project_settings_editor.cpp msgid "Category:" -msgstr "" +msgstr "CategorÃa:" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Site:" -msgstr "" +msgstr "Sitio:" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Support" -msgstr "" +msgstr "Soporte" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Official" -msgstr "" +msgstr "Oficial" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Testing" -msgstr "" +msgstr "Probas" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Loading..." -msgstr "" +msgstr "Cargando..." #: editor/plugins/asset_library_editor_plugin.cpp msgid "Assets ZIP File" @@ -5023,6 +5161,8 @@ msgid "" "Some mesh is invalid. Make sure the UV2 channel values are contained within " "the [0.0,1.0] square region." msgstr "" +"Algunha malla é inválida. Asegúrese de que o os valores do canle UV2 están " +"contidos dentro da rexión cadrada ([0.0,1.0], [0.0,1.0])." #: editor/plugins/baked_lightmap_editor_plugin.cpp msgid "" @@ -5040,11 +5180,11 @@ msgstr "" #: editor/plugins/camera_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp msgid "Preview" -msgstr "" +msgstr "Vista Previa" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Configure Snap" -msgstr "" +msgstr "Configurar Axuste de CuadrÃcula" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Grid Offset:" @@ -5076,31 +5216,31 @@ msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Move Vertical Guide" -msgstr "" +msgstr "Mover GuÃa Vertical" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Create Vertical Guide" -msgstr "" +msgstr "Crear GuÃa Vertical" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Remove Vertical Guide" -msgstr "" +msgstr "Eliminar GuÃa Vertical" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Move Horizontal Guide" -msgstr "" +msgstr "Mover GuÃa Horizontal" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Create Horizontal Guide" -msgstr "" +msgstr "Crear GuÃa Horizontal" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Remove Horizontal Guide" -msgstr "" +msgstr "Eliminar GuÃa Horizontal" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Create Horizontal and Vertical Guides" -msgstr "" +msgstr "Crear GuÃas Horizontais e Verticais" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Set CanvasItem \"%s\" Pivot Offset to (%d, %d)" @@ -5160,83 +5300,83 @@ msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Top Left" -msgstr "" +msgstr "Arriba á Esquerda" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Top Right" -msgstr "" +msgstr "Arriba á Dereita" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Bottom Right" -msgstr "" +msgstr "Abaixo á Dereita" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Bottom Left" -msgstr "" +msgstr "Abaixo á Esquerda" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Center Left" -msgstr "" +msgstr "Centro á Esquerda" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Center Top" -msgstr "" +msgstr "Centro Arriba" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Center Right" -msgstr "" +msgstr "Centro á Dereita" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Center Bottom" -msgstr "" +msgstr "Centro Abaixo" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Center" -msgstr "" +msgstr "Centro" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Left Wide" -msgstr "" +msgstr "Esquerdo Alto" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Top Wide" -msgstr "" +msgstr "Arriba Ancho" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Right Wide" -msgstr "" +msgstr "Dereito Alto" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Bottom Wide" -msgstr "" +msgstr "Abaixo Ancho" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "VCenter Wide" -msgstr "" +msgstr "CentradoV Alto" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "HCenter Wide" -msgstr "" +msgstr "CentradoH Ancho" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Full Rect" -msgstr "" +msgstr "Recta Completa" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Keep Ratio" -msgstr "" +msgstr "Manter Relación de Aspecto" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Anchors only" -msgstr "" +msgstr "Só Ãncoras" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Change Anchors and Margins" -msgstr "" +msgstr "Cambiar Ãncoras e Marxes" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Change Anchors" -msgstr "" +msgstr "Cambiar Ãncoras" #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp @@ -5244,6 +5384,8 @@ msgid "" "Game Camera Override\n" "Overrides game camera with editor viewport camera." msgstr "" +"SubstituÃr a Cámara do Xogo\n" +"Substitue a cámara do xogo pola cámara da Mini-ventá (Viewport) do editor." #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp @@ -5265,20 +5407,20 @@ msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp msgid "Group Selected" -msgstr "" +msgstr "Agrupar Selección" #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp msgid "Ungroup Selected" -msgstr "" +msgstr "Desagrupar Selección" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Paste Pose" -msgstr "" +msgstr "Pegar Pose" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Clear Guides" -msgstr "" +msgstr "Limpar GuÃas" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Create Custom Bone(s) from Node(s)" @@ -5286,7 +5428,7 @@ msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Clear Bones" -msgstr "" +msgstr "Limpar Ósos" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Make IK Chain" @@ -5301,25 +5443,27 @@ msgid "" "Warning: Children of a container get their position and size determined only " "by their parent." msgstr "" +"Aviso: Os nodos fillos dun contedor (Container) teñen determinada a súa " +"posición e tamaño unicamente polo seu padre." #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/texture_region_editor_plugin.cpp #: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp msgid "Zoom Reset" -msgstr "" +msgstr "Restablecer Zoom" #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp msgid "Select Mode" -msgstr "" +msgstr "Elixir Modo" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Drag: Rotate" -msgstr "" +msgstr "Arrastrar: Rotar" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Alt+Drag: Move" -msgstr "" +msgstr "Alt+Arrastrar: Mover" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Press 'v' to Change Pivot, 'Shift+v' to Drag Pivot (while moving)." @@ -5332,17 +5476,17 @@ msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp msgid "Move Mode" -msgstr "" +msgstr "Mover Modo" #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp msgid "Rotate Mode" -msgstr "" +msgstr "Modo Rotación" #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp msgid "Scale Mode" -msgstr "" +msgstr "Modo Escalado" #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp @@ -5350,10 +5494,12 @@ msgid "" "Show a list of all objects at the position clicked\n" "(same as Alt+RMB in select mode)." msgstr "" +"Amosa unha lista de obxectos na posición na que se fixo clic\n" +"(O mesmo que usar Alt+Clic Dereito en modo selección)." #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Click to change object's rotation pivot." -msgstr "" +msgstr "Faga clic para cambiar o pivote de rotación do obxecto." #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Pan Mode" @@ -5361,96 +5507,96 @@ msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Ruler Mode" -msgstr "" +msgstr "Modo Regra" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Toggle smart snapping." -msgstr "" +msgstr "Act./Desact. axuste intelixente." #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Use Smart Snap" -msgstr "" +msgstr "Usar Axuste Intelixente" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Toggle grid snapping." -msgstr "" +msgstr "Act./Desact. axuste de cuadrÃcula." #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Use Grid Snap" -msgstr "" +msgstr "Usar Axuste de CuadrÃcula" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Snapping Options" -msgstr "" +msgstr "Opcións de Axuste de CuadrÃcula" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Use Rotation Snap" -msgstr "" +msgstr "Empregar Axuste de Rotación" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Use Scale Snap" -msgstr "" +msgstr "Empregar Axuste de Escalado" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Snap Relative" -msgstr "" +msgstr "Axuste Relativo" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Use Pixel Snap" -msgstr "" +msgstr "Empregar Axuste aos PÃxeles" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Smart Snapping" -msgstr "" +msgstr "Axuste Intelixente" #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp msgid "Configure Snap..." -msgstr "" +msgstr "Configurar Axuste de CuadrÃcula..." #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Snap to Parent" -msgstr "" +msgstr "Axustar ao Pai" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Snap to Node Anchor" -msgstr "" +msgstr "Axustar á Ãncora do Nodo" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Snap to Node Sides" -msgstr "" +msgstr "Axustar aos Laterais do Nodo" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Snap to Node Center" -msgstr "" +msgstr "Axustar ao Centro do Nodo" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Snap to Other Nodes" -msgstr "" +msgstr "Axustar a Outros Nodos" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Snap to Guides" -msgstr "" +msgstr "Axustar as GuÃas" #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp msgid "Lock the selected object in place (can't be moved)." -msgstr "" +msgstr "Fixar o obxecto no sitio (non se poderá mover)." #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp msgid "Unlock the selected object (can be moved)." -msgstr "" +msgstr "Liberar o obxecto seleccionado (pode moverse)." #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp msgid "Makes sure the object's children are not selectable." -msgstr "" +msgstr "Asegúrase de que os fillos do obxecto non sexan seleccionables." #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp msgid "Restores the object's children's ability to be selected." -msgstr "" +msgstr "Volve a permitir seleccionar os fillos do obxecto." #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Skeleton Options" @@ -5458,11 +5604,11 @@ msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Show Bones" -msgstr "" +msgstr "Amosar Ósos" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Make Custom Bone(s) from Node(s)" -msgstr "" +msgstr "Crear Óso(s) Personalizados a partir de Nodo(s)" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Clear Custom Bones" @@ -5471,11 +5617,11 @@ msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp msgid "View" -msgstr "" +msgstr "Ver" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Always Show Grid" -msgstr "" +msgstr "Sempre Amosar a CuadrÃcula" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Show Helpers" @@ -5483,35 +5629,35 @@ msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Show Rulers" -msgstr "" +msgstr "Amosar Regras" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Show Guides" -msgstr "" +msgstr "Amosar GuÃas" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Show Origin" -msgstr "" +msgstr "Amosar Orixe" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Show Viewport" -msgstr "" +msgstr "Amosar Mini-Ventá (Viewport)" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Show Group And Lock Icons" -msgstr "" +msgstr "Amosar Grupo e Bloquear Iconas" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Center Selection" -msgstr "" +msgstr "Centrar Selección" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Frame Selection" -msgstr "" +msgstr "Encadrar Selección" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Preview Canvas Scale" -msgstr "" +msgstr "Vista Previa da Escala do Lenzo (Canvas)" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Translation mask for inserting keys." @@ -5536,6 +5682,10 @@ msgid "" "Keys are only added to existing tracks, no new tracks will be created.\n" "Keys must be inserted manually for the first time." msgstr "" +"Inserción automática de claves cando os obxectos son trasladados, rotados, " +"ou escalados (depenendo da Máscara).\n" +"As chaves só engádense a pistas xa existentes; nunca se crean novas pistas.\n" +"As chaves teñen que insertarse manualmente cando se utiliza por primeira vez." #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Auto Insert Key" @@ -5551,19 +5701,19 @@ msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Copy Pose" -msgstr "" +msgstr "Copiar Pose" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Clear Pose" -msgstr "" +msgstr "Restablecer Pose" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Multiply grid step by 2" -msgstr "" +msgstr "Multiplicar Dimensión da CuadrÃcula por 2" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Divide grid step by 2" -msgstr "" +msgstr "Dividir Dimensión da CuadrÃcula por 2" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Pan View" @@ -5571,35 +5721,37 @@ msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Add %s" -msgstr "" +msgstr "Engadir %s" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Adding %s..." -msgstr "" +msgstr "Engadindo %s..." #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Cannot instantiate multiple nodes without root." -msgstr "" +msgstr "Non se pode instanciar varios nodos sen un nodo raÃz." #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp msgid "Create Node" -msgstr "" +msgstr "Crear Nodo" #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp msgid "Error instancing scene from %s" -msgstr "" +msgstr "Erro instanciado escena desde %s" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Change Default Type" -msgstr "" +msgstr "Cambiar Tipo por Defecto" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "" "Drag & drop + Shift : Add node as sibling\n" "Drag & drop + Alt : Change node type" msgstr "" +"Arrastrar e Soltar + Shift : Engade nodo como irmán\n" +"Arrastrar e Soltar + Alt : Cambiar tipo de nodo" #: editor/plugins/collision_polygon_editor_plugin.cpp msgid "Create Polygon3D" @@ -5607,11 +5759,11 @@ msgstr "" #: editor/plugins/collision_polygon_editor_plugin.cpp msgid "Edit Poly" -msgstr "" +msgstr "Editar PolÃgono" #: editor/plugins/collision_polygon_editor_plugin.cpp msgid "Edit Poly (Remove Point)" -msgstr "" +msgstr "Editar PolÃgono (Eliminar Punto)" #: editor/plugins/collision_shape_2d_editor_plugin.cpp msgid "Set Handle" @@ -5627,7 +5779,7 @@ msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp #: editor/plugins/particles_editor_plugin.cpp msgid "Restart" -msgstr "" +msgstr "Reiniciar" #: editor/plugins/cpu_particles_2d_editor_plugin.cpp #: editor/plugins/particles_2d_editor_plugin.cpp @@ -5638,12 +5790,12 @@ msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp #: editor/plugins/particles_editor_plugin.cpp msgid "Particles" -msgstr "" +msgstr "PartÃculas" #: editor/plugins/cpu_particles_2d_editor_plugin.cpp #: editor/plugins/particles_2d_editor_plugin.cpp msgid "Generated Point Count:" -msgstr "" +msgstr "Número de Puntos Xerados:" #: editor/plugins/cpu_particles_2d_editor_plugin.cpp #: editor/plugins/particles_2d_editor_plugin.cpp @@ -5677,7 +5829,7 @@ msgstr "" #: editor/plugins/cpu_particles_editor_plugin.cpp msgid "CPUParticles" -msgstr "" +msgstr "CPUParticles" #: editor/plugins/cpu_particles_editor_plugin.cpp #: editor/plugins/particles_editor_plugin.cpp @@ -5723,11 +5875,11 @@ msgstr "" #: editor/plugins/curve_editor_plugin.cpp msgid "Add Point" -msgstr "" +msgstr "Engadir Punto" #: editor/plugins/curve_editor_plugin.cpp msgid "Remove Point" -msgstr "" +msgstr "Eliminar Punto" #: editor/plugins/curve_editor_plugin.cpp msgid "Left Linear" @@ -5767,11 +5919,11 @@ msgstr "" #: editor/plugins/item_list_editor_plugin.cpp msgid "Item %d" -msgstr "" +msgstr "Elemento %d" #: editor/plugins/item_list_editor_plugin.cpp msgid "Items" -msgstr "" +msgstr "Elementos" #: editor/plugins/item_list_editor_plugin.cpp msgid "Item List Editor" @@ -5836,6 +5988,10 @@ msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "UV Unwrap failed, mesh may not be manifold?" msgstr "" +"Fallo no Unwrap de UV. Posiblemente a malla non é unha variedade (é dicir, " +"que a malla non forma unha superficie conexa, contÃnua, e con dous caras " +"diferenciables). En programas de modelaxe 3D pódese eliminar xeometrÃa que " +"non sexa unha variedade (\"Non Manifold\") fácilmente." #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "No mesh to debug." @@ -5843,7 +5999,7 @@ msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Model has no UV in this layer" -msgstr "" +msgstr "O modelo non ten UVs nesta capa" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "MeshInstance lacks a Mesh!" @@ -5867,7 +6023,7 @@ msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Mesh" -msgstr "" +msgstr "Malla" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Trimesh Static Body" @@ -5879,6 +6035,9 @@ msgid "" "automatically.\n" "This is the most accurate (but slowest) option for collision detection." msgstr "" +"Crear un nodo StaticBody e asÃgnalle automáticamente unha forma fÃsica " +"baseada en polÃgonos.\n" +"Esta é a forma máis precisa (e máis lenta) de detección de colisións." #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Trimesh Collision Sibling" @@ -5889,6 +6048,8 @@ msgid "" "Creates a polygon-based collision shape.\n" "This is the most accurate (but slowest) option for collision detection." msgstr "" +"Crea unha formá fÃsica baseada en polÃgonos.\n" +"Esta é a forma máis precisa (pero máis lenta) de detectar colisións." #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Single Convex Collision Sibling" @@ -5899,6 +6060,8 @@ msgid "" "Creates a single convex collision shape.\n" "This is the fastest (but least accurate) option for collision detection." msgstr "" +"Crea unha única forma fÃsica convexa.\n" +"Esta é a maneira más eficiente (pero menos precisa) de detectar colisións." #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Multiple Convex Collision Siblings" @@ -5924,15 +6087,15 @@ msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "View UV1" -msgstr "" +msgstr "Amosar UV1" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "View UV2" -msgstr "" +msgstr "Amosar UV2" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Unwrap UV2 for Lightmap/AO" -msgstr "" +msgstr "Facer Unwrap do UV2 para Lightmap/AO" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Outline Mesh" @@ -5944,7 +6107,7 @@ msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "UV Channel Debug" -msgstr "" +msgstr "Depuración do Canle UV" #: editor/plugins/mesh_library_editor_plugin.cpp msgid "Remove item %d?" @@ -5963,7 +6126,7 @@ msgstr "" #: editor/plugins/mesh_library_editor_plugin.cpp #: editor/plugins/theme_editor_plugin.cpp msgid "Add Item" -msgstr "" +msgstr "Engadir Elemento" #: editor/plugins/mesh_library_editor_plugin.cpp msgid "Remove Selected Item" @@ -6039,15 +6202,15 @@ msgstr "" #: editor/plugins/multimesh_editor_plugin.cpp msgid "X-Axis" -msgstr "" +msgstr "Eixe X" #: editor/plugins/multimesh_editor_plugin.cpp msgid "Y-Axis" -msgstr "" +msgstr "Eixe Y" #: editor/plugins/multimesh_editor_plugin.cpp msgid "Z-Axis" -msgstr "" +msgstr "Eixe Z" #: editor/plugins/multimesh_editor_plugin.cpp msgid "Mesh Up Axis:" @@ -6067,7 +6230,7 @@ msgstr "" #: editor/plugins/multimesh_editor_plugin.cpp msgid "Populate" -msgstr "" +msgstr "Encher" #: editor/plugins/navigation_polygon_editor_plugin.cpp #: editor/plugins/tile_set_editor_plugin.cpp @@ -6077,7 +6240,7 @@ msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp #: editor/plugins/particles_editor_plugin.cpp msgid "Convert to CPUParticles" -msgstr "" +msgstr "Converter a CPUParticles" #: editor/plugins/particles_2d_editor_plugin.cpp msgid "Generating Visibility Rect" @@ -6093,7 +6256,7 @@ msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp msgid "Convert to CPUParticles2D" -msgstr "" +msgstr "Converter a CPUParticles2D" #: editor/plugins/particles_2d_editor_plugin.cpp #: editor/plugins/particles_editor_plugin.cpp @@ -6138,7 +6301,7 @@ msgstr "" #: editor/plugins/particles_editor_plugin.cpp msgid "Volume" -msgstr "" +msgstr "Volume" #: editor/plugins/particles_editor_plugin.cpp msgid "Emission Source: " @@ -6192,7 +6355,7 @@ msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp msgid "Select Points" -msgstr "" +msgstr "Seleccionar Puntos" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp @@ -6225,7 +6388,7 @@ msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp msgid "Delete Point" -msgstr "" +msgstr "Eliminar Puntos" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp @@ -6236,7 +6399,7 @@ msgstr "" #: editor/plugins/path_editor_plugin.cpp editor/plugins/theme_editor_plugin.cpp #: editor/plugins/visual_shader_editor_plugin.cpp editor/project_export.cpp msgid "Options" -msgstr "" +msgstr "Opcións" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp @@ -6302,20 +6465,24 @@ msgid "" "No texture in this polygon.\n" "Set a texture to be able to edit UV." msgstr "" +"Non hai unha textura neste polÃgono.\n" +"Engada unha textura para editar o UV." #: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Create UV Map" -msgstr "" +msgstr "Crear Mapa UV" #: editor/plugins/polygon_2d_editor_plugin.cpp msgid "" "Polygon 2D has internal vertices, so it can no longer be edited in the " "viewport." msgstr "" +"O polÃgono 2D ten vértices internos, polo que xa non se pode editar na Mini-" +"Ventá (Viewport)." #: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Create Polygon & UV" -msgstr "" +msgstr "Crear PolÃgono e UV" #: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Create Internal Vertex" @@ -6331,15 +6498,15 @@ msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Add Custom Polygon" -msgstr "" +msgstr "Engadir PolÃgono Personalizado" #: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Remove Custom Polygon" -msgstr "" +msgstr "Eliminar PolÃgono Personalizado" #: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Transform UV Map" -msgstr "" +msgstr "Transformar Mapa UV" #: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Transform Polygon" @@ -6351,31 +6518,31 @@ msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Open Polygon 2D UV editor." -msgstr "" +msgstr "Abrir Editor UV de PolÃgonos 2D." #: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Polygon 2D UV Editor" -msgstr "" +msgstr "Editor UV de PolÃgonos 2D" #: editor/plugins/polygon_2d_editor_plugin.cpp msgid "UV" -msgstr "" +msgstr "UV" #: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Points" -msgstr "" +msgstr "Puntos" #: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Polygons" -msgstr "" +msgstr "PolÃgonos" #: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Bones" -msgstr "" +msgstr "Ósos" #: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Move Points" -msgstr "" +msgstr "Mover Puntos" #: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Command: Rotate" @@ -6391,23 +6558,23 @@ msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Ctrl: Rotate" -msgstr "" +msgstr "Ctrl: Rotar" #: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Shift+Ctrl: Scale" -msgstr "" +msgstr "Shift+Ctrl: Escalar" #: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Move Polygon" -msgstr "" +msgstr "Mover PolÃgono" #: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Rotate Polygon" -msgstr "" +msgstr "Rotar PolÃgono" #: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Scale Polygon" -msgstr "" +msgstr "Escalar PolÃgono" #: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Create a custom polygon. Enables custom polygon rendering." @@ -6429,19 +6596,19 @@ msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Radius:" -msgstr "" +msgstr "Radio:" #: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Copy Polygon to UV" -msgstr "" +msgstr "Copiar PolÃgono a UV" #: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Copy UV to Polygon" -msgstr "" +msgstr "Copiar UV a PolÃgono" #: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Clear UV" -msgstr "" +msgstr "Limpar UV" #: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Grid Settings" @@ -6449,23 +6616,23 @@ msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Snap" -msgstr "" +msgstr "Axuste de CuadrÃcula" #: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Enable Snap" -msgstr "" +msgstr "Activar Axuste" #: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Grid" -msgstr "" +msgstr "CuadrÃcula" #: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Show Grid" -msgstr "" +msgstr "Amosar CuadrÃcula" #: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Configure Grid:" -msgstr "" +msgstr "Configurar CuadrÃcula:" #: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Grid Offset X:" @@ -6493,16 +6660,16 @@ msgstr "" #: editor/plugins/resource_preloader_editor_plugin.cpp msgid "Add Resource" -msgstr "" +msgstr "Engadir Recurso" #: editor/plugins/resource_preloader_editor_plugin.cpp msgid "Rename Resource" -msgstr "" +msgstr "Renomear Recurso" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Delete Resource" -msgstr "" +msgstr "Eliminar Recurso" #: editor/plugins/resource_preloader_editor_plugin.cpp msgid "Resource clipboard is empty!" @@ -6510,19 +6677,19 @@ msgstr "" #: editor/plugins/resource_preloader_editor_plugin.cpp msgid "Paste Resource" -msgstr "" +msgstr "Pegar Recurso" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/scene_tree_editor.cpp msgid "Instance:" -msgstr "" +msgstr "Instancia:" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_settings_editor.cpp #: editor/scene_tree_editor.cpp editor/script_editor_debugger.cpp #: modules/visual_script/visual_script_editor.cpp msgid "Type:" -msgstr "" +msgstr "Tipo:" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/scene_tree_dock.cpp editor/scene_tree_editor.cpp @@ -6531,7 +6698,7 @@ msgstr "" #: editor/plugins/resource_preloader_editor_plugin.cpp msgid "Load Resource" -msgstr "" +msgstr "Cargar Recurso" #: editor/plugins/resource_preloader_editor_plugin.cpp msgid "ResourcePreloader" @@ -6571,7 +6738,7 @@ msgstr "" #: editor/plugins/script_editor_plugin.cpp msgid "Error Saving" -msgstr "" +msgstr "Erro ao Gardar" #: editor/plugins/script_editor_plugin.cpp msgid "Error importing theme." @@ -6579,7 +6746,7 @@ msgstr "" #: editor/plugins/script_editor_plugin.cpp msgid "Error Importing" -msgstr "" +msgstr "Erro ao Importar" #: editor/plugins/script_editor_plugin.cpp msgid "New Text File..." @@ -6587,7 +6754,7 @@ msgstr "" #: editor/plugins/script_editor_plugin.cpp msgid "Open File" -msgstr "" +msgstr "Abrir Arquivo" #: editor/plugins/script_editor_plugin.cpp msgid "Save File As..." @@ -6612,7 +6779,7 @@ msgstr "" #: editor/plugins/script_editor_plugin.cpp msgid "Import Theme" -msgstr "" +msgstr "Importar Tema" #: editor/plugins/script_editor_plugin.cpp msgid "Error while saving theme" @@ -6620,7 +6787,7 @@ msgstr "" #: editor/plugins/script_editor_plugin.cpp msgid "Error saving" -msgstr "" +msgstr "Erro ao gardar" #: editor/plugins/script_editor_plugin.cpp msgid "Save Theme As..." @@ -6633,16 +6800,16 @@ msgstr "" #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp msgid "Find Next" -msgstr "" +msgstr "Atopar Seguinte" #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp msgid "Find Previous" -msgstr "" +msgstr "Atopar Anterior" #: editor/plugins/script_editor_plugin.cpp msgid "Filter scripts" -msgstr "" +msgstr "Filtrar scripts" #: editor/plugins/script_editor_plugin.cpp msgid "Toggle alphabetical sorting of the method list." @@ -6650,11 +6817,11 @@ msgstr "" #: editor/plugins/script_editor_plugin.cpp msgid "Filter methods" -msgstr "" +msgstr "Filtrar métodos" #: editor/plugins/script_editor_plugin.cpp msgid "Sort" -msgstr "" +msgstr "Ordenar" #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp @@ -6670,19 +6837,19 @@ msgstr "" #: editor/plugins/script_editor_plugin.cpp msgid "Next script" -msgstr "" +msgstr "Seguinte script" #: editor/plugins/script_editor_plugin.cpp msgid "Previous script" -msgstr "" +msgstr "Anterior script" #: editor/plugins/script_editor_plugin.cpp msgid "File" -msgstr "" +msgstr "Arquivo" #: editor/plugins/script_editor_plugin.cpp msgid "Open..." -msgstr "" +msgstr "Abrir..." #: editor/plugins/script_editor_plugin.cpp msgid "Reopen Closed Script" @@ -6690,7 +6857,7 @@ msgstr "" #: editor/plugins/script_editor_plugin.cpp msgid "Save All" -msgstr "" +msgstr "Gardar Todo" #: editor/plugins/script_editor_plugin.cpp msgid "Soft Reload Script" @@ -6711,31 +6878,31 @@ msgstr "" #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/theme_editor_plugin.cpp msgid "Theme" -msgstr "" +msgstr "Tema" #: editor/plugins/script_editor_plugin.cpp msgid "Import Theme..." -msgstr "" +msgstr "Importar Tema..." #: editor/plugins/script_editor_plugin.cpp msgid "Reload Theme" -msgstr "" +msgstr "Volver a Cargar Tema" #: editor/plugins/script_editor_plugin.cpp msgid "Save Theme" -msgstr "" +msgstr "Gardar Tema" #: editor/plugins/script_editor_plugin.cpp msgid "Close All" -msgstr "" +msgstr "Pechar Todo" #: editor/plugins/script_editor_plugin.cpp msgid "Close Docs" -msgstr "" +msgstr "Pechar Documentación" #: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp msgid "Run" -msgstr "" +msgstr "Executar" #: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp msgid "Step Into" @@ -6752,7 +6919,7 @@ msgstr "" #: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp #: editor/script_editor_debugger.cpp msgid "Continue" -msgstr "" +msgstr "Continuar" #: editor/plugins/script_editor_plugin.cpp msgid "Keep Debugger Open" @@ -6768,19 +6935,19 @@ msgstr "" #: editor/plugins/script_editor_plugin.cpp msgid "Search the reference documentation." -msgstr "" +msgstr "Buscar na documentación de referencia." #: editor/plugins/script_editor_plugin.cpp msgid "Go to previous edited document." -msgstr "" +msgstr "Ir ao anterior documento editado." #: editor/plugins/script_editor_plugin.cpp msgid "Go to next edited document." -msgstr "" +msgstr "Ir ao seguinte documento editado." #: editor/plugins/script_editor_plugin.cpp msgid "Discard" -msgstr "" +msgstr "Descartar" #: editor/plugins/script_editor_plugin.cpp msgid "" @@ -6788,23 +6955,13 @@ msgid "" "What action should be taken?:" msgstr "" -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/shader_editor_plugin.cpp -msgid "Reload" -msgstr "" - -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/shader_editor_plugin.cpp -msgid "Resave" -msgstr "" - #: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp msgid "Debugger" -msgstr "" +msgstr "Depurador" #: editor/plugins/script_editor_plugin.cpp msgid "Search Results" -msgstr "" +msgstr "Resultados de Búsqueda" #: editor/plugins/script_editor_plugin.cpp msgid "Clear Recent Scripts" @@ -6816,11 +6973,11 @@ msgstr "" #: editor/plugins/script_text_editor.cpp editor/script_editor_debugger.cpp msgid "Source" -msgstr "" +msgstr "Fonte" #: editor/plugins/script_text_editor.cpp msgid "Target" -msgstr "" +msgstr "Obxectivo" #: editor/plugins/script_text_editor.cpp msgid "" @@ -6829,15 +6986,15 @@ msgstr "" #: editor/plugins/script_text_editor.cpp msgid "[Ignore]" -msgstr "" +msgstr "[Ignorar]" #: editor/plugins/script_text_editor.cpp msgid "Line" -msgstr "" +msgstr "Liña" #: editor/plugins/script_text_editor.cpp msgid "Go to Function" -msgstr "" +msgstr "Ir a Función" #: editor/plugins/script_text_editor.cpp msgid "Only resources from filesystem can be dropped." @@ -6854,32 +7011,32 @@ msgstr "" #: editor/plugins/script_text_editor.cpp msgid "Pick Color" -msgstr "" +msgstr "Elexir Cor" #: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp msgid "Convert Case" -msgstr "" +msgstr "Converter Maiús./Minús." #: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp msgid "Uppercase" -msgstr "" +msgstr "Maiúscula" #: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp msgid "Lowercase" -msgstr "" +msgstr "Minúscula" #: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp msgid "Capitalize" -msgstr "" +msgstr "Capitalizar" #: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp msgid "Syntax Highlighter" -msgstr "" +msgstr "Marcador de Sintaxe" #: editor/plugins/script_text_editor.cpp #: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp msgid "Bookmarks" -msgstr "" +msgstr "Marcadores" #: editor/plugins/script_text_editor.cpp msgid "Breakpoints" @@ -6888,168 +7045,170 @@ msgstr "" #: editor/plugins/script_text_editor.cpp #: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp msgid "Go To" -msgstr "" +msgstr "Ir a" #: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Cut" -msgstr "" +msgstr "Cortar" #: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Select All" -msgstr "" +msgstr "Seleccionar Todo" #: editor/plugins/script_text_editor.cpp msgid "Delete Line" -msgstr "" +msgstr "Eliminar Liña" #: editor/plugins/script_text_editor.cpp msgid "Indent Left" -msgstr "" +msgstr "Sangrado á Esquerda" #: editor/plugins/script_text_editor.cpp msgid "Indent Right" -msgstr "" +msgstr "Sangrado á Dereita" #: editor/plugins/script_text_editor.cpp msgid "Toggle Comment" -msgstr "" +msgstr "Comentar/Descomentar" #: editor/plugins/script_text_editor.cpp msgid "Fold/Unfold Line" -msgstr "" +msgstr "Expandir/Colapsar Liña" #: editor/plugins/script_text_editor.cpp msgid "Fold All Lines" -msgstr "" +msgstr "Colapsar Tódalas Liñas" #: editor/plugins/script_text_editor.cpp msgid "Unfold All Lines" -msgstr "" +msgstr "Expandir Tódalas Liñas" #: editor/plugins/script_text_editor.cpp msgid "Clone Down" -msgstr "" +msgstr "Clonar Liña" #: editor/plugins/script_text_editor.cpp msgid "Complete Symbol" -msgstr "" +msgstr "Completar SÃmbolo" #: editor/plugins/script_text_editor.cpp msgid "Evaluate Selection" -msgstr "" +msgstr "Evaluar Selección" #: editor/plugins/script_text_editor.cpp msgid "Trim Trailing Whitespace" -msgstr "" +msgstr "Eliminar Espazos ao Final da Liña" #: editor/plugins/script_text_editor.cpp msgid "Convert Indent to Spaces" -msgstr "" +msgstr "Convertir Indentación a Espazos" #: editor/plugins/script_text_editor.cpp msgid "Convert Indent to Tabs" -msgstr "" +msgstr "Convertir Identación a Tabulacións" #: editor/plugins/script_text_editor.cpp msgid "Auto Indent" -msgstr "" +msgstr "Auto Indentar" #: editor/plugins/script_text_editor.cpp msgid "Find in Files..." -msgstr "" +msgstr "Buscar en Arquivos.." #: editor/plugins/script_text_editor.cpp msgid "Contextual Help" -msgstr "" +msgstr "Axuda Contextual" #: editor/plugins/script_text_editor.cpp msgid "Toggle Bookmark" -msgstr "" +msgstr "Act./Desact. Marcapáxinas" #: editor/plugins/script_text_editor.cpp msgid "Go to Next Bookmark" -msgstr "" +msgstr "Ir ao Seguinte Marcapáxinas" #: editor/plugins/script_text_editor.cpp msgid "Go to Previous Bookmark" -msgstr "" +msgstr "Ir ao Anterior Marcapáxinas" #: editor/plugins/script_text_editor.cpp msgid "Remove All Bookmarks" -msgstr "" +msgstr "Eliminar Tódolos Marcapáxinas" #: editor/plugins/script_text_editor.cpp msgid "Go to Function..." -msgstr "" +msgstr "Ir a Función..." #: editor/plugins/script_text_editor.cpp msgid "Go to Line..." -msgstr "" +msgstr "Ir a Liña..." #: editor/plugins/script_text_editor.cpp #: modules/visual_script/visual_script_editor.cpp msgid "Toggle Breakpoint" -msgstr "" +msgstr "Act./Desact. Punto de Interrupción (Breakpoint)" #: editor/plugins/script_text_editor.cpp msgid "Remove All Breakpoints" -msgstr "" +msgstr "Eliminar Tódolos Puntos de Interrupción (Breakpoints)" #: editor/plugins/script_text_editor.cpp msgid "Go to Next Breakpoint" -msgstr "" +msgstr "Ir ao Seguinte Punto de Interrupción" #: editor/plugins/script_text_editor.cpp msgid "Go to Previous Breakpoint" -msgstr "" +msgstr "Ir ao Anterior Punto de Interrupción" #: editor/plugins/shader_editor_plugin.cpp msgid "" "This shader has been modified on on disk.\n" "What action should be taken?" msgstr "" +"Este shader foi modificado en disco.\n" +"Que acción deberÃan de tomarse?" #: editor/plugins/shader_editor_plugin.cpp msgid "Shader" -msgstr "" +msgstr "Shader" #: editor/plugins/skeleton_2d_editor_plugin.cpp msgid "This skeleton has no bones, create some children Bone2D nodes." -msgstr "" +msgstr "Este esqueleto non ten ósos; crea uns nodos fillo Bone2D." #: editor/plugins/skeleton_2d_editor_plugin.cpp msgid "Create Rest Pose from Bones" -msgstr "" +msgstr "Crear Pose de Repouso a partir dos Ósos" #: editor/plugins/skeleton_2d_editor_plugin.cpp msgid "Set Rest Pose to Bones" -msgstr "" +msgstr "Asignar Pose de Repouso aos Ósos" #: editor/plugins/skeleton_2d_editor_plugin.cpp msgid "Skeleton2D" -msgstr "" +msgstr "Skeleton2D" #: editor/plugins/skeleton_2d_editor_plugin.cpp msgid "Make Rest Pose (From Bones)" -msgstr "" +msgstr "Crear Pose de Repouso (a partir dos Ósos)" #: editor/plugins/skeleton_2d_editor_plugin.cpp msgid "Set Bones to Rest Pose" -msgstr "" +msgstr "Asignar Pose de Repouso aos Ósos" #: editor/plugins/skeleton_editor_plugin.cpp msgid "Create physical bones" -msgstr "" +msgstr "Crear ósos fÃsicos" #: editor/plugins/skeleton_editor_plugin.cpp msgid "Skeleton" -msgstr "" +msgstr "Esqueleto" #: editor/plugins/skeleton_editor_plugin.cpp msgid "Create physical skeleton" -msgstr "" +msgstr "Crear esqueleto fÃsico" #: editor/plugins/skeleton_ik_editor_plugin.cpp msgid "Play IK" @@ -7057,11 +7216,11 @@ msgstr "" #: editor/plugins/spatial_editor_plugin.cpp msgid "Orthogonal" -msgstr "" +msgstr "Ortogonal" #: editor/plugins/spatial_editor_plugin.cpp msgid "Perspective" -msgstr "" +msgstr "Perspetiva" #: editor/plugins/spatial_editor_plugin.cpp msgid "Transform Aborted." @@ -7085,15 +7244,15 @@ msgstr "" #: editor/plugins/spatial_editor_plugin.cpp msgid "Scaling: " -msgstr "" +msgstr "Escalado: " #: editor/plugins/spatial_editor_plugin.cpp msgid "Translating: " -msgstr "" +msgstr "Trasladando: " #: editor/plugins/spatial_editor_plugin.cpp msgid "Rotating %s degrees." -msgstr "" +msgstr "Rotando % graos." #: editor/plugins/spatial_editor_plugin.cpp msgid "Keying is disabled (no key inserted)." @@ -7105,19 +7264,19 @@ msgstr "" #: editor/plugins/spatial_editor_plugin.cpp msgid "Pitch" -msgstr "" +msgstr "Cabeceo" #: editor/plugins/spatial_editor_plugin.cpp msgid "Yaw" -msgstr "" +msgstr "Guiñada" #: editor/plugins/spatial_editor_plugin.cpp msgid "Size" -msgstr "" +msgstr "Tamaño" #: editor/plugins/spatial_editor_plugin.cpp msgid "Objects Drawn" -msgstr "" +msgstr "Obxectos Debuxados" #: editor/plugins/spatial_editor_plugin.cpp msgid "Material Changes" @@ -7137,71 +7296,71 @@ msgstr "" #: editor/plugins/spatial_editor_plugin.cpp msgid "Vertices" -msgstr "" +msgstr "Vértices" #: editor/plugins/spatial_editor_plugin.cpp msgid "Top View." -msgstr "" +msgstr "Vista Superior." #: editor/plugins/spatial_editor_plugin.cpp msgid "Bottom View." -msgstr "" +msgstr "Vista Inferior." #: editor/plugins/spatial_editor_plugin.cpp msgid "Bottom" -msgstr "" +msgstr "Inferior" #: editor/plugins/spatial_editor_plugin.cpp msgid "Left View." -msgstr "" +msgstr "Vista Esquerda." #: editor/plugins/spatial_editor_plugin.cpp msgid "Left" -msgstr "" +msgstr "Esquerda" #: editor/plugins/spatial_editor_plugin.cpp msgid "Right View." -msgstr "" +msgstr "Vista Dereita." #: editor/plugins/spatial_editor_plugin.cpp msgid "Right" -msgstr "" +msgstr "Dereita" #: editor/plugins/spatial_editor_plugin.cpp msgid "Front View." -msgstr "" +msgstr "Vista Frontal." #: editor/plugins/spatial_editor_plugin.cpp msgid "Front" -msgstr "" +msgstr "Frontal" #: editor/plugins/spatial_editor_plugin.cpp msgid "Rear View." -msgstr "" +msgstr "Vista Traseria." #: editor/plugins/spatial_editor_plugin.cpp msgid "Rear" -msgstr "" +msgstr "Traseira" #: editor/plugins/spatial_editor_plugin.cpp msgid "Align Transform with View" -msgstr "" +msgstr "Aliñar Transformación con Perspectiva" #: editor/plugins/spatial_editor_plugin.cpp msgid "Align Rotation with View" -msgstr "" +msgstr "Aliñar Rotación con Perspectiva" #: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp msgid "No parent to instance a child at." -msgstr "" +msgstr "Non hai un pai ao que instanciarlle un fillo." #: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp msgid "This operation requires a single selected node." -msgstr "" +msgstr "Esta operación precisa un único nodo seleccionado." #: editor/plugins/spatial_editor_plugin.cpp msgid "Auto Orthogonal Enabled" -msgstr "" +msgstr "Auto Ortogonal Activado" #: editor/plugins/spatial_editor_plugin.cpp msgid "Lock View Rotation" @@ -7209,55 +7368,55 @@ msgstr "" #: editor/plugins/spatial_editor_plugin.cpp msgid "Display Normal" -msgstr "" +msgstr "Mostrar de Forma Normal" #: editor/plugins/spatial_editor_plugin.cpp msgid "Display Wireframe" -msgstr "" +msgstr "Mostrar Malla" #: editor/plugins/spatial_editor_plugin.cpp msgid "Display Overdraw" -msgstr "" +msgstr "Mostrar Zonas Redebuxadas (Overdraw)" #: editor/plugins/spatial_editor_plugin.cpp msgid "Display Unshaded" -msgstr "" +msgstr "Mostrar Sen Sombreado" #: editor/plugins/spatial_editor_plugin.cpp msgid "View Environment" -msgstr "" +msgstr "Amosar Entorno" #: editor/plugins/spatial_editor_plugin.cpp msgid "View Gizmos" -msgstr "" +msgstr "Amosar Gizmos" #: editor/plugins/spatial_editor_plugin.cpp msgid "View Information" -msgstr "" +msgstr "Amosar Información" #: editor/plugins/spatial_editor_plugin.cpp msgid "View FPS" -msgstr "" +msgstr "Ver FPS" #: editor/plugins/spatial_editor_plugin.cpp msgid "Half Resolution" -msgstr "" +msgstr "Resolución á Metade" #: editor/plugins/spatial_editor_plugin.cpp msgid "Audio Listener" -msgstr "" +msgstr "OÃnte de Son" #: editor/plugins/spatial_editor_plugin.cpp msgid "Enable Doppler" -msgstr "" +msgstr "Activar Efecto Doppler" #: editor/plugins/spatial_editor_plugin.cpp msgid "Cinematic Preview" -msgstr "" +msgstr "Vista Previa Cinemática" #: editor/plugins/spatial_editor_plugin.cpp msgid "Not available when using the GLES2 renderer." -msgstr "" +msgstr "Non dispoñible cando se está usando o renderizador GLES2." #: editor/plugins/spatial_editor_plugin.cpp msgid "Freelook Left" @@ -7300,6 +7459,8 @@ msgid "" "Note: The FPS value displayed is the editor's framerate.\n" "It cannot be used as a reliable indication of in-game performance." msgstr "" +"Nota: o valor dos FPS corresponde aos fotogramas por segundo do editor.\n" +"Non pode usarse como unha forma fiable de medir o rendemento do xogo." #: editor/plugins/spatial_editor_plugin.cpp msgid "XForm Dialog" @@ -7313,14 +7474,20 @@ msgid "" "Closed eye: Gizmo is hidden.\n" "Half-open eye: Gizmo is also visible through opaque surfaces (\"x-ray\")." msgstr "" +"Faga clic para cambiar entre estados de visibilidade.\n" +"\n" +"Ollo aberto: Gizmo visible.\n" +"Ollo pechado: Gizmo oculto.\n" +"Ollo medio aberto, medio pechado: Gizmo visible ao través de superficies " +"opacas (\"raios x\")." #: editor/plugins/spatial_editor_plugin.cpp msgid "Snap Nodes To Floor" -msgstr "" +msgstr "Axustar Nodos ao Chan" #: editor/plugins/spatial_editor_plugin.cpp msgid "Couldn't find a solid floor to snap the selection to." -msgstr "" +msgstr "Non se puido encontrar chan sólido no que poder axustar a selección." #: editor/plugins/spatial_editor_plugin.cpp msgid "" @@ -7331,39 +7498,39 @@ msgstr "" #: editor/plugins/spatial_editor_plugin.cpp msgid "Use Local Space" -msgstr "" +msgstr "Usar Espazo Local" #: editor/plugins/spatial_editor_plugin.cpp msgid "Use Snap" -msgstr "" +msgstr "Usar Axuste de CuadrÃcula" #: editor/plugins/spatial_editor_plugin.cpp msgid "Bottom View" -msgstr "" +msgstr "Vista Inferior" #: editor/plugins/spatial_editor_plugin.cpp msgid "Top View" -msgstr "" +msgstr "Vista Superior" #: editor/plugins/spatial_editor_plugin.cpp msgid "Rear View" -msgstr "" +msgstr "Vista Traseira" #: editor/plugins/spatial_editor_plugin.cpp msgid "Front View" -msgstr "" +msgstr "Vista Frontal" #: editor/plugins/spatial_editor_plugin.cpp msgid "Left View" -msgstr "" +msgstr "Vista Esquerda" #: editor/plugins/spatial_editor_plugin.cpp msgid "Right View" -msgstr "" +msgstr "Vista Dereita" #: editor/plugins/spatial_editor_plugin.cpp msgid "Switch Perspective/Orthogonal View" -msgstr "" +msgstr "Vista Perspectiva/Ortogonal" #: editor/plugins/spatial_editor_plugin.cpp msgid "Insert Animation Key" @@ -7384,39 +7551,39 @@ msgstr "" #: editor/plugins/spatial_editor_plugin.cpp #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Transform" -msgstr "" +msgstr "Transformación" #: editor/plugins/spatial_editor_plugin.cpp msgid "Snap Object to Floor" -msgstr "" +msgstr "Axustar Obxecto ao Chan" #: editor/plugins/spatial_editor_plugin.cpp msgid "Transform Dialog..." -msgstr "" +msgstr "Aplicar Transformación..." #: editor/plugins/spatial_editor_plugin.cpp msgid "1 Viewport" -msgstr "" +msgstr "1 Ventá" #: editor/plugins/spatial_editor_plugin.cpp msgid "2 Viewports" -msgstr "" +msgstr "2 Ventás" #: editor/plugins/spatial_editor_plugin.cpp msgid "2 Viewports (Alt)" -msgstr "" +msgstr "2 Ventás (Alt)" #: editor/plugins/spatial_editor_plugin.cpp msgid "3 Viewports" -msgstr "" +msgstr "3 Ventás" #: editor/plugins/spatial_editor_plugin.cpp msgid "3 Viewports (Alt)" -msgstr "" +msgstr "3 Ventás (Alt)" #: editor/plugins/spatial_editor_plugin.cpp msgid "4 Viewports" -msgstr "" +msgstr "4 Ventás" #: editor/plugins/spatial_editor_plugin.cpp msgid "Gizmos" @@ -7424,96 +7591,96 @@ msgstr "" #: editor/plugins/spatial_editor_plugin.cpp msgid "View Origin" -msgstr "" +msgstr "Amosar Orixe" #: editor/plugins/spatial_editor_plugin.cpp msgid "View Grid" -msgstr "" +msgstr "Amosar CuadrÃcula" #: editor/plugins/spatial_editor_plugin.cpp #: modules/gridmap/grid_map_editor_plugin.cpp msgid "Settings..." -msgstr "" +msgstr "Axustes..." #: editor/plugins/spatial_editor_plugin.cpp msgid "Snap Settings" -msgstr "" +msgstr "Configuración de Axuste" #: editor/plugins/spatial_editor_plugin.cpp msgid "Translate Snap:" -msgstr "" +msgstr "Axuste de Translación:" #: editor/plugins/spatial_editor_plugin.cpp msgid "Rotate Snap (deg.):" -msgstr "" +msgstr "Axuste de Rotación (graos):" #: editor/plugins/spatial_editor_plugin.cpp msgid "Scale Snap (%):" -msgstr "" +msgstr "Axuste de Escalado (%):" #: editor/plugins/spatial_editor_plugin.cpp msgid "Viewport Settings" -msgstr "" +msgstr "Axustes de Visión" #: editor/plugins/spatial_editor_plugin.cpp msgid "Perspective FOV (deg.):" -msgstr "" +msgstr "Campo de Visión (graos):" #: editor/plugins/spatial_editor_plugin.cpp msgid "View Z-Near:" -msgstr "" +msgstr "Plano Próximo:" #: editor/plugins/spatial_editor_plugin.cpp msgid "View Z-Far:" -msgstr "" +msgstr "Plano Afastado:" #: editor/plugins/spatial_editor_plugin.cpp msgid "Transform Change" -msgstr "" +msgstr "Cambio de Transformación" #: editor/plugins/spatial_editor_plugin.cpp msgid "Translate:" -msgstr "" +msgstr "Trasladar:" #: editor/plugins/spatial_editor_plugin.cpp msgid "Rotate (deg.):" -msgstr "" +msgstr "Rotar (graos):" #: editor/plugins/spatial_editor_plugin.cpp msgid "Scale (ratio):" -msgstr "" +msgstr "Escalar (Razón):" #: editor/plugins/spatial_editor_plugin.cpp msgid "Transform Type" -msgstr "" +msgstr "Tipo de Transformación" #: editor/plugins/spatial_editor_plugin.cpp msgid "Pre" -msgstr "" +msgstr "Anterior (Pre)" #: editor/plugins/spatial_editor_plugin.cpp msgid "Post" -msgstr "" +msgstr "Posterior (Post)" #: editor/plugins/spatial_editor_plugin.cpp msgid "Nameless gizmo" -msgstr "" +msgstr "Gizmo sen nome" #: editor/plugins/sprite_editor_plugin.cpp msgid "Create Mesh2D" -msgstr "" +msgstr "Crear Mesh2D" #: editor/plugins/sprite_editor_plugin.cpp msgid "Mesh2D Preview" -msgstr "" +msgstr "Vista Previa de Mesh2D" #: editor/plugins/sprite_editor_plugin.cpp msgid "Create Polygon2D" -msgstr "" +msgstr "Crear Polygon2D" #: editor/plugins/sprite_editor_plugin.cpp msgid "Polygon2D Preview" -msgstr "" +msgstr "Vista Previa Polygon2D" #: editor/plugins/sprite_editor_plugin.cpp msgid "Create CollisionPolygon2D" @@ -7553,7 +7720,7 @@ msgstr "" #: editor/plugins/sprite_editor_plugin.cpp msgid "Convert to Polygon2D" -msgstr "" +msgstr "Convertir a Polygon2D" #: editor/plugins/sprite_editor_plugin.cpp msgid "Invalid geometry, can't create collision polygon." @@ -7577,7 +7744,7 @@ msgstr "" #: editor/plugins/sprite_editor_plugin.cpp msgid "Simplification: " -msgstr "" +msgstr "Simplificación: " #: editor/plugins/sprite_editor_plugin.cpp msgid "Shrink (Pixels): " @@ -7593,7 +7760,7 @@ msgstr "" #: editor/plugins/sprite_editor_plugin.cpp msgid "Settings:" -msgstr "" +msgstr "Axustes:" #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "No Frames Selected" @@ -7633,7 +7800,7 @@ msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "(empty)" -msgstr "" +msgstr "(baleiro)" #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Move Frame" @@ -7641,7 +7808,7 @@ msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Animations:" -msgstr "" +msgstr "Animacións:" #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "New Animation" @@ -7649,11 +7816,11 @@ msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Speed:" -msgstr "" +msgstr "Velocidade:" #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Loop" -msgstr "" +msgstr "Bucle" #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Animation Frames:" @@ -7689,11 +7856,11 @@ msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Horizontal:" -msgstr "" +msgstr "Horizontal:" #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Vertical:" -msgstr "" +msgstr "Vertical:" #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Select/Clear All Frames" @@ -7717,20 +7884,20 @@ msgstr "" #: editor/plugins/texture_region_editor_plugin.cpp msgid "Snap Mode:" -msgstr "" +msgstr "Modo de Axuste:" #: editor/plugins/texture_region_editor_plugin.cpp #: scene/resources/visual_shader.cpp msgid "None" -msgstr "" +msgstr "Ningún" #: editor/plugins/texture_region_editor_plugin.cpp msgid "Pixel Snap" -msgstr "" +msgstr "Axustar aos PÃxeles" #: editor/plugins/texture_region_editor_plugin.cpp msgid "Grid Snap" -msgstr "" +msgstr "Axuste de CuadrÃcula" #: editor/plugins/texture_region_editor_plugin.cpp msgid "Auto Slice" @@ -7738,7 +7905,7 @@ msgstr "" #: editor/plugins/texture_region_editor_plugin.cpp msgid "Offset:" -msgstr "" +msgstr "Offset:" #: editor/plugins/texture_region_editor_plugin.cpp msgid "Step:" @@ -7834,7 +8001,7 @@ msgstr "" #: editor/plugins/theme_editor_plugin.cpp msgid "Submenu" -msgstr "" +msgstr "Submenú" #: editor/plugins/theme_editor_plugin.cpp msgid "Subitem 1" @@ -7846,11 +8013,11 @@ msgstr "" #: editor/plugins/theme_editor_plugin.cpp msgid "Has" -msgstr "" +msgstr "Ten" #: editor/plugins/theme_editor_plugin.cpp msgid "Many" -msgstr "" +msgstr "Moitas" #: editor/plugins/theme_editor_plugin.cpp msgid "Disabled LineEdit" @@ -7874,11 +8041,11 @@ msgstr "" #: editor/plugins/theme_editor_plugin.cpp msgid "Subtree" -msgstr "" +msgstr "Subárbore" #: editor/plugins/theme_editor_plugin.cpp msgid "Has,Many,Options" -msgstr "" +msgstr "Ten,Moitas,Opcións" #: editor/plugins/theme_editor_plugin.cpp msgid "Data Type:" @@ -7887,19 +8054,19 @@ msgstr "" #: editor/plugins/theme_editor_plugin.cpp #: editor/plugins/tile_set_editor_plugin.cpp msgid "Icon" -msgstr "" +msgstr "Icona" #: editor/plugins/theme_editor_plugin.cpp editor/rename_dialog.cpp msgid "Style" -msgstr "" +msgstr "Estilo" #: editor/plugins/theme_editor_plugin.cpp msgid "Font" -msgstr "" +msgstr "Fonte" #: editor/plugins/theme_editor_plugin.cpp msgid "Color" -msgstr "" +msgstr "Cor" #: editor/plugins/theme_editor_plugin.cpp msgid "Theme File" @@ -7944,7 +8111,7 @@ msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp msgid "Transpose" -msgstr "" +msgstr "Transpoñer" #: editor/plugins/tile_map_editor_plugin.cpp msgid "Disable Autotile" @@ -8048,27 +8215,27 @@ msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp msgid "Region" -msgstr "" +msgstr "Rexión" #: editor/plugins/tile_set_editor_plugin.cpp msgid "Collision" -msgstr "" +msgstr "Colisión" #: editor/plugins/tile_set_editor_plugin.cpp msgid "Occlusion" -msgstr "" +msgstr "Oclusión" #: editor/plugins/tile_set_editor_plugin.cpp msgid "Navigation" -msgstr "" +msgstr "Navegación" #: editor/plugins/tile_set_editor_plugin.cpp msgid "Bitmask" -msgstr "" +msgstr "Máscara de Bits" #: editor/plugins/tile_set_editor_plugin.cpp msgid "Priority" -msgstr "" +msgstr "Prioridade" #: editor/plugins/tile_set_editor_plugin.cpp msgid "Z Index" @@ -8145,6 +8312,7 @@ msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp msgid "Enable snap and show grid (configurable via the Inspector)." msgstr "" +"Activar axuste de cuadrÃcula e amosar cuadrÃcula (configurable no inspector)." #: editor/plugins/tile_set_editor_plugin.cpp msgid "Display Tile Names (Hold Alt Key)" @@ -8324,7 +8492,7 @@ msgstr "" #: editor/plugins/version_control_editor_plugin.cpp msgid "Error" -msgstr "" +msgstr "Erro" #: editor/plugins/version_control_editor_plugin.cpp msgid "No files added to stage" @@ -8344,7 +8512,7 @@ msgstr "" #: editor/plugins/version_control_editor_plugin.cpp msgid "Initialize" -msgstr "" +msgstr "Inicializar" #: editor/plugins/version_control_editor_plugin.cpp msgid "Staging area" @@ -8356,19 +8524,19 @@ msgstr "" #: editor/plugins/version_control_editor_plugin.cpp msgid "Changes" -msgstr "" +msgstr "Cambios" #: editor/plugins/version_control_editor_plugin.cpp msgid "Modified" -msgstr "" +msgstr "Modificado" #: editor/plugins/version_control_editor_plugin.cpp msgid "Renamed" -msgstr "" +msgstr "Renomeado" #: editor/plugins/version_control_editor_plugin.cpp msgid "Deleted" -msgstr "" +msgstr "Eliminado" #: editor/plugins/version_control_editor_plugin.cpp msgid "Typechange" @@ -8389,7 +8557,7 @@ msgstr "" #: editor/plugins/version_control_editor_plugin.cpp #: modules/gdnative/gdnative_library_singleton_editor.cpp msgid "Status" -msgstr "" +msgstr "Estado" #: editor/plugins/version_control_editor_plugin.cpp msgid "View file diffs before committing them to the latest version" @@ -8413,15 +8581,15 @@ msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Scalar" -msgstr "" +msgstr "Escalar" #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Vector" -msgstr "" +msgstr "Vector" #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Boolean" -msgstr "" +msgstr "Booleano" #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Sampler" @@ -8481,20 +8649,20 @@ msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Node(s) Moved" -msgstr "" +msgstr "Nodo(s) Movido(s)" #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Duplicate Nodes" -msgstr "" +msgstr "Duplicar Nodos" #: editor/plugins/visual_shader_editor_plugin.cpp #: modules/visual_script/visual_script_editor.cpp msgid "Paste Nodes" -msgstr "" +msgstr "Pegar Nodos" #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Delete Nodes" -msgstr "" +msgstr "Eliminar Nodos" #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Visual Shader Input Type Changed" @@ -8506,11 +8674,11 @@ msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Vertex" -msgstr "" +msgstr "Vertex" #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Fragment" -msgstr "" +msgstr "Fragment" #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Light" @@ -8720,19 +8888,19 @@ msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Pi/4 constant (0.785398) or 45 degrees." -msgstr "" +msgstr "Constante Pi/4 (0.785398), ou 45 graos." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Pi/2 constant (1.570796) or 90 degrees." -msgstr "" +msgstr "Constante Pi/2 (1.570796), ou 90 graos." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Pi constant (3.141593) or 180 degrees." -msgstr "" +msgstr "Constante Pi (3.141593), ou 180 graos." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Tau constant (6.283185) or 360 degrees." -msgstr "" +msgstr "Constante Tau (6.283185), ou 360 graos." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Sqrt2 constant (1.414214). Square root of 2." @@ -8789,7 +8957,7 @@ msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Converts a quantity in radians to degrees." -msgstr "" +msgstr "Converte unha cantidade de radiáns a graos." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Base-e Exponential." @@ -8846,7 +9014,7 @@ msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Converts a quantity in degrees to radians." -msgstr "" +msgstr "Converte unha cantidade de graos a radiáns." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "1.0 / scalar" @@ -8888,6 +9056,11 @@ msgid "" "'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " "using Hermite polynomials." msgstr "" +"SmoothStep function( scalar(edge0), scalar(edge1), scalar(x) ).\n" +"\n" +"Devolve 0.0 se 'x' é menor que 'edge0' e 1.0 se x é maior que 'edge1'. En " +"caso contrario devólvese un valor interpolado entre 0.0 e 1.0 usando " +"polinomios de Hermite." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "" @@ -8895,6 +9068,9 @@ msgid "" "\n" "Returns 0.0 if 'x' is smaller than 'edge' and otherwise 1.0." msgstr "" +"Step function( scalar(edge), scalar(x) ).\n" +"\n" +"Devolve 0.0 se 'x' e menor que 'edge'; e 1.0 en caso contrario." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Returns the tangent of the parameter." @@ -8970,6 +9146,13 @@ msgid "" "whose number of rows is the number of components in 'c' and whose number of " "columns is the number of components in 'r'." msgstr "" +"Calcula o produto exterior dun par de vectores.\n" +"\n" +"OuterProduct trata o primeiro parámetro 'c' coma un vector columna (matriz " +"con unha soa columna), e o segundo parámetro 'r' coma un vector fila (matriz " +"con unha soa fila), e fai a multiplicación alxebráica 'c * r'. Esto devolve " +"unha matriz cun número de filas igual ao número de compoñentes en 'c', e cun " +"número de columnas igual ao número de compoñentes en 'r'." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Composes transform from four vectors." @@ -9042,6 +9225,11 @@ msgid "" "incident vector, and Nref, the reference vector. If the dot product of I and " "Nref is smaller than zero the return value is N. Otherwise -N is returned." msgstr "" +"Devolve o vector que ten a mesma dirección que o vector de referencia. A " +"función ten tres vector como parámetros: N, o vector a orientar; I, o vector " +"incidente; e Nref, o vector de referencia. Se o produto escalar de I e Nref " +"é menor que cero (forman un ángulo maior que 90 graos) entón devolve N. En " +"caso contrario devolve -N." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Calculates the length of a vector." @@ -9072,6 +9260,8 @@ msgid "" "Returns the vector that points in the direction of reflection ( a : incident " "vector, b : normal vector )." msgstr "" +"Devolve o vector que apunta na dirección de reflexo ( a : vector incidente, " +"b : vector normal)." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Returns the vector that points in the direction of refraction." @@ -9085,6 +9275,11 @@ msgid "" "'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " "using Hermite polynomials." msgstr "" +"SmoothStep function( vector(edge0), vector(edge1), vector(x) ).\n" +"\n" +"Devolve 0.0 se 'x' é menor que 'edge0' e 1.0 se x é maior que 'edge1'. En " +"caso contrario devólvese un valor interpolado entre 0.0 e 1.0 usando " +"polinomios de Hermite." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "" @@ -9094,6 +9289,11 @@ msgid "" "'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " "using Hermite polynomials." msgstr "" +"SmoothStep function( scalar(edge0), scalar(edge1), vector(x) ).\n" +"\n" +"Devolve 0.0 se 'x' é menor que 'edge0' e 1.0 se x é maior que 'edge1'. En " +"caso contrario devólvese un valor interpolado entre 0.0 e 1.0 usando " +"polinomios de Hermite." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "" @@ -9101,6 +9301,9 @@ msgid "" "\n" "Returns 0.0 if 'x' is smaller than 'edge' and otherwise 1.0." msgstr "" +"Step function( vector(edge), vector(x) ).\n" +"\n" +"Devolve 0.0 se 'x' e menor que 'edge'; e 1.0 en caso contrario." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "" @@ -9108,6 +9311,9 @@ msgid "" "\n" "Returns 0.0 if 'x' is smaller than 'edge' and otherwise 1.0." msgstr "" +"Step function( scalar(edge), vector(x) ).\n" +"\n" +"Devolve 0.0 se 'x' e menor que 'edge'; e 1.0 en caso contrario." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Adds vector to vector." @@ -9220,11 +9426,11 @@ msgstr "" #: editor/project_export.cpp msgid "Runnable" -msgstr "" +msgstr "Executable" #: editor/project_export.cpp msgid "Delete preset '%s'?" -msgstr "" +msgstr "Eliminar axustes de exportación '%s'?" #: editor/project_export.cpp msgid "" @@ -9238,6 +9444,8 @@ msgid "" "This might be due to a configuration issue in the export preset or your " "export settings." msgstr "" +"Fallou a exportación do proxecto á plataforma '%s'.\n" +"Esto pode deberse a un problema cos axustes de exportación." #: editor/project_export.cpp msgid "Release" @@ -9257,17 +9465,20 @@ msgstr "" #: editor/project_export.cpp msgid "Presets" -msgstr "" +msgstr "Axustes de Exportación" #: editor/project_export.cpp editor/project_settings_editor.cpp msgid "Add..." -msgstr "" +msgstr "Engadir..." #: editor/project_export.cpp msgid "" "If checked, the preset will be available for use in one-click deploy.\n" "Only one preset per platform may be marked as runnable." msgstr "" +"Ao estar activado, estes axustes de exportación estarán dispoñibles para o " +"usar co despregue dun só clic.\n" +"Só uns axustes de exportación por plataforma poden marcarse como executables." #: editor/project_export.cpp msgid "Export Path" @@ -9275,11 +9486,11 @@ msgstr "" #: editor/project_export.cpp msgid "Resources" -msgstr "" +msgstr "Recursos" #: editor/project_export.cpp msgid "Export all resources in the project" -msgstr "" +msgstr "Exportar tódolos recursos no proxecto" #: editor/project_export.cpp msgid "Export selected scenes (and dependencies)" @@ -9308,10 +9519,12 @@ msgid "" "Filters to exclude files/folders from project\n" "(comma-separated, e.g: *.json, *.txt, docs/*)" msgstr "" +"Filtros para excluÃr arquivos/cartafois de proxectos\n" +"(separados por coma; exemplo: *json, *.txt, docs*)" #: editor/project_export.cpp msgid "Features" -msgstr "" +msgstr "CaracterÃsticas" #: editor/project_export.cpp msgid "Custom (comma-separated):" @@ -9323,7 +9536,7 @@ msgstr "" #: editor/project_export.cpp msgid "Script" -msgstr "" +msgstr "Script" #: editor/project_export.cpp msgid "Script Export Mode:" @@ -9331,11 +9544,11 @@ msgstr "" #: editor/project_export.cpp msgid "Text" -msgstr "" +msgstr "Texto" #: editor/project_export.cpp msgid "Compiled" -msgstr "" +msgstr "Compilado" #: editor/project_export.cpp msgid "Encrypted (Provide Key Below)" @@ -9355,7 +9568,7 @@ msgstr "" #: editor/project_export.cpp msgid "Export Project" -msgstr "" +msgstr "Exportar Proxecto" #: editor/project_export.cpp msgid "Export mode?" @@ -9397,6 +9610,8 @@ msgstr "" msgid "" "Invalid \".zip\" project file; it doesn't contain a \"project.godot\" file." msgstr "" +"O arquivo de proxecto '.zip' non é válido; non conteñe ningún arquivo de " +"configuración 'project.godot'." #: editor/project_manager.cpp msgid "Please choose an empty folder." @@ -9404,23 +9619,23 @@ msgstr "" #: editor/project_manager.cpp msgid "Please choose a \"project.godot\" or \".zip\" file." -msgstr "" +msgstr "Por favor, elixa un arquivo de tipo 'project.godot' ou '.zip'." #: editor/project_manager.cpp msgid "This directory already contains a Godot project." -msgstr "" +msgstr "O directorio xa contén un proxecto Godot." #: editor/project_manager.cpp msgid "New Game Project" -msgstr "" +msgstr "Novo Proxecto de Xogo" #: editor/project_manager.cpp msgid "Imported Project" -msgstr "" +msgstr "Proxecto Importado" #: editor/project_manager.cpp msgid "Invalid Project Name." -msgstr "" +msgstr "Nome de Proxecto Inválido." #: editor/project_manager.cpp msgid "Couldn't create folder." @@ -9432,73 +9647,76 @@ msgstr "" #: editor/project_manager.cpp msgid "It would be a good idea to name your project." -msgstr "" +msgstr "SerÃa unha boa idea nomear o teu proxecto." #: editor/project_manager.cpp msgid "Invalid project path (changed anything?)." -msgstr "" +msgstr "A ruta ao proxecto non é valida. Cambiaches algo?" #: editor/project_manager.cpp msgid "" "Couldn't load project.godot in project path (error %d). It may be missing or " "corrupted." msgstr "" +"Non se pudo cargar o arquivo de configuración 'project.godot' na ruta do " +"proxecto (erro %d). Pode ser que o arquivo non exista; ou que esté " +"corrompido." #: editor/project_manager.cpp msgid "Couldn't edit project.godot in project path." -msgstr "" +msgstr "Non se pudo editar o arquivo 'project.godot' na ruta do proxecto." #: editor/project_manager.cpp msgid "Couldn't create project.godot in project path." -msgstr "" +msgstr "Non se pudo crear o arquivo 'project.godot' na ruta do proxecto." #: editor/project_manager.cpp msgid "Rename Project" -msgstr "" +msgstr "Renomear Proxecto" #: editor/project_manager.cpp msgid "Import Existing Project" -msgstr "" +msgstr "Importar Proxecto Existente" #: editor/project_manager.cpp msgid "Import & Edit" -msgstr "" +msgstr "Importar e Editar" #: editor/project_manager.cpp msgid "Create New Project" -msgstr "" +msgstr "Crear Novo Proxecto" #: editor/project_manager.cpp msgid "Create & Edit" -msgstr "" +msgstr "Crear e Editar" #: editor/project_manager.cpp msgid "Install Project:" -msgstr "" +msgstr "Instalar Proxecto:" #: editor/project_manager.cpp msgid "Install & Edit" -msgstr "" +msgstr "Instalar e Editar" #: editor/project_manager.cpp msgid "Project Name:" -msgstr "" +msgstr "Nome do Proxecto:" #: editor/project_manager.cpp msgid "Project Path:" -msgstr "" +msgstr "Ruta do Proxecto:" #: editor/project_manager.cpp msgid "Project Installation Path:" -msgstr "" +msgstr "Ruta de Instalación do Proxecto:" #: editor/project_manager.cpp msgid "Renderer:" -msgstr "" +msgstr "Renderizador:" #: editor/project_manager.cpp msgid "OpenGL ES 3.0" -msgstr "" +msgstr "OpenGL ES 3.0" #: editor/project_manager.cpp msgid "Not supported by your GPU drivers." @@ -9514,7 +9732,7 @@ msgstr "" #: editor/project_manager.cpp msgid "OpenGL ES 2.0" -msgstr "" +msgstr "OpenGL ES 2.0" #: editor/project_manager.cpp msgid "" @@ -9530,23 +9748,23 @@ msgstr "" #: editor/project_manager.cpp msgid "Unnamed Project" -msgstr "" +msgstr "Proxecto Sen Nome" #: editor/project_manager.cpp msgid "Missing Project" -msgstr "" +msgstr "Proxecto Faltante" #: editor/project_manager.cpp msgid "Error: Project is missing on the filesystem." -msgstr "" +msgstr "Erro: O proxecto non se pode encontrar no sistema de arquivos." #: editor/project_manager.cpp msgid "Can't open project at '%s'." -msgstr "" +msgstr "Non se pode abrir proxecto en '%s'." #: editor/project_manager.cpp msgid "Are you sure to open more than one project?" -msgstr "" +msgstr "Está seguro de que quere abrir máis dun proxecto?" #: editor/project_manager.cpp msgid "" @@ -9560,6 +9778,15 @@ msgid "" "Warning: You won't be able to open the project with previous versions of the " "engine anymore." msgstr "" +"O arquivo de configuración do seguinte proxecto non especifica a versión de " +"Godot ca cal foi creado.\n" +"\n" +"%s\n" +"\n" +"Se o abres o arquivo de configuración será convertido ao formato utilizado " +"na versión actual de Godot.\n" +"Aviso: Xa non poderás volver a abrir este proxecto con versións anteriores " +"de Godot." #: editor/project_manager.cpp msgid "" @@ -9572,12 +9799,21 @@ msgid "" "Warning: You won't be able to open the project with previous versions of the " "engine anymore." msgstr "" +"O arquivo de configuración do seguinte proxecto foi xerado por unha versión " +"antiga de Godot, e é necesario convertelo á versión actual:\n" +"\n" +"%s\n" +"\n" +"Queres convertelo?\n" +"Aviso: Xa non poderás abrir o proxecto con versións anteriores de Godot." #: editor/project_manager.cpp msgid "" "The project settings were created by a newer engine version, whose settings " "are not compatible with this version." msgstr "" +"A configuración do proxecto foi creada por versións máis novas de Godot; " +"facéndoa incompatible con esta versión." #: editor/project_manager.cpp msgid "" @@ -9585,6 +9821,9 @@ msgid "" "Please edit the project and set the main scene in the Project Settings under " "the \"Application\" category." msgstr "" +"Non se pode executar o proxecto: non hai unha escena principal definida.\n" +"Por favor, selecciona unha escena principal en \"Configuración do Proxecto" +"\", na categorÃa \"Aplicación\"." #: editor/project_manager.cpp msgid "" @@ -9594,84 +9833,104 @@ msgstr "" #: editor/project_manager.cpp msgid "Are you sure to run %d projects at once?" -msgstr "" +msgstr "Seguro que queres executar %d proxectos ao mesmo tempo?" #: editor/project_manager.cpp msgid "" "Remove %d projects from the list?\n" "The project folders' contents won't be modified." msgstr "" +"Eliminar %d proxectos da lista?\n" +"Os contidos da carpeta de proxectos non serán modificados." #: editor/project_manager.cpp msgid "" "Remove this project from the list?\n" "The project folder's contents won't be modified." msgstr "" +"Eliminar este proxecto da lista?\n" +"Os contidos da carpeta de proxectos non serán modificados." #: editor/project_manager.cpp msgid "" "Remove all missing projects from the list?\n" "The project folders' contents won't be modified." msgstr "" +"Eliminar todos os proxectos faltantes da lista?\n" +"Os contidos da carpeta de proxectos non serán modificados." #: editor/project_manager.cpp msgid "" "Language changed.\n" "The interface will update after restarting the editor or project manager." msgstr "" +"Linguaxe cambiada.\n" +"A interface actualizarase despois de reiniciar o editor ou administrador de " +"proxectos." #: editor/project_manager.cpp msgid "" "Are you sure to scan %s folders for existing Godot projects?\n" "This could take a while." msgstr "" +"Seguro que quere escanear proxectos de Godot en %s cartafois?\n" +"Esto poderÃa demorarse un tempo." #. TRANSLATORS: This refers to the application where users manage their Godot projects. #: editor/project_manager.cpp msgid "Project Manager" -msgstr "" +msgstr "Administrador de Proxectos" #: editor/project_manager.cpp msgid "Projects" +msgstr "Proxectos" + +#: editor/project_manager.cpp +#, fuzzy +msgid "Loading, please wait..." msgstr "" +"Examinando arquivos,\n" +"Por favor, espere..." #: editor/project_manager.cpp msgid "Last Modified" -msgstr "" +msgstr "Derradeira Modificación" #: editor/project_manager.cpp msgid "Scan" -msgstr "" +msgstr "Escanear" #: editor/project_manager.cpp msgid "Select a Folder to Scan" -msgstr "" +msgstr "Seleccionar un Cartafol para Escanear" #: editor/project_manager.cpp msgid "New Project" -msgstr "" +msgstr "Novo Proxecto" #: editor/project_manager.cpp msgid "Remove Missing" -msgstr "" +msgstr "Eliminar Faltantes" #: editor/project_manager.cpp msgid "Templates" -msgstr "" +msgstr "Proxectos Modelo" #: editor/project_manager.cpp msgid "Restart Now" -msgstr "" +msgstr "Reiniciar Agora" #: editor/project_manager.cpp msgid "Can't run project" -msgstr "" +msgstr "Non se pode executar proxecto" #: editor/project_manager.cpp msgid "" "You currently don't have any projects.\n" "Would you like to explore official example projects in the Asset Library?" msgstr "" +"Actualmente non tes ningún proxecto.\n" +"GustarÃalle buscar proxectos de exemplo oficiais na biblioteca de Assets?" #: editor/project_manager.cpp msgid "" @@ -9679,36 +9938,42 @@ msgid "" "To filter projects by name and full path, the query must contain at least " "one `/` character." msgstr "" +"A barra de búsqueda filtra os proxectos por nome e último compoñente da súa " +"ruta.\n" +"Se quere filtrar proxectos por nome e ruta completa, a consulta debe conter " +"polo menos un carácter '/'." #: editor/project_settings_editor.cpp msgid "Key " -msgstr "" +msgstr "Botón: " #: editor/project_settings_editor.cpp msgid "Joy Button" -msgstr "" +msgstr "Botón Joystick" #: editor/project_settings_editor.cpp msgid "Joy Axis" -msgstr "" +msgstr "Eixe Joystick" #: editor/project_settings_editor.cpp msgid "Mouse Button" -msgstr "" +msgstr "Botón do Rato" #: editor/project_settings_editor.cpp msgid "" "Invalid action name. it cannot be empty nor contain '/', ':', '=', '\\' or " "'\"'" msgstr "" +"Nome de acción inválido. O nome non pode estar baleiro, nin conter '/', ':', " +"'=', '\\' ou '\"'" #: editor/project_settings_editor.cpp msgid "An action with the name '%s' already exists." -msgstr "" +msgstr "Xa existe unha acción co nome '%s'." #: editor/project_settings_editor.cpp msgid "Rename Input Action Event" -msgstr "" +msgstr "Renomear Evento de Entrada" #: editor/project_settings_editor.cpp msgid "Change Action deadzone" @@ -9716,149 +9981,151 @@ msgstr "" #: editor/project_settings_editor.cpp msgid "Add Input Action Event" -msgstr "" +msgstr "Engadir Evento de Entrada" #: editor/project_settings_editor.cpp msgid "All Devices" -msgstr "" +msgstr "Tódolos Dispositivos" #: editor/project_settings_editor.cpp msgid "Device" -msgstr "" +msgstr "Dispositivo" #: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp msgid "Press a Key..." -msgstr "" +msgstr "Pulse algún botón..." #: editor/project_settings_editor.cpp msgid "Mouse Button Index:" -msgstr "" +msgstr "Ãndice do Botón do Rato:" #: editor/project_settings_editor.cpp msgid "Left Button" -msgstr "" +msgstr "Botón Esquerdo" #: editor/project_settings_editor.cpp msgid "Right Button" -msgstr "" +msgstr "Botón Dereito" #: editor/project_settings_editor.cpp msgid "Middle Button" -msgstr "" +msgstr "Botón Central" #: editor/project_settings_editor.cpp msgid "Wheel Up Button" -msgstr "" +msgstr "Mover Roda cara Arriba" #: editor/project_settings_editor.cpp msgid "Wheel Down Button" -msgstr "" +msgstr "Mover Roda cara Abaixo" #: editor/project_settings_editor.cpp msgid "Wheel Left Button" -msgstr "" +msgstr "Mover Roda cara a Esquerda" #: editor/project_settings_editor.cpp msgid "Wheel Right Button" -msgstr "" +msgstr "Mover Roda cara a Dereita" #: editor/project_settings_editor.cpp msgid "X Button 1" -msgstr "" +msgstr "Botón X 1" #: editor/project_settings_editor.cpp msgid "X Button 2" -msgstr "" +msgstr "Botón X 2" #: editor/project_settings_editor.cpp msgid "Joypad Axis Index:" -msgstr "" +msgstr "Ãndice do Eixe do Joystick:" #: editor/project_settings_editor.cpp msgid "Axis" -msgstr "" +msgstr "Eixe" #: editor/project_settings_editor.cpp msgid "Joypad Button Index:" -msgstr "" +msgstr "Ãndice do Botón do Joystick:" #: editor/project_settings_editor.cpp msgid "Erase Input Action" -msgstr "" +msgstr "Eliminar Acción de Entrada" #: editor/project_settings_editor.cpp msgid "Erase Input Action Event" -msgstr "" +msgstr "Eliminar Evento de Entrada" #: editor/project_settings_editor.cpp msgid "Add Event" -msgstr "" +msgstr "Engadir Evento" #: editor/project_settings_editor.cpp msgid "Button" -msgstr "" +msgstr "Botón" #: editor/project_settings_editor.cpp msgid "Left Button." -msgstr "" +msgstr "Botón Esquerdo." #: editor/project_settings_editor.cpp msgid "Right Button." -msgstr "" +msgstr "Botón Dereito." #: editor/project_settings_editor.cpp msgid "Middle Button." -msgstr "" +msgstr "Botón Central." #: editor/project_settings_editor.cpp msgid "Wheel Up." -msgstr "" +msgstr "Roda cara Arriba." #: editor/project_settings_editor.cpp msgid "Wheel Down." -msgstr "" +msgstr "Roda cara Abaixo." #: editor/project_settings_editor.cpp msgid "Add Global Property" -msgstr "" +msgstr "Engadir Propiedade Global" #: editor/project_settings_editor.cpp msgid "Select a setting item first!" -msgstr "" +msgstr "Primeiro seleccione un elemento!" #: editor/project_settings_editor.cpp msgid "No property '%s' exists." -msgstr "" +msgstr "Non existe a propiedade '%s'." #: editor/project_settings_editor.cpp msgid "Setting '%s' is internal, and it can't be deleted." -msgstr "" +msgstr "A propiedade '%s' é interna, e non pode ser eliminada." #: editor/project_settings_editor.cpp msgid "Delete Item" -msgstr "" +msgstr "Eliminar Elemento" #: editor/project_settings_editor.cpp msgid "" "Invalid action name. It cannot be empty nor contain '/', ':', '=', '\\' or " "'\"'." msgstr "" +"Nome de acción inválido. Non pode estar baleiro, nin pode conter '/', ':', " +"'=', '\\' ou '\"'." #: editor/project_settings_editor.cpp msgid "Add Input Action" -msgstr "" +msgstr "Engadir Acción de Entrada" #: editor/project_settings_editor.cpp msgid "Error saving settings." -msgstr "" +msgstr "Erro gardando os axustes." #: editor/project_settings_editor.cpp msgid "Settings saved OK." -msgstr "" +msgstr "Axustes gardados correctamente." #: editor/project_settings_editor.cpp msgid "Moved Input Action Event" -msgstr "" +msgstr "Evento de Entrada Movido" #: editor/project_settings_editor.cpp msgid "Override for Feature" @@ -9866,11 +10133,11 @@ msgstr "" #: editor/project_settings_editor.cpp msgid "Add Translation" -msgstr "" +msgstr "Engadir Tradución" #: editor/project_settings_editor.cpp msgid "Remove Translation" -msgstr "" +msgstr "Eliminar Tradución" #: editor/project_settings_editor.cpp msgid "Add Remapped Path" @@ -9902,11 +10169,11 @@ msgstr "" #: editor/project_settings_editor.cpp msgid "Project Settings (project.godot)" -msgstr "" +msgstr "Configuración do Proxecto (project.godot)" #: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp msgid "General" -msgstr "" +msgstr "Xeral" #: editor/project_settings_editor.cpp msgid "Override For..." @@ -9914,19 +10181,19 @@ msgstr "" #: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp msgid "The editor must be restarted for changes to take effect." -msgstr "" +msgstr "O editor ten que reiniciarse para que os cambios teñan efecto." #: editor/project_settings_editor.cpp msgid "Input Map" -msgstr "" +msgstr "Mapeado de Entradas" #: editor/project_settings_editor.cpp msgid "Action:" -msgstr "" +msgstr "Acción:" #: editor/project_settings_editor.cpp msgid "Action" -msgstr "" +msgstr "Acción" #: editor/project_settings_editor.cpp msgid "Deadzone" @@ -9934,23 +10201,23 @@ msgstr "" #: editor/project_settings_editor.cpp msgid "Device:" -msgstr "" +msgstr "Dispositivo:" #: editor/project_settings_editor.cpp msgid "Index:" -msgstr "" +msgstr "Ãndice:" #: editor/project_settings_editor.cpp msgid "Localization" -msgstr "" +msgstr "Linguaxe" #: editor/project_settings_editor.cpp msgid "Translations" -msgstr "" +msgstr "Traducións" #: editor/project_settings_editor.cpp msgid "Translations:" -msgstr "" +msgstr "Traducións:" #: editor/project_settings_editor.cpp msgid "Remaps" @@ -9958,7 +10225,7 @@ msgstr "" #: editor/project_settings_editor.cpp msgid "Resources:" -msgstr "" +msgstr "Recursos:" #: editor/project_settings_editor.cpp msgid "Remaps by Locale:" @@ -9966,35 +10233,35 @@ msgstr "" #: editor/project_settings_editor.cpp msgid "Locale" -msgstr "" +msgstr "Linguaxe" #: editor/project_settings_editor.cpp msgid "Locales Filter" -msgstr "" +msgstr "Filtrar Linguaxes" #: editor/project_settings_editor.cpp msgid "Show All Locales" -msgstr "" +msgstr "Amosar Tódolos Linguaxes" #: editor/project_settings_editor.cpp msgid "Show Selected Locales Only" -msgstr "" +msgstr "Amosar só os Linguaxes Seleccionados" #: editor/project_settings_editor.cpp msgid "Filter mode:" -msgstr "" +msgstr "Modo de Filtrado:" #: editor/project_settings_editor.cpp msgid "Locales:" -msgstr "" +msgstr "Linguaxes:" #: editor/project_settings_editor.cpp msgid "AutoLoad" -msgstr "" +msgstr "AutoCargador" #: editor/project_settings_editor.cpp msgid "Plugins" -msgstr "" +msgstr "CaracterÃsticas Adicionais (Plugins)" #: editor/property_editor.cpp msgid "Preset..." @@ -10002,7 +10269,7 @@ msgstr "" #: editor/property_editor.cpp msgid "Zero" -msgstr "" +msgstr "Cero" #: editor/property_editor.cpp msgid "Easing In-Out" @@ -10014,27 +10281,27 @@ msgstr "" #: editor/property_editor.cpp msgid "File..." -msgstr "" +msgstr "Arquivo..." #: editor/property_editor.cpp msgid "Dir..." -msgstr "" +msgstr "Directorio..." #: editor/property_editor.cpp msgid "Assign" -msgstr "" +msgstr "Asignar" #: editor/property_editor.cpp msgid "Select Node" -msgstr "" +msgstr "Seleccionar Nodos" #: editor/property_editor.cpp msgid "Error loading file: Not a resource!" -msgstr "" +msgstr "Erro cargando arquivo: Non é un recurso!" #: editor/property_editor.cpp msgid "Pick a Node" -msgstr "" +msgstr "Elixe un Nodo" #: editor/property_editor.cpp msgid "Bit %d, val %d." @@ -10058,15 +10325,15 @@ msgstr "" #: editor/rename_dialog.cpp msgid "Replace:" -msgstr "" +msgstr "SubstituÃr:" #: editor/rename_dialog.cpp msgid "Prefix:" -msgstr "" +msgstr "Prefixo:" #: editor/rename_dialog.cpp msgid "Suffix:" -msgstr "" +msgstr "Sufixo:" #: editor/rename_dialog.cpp msgid "Use Regular Expressions" @@ -10078,11 +10345,11 @@ msgstr "" #: editor/rename_dialog.cpp msgid "Substitute" -msgstr "" +msgstr "SubstituÃr" #: editor/rename_dialog.cpp msgid "Node name" -msgstr "" +msgstr "Nome do nodo" #: editor/rename_dialog.cpp msgid "Node's parent name, if available" @@ -10090,7 +10357,7 @@ msgstr "" #: editor/rename_dialog.cpp msgid "Node type" -msgstr "" +msgstr "Tipo de nodo" #: editor/rename_dialog.cpp msgid "Current scene name" @@ -10098,7 +10365,7 @@ msgstr "" #: editor/rename_dialog.cpp msgid "Root node name" -msgstr "" +msgstr "Nome do nodo raÃz" #: editor/rename_dialog.cpp msgid "" @@ -10120,7 +10387,7 @@ msgstr "" #: editor/rename_dialog.cpp msgid "Step" -msgstr "" +msgstr "Paso" #: editor/rename_dialog.cpp msgid "Amount by which counter is incremented for each node" @@ -10142,7 +10409,7 @@ msgstr "" #: editor/rename_dialog.cpp msgid "Keep" -msgstr "" +msgstr "Manter" #: editor/rename_dialog.cpp msgid "PascalCase to snake_case" @@ -10154,7 +10421,7 @@ msgstr "" #: editor/rename_dialog.cpp msgid "Case" -msgstr "" +msgstr "Maiús./Minús." #: editor/rename_dialog.cpp msgid "To Lowercase" @@ -10166,7 +10433,7 @@ msgstr "" #: editor/rename_dialog.cpp msgid "Reset" -msgstr "" +msgstr "Restablecer" #: editor/rename_dialog.cpp msgid "Regular Expression Error:" @@ -10178,7 +10445,7 @@ msgstr "" #: editor/reparent_dialog.cpp editor/scene_tree_dock.cpp msgid "Reparent Node" -msgstr "" +msgstr "Remparentar Nodo" #: editor/reparent_dialog.cpp msgid "Reparent Location (Select new Parent):" @@ -10190,7 +10457,7 @@ msgstr "" #: editor/reparent_dialog.cpp editor/scene_tree_dock.cpp msgid "Reparent" -msgstr "" +msgstr "Remparentar" #: editor/run_settings_dialog.cpp msgid "Run Mode:" @@ -10256,7 +10523,7 @@ msgstr "" #: editor/scene_tree_dock.cpp msgid "Duplicate Node(s)" -msgstr "" +msgstr "Duplicar Nodo(s)" #: editor/scene_tree_dock.cpp msgid "Can't reparent nodes in inherited scenes, order of nodes can't change." @@ -10280,7 +10547,7 @@ msgstr "" #: editor/scene_tree_dock.cpp msgid "Delete %d nodes?" -msgstr "" +msgstr "Eliminar %d nodos?" #: editor/scene_tree_dock.cpp msgid "Delete the root node \"%s\"?" @@ -10292,7 +10559,7 @@ msgstr "" #: editor/scene_tree_dock.cpp msgid "Delete node \"%s\"?" -msgstr "" +msgstr "Eliminar nodo \"%s\"?" #: editor/scene_tree_dock.cpp msgid "Can not perform with the root node." @@ -10328,7 +10595,7 @@ msgstr "" #: editor/scene_tree_dock.cpp msgid "Create Root Node:" -msgstr "" +msgstr "Crear nodo raÃz:" #: editor/scene_tree_dock.cpp msgid "2D Scene" @@ -10344,7 +10611,7 @@ msgstr "" #: editor/scene_tree_dock.cpp msgid "Other Node" -msgstr "" +msgstr "Outro Nodo" #: editor/scene_tree_dock.cpp msgid "Can't operate on nodes from a foreign scene!" @@ -10360,7 +10627,7 @@ msgstr "" #: editor/scene_tree_dock.cpp msgid "Remove Node(s)" -msgstr "" +msgstr "Eliminar Nodo(s)" #: editor/scene_tree_dock.cpp msgid "Change type of node(s)" @@ -10382,7 +10649,7 @@ msgstr "" #: editor/scene_tree_dock.cpp msgid "Sub-Resources" -msgstr "" +msgstr "Sub-Recursos" #: editor/scene_tree_dock.cpp msgid "Clear Inheritance" @@ -10409,7 +10676,7 @@ msgstr "" #: editor/scene_tree_dock.cpp msgid "Add Child Node" -msgstr "" +msgstr "Engadir Nodo Fillo" #: editor/scene_tree_dock.cpp msgid "Expand/Collapse All" @@ -10437,7 +10704,7 @@ msgstr "" #: editor/scene_tree_dock.cpp editor/script_editor_debugger.cpp msgid "Copy Node Path" -msgstr "" +msgstr "Copiar Ruta do Nodo" #: editor/scene_tree_dock.cpp msgid "Delete (No Confirm)" @@ -10463,11 +10730,11 @@ msgstr "" #: editor/scene_tree_dock.cpp msgid "Remote" -msgstr "" +msgstr "Remoto" #: editor/scene_tree_dock.cpp msgid "Local" -msgstr "" +msgstr "Local" #: editor/scene_tree_dock.cpp msgid "Clear Inheritance? (No Undo!)" @@ -10479,7 +10746,7 @@ msgstr "" #: editor/scene_tree_editor.cpp msgid "Unlock Node" -msgstr "" +msgstr "Desbloquear Nodo" #: editor/scene_tree_editor.cpp msgid "Button Group" @@ -10491,7 +10758,7 @@ msgstr "" #: editor/scene_tree_editor.cpp msgid "Node configuration warning:" -msgstr "" +msgstr "Aviso sobre a configuración do nodo:" #: editor/scene_tree_editor.cpp msgid "" @@ -10543,7 +10810,7 @@ msgstr "" #: editor/scene_tree_editor.cpp msgid "Rename Node" -msgstr "" +msgstr "Renomear Nodo" #: editor/scene_tree_editor.cpp msgid "Scene Tree (Nodes):" @@ -10555,51 +10822,51 @@ msgstr "" #: editor/scene_tree_editor.cpp msgid "Select a Node" -msgstr "" +msgstr "Seleccione un Nodo" #: editor/script_create_dialog.cpp msgid "Path is empty." -msgstr "" +msgstr "A ruta está baleira." #: editor/script_create_dialog.cpp msgid "Filename is empty." -msgstr "" +msgstr "O nome de arquivo está baleiro." #: editor/script_create_dialog.cpp msgid "Path is not local." -msgstr "" +msgstr "A ruta non é local." #: editor/script_create_dialog.cpp msgid "Invalid base path." -msgstr "" +msgstr "Ruta base inválida." #: editor/script_create_dialog.cpp msgid "A directory with the same name exists." -msgstr "" +msgstr "Xa existe un directorio co mesmo nome." #: editor/script_create_dialog.cpp msgid "File does not exist." -msgstr "" +msgstr "O arquivo non existe." #: editor/script_create_dialog.cpp msgid "Invalid extension." -msgstr "" +msgstr "Extensión inválida." #: editor/script_create_dialog.cpp msgid "Wrong extension chosen." -msgstr "" +msgstr "Extensión incorrecta elixida." #: editor/script_create_dialog.cpp msgid "Error loading template '%s'" -msgstr "" +msgstr "Erro cargando o modelo '%s'" #: editor/script_create_dialog.cpp msgid "Error - Could not create script in filesystem." -msgstr "" +msgstr "Erro - Non se puido gardar o Script no sistema de arquivos." #: editor/script_create_dialog.cpp msgid "Error loading script from %s" -msgstr "" +msgstr "Erro cargando script desde %s" #: editor/script_create_dialog.cpp msgid "Overrides" @@ -10607,113 +10874,115 @@ msgstr "" #: editor/script_create_dialog.cpp msgid "N/A" -msgstr "" +msgstr "N/A" #: editor/script_create_dialog.cpp msgid "Open Script / Choose Location" -msgstr "" +msgstr "Abrir Script / Elixir Ubicación" #: editor/script_create_dialog.cpp msgid "Open Script" -msgstr "" +msgstr "Abrir Script" #: editor/script_create_dialog.cpp msgid "File exists, it will be reused." -msgstr "" +msgstr "O arquivo xa existe; será reutilizado." #: editor/script_create_dialog.cpp msgid "Invalid path." -msgstr "" +msgstr "Ruta inválida." #: editor/script_create_dialog.cpp msgid "Invalid class name." -msgstr "" +msgstr "Nome de clase inválido." #: editor/script_create_dialog.cpp msgid "Invalid inherited parent name or path." -msgstr "" +msgstr "A ruta ou o nome do pai herdado é inválido." #: editor/script_create_dialog.cpp msgid "Script path/name is valid." -msgstr "" +msgstr "A ruta e nome do script son válidos." #: editor/script_create_dialog.cpp msgid "Allowed: a-z, A-Z, 0-9, _ and ." -msgstr "" +msgstr "Permitido: a-z, A-Z, 0-9,_ e ." #: editor/script_create_dialog.cpp msgid "Built-in script (into scene file)." -msgstr "" +msgstr "Script integrada na escena." #: editor/script_create_dialog.cpp msgid "Will create a new script file." -msgstr "" +msgstr "Crearase un novo arquivo de script." #: editor/script_create_dialog.cpp msgid "Will load an existing script file." -msgstr "" +msgstr "Cargarase un arquivo de script xa existente." #: editor/script_create_dialog.cpp msgid "Script file already exists." -msgstr "" +msgstr "Xa existe un arquivo script na mesma ruta." #: editor/script_create_dialog.cpp msgid "" "Note: Built-in scripts have some limitations and can't be edited using an " "external editor." msgstr "" +"Nota: Os scripts integrados teñen algunhas limitacións, e non poden editarse " +"usando editores externos." #: editor/script_create_dialog.cpp msgid "Class Name:" -msgstr "" +msgstr "Nome da Clase:" #: editor/script_create_dialog.cpp msgid "Template:" -msgstr "" +msgstr "Modelo:" #: editor/script_create_dialog.cpp msgid "Built-in Script:" -msgstr "" +msgstr "Script Integrado:" #: editor/script_create_dialog.cpp msgid "Attach Node Script" -msgstr "" +msgstr "Adxuntar Script de Nodo" #: editor/script_editor_debugger.cpp msgid "Remote " -msgstr "" +msgstr "Remoto " #: editor/script_editor_debugger.cpp msgid "Bytes:" -msgstr "" +msgstr "Bytes:" #: editor/script_editor_debugger.cpp msgid "Warning:" -msgstr "" +msgstr "Aviso:" #: editor/script_editor_debugger.cpp msgid "Error:" -msgstr "" +msgstr "Erro:" #: editor/script_editor_debugger.cpp msgid "C++ Error" -msgstr "" +msgstr "Erro de C++" #: editor/script_editor_debugger.cpp msgid "C++ Error:" -msgstr "" +msgstr "Erro de C++:" #: editor/script_editor_debugger.cpp msgid "C++ Source" -msgstr "" +msgstr "Fonte C++" #: editor/script_editor_debugger.cpp msgid "Source:" -msgstr "" +msgstr "Fonte:" #: editor/script_editor_debugger.cpp msgid "C++ Source:" -msgstr "" +msgstr "Fonte C++:" #: editor/script_editor_debugger.cpp msgid "Stack Trace" @@ -10721,7 +10990,7 @@ msgstr "" #: editor/script_editor_debugger.cpp msgid "Errors" -msgstr "" +msgstr "Erros" #: editor/script_editor_debugger.cpp msgid "Child process connected." @@ -10753,23 +11022,23 @@ msgstr "" #: editor/script_editor_debugger.cpp msgid "Profiler" -msgstr "" +msgstr "AnalÃtica de Rendemento" #: editor/script_editor_debugger.cpp msgid "Network Profiler" -msgstr "" +msgstr "AnalÃtica de Rendemento de Rede" #: editor/script_editor_debugger.cpp msgid "Monitor" -msgstr "" +msgstr "Monitor" #: editor/script_editor_debugger.cpp msgid "Value" -msgstr "" +msgstr "Valor" #: editor/script_editor_debugger.cpp msgid "Monitors" -msgstr "" +msgstr "Monitores" #: editor/script_editor_debugger.cpp msgid "Pick one or more items from the list to display the graph." @@ -10781,7 +11050,7 @@ msgstr "" #: editor/script_editor_debugger.cpp msgid "Total:" -msgstr "" +msgstr "Total:" #: editor/script_editor_debugger.cpp msgid "Export list to a CSV file" @@ -10793,19 +11062,19 @@ msgstr "" #: editor/script_editor_debugger.cpp msgid "Type" -msgstr "" +msgstr "Tipo" #: editor/script_editor_debugger.cpp msgid "Format" -msgstr "" +msgstr "Formato" #: editor/script_editor_debugger.cpp msgid "Usage" -msgstr "" +msgstr "Uso" #: editor/script_editor_debugger.cpp msgid "Misc" -msgstr "" +msgstr "Outros" #: editor/script_editor_debugger.cpp msgid "Clicked Control:" @@ -10845,7 +11114,7 @@ msgstr "" #: editor/settings_config_dialog.cpp msgid "Shortcuts" -msgstr "" +msgstr "Atallos" #: editor/settings_config_dialog.cpp msgid "Binding" @@ -10941,11 +11210,11 @@ msgstr "" #: modules/gdnative/gdnative_library_editor_plugin.cpp msgid "Platform:" -msgstr "" +msgstr "Plataforma:" #: modules/gdnative/gdnative_library_editor_plugin.cpp msgid "Platform" -msgstr "" +msgstr "Plataforma" #: modules/gdnative/gdnative_library_editor_plugin.cpp msgid "Dynamic Library" @@ -10969,15 +11238,15 @@ msgstr "" #: modules/gdnative/gdnative_library_singleton_editor.cpp msgid "Library" -msgstr "" +msgstr "Biblioteca" #: modules/gdnative/gdnative_library_singleton_editor.cpp msgid "Libraries: " -msgstr "" +msgstr "Bibliotecas: " #: modules/gdnative/register_types.cpp msgid "GDNative" -msgstr "" +msgstr "GDNative" #: modules/gdscript/gdscript_functions.cpp msgid "Step argument is zero!" @@ -11025,7 +11294,7 @@ msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp msgid "Plane:" -msgstr "" +msgstr "Plano:" #: modules/gridmap/grid_map_editor_plugin.cpp msgid "Next Floor" @@ -11037,7 +11306,7 @@ msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp msgid "Floor:" -msgstr "" +msgstr "Chan:" #: modules/gridmap/grid_map_editor_plugin.cpp msgid "GridMap Delete Selection" @@ -11061,7 +11330,7 @@ msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp msgid "Snap View" -msgstr "" +msgstr "Axustar Vista" #: modules/gridmap/grid_map_editor_plugin.cpp msgid "Clip Disabled" @@ -11213,7 +11482,7 @@ msgstr "" #: modules/recast/navigation_mesh_generator.cpp msgid "Partitioning..." -msgstr "" +msgstr "Particionando..." #: modules/recast/navigation_mesh_generator.cpp msgid "Creating contours..." @@ -11237,7 +11506,7 @@ msgstr "" #: modules/recast/navigation_mesh_generator.cpp msgid "Done!" -msgstr "" +msgstr "Feito!" #: modules/visual_script/visual_script.cpp msgid "" @@ -11307,7 +11576,7 @@ msgstr "" #: modules/visual_script/visual_script_editor.cpp msgid "Variables:" -msgstr "" +msgstr "Variables:" #: modules/visual_script/visual_script_editor.cpp msgid "Create a new variable." @@ -11315,7 +11584,7 @@ msgstr "" #: modules/visual_script/visual_script_editor.cpp msgid "Signals:" -msgstr "" +msgstr "Sinais:" #: modules/visual_script/visual_script_editor.cpp msgid "Create a new signal." @@ -11429,7 +11698,7 @@ msgstr "" #: modules/visual_script/visual_script_editor.cpp msgid "Move Node(s)" -msgstr "" +msgstr "Mover Nodo(s)" #: modules/visual_script/visual_script_editor.cpp msgid "Remove VisualScript Node" @@ -11437,11 +11706,11 @@ msgstr "" #: modules/visual_script/visual_script_editor.cpp msgid "Connect Nodes" -msgstr "" +msgstr "Conectar Nodos" #: modules/visual_script/visual_script_editor.cpp msgid "Disconnect Nodes" -msgstr "" +msgstr "Desconectar Nodos" #: modules/visual_script/visual_script_editor.cpp msgid "Connect Node Data" @@ -11453,31 +11722,31 @@ msgstr "" #: modules/visual_script/visual_script_editor.cpp msgid "Script already has function '%s'" -msgstr "" +msgstr "O script xa ten unha función chamada '%s'" #: modules/visual_script/visual_script_editor.cpp msgid "Change Input Value" -msgstr "" +msgstr "Cambiar Valor de Entrada" #: modules/visual_script/visual_script_editor.cpp msgid "Resize Comment" -msgstr "" +msgstr "Cambiar Tamaño do Comentario" #: modules/visual_script/visual_script_editor.cpp msgid "Can't copy the function node." -msgstr "" +msgstr "Non se pode copiar o nodo función." #: modules/visual_script/visual_script_editor.cpp msgid "Clipboard is empty!" -msgstr "" +msgstr "O portapapeis está baleiro!" #: modules/visual_script/visual_script_editor.cpp msgid "Paste VisualScript Nodes" -msgstr "" +msgstr "Pegar Nodos VisualScript" #: modules/visual_script/visual_script_editor.cpp msgid "Can't create function with a function node." -msgstr "" +msgstr "Non se pode crear unha función cun nodo función." #: modules/visual_script/visual_script_editor.cpp msgid "Can't create function of nodes from nodes of multiple functions." @@ -11493,71 +11762,71 @@ msgstr "" #: modules/visual_script/visual_script_editor.cpp msgid "Create Function" -msgstr "" +msgstr "Crear Función" #: modules/visual_script/visual_script_editor.cpp msgid "Remove Function" -msgstr "" +msgstr "Eliminar Función" #: modules/visual_script/visual_script_editor.cpp msgid "Remove Variable" -msgstr "" +msgstr "Eliminar Variable" #: modules/visual_script/visual_script_editor.cpp msgid "Editing Variable:" -msgstr "" +msgstr "Editando Variable:" #: modules/visual_script/visual_script_editor.cpp msgid "Remove Signal" -msgstr "" +msgstr "Eliminar Sinal" #: modules/visual_script/visual_script_editor.cpp msgid "Editing Signal:" -msgstr "" +msgstr "Editando Sinal:" #: modules/visual_script/visual_script_editor.cpp msgid "Make Tool:" -msgstr "" +msgstr "Ferramenta:" #: modules/visual_script/visual_script_editor.cpp msgid "Members:" -msgstr "" +msgstr "Membros:" #: modules/visual_script/visual_script_editor.cpp msgid "Change Base Type:" -msgstr "" +msgstr "Cambiar Tipo Base:" #: modules/visual_script/visual_script_editor.cpp msgid "Add Nodes..." -msgstr "" +msgstr "Engadir Nodos..." #: modules/visual_script/visual_script_editor.cpp msgid "Add Function..." -msgstr "" +msgstr "Engadir Función..." #: modules/visual_script/visual_script_editor.cpp msgid "function_name" -msgstr "" +msgstr "nome_da_funcion" #: modules/visual_script/visual_script_editor.cpp msgid "Select or create a function to edit its graph." -msgstr "" +msgstr "Seleccione ou cree unha función para editar a sua gráfica." #: modules/visual_script/visual_script_editor.cpp msgid "Delete Selected" -msgstr "" +msgstr "Eliminar Selección" #: modules/visual_script/visual_script_editor.cpp msgid "Find Node Type" -msgstr "" +msgstr "Encontrar Tipo de Nodo" #: modules/visual_script/visual_script_editor.cpp msgid "Copy Nodes" -msgstr "" +msgstr "Copiar Nodos" #: modules/visual_script/visual_script_editor.cpp msgid "Cut Nodes" -msgstr "" +msgstr "Cortar Nodos" #: modules/visual_script/visual_script_editor.cpp msgid "Make Function" @@ -11569,7 +11838,7 @@ msgstr "" #: modules/visual_script/visual_script_editor.cpp msgid "Edit Member" -msgstr "" +msgstr "Editar Membro" #: modules/visual_script/visual_script_flow_control.cpp msgid "Input type not iterable: " @@ -11627,7 +11896,7 @@ msgstr "" #: modules/visual_script/visual_script_property_selector.cpp msgid "Search VisualScript" -msgstr "" +msgstr "Buscar en VisualScript" #: modules/visual_script/visual_script_property_selector.cpp msgid "Get %s" @@ -11678,10 +11947,14 @@ msgstr "" #: platform/android/export/export.cpp msgid "Debug keystore not configured in the Editor Settings nor in the preset." msgstr "" +"Non está configurado o Keystore de depuración nin na configuración do " +"editor, nin nos axustes de exportación." #: platform/android/export/export.cpp msgid "Release keystore incorrectly configured in the export preset." msgstr "" +"O Keystore Release non está configurado correctamente nos axustes de " +"exportación." #: platform/android/export/export.cpp msgid "A valid Android SDK path is required in Editor Settings." @@ -11728,6 +12001,8 @@ msgstr "" #: platform/android/export/export.cpp msgid "\"Use Custom Build\" must be enabled to use the plugins." msgstr "" +"\"Use Custom Build\" debe estar activado para usar estas caracterÃsticas " +"adicionais (plugins)." #: platform/android/export/export.cpp msgid "" @@ -11777,13 +12052,17 @@ msgstr "" #: platform/android/export/export.cpp msgid "Building Android Project (gradle)" -msgstr "" +msgstr "Construir Proxecto Android (gradle)" #: platform/android/export/export.cpp msgid "" "Building of Android project failed, check output for the error.\n" "Alternatively visit docs.godotengine.org for Android build documentation." msgstr "" +"A creación do proxecto para Android fallou; comproba a saÃda para encontrar " +"o erro.\n" +"Ou visita docs.godotengine.org para ver a documentación sobre compilación " +"para Android." #: platform/android/export/export.cpp msgid "Moving output" @@ -11806,6 +12085,7 @@ msgstr "" #: platform/iphone/export/export.cpp msgid "App Store Team ID not specified - cannot configure the project." msgstr "" +"ID de App Store Team non especificado - non se pode configurar o proxecto." #: platform/iphone/export/export.cpp msgid "Invalid Identifier:" @@ -11814,6 +12094,7 @@ msgstr "" #: platform/iphone/export/export.cpp msgid "Required icon is not specified in the preset." msgstr "" +"As iconas requeridas non están especificadas nos axustes de exportación." #: platform/javascript/export/export.cpp msgid "Stop HTTP Server" @@ -11921,6 +12202,10 @@ msgid "" "Consider adding a CollisionShape2D or CollisionPolygon2D as a child to " "define its shape." msgstr "" +"Este nodo non ten unha forma fÃsica definida, polo que non pode colisionar " +"ou interactuar con outros obxectos.\n" +"Engade un nodo CollisionShape2D ou CollisionPolygon2D como fillo para " +"definir a sua forma." #: scene/2d/collision_polygon_2d.cpp msgid "" @@ -11928,6 +12213,9 @@ msgid "" "CollisionObject2D derived node. Please only use it as a child of Area2D, " "StaticBody2D, RigidBody2D, KinematicBody2D, etc. to give them a shape." msgstr "" +"O nodo CollisionPolygon2D só serve para darlle unha forma fÃsica a nodos " +"derivados de CollisionObject2D. É decir, do tipo Area2D, StaticBody2D, " +"RigidBody2D, KinematicBody2D, etc." #: scene/2d/collision_polygon_2d.cpp msgid "An empty CollisionPolygon2D has no effect on collision." @@ -11939,6 +12227,9 @@ msgid "" "CollisionObject2D derived node. Please only use it as a child of Area2D, " "StaticBody2D, RigidBody2D, KinematicBody2D, etc. to give them a shape." msgstr "" +"O nodo CollisionShape2D só serve para darlle unha forma fÃsica a nodos " +"derivados de CollisionObject2D. É decir, do tipo Area2D, StaticBody2D, " +"RigidBody2D, KinematicBody2D, etc." #: scene/2d/collision_shape_2d.cpp msgid "" @@ -11951,6 +12242,9 @@ msgid "" "Polygon-based shapes are not meant be used nor edited directly through the " "CollisionShape2D node. Please use the CollisionPolygon2D node instead." msgstr "" +"As formas fÃsicas baseadas en polÃgonos non están pensadas para editarse " +"directamente mediante o nodo CollisionShape2D. Por favor, usa o nodo " +"CollisionPolygon2D no seu lugar." #: scene/2d/cpu_particles_2d.cpp msgid "" @@ -11960,23 +12254,23 @@ msgstr "" #: scene/2d/joints_2d.cpp msgid "Node A and Node B must be PhysicsBody2Ds" -msgstr "" +msgstr "Os nodo A e B teñen que ser do tipo PhysicsBody2D" #: scene/2d/joints_2d.cpp msgid "Node A must be a PhysicsBody2D" -msgstr "" +msgstr "O nodo A ten que ser un nodo PhysicsBody2D" #: scene/2d/joints_2d.cpp msgid "Node B must be a PhysicsBody2D" -msgstr "" +msgstr "O nodo B ten que ser un nodo PhysicsBody2D" #: scene/2d/joints_2d.cpp msgid "Joint is not connected to two PhysicsBody2Ds" -msgstr "" +msgstr "A articulación non está conectada a dous nodos PhysicsBody2D" #: scene/2d/joints_2d.cpp msgid "Node A and Node B must be different PhysicsBody2Ds" -msgstr "" +msgstr "Os nodos A e B teñen que ser nodos PhysicsBody2D distintos" #: scene/2d/light_2d.cpp msgid "" @@ -12016,6 +12310,10 @@ msgid "" "Use the CPUParticles2D node instead. You can use the \"Convert to " "CPUParticles\" option for this purpose." msgstr "" +"As partÃculas baseadas na GPU non están soportas por o controlador de vÃdeo " +"de GLES2.\n" +"Usa o nodo CPUParticles2D no seu lugar. Podes usar a opción \"Converter a " +"CPUParticles\" con tal motivo." #: scene/2d/particles_2d.cpp scene/3d/particles.cpp msgid "" @@ -12039,6 +12337,10 @@ msgid "" "by the physics engine when running.\n" "Change the size in children collision shapes instead." msgstr "" +"Os cambios ao tamaño do RigidBody2D (en modo rÃxido ou modo personaxe) serán " +"sobreescritos por o motor fÃsico cando a aplicación estea executándose.\n" +"Cambia o tamaño dos nodos fillos (CollisionShape2D e CollisionPolygon2D) no " +"seu lugar." #: scene/2d/remote_transform_2d.cpp msgid "Path property must point to a valid Node2D node to work." @@ -12083,6 +12385,8 @@ msgid "" "The controller ID must not be 0 or this controller won't be bound to an " "actual controller." msgstr "" +"O ID do controlador non pode ser 0, ou o controlador non estará asociado a " +"ningún controlador real." #: scene/3d/arvr_nodes.cpp msgid "ARVRAnchor must have an ARVROrigin node as its parent." @@ -12093,6 +12397,8 @@ msgid "" "The anchor ID must not be 0 or this anchor won't be bound to an actual " "anchor." msgstr "" +"O ID da áncora non pode ser 0, ou esta áncora non estará asociada a ningunha " +"áncora real." #: scene/3d/arvr_nodes.cpp msgid "ARVROrigin requires an ARVRCamera child node." @@ -12120,7 +12426,7 @@ msgstr "" #: scene/3d/baked_lightmap.cpp msgid "Done" -msgstr "" +msgstr "Feito" #: scene/3d/collision_object.cpp msgid "" @@ -12128,6 +12434,10 @@ msgid "" "Consider adding a CollisionShape or CollisionPolygon as a child to define " "its shape." msgstr "" +"Este nodo non ten unha forma fÃsica definida, polo que non pode colisionar " +"ou interactuar con outros obxectos.\n" +"Engade un nodo CollisionShape ou CollisionPolygon como fillo para definir a " +"sua forma." #: scene/3d/collision_polygon.cpp msgid "" @@ -12135,6 +12445,9 @@ msgid "" "CollisionObject derived node. Please only use it as a child of Area, " "StaticBody, RigidBody, KinematicBody, etc. to give them a shape." msgstr "" +"O nodo CollisionPolygon só serve para darlle unha forma fÃsica a nodos " +"derivados de CollisionObject. É decir, do tipo Area, StaticBody, RigidBody, " +"KinematicBody, etc." #: scene/3d/collision_polygon.cpp msgid "An empty CollisionPolygon has no effect on collision." @@ -12146,6 +12459,9 @@ msgid "" "derived node. Please only use it as a child of Area, StaticBody, RigidBody, " "KinematicBody, etc. to give them a shape." msgstr "" +"O nodo CollisionShape só serve para darlle unha forma fÃsica a nodos " +"derivados de CollisionObject. É decir, do tipo Area, StaticBody, RigidBody, " +"KinematicBody, etc." #: scene/3d/collision_shape.cpp msgid "" @@ -12163,6 +12479,8 @@ msgstr "" msgid "" "ConcavePolygonShape doesn't support RigidBody in another mode than static." msgstr "" +"A forma fÃsica ConcavePolygonShape non está soportada en nodos RigidBody en " +"ningún outro modo que non sexa o estático." #: scene/3d/cpu_particles.cpp msgid "Nothing is visible because no mesh has been assigned." @@ -12213,6 +12531,10 @@ msgid "" "Use the CPUParticles node instead. You can use the \"Convert to CPUParticles" "\" option for this purpose." msgstr "" +"As partÃculas baseadas na GPU non están soportas por o controlador de vÃdeo " +"de GLES2.\n" +"Usa o nodo CPUParticles no seu lugar. Podes usar a opción \"Converter a " +"CPUParticles\" con tal motivo." #: scene/3d/particles.cpp msgid "" @@ -12241,6 +12563,10 @@ msgid "" "by the physics engine when running.\n" "Change the size in children collision shapes instead." msgstr "" +"Os cambios ao tamaño do RigidBody (en modo rÃxido ou modo personaxe) serán " +"sobreescritos por o motor fÃsico cando a aplicación estea executándose.\n" +"Cambia o tamaño dos nodos fillos (CollisionShape e CollisionPolygon) no seu " +"lugar." #: scene/3d/physics_joint.cpp msgid "Node A and Node B must be PhysicsBodies" @@ -12248,11 +12574,11 @@ msgstr "" #: scene/3d/physics_joint.cpp msgid "Node A must be a PhysicsBody" -msgstr "" +msgstr "O nodo A ten que ser un nodo PhysicsBody" #: scene/3d/physics_joint.cpp msgid "Node B must be a PhysicsBody" -msgstr "" +msgstr "O nodo B ten que ser un nodo PhysicsBody" #: scene/3d/physics_joint.cpp msgid "Joint is not connected to any PhysicsBodies" @@ -12270,7 +12596,7 @@ msgstr "" #: scene/3d/soft_body.cpp msgid "This body will be ignored until you set a mesh." -msgstr "" +msgstr "Este corpo será ignorado ata que se lle sea asignado unha malla." #: scene/3d/soft_body.cpp msgid "" @@ -12278,6 +12604,10 @@ msgid "" "running.\n" "Change the size in children collision shapes instead." msgstr "" +"Os cambios ao tamaño do SoftBody serán sobreescritos por o motor fÃsico " +"cando a aplicación estea executándose.\n" +"Cambia o tamaño dos nodos fillos (CollisionShape e CollisionPolygon) no seu " +"lugar." #: scene/3d/sprite_3d.cpp msgid "" @@ -12290,6 +12620,8 @@ msgid "" "VehicleWheel serves to provide a wheel system to a VehicleBody. Please use " "it as a child of a VehicleBody." msgstr "" +"O nodo VehicleWheel (Roda de VehÃculo) serve para proporcionar un sistema de " +"rodas a un nodo VehicleBody. Por favor; úsao como fillo dun nodo VehicleBody." #: scene/3d/world_environment.cpp msgid "" @@ -12361,11 +12693,11 @@ msgstr "" #: scene/gui/color_picker.cpp msgid "HSV" -msgstr "" +msgstr "HSV" #: scene/gui/color_picker.cpp msgid "Raw" -msgstr "" +msgstr "Sen Procesar (Raw)" #: scene/gui/color_picker.cpp msgid "Switch between hexadecimal and code values." @@ -12381,6 +12713,10 @@ msgid "" "children placement behavior.\n" "If you don't intend to add a script, use a plain Control node instead." msgstr "" +"Un nodo contedor (Container) por sà mesmo non ten ningunha utilidade, salvo " +"que se lle engada algún Script que configure a colocación dos seus nodos " +"fillos.\n" +"Se non tes pensado engadir un Script, utilizada un nodo Control no seu lugar." #: scene/gui/control.cpp msgid "" @@ -12390,11 +12726,11 @@ msgstr "" #: scene/gui/dialogs.cpp msgid "Alert!" -msgstr "" +msgstr "Alerta!" #: scene/gui/dialogs.cpp msgid "Please Confirm..." -msgstr "" +msgstr "Por favor, confirma..." #: scene/gui/file_dialog.cpp msgid "Must use a valid extension." @@ -12410,6 +12746,9 @@ msgid "" "functions. Making them visible for editing is fine, but they will hide upon " "running." msgstr "" +"As ventás emerxentes (Popups) están ocultas por defecto, a non ser que " +"chames a popup() ou calquera das funcións popup*(). Podes facelas visibles " +"para editalas, pero ocultarasen ao iniciar a execución." #: scene/gui/range.cpp msgid "If \"Exp Edit\" is enabled, \"Min Value\" must be greater than 0." @@ -12424,7 +12763,7 @@ msgstr "" #: scene/gui/tree.cpp msgid "(Other)" -msgstr "" +msgstr "(Outros)" #: scene/main/scene_tree.cpp msgid "" @@ -12439,10 +12778,16 @@ msgid "" "obtain a size. Otherwise, make it a RenderTarget and assign its internal " "texture to some node for display." msgstr "" +"Esta Mini-Ventá (Viewport) no está configurada como obxectivo de " +"renderizado. Se quere que o seu contido se mostre directamente na pantalla, " +"convértao nun nodo fillo dun nodo Control para que poida recibir dimensións. " +"Ou ben, fágao un RenderTarget e asigne a súa textura a algún nodo." #: scene/main/viewport.cpp msgid "Viewport size must be greater than 0 to render anything." msgstr "" +"As dimensións da Mini-Ventá (Viewport) deben de ser maior que 0 para poder " +"renderizar nada." #: scene/resources/visual_shader_nodes.cpp msgid "" diff --git a/editor/translations/he.po b/editor/translations/he.po index fc4ba10dc4..78e6c10e33 100644 --- a/editor/translations/he.po +++ b/editor/translations/he.po @@ -3120,6 +3120,25 @@ msgid "Open & Run a Script" msgstr "פתיחה והרצה של סקריפט" #: editor/editor_node.cpp +#, fuzzy +msgid "" +"The following files are newer on disk.\n" +"What action should be taken?" +msgstr "" +"×”×§×‘×¦×™× ×”×‘××™× ×”× ×—×“×©×™× ×‘×›×•× ×Ÿ.\n" +"ב×ילו פעולות ×œ× ×§×•×˜?:" + +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp +msgid "Reload" +msgstr "×¨×¢× ×•×Ÿ" + +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp +msgid "Resave" +msgstr "שמירה מחדש" + +#: editor/editor_node.cpp msgid "New Inherited" msgstr "חדש בירושה" @@ -7042,16 +7061,6 @@ msgstr "" "×”×§×‘×¦×™× ×”×‘××™× ×”× ×—×“×©×™× ×‘×›×•× ×Ÿ.\n" "ב×ילו פעולות ×œ× ×§×•×˜?:" -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/shader_editor_plugin.cpp -msgid "Reload" -msgstr "×¨×¢× ×•×Ÿ" - -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/shader_editor_plugin.cpp -msgid "Resave" -msgstr "שמירה מחדש" - #: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp msgid "Debugger" msgstr "× ×™×¤×•×™ שגי×ות" @@ -10057,6 +10066,13 @@ msgid "Projects" msgstr "מיז×" #: editor/project_manager.cpp +#, fuzzy +msgid "Loading, please wait..." +msgstr "" +"×”×§×‘×¦×™× × ×¡×¨×§×™×,\n" +"× × ×œ×”×ž×ª×™×Ÿâ€¦" + +#: editor/project_manager.cpp msgid "Last Modified" msgstr "" diff --git a/editor/translations/hi.po b/editor/translations/hi.po index 08829557bb..79fab4e89b 100644 --- a/editor/translations/hi.po +++ b/editor/translations/hi.po @@ -3117,6 +3117,23 @@ msgid "Open & Run a Script" msgstr "ओपन à¤à¤‚ड रन à¤à¤• सà¥à¤•à¥à¤°à¤¿à¤ªà¥à¤Ÿ" #: editor/editor_node.cpp +#, fuzzy +msgid "" +"The following files are newer on disk.\n" +"What action should be taken?" +msgstr "निमà¥à¤¨ फ़ाइलों का निसà¥à¤¸à¤¾à¤°à¤£ नहीं हो पाया:" + +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp +msgid "Reload" +msgstr "" + +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp +msgid "Resave" +msgstr "" + +#: editor/editor_node.cpp msgid "New Inherited" msgstr "नई विरासत में मिली" @@ -6914,16 +6931,6 @@ msgid "" "What action should be taken?:" msgstr "" -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/shader_editor_plugin.cpp -msgid "Reload" -msgstr "" - -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/shader_editor_plugin.cpp -msgid "Resave" -msgstr "" - #: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp msgid "Debugger" msgstr "" @@ -9839,6 +9846,11 @@ msgid "Projects" msgstr "परियोजना के संसà¥à¤¥à¤¾à¤ªà¤•" #: editor/project_manager.cpp +#, fuzzy +msgid "Loading, please wait..." +msgstr "दरà¥à¤ªà¤£ को पà¥à¤¨à¤ƒ पà¥à¤°à¤¾à¤ªà¥à¤¤ करना, कृपया पà¥à¤°à¤¤à¥€à¤•à¥à¤·à¤¾ करें ..." + +#: editor/project_manager.cpp msgid "Last Modified" msgstr "" diff --git a/editor/translations/hr.po b/editor/translations/hr.po index 95f2844a22..6835f26fc9 100644 --- a/editor/translations/hr.po +++ b/editor/translations/hr.po @@ -2998,6 +2998,22 @@ msgid "Open & Run a Script" msgstr "" #: editor/editor_node.cpp +msgid "" +"The following files are newer on disk.\n" +"What action should be taken?" +msgstr "" + +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp +msgid "Reload" +msgstr "" + +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp +msgid "Resave" +msgstr "" + +#: editor/editor_node.cpp msgid "New Inherited" msgstr "" @@ -6754,16 +6770,6 @@ msgid "" "What action should be taken?:" msgstr "" -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/shader_editor_plugin.cpp -msgid "Reload" -msgstr "" - -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/shader_editor_plugin.cpp -msgid "Resave" -msgstr "" - #: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp msgid "Debugger" msgstr "" @@ -9615,6 +9621,10 @@ msgid "Projects" msgstr "" #: editor/project_manager.cpp +msgid "Loading, please wait..." +msgstr "" + +#: editor/project_manager.cpp msgid "Last Modified" msgstr "" diff --git a/editor/translations/hu.po b/editor/translations/hu.po index e774fec26d..9224509238 100644 --- a/editor/translations/hu.po +++ b/editor/translations/hu.po @@ -3133,6 +3133,25 @@ msgid "Open & Run a Script" msgstr "Szkriptet Megnyit és Futtat" #: editor/editor_node.cpp +#, fuzzy +msgid "" +"The following files are newer on disk.\n" +"What action should be taken?" +msgstr "" +"A alábbi fájlok újabbak a lemezen.\n" +"Mit szeretne lépni?:" + +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp +msgid "Reload" +msgstr "Újratöltés" + +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp +msgid "Resave" +msgstr "Újramentés" + +#: editor/editor_node.cpp msgid "New Inherited" msgstr "Új Örökölt" @@ -6957,16 +6976,6 @@ msgstr "" "A alábbi fájlok újabbak a lemezen.\n" "Mit szeretne lépni?:" -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/shader_editor_plugin.cpp -msgid "Reload" -msgstr "Újratöltés" - -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/shader_editor_plugin.cpp -msgid "Resave" -msgstr "Újramentés" - #: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp msgid "Debugger" msgstr "HibakeresÅ‘" @@ -9836,6 +9845,11 @@ msgid "Projects" msgstr "Projektek" #: editor/project_manager.cpp +#, fuzzy +msgid "Loading, please wait..." +msgstr "Tükrök letöltése, kérjük várjon..." + +#: editor/project_manager.cpp msgid "Last Modified" msgstr "" diff --git a/editor/translations/id.po b/editor/translations/id.po index 923b836555..6704c419d9 100644 --- a/editor/translations/id.po +++ b/editor/translations/id.po @@ -3161,6 +3161,25 @@ msgid "Open & Run a Script" msgstr "Buka & Jalankan Skrip" #: editor/editor_node.cpp +#, fuzzy +msgid "" +"The following files are newer on disk.\n" +"What action should be taken?" +msgstr "" +"Berkas berikut lebih baru dalam diska.\n" +"Aksi apa yang ingin diambil?:" + +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp +msgid "Reload" +msgstr "Muat Ulang" + +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp +msgid "Resave" +msgstr "Simpan Ulang" + +#: editor/editor_node.cpp msgid "New Inherited" msgstr "Turunan Baru" @@ -7028,16 +7047,6 @@ msgstr "" "Berkas berikut lebih baru dalam diska.\n" "Aksi apa yang ingin diambil?:" -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/shader_editor_plugin.cpp -msgid "Reload" -msgstr "Muat Ulang" - -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/shader_editor_plugin.cpp -msgid "Resave" -msgstr "Simpan Ulang" - #: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp msgid "Debugger" msgstr "Pengawakutu" @@ -10058,6 +10067,11 @@ msgid "Projects" msgstr "Proyek" #: editor/project_manager.cpp +#, fuzzy +msgid "Loading, please wait..." +msgstr "Mendapatkan informasi cermin, silakan tunggu..." + +#: editor/project_manager.cpp msgid "Last Modified" msgstr "Terakhir Diubah" diff --git a/editor/translations/is.po b/editor/translations/is.po index 8ab4fd9ec3..45335e83e5 100644 --- a/editor/translations/is.po +++ b/editor/translations/is.po @@ -3027,6 +3027,22 @@ msgid "Open & Run a Script" msgstr "" #: editor/editor_node.cpp +msgid "" +"The following files are newer on disk.\n" +"What action should be taken?" +msgstr "" + +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp +msgid "Reload" +msgstr "" + +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp +msgid "Resave" +msgstr "" + +#: editor/editor_node.cpp msgid "New Inherited" msgstr "" @@ -6814,16 +6830,6 @@ msgid "" "What action should be taken?:" msgstr "" -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/shader_editor_plugin.cpp -msgid "Reload" -msgstr "" - -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/shader_editor_plugin.cpp -msgid "Resave" -msgstr "" - #: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp msgid "Debugger" msgstr "" @@ -9707,6 +9713,10 @@ msgid "Projects" msgstr "Verkefna Stjóri" #: editor/project_manager.cpp +msgid "Loading, please wait..." +msgstr "" + +#: editor/project_manager.cpp msgid "Last Modified" msgstr "" diff --git a/editor/translations/it.po b/editor/translations/it.po index 3bc0ebac67..54c2122e93 100644 --- a/editor/translations/it.po +++ b/editor/translations/it.po @@ -55,12 +55,13 @@ # Lorenzo Cerqua <lorenzocerqua@tutanota.com>, 2020, 2021. # Federico Manzella <ferdiu.manzella@gmail.com>, 2020. # Ziv D <wizdavid@gmail.com>, 2020. +# Riteo Siuga <lorenzocerqua@tutanota.com>, 2021. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2021-02-01 20:53+0000\n" -"Last-Translator: Lorenzo Cerqua <lorenzocerqua@tutanota.com>\n" +"PO-Revision-Date: 2021-02-16 13:40+0000\n" +"Last-Translator: Riteo Siuga <lorenzocerqua@tutanota.com>\n" "Language-Team: Italian <https://hosted.weblate.org/projects/godot-engine/" "godot/it/>\n" "Language: it\n" @@ -68,7 +69,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.5-dev\n" +"X-Generator: Weblate 4.5\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -781,7 +782,7 @@ msgstr "Rimpiazza tutti" #: editor/code_editor.cpp msgid "Selection Only" -msgstr "Solo selezione" +msgstr "Solo nella selezione" #: editor/code_editor.cpp editor/plugins/script_text_editor.cpp #: editor/plugins/text_editor.cpp @@ -789,6 +790,7 @@ msgid "Standard" msgstr "Standard" #: editor/code_editor.cpp editor/plugins/script_editor_plugin.cpp +#, fuzzy msgid "Toggle Scripts Panel" msgstr "Commuta pannello degli script" @@ -806,15 +808,16 @@ msgstr "Rimpicciolisci" #: editor/code_editor.cpp msgid "Reset Zoom" -msgstr "Resetta ingrandimento" +msgstr "Reimposta ingrandimento" #: editor/code_editor.cpp +#, fuzzy msgid "Warnings" msgstr "Avvertenze" #: editor/code_editor.cpp msgid "Line and column numbers." -msgstr "Numeri di riga e colonna." +msgstr "Numeri di riga e di colonna." #: editor/connections_dialog.cpp msgid "Method in target node must be specified." @@ -822,7 +825,7 @@ msgstr "Il metodo del nodo designato deve essere specificato." #: editor/connections_dialog.cpp msgid "Method name must be a valid identifier." -msgstr "Il nome del metodo dev'essere un identificatore valido." +msgstr "Il nome del metodo deve essere un identificatore valido." #: editor/connections_dialog.cpp msgid "" @@ -3215,6 +3218,25 @@ msgid "Open & Run a Script" msgstr "Apri ed esegui uno script" #: editor/editor_node.cpp +#, fuzzy +msgid "" +"The following files are newer on disk.\n" +"What action should be taken?" +msgstr "" +"I file seguenti sono più recenti su disco.\n" +"Che azione deve essere intrapresa?:" + +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp +msgid "Reload" +msgstr "Ricarica" + +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp +msgid "Resave" +msgstr "Risalva" + +#: editor/editor_node.cpp msgid "New Inherited" msgstr "Nuova ereditata" @@ -7101,16 +7123,6 @@ msgstr "" "I file seguenti sono più recenti su disco.\n" "Che azione deve essere intrapresa?:" -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/shader_editor_plugin.cpp -msgid "Reload" -msgstr "Ricarica" - -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/shader_editor_plugin.cpp -msgid "Resave" -msgstr "Risalva" - #: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp msgid "Debugger" msgstr "Debugger" @@ -10135,6 +10147,11 @@ msgid "Projects" msgstr "Progetti" #: editor/project_manager.cpp +#, fuzzy +msgid "Loading, please wait..." +msgstr "Recupero dei mirror, attendi..." + +#: editor/project_manager.cpp msgid "Last Modified" msgstr "Ultima Modifica" diff --git a/editor/translations/ja.po b/editor/translations/ja.po index d960e0cc32..8ed2a31d77 100644 --- a/editor/translations/ja.po +++ b/editor/translations/ja.po @@ -31,13 +31,13 @@ # Akihiro Ogoshi <technical@palsystem-game.com>, 2019, 2020. # Wataru Onuki <bettawat@yahoo.co.jp>, 2020, 2021. # sporeball <sporeballdev@gmail.com>, 2020. -# BinotaLIU <me@binota.org>, 2020. +# BinotaLIU <me@binota.org>, 2020, 2021. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2021-01-22 10:21+0000\n" -"Last-Translator: Wataru Onuki <bettawat@yahoo.co.jp>\n" +"PO-Revision-Date: 2021-02-07 05:50+0000\n" +"Last-Translator: BinotaLIU <me@binota.org>\n" "Language-Team: Japanese <https://hosted.weblate.org/projects/godot-engine/" "godot/ja/>\n" "Language: ja\n" @@ -3161,6 +3161,25 @@ msgid "Open & Run a Script" msgstr "スクリプトを開ã„ã¦å®Ÿè¡Œ" #: editor/editor_node.cpp +#, fuzzy +msgid "" +"The following files are newer on disk.\n" +"What action should be taken?" +msgstr "" +"以下ã®ãƒ•ァイルより新ã—ã„ã‚‚ã®ãŒãƒ‡ã‚£ã‚¹ã‚¯ä¸Šã«å˜åœ¨ã—ã¾ã™ã€‚\n" +"ã©ã†ã—ã¾ã™ã‹?:" + +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp +msgid "Reload" +msgstr "å†èªè¾¼" + +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp +msgid "Resave" +msgstr "å†ä¿å˜" + +#: editor/editor_node.cpp msgid "New Inherited" msgstr "æ–°è¦ã®ç¶™æ‰¿" @@ -7015,16 +7034,6 @@ msgstr "" "以下ã®ãƒ•ァイルより新ã—ã„ã‚‚ã®ãŒãƒ‡ã‚£ã‚¹ã‚¯ä¸Šã«å˜åœ¨ã—ã¾ã™ã€‚\n" "ã©ã†ã—ã¾ã™ã‹?:" -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/shader_editor_plugin.cpp -msgid "Reload" -msgstr "å†èªè¾¼" - -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/shader_editor_plugin.cpp -msgid "Resave" -msgstr "å†ä¿å˜" - #: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp msgid "Debugger" msgstr "デãƒãƒƒã‚¬" @@ -7345,9 +7354,8 @@ msgid "Yaw" msgstr "ヨー" #: editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "Size" -msgstr "サイズ: " +msgstr "サイズ" #: editor/plugins/spatial_editor_plugin.cpp msgid "Objects Drawn" @@ -10026,6 +10034,11 @@ msgid "Projects" msgstr "プãƒã‚¸ã‚§ã‚¯ãƒˆ" #: editor/project_manager.cpp +#, fuzzy +msgid "Loading, please wait..." +msgstr "ミラーをå–å¾—ã—ã¦ã„ã¾ã™ã€‚ã—ã°ã‚‰ããŠå¾…ã¡ãã ã•ã„..." + +#: editor/project_manager.cpp msgid "Last Modified" msgstr "最終更新" @@ -11586,9 +11599,8 @@ msgid "Preparing data structures" msgstr "ãƒ‡ãƒ¼ã‚¿æ§‹é€ ã®æº–å‚™" #: modules/lightmapper_cpu/lightmapper_cpu.cpp -#, fuzzy msgid "Generate buffers" -msgstr "AABBを生æˆ" +msgstr "ãƒãƒƒãƒ•ァを生æˆ" #: modules/lightmapper_cpu/lightmapper_cpu.cpp #, fuzzy diff --git a/editor/translations/ka.po b/editor/translations/ka.po index 81e843c723..92ab76e773 100644 --- a/editor/translations/ka.po +++ b/editor/translations/ka.po @@ -3111,6 +3111,22 @@ msgid "Open & Run a Script" msgstr "" #: editor/editor_node.cpp +msgid "" +"The following files are newer on disk.\n" +"What action should be taken?" +msgstr "" + +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp +msgid "Reload" +msgstr "" + +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp +msgid "Resave" +msgstr "" + +#: editor/editor_node.cpp msgid "New Inherited" msgstr "" @@ -6969,16 +6985,6 @@ msgid "" "What action should be taken?:" msgstr "" -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/shader_editor_plugin.cpp -msgid "Reload" -msgstr "" - -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/shader_editor_plugin.cpp -msgid "Resave" -msgstr "" - #: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp msgid "Debugger" msgstr "" @@ -9912,6 +9918,11 @@ msgid "Projects" msgstr "პრáƒáƒ”ქტის დáƒáƒ›áƒ¤áƒ£áƒ«áƒœáƒ”ბლები" #: editor/project_manager.cpp +#, fuzzy +msgid "Loading, please wait..." +msgstr "ძებნáƒ:" + +#: editor/project_manager.cpp msgid "Last Modified" msgstr "" diff --git a/editor/translations/ko.po b/editor/translations/ko.po index c5b4f3c701..b8b9eed468 100644 --- a/editor/translations/ko.po +++ b/editor/translations/ko.po @@ -3127,6 +3127,25 @@ msgid "Open & Run a Script" msgstr "스í¬ë¦½íЏ 열기 & 실행" #: editor/editor_node.cpp +#, fuzzy +msgid "" +"The following files are newer on disk.\n" +"What action should be taken?" +msgstr "" +"해당 파ì¼ì€ 디스í¬ì— 있는 게 ë” ìµœì‹ ìž…ë‹ˆë‹¤.\n" +"어떻게 í• ê±´ê°€ìš”?:" + +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp +msgid "Reload" +msgstr "ìƒˆë¡œê³ ì¹¨" + +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp +msgid "Resave" +msgstr "다시 ì €ìž¥" + +#: editor/editor_node.cpp msgid "New Inherited" msgstr "새 ìƒì† 씬" @@ -6974,16 +6993,6 @@ msgstr "" "해당 파ì¼ì€ 디스í¬ì— 있는 게 ë” ìµœì‹ ìž…ë‹ˆë‹¤.\n" "어떻게 í• ê±´ê°€ìš”?:" -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/shader_editor_plugin.cpp -msgid "Reload" -msgstr "ìƒˆë¡œê³ ì¹¨" - -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/shader_editor_plugin.cpp -msgid "Resave" -msgstr "다시 ì €ìž¥" - #: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp msgid "Debugger" msgstr "디버거" @@ -9963,6 +9972,11 @@ msgid "Projects" msgstr "프로ì 트" #: editor/project_manager.cpp +#, fuzzy +msgid "Loading, please wait..." +msgstr "미러를 검색 중입니다. ê¸°ë‹¤ë ¤ì£¼ì„¸ìš”..." + +#: editor/project_manager.cpp msgid "Last Modified" msgstr "마지막으로 ìˆ˜ì •ë¨" diff --git a/editor/translations/lt.po b/editor/translations/lt.po index c1c872988f..f9353c1acc 100644 --- a/editor/translations/lt.po +++ b/editor/translations/lt.po @@ -3062,6 +3062,22 @@ msgid "Open & Run a Script" msgstr "" #: editor/editor_node.cpp +msgid "" +"The following files are newer on disk.\n" +"What action should be taken?" +msgstr "" + +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp +msgid "Reload" +msgstr "" + +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp +msgid "Resave" +msgstr "" + +#: editor/editor_node.cpp msgid "New Inherited" msgstr "" @@ -6939,16 +6955,6 @@ msgid "" "What action should be taken?:" msgstr "" -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/shader_editor_plugin.cpp -msgid "Reload" -msgstr "" - -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/shader_editor_plugin.cpp -msgid "Resave" -msgstr "" - #: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp msgid "Debugger" msgstr "" @@ -9885,6 +9891,11 @@ msgid "Projects" msgstr "" #: editor/project_manager.cpp +#, fuzzy +msgid "Loading, please wait..." +msgstr "Atsiųsti" + +#: editor/project_manager.cpp msgid "Last Modified" msgstr "" diff --git a/editor/translations/lv.po b/editor/translations/lv.po index 09379f2903..85519ccb59 100644 --- a/editor/translations/lv.po +++ b/editor/translations/lv.po @@ -3028,6 +3028,23 @@ msgid "Open & Run a Script" msgstr "" #: editor/editor_node.cpp +#, fuzzy +msgid "" +"The following files are newer on disk.\n" +"What action should be taken?" +msgstr "SekojoÅ¡ie faili netika izvilkti no paketes:" + +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp +msgid "Reload" +msgstr "" + +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp +msgid "Resave" +msgstr "" + +#: editor/editor_node.cpp msgid "New Inherited" msgstr "" @@ -6793,16 +6810,6 @@ msgid "" "What action should be taken?:" msgstr "" -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/shader_editor_plugin.cpp -msgid "Reload" -msgstr "" - -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/shader_editor_plugin.cpp -msgid "Resave" -msgstr "" - #: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp msgid "Debugger" msgstr "" @@ -9708,6 +9715,11 @@ msgid "Projects" msgstr "Projekta DibinÄtÄji" #: editor/project_manager.cpp +#, fuzzy +msgid "Loading, please wait..." +msgstr "IelÄdÄ“t..." + +#: editor/project_manager.cpp msgid "Last Modified" msgstr "" diff --git a/editor/translations/mi.po b/editor/translations/mi.po index 9c110afb2d..d9edd212bd 100644 --- a/editor/translations/mi.po +++ b/editor/translations/mi.po @@ -2974,6 +2974,22 @@ msgid "Open & Run a Script" msgstr "" #: editor/editor_node.cpp +msgid "" +"The following files are newer on disk.\n" +"What action should be taken?" +msgstr "" + +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp +msgid "Reload" +msgstr "" + +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp +msgid "Resave" +msgstr "" + +#: editor/editor_node.cpp msgid "New Inherited" msgstr "" @@ -6726,16 +6742,6 @@ msgid "" "What action should be taken?:" msgstr "" -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/shader_editor_plugin.cpp -msgid "Reload" -msgstr "" - -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/shader_editor_plugin.cpp -msgid "Resave" -msgstr "" - #: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp msgid "Debugger" msgstr "" @@ -9574,6 +9580,10 @@ msgid "Projects" msgstr "" #: editor/project_manager.cpp +msgid "Loading, please wait..." +msgstr "" + +#: editor/project_manager.cpp msgid "Last Modified" msgstr "" diff --git a/editor/translations/mk.po b/editor/translations/mk.po index 47bb481995..561adc90ff 100644 --- a/editor/translations/mk.po +++ b/editor/translations/mk.po @@ -2981,6 +2981,22 @@ msgid "Open & Run a Script" msgstr "" #: editor/editor_node.cpp +msgid "" +"The following files are newer on disk.\n" +"What action should be taken?" +msgstr "" + +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp +msgid "Reload" +msgstr "" + +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp +msgid "Resave" +msgstr "" + +#: editor/editor_node.cpp msgid "New Inherited" msgstr "" @@ -6733,16 +6749,6 @@ msgid "" "What action should be taken?:" msgstr "" -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/shader_editor_plugin.cpp -msgid "Reload" -msgstr "" - -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/shader_editor_plugin.cpp -msgid "Resave" -msgstr "" - #: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp msgid "Debugger" msgstr "" @@ -9581,6 +9587,10 @@ msgid "Projects" msgstr "" #: editor/project_manager.cpp +msgid "Loading, please wait..." +msgstr "" + +#: editor/project_manager.cpp msgid "Last Modified" msgstr "" diff --git a/editor/translations/ml.po b/editor/translations/ml.po index 0791218b36..22fdc508ae 100644 --- a/editor/translations/ml.po +++ b/editor/translations/ml.po @@ -2986,6 +2986,22 @@ msgid "Open & Run a Script" msgstr "" #: editor/editor_node.cpp +msgid "" +"The following files are newer on disk.\n" +"What action should be taken?" +msgstr "" + +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp +msgid "Reload" +msgstr "" + +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp +msgid "Resave" +msgstr "" + +#: editor/editor_node.cpp msgid "New Inherited" msgstr "" @@ -6742,16 +6758,6 @@ msgid "" "What action should be taken?:" msgstr "" -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/shader_editor_plugin.cpp -msgid "Reload" -msgstr "" - -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/shader_editor_plugin.cpp -msgid "Resave" -msgstr "" - #: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp msgid "Debugger" msgstr "" @@ -9591,6 +9597,10 @@ msgid "Projects" msgstr "" #: editor/project_manager.cpp +msgid "Loading, please wait..." +msgstr "" + +#: editor/project_manager.cpp msgid "Last Modified" msgstr "" diff --git a/editor/translations/mr.po b/editor/translations/mr.po index 2d2ddb2deb..660429c147 100644 --- a/editor/translations/mr.po +++ b/editor/translations/mr.po @@ -2981,6 +2981,22 @@ msgid "Open & Run a Script" msgstr "" #: editor/editor_node.cpp +msgid "" +"The following files are newer on disk.\n" +"What action should be taken?" +msgstr "" + +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp +msgid "Reload" +msgstr "" + +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp +msgid "Resave" +msgstr "" + +#: editor/editor_node.cpp msgid "New Inherited" msgstr "" @@ -6733,16 +6749,6 @@ msgid "" "What action should be taken?:" msgstr "" -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/shader_editor_plugin.cpp -msgid "Reload" -msgstr "" - -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/shader_editor_plugin.cpp -msgid "Resave" -msgstr "" - #: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp msgid "Debugger" msgstr "" @@ -9582,6 +9588,10 @@ msgid "Projects" msgstr "" #: editor/project_manager.cpp +msgid "Loading, please wait..." +msgstr "" + +#: editor/project_manager.cpp msgid "Last Modified" msgstr "" diff --git a/editor/translations/ms.po b/editor/translations/ms.po index e121414574..01539c3fb7 100644 --- a/editor/translations/ms.po +++ b/editor/translations/ms.po @@ -3214,6 +3214,23 @@ msgstr "Buka & Jalankan Skrip" #: editor/editor_node.cpp #, fuzzy +msgid "" +"The following files are newer on disk.\n" +"What action should be taken?" +msgstr "Fail berikut gagal diekstrak dari pakej:" + +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp +msgid "Reload" +msgstr "" + +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp +msgid "Resave" +msgstr "" + +#: editor/editor_node.cpp +#, fuzzy msgid "New Inherited" msgstr "Baru Diwarisi" @@ -7063,16 +7080,6 @@ msgid "" "What action should be taken?:" msgstr "" -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/shader_editor_plugin.cpp -msgid "Reload" -msgstr "" - -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/shader_editor_plugin.cpp -msgid "Resave" -msgstr "" - #: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp msgid "Debugger" msgstr "" @@ -9929,6 +9936,11 @@ msgid "Projects" msgstr "" #: editor/project_manager.cpp +#, fuzzy +msgid "Loading, please wait..." +msgstr "Mengambil maklumat cermin, sila tunggu..." + +#: editor/project_manager.cpp msgid "Last Modified" msgstr "" diff --git a/editor/translations/nb.po b/editor/translations/nb.po index b597c27fe1..3c54f55e99 100644 --- a/editor/translations/nb.po +++ b/editor/translations/nb.po @@ -3287,6 +3287,23 @@ msgstr "Ã…pne & Kjør et Skript" #: editor/editor_node.cpp #, fuzzy +msgid "" +"The following files are newer on disk.\n" +"What action should be taken?" +msgstr "De følgende filene feilet ekstrahering fra pakke:" + +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp +msgid "Reload" +msgstr "Gjeninnlat" + +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp +msgid "Resave" +msgstr "Lagre pÃ¥ nytt" + +#: editor/editor_node.cpp +#, fuzzy msgid "New Inherited" msgstr "Ny Arvet" @@ -7381,16 +7398,6 @@ msgid "" "What action should be taken?:" msgstr "" -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/shader_editor_plugin.cpp -msgid "Reload" -msgstr "Gjeninnlat" - -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/shader_editor_plugin.cpp -msgid "Resave" -msgstr "Lagre pÃ¥ nytt" - #: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp msgid "Debugger" msgstr "Feilsøking" @@ -10443,6 +10450,11 @@ msgid "Projects" msgstr "Prosjekter" #: editor/project_manager.cpp +#, fuzzy +msgid "Loading, please wait..." +msgstr "Henter fillager, vennligst vent..." + +#: editor/project_manager.cpp msgid "Last Modified" msgstr "" diff --git a/editor/translations/nl.po b/editor/translations/nl.po index 33362f4e57..c73520f563 100644 --- a/editor/translations/nl.po +++ b/editor/translations/nl.po @@ -47,7 +47,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2021-02-01 20:53+0000\n" +"PO-Revision-Date: 2021-02-05 23:44+0000\n" "Last-Translator: Stijn Hinlopen <f.a.hinlopen@gmail.com>\n" "Language-Team: Dutch <https://hosted.weblate.org/projects/godot-engine/godot/" "nl/>\n" @@ -1703,7 +1703,7 @@ msgstr "Script Editor" #: editor/editor_feature_profile.cpp msgid "Asset Library" -msgstr "Asset bibliotheek" +msgstr "Materiaalbibliotheek" #: editor/editor_feature_profile.cpp msgid "Scene Tree Editing" @@ -2901,7 +2901,7 @@ msgstr "" #: editor/editor_node.cpp msgid "Visible Collision Shapes" -msgstr "Toon collision shapes" +msgstr "Botsingsvormen tonen" #: editor/editor_node.cpp #, fuzzy @@ -3185,6 +3185,25 @@ msgid "Open & Run a Script" msgstr "Voer Een Script Uit" #: editor/editor_node.cpp +#, fuzzy +msgid "" +"The following files are newer on disk.\n" +"What action should be taken?" +msgstr "" +"De volgende bestanden zijn nieuwer op de schijf.\n" +"Welke aktie moet worden genomen?:" + +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp +msgid "Reload" +msgstr "Herladen" + +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp +msgid "Resave" +msgstr "Heropslaan" + +#: editor/editor_node.cpp msgid "New Inherited" msgstr "Nieuw afgeleid type" @@ -3210,7 +3229,7 @@ msgstr "Open Script Bewerker" #: editor/editor_node.cpp editor/project_manager.cpp msgid "Open Asset Library" -msgstr "Open Asset Bibliotheek" +msgstr "Open Materiaalbibliotheek" #: editor/editor_node.cpp msgid "Open the next Editor" @@ -7055,16 +7074,6 @@ msgstr "" "De volgende bestanden zijn nieuwer op de schijf.\n" "Welke aktie moet worden genomen?:" -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/shader_editor_plugin.cpp -msgid "Reload" -msgstr "Herladen" - -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/shader_editor_plugin.cpp -msgid "Resave" -msgstr "Heropslaan" - #: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp msgid "Debugger" msgstr "Debugger" @@ -7799,7 +7808,7 @@ msgstr "Polygon2D Voorbeeldweergave" #: editor/plugins/sprite_editor_plugin.cpp msgid "Create CollisionPolygon2D" -msgstr "Creëer CollisionPolygon2D" +msgstr "CollisionPolygon2D aanmaken" #: editor/plugins/sprite_editor_plugin.cpp msgid "CollisionPolygon2D Preview" @@ -7841,11 +7850,11 @@ msgstr "Naar Polygon2D omzetten" #: editor/plugins/sprite_editor_plugin.cpp msgid "Invalid geometry, can't create collision polygon." -msgstr "Ongeldige geometrie, kan geen collision polygoon creëren." +msgstr "Ongeldige geometrie, kan geen botsingspolygoon aanmaken." #: editor/plugins/sprite_editor_plugin.cpp msgid "Create CollisionPolygon2D Sibling" -msgstr "Creëer CollisionPolygon2D Sibling" +msgstr "CollisionPolygon2D aanmaken" #: editor/plugins/sprite_editor_plugin.cpp msgid "Invalid geometry, can't create light occluder." @@ -8551,7 +8560,7 @@ msgstr "Tegelbitmasker bewerken" #: editor/plugins/tile_set_editor_plugin.cpp msgid "Edit Collision Polygon" -msgstr "Bewerk Collision Polygon" +msgstr "Botsingspolygoon aanpassen" #: editor/plugins/tile_set_editor_plugin.cpp msgid "Edit Occlusion Polygon" @@ -8583,7 +8592,7 @@ msgstr "Verwijder Tile" #: editor/plugins/tile_set_editor_plugin.cpp msgid "Remove Collision Polygon" -msgstr "Verwijder Collision Polygon" +msgstr "Botsingsvorm verwijderen" #: editor/plugins/tile_set_editor_plugin.cpp msgid "Remove Occlusion Polygon" @@ -8611,7 +8620,7 @@ msgstr "Maak concaaf" #: editor/plugins/tile_set_editor_plugin.cpp msgid "Create Collision Polygon" -msgstr "Creëer Collision Polygon" +msgstr "Botsingsvorm aanmaken" #: editor/plugins/tile_set_editor_plugin.cpp msgid "Create Occlusion Polygon" @@ -10085,6 +10094,11 @@ msgid "Projects" msgstr "Projecten" #: editor/project_manager.cpp +#, fuzzy +msgid "Loading, please wait..." +msgstr "Mirrors ophalen, even wachten a.u.b..." + +#: editor/project_manager.cpp msgid "Last Modified" msgstr "Laatst bewerkt" @@ -10122,7 +10136,7 @@ msgid "" "Would you like to explore official example projects in the Asset Library?" msgstr "" "U heeft momenteel geen projecten.\n" -"Wilt u de officiële voorbeeldprojecten verkennen in de Asset Library?" +"Wilt u officiële voorbeeldprojecten verkennen in de Materiaalbibliotheek?" #: editor/project_manager.cpp msgid "" @@ -12472,10 +12486,10 @@ msgid "" "Consider adding a CollisionShape2D or CollisionPolygon2D as a child to " "define its shape." msgstr "" -"Deze knoop heeft geen vorm (Shape), dus kan het niet met andere objecten " -"botsen of interactie hebben.\n" -"Overweeg om een CollisionShape2D of CollisionPolygon2D als kind toe te " -"voegen om de vorm ervan vast te leggen." +"Deze knoop heeft geen botsingsvorm als onderliggende knoop en kan dus niet " +"met andere objecten botsen of interageren.\n" +"Plaats hieronder een knoop als CollisionShape2D of CollisionPolygon2D om " +"deze vorm vast te leggen." #: scene/2d/collision_polygon_2d.cpp msgid "" @@ -12483,13 +12497,14 @@ msgid "" "CollisionObject2D derived node. Please only use it as a child of Area2D, " "StaticBody2D, RigidBody2D, KinematicBody2D, etc. to give them a shape." msgstr "" -"CollisionPolygon2D dient enkel om een botsingsvorm te koppelen aan een knoop " -"afgeleid van CollisionObject2D. Plaats hem onder een Area2D-, StaticBody2D-, " -"RigidBody2D- of KinematicBody2D-knoop." +"Een knooppunt van het type CollisionPolygon2D kan alleen een botsingsvorm " +"keveren aan knopen die zijn afgeleid van CollisionObject2D. Plaats het dus " +"alleen onder een knoop als Area2D, StaticBody2D, RigidBody2D of " +"KinematicBody2D." #: scene/2d/collision_polygon_2d.cpp msgid "An empty CollisionPolygon2D has no effect on collision." -msgstr "Een lege CollisionPolygon2D heeft geen effect op botsingen." +msgstr "Lege CollisionPolygon2D hebben geen botsingsfunctie." #: scene/2d/collision_shape_2d.cpp msgid "" @@ -12497,15 +12512,16 @@ msgid "" "CollisionObject2D derived node. Please only use it as a child of Area2D, " "StaticBody2D, RigidBody2D, KinematicBody2D, etc. to give them a shape." msgstr "" -"CollisionShape2D dient enkel om een botsingsvorm te koppelen aan een knoop " -"afgeleid van CollisionObject2D. Plaats hem onder een Area2D-, StaticBody2D-, " -"RigidBody2D- of KinematicBody2D-knoop." +"Een knooppunt van het type CollisionShape2D kan alleen een botsingsvorm " +"keveren aan knopen die zijn afgeleid van CollisionObject2D. Plaats het dus " +"alleen onder een knoop als Area2D, StaticBody2D, RigidBody2D of " +"KinematicBody2D." #: scene/2d/collision_shape_2d.cpp msgid "" "A shape must be provided for CollisionShape2D to function. Please create a " "shape resource for it!" -msgstr "Een CollisionShape2D heeft een vorm nodig in de Shape-eigenschap!" +msgstr "Een CollisionShape2D heeft een vorm nodig." #: scene/2d/collision_shape_2d.cpp msgid "" @@ -12621,9 +12637,9 @@ msgid "" "by the physics engine when running.\n" "Change the size in children collision shapes instead." msgstr "" -"Grootteveranderingen van een RigidBody2D (in Character- of Rigidmodus) zal " -"overschreven worden door de physics engine als het spel start.\n" -"Verander in plaats daarvan de grootte van CollisionShapes in de kinderen." +"De grootte van een RigidBody2D (in Character- of Rigidmodus) wordt " +"overschreven wanneer het spel start.\n" +"Verander in plaats daarvan de grootte van de onderliggende botsingsvormen." #: scene/2d/remote_transform_2d.cpp msgid "Path property must point to a valid Node2D node to work." @@ -12652,10 +12668,9 @@ msgid "" "to. Please use it as a child of Area2D, StaticBody2D, RigidBody2D, " "KinematicBody2D, etc. to give them a shape." msgstr "" -"TileMap met de optie \"Use Parent\" aan heeft een CollisionShape2D-ouder " -"nodig om vormen aan te geven. De TileMap hoort een kind van een Area2D, " -"StaticBody2D, RigidBody2D, KinematicBody2D enz. knoop te zijn om ze een vorm " -"te geven." +"Een TileMap met de optie \"Use Parent\" ingeschakeld moet knoop afgeleid van " +"CollisionObject2D (Area2D, StaticBody2D, RigidBody2D of KinematicBody2D) als " +"ouder hebben." #: scene/2d/visibility_notifier_2d.cpp msgid "" @@ -12732,10 +12747,10 @@ msgid "" "Consider adding a CollisionShape or CollisionPolygon as a child to define " "its shape." msgstr "" -"Deze knoop heeft geen vorm (Shape), dus het kan niet met andere objecten " -"botsen of interactie hebben.\n" -"Overweeg om een CollisionShape of CollisionPolygon als kind toe te voegen om " -"de vorm ervan vast te leggen." +"Deze knoop heeft geen botsingsvorm als onderliggende knoop en kan dus niet " +"met andere objecten botsen of interageren.\n" +"Plaats hieronder een knoop als CollisionShape of CollisionPolygon om deze " +"vorm vast te leggen." #: scene/3d/collision_polygon.cpp msgid "" @@ -12743,13 +12758,13 @@ msgid "" "CollisionObject derived node. Please only use it as a child of Area, " "StaticBody, RigidBody, KinematicBody, etc. to give them a shape." msgstr "" -"CollisionPolygon dient enkel om een botsingsvorm te koppelen aan een knoop " -"afgeleid van CollisionObject. Plaats hem onder een Area-, StaticBody-, " -"RigidBody- of KinematicBody-knoop." +"Een knooppunt van het type CollisionPolygon kan alleen een botsingsvorm " +"keveren aan knopen die zijn afgeleid van CollisionObject. Plaats het dus " +"alleen onder een knoop als Area, StaticBody, RigidBody of KinematicBody." #: scene/3d/collision_polygon.cpp msgid "An empty CollisionPolygon has no effect on collision." -msgstr "Een lege CollisionPolygon heeft geen effect op botsingen." +msgstr "Lege CollisionPolygon hebben geen botsingsfunctie." #: scene/3d/collision_shape.cpp msgid "" @@ -12757,17 +12772,15 @@ msgid "" "derived node. Please only use it as a child of Area, StaticBody, RigidBody, " "KinematicBody, etc. to give them a shape." msgstr "" -"CollisionShape dient enkel om een botsingsvorm te koppelen aan een knoop " -"afgeleid van CollisionObject. Plaats hem onder een Area-, StaticBody-, " -"RigidBody- of KinematicBody-knoop." +"Een knooppunt van het type CollisionShape kan alleen een botsingsvorm " +"keveren aan knopen die zijn afgeleid van CollisionObject2D. Plaats het dus " +"alleen onder een knoop als Area, StaticBody, RigidBody of KinematicBody." #: scene/3d/collision_shape.cpp msgid "" "A shape must be provided for CollisionShape to function. Please create a " "shape resource for it." -msgstr "" -"Om CollisionShape te laten werken, hoort het een Shape te hebben. Maak " -"hiervoor alstublieft een Shape bron aan." +msgstr "Een CollisionShape heeft een vorm nodig." #: scene/3d/collision_shape.cpp msgid "" @@ -12876,9 +12889,9 @@ msgid "" "by the physics engine when running.\n" "Change the size in children collision shapes instead." msgstr "" -"Grootteveranderingen van een RigidBody (in Character- of Rigidmodus) zal " -"overschreven worden door de physics engine als het spel start.\n" -"Verander in plaats daarvan de grootte van CollisionShapes in de kinderen." +"De grootte van een RigidBody (in Character- of Rigidmodus) wordt " +"overschreven wanneer het spel start.\n" +"Verander in plaats daarvan de grootte van de onderliggende botsingsvormen." #: scene/3d/physics_joint.cpp msgid "Node A and Node B must be PhysicsBodies" @@ -12918,9 +12931,8 @@ msgid "" "running.\n" "Change the size in children collision shapes instead." msgstr "" -"Grootteveranderingen van een SoftBody (in Character- of Rigidmodus) zal " -"overschreven worden door de physics engine als het spel start.\n" -"Verander de grootte van CollisionShapes in de kinderen." +"De grootte van een SoftBody wordt overschreven wanneer het spel start.\n" +"Verander in plaats daarvan de grootte van de onderliggende botsingsvormen." #: scene/3d/sprite_3d.cpp msgid "" @@ -13065,9 +13077,8 @@ msgid "Must use a valid extension." msgstr "Een geldige extensie moet gebruikt worden." #: scene/gui/graph_edit.cpp -#, fuzzy msgid "Enable grid minimap." -msgstr "Aan raster kleven" +msgstr "Rasteroverzicht inschakelen." #: scene/gui/popup.cpp msgid "" diff --git a/editor/translations/or.po b/editor/translations/or.po index 334b5b903e..a95df2885d 100644 --- a/editor/translations/or.po +++ b/editor/translations/or.po @@ -2980,6 +2980,22 @@ msgid "Open & Run a Script" msgstr "" #: editor/editor_node.cpp +msgid "" +"The following files are newer on disk.\n" +"What action should be taken?" +msgstr "" + +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp +msgid "Reload" +msgstr "" + +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp +msgid "Resave" +msgstr "" + +#: editor/editor_node.cpp msgid "New Inherited" msgstr "" @@ -6732,16 +6748,6 @@ msgid "" "What action should be taken?:" msgstr "" -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/shader_editor_plugin.cpp -msgid "Reload" -msgstr "" - -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/shader_editor_plugin.cpp -msgid "Resave" -msgstr "" - #: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp msgid "Debugger" msgstr "" @@ -9580,6 +9586,10 @@ msgid "Projects" msgstr "" #: editor/project_manager.cpp +msgid "Loading, please wait..." +msgstr "" + +#: editor/project_manager.cpp msgid "Last Modified" msgstr "" diff --git a/editor/translations/pl.po b/editor/translations/pl.po index 9d783625b9..26ff92e60e 100644 --- a/editor/translations/pl.po +++ b/editor/translations/pl.po @@ -46,12 +46,13 @@ # Dzejkop <jakubtrad@gmail.com>, 2020. # Mateusz Grzonka <alpinus4@gmail.com>, 2020. # gnu-ewm <gnu.ewm@protonmail.com>, 2021. +# vrid <patryksoon@live.com>, 2021. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2021-02-01 20:54+0000\n" -"Last-Translator: Tomek <kobewi4e@gmail.com>\n" +"PO-Revision-Date: 2021-02-15 10:51+0000\n" +"Last-Translator: vrid <patryksoon@live.com>\n" "Language-Team: Polish <https://hosted.weblate.org/projects/godot-engine/" "godot/pl/>\n" "Language: pl\n" @@ -3164,6 +3165,25 @@ msgid "Open & Run a Script" msgstr "Otwórz i Uruchom Skrypt" #: editor/editor_node.cpp +#, fuzzy +msgid "" +"The following files are newer on disk.\n" +"What action should be taken?" +msgstr "" +"NastÄ™pujÄ…ce pliki sÄ… nowsze na dysku.\n" +"Jakie dziaÅ‚ania powinny zostać podjÄ™te?:" + +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp +msgid "Reload" +msgstr "PrzeÅ‚aduj" + +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp +msgid "Resave" +msgstr "Zapisz ponownie" + +#: editor/editor_node.cpp msgid "New Inherited" msgstr "Nowa dziedziczÄ…ca scena" @@ -7032,16 +7052,6 @@ msgstr "" "NastÄ™pujÄ…ce pliki sÄ… nowsze na dysku.\n" "Jakie dziaÅ‚ania powinny zostać podjÄ™te?:" -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/shader_editor_plugin.cpp -msgid "Reload" -msgstr "PrzeÅ‚aduj" - -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/shader_editor_plugin.cpp -msgid "Resave" -msgstr "Zapisz ponownie" - #: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp msgid "Debugger" msgstr "Debugger" @@ -7361,9 +7371,8 @@ msgid "Yaw" msgstr "Odchylenie" #: editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "Size" -msgstr "Rozmiar: " +msgstr "Rozmiar" #: editor/plugins/spatial_editor_plugin.cpp msgid "Objects Drawn" @@ -10051,6 +10060,11 @@ msgid "Projects" msgstr "Projekty" #: editor/project_manager.cpp +#, fuzzy +msgid "Loading, please wait..." +msgstr "Pobieranie informacji o serwerach lustrzanych, proszÄ™ czekać..." + +#: editor/project_manager.cpp msgid "Last Modified" msgstr "Data modyfikacji" diff --git a/editor/translations/pr.po b/editor/translations/pr.po index f8ea72a750..2d2ecf41b6 100644 --- a/editor/translations/pr.po +++ b/editor/translations/pr.po @@ -3075,6 +3075,22 @@ msgid "Open & Run a Script" msgstr "" #: editor/editor_node.cpp +msgid "" +"The following files are newer on disk.\n" +"What action should be taken?" +msgstr "" + +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp +msgid "Reload" +msgstr "" + +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp +msgid "Resave" +msgstr "" + +#: editor/editor_node.cpp msgid "New Inherited" msgstr "" @@ -6953,16 +6969,6 @@ msgid "" "What action should be taken?:" msgstr "" -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/shader_editor_plugin.cpp -msgid "Reload" -msgstr "" - -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/shader_editor_plugin.cpp -msgid "Resave" -msgstr "" - #: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp msgid "Debugger" msgstr "" @@ -9915,6 +9921,10 @@ msgid "Projects" msgstr "Rename Function" #: editor/project_manager.cpp +msgid "Loading, please wait..." +msgstr "" + +#: editor/project_manager.cpp msgid "Last Modified" msgstr "" diff --git a/editor/translations/pt.po b/editor/translations/pt.po index 0d3524786b..49f2ff19c1 100644 --- a/editor/translations/pt.po +++ b/editor/translations/pt.po @@ -3147,6 +3147,25 @@ msgid "Open & Run a Script" msgstr "Abrir & Executar um Script" #: editor/editor_node.cpp +#, fuzzy +msgid "" +"The following files are newer on disk.\n" +"What action should be taken?" +msgstr "" +"Os seguintes Ficheiros são mais recentes no disco.\n" +"Que ação deve ser tomada?:" + +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp +msgid "Reload" +msgstr "Recarregar" + +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp +msgid "Resave" +msgstr "Guardar novamente" + +#: editor/editor_node.cpp msgid "New Inherited" msgstr "Novo Herdado" @@ -7008,16 +7027,6 @@ msgstr "" "Os seguintes Ficheiros são mais recentes no disco.\n" "Que ação deve ser tomada?:" -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/shader_editor_plugin.cpp -msgid "Reload" -msgstr "Recarregar" - -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/shader_editor_plugin.cpp -msgid "Resave" -msgstr "Guardar novamente" - #: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp msgid "Debugger" msgstr "Depurador" @@ -10018,6 +10027,11 @@ msgid "Projects" msgstr "Projetos" #: editor/project_manager.cpp +#, fuzzy +msgid "Loading, please wait..." +msgstr "A readquirir servidores, espere por favor..." + +#: editor/project_manager.cpp msgid "Last Modified" msgstr "Última modificação" diff --git a/editor/translations/pt_BR.po b/editor/translations/pt_BR.po index b20cc35809..025ae380fd 100644 --- a/editor/translations/pt_BR.po +++ b/editor/translations/pt_BR.po @@ -116,8 +116,8 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: 2016-05-30\n" -"PO-Revision-Date: 2021-02-05 09:20+0000\n" -"Last-Translator: Lucas Castro <castroclucas@gmail.com>\n" +"PO-Revision-Date: 2021-02-15 10:51+0000\n" +"Last-Translator: Carlos Bonifacio <carlosboni.sa@gmail.com>\n" "Language-Team: Portuguese (Brazil) <https://hosted.weblate.org/projects/" "godot-engine/godot/pt_BR/>\n" "Language: pt_BR\n" @@ -3243,6 +3243,25 @@ msgid "Open & Run a Script" msgstr "Abrir e Rodar um Script" #: editor/editor_node.cpp +#, fuzzy +msgid "" +"The following files are newer on disk.\n" +"What action should be taken?" +msgstr "" +"Os seguintes arquivos são mais recentes no disco.\n" +"Que ação deve ser tomada?:" + +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp +msgid "Reload" +msgstr "Recarregar" + +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp +msgid "Resave" +msgstr "Salve novamente" + +#: editor/editor_node.cpp msgid "New Inherited" msgstr "Novo Herdado" @@ -7118,16 +7137,6 @@ msgstr "" "Os seguintes arquivos são mais recentes no disco.\n" "Que ação deve ser tomada?:" -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/shader_editor_plugin.cpp -msgid "Reload" -msgstr "Recarregar" - -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/shader_editor_plugin.cpp -msgid "Resave" -msgstr "Salve novamente" - #: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp msgid "Debugger" msgstr "Depurador" @@ -10133,6 +10142,11 @@ msgid "Projects" msgstr "Projetos" #: editor/project_manager.cpp +#, fuzzy +msgid "Loading, please wait..." +msgstr "Reconectando, por favor aguarde." + +#: editor/project_manager.cpp msgid "Last Modified" msgstr "Ultima Modificação" @@ -11686,7 +11700,6 @@ msgid "Give a MeshLibrary resource to this GridMap to use its meshes." msgstr "Atribua um recurso MeshLibrary a este GridMap para usar seus meshes." #: modules/lightmapper_cpu/lightmapper_cpu.cpp -#, fuzzy msgid "Begin Bake" msgstr "Iniciar pré-cálculo" diff --git a/editor/translations/ro.po b/editor/translations/ro.po index 100afe3cb9..6497621bc8 100644 --- a/editor/translations/ro.po +++ b/editor/translations/ro.po @@ -3148,6 +3148,23 @@ msgid "Open & Run a Script" msgstr "Deschide È™i Execută un Script" #: editor/editor_node.cpp +#, fuzzy +msgid "" +"The following files are newer on disk.\n" +"What action should be taken?" +msgstr "Următoarele file au eÈ™uat extragerea din pachet:" + +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp +msgid "Reload" +msgstr "" + +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp +msgid "Resave" +msgstr "" + +#: editor/editor_node.cpp msgid "New Inherited" msgstr "Derivare Nouă" @@ -7083,16 +7100,6 @@ msgid "" "What action should be taken?:" msgstr "" -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/shader_editor_plugin.cpp -msgid "Reload" -msgstr "" - -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/shader_editor_plugin.cpp -msgid "Resave" -msgstr "" - #: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp msgid "Debugger" msgstr "" @@ -10069,6 +10076,11 @@ msgid "Projects" msgstr "Proiect" #: editor/project_manager.cpp +#, fuzzy +msgid "Loading, please wait..." +msgstr "Se recuperează oglinzile, te rog aÈ™teaptă..." + +#: editor/project_manager.cpp msgid "Last Modified" msgstr "" diff --git a/editor/translations/ru.po b/editor/translations/ru.po index 61f4d23157..e079c49e3f 100644 --- a/editor/translations/ru.po +++ b/editor/translations/ru.po @@ -91,12 +91,13 @@ # Roman Tolkachyov <roman@tolkachyov.name>, 2020. # Igor Grachev <igorecha.9999@gmail.com>, 2020. # Dmytro Meleshko <dmytro.meleshko@gmail.com>, 2021. +# narrnika <narr13niki@gmail.com>, 2021. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2021-02-01 20:54+0000\n" -"Last-Translator: Danil Alexeev <danil@alexeev.xyz>\n" +"PO-Revision-Date: 2021-02-05 23:44+0000\n" +"Last-Translator: narrnika <narr13niki@gmail.com>\n" "Language-Team: Russian <https://hosted.weblate.org/projects/godot-engine/" "godot/ru/>\n" "Language: ru\n" @@ -3219,6 +3220,25 @@ msgid "Open & Run a Script" msgstr "Открыть и запуÑтить Ñкрипт" #: editor/editor_node.cpp +#, fuzzy +msgid "" +"The following files are newer on disk.\n" +"What action should be taken?" +msgstr "" +"Следующие файлы новее на диÑке.\n" +"Какие меры должны быть принÑты?:" + +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp +msgid "Reload" +msgstr "Перезагрузить" + +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp +msgid "Resave" +msgstr "ПереÑохранить" + +#: editor/editor_node.cpp msgid "New Inherited" msgstr "ÐÐ¾Ð²Ð°Ñ ÑƒÐ½Ð°ÑÐ»ÐµÐ´Ð¾Ð²Ð°Ð½Ð½Ð°Ñ Ñцена" @@ -7078,16 +7098,6 @@ msgstr "" "Следующие файлы новее на диÑке.\n" "Какие меры должны быть принÑты?:" -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/shader_editor_plugin.cpp -msgid "Reload" -msgstr "Перезагрузить" - -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/shader_editor_plugin.cpp -msgid "Resave" -msgstr "ПереÑохранить" - #: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp msgid "Debugger" msgstr "Отладчик" @@ -7408,13 +7418,12 @@ msgid "Yaw" msgstr "Ð Ñ‹Ñкание" #: editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "Size" -msgstr "Размер: " +msgstr "Размер" #: editor/plugins/spatial_editor_plugin.cpp msgid "Objects Drawn" -msgstr "ÐариÑовано обьектов" +msgstr "ÐариÑовано объектов" #: editor/plugins/spatial_editor_plugin.cpp msgid "Material Changes" @@ -10096,6 +10105,11 @@ msgid "Projects" msgstr "Проекты" #: editor/project_manager.cpp +#, fuzzy +msgid "Loading, please wait..." +msgstr "Получение зеркал, пожалуйÑта подождите..." + +#: editor/project_manager.cpp msgid "Last Modified" msgstr "ПоÑледнее изменение" diff --git a/editor/translations/si.po b/editor/translations/si.po index e7aabd5542..2e5a6f0f81 100644 --- a/editor/translations/si.po +++ b/editor/translations/si.po @@ -3007,6 +3007,22 @@ msgid "Open & Run a Script" msgstr "" #: editor/editor_node.cpp +msgid "" +"The following files are newer on disk.\n" +"What action should be taken?" +msgstr "" + +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp +msgid "Reload" +msgstr "" + +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp +msgid "Resave" +msgstr "" + +#: editor/editor_node.cpp msgid "New Inherited" msgstr "" @@ -6785,16 +6801,6 @@ msgid "" "What action should be taken?:" msgstr "" -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/shader_editor_plugin.cpp -msgid "Reload" -msgstr "" - -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/shader_editor_plugin.cpp -msgid "Resave" -msgstr "" - #: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp msgid "Debugger" msgstr "" @@ -9659,6 +9665,10 @@ msgid "Projects" msgstr "" #: editor/project_manager.cpp +msgid "Loading, please wait..." +msgstr "" + +#: editor/project_manager.cpp msgid "Last Modified" msgstr "" diff --git a/editor/translations/sk.po b/editor/translations/sk.po index c7839822c9..7a8b132fbd 100644 --- a/editor/translations/sk.po +++ b/editor/translations/sk.po @@ -3122,6 +3122,23 @@ msgid "Open & Run a Script" msgstr "OtvoriÅ¥ a vykonaÅ¥ skript" #: editor/editor_node.cpp +#, fuzzy +msgid "" +"The following files are newer on disk.\n" +"What action should be taken?" +msgstr "Nasledovné súbory sa nepodarilo extrahovaÅ¥ z balÃka:" + +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp +msgid "Reload" +msgstr "" + +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp +msgid "Resave" +msgstr "" + +#: editor/editor_node.cpp msgid "New Inherited" msgstr "Novo Zdedené" @@ -6984,16 +7001,6 @@ msgid "" "What action should be taken?:" msgstr "" -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/shader_editor_plugin.cpp -msgid "Reload" -msgstr "" - -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/shader_editor_plugin.cpp -msgid "Resave" -msgstr "" - #: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp msgid "Debugger" msgstr "" @@ -9963,6 +9970,11 @@ msgid "Projects" msgstr "Zakladatelia Projektu" #: editor/project_manager.cpp +#, fuzzy +msgid "Loading, please wait..." +msgstr "NaÄÃtavanie zrkadiel, prosÃm Äakajte..." + +#: editor/project_manager.cpp msgid "Last Modified" msgstr "" diff --git a/editor/translations/sl.po b/editor/translations/sl.po index ee152a25a3..bdee4655ab 100644 --- a/editor/translations/sl.po +++ b/editor/translations/sl.po @@ -3256,6 +3256,22 @@ msgid "Open & Run a Script" msgstr "Odpri & Zaženi Skripto" #: editor/editor_node.cpp +msgid "" +"The following files are newer on disk.\n" +"What action should be taken?" +msgstr "" + +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp +msgid "Reload" +msgstr "" + +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp +msgid "Resave" +msgstr "" + +#: editor/editor_node.cpp msgid "New Inherited" msgstr "Novo Podedovano" @@ -7281,16 +7297,6 @@ msgid "" "What action should be taken?:" msgstr "" -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/shader_editor_plugin.cpp -msgid "Reload" -msgstr "" - -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/shader_editor_plugin.cpp -msgid "Resave" -msgstr "" - #: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp msgid "Debugger" msgstr "RazhroÅ¡Äevalnik" @@ -10306,6 +10312,11 @@ msgid "Projects" msgstr "Projekt" #: editor/project_manager.cpp +#, fuzzy +msgid "Loading, please wait..." +msgstr "Pridobivanje virov, poÄakajte..." + +#: editor/project_manager.cpp msgid "Last Modified" msgstr "" diff --git a/editor/translations/sq.po b/editor/translations/sq.po index 90905673c2..73c3b1cb43 100644 --- a/editor/translations/sq.po +++ b/editor/translations/sq.po @@ -3191,6 +3191,22 @@ msgid "Open & Run a Script" msgstr "Hap & Fillo një Shkrim" #: editor/editor_node.cpp +msgid "" +"The following files are newer on disk.\n" +"What action should be taken?" +msgstr "" + +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp +msgid "Reload" +msgstr "" + +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp +msgid "Resave" +msgstr "" + +#: editor/editor_node.cpp msgid "New Inherited" msgstr "E Trashëguar e Re" @@ -7047,16 +7063,6 @@ msgid "" "What action should be taken?:" msgstr "" -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/shader_editor_plugin.cpp -msgid "Reload" -msgstr "" - -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/shader_editor_plugin.cpp -msgid "Resave" -msgstr "" - #: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp msgid "Debugger" msgstr "" @@ -9963,6 +9969,11 @@ msgid "Projects" msgstr "Projekti" #: editor/project_manager.cpp +#, fuzzy +msgid "Loading, please wait..." +msgstr "Duke marrë pasqyrat, ju lutem prisni..." + +#: editor/project_manager.cpp msgid "Last Modified" msgstr "" diff --git a/editor/translations/sr_Cyrl.po b/editor/translations/sr_Cyrl.po index eea195210a..e56d9fd650 100644 --- a/editor/translations/sr_Cyrl.po +++ b/editor/translations/sr_Cyrl.po @@ -3400,6 +3400,25 @@ msgid "Open & Run a Script" msgstr "Отвори и покрени Ñкриптицу" #: editor/editor_node.cpp +#, fuzzy +msgid "" +"The following files are newer on disk.\n" +"What action should be taken?" +msgstr "" +"Следеће датотеке Ñу нове на диÑку.\n" +"Која акција Ñе треба предузети?:" + +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp +msgid "Reload" +msgstr "ОÑвежи" + +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp +msgid "Resave" +msgstr "Поново Ñачувај" + +#: editor/editor_node.cpp msgid "New Inherited" msgstr "Ðова наÑлеђена" @@ -7674,16 +7693,6 @@ msgstr "" "Следеће датотеке Ñу нове на диÑку.\n" "Која акција Ñе треба предузети?:" -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/shader_editor_plugin.cpp -msgid "Reload" -msgstr "ОÑвежи" - -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/shader_editor_plugin.cpp -msgid "Resave" -msgstr "Поново Ñачувај" - #: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp msgid "Debugger" msgstr "Дебагер" @@ -11147,6 +11156,11 @@ msgstr "Пројекти" #: editor/project_manager.cpp #, fuzzy +msgid "Loading, please wait..." +msgstr "Прихватам одредишта, молим Ñачекајте..." + +#: editor/project_manager.cpp +#, fuzzy msgid "Last Modified" msgstr "Задњи Измењен" diff --git a/editor/translations/sr_Latn.po b/editor/translations/sr_Latn.po index 9a88a06a25..c177f0983b 100644 --- a/editor/translations/sr_Latn.po +++ b/editor/translations/sr_Latn.po @@ -3022,6 +3022,22 @@ msgid "Open & Run a Script" msgstr "" #: editor/editor_node.cpp +msgid "" +"The following files are newer on disk.\n" +"What action should be taken?" +msgstr "" + +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp +msgid "Reload" +msgstr "" + +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp +msgid "Resave" +msgstr "" + +#: editor/editor_node.cpp msgid "New Inherited" msgstr "" @@ -6822,16 +6838,6 @@ msgid "" "What action should be taken?:" msgstr "" -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/shader_editor_plugin.cpp -msgid "Reload" -msgstr "" - -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/shader_editor_plugin.cpp -msgid "Resave" -msgstr "" - #: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp msgid "Debugger" msgstr "" @@ -9737,6 +9743,10 @@ msgid "Projects" msgstr "" #: editor/project_manager.cpp +msgid "Loading, please wait..." +msgstr "" + +#: editor/project_manager.cpp msgid "Last Modified" msgstr "" diff --git a/editor/translations/sv.po b/editor/translations/sv.po index 9f812d7b8f..4e08c39b9d 100644 --- a/editor/translations/sv.po +++ b/editor/translations/sv.po @@ -3193,6 +3193,23 @@ msgid "Open & Run a Script" msgstr "Öppna & Kör ett Skript" #: editor/editor_node.cpp +#, fuzzy +msgid "" +"The following files are newer on disk.\n" +"What action should be taken?" +msgstr "Följande filer gick inte att packa upp frÃ¥n tillägget:" + +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp +msgid "Reload" +msgstr "Ladda om" + +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp +msgid "Resave" +msgstr "Spara om" + +#: editor/editor_node.cpp msgid "New Inherited" msgstr "" @@ -7166,16 +7183,6 @@ msgid "" "What action should be taken?:" msgstr "" -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/shader_editor_plugin.cpp -msgid "Reload" -msgstr "Ladda om" - -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/shader_editor_plugin.cpp -msgid "Resave" -msgstr "Spara om" - #: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp msgid "Debugger" msgstr "" @@ -10196,6 +10203,11 @@ msgid "Projects" msgstr "Projekt" #: editor/project_manager.cpp +#, fuzzy +msgid "Loading, please wait..." +msgstr "Laddar..." + +#: editor/project_manager.cpp msgid "Last Modified" msgstr "Senast Ändrad" diff --git a/editor/translations/ta.po b/editor/translations/ta.po index b933fe6052..407ab40dc8 100644 --- a/editor/translations/ta.po +++ b/editor/translations/ta.po @@ -3012,6 +3012,22 @@ msgid "Open & Run a Script" msgstr "" #: editor/editor_node.cpp +msgid "" +"The following files are newer on disk.\n" +"What action should be taken?" +msgstr "" + +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp +msgid "Reload" +msgstr "" + +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp +msgid "Resave" +msgstr "" + +#: editor/editor_node.cpp msgid "New Inherited" msgstr "" @@ -6789,16 +6805,6 @@ msgid "" "What action should be taken?:" msgstr "" -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/shader_editor_plugin.cpp -msgid "Reload" -msgstr "" - -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/shader_editor_plugin.cpp -msgid "Resave" -msgstr "" - #: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp msgid "Debugger" msgstr "" @@ -9658,6 +9664,10 @@ msgid "Projects" msgstr "" #: editor/project_manager.cpp +msgid "Loading, please wait..." +msgstr "" + +#: editor/project_manager.cpp msgid "Last Modified" msgstr "" diff --git a/editor/translations/te.po b/editor/translations/te.po index e0ec4b5534..eff6151683 100644 --- a/editor/translations/te.po +++ b/editor/translations/te.po @@ -2983,6 +2983,22 @@ msgid "Open & Run a Script" msgstr "" #: editor/editor_node.cpp +msgid "" +"The following files are newer on disk.\n" +"What action should be taken?" +msgstr "" + +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp +msgid "Reload" +msgstr "" + +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp +msgid "Resave" +msgstr "" + +#: editor/editor_node.cpp msgid "New Inherited" msgstr "" @@ -6735,16 +6751,6 @@ msgid "" "What action should be taken?:" msgstr "" -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/shader_editor_plugin.cpp -msgid "Reload" -msgstr "" - -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/shader_editor_plugin.cpp -msgid "Resave" -msgstr "" - #: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp msgid "Debugger" msgstr "" @@ -9584,6 +9590,10 @@ msgid "Projects" msgstr "" #: editor/project_manager.cpp +msgid "Loading, please wait..." +msgstr "" + +#: editor/project_manager.cpp msgid "Last Modified" msgstr "" diff --git a/editor/translations/th.po b/editor/translations/th.po index 8e083aef79..090e7388a2 100644 --- a/editor/translations/th.po +++ b/editor/translations/th.po @@ -7,13 +7,13 @@ # Thanachart Monpassorn <nunf_2539@hotmail.com>, 2020. # Anonymous <noreply@weblate.org>, 2020. # Lon3r <mptube.p@gmail.com>, 2020. -# Kongfa Warorot <gongpha@hotmail.com>, 2020. +# Kongfa Warorot <gongpha@hotmail.com>, 2020, 2021. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2020-12-31 07:09+0000\n" -"Last-Translator: Thanachart Monpassorn <nunf_2539@hotmail.com>\n" +"PO-Revision-Date: 2021-02-15 10:51+0000\n" +"Last-Translator: Kongfa Warorot <gongpha@hotmail.com>\n" "Language-Team: Thai <https://hosted.weblate.org/projects/godot-engine/godot/" "th/>\n" "Language: th\n" @@ -21,7 +21,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Weblate 4.4.1-dev\n" +"X-Generator: Weblate 4.5-dev\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -2347,7 +2347,7 @@ msgstr "ยังไม่ได้เลืà¸à¸à¸‰à¸²à¸à¸—ี่จะเล #: editor/editor_node.cpp msgid "Save scene before running..." -msgstr "" +msgstr "บันทึà¸à¸‰à¸²à¸à¸à¹ˆà¸à¸™à¸—ี่จะทำงาน..." #: editor/editor_node.cpp msgid "Could not start subprocess!" @@ -3076,6 +3076,25 @@ msgid "Open & Run a Script" msgstr "เปิดà¹à¸¥à¸°à¸£à¸±à¸™à¸ªà¸„ริปต์" #: editor/editor_node.cpp +#, fuzzy +msgid "" +"The following files are newer on disk.\n" +"What action should be taken?" +msgstr "" +"ไฟล์ต่à¸à¹„ปนี้ในดิสà¸à¹Œà¹ƒà¸«à¸¡à¹ˆà¸à¸§à¹ˆà¸²\n" +"จะทำà¸à¸¢à¹ˆà¸²à¸‡à¹„รต่à¸à¹„ป?:" + +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp +msgid "Reload" +msgstr "โหลดใหม่" + +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp +msgid "Resave" +msgstr "บันทึà¸à¸à¸µà¸à¸„รั้ง" + +#: editor/editor_node.cpp msgid "New Inherited" msgstr "สืบทà¸à¸”" @@ -6887,16 +6906,6 @@ msgstr "" "ไฟล์ต่à¸à¹„ปนี้ในดิสà¸à¹Œà¹ƒà¸«à¸¡à¹ˆà¸à¸§à¹ˆà¸²\n" "จะทำà¸à¸¢à¹ˆà¸²à¸‡à¹„รต่à¸à¹„ป?:" -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/shader_editor_plugin.cpp -msgid "Reload" -msgstr "โหลดใหม่" - -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/shader_editor_plugin.cpp -msgid "Resave" -msgstr "บันทึà¸à¸à¸µà¸à¸„รั้ง" - #: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp msgid "Debugger" msgstr "ตัวดีบัà¸" @@ -9851,6 +9860,11 @@ msgid "Projects" msgstr "โปรเจà¸à¸•์" #: editor/project_manager.cpp +#, fuzzy +msgid "Loading, please wait..." +msgstr "à¸à¸³à¸¥à¸±à¸‡à¹€à¸£à¸µà¸¢à¸à¸‚้à¸à¸¡à¸¹à¸¥ โปรดรà¸..." + +#: editor/project_manager.cpp msgid "Last Modified" msgstr "à¹à¸à¹‰à¹„ขล่าสุด" diff --git a/editor/translations/tr.po b/editor/translations/tr.po index 71379593fd..624f32aa42 100644 --- a/editor/translations/tr.po +++ b/editor/translations/tr.po @@ -46,7 +46,7 @@ # Kaan Genç <kaan@kaangenc.me>, 2020. # Anonymous <noreply@weblate.org>, 2020. # GüneÅŸ Gümüş <gunes.gumus.001@gmail.com>, 2020. -# OÄŸuz Ersen <oguzersen@protonmail.com>, 2020. +# OÄŸuz Ersen <oguzersen@protonmail.com>, 2020, 2021. # Vedat Günel <gunel15@itu.edu.tr>, 2020. # Ahmet Elgün <ahmetelgn@gmail.com>, 2020. # Efruz Yıldırır <efruzyildirir@gmail.com>, 2020. @@ -60,8 +60,8 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2021-01-22 10:21+0000\n" -"Last-Translator: ÇaÄŸlar KOPARIR <ckoparir@gmail.com>\n" +"PO-Revision-Date: 2021-02-05 23:44+0000\n" +"Last-Translator: OÄŸuz Ersen <oguzersen@protonmail.com>\n" "Language-Team: Turkish <https://hosted.weblate.org/projects/godot-engine/" "godot/tr/>\n" "Language: tr\n" @@ -3182,6 +3182,25 @@ msgid "Open & Run a Script" msgstr "Aç & Bir Betik Çalıştır" #: editor/editor_node.cpp +#, fuzzy +msgid "" +"The following files are newer on disk.\n" +"What action should be taken?" +msgstr "" +"AÅŸağıdaki dosyalar diskte daha yeni.\n" +"Hangi eylem yapılsın?:" + +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp +msgid "Reload" +msgstr "Yeniden Yükle" + +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp +msgid "Resave" +msgstr "Yeniden Kaydet" + +#: editor/editor_node.cpp msgid "New Inherited" msgstr "Yeni Örnekleme" @@ -3953,15 +3972,15 @@ msgstr "Aranıyor..." #: editor/find_in_files.cpp msgid "%d match in %d file." -msgstr "%d dosyada %d eÅŸleÅŸme." +msgstr "%d eÅŸleÅŸme %d dosyada." #: editor/find_in_files.cpp msgid "%d matches in %d file." -msgstr "%d dosyada %d eÅŸleÅŸme." +msgstr "%d eÅŸleÅŸme %d dosyada." #: editor/find_in_files.cpp msgid "%d matches in %d files." -msgstr "%d dosyada %d eÅŸleÅŸme." +msgstr "%d eÅŸleÅŸme %d dosyada." #: editor/groups_editor.cpp msgid "Add to Group" @@ -7043,16 +7062,6 @@ msgstr "" "AÅŸağıdaki dosyalar diskte daha yeni.\n" "Hangi eylem yapılsın?:" -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/shader_editor_plugin.cpp -msgid "Reload" -msgstr "Yeniden Yükle" - -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/shader_editor_plugin.cpp -msgid "Resave" -msgstr "Yeniden Kaydet" - #: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp msgid "Debugger" msgstr "Hata Ayıklayıcı" @@ -7371,9 +7380,8 @@ msgid "Yaw" msgstr "Yalpala" #: editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "Size" -msgstr "Boyut: " +msgstr "Boyut" #: editor/plugins/spatial_editor_plugin.cpp msgid "Objects Drawn" @@ -10056,6 +10064,11 @@ msgid "Projects" msgstr "Projeler" #: editor/project_manager.cpp +#, fuzzy +msgid "Loading, please wait..." +msgstr "Aynalar alınıyor, lütfen bekleyin..." + +#: editor/project_manager.cpp msgid "Last Modified" msgstr "Son DeÄŸiÅŸiklik" @@ -13029,7 +13042,7 @@ msgstr "Geçerli bir uzantı kullanılmalı." #: scene/gui/graph_edit.cpp msgid "Enable grid minimap." -msgstr "Izgara mini haritasını etkinleÅŸtir." +msgstr "Izgara haritasını etkinleÅŸtir." #: scene/gui/popup.cpp msgid "" diff --git a/editor/translations/tzm.po b/editor/translations/tzm.po index ef86476e21..bbd4822fbd 100644 --- a/editor/translations/tzm.po +++ b/editor/translations/tzm.po @@ -2981,6 +2981,22 @@ msgid "Open & Run a Script" msgstr "" #: editor/editor_node.cpp +msgid "" +"The following files are newer on disk.\n" +"What action should be taken?" +msgstr "" + +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp +msgid "Reload" +msgstr "" + +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp +msgid "Resave" +msgstr "" + +#: editor/editor_node.cpp msgid "New Inherited" msgstr "" @@ -6733,16 +6749,6 @@ msgid "" "What action should be taken?:" msgstr "" -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/shader_editor_plugin.cpp -msgid "Reload" -msgstr "" - -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/shader_editor_plugin.cpp -msgid "Resave" -msgstr "" - #: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp msgid "Debugger" msgstr "" @@ -9581,6 +9587,10 @@ msgid "Projects" msgstr "" #: editor/project_manager.cpp +msgid "Loading, please wait..." +msgstr "" + +#: editor/project_manager.cpp msgid "Last Modified" msgstr "" diff --git a/editor/translations/uk.po b/editor/translations/uk.po index 31aa7794a7..6b94e70e43 100644 --- a/editor/translations/uk.po +++ b/editor/translations/uk.po @@ -20,7 +20,7 @@ msgid "" msgstr "" "Project-Id-Version: Ukrainian (Godot Engine)\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2021-01-16 01:29+0000\n" +"PO-Revision-Date: 2021-02-05 23:44+0000\n" "Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n" "Language-Team: Ukrainian <https://hosted.weblate.org/projects/godot-engine/" "godot/uk/>\n" @@ -3157,6 +3157,25 @@ msgid "Open & Run a Script" msgstr "Відкрити Ñ– запуÑтити Ñкрипт" #: editor/editor_node.cpp +#, fuzzy +msgid "" +"The following files are newer on disk.\n" +"What action should be taken?" +msgstr "" +"Такі файли на диÑку новіші.\n" +"Що робити?:" + +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp +msgid "Reload" +msgstr "Перезавантажити" + +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp +msgid "Resave" +msgstr "ПерезапиÑати" + +#: editor/editor_node.cpp msgid "New Inherited" msgstr "Ðовий уÑпадкований" @@ -7030,16 +7049,6 @@ msgstr "" "Такі файли на диÑку новіші.\n" "Що робити?:" -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/shader_editor_plugin.cpp -msgid "Reload" -msgstr "Перезавантажити" - -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/shader_editor_plugin.cpp -msgid "Resave" -msgstr "ПерезапиÑати" - #: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp msgid "Debugger" msgstr "Зневаджувач" @@ -7360,9 +7369,8 @@ msgid "Yaw" msgstr "ВідхиленнÑ" #: editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "Size" -msgstr "Розмір: " +msgstr "Розмір" #: editor/plugins/spatial_editor_plugin.cpp msgid "Objects Drawn" @@ -10056,6 +10064,11 @@ msgid "Projects" msgstr "Проєкти" #: editor/project_manager.cpp +#, fuzzy +msgid "Loading, please wait..." +msgstr "ÐžÑ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ð´Ð·ÐµÑ€ÐºÐ°Ð», будь лаÑка, зачекайте..." + +#: editor/project_manager.cpp msgid "Last Modified" msgstr "ВоÑтаннє змінено" diff --git a/editor/translations/ur_PK.po b/editor/translations/ur_PK.po index bf95b4c01f..14ece3e011 100644 --- a/editor/translations/ur_PK.po +++ b/editor/translations/ur_PK.po @@ -3037,6 +3037,22 @@ msgid "Open & Run a Script" msgstr "" #: editor/editor_node.cpp +msgid "" +"The following files are newer on disk.\n" +"What action should be taken?" +msgstr "" + +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp +msgid "Reload" +msgstr "" + +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp +msgid "Resave" +msgstr "" + +#: editor/editor_node.cpp #, fuzzy msgid "New Inherited" msgstr "سب سکریپشن بنائیں" @@ -6886,16 +6902,6 @@ msgid "" "What action should be taken?:" msgstr "" -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/shader_editor_plugin.cpp -msgid "Reload" -msgstr "" - -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/shader_editor_plugin.cpp -msgid "Resave" -msgstr "" - #: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp msgid "Debugger" msgstr "" @@ -9826,6 +9832,10 @@ msgid "Projects" msgstr ".تمام کا انتخاب" #: editor/project_manager.cpp +msgid "Loading, please wait..." +msgstr "" + +#: editor/project_manager.cpp msgid "Last Modified" msgstr "" diff --git a/editor/translations/vi.po b/editor/translations/vi.po index c08fca86dd..c88429c3d4 100644 --- a/editor/translations/vi.po +++ b/editor/translations/vi.po @@ -3140,6 +3140,22 @@ msgid "Open & Run a Script" msgstr "Mở & Chạy mã lệnh" #: editor/editor_node.cpp +msgid "" +"The following files are newer on disk.\n" +"What action should be taken?" +msgstr "" + +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp +msgid "Reload" +msgstr "" + +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp +msgid "Resave" +msgstr "" + +#: editor/editor_node.cpp msgid "New Inherited" msgstr "Kế thừa má»›i" @@ -7025,16 +7041,6 @@ msgid "" "What action should be taken?:" msgstr "" -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/shader_editor_plugin.cpp -msgid "Reload" -msgstr "" - -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/shader_editor_plugin.cpp -msgid "Resave" -msgstr "" - #: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp msgid "Debugger" msgstr "" @@ -10031,6 +10037,13 @@ msgid "Projects" msgstr "Dá»± án" #: editor/project_manager.cpp +#, fuzzy +msgid "Loading, please wait..." +msgstr "" +"Äang quét các tệp tin,\n" +"Chá» má»™t chút ..." + +#: editor/project_manager.cpp msgid "Last Modified" msgstr "" diff --git a/editor/translations/zh_CN.po b/editor/translations/zh_CN.po index 938981d022..20e4c929ac 100644 --- a/editor/translations/zh_CN.po +++ b/editor/translations/zh_CN.po @@ -71,7 +71,7 @@ # MintSoda <lionlxh@qq.com>, 2020. # Gardner Belgrade <hapenia@sina.com>, 2020. # godhidden <z2zz2zz@yahoo.com>, 2020. -# BinotaLIU <me@binota.org>, 2020. +# BinotaLIU <me@binota.org>, 2020, 2021. # TakWolf <takwolf@foxmail.com>, 2020. # twoBornottwoB <305766341@qq.com>, 2021. # Magian <magian1127@gmail.com>, 2021. @@ -79,8 +79,8 @@ msgid "" msgstr "" "Project-Id-Version: Chinese (Simplified) (Godot Engine)\n" "POT-Creation-Date: 2018-01-20 12:15+0200\n" -"PO-Revision-Date: 2021-01-27 23:21+0000\n" -"Last-Translator: Haoyu Qiu <timothyqiu32@gmail.com>\n" +"PO-Revision-Date: 2021-02-07 05:50+0000\n" +"Last-Translator: BinotaLIU <me@binota.org>\n" "Language-Team: Chinese (Simplified) <https://hosted.weblate.org/projects/" "godot-engine/godot/zh_Hans/>\n" "Language: zh_CN\n" @@ -3134,6 +3134,25 @@ msgid "Open & Run a Script" msgstr "打开并è¿è¡Œè„šæœ¬" #: editor/editor_node.cpp +#, fuzzy +msgid "" +"The following files are newer on disk.\n" +"What action should be taken?" +msgstr "" +"ç£ç›˜ä¸çš„下列文件已更新。\n" +"请选择执行哪项æ“作?:" + +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp +msgid "Reload" +msgstr "釿–°åŠ è½½" + +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp +msgid "Resave" +msgstr "釿–°ä¿å˜" + +#: editor/editor_node.cpp msgid "New Inherited" msgstr "新建继承" @@ -6939,16 +6958,6 @@ msgstr "" "ç£ç›˜ä¸çš„下列文件已更新。\n" "请选择执行哪项æ“作?:" -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/shader_editor_plugin.cpp -msgid "Reload" -msgstr "釿–°åŠ è½½" - -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/shader_editor_plugin.cpp -msgid "Resave" -msgstr "釿–°ä¿å˜" - #: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp msgid "Debugger" msgstr "调试器" @@ -7265,9 +7274,8 @@ msgid "Yaw" msgstr "å航角" #: editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "Size" -msgstr "大å°ï¼š " +msgstr "大å°" #: editor/plugins/spatial_editor_plugin.cpp msgid "Objects Drawn" @@ -9895,6 +9903,11 @@ msgid "Projects" msgstr "项目" #: editor/project_manager.cpp +#, fuzzy +msgid "Loading, please wait..." +msgstr "检索镜åƒï¼Œè¯·ç‰å¾…..." + +#: editor/project_manager.cpp msgid "Last Modified" msgstr "修改时间" diff --git a/editor/translations/zh_HK.po b/editor/translations/zh_HK.po index 70487c165e..c3fbf65005 100644 --- a/editor/translations/zh_HK.po +++ b/editor/translations/zh_HK.po @@ -3199,6 +3199,22 @@ msgid "Open & Run a Script" msgstr "" #: editor/editor_node.cpp +msgid "" +"The following files are newer on disk.\n" +"What action should be taken?" +msgstr "" + +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp +msgid "Reload" +msgstr "" + +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp +msgid "Resave" +msgstr "" + +#: editor/editor_node.cpp #, fuzzy msgid "New Inherited" msgstr "下一個腳本" @@ -7218,16 +7234,6 @@ msgid "" "What action should be taken?:" msgstr "" -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/shader_editor_plugin.cpp -msgid "Reload" -msgstr "" - -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/shader_editor_plugin.cpp -msgid "Resave" -msgstr "" - #: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp msgid "Debugger" msgstr "" @@ -10255,6 +10261,11 @@ msgid "Projects" msgstr "專案" #: editor/project_manager.cpp +#, fuzzy +msgid "Loading, please wait..." +msgstr "接收 mirrorsä¸, è«‹ç¨ä¾¯..." + +#: editor/project_manager.cpp msgid "Last Modified" msgstr "" diff --git a/editor/translations/zh_TW.po b/editor/translations/zh_TW.po index 1dbca29941..c6241b6ffe 100644 --- a/editor/translations/zh_TW.po +++ b/editor/translations/zh_TW.po @@ -29,7 +29,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2021-01-27 23:21+0000\n" +"PO-Revision-Date: 2021-02-07 05:50+0000\n" "Last-Translator: BinotaLIU <me@binota.org>\n" "Language-Team: Chinese (Traditional) <https://hosted.weblate.org/projects/" "godot-engine/godot/zh_Hant/>\n" @@ -3086,6 +3086,25 @@ msgid "Open & Run a Script" msgstr "開啟並執行腳本" #: editor/editor_node.cpp +#, fuzzy +msgid "" +"The following files are newer on disk.\n" +"What action should be taken?" +msgstr "" +"ç£ç¢Ÿä¸çš„下列檔案已更新。\n" +"è«‹é¸æ“‡æ–¼åŸ·è¡Œä¹‹æ“作:" + +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp +msgid "Reload" +msgstr "釿–°è¼‰å…¥" + +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp +msgid "Resave" +msgstr "釿–°ä¿å˜" + +#: editor/editor_node.cpp msgid "New Inherited" msgstr "新增繼承" @@ -6892,16 +6911,6 @@ msgstr "" "ç£ç¢Ÿä¸çš„下列檔案已更新。\n" "è«‹é¸æ“‡æ–¼åŸ·è¡Œä¹‹æ“作:" -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/shader_editor_plugin.cpp -msgid "Reload" -msgstr "釿–°è¼‰å…¥" - -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/shader_editor_plugin.cpp -msgid "Resave" -msgstr "釿–°ä¿å˜" - #: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp msgid "Debugger" msgstr "除錯工具" @@ -7218,9 +7227,8 @@ msgid "Yaw" msgstr "å航" #: editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "Size" -msgstr "大å°ï¼š " +msgstr "大å°" #: editor/plugins/spatial_editor_plugin.cpp msgid "Objects Drawn" @@ -9849,6 +9857,11 @@ msgid "Projects" msgstr "專案" #: editor/project_manager.cpp +#, fuzzy +msgid "Loading, please wait..." +msgstr "æ£åœ¨å–å¾—é¡åƒï¼Œè«‹ç¨å¾Œ..." + +#: editor/project_manager.cpp msgid "Last Modified" msgstr "最後修改時間" diff --git a/main/main.cpp b/main/main.cpp index 9489774dce..41f97b2e3b 100644 --- a/main/main.cpp +++ b/main/main.cpp @@ -123,7 +123,9 @@ static bool _start_success = false; // Drivers +String tablet_driver = ""; String text_driver = ""; + static int text_driver_idx = -1; static int display_driver_idx = -1; static int audio_driver_idx = -1; @@ -329,13 +331,7 @@ void Main::print_help(const char *p_binary) { OS::get_singleton()->print(" --enable-vsync-via-compositor When vsync is enabled, vsync via the OS' window compositor (Windows only).\n"); OS::get_singleton()->print(" --disable-vsync-via-compositor Disable vsync via the OS' window compositor (Windows only).\n"); OS::get_singleton()->print(" --single-window Use a single window (no separate subwindows).\n"); - OS::get_singleton()->print(" --tablet-driver Tablet input driver ("); - for (int i = 0; i < OS::get_singleton()->get_tablet_driver_count(); i++) { - if (i != 0) - OS::get_singleton()->print(", "); - OS::get_singleton()->print("'%s'", OS::get_singleton()->get_tablet_driver_name(i).utf8().get_data()); - } - OS::get_singleton()->print(") (Windows only).\n"); + OS::get_singleton()->print(" --tablet-driver Pen tablet input driver.\n"); OS::get_singleton()->print("\n"); #endif @@ -515,8 +511,8 @@ Error Main::setup(const char *execpath, int argc, char *argv[], bool p_second_ph MAIN_PRINT("Main: Initialize Globals"); - globals = memnew(ProjectSettings); input_map = memnew(InputMap); + globals = memnew(ProjectSettings); register_core_settings(); //here globals is present @@ -556,7 +552,6 @@ Error Main::setup(const char *execpath, int argc, char *argv[], bool p_second_ph String display_driver = ""; String audio_driver = ""; - String tablet_driver = ""; String project_path = "."; bool upwards = false; String debug_uri = ""; @@ -725,19 +720,6 @@ Error Main::setup(const char *execpath, int argc, char *argv[], bool p_second_ph } else if (I->get() == "--tablet-driver") { if (I->next()) { tablet_driver = I->next()->get(); - bool found = false; - for (int i = 0; i < OS::get_singleton()->get_tablet_driver_count(); i++) { - if (tablet_driver == OS::get_singleton()->get_tablet_driver_name(i)) { - found = true; - } - } - - if (!found) { - OS::get_singleton()->print("Unknown tablet driver '%s', aborting.\n", - tablet_driver.utf8().get_data()); - goto error; - } - N = I->next()->next(); } else { OS::get_singleton()->print("Missing tablet driver argument, aborting.\n"); @@ -1125,29 +1107,29 @@ Error Main::setup(const char *execpath, int argc, char *argv[], bool p_second_ph } #endif - GLOBAL_DEF("logging/file_logging/enable_file_logging", false); + GLOBAL_DEF("debug/file_logging/enable_file_logging", false); // Only file logging by default on desktop platforms as logs can't be // accessed easily on mobile/Web platforms (if at all). // This also prevents logs from being created for the editor instance, as feature tags // are disabled while in the editor (even if they should logically apply). - GLOBAL_DEF("logging/file_logging/enable_file_logging.pc", true); - GLOBAL_DEF("logging/file_logging/log_path", "user://logs/godot.log"); - GLOBAL_DEF("logging/file_logging/max_log_files", 5); - ProjectSettings::get_singleton()->set_custom_property_info("logging/file_logging/max_log_files", + GLOBAL_DEF("debug/file_logging/enable_file_logging.pc", true); + GLOBAL_DEF("debug/file_logging/log_path", "user://logs/godot.log"); + GLOBAL_DEF("debug/file_logging/max_log_files", 5); + ProjectSettings::get_singleton()->set_custom_property_info("debug/file_logging/max_log_files", PropertyInfo(Variant::INT, - "logging/file_logging/max_log_files", + "debug/file_logging/max_log_files", PROPERTY_HINT_RANGE, "0,20,1,or_greater")); //no negative numbers if (!project_manager && !editor && FileAccess::get_create_func(FileAccess::ACCESS_USERDATA) && - GLOBAL_GET("logging/file_logging/enable_file_logging")) { + GLOBAL_GET("debug/file_logging/enable_file_logging")) { // Don't create logs for the project manager as they would be written to // the current working directory, which is inconvenient. - String base_path = GLOBAL_GET("logging/file_logging/log_path"); - int max_files = GLOBAL_GET("logging/file_logging/max_log_files"); + String base_path = GLOBAL_GET("debug/file_logging/log_path"); + int max_files = GLOBAL_GET("debug/file_logging/max_log_files"); OS::get_singleton()->add_logger(memnew(RotatedFileLogger(base_path, max_files))); } - if (main_args.size() == 0 && String(GLOBAL_DEF("application/run/main_scene", "")) == "") { + if (main_args.size() == 0 && String(GLOBAL_GET("application/run/main_scene")) == "") { #ifdef TOOLS_ENABLED if (!editor && !project_manager) { #endif @@ -1179,28 +1161,28 @@ Error Main::setup(const char *execpath, int argc, char *argv[], bool p_second_ph OS::get_singleton()->set_cmdline(execpath, main_args); - GLOBAL_DEF("rendering/quality/driver/driver_name", "Vulkan"); - ProjectSettings::get_singleton()->set_custom_property_info("rendering/quality/driver/driver_name", + GLOBAL_DEF("rendering/driver/driver_name", "Vulkan"); + ProjectSettings::get_singleton()->set_custom_property_info("rendering/driver/driver_name", PropertyInfo(Variant::STRING, - "rendering/quality/driver/driver_name", + "rendering/driver/driver_name", PROPERTY_HINT_ENUM, "Vulkan")); if (display_driver == "") { - display_driver = GLOBAL_GET("rendering/quality/driver/driver_name"); + display_driver = GLOBAL_GET("rendering/driver/driver_name"); } - GLOBAL_DEF("display/window/size/width", 1024); + GLOBAL_DEF_BASIC("display/window/size/width", 1024); ProjectSettings::get_singleton()->set_custom_property_info("display/window/size/width", PropertyInfo(Variant::INT, "display/window/size/width", PROPERTY_HINT_RANGE, "0,7680,or_greater")); // 8K resolution - GLOBAL_DEF("display/window/size/height", 600); + GLOBAL_DEF_BASIC("display/window/size/height", 600); ProjectSettings::get_singleton()->set_custom_property_info("display/window/size/height", PropertyInfo(Variant::INT, "display/window/size/height", PROPERTY_HINT_RANGE, "0,4320,or_greater")); // 8K resolution - GLOBAL_DEF("display/window/size/resizable", true); - GLOBAL_DEF("display/window/size/borderless", false); - GLOBAL_DEF("display/window/size/fullscreen", false); + GLOBAL_DEF_BASIC("display/window/size/resizable", true); + GLOBAL_DEF_BASIC("display/window/size/borderless", false); + GLOBAL_DEF_BASIC("display/window/size/fullscreen", false); GLOBAL_DEF("display/window/size/always_on_top", false); GLOBAL_DEF("display/window/size/test_width", 0); ProjectSettings::get_singleton()->set_custom_property_info("display/window/size/test_width", @@ -1248,7 +1230,7 @@ Error Main::setup(const char *execpath, int argc, char *argv[], bool p_second_ph } } - GLOBAL_DEF("display/window/force_right_to_left_layout_direction", false); + GLOBAL_DEF("internationalization/rendering/force_right_to_left_layout_direction", false); if (!force_lowdpi) { OS::get_singleton()->_allow_hidpi = GLOBAL_DEF("display/window/dpi/allow_hidpi", false); @@ -1267,28 +1249,10 @@ Error Main::setup(const char *execpath, int argc, char *argv[], bool p_second_ph OS::get_singleton()->_vsync_via_compositor = window_vsync_via_compositor; - if (tablet_driver == "") { // specified in project.godot - tablet_driver = GLOBAL_DEF_RST_NOVAL("display/window/tablet_driver", OS::get_singleton()->get_tablet_driver_name(0)); - } - - for (int i = 0; i < OS::get_singleton()->get_tablet_driver_count(); i++) { - if (tablet_driver == OS::get_singleton()->get_tablet_driver_name(i)) { - OS::get_singleton()->set_current_tablet_driver(OS::get_singleton()->get_tablet_driver_name(i)); - break; - } - } - - if (tablet_driver == "") { - OS::get_singleton()->set_current_tablet_driver(OS::get_singleton()->get_tablet_driver_name(0)); - } - /* todo restore OS::get_singleton()->_allow_layered = GLOBAL_DEF("display/window/per_pixel_transparency/allowed", false); video_mode.layered = GLOBAL_DEF("display/window/per_pixel_transparency/enabled", false); */ - GLOBAL_DEF("rendering/quality/intended_usage/framebuffer_allocation", 2); - GLOBAL_DEF("rendering/quality/intended_usage/framebuffer_allocation.mobile", 3); - if (editor || project_manager) { // The editor and project manager always detect and use hiDPI if needed OS::get_singleton()->_allow_hidpi = true; @@ -1297,7 +1261,7 @@ Error Main::setup(const char *execpath, int argc, char *argv[], bool p_second_ph OS::get_singleton()->_keep_screen_on = GLOBAL_DEF("display/window/energy_saving/keep_screen_on", true); if (rtm == -1) { - rtm = GLOBAL_DEF("rendering/threads/thread_model", OS::RENDER_THREAD_SAFE); + rtm = GLOBAL_DEF("rendering/driver/threads/thread_model", OS::RENDER_THREAD_SAFE); } if (rtm >= 0 && rtm < 3) { @@ -1325,7 +1289,7 @@ Error Main::setup(const char *execpath, int argc, char *argv[], bool p_second_ph } if (audio_driver == "") { // specified in project.godot - audio_driver = GLOBAL_DEF_RST_NOVAL("audio/driver", AudioDriverManager::get_driver(0)->get_name()); + audio_driver = GLOBAL_DEF_RST_NOVAL("audio/driver/driver", AudioDriverManager::get_driver(0)->get_name()); } for (int i = 0; i < AudioDriverManager::get_driver_count(); i++) { @@ -1359,7 +1323,7 @@ Error Main::setup(const char *execpath, int argc, char *argv[], bool p_second_ph } } - Engine::get_singleton()->set_iterations_per_second(GLOBAL_DEF("physics/common/physics_fps", 60)); + Engine::get_singleton()->set_iterations_per_second(GLOBAL_DEF_BASIC("physics/common/physics_fps", 60)); ProjectSettings::get_singleton()->set_custom_property_info("physics/common/physics_fps", PropertyInfo(Variant::INT, "physics/common/physics_fps", PROPERTY_HINT_RANGE, "1,120,1,or_greater")); @@ -1476,9 +1440,8 @@ Error Main::setup2(Thread::ID p_main_tid_override) { /* Determine text driver */ - GLOBAL_DEF("display/window/text_name", ""); if (text_driver == "") { - text_driver = GLOBAL_GET("display/window/text_name"); + text_driver = GLOBAL_GET("internationalization/rendering/text_driver"); } if (text_driver != "") { @@ -1507,7 +1470,7 @@ Error Main::setup2(Thread::ID p_main_tid_override) { } } } - printf("Using %s text server...\n", TextServerManager::get_interface_name(text_driver_idx).utf8().get_data()); + print_verbose("Using \"" + TextServerManager::get_interface_name(text_driver_idx) + "\" text server..."); /* Initialize Text Server */ @@ -1567,6 +1530,34 @@ Error Main::setup2(Thread::ID p_main_tid_override) { display_server->screen_set_orientation(window_orientation); } + /* Initialize Pen Table Driver */ + + { + GLOBAL_DEF_RST_NOVAL("input_devices/pen_tablet/driver", ""); + GLOBAL_DEF_RST_NOVAL("input_devices/pen_tablet/driver.windows", ""); + ProjectSettings::get_singleton()->set_custom_property_info("input_devices/pen_tablet/driver.windows", PropertyInfo(Variant::STRING, "input_devices/pen_tablet/driver.windows", PROPERTY_HINT_ENUM, "wintab,winink")); + } + + if (tablet_driver == "") { // specified in project.godot + tablet_driver = GLOBAL_GET("input_devices/pen_tablet/driver"); + if (tablet_driver == "") { + tablet_driver = DisplayServer::get_singleton()->tablet_get_driver_name(0); + } + } + + for (int i = 0; i < DisplayServer::get_singleton()->tablet_get_driver_count(); i++) { + if (tablet_driver == DisplayServer::get_singleton()->tablet_get_driver_name(i)) { + DisplayServer::get_singleton()->tablet_set_current_driver(DisplayServer::get_singleton()->tablet_get_driver_name(i)); + break; + } + } + + if (DisplayServer::get_singleton()->tablet_get_current_driver() == "") { + DisplayServer::get_singleton()->tablet_set_current_driver(DisplayServer::get_singleton()->tablet_get_driver_name(0)); + } + + print_verbose("Using \"" + tablet_driver + "\" pen tablet driver..."); + /* Initialize Visual Server */ rendering_server = memnew(RenderingServerDefault(OS::get_singleton()->get_render_thread_mode() == OS::RENDER_SEPARATE_THREAD)); @@ -1602,7 +1593,7 @@ Error Main::setup2(Thread::ID p_main_tid_override) { MAIN_PRINT("Main: Setup Logo"); -#ifdef JAVASCRIPT_ENABLED +#if defined(JAVASCRIPT_ENABLED) || defined(ANDROID_ENABLED) bool show_logo = false; #else bool show_logo = true; @@ -1630,7 +1621,7 @@ Error Main::setup2(Thread::ID p_main_tid_override) { MAIN_PRINT("Main: Load Boot Image"); - Color clear = GLOBAL_DEF("rendering/environment/default_clear_color", Color(0.3, 0.3, 0.3)); + Color clear = GLOBAL_DEF("rendering/environment/defaults/default_clear_color", Color(0.3, 0.3, 0.3)); RenderingServer::get_singleton()->set_default_clear_color(clear); if (show_logo) { //boot logo! @@ -1683,7 +1674,7 @@ Error Main::setup2(Thread::ID p_main_tid_override) { MAIN_PRINT("Main: DCC"); RenderingServer::get_singleton()->set_default_clear_color( - GLOBAL_DEF("rendering/environment/default_clear_color", Color(0.3, 0.3, 0.3))); + GLOBAL_DEF("rendering/environment/defaults/default_clear_color", Color(0.3, 0.3, 0.3))); GLOBAL_DEF("application/config/icon", String()); ProjectSettings::get_singleton()->set_custom_property_info("application/config/icon", @@ -1970,8 +1961,8 @@ bool Main::start() { #endif - if (script == "" && game_path == "" && String(GLOBAL_DEF("application/run/main_scene", "")) != "") { - game_path = GLOBAL_DEF("application/run/main_scene", ""); + if (script == "" && game_path == "" && String(GLOBAL_GET("application/run/main_scene")) != "") { + game_path = GLOBAL_GET("application/run/main_scene"); } MainLoop *main_loop = nullptr; @@ -2146,10 +2137,10 @@ bool Main::start() { if (!editor && !project_manager) { //standard helpers that can be changed from main config - String stretch_mode = GLOBAL_DEF("display/window/stretch/mode", "disabled"); - String stretch_aspect = GLOBAL_DEF("display/window/stretch/aspect", "ignore"); - Size2i stretch_size = Size2i(GLOBAL_DEF("display/window/size/width", 0), - GLOBAL_DEF("display/window/size/height", 0)); + String stretch_mode = GLOBAL_DEF_BASIC("display/window/stretch/mode", "disabled"); + String stretch_aspect = GLOBAL_DEF_BASIC("display/window/stretch/aspect", "ignore"); + Size2i stretch_size = Size2i(GLOBAL_DEF_BASIC("display/window/size/width", 0), + GLOBAL_DEF_BASIC("display/window/size/height", 0)); Window::ContentScaleMode cs_sm = Window::CONTENT_SCALE_MODE_DISABLED; if (stretch_mode == "canvas_items") { @@ -2189,30 +2180,30 @@ bool Main::start() { bool snap_controls = GLOBAL_DEF("gui/common/snap_controls_to_pixels", true); sml->get_root()->set_snap_controls_to_pixels(snap_controls); - bool font_oversampling = GLOBAL_DEF("rendering/quality/dynamic_fonts/use_oversampling", true); + bool font_oversampling = GLOBAL_DEF("gui/fonts/dynamic_fonts/use_oversampling", true); sml->get_root()->set_use_font_oversampling(font_oversampling); - int texture_filter = GLOBAL_DEF("rendering/canvas_textures/default_texture_filter", 1); - int texture_repeat = GLOBAL_DEF("rendering/canvas_textures/default_texture_repeat", 0); + int texture_filter = GLOBAL_DEF("rendering/textures/canvas_textures/default_texture_filter", 1); + int texture_repeat = GLOBAL_DEF("rendering/textures/canvas_textures/default_texture_repeat", 0); sml->get_root()->set_default_canvas_item_texture_filter( Viewport::DefaultCanvasItemTextureFilter(texture_filter)); sml->get_root()->set_default_canvas_item_texture_repeat( Viewport::DefaultCanvasItemTextureRepeat(texture_repeat)); } else { - GLOBAL_DEF("display/window/stretch/mode", "disabled"); + GLOBAL_DEF_BASIC("display/window/stretch/mode", "disabled"); ProjectSettings::get_singleton()->set_custom_property_info("display/window/stretch/mode", PropertyInfo(Variant::STRING, "display/window/stretch/mode", PROPERTY_HINT_ENUM, "disabled,canvas_items,viewport")); - GLOBAL_DEF("display/window/stretch/aspect", "ignore"); + GLOBAL_DEF_BASIC("display/window/stretch/aspect", "ignore"); ProjectSettings::get_singleton()->set_custom_property_info("display/window/stretch/aspect", PropertyInfo(Variant::STRING, "display/window/stretch/aspect", PROPERTY_HINT_ENUM, "ignore,keep,keep_width,keep_height,expand")); - GLOBAL_DEF("display/window/stretch/shrink", 1.0); + GLOBAL_DEF_BASIC("display/window/stretch/shrink", 1.0); ProjectSettings::get_singleton()->set_custom_property_info("display/window/stretch/shrink", PropertyInfo(Variant::FLOAT, "display/window/stretch/shrink", @@ -2220,18 +2211,18 @@ bool Main::start() { "1.0,8.0,0.1")); sml->set_auto_accept_quit(GLOBAL_DEF("application/config/auto_accept_quit", true)); sml->set_quit_on_go_back(GLOBAL_DEF("application/config/quit_on_go_back", true)); - GLOBAL_DEF("gui/common/snap_controls_to_pixels", true); - GLOBAL_DEF("rendering/quality/dynamic_fonts/use_oversampling", true); + GLOBAL_DEF_BASIC("gui/common/snap_controls_to_pixels", true); + GLOBAL_DEF_BASIC("gui/fonts/dynamic_fonts/use_oversampling", true); - GLOBAL_DEF("rendering/canvas_textures/default_texture_filter", 1); + GLOBAL_DEF_BASIC("rendering/textures/canvas_textures/default_texture_filter", 1); ProjectSettings::get_singleton()->set_custom_property_info( - "rendering/canvas_textures/default_texture_filter", - PropertyInfo(Variant::INT, "rendering/canvas_textures/default_texture_filter", PROPERTY_HINT_ENUM, + "rendering/textures/canvas_textures/default_texture_filter", + PropertyInfo(Variant::INT, "rendering/textures/canvas_textures/default_texture_filter", PROPERTY_HINT_ENUM, "Nearest,Linear,MipmapLinear,MipmapNearest")); - GLOBAL_DEF("rendering/canvas_textures/default_texture_repeat", 0); + GLOBAL_DEF_BASIC("rendering/textures/canvas_textures/default_texture_repeat", 0); ProjectSettings::get_singleton()->set_custom_property_info( - "rendering/canvas_textures/default_texture_repeat", - PropertyInfo(Variant::INT, "rendering/canvas_textures/default_texture_repeat", PROPERTY_HINT_ENUM, + "rendering/textures/canvas_textures/default_texture_repeat", + PropertyInfo(Variant::INT, "rendering/textures/canvas_textures/default_texture_repeat", PROPERTY_HINT_ENUM, "Disable,Enable,Mirror")); } diff --git a/main/performance.cpp b/main/performance.cpp index 1a422dc499..a2e53f2ee2 100644 --- a/main/performance.cpp +++ b/main/performance.cpp @@ -119,7 +119,7 @@ String Performance::get_monitor_name(Monitor p_monitor) const { "physics_3d/active_objects", "physics_3d/collision_pairs", "physics_3d/islands", - "audio/output_latency", + "audio/driver/output_latency", }; diff --git a/misc/hooks/pre-commit-clang-format b/misc/hooks/pre-commit-clang-format index 6467efe22e..1cbc576565 100755 --- a/misc/hooks/pre-commit-clang-format +++ b/misc/hooks/pre-commit-clang-format @@ -125,6 +125,9 @@ do if grep -q "platform/android/java/lib/src/com" <<< $file; then continue; fi + if grep -q "\-so_wrap." <<< $file; then + continue; + fi # ignore file if we do check for file extensions and the file # does not match any of the extensions specified in $FILE_EXTS diff --git a/misc/scripts/clang_format.sh b/misc/scripts/clang_format.sh index e686305dea..63c66d41c3 100755 --- a/misc/scripts/clang_format.sh +++ b/misc/scripts/clang_format.sh @@ -16,6 +16,8 @@ while IFS= read -rd '' f; do continue elif [[ "$f" == "platform/android/java/lib/src/com/google"* ]]; then continue + elif [[ "$f" == *"-so_wrap."* ]]; then + continue fi for extension in ${CLANG_FORMAT_FILE_EXTS[@]}; do diff --git a/misc/scripts/file_format.sh b/misc/scripts/file_format.sh index 0e9db68a90..795431cd28 100755 --- a/misc/scripts/file_format.sh +++ b/misc/scripts/file_format.sh @@ -30,6 +30,8 @@ while IFS= read -rd '' f; do continue elif [[ "$f" == "platform/android/java/lib/src/com/google"* ]]; then continue + elif [[ "$f" == *"-so_wrap."* ]]; then + continue fi # Ensure that files are UTF-8 formatted. recode UTF-8 "$f" 2> /dev/null @@ -38,15 +40,6 @@ while IFS= read -rd '' f; do # Remove trailing space characters and ensures that files end # with newline characters. -l option handles newlines conveniently. perl -i -ple 's/\s*$//g' "$f" - # Remove the character sequence "== true" if it has a leading space. - perl -i -pe 's/\x20== true//g' "$f" - - if [[ $(uname) == "Linux" ]] && [[ "$f" != *"xml" ]]; then - # Remove empty lines after the opening brace of indented blocks. - sed -z -i 's/\x7B\x0A\x0A\x09/\x7B\x0A\x09/g' "$f" - # Remove empty lines before the closing brace (in some cases). - sed -z -i 's/\x0A\x0A\x7D/\x0A\x7D/g' "$f" - fi done git diff > patch.patch diff --git a/modules/cvtt/image_compress_cvtt.cpp b/modules/cvtt/image_compress_cvtt.cpp index dbd6d9e9f9..3beca3d12a 100644 --- a/modules/cvtt/image_compress_cvtt.cpp +++ b/modules/cvtt/image_compress_cvtt.cpp @@ -33,6 +33,7 @@ #include "core/os/os.h" #include "core/os/thread.h" #include "core/string/print_string.h" +#include "core/templates/safe_refcount.h" #include <ConvectionKernels.h> @@ -56,7 +57,7 @@ struct CVTTCompressionJobQueue { CVTTCompressionJobParams job_params; const CVTTCompressionRowTask *job_tasks; uint32_t num_tasks = 0; - uint32_t current_task = 0; + SafeNumeric<uint32_t> current_task; }; static void _digest_row_task(const CVTTCompressionJobParams &p_job_params, const CVTTCompressionRowTask &p_row_task) { @@ -131,7 +132,7 @@ static void _digest_row_task(const CVTTCompressionJobParams &p_job_params, const static void _digest_job_queue(void *p_job_queue) { CVTTCompressionJobQueue *job_queue = static_cast<CVTTCompressionJobQueue *>(p_job_queue); - for (uint32_t next_task = atomic_increment(&job_queue->current_task); next_task <= job_queue->num_tasks; next_task = atomic_increment(&job_queue->current_task)) { + for (uint32_t next_task = job_queue->current_task.increment(); next_task <= job_queue->num_tasks; next_task = job_queue->current_task.increment()) { _digest_row_task(job_queue->job_params, job_queue->job_tasks[next_task - 1]); } } @@ -263,7 +264,7 @@ void image_compress_cvtt(Image *p_image, float p_lossy_quality, Image::UsedChann const CVTTCompressionRowTask *tasks_rb = tasks.ptr(); job_queue.job_tasks = &tasks_rb[0]; - job_queue.current_task = 0; + job_queue.current_task.set(0); job_queue.num_tasks = static_cast<uint32_t>(tasks.size()); for (int i = 0; i < num_job_threads; i++) { diff --git a/modules/gdnative/nativescript/nativescript.cpp b/modules/gdnative/nativescript/nativescript.cpp index 64fb8ee9c7..1bdbb0b03b 100644 --- a/modules/gdnative/nativescript/nativescript.cpp +++ b/modules/gdnative/nativescript/nativescript.cpp @@ -1670,7 +1670,7 @@ void NativeScriptLanguage::defer_init_library(Ref<GDNativeLibrary> lib, NativeSc MutexLock lock(mutex); libs_to_init.insert(lib); scripts_to_register.insert(script); - has_objects_to_register = true; + has_objects_to_register.set(); } #endif @@ -1759,7 +1759,7 @@ void NativeScriptLanguage::call_libraries_cb(const StringName &name) { void NativeScriptLanguage::frame() { #ifndef NO_THREADS - if (has_objects_to_register) { + if (has_objects_to_register.is_set()) { MutexLock lock(mutex); for (Set<Ref<GDNativeLibrary>>::Element *L = libs_to_init.front(); L; L = L->next()) { init_library(L->get()); @@ -1769,7 +1769,7 @@ void NativeScriptLanguage::frame() { register_script(S->get()); } scripts_to_register.clear(); - has_objects_to_register = false; + has_objects_to_register.clear(); } #endif diff --git a/modules/gdnative/nativescript/nativescript.h b/modules/gdnative/nativescript/nativescript.h index 81a158d09b..d6ba2bbec1 100644 --- a/modules/gdnative/nativescript/nativescript.h +++ b/modules/gdnative/nativescript/nativescript.h @@ -40,6 +40,7 @@ #include "core/os/thread_safe.h" #include "core/templates/oa_hash_map.h" #include "core/templates/ordered_hash_map.h" +#include "core/templates/safe_refcount.h" #include "core/templates/self_list.h" #include "scene/main/node.h" @@ -262,7 +263,7 @@ private: #ifndef NO_THREADS Set<Ref<GDNativeLibrary>> libs_to_init; Set<NativeScript *> scripts_to_register; - volatile bool has_objects_to_register = false; // so that we don't lock mutex every frame - it's rarely needed + SafeFlag has_objects_to_register; // so that we don't lock mutex every frame - it's rarely needed void defer_init_library(Ref<GDNativeLibrary> lib, NativeScript *script); #endif diff --git a/modules/gdnative/videodecoder/video_stream_gdnative.cpp b/modules/gdnative/videodecoder/video_stream_gdnative.cpp index a594ba41ec..f2fb0a2fdc 100644 --- a/modules/gdnative/videodecoder/video_stream_gdnative.cpp +++ b/modules/gdnative/videodecoder/video_stream_gdnative.cpp @@ -250,7 +250,7 @@ void VideoStreamPlaybackGDNative::play() { playing = true; - delay_compensation = ProjectSettings::get_singleton()->get("audio/video_delay_compensation_ms"); + delay_compensation = ProjectSettings::get_singleton()->get("audio/video/video_delay_compensation_ms"); delay_compensation /= 1000.0; } diff --git a/modules/gdscript/language_server/gdscript_language_protocol.cpp b/modules/gdscript/language_server/gdscript_language_protocol.cpp index 5e3d6213d3..912c9a174e 100644 --- a/modules/gdscript/language_server/gdscript_language_protocol.cpp +++ b/modules/gdscript/language_server/gdscript_language_protocol.cpp @@ -163,7 +163,7 @@ void GDScriptLanguageProtocol::_bind_methods() { ClassDB::bind_method(D_METHOD("initialized", "params"), &GDScriptLanguageProtocol::initialized); ClassDB::bind_method(D_METHOD("on_client_connected"), &GDScriptLanguageProtocol::on_client_connected); ClassDB::bind_method(D_METHOD("on_client_disconnected"), &GDScriptLanguageProtocol::on_client_disconnected); - ClassDB::bind_method(D_METHOD("notify_client", "method", "params"), &GDScriptLanguageProtocol::notify_client, DEFVAL(Variant()), DEFVAL(-1)); + ClassDB::bind_method(D_METHOD("notify_client", "method", "params", "client_id"), &GDScriptLanguageProtocol::notify_client, DEFVAL(Variant()), DEFVAL(-1)); ClassDB::bind_method(D_METHOD("is_smart_resolve_enabled"), &GDScriptLanguageProtocol::is_smart_resolve_enabled); ClassDB::bind_method(D_METHOD("get_text_document"), &GDScriptLanguageProtocol::get_text_document); ClassDB::bind_method(D_METHOD("get_workspace"), &GDScriptLanguageProtocol::get_workspace); diff --git a/modules/gltf/gltf_skin.cpp b/modules/gltf/gltf_skin.cpp index fd39e4f45a..5a61e5778c 100644 --- a/modules/gltf/gltf_skin.cpp +++ b/modules/gltf/gltf_skin.cpp @@ -142,7 +142,7 @@ void GLTFSkin::set_joint_i_to_name(Dictionary p_joint_i_to_name) { joint_i_to_name = Map<int, StringName>(); Array keys = p_joint_i_to_name.keys(); for (int i = 0; i < keys.size(); i++) { - joint_i_to_name[keys[i]] = joint_i_to_name[keys[i]]; + joint_i_to_name[keys[i]] = p_joint_i_to_name[keys[i]]; } } diff --git a/modules/lightmapper_rd/lightmapper_rd.cpp b/modules/lightmapper_rd/lightmapper_rd.cpp index 82aaa492fc..61ebabdfb6 100644 --- a/modules/lightmapper_rd/lightmapper_rd.cpp +++ b/modules/lightmapper_rd/lightmapper_rd.cpp @@ -1225,23 +1225,23 @@ LightmapperRD::BakeError LightmapperRD::bake(BakeQuality p_quality, bool p_use_d switch (p_quality) { case BAKE_QUALITY_LOW: { - push_constant.ray_count = GLOBAL_GET("rendering/gpu_lightmapper/quality/low_quality_ray_count"); + push_constant.ray_count = GLOBAL_GET("rendering/lightmapping/bake_quality/low_quality_ray_count"); } break; case BAKE_QUALITY_MEDIUM: { - push_constant.ray_count = GLOBAL_GET("rendering/gpu_lightmapper/quality/medium_quality_ray_count"); + push_constant.ray_count = GLOBAL_GET("rendering/lightmapping/bake_quality/medium_quality_ray_count"); } break; case BAKE_QUALITY_HIGH: { - push_constant.ray_count = GLOBAL_GET("rendering/gpu_lightmapper/quality/high_quality_ray_count"); + push_constant.ray_count = GLOBAL_GET("rendering/lightmapping/bake_quality/high_quality_ray_count"); } break; case BAKE_QUALITY_ULTRA: { - push_constant.ray_count = GLOBAL_GET("rendering/gpu_lightmapper/quality/ultra_quality_ray_count"); + push_constant.ray_count = GLOBAL_GET("rendering/lightmapping/bake_quality/ultra_quality_ray_count"); } break; } push_constant.ray_count = CLAMP(push_constant.ray_count, 16, 8192); - int max_region_size = nearest_power_of_2_templated(int(GLOBAL_GET("rendering/gpu_lightmapper/performance/region_size"))); - int max_rays = GLOBAL_GET("rendering/gpu_lightmapper/performance/max_rays_per_pass"); + int max_region_size = nearest_power_of_2_templated(int(GLOBAL_GET("rendering/lightmapping/bake_performance/region_size"))); + int max_rays = GLOBAL_GET("rendering/lightmapping/bake_performance/max_rays_per_pass"); int x_regions = (atlas_size.width - 1) / max_region_size + 1; int y_regions = (atlas_size.height - 1) / max_region_size + 1; @@ -1347,23 +1347,23 @@ LightmapperRD::BakeError LightmapperRD::bake(BakeQuality p_quality, bool p_use_d switch (p_quality) { case BAKE_QUALITY_LOW: { - push_constant.ray_count = GLOBAL_GET("rendering/gpu_lightmapper/quality/low_quality_probe_ray_count"); + push_constant.ray_count = GLOBAL_GET("rendering/lightmapping/bake_quality/low_quality_probe_ray_count"); } break; case BAKE_QUALITY_MEDIUM: { - push_constant.ray_count = GLOBAL_GET("rendering/gpu_lightmapper/quality/medium_quality_probe_ray_count"); + push_constant.ray_count = GLOBAL_GET("rendering/lightmapping/bake_quality/medium_quality_probe_ray_count"); } break; case BAKE_QUALITY_HIGH: { - push_constant.ray_count = GLOBAL_GET("rendering/gpu_lightmapper/quality/high_quality_probe_ray_count"); + push_constant.ray_count = GLOBAL_GET("rendering/lightmapping/bake_quality/high_quality_probe_ray_count"); } break; case BAKE_QUALITY_ULTRA: { - push_constant.ray_count = GLOBAL_GET("rendering/gpu_lightmapper/quality/ultra_quality_probe_ray_count"); + push_constant.ray_count = GLOBAL_GET("rendering/lightmapping/bake_quality/ultra_quality_probe_ray_count"); } break; } push_constant.atlas_size[0] = probe_positions.size(); push_constant.ray_count = CLAMP(push_constant.ray_count, 16, 8192); - int max_rays = GLOBAL_GET("rendering/gpu_lightmapper/performance/max_rays_per_probe_pass"); + int max_rays = GLOBAL_GET("rendering/lightmapping/bake_performance/max_rays_per_probe_pass"); int ray_iterations = (push_constant.ray_count - 1) / max_rays + 1; for (int i = 0; i < ray_iterations; i++) { diff --git a/modules/lightmapper_rd/register_types.cpp b/modules/lightmapper_rd/register_types.cpp index a7b8c063fd..191bb3d765 100644 --- a/modules/lightmapper_rd/register_types.cpp +++ b/modules/lightmapper_rd/register_types.cpp @@ -41,18 +41,18 @@ static Lightmapper *create_lightmapper_rd() { #endif void register_lightmapper_rd_types() { - GLOBAL_DEF("rendering/gpu_lightmapper/quality/low_quality_ray_count", 16); - GLOBAL_DEF("rendering/gpu_lightmapper/quality/medium_quality_ray_count", 64); - GLOBAL_DEF("rendering/gpu_lightmapper/quality/high_quality_ray_count", 256); - GLOBAL_DEF("rendering/gpu_lightmapper/quality/ultra_quality_ray_count", 1024); - GLOBAL_DEF("rendering/gpu_lightmapper/performance/max_rays_per_pass", 32); - GLOBAL_DEF("rendering/gpu_lightmapper/performance/region_size", 512); + GLOBAL_DEF("rendering/lightmapping/bake_quality/low_quality_ray_count", 16); + GLOBAL_DEF("rendering/lightmapping/bake_quality/medium_quality_ray_count", 64); + GLOBAL_DEF("rendering/lightmapping/bake_quality/high_quality_ray_count", 256); + GLOBAL_DEF("rendering/lightmapping/bake_quality/ultra_quality_ray_count", 1024); + GLOBAL_DEF("rendering/lightmapping/bake_performance/max_rays_per_pass", 32); + GLOBAL_DEF("rendering/lightmapping/bake_performance/region_size", 512); - GLOBAL_DEF("rendering/gpu_lightmapper/quality/low_quality_probe_ray_count", 64); - GLOBAL_DEF("rendering/gpu_lightmapper/quality/medium_quality_probe_ray_count", 256); - GLOBAL_DEF("rendering/gpu_lightmapper/quality/high_quality_probe_ray_count", 512); - GLOBAL_DEF("rendering/gpu_lightmapper/quality/ultra_quality_probe_ray_count", 2048); - GLOBAL_DEF("rendering/gpu_lightmapper/performance/max_rays_per_probe_pass", 64); + GLOBAL_DEF("rendering/lightmapping/bake_quality/low_quality_probe_ray_count", 64); + GLOBAL_DEF("rendering/lightmapping/bake_quality/medium_quality_probe_ray_count", 256); + GLOBAL_DEF("rendering/lightmapping/bake_quality/high_quality_probe_ray_count", 512); + GLOBAL_DEF("rendering/lightmapping/bake_quality/ultra_quality_probe_ray_count", 2048); + GLOBAL_DEF("rendering/lightmapping/bake_performance/max_rays_per_probe_pass", 64); #ifndef _3D_DISABLED ClassDB::register_class<LightmapperRD>(); Lightmapper::create_gpu = create_lightmapper_rd; diff --git a/modules/minimp3/audio_stream_mp3.cpp b/modules/minimp3/audio_stream_mp3.cpp index 8627f71987..b128b81000 100644 --- a/modules/minimp3/audio_stream_mp3.cpp +++ b/modules/minimp3/audio_stream_mp3.cpp @@ -159,7 +159,8 @@ void AudioStreamMP3::set_data(const Vector<uint8_t> &p_data) { const uint8_t *src_datar = p_data.ptr(); mp3dec_ex_t mp3d; - mp3dec_ex_open_buf(&mp3d, src_datar, src_data_len, MP3D_SEEK_TO_SAMPLE); + int err = mp3dec_ex_open_buf(&mp3d, src_datar, src_data_len, MP3D_SEEK_TO_SAMPLE); + ERR_FAIL_COND(err != 0); channels = mp3d.info.channels; sample_rate = mp3d.info.hz; diff --git a/modules/mono/editor/bindings_generator.cpp b/modules/mono/editor/bindings_generator.cpp index 38e403b2e1..ea1a2053df 100644 --- a/modules/mono/editor/bindings_generator.cpp +++ b/modules/mono/editor/bindings_generator.cpp @@ -1479,6 +1479,12 @@ Error BindingsGenerator::_generate_cs_property(const BindingsGenerator::TypeInte ERR_FAIL_COND_V_MSG(prop_itype->is_singleton, ERR_BUG, "Property type is a singleton: '" + p_itype.name + "." + String(p_iprop.cname) + "'."); + if (p_itype.api_type == ClassDB::API_CORE) { + ERR_FAIL_COND_V_MSG(prop_itype->api_type == ClassDB::API_EDITOR, ERR_BUG, + "Property '" + p_itype.name + "." + String(p_iprop.cname) + "' has type '" + prop_itype->name + + "' from the editor API. Core API cannot have dependencies on the editor API."); + } + if (p_iprop.prop_doc && p_iprop.prop_doc->description.size()) { String xml_summary = bbcode_to_xml(fix_doc_description(p_iprop.prop_doc->description), &p_itype); Vector<String> summary_lines = xml_summary.length() ? xml_summary.split("\n") : Vector<String>(); @@ -1575,6 +1581,12 @@ Error BindingsGenerator::_generate_cs_method(const BindingsGenerator::TypeInterf ERR_FAIL_COND_V_MSG(return_type->is_singleton, ERR_BUG, "Method return type is a singleton: '" + p_itype.name + "." + p_imethod.name + "'."); + if (p_itype.api_type == ClassDB::API_CORE) { + ERR_FAIL_COND_V_MSG(return_type->api_type == ClassDB::API_EDITOR, ERR_BUG, + "Method '" + p_itype.name + "." + p_imethod.name + "' has return type '" + return_type->name + + "' from the editor API. Core API cannot have dependencies on the editor API."); + } + String method_bind_field = "__method_bind_" + itos(p_method_bind_count); String arguments_sig; @@ -1593,6 +1605,12 @@ Error BindingsGenerator::_generate_cs_method(const BindingsGenerator::TypeInterf ERR_FAIL_COND_V_MSG(arg_type->is_singleton, ERR_BUG, "Argument type is a singleton: '" + iarg.name + "' of method '" + p_itype.name + "." + p_imethod.name + "'."); + if (p_itype.api_type == ClassDB::API_CORE) { + ERR_FAIL_COND_V_MSG(arg_type->api_type == ClassDB::API_EDITOR, ERR_BUG, + "Argument '" + iarg.name + "' of method '" + p_itype.name + "." + p_imethod.name + "' has type '" + + arg_type->name + "' from the editor API. Core API cannot have dependencies on the editor API."); + } + if (iarg.default_argument.size()) { CRASH_COND_MSG(!_arg_default_value_is_assignable_to_type(iarg.def_param_value, *arg_type), "Invalid default value for parameter '" + iarg.name + "' of method '" + p_itype.name + "." + p_imethod.name + "'."); @@ -1806,7 +1824,13 @@ Error BindingsGenerator::_generate_cs_signal(const BindingsGenerator::TypeInterf const TypeInterface *arg_type = _get_type_or_placeholder(iarg.type); ERR_FAIL_COND_V_MSG(arg_type->is_singleton, ERR_BUG, - "Argument type is a singleton: '" + iarg.name + "' of signal" + p_itype.name + "." + p_isignal.name + "'."); + "Argument type is a singleton: '" + iarg.name + "' of signal '" + p_itype.name + "." + p_isignal.name + "'."); + + if (p_itype.api_type == ClassDB::API_CORE) { + ERR_FAIL_COND_V_MSG(arg_type->api_type == ClassDB::API_EDITOR, ERR_BUG, + "Argument '" + iarg.name + "' of signal '" + p_itype.name + "." + p_isignal.name + "' has type '" + + arg_type->name + "' from the editor API. Core API cannot have dependencies on the editor API."); + } // Add the current arguments to the signature diff --git a/modules/mono/glue/GodotSharp/GodotSharp/Core/Vector3.cs b/modules/mono/glue/GodotSharp/GodotSharp/Core/Vector3.cs index 42dbdf25c3..3b895bbbf6 100644 --- a/modules/mono/glue/GodotSharp/GodotSharp/Core/Vector3.cs +++ b/modules/mono/glue/GodotSharp/GodotSharp/Core/Vector3.cs @@ -111,10 +111,10 @@ namespace Godot } /// <summary> - /// Returns the minimum angle to the given vector, in radians. + /// Returns the unsigned minimum angle to the given vector, in radians. /// </summary> /// <param name="to">The other vector to compare this vector to.</param> - /// <returns>The angle between the two vectors, in radians.</returns> + /// <returns>The unsigned angle between the two vectors, in radians.</returns> public real_t AngleTo(Vector3 to) { return Mathf.Atan2(Cross(to).Length(), Dot(to)); @@ -469,6 +469,23 @@ namespace Godot } /// <summary> + /// Returns the signed angle to the given vector, in radians. + /// The sign of the angle is positive in a counter-clockwise + /// direction and negative in a clockwise direction when viewed + /// from the side specified by the `axis`. + /// </summary> + /// <param name="to">The other vector to compare this vector to.</param> + /// <param name="axis">The reference axis to use for the angle sign.</param> + /// <returns>The signed angle between the two vectors, in radians.</returns> + public real_t SignedAngleTo(Vector3 to, Vector3 axis) + { + Vector3 crossTo = Cross(to); + real_t unsignedAngle = Mathf.Atan2(crossTo.Length(), Dot(to)); + real_t sign = crossTo.Dot(axis); + return (sign < 0) ? -unsignedAngle : unsignedAngle; + } + + /// <summary> /// Returns the result of the spherical linear interpolation between /// this vector and `to` by amount `weight`. /// diff --git a/modules/stb_vorbis/audio_stream_ogg_vorbis.cpp b/modules/stb_vorbis/audio_stream_ogg_vorbis.cpp index f7bf650354..6732078efc 100644 --- a/modules/stb_vorbis/audio_stream_ogg_vorbis.cpp +++ b/modules/stb_vorbis/audio_stream_ogg_vorbis.cpp @@ -47,7 +47,7 @@ void AudioStreamPlaybackOGGVorbis::_mix_internal(AudioFrame *p_buffer, int p_fra int mixed = stb_vorbis_get_samples_float_interleaved(ogg_stream, 2, buffer, todo * 2); if (vorbis_stream->channels == 1 && mixed > 0) { //mix mono to stereo - for (int i = start_buffer; i < mixed; i++) { + for (int i = start_buffer; i < start_buffer + mixed; i++) { p_buffer[i].r = p_buffer[i].l; } } diff --git a/modules/theora/video_stream_theora.cpp b/modules/theora/video_stream_theora.cpp index 4b404eae32..c5f6dc0d99 100644 --- a/modules/theora/video_stream_theora.cpp +++ b/modules/theora/video_stream_theora.cpp @@ -554,7 +554,7 @@ void VideoStreamPlaybackTheora::play() { } playing = true; - delay_compensation = ProjectSettings::get_singleton()->get("audio/video_delay_compensation_ms"); + delay_compensation = ProjectSettings::get_singleton()->get("audio/video/video_delay_compensation_ms"); delay_compensation /= 1000.0; }; diff --git a/modules/theora/video_stream_theora.h b/modules/theora/video_stream_theora.h index f92fe2340e..2685a8a013 100644 --- a/modules/theora/video_stream_theora.h +++ b/modules/theora/video_stream_theora.h @@ -36,6 +36,7 @@ #include "core/os/semaphore.h" #include "core/os/thread.h" #include "core/templates/ring_buffer.h" +#include "core/templates/safe_refcount.h" #include "scene/resources/video_stream.h" #include "servers/audio_server.h" @@ -113,7 +114,7 @@ class VideoStreamPlaybackTheora : public VideoStreamPlayback { bool thread_eof = false; Semaphore *thread_sem; Thread thread; - volatile bool thread_exit = false; + SafeFlag thread_exit; static void _streaming_thread(void *ud); diff --git a/modules/visual_script/visual_script_editor.cpp b/modules/visual_script/visual_script_editor.cpp index 39726a4a58..fcd55b3049 100644 --- a/modules/visual_script/visual_script_editor.cpp +++ b/modules/visual_script/visual_script_editor.cpp @@ -4274,13 +4274,13 @@ VisualScriptEditor::VisualScriptEditor() { edit_menu->set_shortcut_context(this); edit_menu->set_text(TTR("Edit")); edit_menu->set_switch_on_hover(true); - edit_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("visual_script_editor/delete_selected"), EDIT_DELETE_NODES); + edit_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("ui_graph_delete"), EDIT_DELETE_NODES); edit_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("visual_script_editor/toggle_breakpoint"), EDIT_TOGGLE_BREAKPOINT); edit_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("visual_script_editor/find_node_type"), EDIT_FIND_NODE_TYPE); edit_menu->get_popup()->add_separator(); - edit_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("visual_script_editor/copy_nodes"), EDIT_COPY_NODES); - edit_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("visual_script_editor/cut_nodes"), EDIT_CUT_NODES); - edit_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("visual_script_editor/paste_nodes"), EDIT_PASTE_NODES); + edit_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("ui_copy"), EDIT_COPY_NODES); + edit_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("ui_cut"), EDIT_CUT_NODES); + edit_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("ui_paste"), EDIT_PASTE_NODES); edit_menu->get_popup()->add_separator(); edit_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("visual_script_editor/create_function"), EDIT_CREATE_FUNCTION); edit_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("visual_script_editor/refresh_nodes"), REFRESH_GRAPH); @@ -4520,12 +4520,8 @@ void VisualScriptEditor::free_clipboard() { static void register_editor_callback() { ScriptEditor::register_create_script_editor_function(create_editor); - ED_SHORTCUT("visual_script_editor/delete_selected", TTR("Delete Selected"), KEY_DELETE); ED_SHORTCUT("visual_script_editor/toggle_breakpoint", TTR("Toggle Breakpoint"), KEY_F9); ED_SHORTCUT("visual_script_editor/find_node_type", TTR("Find Node Type"), KEY_MASK_CMD + KEY_F); - ED_SHORTCUT("visual_script_editor/copy_nodes", TTR("Copy Nodes"), KEY_MASK_CMD + KEY_C); - ED_SHORTCUT("visual_script_editor/cut_nodes", TTR("Cut Nodes"), KEY_MASK_CMD + KEY_X); - ED_SHORTCUT("visual_script_editor/paste_nodes", TTR("Paste Nodes"), KEY_MASK_CMD + KEY_V); ED_SHORTCUT("visual_script_editor/create_function", TTR("Make Function"), KEY_MASK_CMD + KEY_G); ED_SHORTCUT("visual_script_editor/refresh_nodes", TTR("Refresh Graph"), KEY_MASK_CMD + KEY_R); ED_SHORTCUT("visual_script_editor/edit_member", TTR("Edit Member"), KEY_MASK_CMD + KEY_E); diff --git a/modules/webm/video_stream_webm.cpp b/modules/webm/video_stream_webm.cpp index 7c16a1df34..101001cba0 100644 --- a/modules/webm/video_stream_webm.cpp +++ b/modules/webm/video_stream_webm.cpp @@ -156,7 +156,7 @@ void VideoStreamPlaybackWebm::stop() { void VideoStreamPlaybackWebm::play() { stop(); - delay_compensation = ProjectSettings::get_singleton()->get("audio/video_delay_compensation_ms"); + delay_compensation = ProjectSettings::get_singleton()->get("audio/video/video_delay_compensation_ms"); delay_compensation /= 1000.0; playing = true; diff --git a/platform/android/audio_driver_jandroid.cpp b/platform/android/audio_driver_jandroid.cpp index ee28959adc..3a2ccac481 100644 --- a/platform/android/audio_driver_jandroid.cpp +++ b/platform/android/audio_driver_jandroid.cpp @@ -73,9 +73,9 @@ Error AudioDriverAndroid::init() { // __android_log_print(ANDROID_LOG_VERBOSE, "SDL", "SDL audio: opening device"); JNIEnv *env = get_jni_env(); - int mix_rate = GLOBAL_GET("audio/mix_rate"); + int mix_rate = GLOBAL_GET("audio/driver/mix_rate"); - int latency = GLOBAL_GET("audio/output_latency"); + int latency = GLOBAL_GET("audio/driver/output_latency"); unsigned int buffer_size = next_power_of_2(latency * mix_rate / 1000); print_verbose("Audio buffer size: " + itos(buffer_size)); diff --git a/platform/android/detect.py b/platform/android/detect.py index 0e696024a9..5f0fcc9b77 100644 --- a/platform/android/detect.py +++ b/platform/android/detect.py @@ -13,7 +13,7 @@ def get_name(): def can_build(): - return ("ANDROID_NDK_ROOT" in os.environ) or ("ANDROID_SDK_ROOT" in os.environ) or ("ANDROID_HOME" in os.environ) + return ("ANDROID_SDK_ROOT" in os.environ) or ("ANDROID_HOME" in os.environ) def get_platform(platform): @@ -43,15 +43,12 @@ def get_android_sdk_root(): # Return the ANDROID_NDK_ROOT environment variable. -# If the env variable is already defined, we use it with the expectation that -# the user knows what they're doing (e.g: testing a new NDK version). -# Otherwise, we generate one for this build using the ANDROID_SDK_ROOT env +# We generate one for this build using the ANDROID_SDK_ROOT env # variable and the project ndk version. +# If the env variable is already defined, we override it with +# our own to match what the project expects. def get_android_ndk_root(): - if "ANDROID_NDK_ROOT" in os.environ: - return os.environ.get("ANDROID_NDK_ROOT", 0) - else: - return get_android_sdk_root() + "/ndk/" + get_project_ndk_version() + return get_android_sdk_root() + "/ndk/" + get_project_ndk_version() def get_flags(): @@ -373,7 +370,7 @@ def configure(env): # Return the project NDK version. # This is kept in sync with the value in 'platform/android/java/app/config.gradle'. def get_project_ndk_version(): - return "21.3.6528147" + return "21.4.7075529" # Return NDK version string in source.properties (adapted from the Chromium project). diff --git a/platform/android/export/export.cpp b/platform/android/export/export.cpp index a963c5a741..888b1546e4 100644 --- a/platform/android/export/export.cpp +++ b/platform/android/export/export.cpp @@ -37,6 +37,7 @@ #include "core/os/dir_access.h" #include "core/os/file_access.h" #include "core/os/os.h" +#include "core/templates/safe_refcount.h" #include "core/version.h" #include "drivers/png/png_driver_common.h" #include "editor/editor_export.h" @@ -202,6 +203,19 @@ static const char *android_perms[] = { static const char *SPLASH_IMAGE_EXPORT_PATH = "res/drawable/splash.png"; static const char *SPLASH_BG_COLOR_PATH = "res/drawable/splash_bg_color.png"; +static const char *SPLASH_CONFIG_PATH = "res://android/build/res/drawable/splash_drawable.xml"; + +const String SPLASH_CONFIG_XML_CONTENT = R"SPLASH(<?xml version="1.0" encoding="utf-8"?> +<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> + <item android:drawable="@drawable/splash_bg_color" /> + <item> + <bitmap + android:gravity="%s" + android:filter="%s" + android:src="@drawable/splash" /> + </item> +</layer-list> +)SPLASH"; struct LauncherIcon { const char *export_path; @@ -264,38 +278,38 @@ class EditorExportPlatformAndroid : public EditorExportPlatform { Vector<PluginConfigAndroid> plugins; String last_plugin_names; uint64_t last_custom_build_time = 0; - volatile bool plugins_changed; + SafeFlag plugins_changed; Mutex plugins_lock; Vector<Device> devices; - volatile bool devices_changed; + SafeFlag devices_changed; Mutex device_lock; Thread check_for_changes_thread; - volatile bool quit_request; + SafeFlag quit_request; static void _check_for_changes_poll_thread(void *ud) { EditorExportPlatformAndroid *ea = (EditorExportPlatformAndroid *)ud; - while (!ea->quit_request) { + while (!ea->quit_request.is_set()) { // Check for plugins updates { // Nothing to do if we already know the plugins have changed. - if (!ea->plugins_changed) { + if (!ea->plugins_changed.is_set()) { Vector<PluginConfigAndroid> loaded_plugins = get_plugins(); MutexLock lock(ea->plugins_lock); if (ea->plugins.size() != loaded_plugins.size()) { - ea->plugins_changed = true; + ea->plugins_changed.set(); } else { for (int i = 0; i < ea->plugins.size(); i++) { if (ea->plugins[i].name != loaded_plugins[i].name) { - ea->plugins_changed = true; + ea->plugins_changed.set(); break; } } } - if (ea->plugins_changed) { + if (ea->plugins_changed.is_set()) { ea->plugins = loaded_plugins; } } @@ -409,7 +423,7 @@ class EditorExportPlatformAndroid : public EditorExportPlatform { } ea->devices = ndevices; - ea->devices_changed = true; + ea->devices_changed.set(); } } @@ -418,7 +432,7 @@ class EditorExportPlatformAndroid : public EditorExportPlatform { uint64_t time = OS::get_singleton()->get_ticks_usec(); while (OS::get_singleton()->get_ticks_usec() - time < wait) { OS::get_singleton()->delay_usec(1000 * sleep); - if (ea->quit_request) { + if (ea->quit_request.is_set()) { break; } } @@ -775,6 +789,7 @@ class EditorExportPlatformAndroid : public EditorExportPlatform { } void _write_tmp_manifest(const Ref<EditorExportPreset> &p_preset, bool p_give_internet, bool p_debug) { + print_verbose("Building temporary manifest.."); String manifest_text = "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n" "<manifest xmlns:android=\"http://schemas.android.com/apk/res/android\"\n" @@ -795,6 +810,8 @@ class EditorExportPlatformAndroid : public EditorExportPlatform { manifest_text += _get_application_tag(p_preset, plugins_names); manifest_text += "</manifest>\n"; String manifest_path = vformat("res://android/build/src/%s/AndroidManifest.xml", (p_debug ? "debug" : "release")); + + print_verbose("Storing manifest into " + manifest_path + ": " + "\n" + manifest_text); store_string_at_path(manifest_path, manifest_text); } @@ -1470,20 +1487,26 @@ class EditorExportPlatformAndroid : public EditorExportPlatform { } } - void load_splash_refs(Ref<Image> &splash_image, Ref<Image> &splash_bg_color_image) { - // TODO: Figure out how to handle remaining boot splash parameters (e.g: fullsize, filter) + String load_splash_refs(Ref<Image> &splash_image, Ref<Image> &splash_bg_color_image) { + bool scale_splash = ProjectSettings::get_singleton()->get("application/boot_splash/fullsize"); + bool apply_filter = ProjectSettings::get_singleton()->get("application/boot_splash/use_filter"); String project_splash_path = ProjectSettings::get_singleton()->get("application/boot_splash/image"); if (!project_splash_path.is_empty()) { splash_image.instance(); + print_verbose("Loading splash image: " + project_splash_path); const Error err = ImageLoader::load_image(project_splash_path, splash_image); if (err) { + if (OS::get_singleton()->is_stdout_verbose()) { + print_error("- unable to load splash image from " + project_splash_path + " (" + itos(err) + ")"); + } splash_image.unref(); } } if (splash_image.is_null()) { // Use the default + print_verbose("Using default splash image."); splash_image = Ref<Image>(memnew(Image(boot_splash_png))); } @@ -1494,9 +1517,14 @@ class EditorExportPlatformAndroid : public EditorExportPlatform { bg_color = boot_splash_bg_color; } + print_verbose("Creating splash background color image."); splash_bg_color_image.instance(); splash_bg_color_image->create(splash_image->get_width(), splash_image->get_height(), false, splash_image->get_format()); splash_bg_color_image->fill(bg_color); + + String gravity = scale_splash ? "fill" : "center"; + String processed_splash_config_xml = vformat(SPLASH_CONFIG_XML_CONTENT, gravity, bool_to_string(apply_filter)); + return processed_splash_config_xml; } void load_icon_refs(const Ref<EditorExportPreset> &p_preset, Ref<Image> &icon, Ref<Image> &foreground, Ref<Image> &background) { @@ -1508,19 +1536,24 @@ class EditorExportPlatformAndroid : public EditorExportPlatform { // Regular icon: user selection -> project icon -> default. String path = static_cast<String>(p_preset->get(launcher_icon_option)).strip_edges(); + print_verbose("Loading regular icon from " + path); if (path.is_empty() || ImageLoader::load_image(path, icon) != OK) { + print_verbose("- falling back to project icon: " + project_icon_path); ImageLoader::load_image(project_icon_path, icon); } // Adaptive foreground: user selection -> regular icon (user selection -> project icon -> default). path = static_cast<String>(p_preset->get(launcher_adaptive_icon_foreground_option)).strip_edges(); + print_verbose("Loading adaptive foreground icon from " + path); if (path.is_empty() || ImageLoader::load_image(path, foreground) != OK) { + print_verbose("- falling back to using the regular icon"); foreground = icon; } // Adaptive background: user selection -> default. path = static_cast<String>(p_preset->get(launcher_adaptive_icon_background_option)).strip_edges(); if (!path.is_empty()) { + print_verbose("Loading adaptive background icon from " + path); ImageLoader::load_image(path, background); } } @@ -1535,13 +1568,21 @@ class EditorExportPlatformAndroid : public EditorExportPlatform { } void _copy_icons_to_gradle_project(const Ref<EditorExportPreset> &p_preset, + const String &processed_splash_config_xml, const Ref<Image> &splash_image, const Ref<Image> &splash_bg_color_image, const Ref<Image> &main_image, const Ref<Image> &foreground, const Ref<Image> &background) { + // Store the splash configuration + if (!processed_splash_config_xml.is_empty()) { + print_verbose("Storing processed splash configuration: " + String("\n") + processed_splash_config_xml); + store_string_at_path(SPLASH_CONFIG_PATH, processed_splash_config_xml); + } + // Store the splash image if (splash_image.is_valid() && !splash_image->is_empty()) { + print_verbose("Storing splash image in " + String(SPLASH_IMAGE_EXPORT_PATH)); Vector<uint8_t> data; _load_image_data(splash_image, data); store_image(SPLASH_IMAGE_EXPORT_PATH, data); @@ -1549,6 +1590,7 @@ class EditorExportPlatformAndroid : public EditorExportPlatform { // Store the splash bg color image if (splash_bg_color_image.is_valid() && !splash_bg_color_image->is_empty()) { + print_verbose("Storing splash background image in " + String(SPLASH_BG_COLOR_PATH)); Vector<uint8_t> data; _load_image_data(splash_bg_color_image, data); store_image(SPLASH_BG_COLOR_PATH, data); @@ -1559,12 +1601,14 @@ class EditorExportPlatformAndroid : public EditorExportPlatform { for (int i = 0; i < icon_densities_count; ++i) { if (main_image.is_valid() && !main_image->is_empty()) { + print_verbose("Processing launcher icon for dimension " + itos(launcher_icons[i].dimensions) + " into " + launcher_icons[i].export_path); Vector<uint8_t> data; _process_launcher_icons(launcher_icons[i].export_path, main_image, launcher_icons[i].dimensions, data); store_image(launcher_icons[i], data); } if (foreground.is_valid() && !foreground->is_empty()) { + print_verbose("Processing launcher adaptive icon foreground for dimension " + itos(launcher_adaptive_icon_foregrounds[i].dimensions) + " into " + launcher_adaptive_icon_foregrounds[i].export_path); Vector<uint8_t> data; _process_launcher_icons(launcher_adaptive_icon_foregrounds[i].export_path, foreground, launcher_adaptive_icon_foregrounds[i].dimensions, data); @@ -1572,6 +1616,7 @@ class EditorExportPlatformAndroid : public EditorExportPlatform { } if (background.is_valid() && !background->is_empty()) { + print_verbose("Processing launcher adaptive icon background for dimension " + itos(launcher_adaptive_icon_backgrounds[i].dimensions) + " into " + launcher_adaptive_icon_backgrounds[i].export_path); Vector<uint8_t> data; _process_launcher_icons(launcher_adaptive_icon_backgrounds[i].export_path, background, launcher_adaptive_icon_backgrounds[i].dimensions, data); @@ -1597,7 +1642,7 @@ public: public: virtual void get_preset_features(const Ref<EditorExportPreset> &p_preset, List<String> *r_features) override { - String driver = ProjectSettings::get_singleton()->get("rendering/quality/driver/driver_name"); + String driver = ProjectSettings::get_singleton()->get("rendering/driver/driver_name"); if (driver == "GLES2") { r_features->push_back("etc"); } @@ -1623,7 +1668,7 @@ public: print_verbose("Found Android plugin " + plugins_configs[i].name); r_options->push_back(ExportOption(PropertyInfo(Variant::BOOL, "plugins/" + plugins_configs[i].name), false)); } - plugins_changed = false; + plugins_changed.clear(); Vector<String> abis = get_abis(); for (int i = 0; i < abis.size(); ++i) { @@ -1693,19 +1738,19 @@ public: } virtual bool should_update_export_options() override { - bool export_options_changed = plugins_changed; + bool export_options_changed = plugins_changed.is_set(); if (export_options_changed) { // don't clear unless we're reporting true, to avoid race - plugins_changed = false; + plugins_changed.clear(); } return export_options_changed; } virtual bool poll_export() override { - bool dc = devices_changed; + bool dc = devices_changed.is_set(); if (dc) { // don't clear unless we're reporting true, to avoid race - devices_changed = false; + devices_changed.clear(); } return dc; } @@ -2239,6 +2284,7 @@ public: String release_password = p_preset->get("keystore/release_password"); String apksigner = get_apksigner_path(); + print_verbose("Starting signing of the " + export_label + " binary using " + apksigner); if (!FileAccess::exists(apksigner)) { EditorNode::add_io_error("'apksigner' could not be found.\nPlease check the command is available in the Android SDK build-tools directory.\nThe resulting " + export_label + " is unsigned."); return OK; @@ -2287,6 +2333,10 @@ public: args.push_back("--ks-key-alias"); args.push_back(user); args.push_back(export_path); + if (p_debug) { + // We only print verbose logs for debug builds to avoid leaking release keystore credentials. + print_verbose("Signing debug binary using: " + String("\n") + apksigner + " " + join_list(args, String(" "))); + } int retval; OS::get_singleton()->execute(apksigner, args, nullptr, &retval); if (retval) { @@ -2302,24 +2352,41 @@ public: args.push_back("verify"); args.push_back("--verbose"); args.push_back(export_path); + if (p_debug) { + print_verbose("Verifying signed build using: " + String("\n") + apksigner + " " + join_list(args, String(" "))); + } OS::get_singleton()->execute(apksigner, args, nullptr, &retval); if (retval) { EditorNode::add_io_error("'apksigner' verification of " + export_label + " failed."); return ERR_CANT_CREATE; } + + print_verbose("Successfully completed signing build."); return OK; } void _clear_assets_directory() { DirAccessRef da_res = DirAccess::create(DirAccess::ACCESS_RESOURCES); if (da_res->dir_exists("res://android/build/assets")) { + print_verbose("Clearing assets directory.."); DirAccessRef da_assets = DirAccess::open("res://android/build/assets"); da_assets->erase_contents_recursive(); da_res->remove("res://android/build/assets"); } } + String join_list(List<String> parts, const String &separator) const { + String ret; + for (int i = 0; i < parts.size(); ++i) { + if (i > 0) { + ret += separator; + } + ret += parts[i]; + } + return ret; + } + virtual Error export_project(const Ref<EditorExportPreset> &p_preset, bool p_debug, const String &p_path, int p_flags = 0) override { int export_format = int(p_preset->get("custom_template/export_format")); bool should_sign = p_preset->get("package/signed"); @@ -2339,9 +2406,18 @@ public: bool apk_expansion = p_preset->get("apk_expansion/enable"); Vector<String> enabled_abis = get_enabled_abis(p_preset); + print_verbose("Exporting for Android..."); + print_verbose("- debug build: " + bool_to_string(p_debug)); + print_verbose("- export path: " + p_path); + print_verbose("- export format: " + itos(export_format)); + print_verbose("- sign build: " + bool_to_string(should_sign)); + print_verbose("- custom build enabled: " + bool_to_string(use_custom_build)); + print_verbose("- apk expansion enabled: " + bool_to_string(apk_expansion)); + print_verbose("- enabled abis: " + String(",").join(enabled_abis)); + Ref<Image> splash_image; Ref<Image> splash_bg_color_image; - load_splash_refs(splash_image, splash_bg_color_image); + String processed_splash_config_xml = load_splash_refs(splash_image, splash_bg_color_image); Ref<Image> main_image; Ref<Image> foreground; @@ -2374,14 +2450,17 @@ public: } if (use_custom_build) { + print_verbose("Starting custom build.."); //test that installed build version is alright { + print_verbose("Checking build version.."); FileAccessRef f = FileAccess::open("res://android/.build_version", FileAccess::READ); if (!f) { EditorNode::get_singleton()->show_warning(TTR("Trying to build from a custom built template, but no version info for it exists. Please reinstall from the 'Project' menu.")); return ERR_UNCONFIGURED; } String version = f->get_line().strip_edges(); + print_verbose("- build version: " + version); f->close(); if (version != VERSION_FULL_CONFIG) { EditorNode::get_singleton()->show_warning(vformat(TTR("Android build version mismatch:\n Template installed: %s\n Godot Version: %s\nPlease reinstall Android build template from 'Project' menu."), version, VERSION_FULL_CONFIG)); @@ -2389,7 +2468,8 @@ public: } } String sdk_path = EDITOR_GET("export/android/android_sdk_path"); - ERR_FAIL_COND_V_MSG(sdk_path == "", ERR_UNCONFIGURED, "Android SDK path must be configured in Editor Settings at 'export/android/android_sdk_path'."); + ERR_FAIL_COND_V_MSG(sdk_path.is_empty(), ERR_UNCONFIGURED, "Android SDK path must be configured in Editor Settings at 'export/android/android_sdk_path'."); + print_verbose("Android sdk path: " + sdk_path); // TODO: should we use "package/name" or "application/config/name"? String project_name = get_project_name(p_preset->get("package/name")); @@ -2398,27 +2478,31 @@ public: EditorNode::add_io_error("Unable to overwrite res://android/build/res/*.xml files with project name"); } // Copies the project icon files into the appropriate Gradle project directory. - _copy_icons_to_gradle_project(p_preset, splash_image, splash_bg_color_image, main_image, foreground, background); + _copy_icons_to_gradle_project(p_preset, processed_splash_config_xml, splash_image, splash_bg_color_image, main_image, foreground, background); // Write an AndroidManifest.xml file into the Gradle project directory. _write_tmp_manifest(p_preset, p_give_internet, p_debug); //stores all the project files inside the Gradle project directory. Also includes all ABIs _clear_assets_directory(); if (!apk_expansion) { + print_verbose("Exporting project files.."); err = export_project_files(p_preset, rename_and_store_file_in_gradle_project, NULL, ignore_so_file); if (err != OK) { EditorNode::add_io_error("Could not export project files to gradle project\n"); return err; } } else { + print_verbose("Saving apk expansion file.."); err = save_apk_expansion_file(p_preset, p_path); if (err != OK) { EditorNode::add_io_error("Could not write expansion package file!"); return err; } } + print_verbose("Storing command line flags.."); store_file_at_path("res://android/build/assets/_cl_", command_line_flags); + print_verbose("Updating ANDROID_HOME environment to " + sdk_path); OS::get_singleton()->set_environment("ANDROID_HOME", sdk_path); //set and overwrite if required String build_command; @@ -2458,6 +2542,8 @@ public: cmdline.push_back(apk_build_command); } + cmdline.push_back("-p"); // argument to specify the start directory. + cmdline.push_back(build_path); // start directory. cmdline.push_back("-Pexport_package_name=" + package_name); // argument to specify the package name. cmdline.push_back("-Pexport_version_code=" + version_code); // argument to specify the version code. cmdline.push_back("-Pexport_version_name=" + version_name); // argument to specify the version name. @@ -2467,6 +2553,13 @@ public: cmdline.push_back("-Pplugins_maven_repos=" + custom_maven_repos); // argument to specify the list of custom maven repos for the plugins dependencies. cmdline.push_back("-Pperform_zipalign=" + zipalign_flag); // argument to specify whether the build should be zipaligned. cmdline.push_back("-Pperform_signing=" + sign_flag); // argument to specify whether the build should be signed. + + // NOTE: The release keystore is not included in the verbose logging + // to avoid accidentally leaking sensitive information when sharing verbose logs for troubleshooting. + // Any non-sensitive additions to the command line arguments must be done above this section. + // Sensitive additions must be done below the logging statement. + print_verbose("Build Android project using gradle command: " + String("\n") + build_command + " " + join_list(cmdline, String(" "))); + if (should_sign && !p_debug) { // Pass the release keystore info as well String release_keystore = p_preset->get("keystore/release"); @@ -2481,8 +2574,6 @@ public: cmdline.push_back("-Prelease_keystore_alias=" + release_username); // argument to specify the release keystore alias. cmdline.push_back("-Prelease_keystore_password=" + release_password); // argument to specity the release keystore password. } - cmdline.push_back("-p"); // argument to specify the start directory. - cmdline.push_back(build_path); // start directory. int result = EditorNode::get_singleton()->execute_and_show_output(TTR("Building Android Project (gradle)"), build_command, cmdline); if (result != 0) { @@ -2513,15 +2604,18 @@ public: copy_args.push_back("-Pexport_path=file:" + export_path); copy_args.push_back("-Pexport_filename=" + export_filename); + print_verbose("Copying Android binary using gradle command: " + String("\n") + build_command + " " + join_list(copy_args, String(" "))); int copy_result = EditorNode::get_singleton()->execute_and_show_output(TTR("Moving output"), build_command, copy_args); if (copy_result != 0) { EditorNode::get_singleton()->show_warning(TTR("Unable to copy and rename export file, check gradle project directory for outputs.")); return ERR_CANT_CREATE; } + print_verbose("Successfully completed Android custom build."); return OK; } // This is the start of the Legacy build system + print_verbose("Starting legacy build system.."); if (p_debug) src_apk = p_preset->get("custom_template/debug"); else @@ -2845,14 +2939,13 @@ public: run_icon.instance(); run_icon->create_from_image(img); - devices_changed = true; - plugins_changed = true; - quit_request = false; + devices_changed.set(); + plugins_changed.set(); check_for_changes_thread.start(_check_for_changes_poll_thread, this); } ~EditorExportPlatformAndroid() { - quit_request = true; + quit_request.set(); check_for_changes_thread.wait_to_finish(); } }; diff --git a/platform/android/export/gradle_export_util.h b/platform/android/export/gradle_export_util.h index fc54b65d26..ce6a3c96db 100644 --- a/platform/android/export/gradle_export_util.h +++ b/platform/android/export/gradle_export_util.h @@ -146,6 +146,9 @@ Error store_string_at_path(const String &p_path, const String &p_data) { String dir = p_path.get_base_dir(); Error err = create_directory(dir); if (err != OK) { + if (OS::get_singleton()->is_stdout_verbose()) { + print_error("Unable to write data into " + p_path); + } return err; } FileAccess *fa = FileAccess::open(p_path, FileAccess::WRITE); @@ -162,12 +165,14 @@ Error store_string_at_path(const String &p_path, const String &p_data) { // This method will be called ONLY when custom build is enabled. Error rename_and_store_file_in_gradle_project(void *p_userdata, const String &p_path, const Vector<uint8_t> &p_data, int p_file, int p_total, const Vector<String> &p_enc_in_filters, const Vector<String> &p_enc_ex_filters, const Vector<uint8_t> &p_key) { String dst_path = p_path.replace_first("res://", "res://android/build/assets/"); + print_verbose("Saving project files from " + p_path + " into " + dst_path); Error err = store_file_at_path(dst_path, p_data); return err; } // Creates strings.xml files inside the gradle project for different locales. Error _create_project_name_strings_files(const Ref<EditorExportPreset> &p_preset, const String &project_name) { + print_verbose("Creating strings resources for supported locales for project " + project_name); // Stores the string into the default values directory. String processed_default_xml_string = vformat(godot_project_name_xml_string, project_name.xml_escape(true)); store_string_at_path("res://android/build/res/values/godot_project_name_string.xml", processed_default_xml_string); @@ -175,6 +180,9 @@ Error _create_project_name_strings_files(const Ref<EditorExportPreset> &p_preset // Searches the Gradle project res/ directory to find all supported locales DirAccessRef da = DirAccess::open("res://android/build/res"); if (!da) { + if (OS::get_singleton()->is_stdout_verbose()) { + print_error("Unable to open Android resources directory."); + } return ERR_CANT_OPEN; } da->list_dir_begin(); @@ -193,6 +201,7 @@ Error _create_project_name_strings_files(const Ref<EditorExportPreset> &p_preset if (ProjectSettings::get_singleton()->has_setting(property_name)) { String locale_project_name = ProjectSettings::get_singleton()->get(property_name); String processed_xml_string = vformat(godot_project_name_xml_string, locale_project_name.xml_escape(true)); + print_verbose("Storing project name for locale " + locale + " under " + locale_directory); store_string_at_path(locale_directory, processed_xml_string); } else { // TODO: Once the legacy build system is deprecated we don't need to have xml files for this else branch @@ -208,8 +217,8 @@ String bool_to_string(bool v) { } String _get_gles_tag() { - bool min_gles3 = ProjectSettings::get_singleton()->get("rendering/quality/driver/driver_name") == "GLES3" && - !ProjectSettings::get_singleton()->get("rendering/quality/driver/fallback_to_gles2"); + bool min_gles3 = ProjectSettings::get_singleton()->get("rendering/driver/driver_name") == "GLES3" && + !ProjectSettings::get_singleton()->get("rendering/driver/fallback_to_gles2"); return min_gles3 ? " <uses-feature android:glEsVersion=\"0x00030000\" android:required=\"true\" />\n" : ""; } diff --git a/platform/android/java/app/config.gradle b/platform/android/java/app/config.gradle index 8d3aa8a6b0..202b3c35c0 100644 --- a/platform/android/java/app/config.gradle +++ b/platform/android/java/app/config.gradle @@ -1,5 +1,5 @@ ext.versions = [ - androidGradlePlugin: '4.1.0', + androidGradlePlugin: '4.0.1', compileSdk : 29, minSdk : 18, targetSdk : 29, @@ -8,7 +8,7 @@ ext.versions = [ kotlinVersion : '1.4.10', v4Support : '1.0.0', javaVersion : 1.8, - ndkVersion : '21.3.6528147' // Also update 'platform/android/detect.py#get_project_ndk_version()' when this is updated. + ndkVersion : '21.4.7075529' // Also update 'platform/android/detect.py#get_project_ndk_version()' when this is updated. ] diff --git a/platform/android/java/app/res/drawable/splash_drawable.xml b/platform/android/java/app/res/drawable/splash_drawable.xml index 2794a40817..30627b998c 100644 --- a/platform/android/java/app/res/drawable/splash_drawable.xml +++ b/platform/android/java/app/res/drawable/splash_drawable.xml @@ -6,7 +6,7 @@ <item> <bitmap android:gravity="center" + android:filter="false" android:src="@drawable/splash" /> </item> - </layer-list> diff --git a/platform/android/java/lib/build.gradle b/platform/android/java/lib/build.gradle index 6260cadffb..ca5153f7f6 100644 --- a/platform/android/java/lib/build.gradle +++ b/platform/android/java/lib/build.gradle @@ -13,6 +13,8 @@ android { compileSdkVersion versions.compileSdk buildToolsVersion versions.buildTools + ndkVersion versions.ndkVersion + defaultConfig { minSdkVersion versions.minSdk targetSdkVersion versions.targetSdk diff --git a/platform/android/java/lib/src/org/godotengine/godot/plugin/GodotPlugin.java b/platform/android/java/lib/src/org/godotengine/godot/plugin/GodotPlugin.java index a22b80761d..993f0e9127 100644 --- a/platform/android/java/lib/src/org/godotengine/godot/plugin/GodotPlugin.java +++ b/platform/android/java/lib/src/org/godotengine/godot/plugin/GodotPlugin.java @@ -46,7 +46,9 @@ import androidx.annotation.Nullable; import java.lang.reflect.Method; import java.util.ArrayList; import java.util.Collections; +import java.util.HashMap; import java.util.List; +import java.util.Map; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; @@ -107,14 +109,47 @@ public abstract class GodotPlugin { * This method is invoked on the render thread. */ public final void onRegisterPluginWithGodotNative() { - nativeRegisterSingleton(getPluginName()); + registeredSignals.putAll(registerPluginWithGodotNative(this, new GodotPluginInfoProvider() { + @NonNull + @Override + public String getPluginName() { + return GodotPlugin.this.getPluginName(); + } + + @NonNull + @Override + public List<String> getPluginMethods() { + return GodotPlugin.this.getPluginMethods(); + } + + @NonNull + @Override + public Set<SignalInfo> getPluginSignals() { + return GodotPlugin.this.getPluginSignals(); + } + + @NonNull + @Override + public Set<String> getPluginGDNativeLibrariesPaths() { + return GodotPlugin.this.getPluginGDNativeLibrariesPaths(); + } + })); + } - Class clazz = getClass(); + /** + * Register the plugin with Godot native code. + * + * This method must be invoked on the render thread. + */ + public static Map<String, SignalInfo> registerPluginWithGodotNative(Object pluginObject, GodotPluginInfoProvider pluginInfoProvider) { + nativeRegisterSingleton(pluginInfoProvider.getPluginName(), pluginObject); + + Class clazz = pluginObject.getClass(); Method[] methods = clazz.getDeclaredMethods(); for (Method method : methods) { boolean found = false; - for (String s : getPluginMethods()) { + for (String s : pluginInfoProvider.getPluginMethods()) { if (s.equals(method.getName())) { found = true; break; @@ -123,7 +158,7 @@ public abstract class GodotPlugin { if (!found) continue; - List<String> ptr = new ArrayList<String>(); + List<String> ptr = new ArrayList<>(); Class[] paramTypes = method.getParameterTypes(); for (Class c : paramTypes) { @@ -133,26 +168,29 @@ public abstract class GodotPlugin { String[] pt = new String[ptr.size()]; ptr.toArray(pt); - nativeRegisterMethod(getPluginName(), method.getName(), method.getReturnType().getName(), pt); + nativeRegisterMethod(pluginInfoProvider.getPluginName(), method.getName(), method.getReturnType().getName(), pt); } // Register the signals for this plugin. - for (SignalInfo signalInfo : getPluginSignals()) { + Map<String, SignalInfo> registeredSignals = new HashMap<>(); + for (SignalInfo signalInfo : pluginInfoProvider.getPluginSignals()) { String signalName = signalInfo.getName(); - nativeRegisterSignal(getPluginName(), signalName, signalInfo.getParamTypesNames()); + nativeRegisterSignal(pluginInfoProvider.getPluginName(), signalName, signalInfo.getParamTypesNames()); registeredSignals.put(signalName, signalInfo); } // Get the list of gdnative libraries to register. - Set<String> gdnativeLibrariesPaths = getPluginGDNativeLibrariesPaths(); + Set<String> gdnativeLibrariesPaths = pluginInfoProvider.getPluginGDNativeLibrariesPaths(); if (!gdnativeLibrariesPaths.isEmpty()) { nativeRegisterGDNativeLibraries(gdnativeLibrariesPaths.toArray(new String[0])); } + + return registeredSignals; } /** * Invoked once during the Godot Android initialization process after creation of the - * {@link org.godotengine.godot.GodotView} view. + * {@link org.godotengine.godot.GodotRenderView} view. * <p> * The plugin can return a non-null {@link View} layout in order to add it to the Godot view * hierarchy. @@ -290,8 +328,8 @@ public abstract class GodotPlugin { /** * Emit a registered Godot signal. - * @param signalName - * @param signalArgs + * @param signalName Name of the signal to emit. It will be validated against the set of registered signals. + * @param signalArgs Arguments used to populate the emitted signal. The arguments will be validated against the {@link SignalInfo} matching the registered signalName parameter. */ protected void emitSignal(final String signalName, final Object... signalArgs) { try { @@ -301,6 +339,27 @@ public abstract class GodotPlugin { throw new IllegalArgumentException( "Signal " + signalName + " is not registered for this plugin."); } + emitSignal(getGodot(), getPluginName(), signalInfo, signalArgs); + } catch (IllegalArgumentException exception) { + Log.w(TAG, exception.getMessage()); + if (BuildConfig.DEBUG) { + throw exception; + } + } + } + + /** + * Emit a Godot signal. + * @param godot + * @param pluginName Name of the Godot plugin the signal will be emitted from. The plugin must already be registered with the Godot engine. + * @param signalInfo Information about the signal to emit. + * @param signalArgs Arguments used to populate the emitted signal. The arguments will be validated against the given {@link SignalInfo} parameter. + */ + public static void emitSignal(Godot godot, String pluginName, SignalInfo signalInfo, final Object... signalArgs) { + try { + if (signalInfo == null) { + throw new IllegalArgumentException("Signal must be non null."); + } // Validate the arguments count. Class<?>[] signalParamTypes = signalInfo.getParamTypes(); @@ -317,12 +376,8 @@ public abstract class GodotPlugin { } } - runOnRenderThread(new Runnable() { - @Override - public void run() { - nativeEmitSignal(getPluginName(), signalName, signalArgs); - } - }); + godot.runOnRenderThread(() -> nativeEmitSignal(pluginName, signalInfo.getName(), signalArgs)); + } catch (IllegalArgumentException exception) { Log.w(TAG, exception.getMessage()); if (BuildConfig.DEBUG) { @@ -335,7 +390,7 @@ public abstract class GodotPlugin { * Used to setup a {@link GodotPlugin} instance. * @param p_name Name of the instance. */ - private native void nativeRegisterSingleton(String p_name); + private static native void nativeRegisterSingleton(String p_name, Object object); /** * Used to complete registration of the {@link GodotPlugin} instance's methods. @@ -344,13 +399,13 @@ public abstract class GodotPlugin { * @param p_ret Return type of the registered method * @param p_params Method parameters types */ - private native void nativeRegisterMethod(String p_sname, String p_name, String p_ret, String[] p_params); + private static native void nativeRegisterMethod(String p_sname, String p_name, String p_ret, String[] p_params); /** * Used to register gdnative libraries bundled by the plugin. * @param gdnlibPaths Paths to the libraries relative to the 'assets' directory. */ - private native void nativeRegisterGDNativeLibraries(String[] gdnlibPaths); + private static native void nativeRegisterGDNativeLibraries(String[] gdnlibPaths); /** * Used to complete registration of the {@link GodotPlugin} instance's methods. @@ -358,7 +413,7 @@ public abstract class GodotPlugin { * @param signalName Name of the signal to register * @param signalParamTypes Signal parameters types */ - private native void nativeRegisterSignal(String pluginName, String signalName, String[] signalParamTypes); + private static native void nativeRegisterSignal(String pluginName, String signalName, String[] signalParamTypes); /** * Used to emit signal by {@link GodotPlugin} instance. @@ -366,5 +421,5 @@ public abstract class GodotPlugin { * @param signalName Name of the signal to emit * @param signalParams Signal parameters */ - private native void nativeEmitSignal(String pluginName, String signalName, Object[] signalParams); + private static native void nativeEmitSignal(String pluginName, String signalName, Object[] signalParams); } diff --git a/editor/editor_sub_scene.h b/platform/android/java/lib/src/org/godotengine/godot/plugin/GodotPluginInfoProvider.java index 428bd5a40e..c3084b036e 100644 --- a/editor/editor_sub_scene.h +++ b/platform/android/java/lib/src/org/godotengine/godot/plugin/GodotPluginInfoProvider.java @@ -1,5 +1,5 @@ /*************************************************************************/ -/* editor_sub_scene.h */ +/* GodotPluginInfoProvider.java */ /*************************************************************************/ /* This file is part of: */ /* GODOT ENGINE */ @@ -28,44 +28,40 @@ /* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ /*************************************************************************/ -#ifndef EDITOR_SUB_SCENE_H -#define EDITOR_SUB_SCENE_H +package org.godotengine.godot.plugin; -#include "editor/editor_file_dialog.h" -#include "scene/gui/dialogs.h" -#include "scene/gui/tree.h" +import androidx.annotation.NonNull; -class EditorSubScene : public ConfirmationDialog { - GDCLASS(EditorSubScene, ConfirmationDialog); +import java.util.List; +import java.util.Set; - List<Node *> selection; - LineEdit *path; - Tree *tree; - Node *scene; - bool is_root; +/** + * Provides the set of information expected from a Godot plugin. + */ +public interface GodotPluginInfoProvider { + /** + * Returns the name of the plugin. + */ + @NonNull + String getPluginName(); - EditorFileDialog *file_dialog; + /** + * Returns the list of methods to be exposed to Godot. + */ + @NonNull + List<String> getPluginMethods(); - void _fill_tree(Node *p_node, TreeItem *p_parent); - void _selected_changed(); - void _item_multi_selected(Object *p_object, int p_cell, bool p_selected); - void _item_activated(); - void _remove_selection_child(Node *p_node); - void _reown(Node *p_node, List<Node *> *p_to_reown); + /** + * Returns the list of signals to be exposed to Godot. + */ + @NonNull + Set<SignalInfo> getPluginSignals(); - void ok_pressed() override; - -protected: - void _notification(int p_what); - static void _bind_methods(); - void _path_browse(); - void _path_selected(const String &p_path); - void _path_changed(const String &p_path); - -public: - void move(Node *p_new_parent, Node *p_new_owner); - void clear(); - EditorSubScene(); -}; - -#endif // EDITOR_SUB_SCENE_H + /** + * Returns the paths for the plugin's gdnative libraries (if any). + * + * The paths must be relative to the 'assets' directory and point to a '*.gdnlib' file. + */ + @NonNull + Set<String> getPluginGDNativeLibrariesPaths(); +} diff --git a/platform/android/java_godot_io_wrapper.cpp b/platform/android/java_godot_io_wrapper.cpp index 4ee4427aa0..41201db32b 100644 --- a/platform/android/java_godot_io_wrapper.cpp +++ b/platform/android/java_godot_io_wrapper.cpp @@ -187,14 +187,14 @@ String GodotIOJavaWrapper::get_system_dir(int p_dir) { } } -// volatile because it can be changed from non-main thread and we need to +// SafeNumeric because it can be changed from non-main thread and we need to // ensure the change is immediately visible to other threads. -static volatile int virtual_keyboard_height; +static SafeNumeric<int> virtual_keyboard_height; int GodotIOJavaWrapper::get_vk_height() { - return virtual_keyboard_height; + return virtual_keyboard_height.get(); } void GodotIOJavaWrapper::set_vk_height(int p_height) { - virtual_keyboard_height = p_height; + virtual_keyboard_height.set(p_height); } diff --git a/platform/android/plugin/godot_plugin_jni.cpp b/platform/android/plugin/godot_plugin_jni.cpp index f602e99e61..ba3e9fa20f 100644 --- a/platform/android/plugin/godot_plugin_jni.cpp +++ b/platform/android/plugin/godot_plugin_jni.cpp @@ -41,7 +41,7 @@ static HashMap<String, JNISingleton *> jni_singletons; extern "C" { -JNIEXPORT void JNICALL Java_org_godotengine_godot_plugin_GodotPlugin_nativeRegisterSingleton(JNIEnv *env, jobject obj, jstring name) { +JNIEXPORT void JNICALL Java_org_godotengine_godot_plugin_GodotPlugin_nativeRegisterSingleton(JNIEnv *env, jclass clazz, jstring name, jobject obj) { String singname = jstring_to_string(name, env); JNISingleton *s = (JNISingleton *)ClassDB::instance("JNISingleton"); s->set_instance(env->NewGlobalRef(obj)); @@ -51,7 +51,7 @@ JNIEXPORT void JNICALL Java_org_godotengine_godot_plugin_GodotPlugin_nativeRegis ProjectSettings::get_singleton()->set(singname, s); } -JNIEXPORT void JNICALL Java_org_godotengine_godot_plugin_GodotPlugin_nativeRegisterMethod(JNIEnv *env, jobject obj, jstring sname, jstring name, jstring ret, jobjectArray args) { +JNIEXPORT void JNICALL Java_org_godotengine_godot_plugin_GodotPlugin_nativeRegisterMethod(JNIEnv *env, jclass clazz, jstring sname, jstring name, jstring ret, jobjectArray args) { String singname = jstring_to_string(sname, env); ERR_FAIL_COND(!jni_singletons.has(singname)); @@ -83,7 +83,7 @@ JNIEXPORT void JNICALL Java_org_godotengine_godot_plugin_GodotPlugin_nativeRegis s->add_method(mname, mid, types, get_jni_type(retval)); } -JNIEXPORT void JNICALL Java_org_godotengine_godot_plugin_GodotPlugin_nativeRegisterSignal(JNIEnv *env, jobject obj, jstring j_plugin_name, jstring j_signal_name, jobjectArray j_signal_param_types) { +JNIEXPORT void JNICALL Java_org_godotengine_godot_plugin_GodotPlugin_nativeRegisterSignal(JNIEnv *env, jclass clazz, jstring j_plugin_name, jstring j_signal_name, jobjectArray j_signal_param_types) { String singleton_name = jstring_to_string(j_plugin_name, env); ERR_FAIL_COND(!jni_singletons.has(singleton_name)); @@ -104,7 +104,7 @@ JNIEXPORT void JNICALL Java_org_godotengine_godot_plugin_GodotPlugin_nativeRegis singleton->add_signal(signal_name, types); } -JNIEXPORT void JNICALL Java_org_godotengine_godot_plugin_GodotPlugin_nativeEmitSignal(JNIEnv *env, jobject obj, jstring j_plugin_name, jstring j_signal_name, jobjectArray j_signal_params) { +JNIEXPORT void JNICALL Java_org_godotengine_godot_plugin_GodotPlugin_nativeEmitSignal(JNIEnv *env, jclass clazz, jstring j_plugin_name, jstring j_signal_name, jobjectArray j_signal_params) { String singleton_name = jstring_to_string(j_plugin_name, env); ERR_FAIL_COND(!jni_singletons.has(singleton_name)); @@ -129,7 +129,7 @@ JNIEXPORT void JNICALL Java_org_godotengine_godot_plugin_GodotPlugin_nativeEmitS singleton->emit_signal(signal_name, args, count); } -JNIEXPORT void JNICALL Java_org_godotengine_godot_plugin_GodotPlugin_nativeRegisterGDNativeLibraries(JNIEnv *env, jobject obj, jobjectArray gdnlib_paths) { +JNIEXPORT void JNICALL Java_org_godotengine_godot_plugin_GodotPlugin_nativeRegisterGDNativeLibraries(JNIEnv *env, jclass clazz, jobjectArray gdnlib_paths) { int gdnlib_count = env->GetArrayLength(gdnlib_paths); if (gdnlib_count == 0) { return; diff --git a/platform/android/plugin/godot_plugin_jni.h b/platform/android/plugin/godot_plugin_jni.h index 8a08ec3709..b87f922e03 100644 --- a/platform/android/plugin/godot_plugin_jni.h +++ b/platform/android/plugin/godot_plugin_jni.h @@ -35,11 +35,11 @@ #include <jni.h> extern "C" { -JNIEXPORT void JNICALL Java_org_godotengine_godot_plugin_GodotPlugin_nativeRegisterSingleton(JNIEnv *env, jobject obj, jstring name); -JNIEXPORT void JNICALL Java_org_godotengine_godot_plugin_GodotPlugin_nativeRegisterMethod(JNIEnv *env, jobject obj, jstring sname, jstring name, jstring ret, jobjectArray args); -JNIEXPORT void JNICALL Java_org_godotengine_godot_plugin_GodotPlugin_nativeRegisterSignal(JNIEnv *env, jobject obj, jstring j_plugin_name, jstring j_signal_name, jobjectArray j_signal_param_types); -JNIEXPORT void JNICALL Java_org_godotengine_godot_plugin_GodotPlugin_nativeEmitSignal(JNIEnv *env, jobject obj, jstring j_plugin_name, jstring j_signal_name, jobjectArray j_signal_params); -JNIEXPORT void JNICALL Java_org_godotengine_godot_plugin_GodotPlugin_nativeRegisterGDNativeLibraries(JNIEnv *env, jobject obj, jobjectArray gdnlib_paths); +JNIEXPORT void JNICALL Java_org_godotengine_godot_plugin_GodotPlugin_nativeRegisterSingleton(JNIEnv *env, jclass clazz, jstring name, jobject obj); +JNIEXPORT void JNICALL Java_org_godotengine_godot_plugin_GodotPlugin_nativeRegisterMethod(JNIEnv *env, jclass clazz, jstring sname, jstring name, jstring ret, jobjectArray args); +JNIEXPORT void JNICALL Java_org_godotengine_godot_plugin_GodotPlugin_nativeRegisterSignal(JNIEnv *env, jclass clazz, jstring j_plugin_name, jstring j_signal_name, jobjectArray j_signal_param_types); +JNIEXPORT void JNICALL Java_org_godotengine_godot_plugin_GodotPlugin_nativeEmitSignal(JNIEnv *env, jclass clazz, jstring j_plugin_name, jstring j_signal_name, jobjectArray j_signal_params); +JNIEXPORT void JNICALL Java_org_godotengine_godot_plugin_GodotPlugin_nativeRegisterGDNativeLibraries(JNIEnv *env, jclass clazz, jobjectArray gdnlib_paths); } #endif // GODOT_PLUGIN_JNI_H diff --git a/platform/iphone/display_layer.mm b/platform/iphone/display_layer.mm index fb57db4518..b8df81b89a 100644 --- a/platform/iphone/display_layer.mm +++ b/platform/iphone/display_layer.mm @@ -89,7 +89,7 @@ // FIXME: Add Vulkan support via MoltenVK. Add fallback code back? // Create GL ES 2 context - if (GLOBAL_GET("rendering/quality/driver/driver_name") == "GLES2") { + if (GLOBAL_GET("rendering/driver/driver_name") == "GLES2") { context = [[EAGLContext alloc] initWithAPI:kEAGLRenderingAPIOpenGLES2]; NSLog(@"Setting up an OpenGL ES 2.0 context."); if (!context) { diff --git a/platform/iphone/export/export.cpp b/platform/iphone/export/export.cpp index 91cecdd704..c585c2afbe 100644 --- a/platform/iphone/export/export.cpp +++ b/platform/iphone/export/export.cpp @@ -37,6 +37,7 @@ #include "core/io/zip_io.h" #include "core/os/file_access.h" #include "core/os/os.h" +#include "core/templates/safe_refcount.h" #include "core/version.h" #include "editor/editor_export.h" #include "editor/editor_node.h" @@ -56,9 +57,9 @@ class EditorExportPlatformIOS : public EditorExportPlatform { Ref<ImageTexture> logo; // Plugins - volatile bool plugins_changed; + SafeFlag plugins_changed; Thread check_for_changes_thread; - volatile bool quit_request; + SafeFlag quit_request; Mutex plugins_lock; Vector<PluginConfigIOS> plugins; @@ -141,19 +142,19 @@ class EditorExportPlatformIOS : public EditorExportPlatform { static void _check_for_changes_poll_thread(void *ud) { EditorExportPlatformIOS *ea = (EditorExportPlatformIOS *)ud; - while (!ea->quit_request) { + while (!ea->quit_request.is_set()) { // Nothing to do if we already know the plugins have changed. - if (!ea->plugins_changed) { + if (!ea->plugins_changed.is_set()) { MutexLock lock(ea->plugins_lock); Vector<PluginConfigIOS> loaded_plugins = get_plugins(); if (ea->plugins.size() != loaded_plugins.size()) { - ea->plugins_changed = true; + ea->plugins_changed.set(); } else { for (int i = 0; i < ea->plugins.size(); i++) { if (ea->plugins[i].name != loaded_plugins[i].name || ea->plugins[i].last_updated != loaded_plugins[i].last_updated) { - ea->plugins_changed = true; + ea->plugins_changed.set(); break; } } @@ -165,7 +166,7 @@ class EditorExportPlatformIOS : public EditorExportPlatform { while (OS::get_singleton()->get_ticks_usec() - time < wait) { OS::get_singleton()->delay_usec(300000); - if (ea->quit_request) { + if (ea->quit_request.is_set()) { break; } } @@ -182,10 +183,10 @@ public: virtual Ref<Texture2D> get_logo() const override { return logo; } virtual bool should_update_export_options() override { - bool export_options_changed = plugins_changed; + bool export_options_changed = plugins_changed.is_set(); if (export_options_changed) { // don't clear unless we're reporting true, to avoid race - plugins_changed = false; + plugins_changed.clear(); } return export_options_changed; } @@ -291,7 +292,7 @@ public: }; void EditorExportPlatformIOS::get_preset_features(const Ref<EditorExportPreset> &p_preset, List<String> *r_features) { - String driver = ProjectSettings::get_singleton()->get("rendering/quality/driver/driver_name"); + String driver = ProjectSettings::get_singleton()->get("rendering/driver/driver_name"); r_features->push_back("pvrtc"); if (driver == "Vulkan") { // FIXME: Review if this is correct. @@ -364,7 +365,7 @@ void EditorExportPlatformIOS::get_export_options(List<ExportOption> *r_options) for (int i = 0; i < found_plugins.size(); i++) { r_options->push_back(ExportOption(PropertyInfo(Variant::BOOL, "plugins/" + found_plugins[i].name), false)); } - plugins_changed = false; + plugins_changed.clear(); plugins = found_plugins; r_options->push_back(ExportOption(PropertyInfo(Variant::BOOL, "capabilities/access_wifi"), false)); @@ -1967,14 +1968,13 @@ EditorExportPlatformIOS::EditorExportPlatformIOS() { logo.instance(); logo->create_from_image(img); - plugins_changed = true; - quit_request = false; + plugins_changed.set(); check_for_changes_thread.start(_check_for_changes_poll_thread, this); } EditorExportPlatformIOS::~EditorExportPlatformIOS() { - quit_request = true; + quit_request.set(); check_for_changes_thread.wait_to_finish(); } diff --git a/platform/javascript/audio_driver_javascript.cpp b/platform/javascript/audio_driver_javascript.cpp index f7cc9e6540..478e848675 100644 --- a/platform/javascript/audio_driver_javascript.cpp +++ b/platform/javascript/audio_driver_javascript.cpp @@ -105,8 +105,8 @@ void AudioDriverJavaScript::_audio_driver_capture(int p_from, int p_samples) { } Error AudioDriverJavaScript::init() { - mix_rate = GLOBAL_GET("audio/mix_rate"); - int latency = GLOBAL_GET("audio/output_latency"); + mix_rate = GLOBAL_GET("audio/driver/mix_rate"); + int latency = GLOBAL_GET("audio/driver/output_latency"); channel_count = godot_audio_init(mix_rate, latency, &_state_change_callback, &_latency_update_callback); buffer_length = closest_power_of_2((latency * mix_rate / 1000)); diff --git a/platform/javascript/detect.py b/platform/javascript/detect.py index 653d18f791..4297088c09 100644 --- a/platform/javascript/detect.py +++ b/platform/javascript/detect.py @@ -92,9 +92,9 @@ def configure(env): if not env["threads_enabled"]: print("Threads must be enabled to build the editor. Please add the 'threads_enabled=yes' option") sys.exit(255) - if env["initial_memory"] < 32: - print("Editor build requires at least 32MiB of initial memory. Forcing it.") - env["initial_memory"] = 32 + if env["initial_memory"] < 64: + print("Editor build requires at least 64MiB of initial memory. Forcing it.") + env["initial_memory"] = 64 elif env["builtin_icu"]: env.Append(CCFLAGS=["-frtti"]) else: @@ -229,7 +229,15 @@ def configure(env): env.Append(LINKFLAGS=["-s", "OFFSCREEN_FRAMEBUFFER=1"]) # callMain for manual start. - env.Append(LINKFLAGS=["-s", "EXTRA_EXPORTED_RUNTIME_METHODS=['callMain']"]) + env.Append(LINKFLAGS=["-s", "EXTRA_EXPORTED_RUNTIME_METHODS=['callMain','cwrap']"]) # Add code that allow exiting runtime. env.Append(LINKFLAGS=["-s", "EXIT_RUNTIME=1"]) + + # TODO remove once we have GLES support back (temporary fix undefined symbols due to dead code elimination). + env.Append( + LINKFLAGS=[ + "-s", + "EXPORTED_FUNCTIONS=['_main', '_emscripten_webgl_get_current_context', '_emscripten_webgl_commit_frame', '_emscripten_webgl_create_context']", + ] + ) diff --git a/platform/javascript/export/export.cpp b/platform/javascript/export/export.cpp index f5d8a68994..199d778314 100644 --- a/platform/javascript/export/export.cpp +++ b/platform/javascript/export/export.cpp @@ -319,7 +319,7 @@ void EditorExportPlatformJavaScript::get_preset_features(const Ref<EditorExportP } if (p_preset->get("vram_texture_compression/for_mobile")) { - String driver = ProjectSettings::get_singleton()->get("rendering/quality/driver/driver_name"); + String driver = ProjectSettings::get_singleton()->get("rendering/driver/driver_name"); if (driver == "GLES2") { r_features->push_back("etc"); } else if (driver == "Vulkan") { diff --git a/platform/javascript/godot_js.h b/platform/javascript/godot_js.h index d2a2fbd6db..f0da8b7ca3 100644 --- a/platform/javascript/godot_js.h +++ b/platform/javascript/godot_js.h @@ -49,6 +49,7 @@ extern int godot_js_os_fs_is_persistent(); extern void godot_js_os_fs_sync(void (*p_callback)()); extern int godot_js_os_execute(const char *p_json); extern void godot_js_os_shell_open(const char *p_uri); +extern int godot_js_os_hw_concurrency_get(); // Display extern int godot_js_display_screen_dpi_get(); diff --git a/platform/javascript/js/libs/library_godot_os.js b/platform/javascript/js/libs/library_godot_os.js index 9fde4a84e1..3ffcd655b7 100644 --- a/platform/javascript/js/libs/library_godot_os.js +++ b/platform/javascript/js/libs/library_godot_os.js @@ -282,6 +282,11 @@ const GodotOS = { godot_js_os_shell_open: function (p_uri) { window.open(GodotRuntime.parseString(p_uri), '_blank'); }, + + godot_js_os_hw_concurrency_get__sig: 'i', + godot_js_os_hw_concurrency_get: function () { + return navigator.hardwareConcurrency || 1; + }, }; autoAddDeps(GodotOS, '$GodotOS'); diff --git a/platform/javascript/os_javascript.cpp b/platform/javascript/os_javascript.cpp index b922b2ba91..0b1650076c 100644 --- a/platform/javascript/os_javascript.cpp +++ b/platform/javascript/os_javascript.cpp @@ -129,6 +129,10 @@ int OS_JavaScript::get_process_id() const { ERR_FAIL_V_MSG(0, "OS::get_process_id() is not available on the HTML5 platform."); } +int OS_JavaScript::get_processor_count() const { + return godot_js_os_hw_concurrency_get(); +} + bool OS_JavaScript::_check_internal_feature_support(const String &p_feature) { if (p_feature == "HTML5" || p_feature == "web") { return true; diff --git a/platform/javascript/os_javascript.h b/platform/javascript/os_javascript.h index 8db62d9d1c..81bb9c5f3d 100644 --- a/platform/javascript/os_javascript.h +++ b/platform/javascript/os_javascript.h @@ -74,6 +74,7 @@ public: Error create_process(const String &p_path, const List<String> &p_arguments, ProcessID *r_child_id = nullptr) override; Error kill(const ProcessID &p_pid) override; int get_process_id() const override; + int get_processor_count() const override; String get_executable_path() const override; Error shell_open(String p_uri) override; diff --git a/platform/linuxbsd/SCsub b/platform/linuxbsd/SCsub index ddc698a55b..46714e9502 100644 --- a/platform/linuxbsd/SCsub +++ b/platform/linuxbsd/SCsub @@ -16,6 +16,9 @@ common_x11 = [ "key_mapping_x11.cpp", ] +if "udev" in env and env["udev"]: + common_x11.append("libudev-so_wrap.c") + prog = env.add_program("#bin/godot", ["godot_linuxbsd.cpp"] + common_x11) if env["debug_symbols"] and env["separate_debug_symbols"]: diff --git a/platform/linuxbsd/detect.py b/platform/linuxbsd/detect.py index 13d1fe3237..f87e9cf886 100644 --- a/platform/linuxbsd/detect.py +++ b/platform/linuxbsd/detect.py @@ -310,9 +310,8 @@ def configure(env): if os.system("pkg-config --exists alsa") == 0: # 0 means found print("Enabling ALSA") + env["alsa"] = True env.Append(CPPDEFINES=["ALSA_ENABLED", "ALSAMIDI_ENABLED"]) - # Don't parse --cflags, we don't need to add /usr/include/alsa to include path - env.ParseConfig("pkg-config alsa --libs") else: print("ALSA libraries not found, disabling driver") @@ -320,20 +319,20 @@ def configure(env): if os.system("pkg-config --exists libpulse") == 0: # 0 means found print("Enabling PulseAudio") env.Append(CPPDEFINES=["PULSEAUDIO_ENABLED"]) - env.ParseConfig("pkg-config --cflags --libs libpulse") + env.ParseConfig("pkg-config --cflags libpulse") else: print("PulseAudio development libraries not found, disabling driver") if platform.system() == "Linux": env.Append(CPPDEFINES=["JOYDEV_ENABLED"]) - if env["udev"]: if os.system("pkg-config --exists libudev") == 0: # 0 means found print("Enabling udev support") env.Append(CPPDEFINES=["UDEV_ENABLED"]) - env.ParseConfig("pkg-config libudev --cflags --libs") else: print("libudev development libraries not found, disabling udev support") + else: + env["udev"] = False # Linux specific # Linkflags below this line should typically stay the last ones if not env["builtin_zlib"]: diff --git a/platform/linuxbsd/display_server_x11.cpp b/platform/linuxbsd/display_server_x11.cpp index 53baf17858..fceeb82325 100644 --- a/platform/linuxbsd/display_server_x11.cpp +++ b/platform/linuxbsd/display_server_x11.cpp @@ -2697,7 +2697,7 @@ bool DisplayServerX11::_wait_for_events() const { } void DisplayServerX11::_poll_events() { - while (!events_thread_done) { + while (!events_thread_done.is_set()) { _wait_for_events(); // Process events from the queue. @@ -4279,7 +4279,7 @@ DisplayServerX11::~DisplayServerX11() { _clipboard_transfer_ownership(XA_PRIMARY, x11_main_window); _clipboard_transfer_ownership(XInternAtom(x11_display, "CLIPBOARD", 0), x11_main_window); - events_thread_done = true; + events_thread_done.set(); events_thread.wait_to_finish(); //destroy all windows diff --git a/platform/linuxbsd/display_server_x11.h b/platform/linuxbsd/display_server_x11.h index 906710f933..10686d8424 100644 --- a/platform/linuxbsd/display_server_x11.h +++ b/platform/linuxbsd/display_server_x11.h @@ -253,7 +253,7 @@ class DisplayServerX11 : public DisplayServer { mutable Mutex events_mutex; Thread events_thread; - bool events_thread_done = false; + SafeFlag events_thread_done; LocalVector<XEvent> polled_events; static void _poll_events_thread(void *ud); bool _wait_for_events() const; diff --git a/platform/linuxbsd/joypad_linux.cpp b/platform/linuxbsd/joypad_linux.cpp index 4e96e6d687..fc818a478d 100644 --- a/platform/linuxbsd/joypad_linux.cpp +++ b/platform/linuxbsd/joypad_linux.cpp @@ -39,7 +39,7 @@ #include <unistd.h> #ifdef UDEV_ENABLED -#include <libudev.h> +#include "libudev-so_wrap.h" #endif #define LONG_BITS (sizeof(long) * 8) @@ -72,13 +72,22 @@ void JoypadLinux::Joypad::reset() { } JoypadLinux::JoypadLinux(Input *in) { - exit_udev = false; +#ifdef UDEV_ENABLED + use_udev = initialize_libudev() == 0; + if (use_udev) { + print_verbose("JoypadLinux: udev enabled and loaded successfully."); + } else { + print_verbose("JoypadLinux: udev enabled, but couldn't be loaded. Falling back to /dev/input to detect joypads."); + } +#else + print_verbose("JoypadLinux: udev disabled, parsing /dev/input to detect joypads."); +#endif input = in; joy_thread.start(joy_thread_func, this); } JoypadLinux::~JoypadLinux() { - exit_udev = true; + exit_monitor.set(); joy_thread.wait_to_finish(); close_joypad(); } @@ -92,11 +101,20 @@ void JoypadLinux::joy_thread_func(void *p_user) { void JoypadLinux::run_joypad_thread() { #ifdef UDEV_ENABLED - udev *_udev = udev_new(); - ERR_FAIL_COND(!_udev); - enumerate_joypads(_udev); - monitor_joypads(_udev); - udev_unref(_udev); + if (use_udev) { + udev *_udev = udev_new(); + if (!_udev) { + use_udev = false; + ERR_PRINT("Failed getting an udev context, falling back to parsing /dev/input."); + monitor_joypads(); + } else { + enumerate_joypads(_udev); + monitor_joypads(_udev); + udev_unref(_udev); + } + } else { + monitor_joypads(); + } #else monitor_joypads(); #endif @@ -137,7 +155,7 @@ void JoypadLinux::monitor_joypads(udev *p_udev) { udev_monitor_enable_receiving(mon); int fd = udev_monitor_get_fd(mon); - while (!exit_udev) { + while (!exit_monitor.is_set()) { fd_set fds; struct timeval tv; int ret; @@ -179,7 +197,7 @@ void JoypadLinux::monitor_joypads(udev *p_udev) { #endif void JoypadLinux::monitor_joypads() { - while (!exit_udev) { + while (!exit_monitor.is_set()) { { MutexLock lock(joy_mutex); diff --git a/platform/linuxbsd/joypad_linux.h b/platform/linuxbsd/joypad_linux.h index bf343b7ceb..b0d0db047b 100644 --- a/platform/linuxbsd/joypad_linux.h +++ b/platform/linuxbsd/joypad_linux.h @@ -70,10 +70,13 @@ private: void reset(); }; - bool exit_udev; +#ifdef UDEV_ENABLED + bool use_udev = false; +#endif + SafeFlag exit_monitor; Mutex joy_mutex; Thread joy_thread; - Input *input; + Input *input = nullptr; Joypad joypads[JOYPADS_MAX]; Vector<String> attached_devices; diff --git a/platform/linuxbsd/libudev-so_wrap.c b/platform/linuxbsd/libudev-so_wrap.c new file mode 100644 index 0000000000..07f368d7c5 --- /dev/null +++ b/platform/linuxbsd/libudev-so_wrap.c @@ -0,0 +1,829 @@ +// This file is generated. Do not edit! +// see https://github.com/hpvb/dynload-wrapper for details +// generated by /home/hp/Projects/godot/pulse/generate-wrapper.py 0.2 on 2021-02-18 00:18:56 +// flags: /home/hp/Projects/godot/pulse/generate-wrapper.py --include /usr/include/libudev.h --sys-include <libudev.h> --soname libudev.so.1 --init-name libudev --omit-prefix gnu_ --output-header libudev-so_wrap.h --output-implementation libudev-so_wrap.c +// +#define udev_ref udev_ref_dylibloader_orig_libudev +#define udev_unref udev_unref_dylibloader_orig_libudev +#define udev_new udev_new_dylibloader_orig_libudev +#define udev_set_log_fn udev_set_log_fn_dylibloader_orig_libudev +#define udev_get_log_priority udev_get_log_priority_dylibloader_orig_libudev +#define udev_set_log_priority udev_set_log_priority_dylibloader_orig_libudev +#define udev_get_userdata udev_get_userdata_dylibloader_orig_libudev +#define udev_set_userdata udev_set_userdata_dylibloader_orig_libudev +#define udev_list_entry_get_next udev_list_entry_get_next_dylibloader_orig_libudev +#define udev_list_entry_get_by_name udev_list_entry_get_by_name_dylibloader_orig_libudev +#define udev_list_entry_get_name udev_list_entry_get_name_dylibloader_orig_libudev +#define udev_list_entry_get_value udev_list_entry_get_value_dylibloader_orig_libudev +#define udev_device_ref udev_device_ref_dylibloader_orig_libudev +#define udev_device_unref udev_device_unref_dylibloader_orig_libudev +#define udev_device_get_udev udev_device_get_udev_dylibloader_orig_libudev +#define udev_device_new_from_syspath udev_device_new_from_syspath_dylibloader_orig_libudev +#define udev_device_new_from_devnum udev_device_new_from_devnum_dylibloader_orig_libudev +#define udev_device_new_from_subsystem_sysname udev_device_new_from_subsystem_sysname_dylibloader_orig_libudev +#define udev_device_new_from_device_id udev_device_new_from_device_id_dylibloader_orig_libudev +#define udev_device_new_from_environment udev_device_new_from_environment_dylibloader_orig_libudev +#define udev_device_get_parent udev_device_get_parent_dylibloader_orig_libudev +#define udev_device_get_parent_with_subsystem_devtype udev_device_get_parent_with_subsystem_devtype_dylibloader_orig_libudev +#define udev_device_get_devpath udev_device_get_devpath_dylibloader_orig_libudev +#define udev_device_get_subsystem udev_device_get_subsystem_dylibloader_orig_libudev +#define udev_device_get_devtype udev_device_get_devtype_dylibloader_orig_libudev +#define udev_device_get_syspath udev_device_get_syspath_dylibloader_orig_libudev +#define udev_device_get_sysname udev_device_get_sysname_dylibloader_orig_libudev +#define udev_device_get_sysnum udev_device_get_sysnum_dylibloader_orig_libudev +#define udev_device_get_devnode udev_device_get_devnode_dylibloader_orig_libudev +#define udev_device_get_is_initialized udev_device_get_is_initialized_dylibloader_orig_libudev +#define udev_device_get_devlinks_list_entry udev_device_get_devlinks_list_entry_dylibloader_orig_libudev +#define udev_device_get_properties_list_entry udev_device_get_properties_list_entry_dylibloader_orig_libudev +#define udev_device_get_tags_list_entry udev_device_get_tags_list_entry_dylibloader_orig_libudev +#define udev_device_get_sysattr_list_entry udev_device_get_sysattr_list_entry_dylibloader_orig_libudev +#define udev_device_get_property_value udev_device_get_property_value_dylibloader_orig_libudev +#define udev_device_get_driver udev_device_get_driver_dylibloader_orig_libudev +#define udev_device_get_devnum udev_device_get_devnum_dylibloader_orig_libudev +#define udev_device_get_action udev_device_get_action_dylibloader_orig_libudev +#define udev_device_get_seqnum udev_device_get_seqnum_dylibloader_orig_libudev +#define udev_device_get_usec_since_initialized udev_device_get_usec_since_initialized_dylibloader_orig_libudev +#define udev_device_get_sysattr_value udev_device_get_sysattr_value_dylibloader_orig_libudev +#define udev_device_set_sysattr_value udev_device_set_sysattr_value_dylibloader_orig_libudev +#define udev_device_has_tag udev_device_has_tag_dylibloader_orig_libudev +#define udev_monitor_ref udev_monitor_ref_dylibloader_orig_libudev +#define udev_monitor_unref udev_monitor_unref_dylibloader_orig_libudev +#define udev_monitor_get_udev udev_monitor_get_udev_dylibloader_orig_libudev +#define udev_monitor_new_from_netlink udev_monitor_new_from_netlink_dylibloader_orig_libudev +#define udev_monitor_enable_receiving udev_monitor_enable_receiving_dylibloader_orig_libudev +#define udev_monitor_set_receive_buffer_size udev_monitor_set_receive_buffer_size_dylibloader_orig_libudev +#define udev_monitor_get_fd udev_monitor_get_fd_dylibloader_orig_libudev +#define udev_monitor_receive_device udev_monitor_receive_device_dylibloader_orig_libudev +#define udev_monitor_filter_add_match_subsystem_devtype udev_monitor_filter_add_match_subsystem_devtype_dylibloader_orig_libudev +#define udev_monitor_filter_add_match_tag udev_monitor_filter_add_match_tag_dylibloader_orig_libudev +#define udev_monitor_filter_update udev_monitor_filter_update_dylibloader_orig_libudev +#define udev_monitor_filter_remove udev_monitor_filter_remove_dylibloader_orig_libudev +#define udev_enumerate_ref udev_enumerate_ref_dylibloader_orig_libudev +#define udev_enumerate_unref udev_enumerate_unref_dylibloader_orig_libudev +#define udev_enumerate_get_udev udev_enumerate_get_udev_dylibloader_orig_libudev +#define udev_enumerate_new udev_enumerate_new_dylibloader_orig_libudev +#define udev_enumerate_add_match_subsystem udev_enumerate_add_match_subsystem_dylibloader_orig_libudev +#define udev_enumerate_add_nomatch_subsystem udev_enumerate_add_nomatch_subsystem_dylibloader_orig_libudev +#define udev_enumerate_add_match_sysattr udev_enumerate_add_match_sysattr_dylibloader_orig_libudev +#define udev_enumerate_add_nomatch_sysattr udev_enumerate_add_nomatch_sysattr_dylibloader_orig_libudev +#define udev_enumerate_add_match_property udev_enumerate_add_match_property_dylibloader_orig_libudev +#define udev_enumerate_add_match_sysname udev_enumerate_add_match_sysname_dylibloader_orig_libudev +#define udev_enumerate_add_match_tag udev_enumerate_add_match_tag_dylibloader_orig_libudev +#define udev_enumerate_add_match_parent udev_enumerate_add_match_parent_dylibloader_orig_libudev +#define udev_enumerate_add_match_is_initialized udev_enumerate_add_match_is_initialized_dylibloader_orig_libudev +#define udev_enumerate_add_syspath udev_enumerate_add_syspath_dylibloader_orig_libudev +#define udev_enumerate_scan_devices udev_enumerate_scan_devices_dylibloader_orig_libudev +#define udev_enumerate_scan_subsystems udev_enumerate_scan_subsystems_dylibloader_orig_libudev +#define udev_enumerate_get_list_entry udev_enumerate_get_list_entry_dylibloader_orig_libudev +#define udev_queue_ref udev_queue_ref_dylibloader_orig_libudev +#define udev_queue_unref udev_queue_unref_dylibloader_orig_libudev +#define udev_queue_get_udev udev_queue_get_udev_dylibloader_orig_libudev +#define udev_queue_new udev_queue_new_dylibloader_orig_libudev +#define udev_queue_get_kernel_seqnum udev_queue_get_kernel_seqnum_dylibloader_orig_libudev +#define udev_queue_get_udev_seqnum udev_queue_get_udev_seqnum_dylibloader_orig_libudev +#define udev_queue_get_udev_is_active udev_queue_get_udev_is_active_dylibloader_orig_libudev +#define udev_queue_get_queue_is_empty udev_queue_get_queue_is_empty_dylibloader_orig_libudev +#define udev_queue_get_seqnum_is_finished udev_queue_get_seqnum_is_finished_dylibloader_orig_libudev +#define udev_queue_get_seqnum_sequence_is_finished udev_queue_get_seqnum_sequence_is_finished_dylibloader_orig_libudev +#define udev_queue_get_fd udev_queue_get_fd_dylibloader_orig_libudev +#define udev_queue_flush udev_queue_flush_dylibloader_orig_libudev +#define udev_queue_get_queued_list_entry udev_queue_get_queued_list_entry_dylibloader_orig_libudev +#define udev_hwdb_new udev_hwdb_new_dylibloader_orig_libudev +#define udev_hwdb_ref udev_hwdb_ref_dylibloader_orig_libudev +#define udev_hwdb_unref udev_hwdb_unref_dylibloader_orig_libudev +#define udev_hwdb_get_properties_list_entry udev_hwdb_get_properties_list_entry_dylibloader_orig_libudev +#define udev_util_encode_string udev_util_encode_string_dylibloader_orig_libudev +#include <libudev.h> +#undef udev_ref +#undef udev_unref +#undef udev_new +#undef udev_set_log_fn +#undef udev_get_log_priority +#undef udev_set_log_priority +#undef udev_get_userdata +#undef udev_set_userdata +#undef udev_list_entry_get_next +#undef udev_list_entry_get_by_name +#undef udev_list_entry_get_name +#undef udev_list_entry_get_value +#undef udev_device_ref +#undef udev_device_unref +#undef udev_device_get_udev +#undef udev_device_new_from_syspath +#undef udev_device_new_from_devnum +#undef udev_device_new_from_subsystem_sysname +#undef udev_device_new_from_device_id +#undef udev_device_new_from_environment +#undef udev_device_get_parent +#undef udev_device_get_parent_with_subsystem_devtype +#undef udev_device_get_devpath +#undef udev_device_get_subsystem +#undef udev_device_get_devtype +#undef udev_device_get_syspath +#undef udev_device_get_sysname +#undef udev_device_get_sysnum +#undef udev_device_get_devnode +#undef udev_device_get_is_initialized +#undef udev_device_get_devlinks_list_entry +#undef udev_device_get_properties_list_entry +#undef udev_device_get_tags_list_entry +#undef udev_device_get_sysattr_list_entry +#undef udev_device_get_property_value +#undef udev_device_get_driver +#undef udev_device_get_devnum +#undef udev_device_get_action +#undef udev_device_get_seqnum +#undef udev_device_get_usec_since_initialized +#undef udev_device_get_sysattr_value +#undef udev_device_set_sysattr_value +#undef udev_device_has_tag +#undef udev_monitor_ref +#undef udev_monitor_unref +#undef udev_monitor_get_udev +#undef udev_monitor_new_from_netlink +#undef udev_monitor_enable_receiving +#undef udev_monitor_set_receive_buffer_size +#undef udev_monitor_get_fd +#undef udev_monitor_receive_device +#undef udev_monitor_filter_add_match_subsystem_devtype +#undef udev_monitor_filter_add_match_tag +#undef udev_monitor_filter_update +#undef udev_monitor_filter_remove +#undef udev_enumerate_ref +#undef udev_enumerate_unref +#undef udev_enumerate_get_udev +#undef udev_enumerate_new +#undef udev_enumerate_add_match_subsystem +#undef udev_enumerate_add_nomatch_subsystem +#undef udev_enumerate_add_match_sysattr +#undef udev_enumerate_add_nomatch_sysattr +#undef udev_enumerate_add_match_property +#undef udev_enumerate_add_match_sysname +#undef udev_enumerate_add_match_tag +#undef udev_enumerate_add_match_parent +#undef udev_enumerate_add_match_is_initialized +#undef udev_enumerate_add_syspath +#undef udev_enumerate_scan_devices +#undef udev_enumerate_scan_subsystems +#undef udev_enumerate_get_list_entry +#undef udev_queue_ref +#undef udev_queue_unref +#undef udev_queue_get_udev +#undef udev_queue_new +#undef udev_queue_get_kernel_seqnum +#undef udev_queue_get_udev_seqnum +#undef udev_queue_get_udev_is_active +#undef udev_queue_get_queue_is_empty +#undef udev_queue_get_seqnum_is_finished +#undef udev_queue_get_seqnum_sequence_is_finished +#undef udev_queue_get_fd +#undef udev_queue_flush +#undef udev_queue_get_queued_list_entry +#undef udev_hwdb_new +#undef udev_hwdb_ref +#undef udev_hwdb_unref +#undef udev_hwdb_get_properties_list_entry +#undef udev_util_encode_string +#include <dlfcn.h> +#include <stdio.h> +struct udev* (*udev_ref_dylibloader_wrapper_libudev)(struct udev*); +struct udev* (*udev_unref_dylibloader_wrapper_libudev)(struct udev*); +struct udev* (*udev_new_dylibloader_wrapper_libudev)( void); +void (*udev_set_log_fn_dylibloader_wrapper_libudev)(struct udev*, void*); +int (*udev_get_log_priority_dylibloader_wrapper_libudev)(struct udev*); +void (*udev_set_log_priority_dylibloader_wrapper_libudev)(struct udev*, int); +void* (*udev_get_userdata_dylibloader_wrapper_libudev)(struct udev*); +void (*udev_set_userdata_dylibloader_wrapper_libudev)(struct udev*, void*); +struct udev_list_entry* (*udev_list_entry_get_next_dylibloader_wrapper_libudev)(struct udev_list_entry*); +struct udev_list_entry* (*udev_list_entry_get_by_name_dylibloader_wrapper_libudev)(struct udev_list_entry*,const char*); +const char* (*udev_list_entry_get_name_dylibloader_wrapper_libudev)(struct udev_list_entry*); +const char* (*udev_list_entry_get_value_dylibloader_wrapper_libudev)(struct udev_list_entry*); +struct udev_device* (*udev_device_ref_dylibloader_wrapper_libudev)(struct udev_device*); +struct udev_device* (*udev_device_unref_dylibloader_wrapper_libudev)(struct udev_device*); +struct udev* (*udev_device_get_udev_dylibloader_wrapper_libudev)(struct udev_device*); +struct udev_device* (*udev_device_new_from_syspath_dylibloader_wrapper_libudev)(struct udev*,const char*); +struct udev_device* (*udev_device_new_from_devnum_dylibloader_wrapper_libudev)(struct udev*, char, dev_t); +struct udev_device* (*udev_device_new_from_subsystem_sysname_dylibloader_wrapper_libudev)(struct udev*,const char*,const char*); +struct udev_device* (*udev_device_new_from_device_id_dylibloader_wrapper_libudev)(struct udev*,const char*); +struct udev_device* (*udev_device_new_from_environment_dylibloader_wrapper_libudev)(struct udev*); +struct udev_device* (*udev_device_get_parent_dylibloader_wrapper_libudev)(struct udev_device*); +struct udev_device* (*udev_device_get_parent_with_subsystem_devtype_dylibloader_wrapper_libudev)(struct udev_device*,const char*,const char*); +const char* (*udev_device_get_devpath_dylibloader_wrapper_libudev)(struct udev_device*); +const char* (*udev_device_get_subsystem_dylibloader_wrapper_libudev)(struct udev_device*); +const char* (*udev_device_get_devtype_dylibloader_wrapper_libudev)(struct udev_device*); +const char* (*udev_device_get_syspath_dylibloader_wrapper_libudev)(struct udev_device*); +const char* (*udev_device_get_sysname_dylibloader_wrapper_libudev)(struct udev_device*); +const char* (*udev_device_get_sysnum_dylibloader_wrapper_libudev)(struct udev_device*); +const char* (*udev_device_get_devnode_dylibloader_wrapper_libudev)(struct udev_device*); +int (*udev_device_get_is_initialized_dylibloader_wrapper_libudev)(struct udev_device*); +struct udev_list_entry* (*udev_device_get_devlinks_list_entry_dylibloader_wrapper_libudev)(struct udev_device*); +struct udev_list_entry* (*udev_device_get_properties_list_entry_dylibloader_wrapper_libudev)(struct udev_device*); +struct udev_list_entry* (*udev_device_get_tags_list_entry_dylibloader_wrapper_libudev)(struct udev_device*); +struct udev_list_entry* (*udev_device_get_sysattr_list_entry_dylibloader_wrapper_libudev)(struct udev_device*); +const char* (*udev_device_get_property_value_dylibloader_wrapper_libudev)(struct udev_device*,const char*); +const char* (*udev_device_get_driver_dylibloader_wrapper_libudev)(struct udev_device*); +dev_t (*udev_device_get_devnum_dylibloader_wrapper_libudev)(struct udev_device*); +const char* (*udev_device_get_action_dylibloader_wrapper_libudev)(struct udev_device*); +unsigned long long int (*udev_device_get_seqnum_dylibloader_wrapper_libudev)(struct udev_device*); +unsigned long long int (*udev_device_get_usec_since_initialized_dylibloader_wrapper_libudev)(struct udev_device*); +const char* (*udev_device_get_sysattr_value_dylibloader_wrapper_libudev)(struct udev_device*,const char*); +int (*udev_device_set_sysattr_value_dylibloader_wrapper_libudev)(struct udev_device*,const char*,const char*); +int (*udev_device_has_tag_dylibloader_wrapper_libudev)(struct udev_device*,const char*); +struct udev_monitor* (*udev_monitor_ref_dylibloader_wrapper_libudev)(struct udev_monitor*); +struct udev_monitor* (*udev_monitor_unref_dylibloader_wrapper_libudev)(struct udev_monitor*); +struct udev* (*udev_monitor_get_udev_dylibloader_wrapper_libudev)(struct udev_monitor*); +struct udev_monitor* (*udev_monitor_new_from_netlink_dylibloader_wrapper_libudev)(struct udev*,const char*); +int (*udev_monitor_enable_receiving_dylibloader_wrapper_libudev)(struct udev_monitor*); +int (*udev_monitor_set_receive_buffer_size_dylibloader_wrapper_libudev)(struct udev_monitor*, int); +int (*udev_monitor_get_fd_dylibloader_wrapper_libudev)(struct udev_monitor*); +struct udev_device* (*udev_monitor_receive_device_dylibloader_wrapper_libudev)(struct udev_monitor*); +int (*udev_monitor_filter_add_match_subsystem_devtype_dylibloader_wrapper_libudev)(struct udev_monitor*,const char*,const char*); +int (*udev_monitor_filter_add_match_tag_dylibloader_wrapper_libudev)(struct udev_monitor*,const char*); +int (*udev_monitor_filter_update_dylibloader_wrapper_libudev)(struct udev_monitor*); +int (*udev_monitor_filter_remove_dylibloader_wrapper_libudev)(struct udev_monitor*); +struct udev_enumerate* (*udev_enumerate_ref_dylibloader_wrapper_libudev)(struct udev_enumerate*); +struct udev_enumerate* (*udev_enumerate_unref_dylibloader_wrapper_libudev)(struct udev_enumerate*); +struct udev* (*udev_enumerate_get_udev_dylibloader_wrapper_libudev)(struct udev_enumerate*); +struct udev_enumerate* (*udev_enumerate_new_dylibloader_wrapper_libudev)(struct udev*); +int (*udev_enumerate_add_match_subsystem_dylibloader_wrapper_libudev)(struct udev_enumerate*,const char*); +int (*udev_enumerate_add_nomatch_subsystem_dylibloader_wrapper_libudev)(struct udev_enumerate*,const char*); +int (*udev_enumerate_add_match_sysattr_dylibloader_wrapper_libudev)(struct udev_enumerate*,const char*,const char*); +int (*udev_enumerate_add_nomatch_sysattr_dylibloader_wrapper_libudev)(struct udev_enumerate*,const char*,const char*); +int (*udev_enumerate_add_match_property_dylibloader_wrapper_libudev)(struct udev_enumerate*,const char*,const char*); +int (*udev_enumerate_add_match_sysname_dylibloader_wrapper_libudev)(struct udev_enumerate*,const char*); +int (*udev_enumerate_add_match_tag_dylibloader_wrapper_libudev)(struct udev_enumerate*,const char*); +int (*udev_enumerate_add_match_parent_dylibloader_wrapper_libudev)(struct udev_enumerate*,struct udev_device*); +int (*udev_enumerate_add_match_is_initialized_dylibloader_wrapper_libudev)(struct udev_enumerate*); +int (*udev_enumerate_add_syspath_dylibloader_wrapper_libudev)(struct udev_enumerate*,const char*); +int (*udev_enumerate_scan_devices_dylibloader_wrapper_libudev)(struct udev_enumerate*); +int (*udev_enumerate_scan_subsystems_dylibloader_wrapper_libudev)(struct udev_enumerate*); +struct udev_list_entry* (*udev_enumerate_get_list_entry_dylibloader_wrapper_libudev)(struct udev_enumerate*); +struct udev_queue* (*udev_queue_ref_dylibloader_wrapper_libudev)(struct udev_queue*); +struct udev_queue* (*udev_queue_unref_dylibloader_wrapper_libudev)(struct udev_queue*); +struct udev* (*udev_queue_get_udev_dylibloader_wrapper_libudev)(struct udev_queue*); +struct udev_queue* (*udev_queue_new_dylibloader_wrapper_libudev)(struct udev*); +unsigned long long int (*udev_queue_get_kernel_seqnum_dylibloader_wrapper_libudev)(struct udev_queue*); +unsigned long long int (*udev_queue_get_udev_seqnum_dylibloader_wrapper_libudev)(struct udev_queue*); +int (*udev_queue_get_udev_is_active_dylibloader_wrapper_libudev)(struct udev_queue*); +int (*udev_queue_get_queue_is_empty_dylibloader_wrapper_libudev)(struct udev_queue*); +int (*udev_queue_get_seqnum_is_finished_dylibloader_wrapper_libudev)(struct udev_queue*, unsigned long long int); +int (*udev_queue_get_seqnum_sequence_is_finished_dylibloader_wrapper_libudev)(struct udev_queue*, unsigned long long int, unsigned long long int); +int (*udev_queue_get_fd_dylibloader_wrapper_libudev)(struct udev_queue*); +int (*udev_queue_flush_dylibloader_wrapper_libudev)(struct udev_queue*); +struct udev_list_entry* (*udev_queue_get_queued_list_entry_dylibloader_wrapper_libudev)(struct udev_queue*); +struct udev_hwdb* (*udev_hwdb_new_dylibloader_wrapper_libudev)(struct udev*); +struct udev_hwdb* (*udev_hwdb_ref_dylibloader_wrapper_libudev)(struct udev_hwdb*); +struct udev_hwdb* (*udev_hwdb_unref_dylibloader_wrapper_libudev)(struct udev_hwdb*); +struct udev_list_entry* (*udev_hwdb_get_properties_list_entry_dylibloader_wrapper_libudev)(struct udev_hwdb*,const char*, unsigned); +int (*udev_util_encode_string_dylibloader_wrapper_libudev)(const char*, char*, size_t); +int initialize_libudev() { + void *handle; + char *error; + handle = dlopen("libudev.so.1", RTLD_LAZY); + if (!handle) { + fprintf(stderr, "%s\n", dlerror()); + return(1); + } + dlerror(); +// udev_ref + *(void **) (&udev_ref_dylibloader_wrapper_libudev) = dlsym(handle, "udev_ref"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// udev_unref + *(void **) (&udev_unref_dylibloader_wrapper_libudev) = dlsym(handle, "udev_unref"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// udev_new + *(void **) (&udev_new_dylibloader_wrapper_libudev) = dlsym(handle, "udev_new"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// udev_set_log_fn + *(void **) (&udev_set_log_fn_dylibloader_wrapper_libudev) = dlsym(handle, "udev_set_log_fn"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// udev_get_log_priority + *(void **) (&udev_get_log_priority_dylibloader_wrapper_libudev) = dlsym(handle, "udev_get_log_priority"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// udev_set_log_priority + *(void **) (&udev_set_log_priority_dylibloader_wrapper_libudev) = dlsym(handle, "udev_set_log_priority"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// udev_get_userdata + *(void **) (&udev_get_userdata_dylibloader_wrapper_libudev) = dlsym(handle, "udev_get_userdata"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// udev_set_userdata + *(void **) (&udev_set_userdata_dylibloader_wrapper_libudev) = dlsym(handle, "udev_set_userdata"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// udev_list_entry_get_next + *(void **) (&udev_list_entry_get_next_dylibloader_wrapper_libudev) = dlsym(handle, "udev_list_entry_get_next"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// udev_list_entry_get_by_name + *(void **) (&udev_list_entry_get_by_name_dylibloader_wrapper_libudev) = dlsym(handle, "udev_list_entry_get_by_name"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// udev_list_entry_get_name + *(void **) (&udev_list_entry_get_name_dylibloader_wrapper_libudev) = dlsym(handle, "udev_list_entry_get_name"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// udev_list_entry_get_value + *(void **) (&udev_list_entry_get_value_dylibloader_wrapper_libudev) = dlsym(handle, "udev_list_entry_get_value"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// udev_device_ref + *(void **) (&udev_device_ref_dylibloader_wrapper_libudev) = dlsym(handle, "udev_device_ref"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// udev_device_unref + *(void **) (&udev_device_unref_dylibloader_wrapper_libudev) = dlsym(handle, "udev_device_unref"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// udev_device_get_udev + *(void **) (&udev_device_get_udev_dylibloader_wrapper_libudev) = dlsym(handle, "udev_device_get_udev"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// udev_device_new_from_syspath + *(void **) (&udev_device_new_from_syspath_dylibloader_wrapper_libudev) = dlsym(handle, "udev_device_new_from_syspath"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// udev_device_new_from_devnum + *(void **) (&udev_device_new_from_devnum_dylibloader_wrapper_libudev) = dlsym(handle, "udev_device_new_from_devnum"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// udev_device_new_from_subsystem_sysname + *(void **) (&udev_device_new_from_subsystem_sysname_dylibloader_wrapper_libudev) = dlsym(handle, "udev_device_new_from_subsystem_sysname"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// udev_device_new_from_device_id + *(void **) (&udev_device_new_from_device_id_dylibloader_wrapper_libudev) = dlsym(handle, "udev_device_new_from_device_id"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// udev_device_new_from_environment + *(void **) (&udev_device_new_from_environment_dylibloader_wrapper_libudev) = dlsym(handle, "udev_device_new_from_environment"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// udev_device_get_parent + *(void **) (&udev_device_get_parent_dylibloader_wrapper_libudev) = dlsym(handle, "udev_device_get_parent"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// udev_device_get_parent_with_subsystem_devtype + *(void **) (&udev_device_get_parent_with_subsystem_devtype_dylibloader_wrapper_libudev) = dlsym(handle, "udev_device_get_parent_with_subsystem_devtype"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// udev_device_get_devpath + *(void **) (&udev_device_get_devpath_dylibloader_wrapper_libudev) = dlsym(handle, "udev_device_get_devpath"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// udev_device_get_subsystem + *(void **) (&udev_device_get_subsystem_dylibloader_wrapper_libudev) = dlsym(handle, "udev_device_get_subsystem"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// udev_device_get_devtype + *(void **) (&udev_device_get_devtype_dylibloader_wrapper_libudev) = dlsym(handle, "udev_device_get_devtype"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// udev_device_get_syspath + *(void **) (&udev_device_get_syspath_dylibloader_wrapper_libudev) = dlsym(handle, "udev_device_get_syspath"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// udev_device_get_sysname + *(void **) (&udev_device_get_sysname_dylibloader_wrapper_libudev) = dlsym(handle, "udev_device_get_sysname"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// udev_device_get_sysnum + *(void **) (&udev_device_get_sysnum_dylibloader_wrapper_libudev) = dlsym(handle, "udev_device_get_sysnum"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// udev_device_get_devnode + *(void **) (&udev_device_get_devnode_dylibloader_wrapper_libudev) = dlsym(handle, "udev_device_get_devnode"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// udev_device_get_is_initialized + *(void **) (&udev_device_get_is_initialized_dylibloader_wrapper_libudev) = dlsym(handle, "udev_device_get_is_initialized"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// udev_device_get_devlinks_list_entry + *(void **) (&udev_device_get_devlinks_list_entry_dylibloader_wrapper_libudev) = dlsym(handle, "udev_device_get_devlinks_list_entry"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// udev_device_get_properties_list_entry + *(void **) (&udev_device_get_properties_list_entry_dylibloader_wrapper_libudev) = dlsym(handle, "udev_device_get_properties_list_entry"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// udev_device_get_tags_list_entry + *(void **) (&udev_device_get_tags_list_entry_dylibloader_wrapper_libudev) = dlsym(handle, "udev_device_get_tags_list_entry"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// udev_device_get_sysattr_list_entry + *(void **) (&udev_device_get_sysattr_list_entry_dylibloader_wrapper_libudev) = dlsym(handle, "udev_device_get_sysattr_list_entry"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// udev_device_get_property_value + *(void **) (&udev_device_get_property_value_dylibloader_wrapper_libudev) = dlsym(handle, "udev_device_get_property_value"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// udev_device_get_driver + *(void **) (&udev_device_get_driver_dylibloader_wrapper_libudev) = dlsym(handle, "udev_device_get_driver"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// udev_device_get_devnum + *(void **) (&udev_device_get_devnum_dylibloader_wrapper_libudev) = dlsym(handle, "udev_device_get_devnum"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// udev_device_get_action + *(void **) (&udev_device_get_action_dylibloader_wrapper_libudev) = dlsym(handle, "udev_device_get_action"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// udev_device_get_seqnum + *(void **) (&udev_device_get_seqnum_dylibloader_wrapper_libudev) = dlsym(handle, "udev_device_get_seqnum"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// udev_device_get_usec_since_initialized + *(void **) (&udev_device_get_usec_since_initialized_dylibloader_wrapper_libudev) = dlsym(handle, "udev_device_get_usec_since_initialized"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// udev_device_get_sysattr_value + *(void **) (&udev_device_get_sysattr_value_dylibloader_wrapper_libudev) = dlsym(handle, "udev_device_get_sysattr_value"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// udev_device_set_sysattr_value + *(void **) (&udev_device_set_sysattr_value_dylibloader_wrapper_libudev) = dlsym(handle, "udev_device_set_sysattr_value"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// udev_device_has_tag + *(void **) (&udev_device_has_tag_dylibloader_wrapper_libudev) = dlsym(handle, "udev_device_has_tag"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// udev_monitor_ref + *(void **) (&udev_monitor_ref_dylibloader_wrapper_libudev) = dlsym(handle, "udev_monitor_ref"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// udev_monitor_unref + *(void **) (&udev_monitor_unref_dylibloader_wrapper_libudev) = dlsym(handle, "udev_monitor_unref"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// udev_monitor_get_udev + *(void **) (&udev_monitor_get_udev_dylibloader_wrapper_libudev) = dlsym(handle, "udev_monitor_get_udev"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// udev_monitor_new_from_netlink + *(void **) (&udev_monitor_new_from_netlink_dylibloader_wrapper_libudev) = dlsym(handle, "udev_monitor_new_from_netlink"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// udev_monitor_enable_receiving + *(void **) (&udev_monitor_enable_receiving_dylibloader_wrapper_libudev) = dlsym(handle, "udev_monitor_enable_receiving"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// udev_monitor_set_receive_buffer_size + *(void **) (&udev_monitor_set_receive_buffer_size_dylibloader_wrapper_libudev) = dlsym(handle, "udev_monitor_set_receive_buffer_size"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// udev_monitor_get_fd + *(void **) (&udev_monitor_get_fd_dylibloader_wrapper_libudev) = dlsym(handle, "udev_monitor_get_fd"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// udev_monitor_receive_device + *(void **) (&udev_monitor_receive_device_dylibloader_wrapper_libudev) = dlsym(handle, "udev_monitor_receive_device"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// udev_monitor_filter_add_match_subsystem_devtype + *(void **) (&udev_monitor_filter_add_match_subsystem_devtype_dylibloader_wrapper_libudev) = dlsym(handle, "udev_monitor_filter_add_match_subsystem_devtype"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// udev_monitor_filter_add_match_tag + *(void **) (&udev_monitor_filter_add_match_tag_dylibloader_wrapper_libudev) = dlsym(handle, "udev_monitor_filter_add_match_tag"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// udev_monitor_filter_update + *(void **) (&udev_monitor_filter_update_dylibloader_wrapper_libudev) = dlsym(handle, "udev_monitor_filter_update"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// udev_monitor_filter_remove + *(void **) (&udev_monitor_filter_remove_dylibloader_wrapper_libudev) = dlsym(handle, "udev_monitor_filter_remove"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// udev_enumerate_ref + *(void **) (&udev_enumerate_ref_dylibloader_wrapper_libudev) = dlsym(handle, "udev_enumerate_ref"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// udev_enumerate_unref + *(void **) (&udev_enumerate_unref_dylibloader_wrapper_libudev) = dlsym(handle, "udev_enumerate_unref"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// udev_enumerate_get_udev + *(void **) (&udev_enumerate_get_udev_dylibloader_wrapper_libudev) = dlsym(handle, "udev_enumerate_get_udev"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// udev_enumerate_new + *(void **) (&udev_enumerate_new_dylibloader_wrapper_libudev) = dlsym(handle, "udev_enumerate_new"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// udev_enumerate_add_match_subsystem + *(void **) (&udev_enumerate_add_match_subsystem_dylibloader_wrapper_libudev) = dlsym(handle, "udev_enumerate_add_match_subsystem"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// udev_enumerate_add_nomatch_subsystem + *(void **) (&udev_enumerate_add_nomatch_subsystem_dylibloader_wrapper_libudev) = dlsym(handle, "udev_enumerate_add_nomatch_subsystem"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// udev_enumerate_add_match_sysattr + *(void **) (&udev_enumerate_add_match_sysattr_dylibloader_wrapper_libudev) = dlsym(handle, "udev_enumerate_add_match_sysattr"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// udev_enumerate_add_nomatch_sysattr + *(void **) (&udev_enumerate_add_nomatch_sysattr_dylibloader_wrapper_libudev) = dlsym(handle, "udev_enumerate_add_nomatch_sysattr"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// udev_enumerate_add_match_property + *(void **) (&udev_enumerate_add_match_property_dylibloader_wrapper_libudev) = dlsym(handle, "udev_enumerate_add_match_property"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// udev_enumerate_add_match_sysname + *(void **) (&udev_enumerate_add_match_sysname_dylibloader_wrapper_libudev) = dlsym(handle, "udev_enumerate_add_match_sysname"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// udev_enumerate_add_match_tag + *(void **) (&udev_enumerate_add_match_tag_dylibloader_wrapper_libudev) = dlsym(handle, "udev_enumerate_add_match_tag"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// udev_enumerate_add_match_parent + *(void **) (&udev_enumerate_add_match_parent_dylibloader_wrapper_libudev) = dlsym(handle, "udev_enumerate_add_match_parent"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// udev_enumerate_add_match_is_initialized + *(void **) (&udev_enumerate_add_match_is_initialized_dylibloader_wrapper_libudev) = dlsym(handle, "udev_enumerate_add_match_is_initialized"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// udev_enumerate_add_syspath + *(void **) (&udev_enumerate_add_syspath_dylibloader_wrapper_libudev) = dlsym(handle, "udev_enumerate_add_syspath"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// udev_enumerate_scan_devices + *(void **) (&udev_enumerate_scan_devices_dylibloader_wrapper_libudev) = dlsym(handle, "udev_enumerate_scan_devices"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// udev_enumerate_scan_subsystems + *(void **) (&udev_enumerate_scan_subsystems_dylibloader_wrapper_libudev) = dlsym(handle, "udev_enumerate_scan_subsystems"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// udev_enumerate_get_list_entry + *(void **) (&udev_enumerate_get_list_entry_dylibloader_wrapper_libudev) = dlsym(handle, "udev_enumerate_get_list_entry"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// udev_queue_ref + *(void **) (&udev_queue_ref_dylibloader_wrapper_libudev) = dlsym(handle, "udev_queue_ref"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// udev_queue_unref + *(void **) (&udev_queue_unref_dylibloader_wrapper_libudev) = dlsym(handle, "udev_queue_unref"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// udev_queue_get_udev + *(void **) (&udev_queue_get_udev_dylibloader_wrapper_libudev) = dlsym(handle, "udev_queue_get_udev"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// udev_queue_new + *(void **) (&udev_queue_new_dylibloader_wrapper_libudev) = dlsym(handle, "udev_queue_new"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// udev_queue_get_kernel_seqnum + *(void **) (&udev_queue_get_kernel_seqnum_dylibloader_wrapper_libudev) = dlsym(handle, "udev_queue_get_kernel_seqnum"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// udev_queue_get_udev_seqnum + *(void **) (&udev_queue_get_udev_seqnum_dylibloader_wrapper_libudev) = dlsym(handle, "udev_queue_get_udev_seqnum"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// udev_queue_get_udev_is_active + *(void **) (&udev_queue_get_udev_is_active_dylibloader_wrapper_libudev) = dlsym(handle, "udev_queue_get_udev_is_active"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// udev_queue_get_queue_is_empty + *(void **) (&udev_queue_get_queue_is_empty_dylibloader_wrapper_libudev) = dlsym(handle, "udev_queue_get_queue_is_empty"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// udev_queue_get_seqnum_is_finished + *(void **) (&udev_queue_get_seqnum_is_finished_dylibloader_wrapper_libudev) = dlsym(handle, "udev_queue_get_seqnum_is_finished"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// udev_queue_get_seqnum_sequence_is_finished + *(void **) (&udev_queue_get_seqnum_sequence_is_finished_dylibloader_wrapper_libudev) = dlsym(handle, "udev_queue_get_seqnum_sequence_is_finished"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// udev_queue_get_fd + *(void **) (&udev_queue_get_fd_dylibloader_wrapper_libudev) = dlsym(handle, "udev_queue_get_fd"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// udev_queue_flush + *(void **) (&udev_queue_flush_dylibloader_wrapper_libudev) = dlsym(handle, "udev_queue_flush"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// udev_queue_get_queued_list_entry + *(void **) (&udev_queue_get_queued_list_entry_dylibloader_wrapper_libudev) = dlsym(handle, "udev_queue_get_queued_list_entry"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// udev_hwdb_new + *(void **) (&udev_hwdb_new_dylibloader_wrapper_libudev) = dlsym(handle, "udev_hwdb_new"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// udev_hwdb_ref + *(void **) (&udev_hwdb_ref_dylibloader_wrapper_libudev) = dlsym(handle, "udev_hwdb_ref"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// udev_hwdb_unref + *(void **) (&udev_hwdb_unref_dylibloader_wrapper_libudev) = dlsym(handle, "udev_hwdb_unref"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// udev_hwdb_get_properties_list_entry + *(void **) (&udev_hwdb_get_properties_list_entry_dylibloader_wrapper_libudev) = dlsym(handle, "udev_hwdb_get_properties_list_entry"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +// udev_util_encode_string + *(void **) (&udev_util_encode_string_dylibloader_wrapper_libudev) = dlsym(handle, "udev_util_encode_string"); + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } +return 0; +} diff --git a/platform/linuxbsd/libudev-so_wrap.h b/platform/linuxbsd/libudev-so_wrap.h new file mode 100644 index 0000000000..f6d949fa4a --- /dev/null +++ b/platform/linuxbsd/libudev-so_wrap.h @@ -0,0 +1,376 @@ +#ifndef DYLIBLOAD_WRAPPER_LIBUDEV +#define DYLIBLOAD_WRAPPER_LIBUDEV +// This file is generated. Do not edit! +// see https://github.com/hpvb/dynload-wrapper for details +// generated by /home/hp/Projects/godot/pulse/generate-wrapper.py 0.2 on 2021-02-18 00:18:56 +// flags: /home/hp/Projects/godot/pulse/generate-wrapper.py --include /usr/include/libudev.h --sys-include <libudev.h> --soname libudev.so.1 --init-name libudev --omit-prefix gnu_ --output-header libudev-so_wrap.h --output-implementation libudev-so_wrap.c +// +#define udev_ref udev_ref_dylibloader_orig_libudev +#define udev_unref udev_unref_dylibloader_orig_libudev +#define udev_new udev_new_dylibloader_orig_libudev +#define udev_set_log_fn udev_set_log_fn_dylibloader_orig_libudev +#define udev_get_log_priority udev_get_log_priority_dylibloader_orig_libudev +#define udev_set_log_priority udev_set_log_priority_dylibloader_orig_libudev +#define udev_get_userdata udev_get_userdata_dylibloader_orig_libudev +#define udev_set_userdata udev_set_userdata_dylibloader_orig_libudev +#define udev_list_entry_get_next udev_list_entry_get_next_dylibloader_orig_libudev +#define udev_list_entry_get_by_name udev_list_entry_get_by_name_dylibloader_orig_libudev +#define udev_list_entry_get_name udev_list_entry_get_name_dylibloader_orig_libudev +#define udev_list_entry_get_value udev_list_entry_get_value_dylibloader_orig_libudev +#define udev_device_ref udev_device_ref_dylibloader_orig_libudev +#define udev_device_unref udev_device_unref_dylibloader_orig_libudev +#define udev_device_get_udev udev_device_get_udev_dylibloader_orig_libudev +#define udev_device_new_from_syspath udev_device_new_from_syspath_dylibloader_orig_libudev +#define udev_device_new_from_devnum udev_device_new_from_devnum_dylibloader_orig_libudev +#define udev_device_new_from_subsystem_sysname udev_device_new_from_subsystem_sysname_dylibloader_orig_libudev +#define udev_device_new_from_device_id udev_device_new_from_device_id_dylibloader_orig_libudev +#define udev_device_new_from_environment udev_device_new_from_environment_dylibloader_orig_libudev +#define udev_device_get_parent udev_device_get_parent_dylibloader_orig_libudev +#define udev_device_get_parent_with_subsystem_devtype udev_device_get_parent_with_subsystem_devtype_dylibloader_orig_libudev +#define udev_device_get_devpath udev_device_get_devpath_dylibloader_orig_libudev +#define udev_device_get_subsystem udev_device_get_subsystem_dylibloader_orig_libudev +#define udev_device_get_devtype udev_device_get_devtype_dylibloader_orig_libudev +#define udev_device_get_syspath udev_device_get_syspath_dylibloader_orig_libudev +#define udev_device_get_sysname udev_device_get_sysname_dylibloader_orig_libudev +#define udev_device_get_sysnum udev_device_get_sysnum_dylibloader_orig_libudev +#define udev_device_get_devnode udev_device_get_devnode_dylibloader_orig_libudev +#define udev_device_get_is_initialized udev_device_get_is_initialized_dylibloader_orig_libudev +#define udev_device_get_devlinks_list_entry udev_device_get_devlinks_list_entry_dylibloader_orig_libudev +#define udev_device_get_properties_list_entry udev_device_get_properties_list_entry_dylibloader_orig_libudev +#define udev_device_get_tags_list_entry udev_device_get_tags_list_entry_dylibloader_orig_libudev +#define udev_device_get_sysattr_list_entry udev_device_get_sysattr_list_entry_dylibloader_orig_libudev +#define udev_device_get_property_value udev_device_get_property_value_dylibloader_orig_libudev +#define udev_device_get_driver udev_device_get_driver_dylibloader_orig_libudev +#define udev_device_get_devnum udev_device_get_devnum_dylibloader_orig_libudev +#define udev_device_get_action udev_device_get_action_dylibloader_orig_libudev +#define udev_device_get_seqnum udev_device_get_seqnum_dylibloader_orig_libudev +#define udev_device_get_usec_since_initialized udev_device_get_usec_since_initialized_dylibloader_orig_libudev +#define udev_device_get_sysattr_value udev_device_get_sysattr_value_dylibloader_orig_libudev +#define udev_device_set_sysattr_value udev_device_set_sysattr_value_dylibloader_orig_libudev +#define udev_device_has_tag udev_device_has_tag_dylibloader_orig_libudev +#define udev_monitor_ref udev_monitor_ref_dylibloader_orig_libudev +#define udev_monitor_unref udev_monitor_unref_dylibloader_orig_libudev +#define udev_monitor_get_udev udev_monitor_get_udev_dylibloader_orig_libudev +#define udev_monitor_new_from_netlink udev_monitor_new_from_netlink_dylibloader_orig_libudev +#define udev_monitor_enable_receiving udev_monitor_enable_receiving_dylibloader_orig_libudev +#define udev_monitor_set_receive_buffer_size udev_monitor_set_receive_buffer_size_dylibloader_orig_libudev +#define udev_monitor_get_fd udev_monitor_get_fd_dylibloader_orig_libudev +#define udev_monitor_receive_device udev_monitor_receive_device_dylibloader_orig_libudev +#define udev_monitor_filter_add_match_subsystem_devtype udev_monitor_filter_add_match_subsystem_devtype_dylibloader_orig_libudev +#define udev_monitor_filter_add_match_tag udev_monitor_filter_add_match_tag_dylibloader_orig_libudev +#define udev_monitor_filter_update udev_monitor_filter_update_dylibloader_orig_libudev +#define udev_monitor_filter_remove udev_monitor_filter_remove_dylibloader_orig_libudev +#define udev_enumerate_ref udev_enumerate_ref_dylibloader_orig_libudev +#define udev_enumerate_unref udev_enumerate_unref_dylibloader_orig_libudev +#define udev_enumerate_get_udev udev_enumerate_get_udev_dylibloader_orig_libudev +#define udev_enumerate_new udev_enumerate_new_dylibloader_orig_libudev +#define udev_enumerate_add_match_subsystem udev_enumerate_add_match_subsystem_dylibloader_orig_libudev +#define udev_enumerate_add_nomatch_subsystem udev_enumerate_add_nomatch_subsystem_dylibloader_orig_libudev +#define udev_enumerate_add_match_sysattr udev_enumerate_add_match_sysattr_dylibloader_orig_libudev +#define udev_enumerate_add_nomatch_sysattr udev_enumerate_add_nomatch_sysattr_dylibloader_orig_libudev +#define udev_enumerate_add_match_property udev_enumerate_add_match_property_dylibloader_orig_libudev +#define udev_enumerate_add_match_sysname udev_enumerate_add_match_sysname_dylibloader_orig_libudev +#define udev_enumerate_add_match_tag udev_enumerate_add_match_tag_dylibloader_orig_libudev +#define udev_enumerate_add_match_parent udev_enumerate_add_match_parent_dylibloader_orig_libudev +#define udev_enumerate_add_match_is_initialized udev_enumerate_add_match_is_initialized_dylibloader_orig_libudev +#define udev_enumerate_add_syspath udev_enumerate_add_syspath_dylibloader_orig_libudev +#define udev_enumerate_scan_devices udev_enumerate_scan_devices_dylibloader_orig_libudev +#define udev_enumerate_scan_subsystems udev_enumerate_scan_subsystems_dylibloader_orig_libudev +#define udev_enumerate_get_list_entry udev_enumerate_get_list_entry_dylibloader_orig_libudev +#define udev_queue_ref udev_queue_ref_dylibloader_orig_libudev +#define udev_queue_unref udev_queue_unref_dylibloader_orig_libudev +#define udev_queue_get_udev udev_queue_get_udev_dylibloader_orig_libudev +#define udev_queue_new udev_queue_new_dylibloader_orig_libudev +#define udev_queue_get_kernel_seqnum udev_queue_get_kernel_seqnum_dylibloader_orig_libudev +#define udev_queue_get_udev_seqnum udev_queue_get_udev_seqnum_dylibloader_orig_libudev +#define udev_queue_get_udev_is_active udev_queue_get_udev_is_active_dylibloader_orig_libudev +#define udev_queue_get_queue_is_empty udev_queue_get_queue_is_empty_dylibloader_orig_libudev +#define udev_queue_get_seqnum_is_finished udev_queue_get_seqnum_is_finished_dylibloader_orig_libudev +#define udev_queue_get_seqnum_sequence_is_finished udev_queue_get_seqnum_sequence_is_finished_dylibloader_orig_libudev +#define udev_queue_get_fd udev_queue_get_fd_dylibloader_orig_libudev +#define udev_queue_flush udev_queue_flush_dylibloader_orig_libudev +#define udev_queue_get_queued_list_entry udev_queue_get_queued_list_entry_dylibloader_orig_libudev +#define udev_hwdb_new udev_hwdb_new_dylibloader_orig_libudev +#define udev_hwdb_ref udev_hwdb_ref_dylibloader_orig_libudev +#define udev_hwdb_unref udev_hwdb_unref_dylibloader_orig_libudev +#define udev_hwdb_get_properties_list_entry udev_hwdb_get_properties_list_entry_dylibloader_orig_libudev +#define udev_util_encode_string udev_util_encode_string_dylibloader_orig_libudev +#include <libudev.h> +#undef udev_ref +#undef udev_unref +#undef udev_new +#undef udev_set_log_fn +#undef udev_get_log_priority +#undef udev_set_log_priority +#undef udev_get_userdata +#undef udev_set_userdata +#undef udev_list_entry_get_next +#undef udev_list_entry_get_by_name +#undef udev_list_entry_get_name +#undef udev_list_entry_get_value +#undef udev_device_ref +#undef udev_device_unref +#undef udev_device_get_udev +#undef udev_device_new_from_syspath +#undef udev_device_new_from_devnum +#undef udev_device_new_from_subsystem_sysname +#undef udev_device_new_from_device_id +#undef udev_device_new_from_environment +#undef udev_device_get_parent +#undef udev_device_get_parent_with_subsystem_devtype +#undef udev_device_get_devpath +#undef udev_device_get_subsystem +#undef udev_device_get_devtype +#undef udev_device_get_syspath +#undef udev_device_get_sysname +#undef udev_device_get_sysnum +#undef udev_device_get_devnode +#undef udev_device_get_is_initialized +#undef udev_device_get_devlinks_list_entry +#undef udev_device_get_properties_list_entry +#undef udev_device_get_tags_list_entry +#undef udev_device_get_sysattr_list_entry +#undef udev_device_get_property_value +#undef udev_device_get_driver +#undef udev_device_get_devnum +#undef udev_device_get_action +#undef udev_device_get_seqnum +#undef udev_device_get_usec_since_initialized +#undef udev_device_get_sysattr_value +#undef udev_device_set_sysattr_value +#undef udev_device_has_tag +#undef udev_monitor_ref +#undef udev_monitor_unref +#undef udev_monitor_get_udev +#undef udev_monitor_new_from_netlink +#undef udev_monitor_enable_receiving +#undef udev_monitor_set_receive_buffer_size +#undef udev_monitor_get_fd +#undef udev_monitor_receive_device +#undef udev_monitor_filter_add_match_subsystem_devtype +#undef udev_monitor_filter_add_match_tag +#undef udev_monitor_filter_update +#undef udev_monitor_filter_remove +#undef udev_enumerate_ref +#undef udev_enumerate_unref +#undef udev_enumerate_get_udev +#undef udev_enumerate_new +#undef udev_enumerate_add_match_subsystem +#undef udev_enumerate_add_nomatch_subsystem +#undef udev_enumerate_add_match_sysattr +#undef udev_enumerate_add_nomatch_sysattr +#undef udev_enumerate_add_match_property +#undef udev_enumerate_add_match_sysname +#undef udev_enumerate_add_match_tag +#undef udev_enumerate_add_match_parent +#undef udev_enumerate_add_match_is_initialized +#undef udev_enumerate_add_syspath +#undef udev_enumerate_scan_devices +#undef udev_enumerate_scan_subsystems +#undef udev_enumerate_get_list_entry +#undef udev_queue_ref +#undef udev_queue_unref +#undef udev_queue_get_udev +#undef udev_queue_new +#undef udev_queue_get_kernel_seqnum +#undef udev_queue_get_udev_seqnum +#undef udev_queue_get_udev_is_active +#undef udev_queue_get_queue_is_empty +#undef udev_queue_get_seqnum_is_finished +#undef udev_queue_get_seqnum_sequence_is_finished +#undef udev_queue_get_fd +#undef udev_queue_flush +#undef udev_queue_get_queued_list_entry +#undef udev_hwdb_new +#undef udev_hwdb_ref +#undef udev_hwdb_unref +#undef udev_hwdb_get_properties_list_entry +#undef udev_util_encode_string +#ifdef __cplusplus +extern "C" { +#endif +#define udev_ref udev_ref_dylibloader_wrapper_libudev +#define udev_unref udev_unref_dylibloader_wrapper_libudev +#define udev_new udev_new_dylibloader_wrapper_libudev +#define udev_set_log_fn udev_set_log_fn_dylibloader_wrapper_libudev +#define udev_get_log_priority udev_get_log_priority_dylibloader_wrapper_libudev +#define udev_set_log_priority udev_set_log_priority_dylibloader_wrapper_libudev +#define udev_get_userdata udev_get_userdata_dylibloader_wrapper_libudev +#define udev_set_userdata udev_set_userdata_dylibloader_wrapper_libudev +#define udev_list_entry_get_next udev_list_entry_get_next_dylibloader_wrapper_libudev +#define udev_list_entry_get_by_name udev_list_entry_get_by_name_dylibloader_wrapper_libudev +#define udev_list_entry_get_name udev_list_entry_get_name_dylibloader_wrapper_libudev +#define udev_list_entry_get_value udev_list_entry_get_value_dylibloader_wrapper_libudev +#define udev_device_ref udev_device_ref_dylibloader_wrapper_libudev +#define udev_device_unref udev_device_unref_dylibloader_wrapper_libudev +#define udev_device_get_udev udev_device_get_udev_dylibloader_wrapper_libudev +#define udev_device_new_from_syspath udev_device_new_from_syspath_dylibloader_wrapper_libudev +#define udev_device_new_from_devnum udev_device_new_from_devnum_dylibloader_wrapper_libudev +#define udev_device_new_from_subsystem_sysname udev_device_new_from_subsystem_sysname_dylibloader_wrapper_libudev +#define udev_device_new_from_device_id udev_device_new_from_device_id_dylibloader_wrapper_libudev +#define udev_device_new_from_environment udev_device_new_from_environment_dylibloader_wrapper_libudev +#define udev_device_get_parent udev_device_get_parent_dylibloader_wrapper_libudev +#define udev_device_get_parent_with_subsystem_devtype udev_device_get_parent_with_subsystem_devtype_dylibloader_wrapper_libudev +#define udev_device_get_devpath udev_device_get_devpath_dylibloader_wrapper_libudev +#define udev_device_get_subsystem udev_device_get_subsystem_dylibloader_wrapper_libudev +#define udev_device_get_devtype udev_device_get_devtype_dylibloader_wrapper_libudev +#define udev_device_get_syspath udev_device_get_syspath_dylibloader_wrapper_libudev +#define udev_device_get_sysname udev_device_get_sysname_dylibloader_wrapper_libudev +#define udev_device_get_sysnum udev_device_get_sysnum_dylibloader_wrapper_libudev +#define udev_device_get_devnode udev_device_get_devnode_dylibloader_wrapper_libudev +#define udev_device_get_is_initialized udev_device_get_is_initialized_dylibloader_wrapper_libudev +#define udev_device_get_devlinks_list_entry udev_device_get_devlinks_list_entry_dylibloader_wrapper_libudev +#define udev_device_get_properties_list_entry udev_device_get_properties_list_entry_dylibloader_wrapper_libudev +#define udev_device_get_tags_list_entry udev_device_get_tags_list_entry_dylibloader_wrapper_libudev +#define udev_device_get_sysattr_list_entry udev_device_get_sysattr_list_entry_dylibloader_wrapper_libudev +#define udev_device_get_property_value udev_device_get_property_value_dylibloader_wrapper_libudev +#define udev_device_get_driver udev_device_get_driver_dylibloader_wrapper_libudev +#define udev_device_get_devnum udev_device_get_devnum_dylibloader_wrapper_libudev +#define udev_device_get_action udev_device_get_action_dylibloader_wrapper_libudev +#define udev_device_get_seqnum udev_device_get_seqnum_dylibloader_wrapper_libudev +#define udev_device_get_usec_since_initialized udev_device_get_usec_since_initialized_dylibloader_wrapper_libudev +#define udev_device_get_sysattr_value udev_device_get_sysattr_value_dylibloader_wrapper_libudev +#define udev_device_set_sysattr_value udev_device_set_sysattr_value_dylibloader_wrapper_libudev +#define udev_device_has_tag udev_device_has_tag_dylibloader_wrapper_libudev +#define udev_monitor_ref udev_monitor_ref_dylibloader_wrapper_libudev +#define udev_monitor_unref udev_monitor_unref_dylibloader_wrapper_libudev +#define udev_monitor_get_udev udev_monitor_get_udev_dylibloader_wrapper_libudev +#define udev_monitor_new_from_netlink udev_monitor_new_from_netlink_dylibloader_wrapper_libudev +#define udev_monitor_enable_receiving udev_monitor_enable_receiving_dylibloader_wrapper_libudev +#define udev_monitor_set_receive_buffer_size udev_monitor_set_receive_buffer_size_dylibloader_wrapper_libudev +#define udev_monitor_get_fd udev_monitor_get_fd_dylibloader_wrapper_libudev +#define udev_monitor_receive_device udev_monitor_receive_device_dylibloader_wrapper_libudev +#define udev_monitor_filter_add_match_subsystem_devtype udev_monitor_filter_add_match_subsystem_devtype_dylibloader_wrapper_libudev +#define udev_monitor_filter_add_match_tag udev_monitor_filter_add_match_tag_dylibloader_wrapper_libudev +#define udev_monitor_filter_update udev_monitor_filter_update_dylibloader_wrapper_libudev +#define udev_monitor_filter_remove udev_monitor_filter_remove_dylibloader_wrapper_libudev +#define udev_enumerate_ref udev_enumerate_ref_dylibloader_wrapper_libudev +#define udev_enumerate_unref udev_enumerate_unref_dylibloader_wrapper_libudev +#define udev_enumerate_get_udev udev_enumerate_get_udev_dylibloader_wrapper_libudev +#define udev_enumerate_new udev_enumerate_new_dylibloader_wrapper_libudev +#define udev_enumerate_add_match_subsystem udev_enumerate_add_match_subsystem_dylibloader_wrapper_libudev +#define udev_enumerate_add_nomatch_subsystem udev_enumerate_add_nomatch_subsystem_dylibloader_wrapper_libudev +#define udev_enumerate_add_match_sysattr udev_enumerate_add_match_sysattr_dylibloader_wrapper_libudev +#define udev_enumerate_add_nomatch_sysattr udev_enumerate_add_nomatch_sysattr_dylibloader_wrapper_libudev +#define udev_enumerate_add_match_property udev_enumerate_add_match_property_dylibloader_wrapper_libudev +#define udev_enumerate_add_match_sysname udev_enumerate_add_match_sysname_dylibloader_wrapper_libudev +#define udev_enumerate_add_match_tag udev_enumerate_add_match_tag_dylibloader_wrapper_libudev +#define udev_enumerate_add_match_parent udev_enumerate_add_match_parent_dylibloader_wrapper_libudev +#define udev_enumerate_add_match_is_initialized udev_enumerate_add_match_is_initialized_dylibloader_wrapper_libudev +#define udev_enumerate_add_syspath udev_enumerate_add_syspath_dylibloader_wrapper_libudev +#define udev_enumerate_scan_devices udev_enumerate_scan_devices_dylibloader_wrapper_libudev +#define udev_enumerate_scan_subsystems udev_enumerate_scan_subsystems_dylibloader_wrapper_libudev +#define udev_enumerate_get_list_entry udev_enumerate_get_list_entry_dylibloader_wrapper_libudev +#define udev_queue_ref udev_queue_ref_dylibloader_wrapper_libudev +#define udev_queue_unref udev_queue_unref_dylibloader_wrapper_libudev +#define udev_queue_get_udev udev_queue_get_udev_dylibloader_wrapper_libudev +#define udev_queue_new udev_queue_new_dylibloader_wrapper_libudev +#define udev_queue_get_kernel_seqnum udev_queue_get_kernel_seqnum_dylibloader_wrapper_libudev +#define udev_queue_get_udev_seqnum udev_queue_get_udev_seqnum_dylibloader_wrapper_libudev +#define udev_queue_get_udev_is_active udev_queue_get_udev_is_active_dylibloader_wrapper_libudev +#define udev_queue_get_queue_is_empty udev_queue_get_queue_is_empty_dylibloader_wrapper_libudev +#define udev_queue_get_seqnum_is_finished udev_queue_get_seqnum_is_finished_dylibloader_wrapper_libudev +#define udev_queue_get_seqnum_sequence_is_finished udev_queue_get_seqnum_sequence_is_finished_dylibloader_wrapper_libudev +#define udev_queue_get_fd udev_queue_get_fd_dylibloader_wrapper_libudev +#define udev_queue_flush udev_queue_flush_dylibloader_wrapper_libudev +#define udev_queue_get_queued_list_entry udev_queue_get_queued_list_entry_dylibloader_wrapper_libudev +#define udev_hwdb_new udev_hwdb_new_dylibloader_wrapper_libudev +#define udev_hwdb_ref udev_hwdb_ref_dylibloader_wrapper_libudev +#define udev_hwdb_unref udev_hwdb_unref_dylibloader_wrapper_libudev +#define udev_hwdb_get_properties_list_entry udev_hwdb_get_properties_list_entry_dylibloader_wrapper_libudev +#define udev_util_encode_string udev_util_encode_string_dylibloader_wrapper_libudev +extern struct udev* (*udev_ref_dylibloader_wrapper_libudev)(struct udev*); +extern struct udev* (*udev_unref_dylibloader_wrapper_libudev)(struct udev*); +extern struct udev* (*udev_new_dylibloader_wrapper_libudev)( void); +extern void (*udev_set_log_fn_dylibloader_wrapper_libudev)(struct udev*, void*); +extern int (*udev_get_log_priority_dylibloader_wrapper_libudev)(struct udev*); +extern void (*udev_set_log_priority_dylibloader_wrapper_libudev)(struct udev*, int); +extern void* (*udev_get_userdata_dylibloader_wrapper_libudev)(struct udev*); +extern void (*udev_set_userdata_dylibloader_wrapper_libudev)(struct udev*, void*); +extern struct udev_list_entry* (*udev_list_entry_get_next_dylibloader_wrapper_libudev)(struct udev_list_entry*); +extern struct udev_list_entry* (*udev_list_entry_get_by_name_dylibloader_wrapper_libudev)(struct udev_list_entry*,const char*); +extern const char* (*udev_list_entry_get_name_dylibloader_wrapper_libudev)(struct udev_list_entry*); +extern const char* (*udev_list_entry_get_value_dylibloader_wrapper_libudev)(struct udev_list_entry*); +extern struct udev_device* (*udev_device_ref_dylibloader_wrapper_libudev)(struct udev_device*); +extern struct udev_device* (*udev_device_unref_dylibloader_wrapper_libudev)(struct udev_device*); +extern struct udev* (*udev_device_get_udev_dylibloader_wrapper_libudev)(struct udev_device*); +extern struct udev_device* (*udev_device_new_from_syspath_dylibloader_wrapper_libudev)(struct udev*,const char*); +extern struct udev_device* (*udev_device_new_from_devnum_dylibloader_wrapper_libudev)(struct udev*, char, dev_t); +extern struct udev_device* (*udev_device_new_from_subsystem_sysname_dylibloader_wrapper_libudev)(struct udev*,const char*,const char*); +extern struct udev_device* (*udev_device_new_from_device_id_dylibloader_wrapper_libudev)(struct udev*,const char*); +extern struct udev_device* (*udev_device_new_from_environment_dylibloader_wrapper_libudev)(struct udev*); +extern struct udev_device* (*udev_device_get_parent_dylibloader_wrapper_libudev)(struct udev_device*); +extern struct udev_device* (*udev_device_get_parent_with_subsystem_devtype_dylibloader_wrapper_libudev)(struct udev_device*,const char*,const char*); +extern const char* (*udev_device_get_devpath_dylibloader_wrapper_libudev)(struct udev_device*); +extern const char* (*udev_device_get_subsystem_dylibloader_wrapper_libudev)(struct udev_device*); +extern const char* (*udev_device_get_devtype_dylibloader_wrapper_libudev)(struct udev_device*); +extern const char* (*udev_device_get_syspath_dylibloader_wrapper_libudev)(struct udev_device*); +extern const char* (*udev_device_get_sysname_dylibloader_wrapper_libudev)(struct udev_device*); +extern const char* (*udev_device_get_sysnum_dylibloader_wrapper_libudev)(struct udev_device*); +extern const char* (*udev_device_get_devnode_dylibloader_wrapper_libudev)(struct udev_device*); +extern int (*udev_device_get_is_initialized_dylibloader_wrapper_libudev)(struct udev_device*); +extern struct udev_list_entry* (*udev_device_get_devlinks_list_entry_dylibloader_wrapper_libudev)(struct udev_device*); +extern struct udev_list_entry* (*udev_device_get_properties_list_entry_dylibloader_wrapper_libudev)(struct udev_device*); +extern struct udev_list_entry* (*udev_device_get_tags_list_entry_dylibloader_wrapper_libudev)(struct udev_device*); +extern struct udev_list_entry* (*udev_device_get_sysattr_list_entry_dylibloader_wrapper_libudev)(struct udev_device*); +extern const char* (*udev_device_get_property_value_dylibloader_wrapper_libudev)(struct udev_device*,const char*); +extern const char* (*udev_device_get_driver_dylibloader_wrapper_libudev)(struct udev_device*); +extern dev_t (*udev_device_get_devnum_dylibloader_wrapper_libudev)(struct udev_device*); +extern const char* (*udev_device_get_action_dylibloader_wrapper_libudev)(struct udev_device*); +extern unsigned long long int (*udev_device_get_seqnum_dylibloader_wrapper_libudev)(struct udev_device*); +extern unsigned long long int (*udev_device_get_usec_since_initialized_dylibloader_wrapper_libudev)(struct udev_device*); +extern const char* (*udev_device_get_sysattr_value_dylibloader_wrapper_libudev)(struct udev_device*,const char*); +extern int (*udev_device_set_sysattr_value_dylibloader_wrapper_libudev)(struct udev_device*,const char*,const char*); +extern int (*udev_device_has_tag_dylibloader_wrapper_libudev)(struct udev_device*,const char*); +extern struct udev_monitor* (*udev_monitor_ref_dylibloader_wrapper_libudev)(struct udev_monitor*); +extern struct udev_monitor* (*udev_monitor_unref_dylibloader_wrapper_libudev)(struct udev_monitor*); +extern struct udev* (*udev_monitor_get_udev_dylibloader_wrapper_libudev)(struct udev_monitor*); +extern struct udev_monitor* (*udev_monitor_new_from_netlink_dylibloader_wrapper_libudev)(struct udev*,const char*); +extern int (*udev_monitor_enable_receiving_dylibloader_wrapper_libudev)(struct udev_monitor*); +extern int (*udev_monitor_set_receive_buffer_size_dylibloader_wrapper_libudev)(struct udev_monitor*, int); +extern int (*udev_monitor_get_fd_dylibloader_wrapper_libudev)(struct udev_monitor*); +extern struct udev_device* (*udev_monitor_receive_device_dylibloader_wrapper_libudev)(struct udev_monitor*); +extern int (*udev_monitor_filter_add_match_subsystem_devtype_dylibloader_wrapper_libudev)(struct udev_monitor*,const char*,const char*); +extern int (*udev_monitor_filter_add_match_tag_dylibloader_wrapper_libudev)(struct udev_monitor*,const char*); +extern int (*udev_monitor_filter_update_dylibloader_wrapper_libudev)(struct udev_monitor*); +extern int (*udev_monitor_filter_remove_dylibloader_wrapper_libudev)(struct udev_monitor*); +extern struct udev_enumerate* (*udev_enumerate_ref_dylibloader_wrapper_libudev)(struct udev_enumerate*); +extern struct udev_enumerate* (*udev_enumerate_unref_dylibloader_wrapper_libudev)(struct udev_enumerate*); +extern struct udev* (*udev_enumerate_get_udev_dylibloader_wrapper_libudev)(struct udev_enumerate*); +extern struct udev_enumerate* (*udev_enumerate_new_dylibloader_wrapper_libudev)(struct udev*); +extern int (*udev_enumerate_add_match_subsystem_dylibloader_wrapper_libudev)(struct udev_enumerate*,const char*); +extern int (*udev_enumerate_add_nomatch_subsystem_dylibloader_wrapper_libudev)(struct udev_enumerate*,const char*); +extern int (*udev_enumerate_add_match_sysattr_dylibloader_wrapper_libudev)(struct udev_enumerate*,const char*,const char*); +extern int (*udev_enumerate_add_nomatch_sysattr_dylibloader_wrapper_libudev)(struct udev_enumerate*,const char*,const char*); +extern int (*udev_enumerate_add_match_property_dylibloader_wrapper_libudev)(struct udev_enumerate*,const char*,const char*); +extern int (*udev_enumerate_add_match_sysname_dylibloader_wrapper_libudev)(struct udev_enumerate*,const char*); +extern int (*udev_enumerate_add_match_tag_dylibloader_wrapper_libudev)(struct udev_enumerate*,const char*); +extern int (*udev_enumerate_add_match_parent_dylibloader_wrapper_libudev)(struct udev_enumerate*,struct udev_device*); +extern int (*udev_enumerate_add_match_is_initialized_dylibloader_wrapper_libudev)(struct udev_enumerate*); +extern int (*udev_enumerate_add_syspath_dylibloader_wrapper_libudev)(struct udev_enumerate*,const char*); +extern int (*udev_enumerate_scan_devices_dylibloader_wrapper_libudev)(struct udev_enumerate*); +extern int (*udev_enumerate_scan_subsystems_dylibloader_wrapper_libudev)(struct udev_enumerate*); +extern struct udev_list_entry* (*udev_enumerate_get_list_entry_dylibloader_wrapper_libudev)(struct udev_enumerate*); +extern struct udev_queue* (*udev_queue_ref_dylibloader_wrapper_libudev)(struct udev_queue*); +extern struct udev_queue* (*udev_queue_unref_dylibloader_wrapper_libudev)(struct udev_queue*); +extern struct udev* (*udev_queue_get_udev_dylibloader_wrapper_libudev)(struct udev_queue*); +extern struct udev_queue* (*udev_queue_new_dylibloader_wrapper_libudev)(struct udev*); +extern unsigned long long int (*udev_queue_get_kernel_seqnum_dylibloader_wrapper_libudev)(struct udev_queue*); +extern unsigned long long int (*udev_queue_get_udev_seqnum_dylibloader_wrapper_libudev)(struct udev_queue*); +extern int (*udev_queue_get_udev_is_active_dylibloader_wrapper_libudev)(struct udev_queue*); +extern int (*udev_queue_get_queue_is_empty_dylibloader_wrapper_libudev)(struct udev_queue*); +extern int (*udev_queue_get_seqnum_is_finished_dylibloader_wrapper_libudev)(struct udev_queue*, unsigned long long int); +extern int (*udev_queue_get_seqnum_sequence_is_finished_dylibloader_wrapper_libudev)(struct udev_queue*, unsigned long long int, unsigned long long int); +extern int (*udev_queue_get_fd_dylibloader_wrapper_libudev)(struct udev_queue*); +extern int (*udev_queue_flush_dylibloader_wrapper_libudev)(struct udev_queue*); +extern struct udev_list_entry* (*udev_queue_get_queued_list_entry_dylibloader_wrapper_libudev)(struct udev_queue*); +extern struct udev_hwdb* (*udev_hwdb_new_dylibloader_wrapper_libudev)(struct udev*); +extern struct udev_hwdb* (*udev_hwdb_ref_dylibloader_wrapper_libudev)(struct udev_hwdb*); +extern struct udev_hwdb* (*udev_hwdb_unref_dylibloader_wrapper_libudev)(struct udev_hwdb*); +extern struct udev_list_entry* (*udev_hwdb_get_properties_list_entry_dylibloader_wrapper_libudev)(struct udev_hwdb*,const char*, unsigned); +extern int (*udev_util_encode_string_dylibloader_wrapper_libudev)(const char*, char*, size_t); +int initialize_libudev(); +#ifdef __cplusplus +} +#endif +#endif diff --git a/platform/windows/display_server_windows.cpp b/platform/windows/display_server_windows.cpp index 21dfc4ae2c..b9b78f7bd4 100644 --- a/platform/windows/display_server_windows.cpp +++ b/platform/windows/display_server_windows.cpp @@ -535,7 +535,7 @@ void DisplayServerWindows::delete_sub_window(WindowID p_window) { } #endif - if ((OS::get_singleton()->get_current_tablet_driver() == "wintab") && wintab_available && windows[p_window].wtctx) { + if ((tablet_get_current_driver() == "wintab") && wintab_available && windows[p_window].wtctx) { wintab_WTClose(windows[p_window].wtctx); windows[p_window].wtctx = 0; } @@ -2021,7 +2021,7 @@ LRESULT DisplayServerWindows::WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARA } break; case WT_CSRCHANGE: case WT_PROXIMITY: { - if ((OS::get_singleton()->get_current_tablet_driver() == "wintab") && wintab_available && windows[window_id].wtctx) { + if ((tablet_get_current_driver() == "wintab") && wintab_available && windows[window_id].wtctx) { AXIS pressure; if (wintab_WTInfo(WTI_DEVICES + windows[window_id].wtlc.lcDevice, DVC_NPRESSURE, &pressure)) { windows[window_id].min_pressure = int(pressure.axMin); @@ -2035,7 +2035,7 @@ LRESULT DisplayServerWindows::WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARA } } break; case WT_PACKET: { - if ((OS::get_singleton()->get_current_tablet_driver() == "wintab") && wintab_available && windows[window_id].wtctx) { + if ((tablet_get_current_driver() == "wintab") && wintab_available && windows[window_id].wtctx) { PACKET packet; if (wintab_WTPacket(windows[window_id].wtctx, wParam, &packet)) { float pressure = float(packet.pkNormalPressure - windows[window_id].min_pressure) / float(windows[window_id].max_pressure - windows[window_id].min_pressure); @@ -2114,7 +2114,7 @@ LRESULT DisplayServerWindows::WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARA break; } - if ((OS::get_singleton()->get_current_tablet_driver() != "winink") || !winink_available) { + if ((tablet_get_current_driver() != "winink") || !winink_available) { break; } @@ -2140,7 +2140,7 @@ LRESULT DisplayServerWindows::WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARA break; } - if ((OS::get_singleton()->get_current_tablet_driver() != "winink") || !winink_available) { + if ((tablet_get_current_driver() != "winink") || !winink_available) { break; } @@ -2304,7 +2304,7 @@ LRESULT DisplayServerWindows::WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARA mm->set_shift((wParam & MK_SHIFT) != 0); mm->set_alt(alt_mem); - if ((OS::get_singleton()->get_current_tablet_driver() == "wintab") && wintab_available && windows[window_id].wtctx) { + if ((tablet_get_current_driver() == "wintab") && wintab_available && windows[window_id].wtctx) { // Note: WinTab sends both WT_PACKET and WM_xBUTTONDOWN/UP/MOUSEMOVE events, use mouse 1/0 pressure only when last_pressure was not update recently. if (windows[window_id].last_pressure_update < 10) { windows[window_id].last_pressure_update++; @@ -2799,7 +2799,7 @@ void DisplayServerWindows::_process_activate_event(WindowID p_window_id, WPARAM alt_mem = false; } - if ((OS::get_singleton()->get_current_tablet_driver() == "wintab") && wintab_available && windows[p_window_id].wtctx) { + if ((tablet_get_current_driver() == "wintab") && wintab_available && windows[p_window_id].wtctx) { wintab_WTEnable(windows[p_window_id].wtctx, GET_WM_ACTIVATE_STATE(wParam, lParam)); } } @@ -3037,7 +3037,7 @@ DisplayServer::WindowID DisplayServerWindows::_create_window(WindowMode p_mode, DragAcceptFiles(wd.hWnd, true); - if ((OS::get_singleton()->get_current_tablet_driver() == "wintab") && wintab_available) { + if ((tablet_get_current_driver() == "wintab") && wintab_available) { wintab_WTInfo(WTI_DEFSYSCTX, 0, &wd.wtlc); wd.wtlc.lcOptions |= CXO_MESSAGES; wd.wtlc.lcPktData = PK_NORMAL_PRESSURE | PK_TANGENT_PRESSURE | PK_ORIENTATION; @@ -3104,6 +3104,40 @@ typedef enum _SHC_PROCESS_DPI_AWARENESS { SHC_PROCESS_PER_MONITOR_DPI_AWARE = 2 } SHC_PROCESS_DPI_AWARENESS; +int DisplayServerWindows::tablet_get_driver_count() const { + return tablet_drivers.size(); +} + +String DisplayServerWindows::tablet_get_driver_name(int p_driver) const { + if (p_driver < 0 || p_driver >= tablet_drivers.size()) { + return ""; + } else { + return tablet_drivers[p_driver]; + } +} + +String DisplayServerWindows::tablet_get_current_driver() const { + return tablet_driver; +} + +void DisplayServerWindows::tablet_set_current_driver(const String &p_driver) { + if (tablet_get_driver_count() == 0) { + return; + } + bool found = false; + for (int i = 0; i < tablet_get_driver_count(); i++) { + if (p_driver == tablet_get_driver_name(i)) { + found = true; + } + } + if (found) { + _update_tablet_ctx(tablet_driver, p_driver); + tablet_driver = p_driver; + } else { + ERR_PRINT("Unknown tablet driver " + p_driver + "."); + } +} + DisplayServerWindows::DisplayServerWindows(const String &p_rendering_driver, WindowMode p_mode, uint32_t p_flags, const Vector2i &p_resolution, Error &r_error) { drop_events = false; key_event_pos = 0; @@ -3122,6 +3156,35 @@ DisplayServerWindows::DisplayServerWindows(const String &p_rendering_driver, Win outside = true; + //Note: Wacom WinTab driver API for pen input, for devices incompatible with Windows Ink. + HMODULE wintab_lib = LoadLibraryW(L"wintab32.dll"); + if (wintab_lib) { + wintab_WTOpen = (WTOpenPtr)GetProcAddress(wintab_lib, "WTOpenW"); + wintab_WTClose = (WTClosePtr)GetProcAddress(wintab_lib, "WTClose"); + wintab_WTInfo = (WTInfoPtr)GetProcAddress(wintab_lib, "WTInfoW"); + wintab_WTPacket = (WTPacketPtr)GetProcAddress(wintab_lib, "WTPacket"); + wintab_WTEnable = (WTEnablePtr)GetProcAddress(wintab_lib, "WTEnable"); + + wintab_available = wintab_WTOpen && wintab_WTClose && wintab_WTInfo && wintab_WTPacket && wintab_WTEnable; + } + + if (wintab_available) { + tablet_drivers.push_back("wintab"); + } + + //Note: Windows Ink API for pen input, available on Windows 8+ only. + HMODULE user32_lib = LoadLibraryW(L"user32.dll"); + if (user32_lib) { + win8p_GetPointerType = (GetPointerTypePtr)GetProcAddress(user32_lib, "GetPointerType"); + win8p_GetPointerPenInfo = (GetPointerPenInfoPtr)GetProcAddress(user32_lib, "GetPointerPenInfo"); + + winink_available = win8p_GetPointerType && win8p_GetPointerPenInfo; + } + + if (winink_available) { + tablet_drivers.push_back("winink"); + } + if (OS::get_singleton()->is_hidpi_allowed()) { HMODULE Shcore = LoadLibraryW(L"Shcore.dll"); diff --git a/platform/windows/display_server_windows.h b/platform/windows/display_server_windows.h index c8c6a75bf5..a734077e59 100644 --- a/platform/windows/display_server_windows.h +++ b/platform/windows/display_server_windows.h @@ -264,7 +264,6 @@ class DisplayServerWindows : public DisplayServer { _THREAD_SAFE_CLASS_ -public: // WinTab API static bool wintab_available; static WTOpenPtr wintab_WTOpen; @@ -279,8 +278,9 @@ public: static GetPointerPenInfoPtr win8p_GetPointerPenInfo; void _update_tablet_ctx(const String &p_old_driver, const String &p_new_driver); + String tablet_driver; + Vector<String> tablet_drivers; -private: void GetMaskBitmaps(HBITMAP hSourceBitmap, COLORREF clrTransparent, OUT HBITMAP &hAndMaskBitmap, OUT HBITMAP &hXorMaskBitmap); enum { @@ -542,6 +542,11 @@ public: virtual String keyboard_get_layout_language(int p_index) const; virtual String keyboard_get_layout_name(int p_index) const; + virtual int tablet_get_driver_count() const; + virtual String tablet_get_driver_name(int p_driver) const; + virtual String tablet_get_current_driver() const; + virtual void tablet_set_current_driver(const String &p_driver); + virtual void process_events(); virtual void force_process_and_drop_events(); diff --git a/platform/windows/os_windows.cpp b/platform/windows/os_windows.cpp index 2dd9ed4bd1..3280a36e9b 100644 --- a/platform/windows/os_windows.cpp +++ b/platform/windows/os_windows.cpp @@ -765,77 +765,12 @@ Error OS_Windows::move_to_trash(const String &p_path) { return OK; } -int OS_Windows::get_tablet_driver_count() const { - return tablet_drivers.size(); -} - -String OS_Windows::get_tablet_driver_name(int p_driver) const { - if (p_driver < 0 || p_driver >= tablet_drivers.size()) { - return ""; - } else { - return tablet_drivers[p_driver]; - } -} - -String OS_Windows::get_current_tablet_driver() const { - return tablet_driver; -} - -void OS_Windows::set_current_tablet_driver(const String &p_driver) { - if (get_tablet_driver_count() == 0) { - return; - } - bool found = false; - for (int i = 0; i < get_tablet_driver_count(); i++) { - if (p_driver == get_tablet_driver_name(i)) { - found = true; - } - } - if (found) { - if (DisplayServerWindows::get_singleton()) { - ((DisplayServerWindows *)DisplayServerWindows::get_singleton())->_update_tablet_ctx(tablet_driver, p_driver); - } - tablet_driver = p_driver; - } else { - ERR_PRINT("Unknown tablet driver " + p_driver + "."); - } -} - OS_Windows::OS_Windows(HINSTANCE _hInstance) { ticks_per_second = 0; ticks_start = 0; main_loop = nullptr; process_map = nullptr; - //Note: Wacom WinTab driver API for pen input, for devices incompatible with Windows Ink. - HMODULE wintab_lib = LoadLibraryW(L"wintab32.dll"); - if (wintab_lib) { - DisplayServerWindows::wintab_WTOpen = (WTOpenPtr)GetProcAddress(wintab_lib, "WTOpenW"); - DisplayServerWindows::wintab_WTClose = (WTClosePtr)GetProcAddress(wintab_lib, "WTClose"); - DisplayServerWindows::wintab_WTInfo = (WTInfoPtr)GetProcAddress(wintab_lib, "WTInfoW"); - DisplayServerWindows::wintab_WTPacket = (WTPacketPtr)GetProcAddress(wintab_lib, "WTPacket"); - DisplayServerWindows::wintab_WTEnable = (WTEnablePtr)GetProcAddress(wintab_lib, "WTEnable"); - - DisplayServerWindows::wintab_available = DisplayServerWindows::wintab_WTOpen && DisplayServerWindows::wintab_WTClose && DisplayServerWindows::wintab_WTInfo && DisplayServerWindows::wintab_WTPacket && DisplayServerWindows::wintab_WTEnable; - } - - if (DisplayServerWindows::wintab_available) { - tablet_drivers.push_back("wintab"); - } - - //Note: Windows Ink API for pen input, available on Windows 8+ only. - HMODULE user32_lib = LoadLibraryW(L"user32.dll"); - if (user32_lib) { - DisplayServerWindows::win8p_GetPointerType = (GetPointerTypePtr)GetProcAddress(user32_lib, "GetPointerType"); - DisplayServerWindows::win8p_GetPointerPenInfo = (GetPointerPenInfoPtr)GetProcAddress(user32_lib, "GetPointerPenInfo"); - - DisplayServerWindows::winink_available = DisplayServerWindows::win8p_GetPointerType && DisplayServerWindows::win8p_GetPointerPenInfo; - } - - if (DisplayServerWindows::winink_available) { - tablet_drivers.push_back("winink"); - } - force_quit = false; hInstance = _hInstance; diff --git a/platform/windows/os_windows.h b/platform/windows/os_windows.h index 1a8791196b..8f9ef254f1 100644 --- a/platform/windows/os_windows.h +++ b/platform/windows/os_windows.h @@ -73,9 +73,6 @@ class OS_Windows : public OS { HINSTANCE hInstance; MainLoop *main_loop; - String tablet_driver; - Vector<String> tablet_drivers; - #ifdef WASAPI_ENABLED AudioDriverWASAPI driver_wasapi; #endif @@ -119,11 +116,6 @@ public: virtual String get_name() const override; - virtual int get_tablet_driver_count() const override; - virtual String get_tablet_driver_name(int p_driver) const override; - virtual String get_current_tablet_driver() const override; - virtual void set_current_tablet_driver(const String &p_driver) override; - virtual void initialize_joypads() override {} virtual Date get_date(bool utc) const override; diff --git a/scene/2d/audio_stream_player_2d.cpp b/scene/2d/audio_stream_player_2d.cpp index 4e7eec906c..6d8d6058eb 100644 --- a/scene/2d/audio_stream_player_2d.cpp +++ b/scene/2d/audio_stream_player_2d.cpp @@ -35,14 +35,14 @@ #include "scene/main/window.h" void AudioStreamPlayer2D::_mix_audio() { - if (!stream_playback.is_valid() || !active || + if (!stream_playback.is_valid() || !active.is_set() || (stream_paused && !stream_paused_fade_out)) { return; } - if (setseek >= 0.0) { - stream_playback->start(setseek); - setseek = -1.0; //reset seek + if (setseek.get() >= 0.0) { + stream_playback->start(setseek.get()); + setseek.set(-1.0); //reset seek } //get data @@ -57,7 +57,8 @@ void AudioStreamPlayer2D::_mix_audio() { stream_playback->mix(buffer, pitch_scale, buffer_size); //write all outputs - for (int i = 0; i < output_count; i++) { + int oc = output_count.get(); + for (int i = 0; i < oc; i++) { Output current = outputs[i]; //see if current output exists, to keep volume ramp @@ -130,14 +131,14 @@ void AudioStreamPlayer2D::_mix_audio() { prev_outputs[i] = current; } - prev_output_count = output_count; + prev_output_count = oc; //stream is no longer active, disable this. if (!stream_playback->is_playing()) { - active = false; + active.clear(); } - output_ready = false; + output_ready.clear(); stream_paused_fade_in = false; stream_paused_fade_out = false; } @@ -168,7 +169,7 @@ void AudioStreamPlayer2D::_notification(int p_what) { if (p_what == NOTIFICATION_INTERNAL_PHYSICS_PROCESS) { //update anything related to position first, if possible of course - if (!output_ready) { + if (!output_ready.is_set()) { List<Viewport *> viewports; Ref<World2D> world_2d = get_world_2d(); ERR_FAIL_COND(world_2d.is_null()); @@ -240,19 +241,19 @@ void AudioStreamPlayer2D::_notification(int p_what) { } } - output_count = new_output_count; - output_ready = true; + output_count.set(new_output_count); + output_ready.set(); } //start playing if requested - if (setplay >= 0.0) { - setseek = setplay; - active = true; - setplay = -1; + if (setplay.get() >= 0.0) { + setseek.set(setplay.get()); + active.set(); + setplay.set(-1); } //stop playing if no longer active - if (!active) { + if (!active.is_set()) { set_physics_process_internal(false); emit_signal("finished"); } @@ -267,8 +268,8 @@ void AudioStreamPlayer2D::set_stream(Ref<AudioStream> p_stream) { if (stream_playback.is_valid()) { stream_playback.unref(); stream.unref(); - active = false; - setseek = -1; + active.clear(); + setseek.set(-1); } if (p_stream.is_valid()) { @@ -311,30 +312,29 @@ void AudioStreamPlayer2D::play(float p_from_pos) { } if (stream_playback.is_valid()) { - active = true; - setplay = p_from_pos; - output_ready = false; + setplay.set(p_from_pos); + output_ready.clear(); set_physics_process_internal(true); } } void AudioStreamPlayer2D::seek(float p_seconds) { if (stream_playback.is_valid()) { - setseek = p_seconds; + setseek.set(p_seconds); } } void AudioStreamPlayer2D::stop() { if (stream_playback.is_valid()) { - active = false; + active.clear(); set_physics_process_internal(false); - setplay = -1; + setplay.set(-1); } } bool AudioStreamPlayer2D::is_playing() const { if (stream_playback.is_valid()) { - return active; // && stream_playback->is_playing(); + return active.is_set() || setplay.get() >= 0; } return false; @@ -342,6 +342,10 @@ bool AudioStreamPlayer2D::is_playing() const { float AudioStreamPlayer2D::get_playback_position() { if (stream_playback.is_valid()) { + float ss = setseek.get(); + if (ss >= 0.0) { + return ss; + } return stream_playback->get_playback_position(); } @@ -381,7 +385,7 @@ void AudioStreamPlayer2D::_set_playing(bool p_enable) { } bool AudioStreamPlayer2D::_is_active() const { - return active; + return active.is_set(); } void AudioStreamPlayer2D::_validate_property(PropertyInfo &property) const { diff --git a/scene/2d/audio_stream_player_2d.h b/scene/2d/audio_stream_player_2d.h index 6fb8cc414c..21f524c703 100644 --- a/scene/2d/audio_stream_player_2d.h +++ b/scene/2d/audio_stream_player_2d.h @@ -31,6 +31,7 @@ #ifndef AUDIO_STREAM_PLAYER_2D_H #define AUDIO_STREAM_PLAYER_2D_H +#include "core/templates/safe_refcount.h" #include "scene/2d/node_2d.h" #include "servers/audio/audio_stream.h" #include "servers/audio_server.h" @@ -52,8 +53,8 @@ private: }; Output outputs[MAX_OUTPUTS]; - volatile int output_count = 0; - volatile bool output_ready = false; + SafeNumeric<int> output_count; + SafeFlag output_ready; //these are used by audio thread to have a reference of previous volumes (for ramping volume and avoiding clicks) Output prev_outputs[MAX_OUTPUTS]; @@ -63,9 +64,9 @@ private: Ref<AudioStream> stream; Vector<AudioFrame> mix_buffer; - volatile float setseek = -1.0; - volatile bool active = false; - volatile float setplay = -1.0; + SafeNumeric<float> setseek{ -1.0 }; + SafeFlag active; + SafeNumeric<float> setplay{ -1.0 }; float volume_db = 0.0; float pitch_scale = 1.0; diff --git a/scene/2d/collision_shape_2d.cpp b/scene/2d/collision_shape_2d.cpp index 4d1d274542..93949f741b 100644 --- a/scene/2d/collision_shape_2d.cpp +++ b/scene/2d/collision_shape_2d.cpp @@ -110,6 +110,7 @@ void CollisionShape2D::_notification(int p_what) { draw_col.r = g; draw_col.g = g; draw_col.b = g; + draw_col.a *= 0.5; } shape->draw(get_canvas_item(), draw_col); diff --git a/scene/3d/audio_stream_player_3d.cpp b/scene/3d/audio_stream_player_3d.cpp index d420bd6075..72392be5bd 100644 --- a/scene/3d/audio_stream_player_3d.cpp +++ b/scene/3d/audio_stream_player_3d.cpp @@ -138,15 +138,15 @@ void AudioStreamPlayer3D::_calc_output_vol(const Vector3 &source_dir, real_t tig } void AudioStreamPlayer3D::_mix_audio() { - if (!stream_playback.is_valid() || !active || + if (!stream_playback.is_valid() || !active.is_set() || (stream_paused && !stream_paused_fade_out)) { return; } bool started = false; - if (setseek >= 0.0) { - stream_playback->start(setseek); - setseek = -1.0; //reset seek + if (setseek.get() >= 0.0) { + stream_playback->start(setseek.get()); + setseek.set(-1.0); //reset seek started = true; } @@ -160,14 +160,14 @@ void AudioStreamPlayer3D::_mix_audio() { } // Mix if we're not paused or we're fading out - if ((output_count > 0 || out_of_range_mode == OUT_OF_RANGE_MIX)) { + if ((output_count.get() > 0 || out_of_range_mode == OUT_OF_RANGE_MIX)) { float output_pitch_scale = 0.0; - if (output_count) { + if (output_count.get()) { //used for doppler, not realistic but good enough - for (int i = 0; i < output_count; i++) { + for (int i = 0; i < output_count.get(); i++) { output_pitch_scale += outputs[i].pitch_scale; } - output_pitch_scale /= float(output_count); + output_pitch_scale /= float(output_count.get()); } else { output_pitch_scale = 1.0; } @@ -176,7 +176,7 @@ void AudioStreamPlayer3D::_mix_audio() { } //write all outputs - for (int i = 0; i < output_count; i++) { + for (int i = 0; i < output_count.get(); i++) { Output current = outputs[i]; //see if current output exists, to keep volume ramp @@ -285,14 +285,14 @@ void AudioStreamPlayer3D::_mix_audio() { prev_outputs[i] = current; } - prev_output_count = output_count; + prev_output_count = output_count.get(); //stream is no longer active, disable this. if (!stream_playback->is_playing()) { - active = false; + active.clear(); } - output_ready = false; + output_ready.clear(); stream_paused_fade_in = false; stream_paused_fade_out = false; } @@ -360,7 +360,7 @@ void AudioStreamPlayer3D::_notification(int p_what) { if (p_what == NOTIFICATION_INTERNAL_PHYSICS_PROCESS) { //update anything related to position first, if possible of course - if (!output_ready) { + if (!output_ready.is_set()) { Vector3 linear_velocity; //compute linear velocity for doppler @@ -596,19 +596,19 @@ void AudioStreamPlayer3D::_notification(int p_what) { } } - output_count = new_output_count; - output_ready = true; + output_count.set(new_output_count); + output_ready.set(); } //start playing if requested - if (setplay >= 0.0) { - setseek = setplay; - active = true; - setplay = -1; + if (setplay.get() >= 0.0) { + setseek.set(setplay.get()); + active.set(); + setplay.set(-1); } //stop playing if no longer active - if (!active) { + if (!active.is_set()) { set_physics_process_internal(false); emit_signal("finished"); } @@ -623,8 +623,8 @@ void AudioStreamPlayer3D::set_stream(Ref<AudioStream> p_stream) { if (stream_playback.is_valid()) { stream_playback.unref(); stream.unref(); - active = false; - setseek = -1; + active.clear(); + setseek.set(-1); } if (p_stream.is_valid()) { @@ -683,30 +683,29 @@ void AudioStreamPlayer3D::play(float p_from_pos) { } if (stream_playback.is_valid()) { - active = true; - setplay = p_from_pos; - output_ready = false; + setplay.set(p_from_pos); + output_ready.clear(); set_physics_process_internal(true); } } void AudioStreamPlayer3D::seek(float p_seconds) { if (stream_playback.is_valid()) { - setseek = p_seconds; + setseek.set(p_seconds); } } void AudioStreamPlayer3D::stop() { if (stream_playback.is_valid()) { - active = false; + active.clear(); set_physics_process_internal(false); - setplay = -1; + setplay.set(-1); } } bool AudioStreamPlayer3D::is_playing() const { if (stream_playback.is_valid()) { - return active; // && stream_playback->is_playing(); + return active.is_set() || setplay.get() >= 0; } return false; @@ -714,6 +713,10 @@ bool AudioStreamPlayer3D::is_playing() const { float AudioStreamPlayer3D::get_playback_position() { if (stream_playback.is_valid()) { + float ss = setseek.get(); + if (ss >= 0.0) { + return ss; + } return stream_playback->get_playback_position(); } @@ -753,7 +756,7 @@ void AudioStreamPlayer3D::_set_playing(bool p_enable) { } bool AudioStreamPlayer3D::_is_active() const { - return active; + return active.is_set(); } void AudioStreamPlayer3D::_validate_property(PropertyInfo &property) const { diff --git a/scene/3d/audio_stream_player_3d.h b/scene/3d/audio_stream_player_3d.h index 33ed758749..70c535bd89 100644 --- a/scene/3d/audio_stream_player_3d.h +++ b/scene/3d/audio_stream_player_3d.h @@ -31,6 +31,7 @@ #ifndef AUDIO_STREAM_PLAYER_3D_H #define AUDIO_STREAM_PLAYER_3D_H +#include "core/templates/safe_refcount.h" #include "scene/3d/node_3d.h" #include "scene/3d/velocity_tracker_3d.h" #include "servers/audio/audio_filter_sw.h" @@ -80,8 +81,8 @@ private: }; Output outputs[MAX_OUTPUTS]; - volatile int output_count = 0; - volatile bool output_ready = false; + SafeNumeric<int> output_count; + SafeFlag output_ready; //these are used by audio thread to have a reference of previous volumes (for ramping volume and avoiding clicks) Output prev_outputs[MAX_OUTPUTS]; @@ -91,9 +92,9 @@ private: Ref<AudioStream> stream; Vector<AudioFrame> mix_buffer; - volatile float setseek = -1.0; - volatile bool active = false; - volatile float setplay = -1.0; + SafeNumeric<float> setseek{ -1.0 }; + SafeFlag active; + SafeNumeric<float> setplay{ -1.0 }; AttenuationModel attenuation_model = ATTENUATION_INVERSE_DISTANCE; float unit_db = 0.0; diff --git a/scene/3d/cpu_particles_3d.cpp b/scene/3d/cpu_particles_3d.cpp index 7825119e6e..d22d7ff3ab 100644 --- a/scene/3d/cpu_particles_3d.cpp +++ b/scene/3d/cpu_particles_3d.cpp @@ -152,6 +152,7 @@ float CPUParticles3D::get_speed_scale() const { } void CPUParticles3D::set_draw_order(DrawOrder p_order) { + ERR_FAIL_INDEX(p_order, DRAW_ORDER_MAX); draw_order = p_order; } @@ -1011,6 +1012,7 @@ void CPUParticles3D::_update_particle_data_buffer() { sorter.compare.particles = r; sorter.sort(order, pc); } else if (draw_order == DRAW_ORDER_VIEW_DEPTH) { + ERR_FAIL_NULL(get_viewport()); Camera3D *c = get_viewport()->get_camera(); if (c) { Vector3 dir = c->get_global_transform().basis.get_axis(2); //far away to close @@ -1072,7 +1074,7 @@ void CPUParticles3D::_update_particle_data_buffer() { ptr += 20; } - can_update = true; + can_update.set(); } void CPUParticles3D::_set_redraw(bool p_redraw) { @@ -1101,9 +1103,9 @@ void CPUParticles3D::_set_redraw(bool p_redraw) { void CPUParticles3D::_update_render_thread() { MutexLock lock(update_mutex); - if (can_update) { + if (can_update.is_set()) { RS::get_singleton()->multimesh_set_buffer(multimesh, particle_data); - can_update = false; //wait for next time + can_update.clear(); //wait for next time } } @@ -1165,7 +1167,7 @@ void CPUParticles3D::_notification(int p_what) { ptr += 20; } - can_update = true; + can_update.set(); } } } @@ -1466,6 +1468,21 @@ CPUParticles3D::CPUParticles3D() { set_param(PARAM_HUE_VARIATION, 0); set_param(PARAM_ANIM_SPEED, 0); set_param(PARAM_ANIM_OFFSET, 0); + set_emission_shape(EMISSION_SHAPE_POINT); + set_emission_sphere_radius(1); + set_emission_box_extents(Vector3(1, 1, 1)); + + set_gravity(Vector3(0, -9.8, 0)); + + for (int i = 0; i < PARAM_MAX; i++) { + set_param_randomness(Parameter(i), 0); + } + + for (int i = 0; i < PARTICLE_FLAG_MAX; i++) { + particle_flags[i] = false; + } + + set_color(Color(1, 1, 1, 1)); } CPUParticles3D::~CPUParticles3D() { diff --git a/scene/3d/cpu_particles_3d.h b/scene/3d/cpu_particles_3d.h index d650bf95ac..10ac32622d 100644 --- a/scene/3d/cpu_particles_3d.h +++ b/scene/3d/cpu_particles_3d.h @@ -32,6 +32,7 @@ #define CPU_PARTICLES_H #include "core/templates/rid.h" +#include "core/templates/safe_refcount.h" #include "scene/3d/visual_instance_3d.h" class CPUParticles3D : public GeometryInstance3D { @@ -43,6 +44,7 @@ public: DRAW_ORDER_INDEX, DRAW_ORDER_LIFETIME, DRAW_ORDER_VIEW_DEPTH, + DRAW_ORDER_MAX }; enum Parameter { @@ -141,7 +143,7 @@ private: Transform inv_emission_transform; - volatile bool can_update = false; + SafeFlag can_update; DrawOrder draw_order = DRAW_ORDER_INDEX; diff --git a/scene/3d/gi_probe.cpp b/scene/3d/gi_probe.cpp index 942996ca14..8a8bfe50b9 100644 --- a/scene/3d/gi_probe.cpp +++ b/scene/3d/gi_probe.cpp @@ -221,7 +221,7 @@ RID GIProbeData::get_rid() const { void GIProbeData::_validate_property(PropertyInfo &property) const { if (property.name == "anisotropy_strength") { - bool anisotropy_enabled = ProjectSettings::get_singleton()->get("rendering/quality/gi_probes/anisotropic"); + bool anisotropy_enabled = ProjectSettings::get_singleton()->get("rendering/global_illumination/gi_probes/anisotropic"); if (!anisotropy_enabled) { property.usage = PROPERTY_USAGE_NOEDITOR; } diff --git a/scene/3d/mesh_instance_3d.cpp b/scene/3d/mesh_instance_3d.cpp index 7b3a0820f1..b997c64b29 100644 --- a/scene/3d/mesh_instance_3d.cpp +++ b/scene/3d/mesh_instance_3d.cpp @@ -319,6 +319,7 @@ Ref<Material> MeshInstance3D::get_active_material(int p_surface) const { } void MeshInstance3D::_mesh_changed() { + ERR_FAIL_COND(mesh.is_null()); materials.resize(mesh->get_surface_count()); } diff --git a/scene/3d/node_3d.cpp b/scene/3d/node_3d.cpp index 3b1fb830e3..4575716f7a 100644 --- a/scene/3d/node_3d.cpp +++ b/scene/3d/node_3d.cpp @@ -747,8 +747,8 @@ void Node3D::_bind_methods() { ClassDB::bind_method(D_METHOD("orthonormalize"), &Node3D::orthonormalize); ClassDB::bind_method(D_METHOD("set_identity"), &Node3D::set_identity); - ClassDB::bind_method(D_METHOD("look_at", "target", "up"), &Node3D::look_at); - ClassDB::bind_method(D_METHOD("look_at_from_position", "position", "target", "up"), &Node3D::look_at_from_position); + ClassDB::bind_method(D_METHOD("look_at", "target", "up"), &Node3D::look_at, DEFVAL(Vector3(0, 1, 0))); + ClassDB::bind_method(D_METHOD("look_at_from_position", "position", "target", "up"), &Node3D::look_at_from_position, DEFVAL(Vector3(0, 1, 0))); ClassDB::bind_method(D_METHOD("to_local", "global_point"), &Node3D::to_local); ClassDB::bind_method(D_METHOD("to_global", "local_point"), &Node3D::to_global); diff --git a/scene/3d/node_3d.h b/scene/3d/node_3d.h index 8610e2c0bd..a62c7b31a8 100644 --- a/scene/3d/node_3d.h +++ b/scene/3d/node_3d.h @@ -173,8 +173,8 @@ public: void global_scale(const Vector3 &p_scale); void global_translate(const Vector3 &p_offset); - void look_at(const Vector3 &p_target, const Vector3 &p_up); - void look_at_from_position(const Vector3 &p_pos, const Vector3 &p_target, const Vector3 &p_up); + void look_at(const Vector3 &p_target, const Vector3 &p_up = Vector3(0, 1, 0)); + void look_at_from_position(const Vector3 &p_pos, const Vector3 &p_target, const Vector3 &p_up = Vector3(0, 1, 0)); Vector3 to_local(Vector3 p_global) const; Vector3 to_global(Vector3 p_local) const; diff --git a/scene/3d/sprite_3d.cpp b/scene/3d/sprite_3d.cpp index c26224d0e3..cb2df9130f 100644 --- a/scene/3d/sprite_3d.cpp +++ b/scene/3d/sprite_3d.cpp @@ -888,11 +888,13 @@ void AnimatedSprite3D::_notification(int p_what) { } else { frame = fc - 1; } + emit_signal(SceneStringNames::get_singleton()->animation_finished); } else { frame++; } _queue_update(); + emit_signal(SceneStringNames::get_singleton()->frame_changed); } float to_process = MIN(timeout, remaining); @@ -1082,6 +1084,7 @@ void AnimatedSprite3D::_bind_methods() { ClassDB::bind_method(D_METHOD("get_frame"), &AnimatedSprite3D::get_frame); ADD_SIGNAL(MethodInfo("frame_changed")); + ADD_SIGNAL(MethodInfo("animation_finished")); ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "frames", PROPERTY_HINT_RESOURCE_TYPE, "SpriteFrames"), "set_sprite_frames", "get_sprite_frames"); ADD_PROPERTY(PropertyInfo(Variant::STRING_NAME, "animation"), "set_animation", "get_animation"); diff --git a/scene/audio/audio_stream_player.cpp b/scene/audio/audio_stream_player.cpp index 4f77734b79..7957571ab7 100644 --- a/scene/audio/audio_stream_player.cpp +++ b/scene/audio/audio_stream_player.cpp @@ -99,7 +99,7 @@ void AudioStreamPlayer::_mix_audio() { use_fadeout = false; } - if (!stream_playback.is_valid() || !active || + if (!stream_playback.is_valid() || !active.is_set() || (stream_paused && !stream_paused_fade)) { return; } @@ -112,24 +112,24 @@ void AudioStreamPlayer::_mix_audio() { return; } - if (setstop) { + if (setstop.is_set()) { _mix_internal(true); stream_playback->stop(); - setstop = false; + setstop.clear(); } - if (setseek >= 0.0 && !stop_has_priority) { + if (setseek.get() >= 0.0 && !stop_has_priority.is_set()) { if (stream_playback->is_playing()) { //fade out to avoid pops _mix_internal(true); } - stream_playback->start(setseek); - setseek = -1.0; //reset seek + stream_playback->start(setseek.get()); + setseek.set(-1.0); //reset seek mix_volume_db = volume_db; //reset ramp } - stop_has_priority = false; + stop_has_priority.clear(); _mix_internal(false); } @@ -143,8 +143,8 @@ void AudioStreamPlayer::_notification(int p_what) { } if (p_what == NOTIFICATION_INTERNAL_PROCESS) { - if (!active || (setseek < 0 && !stream_playback->is_playing())) { - active = false; + if (!active.is_set() || (setseek.get() < 0 && !stream_playback->is_playing())) { + active.clear(); set_process_internal(false); emit_signal("finished"); } @@ -169,7 +169,7 @@ void AudioStreamPlayer::_notification(int p_what) { void AudioStreamPlayer::set_stream(Ref<AudioStream> p_stream) { AudioServer::get_singleton()->lock(); - if (active && stream_playback.is_valid() && !stream_paused) { + if (active.is_set() && stream_playback.is_valid() && !stream_paused) { //changing streams out of the blue is not a great idea, but at least //lets try to somehow avoid a click @@ -196,9 +196,9 @@ void AudioStreamPlayer::set_stream(Ref<AudioStream> p_stream) { if (stream_playback.is_valid()) { stream_playback.unref(); stream.unref(); - active = false; - setseek = -1; - setstop = false; + active.clear(); + setseek.set(-1); + setstop.clear(); } if (p_stream.is_valid()) { @@ -237,29 +237,29 @@ float AudioStreamPlayer::get_pitch_scale() const { void AudioStreamPlayer::play(float p_from_pos) { if (stream_playback.is_valid()) { //mix_volume_db = volume_db; do not reset volume ramp here, can cause clicks - setseek = p_from_pos; - stop_has_priority = false; - active = true; + setseek.set(p_from_pos); + stop_has_priority.clear(); + active.set(); set_process_internal(true); } } void AudioStreamPlayer::seek(float p_seconds) { if (stream_playback.is_valid()) { - setseek = p_seconds; + setseek.set(p_seconds); } } void AudioStreamPlayer::stop() { - if (stream_playback.is_valid() && active) { - setstop = true; - stop_has_priority = true; + if (stream_playback.is_valid() && active.is_set()) { + setstop.set(); + stop_has_priority.set(); } } bool AudioStreamPlayer::is_playing() const { if (stream_playback.is_valid()) { - return active && !setstop; //&& stream_playback->is_playing(); + return active.is_set() && !setstop.is_set(); //&& stream_playback->is_playing(); } return false; @@ -267,6 +267,10 @@ bool AudioStreamPlayer::is_playing() const { float AudioStreamPlayer::get_playback_position() { if (stream_playback.is_valid()) { + float ss = setseek.get(); + if (ss >= 0.0) { + return ss; + } return stream_playback->get_playback_position(); } @@ -314,7 +318,7 @@ void AudioStreamPlayer::_set_playing(bool p_enable) { } bool AudioStreamPlayer::_is_active() const { - return active; + return active.is_set(); } void AudioStreamPlayer::set_stream_paused(bool p_pause) { diff --git a/scene/audio/audio_stream_player.h b/scene/audio/audio_stream_player.h index ab98d41302..d8f83ee38d 100644 --- a/scene/audio/audio_stream_player.h +++ b/scene/audio/audio_stream_player.h @@ -31,6 +31,7 @@ #ifndef AUDIO_STREAM_PLAYER_H #define AUDIO_STREAM_PLAYER_H +#include "core/templates/safe_refcount.h" #include "scene/main/node.h" #include "servers/audio/audio_stream.h" @@ -49,12 +50,12 @@ private: Ref<AudioStream> stream; Vector<AudioFrame> mix_buffer; Vector<AudioFrame> fadeout_buffer; - bool use_fadeout = false; + bool use_fadeout; - volatile float setseek = -1.0; - volatile bool active = false; - volatile bool setstop = false; - volatile bool stop_has_priority = false; + SafeNumeric<float> setseek{ -1.0 }; + SafeFlag active; + SafeFlag setstop; + SafeFlag stop_has_priority; float mix_volume_db = 0.0; float pitch_scale = 1.0; diff --git a/scene/gui/color_picker.cpp b/scene/gui/color_picker.cpp index a3205c27a7..b82c078a2d 100644 --- a/scene/gui/color_picker.cpp +++ b/scene/gui/color_picker.cpp @@ -578,6 +578,10 @@ void ColorPicker::_preset_input(const Ref<InputEvent> &p_event) { } void ColorPicker::_screen_input(const Ref<InputEvent> &p_event) { + if (!is_inside_tree()) { + return; + } + Ref<InputEventMouseButton> bev = p_event; if (bev.is_valid() && bev->get_button_index() == BUTTON_LEFT && !bev->is_pressed()) { emit_signal("color_changed", color); @@ -607,6 +611,10 @@ void ColorPicker::_add_preset_pressed() { } void ColorPicker::_screen_pick_pressed() { + if (!is_inside_tree()) { + return; + } + Viewport *r = get_tree()->get_root(); if (!screen) { screen = memnew(Control); diff --git a/scene/gui/control.cpp b/scene/gui/control.cpp index cf75365b44..0e28c942f1 100644 --- a/scene/gui/control.cpp +++ b/scene/gui/control.cpp @@ -439,14 +439,14 @@ bool Control::is_layout_rtl() const { } else if (parent_window) { return parent_window->is_layout_rtl(); } else { - if (GLOBAL_GET("display/window/force_right_to_left_layout_direction")) { + if (GLOBAL_GET("internationalization/rendering/force_right_to_left_layout_direction")) { return true; } String locale = TranslationServer::get_singleton()->get_tool_locale(); return TS->is_locale_right_to_left(locale); } } else if (data.layout_dir == LAYOUT_DIRECTION_LOCALE) { - if (GLOBAL_GET("display/window/force_right_to_left_layout_direction")) { + if (GLOBAL_GET("internationalization/rendering/force_right_to_left_layout_direction")) { return true; } String locale = TranslationServer::get_singleton()->get_tool_locale(); diff --git a/scene/gui/graph_edit.cpp b/scene/gui/graph_edit.cpp index 6e61950f10..70015bcf88 100644 --- a/scene/gui/graph_edit.cpp +++ b/scene/gui/graph_edit.cpp @@ -1330,25 +1330,17 @@ void GraphEdit::_gui_input(const Ref<InputEvent> &p_ev) { } } - Ref<InputEventKey> k = p_ev; - - if (k.is_valid()) { - if (k->get_keycode() == KEY_D && k->is_pressed() && k->get_command()) { + if (p_ev->is_pressed()) { + if (p_ev->is_action("ui_graph_duplicate")) { emit_signal("duplicate_nodes_request"); accept_event(); - } - - if (k->get_keycode() == KEY_C && k->is_pressed() && k->get_command()) { + } else if (p_ev->is_action("ui_copy")) { emit_signal("copy_nodes_request"); accept_event(); - } - - if (k->get_keycode() == KEY_V && k->is_pressed() && k->get_command()) { + } else if (p_ev->is_action("ui_paste")) { emit_signal("paste_nodes_request"); accept_event(); - } - - if (k->get_keycode() == KEY_DELETE && k->is_pressed()) { + } else if (p_ev->is_action("ui_graph_delete")) { emit_signal("delete_nodes_request"); accept_event(); } diff --git a/scene/gui/line_edit.cpp b/scene/gui/line_edit.cpp index da5389dedf..ba08aae8e3 100644 --- a/scene/gui/line_edit.cpp +++ b/scene/gui/line_edit.cpp @@ -30,6 +30,7 @@ #include "line_edit.h" +#include "core/input/input_map.h" #include "core/object/message_queue.h" #include "core/os/keyboard.h" #include "core/os/os.h" @@ -44,6 +45,175 @@ #endif #include "scene/main/window.h" +void LineEdit::_swap_current_input_direction() { + if (input_direction == TEXT_DIRECTION_LTR) { + input_direction = TEXT_DIRECTION_RTL; + } else { + input_direction = TEXT_DIRECTION_LTR; + } + set_cursor_position(get_cursor_position()); + update(); +} + +void LineEdit::_move_cursor_left(bool p_select, bool p_move_by_word) { + if (selection.enabled && !p_select) { + set_cursor_position(selection.begin); + deselect(); + return; + } + + shift_selection_check_pre(p_select); + + if (p_move_by_word) { + int cc = cursor_pos; + + Vector<Vector2i> words = TS->shaped_text_get_word_breaks(text_rid); + for (int i = words.size() - 1; i >= 0; i--) { + if (words[i].x < cc) { + cc = words[i].x; + break; + } + } + + set_cursor_position(cc); + } else { + if (mid_grapheme_caret_enabled) { + set_cursor_position(get_cursor_position() - 1); + } else { + set_cursor_position(TS->shaped_text_prev_grapheme_pos(text_rid, get_cursor_position())); + } + } + + shift_selection_check_post(p_select); +} + +void LineEdit::_move_cursor_right(bool p_select, bool p_move_by_word) { + if (selection.enabled && !p_select) { + set_cursor_position(selection.end); + deselect(); + return; + } + + shift_selection_check_pre(p_select); + + if (p_move_by_word) { + int cc = cursor_pos; + + Vector<Vector2i> words = TS->shaped_text_get_word_breaks(text_rid); + for (int i = 0; i < words.size(); i++) { + if (words[i].y > cc) { + cc = words[i].y; + break; + } + } + + set_cursor_position(cc); + } else { + if (mid_grapheme_caret_enabled) { + set_cursor_position(get_cursor_position() + 1); + } else { + set_cursor_position(TS->shaped_text_next_grapheme_pos(text_rid, get_cursor_position())); + } + } + + shift_selection_check_post(p_select); +} + +void LineEdit::_move_cursor_start(bool p_select) { + shift_selection_check_pre(p_select); + set_cursor_position(0); + shift_selection_check_post(p_select); +} + +void LineEdit::_move_cursor_end(bool p_select) { + shift_selection_check_pre(p_select); + set_cursor_position(text.length()); + shift_selection_check_post(p_select); +} + +void LineEdit::_backspace(bool p_word, bool p_all_to_left) { + if (!editable) { + return; + } + + if (p_all_to_left) { + deselect(); + text = text.substr(0, cursor_pos); + _text_changed(); + return; + } + + if (selection.enabled) { + selection_delete(); + return; + } + + if (p_word) { + int cc = cursor_pos; + + Vector<Vector2i> words = TS->shaped_text_get_word_breaks(text_rid); + for (int i = words.size() - 1; i >= 0; i--) { + if (words[i].x < cc) { + cc = words[i].x; + } + } + + delete_text(cc, cursor_pos); + + set_cursor_position(cc); + } else { + delete_char(); + } +} + +void LineEdit::_delete(bool p_word, bool p_all_to_right) { + if (!editable) { + return; + } + + if (p_all_to_right) { + deselect(); + text = text.substr(cursor_pos, text.length() - cursor_pos); + _shape(); + set_cursor_position(0); + _text_changed(); + return; + } + + if (selection.enabled) { + selection_delete(); + return; + } + + int text_len = text.length(); + + if (cursor_pos == text_len) { + return; // Nothing to do. + } + + if (p_word) { + int cc = cursor_pos; + Vector<Vector2i> words = TS->shaped_text_get_word_breaks(text_rid); + for (int i = 0; i < words.size(); i++) { + if (words[i].y > cc) { + cc = words[i].y; + break; + } + } + + delete_text(cursor_pos, cc); + } else { + if (mid_grapheme_caret_enabled) { + set_cursor_position(cursor_pos + 1); + delete_char(); + } else { + int cc = cursor_pos; + set_cursor_position(TS->shaped_text_next_grapheme_pos(text_rid, cursor_pos)); + delete_text(cc, cursor_pos); + } + } +} + void LineEdit::_gui_input(Ref<InputEvent> p_event) { Ref<InputEventMouseButton> b = p_event; @@ -55,7 +225,7 @@ void LineEdit::_gui_input(Ref<InputEvent> p_event) { if (b->is_pressed() && b->get_button_index() == BUTTON_RIGHT && context_menu_enabled) { menu->set_position(get_screen_transform().xform(get_local_mouse_position())); menu->set_size(Vector2(1, 1)); - //menu->set_scale(get_global_transform().get_scale()); + _generate_context_menu(); menu->popup(); grab_focus(); accept_event(); @@ -153,453 +323,163 @@ void LineEdit::_gui_input(Ref<InputEvent> p_event) { return; } -#ifdef APPLE_STYLE_KEYS - if (k->get_control() && !k->get_shift() && !k->get_alt() && !k->get_command()) { - uint32_t remap_key = KEY_UNKNOWN; - switch (k->get_keycode()) { - case KEY_F: { - remap_key = KEY_RIGHT; - } break; - case KEY_B: { - remap_key = KEY_LEFT; - } break; - case KEY_P: { - remap_key = KEY_UP; - } break; - case KEY_N: { - remap_key = KEY_DOWN; - } break; - case KEY_D: { - remap_key = KEY_DELETE; - } break; - case KEY_H: { - remap_key = KEY_BACKSPACE; - } break; - case KEY_A: { - remap_key = KEY_HOME; - } break; - case KEY_E: { - remap_key = KEY_END; - } break; + if (context_menu_enabled) { + if (k->is_action("ui_menu", true)) { + Point2 pos = Point2(get_cursor_pixel_pos().x, (get_size().y + get_theme_font("font")->get_height(get_theme_font_size("font_size"))) / 2); + menu->set_position(get_global_transform().xform(pos)); + menu->set_size(Vector2(1, 1)); + _generate_context_menu(); + menu->popup(); + menu->grab_focus(); } + } - if (remap_key != KEY_UNKNOWN) { - k->set_keycode(remap_key); - k->set_control(false); + // Default is ENTER, KP_ENTER. Cannot use ui_accept as default includes SPACE + if (k->is_action("ui_text_newline", true)) { + emit_signal("text_entered", text); + if (DisplayServer::get_singleton()->has_feature(DisplayServer::FEATURE_VIRTUAL_KEYBOARD) && virtual_keyboard_enabled) { + DisplayServer::get_singleton()->virtual_keyboard_hide(); } } -#endif - - unsigned int code = k->get_keycode(); - - if (k->get_command() && is_shortcut_keys_enabled()) { - bool handled = true; - - switch (code) { - case (KEY_QUOTELEFT): { // Swap current input direction (primary cursor) - - if (input_direction == TEXT_DIRECTION_LTR) { - input_direction = TEXT_DIRECTION_RTL; - } else { - input_direction = TEXT_DIRECTION_LTR; - } - set_cursor_position(get_cursor_position()); - update(); - - } break; - - case (KEY_X): { // CUT. - - if (editable) { - cut_text(); - } - - } break; - - case (KEY_C): { // COPY. - - copy_text(); - - } break; - - case (KEY_Y): // PASTE (Yank for unix users). - case (KEY_V): { // PASTE. - - if (editable) { - paste_text(); - } - - } break; - - case (KEY_Z): { // Undo/redo. - if (editable) { - if (k->get_shift()) { - redo(); - } else { - undo(); - } - } - } break; - - case (KEY_U): { // Delete from start to cursor. - - if (editable) { - deselect(); - text = text.substr(cursor_pos, text.length() - cursor_pos); - _shape(); - set_cursor_position(0); - _text_changed(); - } - } break; - - case (KEY_K): { // Delete from cursor_pos to end. - - if (editable) { - deselect(); - text = text.substr(0, cursor_pos); - _text_changed(); - } + if (is_shortcut_keys_enabled()) { + if (k->is_action("ui_copy", true)) { + copy_text(); + accept_event(); + return; + } - } break; - case (KEY_A): { // Select all. - select(); + if (k->is_action("ui_text_select_all", true)) { + select(); + accept_event(); + return; + } - } break; -#ifdef APPLE_STYLE_KEYS - case (KEY_LEFT): { // Go to start of text - like HOME key. - shift_selection_check_pre(k->get_shift()); - set_cursor_position(0); - shift_selection_check_post(k->get_shift()); - } break; - case (KEY_RIGHT): { // Go to end of text - like END key. - shift_selection_check_pre(k->get_shift()); - set_cursor_position(text.length()); - shift_selection_check_post(k->get_shift()); - } break; - case (KEY_BACKSPACE): { - if (!editable) - break; + // Cut / Paste + if (k->is_action("ui_cut", true)) { + cut_text(); + accept_event(); + return; + } - // If selected, delete the selection - if (selection.enabled) { - selection_delete(); - break; - } + if (k->is_action("ui_paste", true)) { + paste_text(); + accept_event(); + return; + } - // Otherwise delete from cursor to beginning of text edit - int current_pos = get_cursor_position(); - if (current_pos != 0) { - delete_text(0, current_pos); - } - } break; -#endif - default: { - handled = false; - } + // Undo / Redo + if (k->is_action("ui_undo", true)) { + undo(); + accept_event(); + return; } - if (handled) { + if (k->is_action("ui_redo", true)) { + redo(); accept_event(); return; } } - _reset_caret_blink_timer(); - if (!k->get_metakey()) { - bool handled = true; - switch (code) { - case KEY_KP_ENTER: - case KEY_ENTER: { - emit_signal("text_entered", text); - if (DisplayServer::get_singleton()->has_feature(DisplayServer::FEATURE_VIRTUAL_KEYBOARD) && virtual_keyboard_enabled) { - DisplayServer::get_singleton()->virtual_keyboard_hide(); - } - - } break; - - case KEY_BACKSPACE: { - if (!editable) { - break; - } - - if (selection.enabled) { - selection_delete(); - break; - } - -#ifdef APPLE_STYLE_KEYS - if (k->get_alt()) { -#else - if (k->get_alt()) { - handled = false; - break; - } else if (k->get_command()) { -#endif - int cc = cursor_pos; - - Vector<Vector2i> words = TS->shaped_text_get_word_breaks(text_rid); - for (int i = words.size() - 1; i >= 0; i--) { - if (words[i].x < cc) { - cc = words[i].x; - break; - } - } - - delete_text(cc, cursor_pos); - - set_cursor_position(cc); - - } else { - delete_char(); - } - - } break; - case KEY_KP_4: { - if (k->get_unicode() != 0) { - handled = false; - break; - } - [[fallthrough]]; - } - case KEY_LEFT: { -#ifndef APPLE_STYLE_KEYS - if (!k->get_alt()) { -#endif - if (selection.enabled && !k->get_shift()) { - set_cursor_position(selection.begin); - deselect(); - handled = true; - break; - } - - shift_selection_check_pre(k->get_shift()); -#ifndef APPLE_STYLE_KEYS - } -#endif - -#ifdef APPLE_STYLE_KEYS - if (k->get_command()) { - set_cursor_position(0); - } else if (k->get_alt()) { -#else - if (k->get_alt()) { - handled = false; - break; - } else if (k->get_command()) { -#endif - int cc = cursor_pos; - - Vector<Vector2i> words = TS->shaped_text_get_word_breaks(text_rid); - for (int i = words.size() - 1; i >= 0; i--) { - if (words[i].x < cc) { - cc = words[i].x; - break; - } - } - - set_cursor_position(cc); - - } else { - if (mid_grapheme_caret_enabled) { - set_cursor_position(get_cursor_position() - 1); - } else { - set_cursor_position(TS->shaped_text_prev_grapheme_pos(text_rid, get_cursor_position())); - } - } - - shift_selection_check_post(k->get_shift()); - - } break; - case KEY_KP_6: { - if (k->get_unicode() != 0) { - handled = false; - break; - } - [[fallthrough]]; - } - case KEY_RIGHT: { -#ifndef APPLE_STYLE_KEYS - if (!k->get_alt()) { -#endif - if (selection.enabled && !k->get_shift()) { - set_cursor_position(selection.end); - deselect(); - handled = true; - break; - } - - shift_selection_check_pre(k->get_shift()); -#ifndef APPLE_STYLE_KEYS - } -#endif - -#ifdef APPLE_STYLE_KEYS - if (k->get_command()) { - set_cursor_position(text.length()); - } else if (k->get_alt()) { -#else - if (k->get_alt()) { - handled = false; - break; - } else if (k->get_command()) { -#endif - int cc = cursor_pos; - - Vector<Vector2i> words = TS->shaped_text_get_word_breaks(text_rid); - for (int i = 0; i < words.size(); i++) { - if (words[i].y > cc) { - cc = words[i].y; - break; - } - } - - set_cursor_position(cc); - - } else { - if (mid_grapheme_caret_enabled) { - set_cursor_position(get_cursor_position() + 1); - } else { - set_cursor_position(TS->shaped_text_next_grapheme_pos(text_rid, get_cursor_position())); - } - } - - shift_selection_check_post(k->get_shift()); - - } break; - case KEY_UP: { - shift_selection_check_pre(k->get_shift()); - if (get_cursor_position() == 0) { - handled = false; - } - set_cursor_position(0); - shift_selection_check_post(k->get_shift()); - } break; - case KEY_DOWN: { - shift_selection_check_pre(k->get_shift()); - if (get_cursor_position() == text.length()) { - handled = false; - } - set_cursor_position(text.length()); - shift_selection_check_post(k->get_shift()); - } break; - case KEY_DELETE: { - if (!editable) { - break; - } - - if (k->get_shift() && !k->get_command() && !k->get_alt()) { - cut_text(); - break; - } - - if (selection.enabled) { - selection_delete(); - break; - } - - int text_len = text.length(); + // BACKSPACE + if (k->is_action("ui_text_backspace_all_to_left", true)) { + _backspace(false, true); + accept_event(); + return; + } + if (k->is_action("ui_text_backspace_word", true)) { + _backspace(true); + accept_event(); + return; + } + if (k->is_action("ui_text_backspace", true)) { + _backspace(); + accept_event(); + return; + } - if (cursor_pos == text_len) { - break; // Nothing to do. - } + // DELETE + if (k->is_action("ui_text_delete_all_to_right", true)) { + _delete(false, true); + accept_event(); + return; + } + if (k->is_action("ui_text_delete_word", true)) { + _delete(true); + accept_event(); + return; + } + if (k->is_action("ui_text_delete", true)) { + _delete(); + accept_event(); + return; + } -#ifdef APPLE_STYLE_KEYS - if (k->get_alt()) { -#else - if (k->get_alt()) { - handled = false; - break; - } else if (k->get_command()) { -#endif - int cc = cursor_pos; + // Cursor Movement - Vector<Vector2i> words = TS->shaped_text_get_word_breaks(text_rid); - for (int i = 0; i < words.size(); i++) { - if (words[i].y > cc) { - cc = words[i].y; - break; - } - } + k = k->duplicate(); + bool shift_pressed = k->get_shift(); + // Remove shift or else actions will not match. Use above variable for selection. + k->set_shift(false); - delete_text(cursor_pos, cc); + if (k->is_action("ui_text_caret_word_left", true)) { + _move_cursor_left(shift_pressed, true); + accept_event(); + return; + } + if (k->is_action("ui_text_caret_left", true)) { + _move_cursor_left(shift_pressed); + accept_event(); + return; + } + if (k->is_action("ui_text_caret_word_right", true)) { + _move_cursor_right(shift_pressed, true); + accept_event(); + return; + } + if (k->is_action("ui_text_caret_right", true)) { + _move_cursor_right(shift_pressed, false); + accept_event(); + return; + } - } else { - if (mid_grapheme_caret_enabled) { - set_cursor_position(cursor_pos + 1); - delete_char(); - } else { - int cc = cursor_pos; - set_cursor_position(TS->shaped_text_next_grapheme_pos(text_rid, cursor_pos)); - delete_text(cc, cursor_pos); - } - } + // Up = Home, Down = End + if (k->is_action("ui_text_caret_up", true) || k->is_action("ui_text_caret_line_start", true) || k->is_action("ui_text_caret_page_up", true)) { + _move_cursor_start(shift_pressed); + accept_event(); + return; + } + if (k->is_action("ui_text_caret_down", true) || k->is_action("ui_text_caret_line_end", true) || k->is_action("ui_text_caret_page_down", true)) { + _move_cursor_end(shift_pressed); + accept_event(); + return; + } - } break; - case KEY_KP_7: { - if (k->get_unicode() != 0) { - handled = false; - break; - } - [[fallthrough]]; - } - case KEY_HOME: { - shift_selection_check_pre(k->get_shift()); - set_cursor_position(0); - shift_selection_check_post(k->get_shift()); - } break; - case KEY_KP_1: { - if (k->get_unicode() != 0) { - handled = false; - break; - } - [[fallthrough]]; - } - case KEY_END: { - shift_selection_check_pre(k->get_shift()); - set_cursor_position(text.length()); - shift_selection_check_post(k->get_shift()); - } break; - case KEY_MENU: { - if (context_menu_enabled) { - Point2 pos = Point2(get_cursor_pixel_pos().x, (get_size().y + get_theme_font("font")->get_height(get_theme_font_size("font_size"))) / 2); - menu->set_position(get_global_transform().xform(pos)); - menu->set_size(Vector2(1, 1)); - //menu->set_scale(get_global_transform().get_scale()); - menu->popup(); - menu->grab_focus(); - } - } break; + // Misc + if (k->is_action("ui_swap_input_direction", true)) { + _swap_current_input_direction(); + accept_event(); + return; + } - default: { - handled = false; - } break; - } + _reset_caret_blink_timer(); - if (handled) { - accept_event(); - } else if (!k->get_command()) { - if (k->get_unicode() >= 32 && k->get_keycode() != KEY_DELETE) { - if (editable) { - selection_delete(); - char32_t ucodestr[2] = { (char32_t)k->get_unicode(), 0 }; - int prev_len = text.length(); - append_at_cursor(ucodestr); - if (text.length() != prev_len) { - _text_changed(); - } - accept_event(); - } + // Allow unicode handling if: + // * No Modifiers are pressed (except shift) + bool allow_unicode_handling = !(k->get_command() || k->get_control() || k->get_alt() || k->get_metakey()); - } else { - return; - } + if (allow_unicode_handling && editable && k->get_unicode() >= 32) { + // Handle Unicode (if no modifiers active) + selection_delete(); + char32_t ucodestr[2] = { (char32_t)k->get_unicode(), 0 }; + int prev_len = text.length(); + append_at_cursor(ucodestr); + if (text.length() != prev_len) { + _text_changed(); } - - update(); + accept_event(); } - - return; } } @@ -1013,13 +893,17 @@ void LineEdit::copy_text() { } void LineEdit::cut_text() { - if (selection.enabled && !pass) { + if (editable && selection.enabled && !pass) { DisplayServer::get_singleton()->clipboard_set(text.substr(selection.begin, selection.end - selection.begin)); selection_delete(); } } void LineEdit::paste_text() { + if (!editable) { + return; + } + // Strip escape characters like \n and \t as they can't be displayed on LineEdit. String paste_buffer = DisplayServer::get_singleton()->clipboard_get().strip_escapes(); @@ -1040,6 +924,10 @@ void LineEdit::paste_text() { } void LineEdit::undo() { + if (!editable) { + return; + } + if (undo_stack_pos == nullptr) { if (undo_stack.size() <= 1) { return; @@ -1059,6 +947,10 @@ void LineEdit::undo() { } void LineEdit::redo() { + if (!editable) { + return; + } + if (undo_stack_pos == nullptr) { return; } @@ -1587,7 +1479,7 @@ Size2 LineEdit::get_minimum_size() const { // Minimum size of text. int em_space_size = font->get_char_size('M', 0, font_size).x; - min_size.width = get_theme_constant("minimum_character_width'") * em_space_size; + min_size.width = get_theme_constant("minimum_character_width") * em_space_size; if (expand_to_text_length) { // Add a space because some fonts are too exact, and because cursor needs a bit more when at the end. @@ -2060,25 +1952,50 @@ void LineEdit::_create_undo_state() { undo_stack.push_back(op); } +int LineEdit::_get_menu_action_accelerator(const String &p_action) { + const List<Ref<InputEvent>> *events = InputMap::get_singleton()->action_get_events(p_action); + if (!events) { + return 0; + } + + // Use first event in the list for the accelerator. + const List<Ref<InputEvent>>::Element *first_event = events->front(); + if (!first_event) { + return 0; + } + + const Ref<InputEventKey> event = first_event->get(); + if (event.is_null()) { + return 0; + } + + // Use physical keycode if non-zero + if (event->get_physical_keycode() != 0) { + return event->get_physical_keycode_with_modifiers(); + } else { + return event->get_keycode_with_modifiers(); + } +} + void LineEdit::_generate_context_menu() { // Reorganize context menu. menu->clear(); if (editable) { - menu->add_item(RTR("Cut"), MENU_CUT, is_shortcut_keys_enabled() ? KEY_MASK_CMD | KEY_X : 0); + menu->add_item(RTR("Cut"), MENU_CUT, is_shortcut_keys_enabled() ? _get_menu_action_accelerator("ui_cut") : 0); } - menu->add_item(RTR("Copy"), MENU_COPY, is_shortcut_keys_enabled() ? KEY_MASK_CMD | KEY_C : 0); + menu->add_item(RTR("Copy"), MENU_COPY, is_shortcut_keys_enabled() ? _get_menu_action_accelerator("ui_copy") : 0); if (editable) { - menu->add_item(RTR("Paste"), MENU_PASTE, is_shortcut_keys_enabled() ? KEY_MASK_CMD | KEY_V : 0); + menu->add_item(RTR("Paste"), MENU_PASTE, is_shortcut_keys_enabled() ? _get_menu_action_accelerator("ui_paste") : 0); } menu->add_separator(); if (is_selecting_enabled()) { - menu->add_item(RTR("Select All"), MENU_SELECT_ALL, is_shortcut_keys_enabled() ? KEY_MASK_CMD | KEY_A : 0); + menu->add_item(RTR("Select All"), MENU_SELECT_ALL, is_shortcut_keys_enabled() ? _get_menu_action_accelerator("ui_text_select_all") : 0); } if (editable) { menu->add_item(RTR("Clear"), MENU_CLEAR); menu->add_separator(); - menu->add_item(RTR("Undo"), MENU_UNDO, is_shortcut_keys_enabled() ? KEY_MASK_CMD | KEY_Z : 0); - menu->add_item(RTR("Redo"), MENU_REDO, is_shortcut_keys_enabled() ? KEY_MASK_CMD | KEY_MASK_SHIFT | KEY_Z : 0); + menu->add_item(RTR("Undo"), MENU_UNDO, is_shortcut_keys_enabled() ? _get_menu_action_accelerator("ui_undo") : 0); + menu->add_item(RTR("Redo"), MENU_REDO, is_shortcut_keys_enabled() ? _get_menu_action_accelerator("ui_redo") : 0); } menu->add_separator(); menu->add_submenu_item(RTR("Text writing direction"), "DirMenu"); diff --git a/scene/gui/line_edit.h b/scene/gui/line_edit.h index 457a709f5b..cbadf818cd 100644 --- a/scene/gui/line_edit.h +++ b/scene/gui/line_edit.h @@ -163,6 +163,7 @@ private: void _clear_redo(); void _create_undo_state(); + int _get_menu_action_accelerator(const String &p_action); void _generate_context_menu(); void _shape(); @@ -188,6 +189,14 @@ private: void _editor_settings_changed(); + void _swap_current_input_direction(); + void _move_cursor_left(bool p_select, bool p_move_by_word = false); + void _move_cursor_right(bool p_select, bool p_move_by_word = false); + void _move_cursor_start(bool p_select); + void _move_cursor_end(bool p_select); + void _backspace(bool p_word = false, bool p_all_to_left = false); + void _delete(bool p_word = false, bool p_all_to_right = false); + void _gui_input(Ref<InputEvent> p_event); void _notification(int p_what); diff --git a/scene/gui/popup_menu.cpp b/scene/gui/popup_menu.cpp index d68a3206b6..f237f79be1 100644 --- a/scene/gui/popup_menu.cpp +++ b/scene/gui/popup_menu.cpp @@ -62,7 +62,7 @@ Size2 PopupMenu::_get_contents_minimum_size() const { Size2 size; Size2 icon_size = items[i].get_icon_size(); - size.height = MAX(icon_size.height, items[i].text_buf->get_size().y); + size.height = _get_item_height(i); icon_w = MAX(icon_size.width, icon_w); size.width += items[i].h_ofs; @@ -106,13 +106,35 @@ Size2 PopupMenu::_get_contents_minimum_size() const { return minsize; } +int PopupMenu::_get_item_height(int p_item) const { + ERR_FAIL_INDEX_V(p_item, items.size(), 0); + ERR_FAIL_COND_V(p_item < 0, 0); + + int icon_height = items[p_item].get_icon_size().height; + if (items[p_item].checkable_type) { + icon_height = MAX(icon_height, MAX(get_theme_icon("checked")->get_height(), get_theme_icon("radio_checked")->get_height())); + } + + int text_height = items[p_item].text_buf->get_size().height; + if (text_height == 0 && !items[p_item].separator) { + text_height = get_theme_font("font")->get_height(get_theme_font_size("font_size")); + } + + int separator_height = 0; + if (items[p_item].separator) { + separator_height = MAX(get_theme_stylebox("separator")->get_minimum_size().height, MAX(get_theme_stylebox("labeled_separator_left")->get_minimum_size().height, get_theme_stylebox("labeled_separator_right")->get_minimum_size().height)); + } + + return MAX(separator_height, MAX(text_height, icon_height)); +} + int PopupMenu::_get_items_total_height() const { int vsep = get_theme_constant("vseparation"); // Get total height of all items by taking max of icon height and font height int items_total_height = 0; for (int i = 0; i < items.size(); i++) { - items_total_height += MAX(items[i].get_icon_size().height, items[i].text_buf->get_size().y) + vsep; + items_total_height += _get_item_height(i) + vsep; } // Subtract a separator which is not needed for the last item. @@ -154,7 +176,7 @@ int PopupMenu::_get_mouse_over(const Point2 &p_over) const { for (int i = 0; i < items.size(); i++) { ofs.y += i > 0 ? vseparation : (float)vseparation / 2; - ofs.y += MAX(items[i].get_icon_size().height, items[i].text_buf->get_size().y); + ofs.y += _get_item_height(i); if (p_over.y - control->get_position().y < ofs.y) { return i; @@ -515,7 +537,7 @@ void PopupMenu::_draw_items() { Point2 item_ofs = ofs; Size2 icon_size = items[i].get_icon_size(); - float h = MAX(icon_size.height, items[i].text_buf->get_size().y); + float h = _get_item_height(i); if (i == mouse_over) { if (rtl) { @@ -531,19 +553,20 @@ void PopupMenu::_draw_items() { item_ofs.x += items[i].h_ofs; if (items[i].separator) { int sep_h = separator->get_center_size().height + separator->get_minimum_size().height; + int sep_ofs = Math::floor((h - sep_h) / 2.0); if (text != String()) { int text_size = items[i].text_buf->get_size().width; int text_center = display_width / 2; int text_left = text_center - text_size / 2; int text_right = text_center + text_size / 2; if (text_left > item_ofs.x) { - labeled_separator_left->draw(ci, Rect2(item_ofs + Point2(0, Math::floor((h - sep_h) / 2.0)), Size2(MAX(0, text_left - item_ofs.x), sep_h))); + labeled_separator_left->draw(ci, Rect2(item_ofs + Point2(0, sep_ofs), Size2(MAX(0, text_left - item_ofs.x), sep_h))); } if (text_right < display_width) { - labeled_separator_right->draw(ci, Rect2(Point2(text_right, item_ofs.y + Math::floor((h - sep_h) / 2.0)), Size2(MAX(0, display_width - text_right), sep_h))); + labeled_separator_right->draw(ci, Rect2(Point2(text_right, item_ofs.y + sep_ofs), Size2(MAX(0, display_width - text_right), sep_h))); } } else { - separator->draw(ci, Rect2(item_ofs, Size2(display_width, sep_h))); + separator->draw(ci, Rect2(item_ofs + Point2(0, sep_ofs), Size2(display_width, sep_h))); } } diff --git a/scene/gui/popup_menu.h b/scene/gui/popup_menu.h index 184be42e95..e4cbe984c9 100644 --- a/scene/gui/popup_menu.h +++ b/scene/gui/popup_menu.h @@ -101,6 +101,7 @@ class PopupMenu : public Popup { int _get_mouse_over(const Point2 &p_over) const; virtual Size2 _get_contents_minimum_size() const override; + int _get_item_height(int p_item) const; int _get_items_total_height() const; void _scroll_to_item(int p_item); diff --git a/scene/gui/rich_text_label.cpp b/scene/gui/rich_text_label.cpp index 992e272186..a79c633502 100644 --- a/scene/gui/rich_text_label.cpp +++ b/scene/gui/rich_text_label.cpp @@ -45,7 +45,7 @@ #include "editor/editor_scale.h" #endif -RichTextLabel::Item *RichTextLabel::_get_next_item(Item *p_item, bool p_free) { +RichTextLabel::Item *RichTextLabel::_get_next_item(Item *p_item, bool p_free) const { if (p_free) { if (p_item->subitems.size()) { return p_item->subitems.front()->get(); @@ -90,7 +90,7 @@ RichTextLabel::Item *RichTextLabel::_get_next_item(Item *p_item, bool p_free) { return nullptr; } -RichTextLabel::Item *RichTextLabel::_get_prev_item(Item *p_item, bool p_free) { +RichTextLabel::Item *RichTextLabel::_get_prev_item(Item *p_item, bool p_free) const { if (p_free) { if (p_item->subitems.size()) { return p_item->subitems.back()->get(); @@ -147,7 +147,7 @@ RichTextLabel::Item *RichTextLabel::_get_item_at_pos(RichTextLabel::Item *p_item case ITEM_TEXT: { ItemText *t = (ItemText *)it; offset += t->text.length(); - if (offset > p_position) { + if (offset >= p_position) { return it; } } break; @@ -454,6 +454,7 @@ void RichTextLabel::_shape_line(ItemFrame *p_frame, int p_line, const Ref<Font> ItemImage *img = (ItemImage *)it; l.text_buf->add_object((uint64_t)it, img->image->get_size(), img->inline_align, 1); text += String::chr(0xfffc); + l.char_count += 1; } break; case ITEM_TABLE: { ItemTable *table = static_cast<ItemTable *>(it); @@ -1574,53 +1575,36 @@ void RichTextLabel::_gui_input(Ref<InputEvent> p_event) { Ref<InputEventKey> k = p_event; if (k.is_valid()) { - if (k->is_pressed() && !k->get_alt() && !k->get_shift()) { + if (k->is_pressed()) { bool handled = false; - switch (k->get_keycode()) { - case KEY_PAGEUP: { - if (vscroll->is_visible_in_tree()) { - vscroll->set_value(vscroll->get_value() - vscroll->get_page()); - handled = true; - } - } break; - case KEY_PAGEDOWN: { - if (vscroll->is_visible_in_tree()) { - vscroll->set_value(vscroll->get_value() + vscroll->get_page()); - handled = true; - } - } break; - case KEY_UP: { - if (vscroll->is_visible_in_tree()) { - vscroll->set_value(vscroll->get_value() - get_theme_font("normal_font")->get_height(get_theme_font_size("normal_font_size"))); - handled = true; - } - } break; - case KEY_DOWN: { - if (vscroll->is_visible_in_tree()) { - vscroll->set_value(vscroll->get_value() + get_theme_font("normal_font")->get_height(get_theme_font_size("normal_font_size"))); - handled = true; - } - } break; - case KEY_HOME: { - if (vscroll->is_visible_in_tree()) { - vscroll->set_value(0); - handled = true; - } - } break; - case KEY_END: { - if (vscroll->is_visible_in_tree()) { - vscroll->set_value(vscroll->get_max()); - handled = true; - } - } break; - case KEY_INSERT: - case KEY_C: { - if (k->get_command()) { - selection_copy(); - handled = true; - } - } break; + if (k->is_action("ui_pageup") && vscroll->is_visible_in_tree()) { + vscroll->set_value(vscroll->get_value() - vscroll->get_page()); + handled = true; + } + if (k->is_action("ui_pagedown") && vscroll->is_visible_in_tree()) { + vscroll->set_value(vscroll->get_value() + vscroll->get_page()); + handled = true; + } + if (k->is_action("ui_up") && vscroll->is_visible_in_tree()) { + vscroll->set_value(vscroll->get_value() - get_theme_font("normal_font")->get_height(get_theme_font_size("normal_font_size"))); + handled = true; + } + if (k->is_action("ui_down") && vscroll->is_visible_in_tree()) { + vscroll->set_value(vscroll->get_value() + get_theme_font("normal_font")->get_height(get_theme_font_size("normal_font_size"))); + handled = true; + } + if (k->is_action("ui_home") && vscroll->is_visible_in_tree()) { + vscroll->set_value(0); + handled = true; + } + if (k->is_action("ui_end") && vscroll->is_visible_in_tree()) { + vscroll->set_value(vscroll->get_max()); + handled = true; + } + if (k->is_action("ui_copy")) { + selection_copy(); + handled = true; } if (handled) { @@ -3523,7 +3507,7 @@ bool RichTextLabel::search(const String &p_string, bool p_from_selection, bool p return false; } -String RichTextLabel::_get_line_text(ItemFrame *p_frame, int p_line, Selection p_selection) { +String RichTextLabel::_get_line_text(ItemFrame *p_frame, int p_line, Selection p_selection) const { String text; ERR_FAIL_COND_V(p_frame == nullptr, text); ERR_FAIL_COND_V(p_line < 0 || p_line >= p_frame->lines.size(), text); @@ -3590,7 +3574,7 @@ String RichTextLabel::_get_line_text(ItemFrame *p_frame, int p_line, Selection p return text; } -String RichTextLabel::get_selected_text() { +String RichTextLabel::get_selected_text() const { if (!selection.active || !selection.enabled) { return ""; } @@ -3614,6 +3598,22 @@ bool RichTextLabel::is_selection_enabled() const { return selection.enabled; } +int RichTextLabel::get_selection_from() const { + if (!selection.active || !selection.enabled) { + return -1; + } + + return selection.from_frame->lines[selection.from_line].char_offset + selection.from_char; +} + +int RichTextLabel::get_selection_to() const { + if (!selection.active || !selection.enabled) { + return -1; + } + + return selection.to_frame->lines[selection.to_line].char_offset + selection.to_char - 1; +} + void RichTextLabel::set_bbcode(const String &p_bbcode) { bbcode = p_bbcode; if (is_inside_tree() && use_bbcode) { @@ -3649,6 +3649,8 @@ String RichTextLabel::get_text() { text += t->text; } else if (it->type == ITEM_NEWLINE) { text += "\n"; + } else if (it->type == ITEM_IMAGE) { + text += " "; } else if (it->type == ITEM_INDENT || it->type == ITEM_LIST) { text += "\t"; } @@ -3841,6 +3843,11 @@ void RichTextLabel::_bind_methods() { ClassDB::bind_method(D_METHOD("set_selection_enabled", "enabled"), &RichTextLabel::set_selection_enabled); ClassDB::bind_method(D_METHOD("is_selection_enabled"), &RichTextLabel::is_selection_enabled); + ClassDB::bind_method(D_METHOD("get_selection_from"), &RichTextLabel::get_selection_from); + ClassDB::bind_method(D_METHOD("get_selection_to"), &RichTextLabel::get_selection_to); + + ClassDB::bind_method(D_METHOD("get_selected_text"), &RichTextLabel::get_selected_text); + ClassDB::bind_method(D_METHOD("parse_bbcode", "bbcode"), &RichTextLabel::parse_bbcode); ClassDB::bind_method(D_METHOD("append_bbcode", "bbcode"), &RichTextLabel::append_bbcode); diff --git a/scene/gui/rich_text_label.h b/scene/gui/rich_text_label.h index e89011e9f5..2351aff0a4 100644 --- a/scene/gui/rich_text_label.h +++ b/scene/gui/rich_text_label.h @@ -389,7 +389,7 @@ private: void _find_click(ItemFrame *p_frame, const Point2i &p_click, ItemFrame **r_click_frame = nullptr, int *r_click_line = nullptr, Item **r_click_item = nullptr, int *r_click_char = nullptr, bool *r_outside = nullptr); - String _get_line_text(ItemFrame *p_frame, int p_line, Selection p_sel); + String _get_line_text(ItemFrame *p_frame, int p_line, Selection p_sel) const; bool _search_line(ItemFrame *p_frame, int p_line, const String &p_string, Item *p_from, Item *p_to); void _shape_line(ItemFrame *p_frame, int p_line, const Ref<Font> &p_base_font, int p_base_font_size, int p_width, int *r_char_offset); @@ -427,8 +427,8 @@ private: void _scroll_changed(double); void _gui_input(Ref<InputEvent> p_event); - Item *_get_next_item(Item *p_item, bool p_free = false); - Item *_get_prev_item(Item *p_item, bool p_free = false); + Item *_get_next_item(Item *p_item, bool p_free = false) const; + Item *_get_prev_item(Item *p_item, bool p_free = false) const; Rect2 _get_text_rect(); Ref<RichTextEffect> _get_custom_effect_by_code(String p_bbcode_identifier); @@ -524,7 +524,9 @@ public: void set_selection_enabled(bool p_enabled); bool is_selection_enabled() const; - String get_selected_text(); + int get_selection_from() const; + int get_selection_to() const; + String get_selected_text() const; void selection_copy(); Error parse_bbcode(const String &p_bbcode); diff --git a/scene/gui/text_edit.cpp b/scene/gui/text_edit.cpp index 880e66eb6a..36aa18417d 100644 --- a/scene/gui/text_edit.cpp +++ b/scene/gui/text_edit.cpp @@ -32,6 +32,7 @@ #include "core/config/project_settings.h" #include "core/input/input.h" +#include "core/input/input_map.h" #include "core/object/message_queue.h" #include "core/object/script_language.h" #include "core/os/keyboard.h" @@ -1985,7 +1986,7 @@ void TextEdit::backspace_at_cursor() { cursor_set_column(prev_column); } -void TextEdit::indent_right() { +void TextEdit::indent_selected_lines_right() { int start_line; int end_line; @@ -2037,7 +2038,7 @@ void TextEdit::indent_right() { update(); } -void TextEdit::indent_left() { +void TextEdit::indent_selected_lines_left() { int start_line; int end_line; @@ -2108,6 +2109,618 @@ int TextEdit::_calculate_spaces_till_next_right_indent(int column) { return indent_size - column % indent_size; } +void TextEdit::_swap_current_input_direction() { + if (input_direction == TEXT_DIRECTION_LTR) { + input_direction = TEXT_DIRECTION_RTL; + } else { + input_direction = TEXT_DIRECTION_LTR; + } + cursor_set_column(cursor.column); + update(); +} + +void TextEdit::_new_line(bool p_split_current_line, bool p_above) { + if (readonly) { + return; + } + + String ins = "\n"; + + // Keep indentation. + int space_count = 0; + for (int i = 0; i < cursor.column; i++) { + if (text[cursor.line][i] == '\t') { + if (indent_using_spaces) { + ins += space_indent; + } else { + ins += "\t"; + } + space_count = 0; + } else if (text[cursor.line][i] == ' ') { + space_count++; + + if (space_count == indent_size) { + if (indent_using_spaces) { + ins += space_indent; + } else { + ins += "\t"; + } + space_count = 0; + } + } else { + break; + } + } + + if (is_folded(cursor.line)) { + unfold_line(cursor.line); + } + + bool brace_indent = false; + + // No need to indent if we are going upwards. + if (auto_indent && !p_above) { + // Indent once again if previous line will end with ':','{','[','(' and the line is not a comment + // (i.e. colon/brace precedes current cursor position). + if (cursor.column > 0) { + bool indent_char_found = false; + bool should_indent = false; + char indent_char = ':'; + char c = text[cursor.line][cursor.column]; + + for (int i = 0; i < cursor.column; i++) { + c = text[cursor.line][i]; + switch (c) { + case ':': + case '{': + case '[': + case '(': + indent_char_found = true; + should_indent = true; + indent_char = c; + continue; + } + + if (indent_char_found && is_line_comment(cursor.line)) { + should_indent = true; + break; + } else if (indent_char_found && !_is_whitespace(c)) { + should_indent = false; + indent_char_found = false; + } + } + + if (!is_line_comment(cursor.line) && should_indent) { + if (indent_using_spaces) { + ins += space_indent; + } else { + ins += "\t"; + } + + // No need to move the brace below if we are not taking the text with us. + char32_t closing_char = _get_right_pair_symbol(indent_char); + if ((closing_char != 0) && (closing_char == text[cursor.line][cursor.column]) && !p_split_current_line) { + brace_indent = true; + ins += "\n" + ins.substr(1, ins.length() - 2); + } + } + } + } + begin_complex_operation(); + bool first_line = false; + if (!p_split_current_line) { + if (p_above) { + if (cursor.line > 0) { + cursor_set_line(cursor.line - 1); + cursor_set_column(text[cursor.line].length()); + } else { + cursor_set_column(0); + first_line = true; + } + } else { + cursor_set_column(text[cursor.line].length()); + } + } + + insert_text_at_cursor(ins); + + if (first_line) { + cursor_set_line(0); + } else if (brace_indent) { + cursor_set_line(cursor.line - 1); + cursor_set_column(text[cursor.line].length()); + } + end_complex_operation(); +} + +void TextEdit::_indent_right() { + if (readonly) { + return; + } + + if (is_selection_active()) { + indent_selected_lines_right(); + } else { + // Simple indent. + if (indent_using_spaces) { + // Insert only as much spaces as needed till next indentation level. + int spaces_to_add = _calculate_spaces_till_next_right_indent(cursor.column); + String indent_to_insert = String(); + for (int i = 0; i < spaces_to_add; i++) { + indent_to_insert = ' ' + indent_to_insert; + } + _insert_text_at_cursor(indent_to_insert); + } else { + _insert_text_at_cursor("\t"); + } + } +} + +void TextEdit::_indent_left() { + if (readonly) { + return; + } + + if (is_selection_active()) { + indent_selected_lines_left(); + } else { + // Simple unindent. + int cc = cursor.column; + const String &line = text[cursor.line]; + + int left = _find_first_non_whitespace_column_of_line(line); + cc = MIN(cc, left); + + while (cc < indent_size && cc < left && line[cc] == ' ') { + cc++; + } + + if (cc > 0 && cc <= text[cursor.line].length()) { + if (text[cursor.line][cc - 1] == '\t') { + // Tabs unindentation. + _remove_text(cursor.line, cc - 1, cursor.line, cc); + if (cursor.column >= left) { + cursor_set_column(MAX(0, cursor.column - 1)); + } + update(); + } else { + // Spaces unindentation. + int spaces_to_remove = _calculate_spaces_till_next_left_indent(cc); + if (spaces_to_remove > 0) { + _remove_text(cursor.line, cc - spaces_to_remove, cursor.line, cc); + if (cursor.column > left - spaces_to_remove) { // Inside text? + cursor_set_column(MAX(0, cursor.column - spaces_to_remove)); + } + update(); + } + } + } else if (cc == 0 && line.length() > 0 && line[0] == '\t') { + _remove_text(cursor.line, 0, cursor.line, 1); + update(); + } + } +} + +void TextEdit::_move_cursor_left(bool p_select, bool p_move_by_word) { + // Handle selection + if (p_select) { + _pre_shift_selection(); + } else { + deselect(); + } + + if (p_move_by_word) { + int cc = cursor.column; + + if (cc == 0 && cursor.line > 0) { + cursor_set_line(cursor.line - 1); + cursor_set_column(text[cursor.line].length()); + } else { + Vector<Vector2i> words = TS->shaped_text_get_word_breaks(text.get_line_data(cursor.line)->get_rid()); + for (int i = words.size() - 1; i >= 0; i--) { + if (words[i].x < cc) { + cc = words[i].x; + break; + } + } + cursor_set_column(cc); + } + } else { + // If the cursor is at the start of the line, and not on the first line, move it up to the end of the previous line. + if (cursor.column == 0) { + if (cursor.line > 0) { + cursor_set_line(cursor.line - num_lines_from(CLAMP(cursor.line - 1, 0, text.size() - 1), -1)); + cursor_set_column(text[cursor.line].length()); + } + } else { + if (mid_grapheme_caret_enabled) { + cursor_set_column(cursor_get_column() - 1); + } else { + cursor_set_column(TS->shaped_text_prev_grapheme_pos(text.get_line_data(cursor.line)->get_rid(), cursor_get_column())); + } + } + } + + if (p_select) { + _post_shift_selection(); + } +} + +void TextEdit::_move_cursor_right(bool p_select, bool p_move_by_word) { + // Handle selection + if (p_select) { + _pre_shift_selection(); + } else { + deselect(); + } + + if (p_move_by_word) { + int cc = cursor.column; + + if (cc == text[cursor.line].length() && cursor.line < text.size() - 1) { + cursor_set_line(cursor.line + 1); + cursor_set_column(0); + } else { + Vector<Vector2i> words = TS->shaped_text_get_word_breaks(text.get_line_data(cursor.line)->get_rid()); + for (int i = 0; i < words.size(); i++) { + if (words[i].y > cc) { + cc = words[i].y; + break; + } + } + cursor_set_column(cc); + } + } else { + // If we are at the end of the line, move the caret to the next line down. + if (cursor.column == text[cursor.line].length()) { + if (cursor.line < text.size() - 1) { + cursor_set_line(cursor_get_line() + num_lines_from(CLAMP(cursor.line + 1, 0, text.size() - 1), 1), true, false); + cursor_set_column(0); + } + } else { + if (mid_grapheme_caret_enabled) { + cursor_set_column(cursor_get_column() + 1); + } else { + cursor_set_column(TS->shaped_text_next_grapheme_pos(text.get_line_data(cursor.line)->get_rid(), cursor_get_column())); + } + } + } + + if (p_select) { + _post_shift_selection(); + } +} + +void TextEdit::_move_cursor_up(bool p_select) { + if (p_select) { + _pre_shift_selection(); + } else { + deselect(); + } + + int cur_wrap_index = get_cursor_wrap_index(); + if (cur_wrap_index > 0) { + cursor_set_line(cursor.line, true, false, cur_wrap_index - 1); + } else if (cursor.line == 0) { + cursor_set_column(0); + } else { + int new_line = cursor.line - num_lines_from(cursor.line - 1, -1); + if (line_wraps(new_line)) { + cursor_set_line(new_line, true, false, times_line_wraps(new_line)); + } else { + cursor_set_line(new_line, true, false); + } + } + + if (p_select) { + _post_shift_selection(); + } + + _cancel_code_hint(); +} + +void TextEdit::_move_cursor_down(bool p_select) { + if (p_select) { + _pre_shift_selection(); + } else { + deselect(); + } + + int cur_wrap_index = get_cursor_wrap_index(); + if (cur_wrap_index < times_line_wraps(cursor.line)) { + cursor_set_line(cursor.line, true, false, cur_wrap_index + 1); + } else if (cursor.line == get_last_unhidden_line()) { + cursor_set_column(text[cursor.line].length()); + } else { + int new_line = cursor.line + num_lines_from(CLAMP(cursor.line + 1, 0, text.size() - 1), 1); + cursor_set_line(new_line, true, false, 0); + } + + if (p_select) { + _post_shift_selection(); + } + + _cancel_code_hint(); +} + +void TextEdit::_move_cursor_to_line_start(bool p_select) { + if (p_select) { + _pre_shift_selection(); + } else { + deselect(); + } + + // Move cursor column to start of wrapped row and then to start of text. + Vector<String> rows = get_wrap_rows_text(cursor.line); + int wi = get_cursor_wrap_index(); + int row_start_col = 0; + for (int i = 0; i < wi; i++) { + row_start_col += rows[i].length(); + } + if (cursor.column == row_start_col || wi == 0) { + // Compute whitespace symbols seq length. + int current_line_whitespace_len = 0; + while (current_line_whitespace_len < text[cursor.line].length()) { + char32_t c = text[cursor.line][current_line_whitespace_len]; + if (c != '\t' && c != ' ') { + break; + } + current_line_whitespace_len++; + } + + if (cursor_get_column() == current_line_whitespace_len) { + cursor_set_column(0); + } else { + cursor_set_column(current_line_whitespace_len); + } + } else { + cursor_set_column(row_start_col); + } + + if (p_select) { + _post_shift_selection(); + } + + _cancel_completion(); + completion_hint = ""; +} + +void TextEdit::_move_cursor_to_line_end(bool p_select) { + if (p_select) { + _pre_shift_selection(); + } else { + deselect(); + } + + // Move cursor column to end of wrapped row and then to end of text. + Vector<String> rows = get_wrap_rows_text(cursor.line); + int wi = get_cursor_wrap_index(); + int row_end_col = -1; + for (int i = 0; i < wi + 1; i++) { + row_end_col += rows[i].length(); + } + if (wi == rows.size() - 1 || cursor.column == row_end_col) { + cursor_set_column(text[cursor.line].length()); + } else { + cursor_set_column(row_end_col); + } + + if (p_select) { + _post_shift_selection(); + } + _cancel_completion(); + completion_hint = ""; +} + +void TextEdit::_move_cursor_page_up(bool p_select) { + if (p_select) { + _pre_shift_selection(); + } else { + deselect(); + } + + int wi; + int n_line = cursor.line - num_lines_from_rows(cursor.line, get_cursor_wrap_index(), -get_visible_rows(), wi) + 1; + cursor_set_line(n_line, true, false, wi); + + if (p_select) { + _post_shift_selection(); + } + + _cancel_completion(); + completion_hint = ""; +} + +void TextEdit::_move_cursor_page_down(bool p_select) { + if (p_select) { + _pre_shift_selection(); + } else { + deselect(); + } + + int wi; + int n_line = cursor.line + num_lines_from_rows(cursor.line, get_cursor_wrap_index(), get_visible_rows(), wi) - 1; + cursor_set_line(n_line, true, false, wi); + + if (p_select) { + _post_shift_selection(); + } + + _cancel_completion(); + completion_hint = ""; +} + +void TextEdit::_backspace(bool p_word, bool p_all_to_left) { + if (readonly) { + return; + } + + if (is_selection_active()) { + _delete_selection(); + return; + } + if (p_all_to_left) { + int cursor_current_column = cursor.column; + cursor.column = 0; + _remove_text(cursor.line, 0, cursor.line, cursor_current_column); + } else if (p_word) { + int line = cursor.line; + int column = cursor.column; + + Vector<Vector2i> words = TS->shaped_text_get_word_breaks(text.get_line_data(line)->get_rid()); + for (int i = words.size() - 1; i >= 0; i--) { + if (words[i].x < column) { + column = words[i].x; + break; + } + } + + _remove_text(line, column, cursor.line, cursor.column); + + cursor_set_line(line); + cursor_set_column(column); + } else { + // One character. + if (cursor.line > 0 && is_line_hidden(cursor.line - 1)) { + unfold_line(cursor.line - 1); + } + backspace_at_cursor(); + } +} + +void TextEdit::_delete(bool p_word, bool p_all_to_right) { + if (readonly) { + return; + } + + if (is_selection_active()) { + _delete_selection(); + return; + } + int curline_len = text[cursor.line].length(); + + if (cursor.line == text.size() - 1 && cursor.column == curline_len) { + return; // Last line, last column: Nothing to do. + } + + int next_line = cursor.column < curline_len ? cursor.line : cursor.line + 1; + int next_column; + + if (p_all_to_right) { + // Delete everything to right of cursor + next_column = curline_len; + next_line = cursor.line; + } else if (p_word && cursor.column < curline_len - 1) { + // Delete next word to right of cursor + int line = cursor.line; + int column = cursor.column; + + Vector<Vector2i> words = TS->shaped_text_get_word_breaks(text.get_line_data(line)->get_rid()); + for (int i = 0; i < words.size(); i++) { + if (words[i].y > column) { + column = words[i].y; + break; + } + } + + next_line = line; + next_column = column; + } else { + // Delete one character + next_column = cursor.column < curline_len ? (cursor.column + 1) : 0; + if (mid_grapheme_caret_enabled) { + next_column = cursor.column < curline_len ? (cursor.column + 1) : 0; + } else { + next_column = cursor.column < curline_len ? TS->shaped_text_next_grapheme_pos(text.get_line_data(cursor.line)->get_rid(), (cursor.column)) : 0; + } + } + + _remove_text(cursor.line, cursor.column, next_line, next_column); + update(); +} + +void TextEdit::_delete_selection() { + if (is_selection_active()) { + selection.active = false; + update(); + _remove_text(selection.from_line, selection.from_column, selection.to_line, selection.to_column); + cursor_set_line(selection.from_line, true, false); + cursor_set_column(selection.from_column); + update(); + } +} + +void TextEdit::_move_cursor_document_start(bool p_select) { + if (p_select) { + _pre_shift_selection(); + } else { + deselect(); + } + + cursor_set_line(0); + cursor_set_column(0); + + if (p_select) { + _post_shift_selection(); + } +} + +void TextEdit::_move_cursor_document_end(bool p_select) { + if (p_select) { + _pre_shift_selection(); + } else { + deselect(); + } + + cursor_set_line(get_last_unhidden_line(), true, false, 9999); + cursor_set_column(text[cursor.line].length()); + + if (p_select) { + _post_shift_selection(); + } +} + +void TextEdit::_handle_unicode_character(uint32_t unicode, bool p_had_selection, bool p_update_auto_complete) { + if (p_update_auto_complete) { + _reset_caret_blink_timer(); + } + + if (p_had_selection) { + _delete_selection(); + } + + // Remove the old character if in insert mode and no selection. + if (insert_mode && !p_had_selection) { + begin_complex_operation(); + + // Make sure we don't try and remove empty space. + if (cursor.column < get_line(cursor.line).length()) { + _remove_text(cursor.line, cursor.column, cursor.line, cursor.column + 1); + } + } + + const char32_t chr[2] = { (char32_t)unicode, 0 }; + + // Clear completion hint when function closed + if (completion_hint != "" && unicode == ')') { + completion_hint = ""; + } + + if (auto_brace_completion_enabled && _is_pair_symbol(chr[0])) { + _consume_pair_symbol(chr[0]); + } else { + _insert_text_at_cursor(chr); + } + + if ((insert_mode && !p_had_selection) || (selection.active != p_had_selection)) { + end_complex_operation(); + } + + if (p_update_auto_complete) { + _update_completion_candidates(); + } +} + void TextEdit::_get_mouse_pos(const Point2i &p_mouse, int &r_row, int &r_col) const { float rows = p_mouse.y; rows -= cache.style_normal->get_margin(SIDE_TOP); @@ -2138,6 +2751,18 @@ void TextEdit::_get_mouse_pos(const Point2i &p_mouse, int &r_row, int &r_col) co } else { int colx = p_mouse.x - (cache.style_normal->get_margin(SIDE_LEFT) + gutters_width + gutter_padding); colx += cursor.x_ofs; + col = get_char_pos_for_line(colx, row, wrap_index); + if (is_wrap_enabled() && wrap_index < times_line_wraps(row)) { + // Move back one if we are at the end of the row. + Vector<String> rows2 = get_wrap_rows_text(row); + int row_end_col = 0; + for (int i = 0; i < wrap_index + 1; i++) { + row_end_col += rows2[i].length(); + } + if (col >= row_end_col) { + col -= 1; + } + } RID text_rid = text.get_line_data(row)->get_line_rid(wrap_index); if (is_layout_rtl()) { @@ -2390,7 +3015,6 @@ void TextEdit::_gui_input(const Ref<InputEvent> &p_gui_input) { update(); } - } else { selection.active = false; selection.selecting_mode = SelectionMode::SELECTION_MODE_POINTER; @@ -2439,7 +3063,7 @@ void TextEdit::_gui_input(const Ref<InputEvent> &p_gui_input) { menu->set_position(get_screen_transform().xform(mpos)); menu->set_size(Vector2(1, 1)); - // menu->set_scale(get_global_transform().get_scale()); + _generate_context_menu(); menu->popup(); grab_focus(); } @@ -2533,13 +3157,11 @@ void TextEdit::_gui_input(const Ref<InputEvent> &p_gui_input) { Ref<InputEventKey> k = p_gui_input; if (k.is_valid()) { - k = k->duplicate(); // It will be modified later on. - + // Ctrl + Hover symbols #ifdef OSX_ENABLED if (k->get_keycode() == KEY_META) { #else if (k->get_keycode() == KEY_CONTROL) { - #endif if (select_identifiers_enabled) { if (k->is_pressed() && !dragging_minimap && !dragging_selection) { @@ -2549,1191 +3171,347 @@ void TextEdit::_gui_input(const Ref<InputEvent> &p_gui_input) { set_highlighted_word(String()); } } + return; } if (!k->is_pressed()) { return; } - if (completion_active) { - if (readonly) { - return; - } - - bool valid = true; - if (k->get_command() || k->get_metakey()) { - valid = false; - } - - if (valid) { - if (!k->get_alt()) { - if (k->get_keycode() == KEY_UP) { - if (completion_index > 0) { - completion_index--; - } else { - completion_index = completion_options.size() - 1; - } - completion_current = completion_options[completion_index]; - update(); - - accept_event(); - return; - } - - if (k->get_keycode() == KEY_DOWN) { - if (completion_index < completion_options.size() - 1) { - completion_index++; - } else { - completion_index = 0; - } - completion_current = completion_options[completion_index]; - update(); - - accept_event(); - return; - } - - if (k->get_keycode() == KEY_PAGEUP) { - completion_index -= get_theme_constant("completion_lines"); - if (completion_index < 0) { - completion_index = 0; - } - completion_current = completion_options[completion_index]; - update(); - accept_event(); - return; - } - - if (k->get_keycode() == KEY_PAGEDOWN) { - completion_index += get_theme_constant("completion_lines"); - if (completion_index >= completion_options.size()) { - completion_index = completion_options.size() - 1; - } - completion_current = completion_options[completion_index]; - update(); - accept_event(); - return; - } - - if (k->get_keycode() == KEY_HOME && completion_index > 0) { - completion_index = 0; - completion_current = completion_options[completion_index]; - update(); - accept_event(); - return; - } - - if (k->get_keycode() == KEY_END && completion_index < completion_options.size() - 1) { - completion_index = completion_options.size() - 1; - completion_current = completion_options[completion_index]; - update(); - accept_event(); - return; - } - - if (k->get_keycode() == KEY_KP_ENTER || k->get_keycode() == KEY_ENTER || k->get_keycode() == KEY_TAB) { - _confirm_completion(); - accept_event(); - return; - } - - if (k->get_keycode() == KEY_BACKSPACE) { - _reset_caret_blink_timer(); - - backspace_at_cursor(); - _update_completion_candidates(); - accept_event(); - return; - } - - if (k->get_keycode() == KEY_SHIFT) { - accept_event(); - return; - } - } - - if (k->get_unicode() > 32) { - _reset_caret_blink_timer(); - - const char32_t chr[2] = { (char32_t)k->get_unicode(), 0 }; - if (auto_brace_completion_enabled && _is_pair_symbol(chr[0])) { - _consume_pair_symbol(chr[0]); - } else { - // Remove the old character if in insert mode. - if (insert_mode) { - begin_complex_operation(); - - // Make sure we don't try and remove empty space. - if (cursor.column < get_line(cursor.line).length()) { - _remove_text(cursor.line, cursor.column, cursor.line, cursor.column + 1); - } - } - - _insert_text_at_cursor(chr); - - if (insert_mode) { - end_complex_operation(); - } - } - _update_completion_candidates(); - accept_event(); - - return; - } - } - - _cancel_completion(); + // If a modifier has been pressed, and nothing else, return. + if (k->get_keycode() == KEY_CONTROL || k->get_keycode() == KEY_ALT || k->get_keycode() == KEY_SHIFT || k->get_keycode() == KEY_META) { + return; } - /* TEST CONTROL FIRST! */ - - // Some remaps for duplicate functions. - if (k->get_command() && !k->get_shift() && !k->get_alt() && !k->get_metakey() && k->get_keycode() == KEY_INSERT) { - k->set_keycode(KEY_C); - } - if (!k->get_command() && k->get_shift() && !k->get_alt() && !k->get_metakey() && k->get_keycode() == KEY_INSERT) { - k->set_keycode(KEY_V); - k->set_command(true); - k->set_shift(false); - } -#ifdef APPLE_STYLE_KEYS - if (k->get_control() && !k->get_shift() && !k->get_alt() && !k->get_command()) { - uint32_t remap_key = KEY_UNKNOWN; - switch (k->get_keycode()) { - case KEY_F: { - remap_key = KEY_RIGHT; - } break; - case KEY_B: { - remap_key = KEY_LEFT; - } break; - case KEY_P: { - remap_key = KEY_UP; - } break; - case KEY_N: { - remap_key = KEY_DOWN; - } break; - case KEY_D: { - remap_key = KEY_DELETE; - } break; - case KEY_H: { - remap_key = KEY_BACKSPACE; - } break; - } - - if (remap_key != KEY_UNKNOWN) { - k->set_keycode(remap_key); - k->set_control(false); - } - } -#endif - _reset_caret_blink_timer(); + // Allow unicode handling if: + // * No Modifiers are pressed (except shift) + bool allow_unicode_handling = !(k->get_command() || k->get_control() || k->get_alt() || k->get_metakey()); + // Save here for insert mode, just in case it is cleared in the following section. bool had_selection = selection.active; - // Stuff to do when selection is active. - if (!readonly && selection.active) { - bool clear = false; - bool unselect = false; - bool dobreak = false; - - switch (k->get_keycode()) { - case KEY_TAB: { - if (k->get_shift()) { - indent_left(); - } else { - indent_right(); - } - dobreak = true; - accept_event(); - } break; - case KEY_X: - case KEY_C: - // Special keys often used with control, wait. - clear = (!k->get_command() || k->get_shift() || k->get_alt()); - break; - case KEY_DELETE: - if (!k->get_shift()) { - accept_event(); - clear = true; - dobreak = true; - } else if (k->get_command() || k->get_alt()) { - dobreak = true; - } - break; - case KEY_BACKSPACE: - accept_event(); - clear = true; - dobreak = true; - break; - case KEY_LEFT: - case KEY_RIGHT: - case KEY_UP: - case KEY_DOWN: - case KEY_PAGEUP: - case KEY_PAGEDOWN: - case KEY_HOME: - case KEY_END: - // Ignore arrows if any modifiers are held (shift = selecting, others may be used for editor hotkeys). - if (k->get_command() || k->get_shift() || k->get_alt()) { - break; - } - unselect = true; - break; - - default: - if (k->get_unicode() >= 32 && !k->get_command() && !k->get_alt() && !k->get_metakey()) { - clear = true; - } - if (auto_brace_completion_enabled && _is_pair_left_symbol(k->get_unicode())) { - clear = false; - } - } - - if (unselect) { - selection.active = false; - selection.selecting_mode = SelectionMode::SELECTION_MODE_NONE; - update(); - } - if (clear) { - if (!dobreak) { - begin_complex_operation(); - } - selection.active = false; - update(); - _remove_text(selection.from_line, selection.from_column, selection.to_line, selection.to_column); - cursor_set_line(selection.from_line, true, false); - cursor_set_column(selection.from_column); - update(); - } - if (dobreak) { - return; - } - } - selection.selecting_text = false; - bool keycode_handled = true; - - // Special keycode test. - - switch (k->get_keycode()) { - case KEY_KP_ENTER: - case KEY_ENTER: { - if (readonly) { - break; - } - - String ins = "\n"; - - // Keep indentation. - int space_count = 0; - for (int i = 0; i < cursor.column; i++) { - if (text[cursor.line][i] == '\t') { - if (indent_using_spaces) { - ins += space_indent; - } else { - ins += "\t"; - } - space_count = 0; - } else if (text[cursor.line][i] == ' ') { - space_count++; - - if (space_count == indent_size) { - if (indent_using_spaces) { - ins += space_indent; - } else { - ins += "\t"; - } - space_count = 0; - } - } else { - break; - } - } - - if (is_folded(cursor.line)) { - unfold_line(cursor.line); - } - - bool brace_indent = false; - - // No need to indent if we are going upwards. - if (auto_indent && !(k->get_command() && k->get_shift())) { - // Indent once again if previous line will end with ':','{','[','(' and the line is not a comment - // (i.e. colon/brace precedes current cursor position). - if (cursor.column > 0) { - bool indent_char_found = false; - bool should_indent = false; - char indent_char = ':'; - char c = text[cursor.line][cursor.column]; - - for (int i = 0; i < cursor.column; i++) { - c = text[cursor.line][i]; - switch (c) { - case ':': - case '{': - case '[': - case '(': - indent_char_found = true; - should_indent = true; - indent_char = c; - continue; - } - - if (indent_char_found && is_line_comment(cursor.line)) { - should_indent = true; - break; - } else if (indent_char_found && !_is_whitespace(c)) { - should_indent = false; - indent_char_found = false; - } - } - - if (!is_line_comment(cursor.line) && should_indent) { - if (indent_using_spaces) { - ins += space_indent; - } else { - ins += "\t"; - } + // Check and handle all built in shortcuts. - // No need to move the brace below if we are not taking the text with us. - char32_t closing_char = _get_right_pair_symbol(indent_char); - if ((closing_char != 0) && (closing_char == text[cursor.line][cursor.column]) && !k->get_command()) { - brace_indent = true; - ins += "\n" + ins.substr(1, ins.length() - 2); - } - } - } - } - begin_complex_operation(); - bool first_line = false; - if (k->get_command()) { - if (k->get_shift()) { - if (cursor.line > 0) { - cursor_set_line(cursor.line - 1); - cursor_set_column(text[cursor.line].length()); - } else { - cursor_set_column(0); - first_line = true; - } - } else { - cursor_set_column(text[cursor.line].length()); - } - } + // AUTO-COMPLETE - insert_text_at_cursor(ins); - - if (first_line) { - cursor_set_line(0); - } else if (brace_indent) { - cursor_set_line(cursor.line - 1); - cursor_set_column(text[cursor.line].length()); - } - end_complex_operation(); - } break; - case KEY_ESCAPE: { - if (completion_hint != "") { - completion_hint = ""; - update(); - } else { - keycode_handled = false; - } - } break; - case KEY_TAB: { - if (k->get_command()) { - break; // Avoid tab when command. - } - - if (readonly) { - break; - } - - if (is_selection_active()) { - if (k->get_shift()) { - indent_left(); - } else { - indent_right(); - } - } else { - if (k->get_shift()) { - // Simple unindent. - int cc = cursor.column; - const String &line = text[cursor.line]; - - int left = _find_first_non_whitespace_column_of_line(line); - cc = MIN(cc, left); - - while (cc < indent_size && cc < left && line[cc] == ' ') { - cc++; - } - - if (cc > 0 && cc <= text[cursor.line].length()) { - if (text[cursor.line][cc - 1] == '\t') { - // Tabs unindentation. - _remove_text(cursor.line, cc - 1, cursor.line, cc); - if (cursor.column >= left) { - cursor_set_column(MAX(0, cursor.column - 1)); - } - update(); - } else { - // Spaces unindentation. - int spaces_to_remove = _calculate_spaces_till_next_left_indent(cc); - if (spaces_to_remove > 0) { - _remove_text(cursor.line, cc - spaces_to_remove, cursor.line, cc); - if (cursor.column > left - spaces_to_remove) { // Inside text? - cursor_set_column(MAX(0, cursor.column - spaces_to_remove)); - } - update(); - } - } - } else if (cc == 0 && line.length() > 0 && line[0] == '\t') { - _remove_text(cursor.line, 0, cursor.line, 1); - update(); - } - } else { - // Simple indent. - if (indent_using_spaces) { - // Insert only as much spaces as needed till next indentation level. - int spaces_to_add = _calculate_spaces_till_next_right_indent(cursor.column); - String indent_to_insert = String(); - for (int i = 0; i < spaces_to_add; i++) { - indent_to_insert = ' ' + indent_to_insert; - } - _insert_text_at_cursor(indent_to_insert); - } else { - _insert_text_at_cursor("\t"); - } - } - } - - } break; - case KEY_BACKSPACE: { - if (readonly) { - break; - } - -#ifdef APPLE_STYLE_KEYS - if (k->get_alt() && cursor.column > 1) { -#else - if (k->get_alt()) { - keycode_handled = false; - break; - } else if (k->get_command() && cursor.column > 1) { -#endif - int line = cursor.line; - int column = cursor.column; - - Vector<Vector2i> words = TS->shaped_text_get_word_breaks(text.get_line_data(line)->get_rid()); - for (int i = words.size() - 1; i >= 0; i--) { - if (words[i].x < column) { - column = words[i].x; - break; - } - } - - _remove_text(line, column, cursor.line, cursor.column); - - cursor_set_line(line); - cursor_set_column(column); - -#ifdef APPLE_STYLE_KEYS - } else if (k->get_command()) { - int cursor_current_column = cursor.column; - cursor.column = 0; - _remove_text(cursor.line, 0, cursor.line, cursor_current_column); -#endif - } else { - if (cursor.line > 0 && is_line_hidden(cursor.line - 1)) { - unfold_line(cursor.line - 1); - } - backspace_at_cursor(); - } - - } break; - case KEY_KP_4: { - if (k->get_unicode() != 0) { - keycode_handled = false; - break; - } - [[fallthrough]]; - } - case KEY_LEFT: { - if (k->get_shift()) { - _pre_shift_selection(); -#ifdef APPLE_STYLE_KEYS - } else { -#else - } else if (!k->get_alt()) { -#endif - deselect(); - } - -#ifdef APPLE_STYLE_KEYS - if (k->get_command()) { - // Start at first column (it's slightly faster that way) and look for the first non-whitespace character. - int new_cursor_pos = 0; - for (int i = 0; i < text[cursor.line].length(); ++i) { - if (!_is_whitespace(text[cursor.line][i])) { - new_cursor_pos = i; - break; - } - } - if (new_cursor_pos == cursor.column) { - // We're already at the first text character, so move to the very beginning of the line. - cursor_set_column(0); - } else { - // We're somewhere to the right of the first text character; move to the first one. - cursor_set_column(new_cursor_pos); - } - } else if (k->get_alt()) { -#else - if (k->get_alt()) { - keycode_handled = false; - break; - } else if (k->get_command()) { -#endif - int cc = cursor.column; - - if (cc == 0 && cursor.line > 0) { - cursor_set_line(cursor.line - 1); - cursor_set_column(text[cursor.line].length()); - } else { - Vector<Vector2i> words = TS->shaped_text_get_word_breaks(text.get_line_data(cursor.line)->get_rid()); - for (int i = words.size() - 1; i >= 0; i--) { - if (words[i].x < cc) { - cc = words[i].x; - break; - } - } - cursor_set_column(cc); - } + if (k->is_action("ui_text_completion_query", true)) { + query_code_comple(); + accept_event(); + return; + } - } else if (cursor.column == 0) { - if (cursor.line > 0) { - cursor_set_line(cursor.line - num_lines_from(CLAMP(cursor.line - 1, 0, text.size() - 1), -1)); - cursor_set_column(text[cursor.line].length()); - } + if (completion_active) { + if (k->is_action("ui_up", true)) { + if (completion_index > 0) { + completion_index--; } else { - if (mid_grapheme_caret_enabled) { - cursor_set_column(cursor_get_column() - 1); - } else { - cursor_set_column(TS->shaped_text_prev_grapheme_pos(text.get_line_data(cursor.line)->get_rid(), cursor_get_column())); - } - } - - if (k->get_shift()) { - _post_shift_selection(); - } - - } break; - case KEY_KP_6: { - if (k->get_unicode() != 0) { - keycode_handled = false; - break; + completion_index = completion_options.size() - 1; } - [[fallthrough]]; + completion_current = completion_options[completion_index]; + update(); + accept_event(); + return; } - case KEY_RIGHT: { - if (k->get_shift()) { - _pre_shift_selection(); -#ifdef APPLE_STYLE_KEYS - } else { -#else - } else if (!k->get_alt()) { -#endif - deselect(); - } - -#ifdef APPLE_STYLE_KEYS - if (k->get_command()) { - cursor_set_column(text[cursor.line].length()); - } else if (k->get_alt()) { -#else - if (k->get_alt()) { - keycode_handled = false; - break; - } else if (k->get_command()) { -#endif - int cc = cursor.column; - - if (cc == text[cursor.line].length() && cursor.line < text.size() - 1) { - cursor_set_line(cursor.line + 1); - cursor_set_column(0); - } else { - Vector<Vector2i> words = TS->shaped_text_get_word_breaks(text.get_line_data(cursor.line)->get_rid()); - for (int i = 0; i < words.size(); i++) { - if (words[i].y > cc) { - cc = words[i].y; - break; - } - } - cursor_set_column(cc); - } - - } else if (cursor.column == text[cursor.line].length()) { - if (cursor.line < text.size() - 1) { - cursor_set_line(cursor_get_line() + num_lines_from(CLAMP(cursor.line + 1, 0, text.size() - 1), 1), true, false); - cursor_set_column(0); - } + if (k->is_action("ui_down", true)) { + if (completion_index < completion_options.size() - 1) { + completion_index++; } else { - if (mid_grapheme_caret_enabled) { - cursor_set_column(cursor_get_column() + 1); - } else { - cursor_set_column(TS->shaped_text_next_grapheme_pos(text.get_line_data(cursor.line)->get_rid(), cursor_get_column())); - } - } - - if (k->get_shift()) { - _post_shift_selection(); - } - - } break; - case KEY_KP_8: { - if (k->get_unicode() != 0) { - keycode_handled = false; - break; + completion_index = 0; } - [[fallthrough]]; + completion_current = completion_options[completion_index]; + update(); + accept_event(); + return; } - case KEY_UP: { - if (k->get_alt()) { - keycode_handled = false; - break; + if (k->is_action("ui_page_up", true)) { + completion_index -= get_theme_constant("completion_lines"); + if (completion_index < 0) { + completion_index = 0; } -#ifndef APPLE_STYLE_KEYS - if (k->get_command()) { -#else - if (k->get_command() && k->get_alt()) { -#endif - _scroll_lines_up(); - break; - } - - if (k->get_shift()) { - _pre_shift_selection(); - } - -#ifdef APPLE_STYLE_KEYS - if (k->get_command()) { - cursor_set_line(0); - } else -#endif - { - int cur_wrap_index = get_cursor_wrap_index(); - if (cur_wrap_index > 0) { - cursor_set_line(cursor.line, true, false, cur_wrap_index - 1); - } else if (cursor.line == 0) { - cursor_set_column(0); - } else { - int new_line = cursor.line - num_lines_from(cursor.line - 1, -1); - if (line_wraps(new_line)) { - cursor_set_line(new_line, true, false, times_line_wraps(new_line)); - } else { - cursor_set_line(new_line, true, false); - } - } - } - - if (k->get_shift()) { - _post_shift_selection(); - } - _cancel_code_hint(); - - } break; - case KEY_KP_2: { - if (k->get_unicode() != 0) { - keycode_handled = false; - break; - } - [[fallthrough]]; + completion_current = completion_options[completion_index]; + update(); + accept_event(); + return; } - case KEY_DOWN: { - if (k->get_alt()) { - keycode_handled = false; - break; + if (k->is_action("ui_page_down", true)) { + completion_index += get_theme_constant("completion_lines"); + if (completion_index >= completion_options.size()) { + completion_index = completion_options.size() - 1; } -#ifndef APPLE_STYLE_KEYS - if (k->get_command()) { -#else - if (k->get_command() && k->get_alt()) { -#endif - _scroll_lines_down(); - break; - } - - if (k->get_shift()) { - _pre_shift_selection(); - } - -#ifdef APPLE_STYLE_KEYS - if (k->get_command()) { - cursor_set_line(get_last_unhidden_line(), true, false, 9999); - } else -#endif - { - int cur_wrap_index = get_cursor_wrap_index(); - if (cur_wrap_index < times_line_wraps(cursor.line)) { - cursor_set_line(cursor.line, true, false, cur_wrap_index + 1); - } else if (cursor.line == get_last_unhidden_line()) { - cursor_set_column(text[cursor.line].length()); - } else { - int new_line = cursor.line + num_lines_from(CLAMP(cursor.line + 1, 0, text.size() - 1), 1); - cursor_set_line(new_line, true, false, 0); - } - } - - if (k->get_shift()) { - _post_shift_selection(); - } - _cancel_code_hint(); - - } break; - case KEY_DELETE: { - if (readonly) { - break; - } - - if (k->get_shift() && !k->get_command() && !k->get_alt() && is_shortcut_keys_enabled()) { - cut(); - break; - } - - int curline_len = text[cursor.line].length(); - - if (cursor.line == text.size() - 1 && cursor.column == curline_len) { - break; // Nothing to do. - } - - int next_line = cursor.column < curline_len ? cursor.line : cursor.line + 1; - int next_column; - -#ifdef APPLE_STYLE_KEYS - if (k->get_alt() && cursor.column < curline_len - 1) { -#else - if (k->get_alt()) { - keycode_handled = false; - break; - } else if (k->get_command() && cursor.column < curline_len - 1) { -#endif - - int line = cursor.line; - int column = cursor.column; - - Vector<Vector2i> words = TS->shaped_text_get_word_breaks(text.get_line_data(line)->get_rid()); - for (int i = 0; i < words.size(); i++) { - if (words[i].y > column) { - column = words[i].y; - break; - } - } - - next_line = line; - next_column = column; -#ifdef APPLE_STYLE_KEYS - } else if (k->get_command()) { - next_column = curline_len; - next_line = cursor.line; -#endif - } else { - if (mid_grapheme_caret_enabled) { - next_column = cursor.column < curline_len ? (cursor.column + 1) : 0; - } else { - next_column = cursor.column < curline_len ? TS->shaped_text_next_grapheme_pos(text.get_line_data(cursor.line)->get_rid(), (cursor.column)) : 0; - } - } - - _remove_text(cursor.line, cursor.column, next_line, next_column); + completion_current = completion_options[completion_index]; update(); - - } break; - case KEY_KP_7: { - if (k->get_unicode() != 0) { - keycode_handled = false; - break; - } - [[fallthrough]]; + accept_event(); + return; } - case KEY_HOME: { -#ifdef APPLE_STYLE_KEYS - if (k->get_shift()) - _pre_shift_selection(); - - cursor_set_line(0); - - if (k->get_shift()) - _post_shift_selection(); - else if (k->get_command() || k->get_control()) - deselect(); -#else - if (k->get_shift()) { - _pre_shift_selection(); - } - - if (k->get_command()) { - cursor_set_line(0); - cursor_set_column(0); - } else { - // Move cursor column to start of wrapped row and then to start of text. - Vector<String> rows = get_wrap_rows_text(cursor.line); - int wi = get_cursor_wrap_index(); - int row_start_col = 0; - for (int i = 0; i < wi; i++) { - row_start_col += rows[i].length(); - } - if (cursor.column == row_start_col || wi == 0) { - // Compute whitespace symbols seq length. - int current_line_whitespace_len = 0; - while (current_line_whitespace_len < text[cursor.line].length()) { - char32_t c = text[cursor.line][current_line_whitespace_len]; - if (c != '\t' && c != ' ') { - break; - } - current_line_whitespace_len++; - } - - if (cursor_get_column() == current_line_whitespace_len) { - cursor_set_column(0); - } else { - cursor_set_column(current_line_whitespace_len); - } - } else { - cursor_set_column(row_start_col); - } - } - - if (k->get_shift()) { - _post_shift_selection(); - } else if (k->get_command() || k->get_control()) { - deselect(); - } - _cancel_completion(); - completion_hint = ""; -#endif - } break; - case KEY_KP_1: { - if (k->get_unicode() != 0) { - keycode_handled = false; - break; + if (k->is_action("ui_home", true)) { + if (completion_index > 0) { + completion_index = 0; + completion_current = completion_options[completion_index]; + update(); } - [[fallthrough]]; + accept_event(); + return; } - case KEY_END: { -#ifdef APPLE_STYLE_KEYS - if (k->get_shift()) - _pre_shift_selection(); - - cursor_set_line(get_last_unhidden_line(), true, false, 9999); - - if (k->get_shift()) - _post_shift_selection(); - else if (k->get_command() || k->get_control()) - deselect(); -#else - if (k->get_shift()) { - _pre_shift_selection(); - } - - if (k->get_command()) { - cursor_set_line(get_last_unhidden_line(), true, false, 9999); - } - - // Move cursor column to end of wrapped row and then to end of text. - Vector<String> rows = get_wrap_rows_text(cursor.line); - int wi = get_cursor_wrap_index(); - int row_end_col = -1; - for (int i = 0; i < wi + 1; i++) { - row_end_col += rows[i].length(); - } - if (wi == rows.size() - 1 || cursor.column == row_end_col) { - cursor_set_column(text[cursor.line].length()); - } else { - cursor_set_column(row_end_col); - } - - if (k->get_shift()) { - _post_shift_selection(); - } else if (k->get_command() || k->get_control()) { - deselect(); - } - - _cancel_completion(); - completion_hint = ""; -#endif - } break; - case KEY_KP_9: { - if (k->get_unicode() != 0) { - keycode_handled = false; - break; + if (k->is_action("ui_end", true)) { + if (completion_index < completion_options.size() - 1) { + completion_index = completion_options.size() - 1; + completion_current = completion_options[completion_index]; + update(); } - [[fallthrough]]; + accept_event(); + return; } - case KEY_PAGEUP: { - if (k->get_shift()) { - _pre_shift_selection(); - } - - int wi; - int n_line = cursor.line - num_lines_from_rows(cursor.line, get_cursor_wrap_index(), -get_visible_rows(), wi) + 1; - cursor_set_line(n_line, true, false, wi); - - if (k->get_shift()) { - _post_shift_selection(); - } - + if (k->is_action("ui_accept", true) || k->is_action("ui_text_completion_accept", true)) { + _confirm_completion(); + accept_event(); + return; + } + if (k->is_action("ui_cancel", true)) { _cancel_completion(); - completion_hint = ""; + accept_event(); + return; + } - } break; - case KEY_KP_3: { - if (k->get_unicode() != 0) { - keycode_handled = false; - break; + // Handle Unicode here (if no modifiers active) and update autocomplete. + if (k->get_unicode() >= 32) { + if (allow_unicode_handling && !readonly) { + _handle_unicode_character(k->get_unicode(), had_selection, true); + accept_event(); + return; } - [[fallthrough]]; } - case KEY_PAGEDOWN: { - if (k->get_shift()) { - _pre_shift_selection(); - } - - int wi; - int n_line = cursor.line + num_lines_from_rows(cursor.line, get_cursor_wrap_index(), get_visible_rows(), wi) - 1; - cursor_set_line(n_line, true, false, wi); + } - if (k->get_shift()) { - _post_shift_selection(); - } + // NEWLINES. + if (k->is_action("ui_text_newline_above", true)) { + _new_line(false, true); + accept_event(); + return; + } + if (k->is_action("ui_text_newline_blank", true)) { + _new_line(false); + accept_event(); + return; + } + if (k->is_action("ui_text_newline", true)) { + _new_line(); + accept_event(); + return; + } - _cancel_completion(); - completion_hint = ""; + // INDENTATION. + if (k->is_action("ui_text_dedent", true)) { + _indent_left(); + accept_event(); + return; + } + if (k->is_action("ui_text_indent", true)) { + _indent_right(); + accept_event(); + return; + } - } break; - case KEY_A: { -#ifndef APPLE_STYLE_KEYS - if (!k->get_control() || k->get_shift() || k->get_alt()) { - keycode_handled = false; - break; - } - if (is_shortcut_keys_enabled()) { - select_all(); - } -#else - if ((!k->get_command() && !k->get_control())) { - keycode_handled = false; - break; - } - if (!k->get_shift() && k->get_command() && is_shortcut_keys_enabled()) - select_all(); - else if (k->get_control()) { - if (k->get_shift()) - _pre_shift_selection(); - - int current_line_whitespace_len = 0; - while (current_line_whitespace_len < text[cursor.line].length()) { - char32_t c = text[cursor.line][current_line_whitespace_len]; - if (c != '\t' && c != ' ') - break; - current_line_whitespace_len++; - } + // BACKSPACE AND DELETE. + if (k->is_action("ui_text_backspace_all_to_left", true)) { + _backspace(false, true); + accept_event(); + return; + } + if (k->is_action("ui_text_backspace_word", true)) { + _backspace(true); + accept_event(); + return; + } + if (k->is_action("ui_text_backspace", true)) { + _backspace(); + if (completion_active) { + _update_completion_candidates(); + } + accept_event(); + return; + } + if (k->is_action("ui_text_delete_all_to_right", true)) { + _delete(false, true); + accept_event(); + return; + } + if (k->is_action("ui_text_delete_word", true)) { + _delete(true); + accept_event(); + return; + } + if (k->is_action("ui_text_delete", true)) { + _delete(); + accept_event(); + return; + } - if (cursor_get_column() == current_line_whitespace_len) - cursor_set_column(0); - else - cursor_set_column(current_line_whitespace_len); + // SCROLLING. + if (k->is_action("ui_text_scroll_up", true)) { + _scroll_lines_up(); + accept_event(); + return; + } + if (k->is_action("ui_text_scroll_down", true)) { + _scroll_lines_down(); + accept_event(); + return; + } - if (k->get_shift()) - _post_shift_selection(); - else if (k->get_command() || k->get_control()) - deselect(); - } - } break; - case KEY_E: { - if (!k->get_control() || k->get_command() || k->get_alt()) { - keycode_handled = false; - break; - } + // SELECT ALL, CUT, COPY, PASTE. - if (k->get_shift()) - _pre_shift_selection(); + if (k->is_action("ui_text_select_all", true)) { + select_all(); + accept_event(); + return; + } + if (k->is_action("ui_cut", true)) { + cut(); + accept_event(); + return; + } + if (k->is_action("ui_copy", true)) { + copy(); + accept_event(); + return; + } + if (k->is_action("ui_paste", true)) { + paste(); + accept_event(); + return; + } - if (k->get_command()) - cursor_set_line(text.size() - 1, true, false); - cursor_set_column(text[cursor.line].length()); + // UNDO/REDO. + if (k->is_action("ui_undo", true)) { + undo(); + accept_event(); + return; + } + if (k->is_action("ui_redo", true)) { + redo(); + accept_event(); + return; + } - if (k->get_shift()) - _post_shift_selection(); - else if (k->get_command() || k->get_control()) - deselect(); + // MISC. - _cancel_completion(); + if (k->is_action("ui_menu", true)) { + if (context_menu_enabled) { + menu->set_position(get_screen_transform().xform(_get_cursor_pixel_pos())); + menu->set_size(Vector2(1, 1)); + _generate_context_menu(); + menu->popup(); + menu->grab_focus(); + } + accept_event(); + return; + } + if (k->is_action("ui_text_toggle_insert_mode", true)) { + set_insert_mode(!insert_mode); + accept_event(); + return; + } + if (k->is_action("ui_cancel", true)) { + if (completion_hint != "") { completion_hint = ""; -#endif - } break; - case (KEY_QUOTELEFT): { // Swap current input direction (primary cursor) - if (!k->get_command()) { - keycode_handled = false; - break; - } - - if (input_direction == TEXT_DIRECTION_LTR) { - input_direction = TEXT_DIRECTION_RTL; - } else { - input_direction = TEXT_DIRECTION_LTR; - } - cursor_set_column(cursor.column); update(); - } break; - case KEY_X: { - if (readonly) { - break; - } - if (!k->get_command() || k->get_shift() || k->get_alt()) { - keycode_handled = false; - break; - } - if (is_shortcut_keys_enabled()) { - cut(); - } - - } break; - case KEY_C: { - if (!k->get_command() || k->get_shift() || k->get_alt()) { - keycode_handled = false; - break; - } - - if (is_shortcut_keys_enabled()) { - copy(); - } - - } break; - case KEY_Z: { - if (readonly) { - break; - } - - if (!k->get_command()) { - keycode_handled = false; - break; - } - - if (is_shortcut_keys_enabled()) { - if (k->get_shift()) { - redo(); - } else { - undo(); - } - } - } break; - case KEY_Y: { - if (readonly) { - break; - } - - if (!k->get_command()) { - keycode_handled = false; - break; - } - - if (is_shortcut_keys_enabled()) { - redo(); - } - } break; - case KEY_V: { - if (readonly) { - break; - } - if (!k->get_command() || k->get_shift() || k->get_alt()) { - keycode_handled = false; - break; - } - - if (is_shortcut_keys_enabled()) { - paste(); - } - - } break; - case KEY_SPACE: { -#ifdef OSX_ENABLED - if (completion_enabled && k->get_metakey()) { // cmd-space is spotlight shortcut in OSX -#else - if (completion_enabled && k->get_command()) { -#endif - - query_code_comple(); - keycode_handled = true; - } else { - keycode_handled = false; - } + } + accept_event(); + return; + } + if (k->is_action("ui_swap_input_direction", true)) { + _swap_current_input_direction(); + accept_event(); + return; + } - } break; + // CURSOR MOVEMENT - case KEY_MENU: { - if (context_menu_enabled) { - menu->set_position(get_screen_transform().xform(_get_cursor_pixel_pos())); - menu->set_size(Vector2(1, 1)); - menu->popup(); - menu->grab_focus(); - } - } break; + k = k->duplicate(); + bool shift_pressed = k->get_shift(); + // Remove shift or else actions will not match. Use above variable for selection. + k->set_shift(false); - default: { - keycode_handled = false; - } break; + // CURSOR MOVEMENT - LEFT, RIGHT. + if (k->is_action("ui_text_caret_word_left", true)) { + _move_cursor_left(shift_pressed, true); + accept_event(); + return; } - - if (keycode_handled) { + if (k->is_action("ui_text_caret_left", true)) { + _move_cursor_left(shift_pressed, false); accept_event(); + return; } - - if (k->get_keycode() == KEY_INSERT) { - set_insert_mode(!insert_mode); + if (k->is_action("ui_text_caret_word_right", true)) { + _move_cursor_right(shift_pressed, true); + accept_event(); + return; + } + if (k->is_action("ui_text_caret_right", true)) { + _move_cursor_right(shift_pressed, false); accept_event(); return; } - if (!keycode_handled && !k->get_command()) { // For German keyboards. - - if (k->get_unicode() >= 32) { - if (readonly) { - return; - } - - // Remove the old character if in insert mode and no selection. - if (insert_mode && !had_selection) { - begin_complex_operation(); - - // Make sure we don't try and remove empty space. - if (cursor.column < get_line(cursor.line).length()) { - _remove_text(cursor.line, cursor.column, cursor.line, cursor.column + 1); - } - } - - const char32_t chr[2] = { (char32_t)k->get_unicode(), 0 }; + // CURSOR MOVEMENT - UP, DOWN. + if (k->is_action("ui_text_caret_up", true)) { + _move_cursor_up(shift_pressed); + accept_event(); + return; + } + if (k->is_action("ui_text_caret_down", true)) { + _move_cursor_down(shift_pressed); + accept_event(); + return; + } - if (completion_hint != "" && k->get_unicode() == ')') { - completion_hint = ""; - } - if (auto_brace_completion_enabled && _is_pair_symbol(chr[0])) { - _consume_pair_symbol(chr[0]); - } else { - _insert_text_at_cursor(chr); - } + // CURSOR MOVEMENT - DOCUMENT START/END. + if (k->is_action("ui_text_caret_document_start", true)) { // && shift_pressed) { + _move_cursor_document_start(shift_pressed); + accept_event(); + return; + } + if (k->is_action("ui_text_caret_document_end", true)) { // && shift_pressed) { + _move_cursor_document_end(shift_pressed); + accept_event(); + return; + } - if (insert_mode && !had_selection) { - end_complex_operation(); - } + // CURSOR MOVEMENT - LINE START/END. + if (k->is_action("ui_text_caret_line_start", true)) { + _move_cursor_to_line_start(shift_pressed); + accept_event(); + return; + } + if (k->is_action("ui_text_caret_line_end", true)) { + _move_cursor_to_line_end(shift_pressed); + accept_event(); + return; + } - if (selection.active != had_selection) { - end_complex_operation(); - } - accept_event(); - } + // CURSOR MOVEMENT - PAGE UP/DOWN. + if (k->is_action("ui_text_caret_page_up", true)) { + _move_cursor_page_up(shift_pressed); + accept_event(); + return; + } + if (k->is_action("ui_text_caret_page_down", true)) { + _move_cursor_page_down(shift_pressed); + accept_event(); + return; } - return; + if (allow_unicode_handling && !readonly && k->get_unicode() >= 32) { + // Handle Unicode (if no modifiers active). + _handle_unicode_character(k->get_unicode(), had_selection, false); + accept_event(); + return; + } } } @@ -4109,25 +3887,50 @@ int TextEdit::_get_control_height() const { return control_height; } +int TextEdit::_get_menu_action_accelerator(const String &p_action) { + const List<Ref<InputEvent>> *events = InputMap::get_singleton()->action_get_events(p_action); + if (!events) { + return 0; + } + + // Use first event in the list for the accelerator. + const List<Ref<InputEvent>>::Element *first_event = events->front(); + if (!first_event) { + return 0; + } + + const Ref<InputEventKey> event = first_event->get(); + if (event.is_null()) { + return 0; + } + + // Use physical keycode if non-zero + if (event->get_physical_keycode() != 0) { + return event->get_physical_keycode_with_modifiers(); + } else { + return event->get_keycode_with_modifiers(); + } +} + void TextEdit::_generate_context_menu() { // Reorganize context menu. menu->clear(); if (!readonly) { - menu->add_item(RTR("Cut"), MENU_CUT, is_shortcut_keys_enabled() ? KEY_MASK_CMD | KEY_X : 0); + menu->add_item(RTR("Cut"), MENU_CUT, is_shortcut_keys_enabled() ? _get_menu_action_accelerator("ui_cut") : 0); } - menu->add_item(RTR("Copy"), MENU_COPY, is_shortcut_keys_enabled() ? KEY_MASK_CMD | KEY_C : 0); + menu->add_item(RTR("Copy"), MENU_COPY, is_shortcut_keys_enabled() ? _get_menu_action_accelerator("ui_copy") : 0); if (!readonly) { - menu->add_item(RTR("Paste"), MENU_PASTE, is_shortcut_keys_enabled() ? KEY_MASK_CMD | KEY_V : 0); + menu->add_item(RTR("Paste"), MENU_PASTE, is_shortcut_keys_enabled() ? _get_menu_action_accelerator("ui_paste") : 0); } menu->add_separator(); if (is_selecting_enabled()) { - menu->add_item(RTR("Select All"), MENU_SELECT_ALL, is_shortcut_keys_enabled() ? KEY_MASK_CMD | KEY_A : 0); + menu->add_item(RTR("Select All"), MENU_SELECT_ALL, is_shortcut_keys_enabled() ? _get_menu_action_accelerator("ui_text_select_all") : 0); } if (!readonly) { menu->add_item(RTR("Clear"), MENU_CLEAR); menu->add_separator(); - menu->add_item(RTR("Undo"), MENU_UNDO, is_shortcut_keys_enabled() ? KEY_MASK_CMD | KEY_Z : 0); - menu->add_item(RTR("Redo"), MENU_REDO, is_shortcut_keys_enabled() ? KEY_MASK_CMD | KEY_MASK_SHIFT | KEY_Z : 0); + menu->add_item(RTR("Undo"), MENU_UNDO, is_shortcut_keys_enabled() ? _get_menu_action_accelerator("ui_undo") : 0); + menu->add_item(RTR("Redo"), MENU_REDO, is_shortcut_keys_enabled() ? _get_menu_action_accelerator("ui_redo") : 0); } menu->add_separator(); menu->add_submenu_item(RTR("Text writing direction"), "DirMenu"); @@ -5217,6 +5020,10 @@ void TextEdit::set_auto_indent(bool p_auto_indent) { } void TextEdit::cut() { + if (readonly) { + return; + } + if (!selection.active) { String clipboard = text[cursor.line]; DisplayServer::get_singleton()->clipboard_set(clipboard); @@ -5264,6 +5071,10 @@ void TextEdit::copy() { } void TextEdit::paste() { + if (readonly) { + return; + } + String clipboard = DisplayServer::get_singleton()->clipboard_get(); begin_complex_operation(); @@ -5967,6 +5778,10 @@ void TextEdit::_clear_redo() { } void TextEdit::undo() { + if (readonly) { + return; + } + _push_current_op(); if (undo_stack_pos == nullptr) { @@ -6017,6 +5832,9 @@ void TextEdit::undo() { } void TextEdit::redo() { + if (readonly) { + return; + } _push_current_op(); if (undo_stack_pos == nullptr) { diff --git a/scene/gui/text_edit.h b/scene/gui/text_edit.h index f50585d9e9..b0c7314c65 100644 --- a/scene/gui/text_edit.h +++ b/scene/gui/text_edit.h @@ -408,6 +408,7 @@ private: int _get_control_height() const; Point2 _get_local_mouse_pos() const; + int _get_menu_action_accelerator(const String &p_action); void _reset_caret_blink_timer(); void _toggle_draw_caret(); @@ -441,6 +442,26 @@ private: int _calculate_spaces_till_next_left_indent(int column); int _calculate_spaces_till_next_right_indent(int column); + // Methods used in shortcuts + void _swap_current_input_direction(); + void _new_line(bool p_split_current = true, bool p_above = false); + void _indent_right(); + void _indent_left(); + void _move_cursor_left(bool p_select, bool p_move_by_word = false); + void _move_cursor_right(bool p_select, bool p_move_by_word = false); + void _move_cursor_up(bool p_select); + void _move_cursor_down(bool p_select); + void _move_cursor_to_line_start(bool p_select); + void _move_cursor_to_line_end(bool p_select); + void _move_cursor_page_up(bool p_select); + void _move_cursor_page_down(bool p_select); + void _backspace(bool p_word = false, bool p_all_to_left = false); + void _delete(bool p_word = false, bool p_all_to_right = false); + void _delete_selection(); + void _move_cursor_document_start(bool p_select); + void _move_cursor_document_end(bool p_select); + void _handle_unicode_character(uint32_t unicode, bool p_had_selection, bool p_update_auto_complete); + protected: struct Cache { Ref<Texture2D> tab_icon; @@ -639,8 +660,8 @@ public: int get_row_height() const; void backspace_at_cursor(); - void indent_left(); - void indent_right(); + void indent_selected_lines_left(); + void indent_selected_lines_right(); int get_indent_level(int p_line) const; bool is_line_comment(int p_line) const; diff --git a/scene/gui/tree.cpp b/scene/gui/tree.cpp index c9bc38c36a..ad06739da9 100644 --- a/scene/gui/tree.cpp +++ b/scene/gui/tree.cpp @@ -3342,6 +3342,9 @@ void Tree::item_selected(int p_column, TreeItem *p_item) { //emit_signal("multi_selected",p_item,p_column,true); - NO this is for TreeItem::select selected_col = p_column; + if (!selected_item) { + selected_item = p_item; + } } else { select_single_item(p_item, root, p_column); } diff --git a/scene/main/http_request.cpp b/scene/main/http_request.cpp index 384e7d2652..ce7d6ef13c 100644 --- a/scene/main/http_request.cpp +++ b/scene/main/http_request.cpp @@ -49,7 +49,7 @@ Error HTTPRequest::_parse_url(const String &p_url) { got_response = false; body_len = -1; body.resize(0); - downloaded = 0; + downloaded.set(0); redirections = 0; String url_lower = url.to_lower(); @@ -159,9 +159,9 @@ Error HTTPRequest::request_raw(const String &p_url, const Vector<String> &p_cust requesting = true; - if (use_threads) { - thread_done = false; - thread_request_quit = false; + if (use_threads.is_set()) { + thread_done.clear(); + thread_request_quit.clear(); client->set_blocking_mode(true); thread.start(_thread_func, this); } else { @@ -186,7 +186,7 @@ void HTTPRequest::_thread_func(void *p_userdata) { if (err != OK) { hr->call_deferred("_request_done", RESULT_CANT_CONNECT, 0, PackedStringArray(), PackedByteArray()); } else { - while (!hr->thread_request_quit) { + while (!hr->thread_request_quit.is_set()) { bool exit = hr->_update_connection(); if (exit) { break; @@ -195,7 +195,7 @@ void HTTPRequest::_thread_func(void *p_userdata) { } } - hr->thread_done = true; + hr->thread_done.set(); } void HTTPRequest::cancel_request() { @@ -205,10 +205,10 @@ void HTTPRequest::cancel_request() { return; } - if (!use_threads) { + if (!use_threads.is_set()) { set_process_internal(false); } else { - thread_request_quit = true; + thread_request_quit.set(); thread.wait_to_finish(); } @@ -236,7 +236,7 @@ bool HTTPRequest::_handle_response(bool *ret_value) { List<String> rheaders; client->get_response_headers(&rheaders); response_headers.resize(0); - downloaded = 0; + downloaded.set(0); for (List<String>::Element *E = rheaders.front(); E; E = E->next()) { response_headers.push_back(E->get()); } @@ -276,7 +276,7 @@ bool HTTPRequest::_handle_response(bool *ret_value) { got_response = false; body_len = -1; body.resize(0); - downloaded = 0; + downloaded.set(0); redirections = new_redirs; *ret_value = false; return true; @@ -389,7 +389,7 @@ bool HTTPRequest::_update_connection() { client->poll(); PackedByteArray chunk = client->read_response_body_chunk(); - downloaded += chunk.size(); + downloaded.add(chunk.size()); if (file) { const uint8_t *r = chunk.ptr(); @@ -402,13 +402,13 @@ bool HTTPRequest::_update_connection() { body.append_array(chunk); } - if (body_size_limit >= 0 && downloaded > body_size_limit) { + if (body_size_limit >= 0 && downloaded.get() > body_size_limit) { call_deferred("_request_done", RESULT_BODY_SIZE_LIMIT_EXCEEDED, response_code, response_headers, PackedByteArray()); return true; } if (body_len >= 0) { - if (downloaded == body_len) { + if (downloaded.get() == body_len) { call_deferred("_request_done", RESULT_SUCCESS, response_code, response_headers, body); return true; } @@ -478,7 +478,7 @@ void HTTPRequest::_request_done(int p_status, int p_code, const PackedStringArra void HTTPRequest::_notification(int p_what) { if (p_what == NOTIFICATION_INTERNAL_PROCESS) { - if (use_threads) { + if (use_threads.is_set()) { return; } bool done = _update_connection(); @@ -497,11 +497,11 @@ void HTTPRequest::_notification(int p_what) { void HTTPRequest::set_use_threads(bool p_use) { ERR_FAIL_COND(get_http_client_status() != HTTPClient::STATUS_DISCONNECTED); - use_threads = p_use; + use_threads.set_to(p_use); } bool HTTPRequest::is_using_threads() const { - return use_threads; + return use_threads.is_set(); } void HTTPRequest::set_accept_gzip(bool p_gzip) { @@ -555,7 +555,7 @@ int HTTPRequest::get_max_redirects() const { } int HTTPRequest::get_downloaded_bytes() const { - return downloaded; + return downloaded.get(); } int HTTPRequest::get_body_size() const { diff --git a/scene/main/http_request.h b/scene/main/http_request.h index 5525ea7912..92b0ff28e9 100644 --- a/scene/main/http_request.h +++ b/scene/main/http_request.h @@ -34,6 +34,7 @@ #include "core/io/http_client.h" #include "core/os/file_access.h" #include "core/os/thread.h" +#include "core/templates/safe_refcount.h" #include "node.h" #include "scene/main/timer.h" @@ -74,7 +75,7 @@ private: bool request_sent = false; Ref<HTTPClient> client; PackedByteArray body; - volatile bool use_threads = false; + SafeFlag use_threads; bool accept_gzip = true; bool got_response = false; @@ -86,7 +87,7 @@ private: FileAccess *file = nullptr; int body_len = -1; - volatile int downloaded = 0; + SafeNumeric<int> downloaded; int body_size_limit = -1; int redirections = 0; @@ -107,8 +108,8 @@ private: bool has_header(const PackedStringArray &p_headers, const String &p_header_name); String get_header_value(const PackedStringArray &p_headers, const String &header_name); - volatile bool thread_done = false; - volatile bool thread_request_quit = false; + SafeFlag thread_done; + SafeFlag thread_request_quit; Thread thread; diff --git a/scene/main/node.cpp b/scene/main/node.cpp index e109240f59..ff46c06128 100644 --- a/scene/main/node.cpp +++ b/scene/main/node.cpp @@ -1108,7 +1108,7 @@ void Node::_generate_serial_child_name(const Node *p_child, StringName &name) co name = p_child->get_class(); // Adjust casing according to project setting. The current type name is expected to be in PascalCase. - switch (ProjectSettings::get_singleton()->get("node/name_casing").operator int()) { + switch (ProjectSettings::get_singleton()->get("editor/node_naming/name_casing").operator int()) { case NAME_CASING_PASCAL_CASE: break; case NAME_CASING_CAMEL_CASE: { @@ -2725,10 +2725,10 @@ void Node::request_ready() { } void Node::_bind_methods() { - GLOBAL_DEF("node/name_num_separator", 0); - ProjectSettings::get_singleton()->set_custom_property_info("node/name_num_separator", PropertyInfo(Variant::INT, "node/name_num_separator", PROPERTY_HINT_ENUM, "None,Space,Underscore,Dash")); - GLOBAL_DEF("node/name_casing", NAME_CASING_PASCAL_CASE); - ProjectSettings::get_singleton()->set_custom_property_info("node/name_casing", PropertyInfo(Variant::INT, "node/name_casing", PROPERTY_HINT_ENUM, "PascalCase,camelCase,snake_case")); + GLOBAL_DEF("editor/node_naming/name_num_separator", 0); + ProjectSettings::get_singleton()->set_custom_property_info("editor/node_naming/name_num_separator", PropertyInfo(Variant::INT, "editor/node_naming/name_num_separator", PROPERTY_HINT_ENUM, "None,Space,Underscore,Dash")); + GLOBAL_DEF("editor/node_naming/name_casing", NAME_CASING_PASCAL_CASE); + ProjectSettings::get_singleton()->set_custom_property_info("editor/node_naming/name_casing", PropertyInfo(Variant::INT, "editor/node_naming/name_casing", PROPERTY_HINT_ENUM, "PascalCase,camelCase,snake_case")); ClassDB::bind_method(D_METHOD("add_sibling", "sibling", "legible_unique_name"), &Node::add_sibling, DEFVAL(false)); @@ -2927,7 +2927,7 @@ void Node::_bind_methods() { } String Node::_get_name_num_separator() { - switch (ProjectSettings::get_singleton()->get("node/name_num_separator").operator int()) { + switch (ProjectSettings::get_singleton()->get("editor/node_naming/name_num_separator").operator int()) { case 0: return ""; case 1: diff --git a/scene/main/scene_tree.cpp b/scene/main/scene_tree.cpp index 0161786681..806ae9280d 100644 --- a/scene/main/scene_tree.cpp +++ b/scene/main/scene_tree.cpp @@ -484,7 +484,7 @@ bool SceneTree::process(float p_time) { if (Engine::get_singleton()->is_editor_hint()) { //simple hack to reload fallback environment if it changed from editor - String env_path = ProjectSettings::get_singleton()->get("rendering/environment/default_environment"); + String env_path = ProjectSettings::get_singleton()->get("rendering/environment/defaults/default_environment"); env_path = env_path.strip_edges(); //user may have added a space or two String cpath; Ref<Environment> fallback = get_root()->get_world_3d()->get_fallback_environment(); @@ -496,7 +496,7 @@ bool SceneTree::process(float p_time) { fallback = ResourceLoader::load(env_path); if (fallback.is_null()) { //could not load fallback, set as empty - ProjectSettings::get_singleton()->set("rendering/environment/default_environment", ""); + ProjectSettings::get_singleton()->set("rendering/environment/defaults/default_environment", ""); } } else { fallback.unref(); @@ -1349,39 +1349,39 @@ SceneTree::SceneTree() { root->set_as_audio_listener_2d(true); current_scene = nullptr; - const int msaa_mode = GLOBAL_DEF("rendering/quality/screen_filters/msaa", 0); - ProjectSettings::get_singleton()->set_custom_property_info("rendering/quality/screen_filters/msaa", PropertyInfo(Variant::INT, "rendering/quality/screen_filters/msaa", PROPERTY_HINT_ENUM, "Disabled (Fastest),2x (Fast),4x (Average),8x (Slow),16x (Slower)")); + const int msaa_mode = GLOBAL_DEF("rendering/anti_aliasing/quality/msaa", 0); + ProjectSettings::get_singleton()->set_custom_property_info("rendering/anti_aliasing/quality/msaa", PropertyInfo(Variant::INT, "rendering/anti_aliasing/quality/msaa", PROPERTY_HINT_ENUM, "Disabled (Fastest),2x (Fast),4x (Average),8x (Slow),16x (Slower)")); root->set_msaa(Viewport::MSAA(msaa_mode)); - const int ssaa_mode = GLOBAL_DEF("rendering/quality/screen_filters/screen_space_aa", 0); - ProjectSettings::get_singleton()->set_custom_property_info("rendering/quality/screen_filters/screen_space_aa", PropertyInfo(Variant::INT, "rendering/quality/screen_filters/screen_space_aa", PROPERTY_HINT_ENUM, "Disabled (Fastest),FXAA (Fast)")); + const int ssaa_mode = GLOBAL_DEF("rendering/anti_aliasing/quality/screen_space_aa", 0); + ProjectSettings::get_singleton()->set_custom_property_info("rendering/anti_aliasing/quality/screen_space_aa", PropertyInfo(Variant::INT, "rendering/anti_aliasing/quality/screen_space_aa", PROPERTY_HINT_ENUM, "Disabled (Fastest),FXAA (Fast)")); root->set_screen_space_aa(Viewport::ScreenSpaceAA(ssaa_mode)); - const bool use_debanding = GLOBAL_DEF("rendering/quality/screen_filters/use_debanding", false); + const bool use_debanding = GLOBAL_DEF("rendering/anti_aliasing/quality/use_debanding", false); root->set_use_debanding(use_debanding); - float lod_threshold = GLOBAL_DEF("rendering/quality/mesh_lod/threshold_pixels", 1.0); - ProjectSettings::get_singleton()->set_custom_property_info("rendering/quality/mesh_lod/threshold_pixels", PropertyInfo(Variant::FLOAT, "rendering/quality/mesh_lod/threshold_pixels", PROPERTY_HINT_RANGE, "0,1024,0.1")); + float lod_threshold = GLOBAL_DEF("rendering/mesh_lod/lod_change/threshold_pixels", 1.0); + ProjectSettings::get_singleton()->set_custom_property_info("rendering/mesh_lod/lod_change/threshold_pixels", PropertyInfo(Variant::FLOAT, "rendering/mesh_lod/lod_change/threshold_pixels", PROPERTY_HINT_RANGE, "0,1024,0.1")); root->set_lod_threshold(lod_threshold); - bool snap_2d_transforms = GLOBAL_DEF("rendering/quality/2d/snap_2d_transforms_to_pixel", false); + bool snap_2d_transforms = GLOBAL_DEF("rendering/2d/snap/snap_2d_transforms_to_pixel", false); root->set_snap_2d_transforms_to_pixel(snap_2d_transforms); - bool snap_2d_vertices = GLOBAL_DEF("rendering/quality/2d/snap_2d_vertices_to_pixel", false); + bool snap_2d_vertices = GLOBAL_DEF("rendering/2d/snap/snap_2d_vertices_to_pixel", false); root->set_snap_2d_vertices_to_pixel(snap_2d_vertices); - int shadowmap_size = GLOBAL_DEF("rendering/quality/shadow_atlas/size", 4096); - ProjectSettings::get_singleton()->set_custom_property_info("rendering/quality/shadow_atlas/size", PropertyInfo(Variant::INT, "rendering/quality/shadow_atlas/size", PROPERTY_HINT_RANGE, "256,16384")); - GLOBAL_DEF("rendering/quality/shadow_atlas/size.mobile", 2048); - bool shadowmap_16_bits = GLOBAL_DEF("rendering/quality/shadow_atlas/16_bits", true); - int atlas_q0 = GLOBAL_DEF("rendering/quality/shadow_atlas/quadrant_0_subdiv", 2); - int atlas_q1 = GLOBAL_DEF("rendering/quality/shadow_atlas/quadrant_1_subdiv", 2); - int atlas_q2 = GLOBAL_DEF("rendering/quality/shadow_atlas/quadrant_2_subdiv", 3); - int atlas_q3 = GLOBAL_DEF("rendering/quality/shadow_atlas/quadrant_3_subdiv", 4); - ProjectSettings::get_singleton()->set_custom_property_info("rendering/quality/shadow_atlas/quadrant_0_subdiv", PropertyInfo(Variant::INT, "rendering/quality/shadow_atlas/quadrant_0_subdiv", PROPERTY_HINT_ENUM, "Disabled,1 Shadow,4 Shadows,16 Shadows,64 Shadows,256 Shadows,1024 Shadows")); - ProjectSettings::get_singleton()->set_custom_property_info("rendering/quality/shadow_atlas/quadrant_1_subdiv", PropertyInfo(Variant::INT, "rendering/quality/shadow_atlas/quadrant_1_subdiv", PROPERTY_HINT_ENUM, "Disabled,1 Shadow,4 Shadows,16 Shadows,64 Shadows,256 Shadows,1024 Shadows")); - ProjectSettings::get_singleton()->set_custom_property_info("rendering/quality/shadow_atlas/quadrant_2_subdiv", PropertyInfo(Variant::INT, "rendering/quality/shadow_atlas/quadrant_2_subdiv", PROPERTY_HINT_ENUM, "Disabled,1 Shadow,4 Shadows,16 Shadows,64 Shadows,256 Shadows,1024 Shadows")); - ProjectSettings::get_singleton()->set_custom_property_info("rendering/quality/shadow_atlas/quadrant_3_subdiv", PropertyInfo(Variant::INT, "rendering/quality/shadow_atlas/quadrant_3_subdiv", PROPERTY_HINT_ENUM, "Disabled,1 Shadow,4 Shadows,16 Shadows,64 Shadows,256 Shadows,1024 Shadows")); + int shadowmap_size = GLOBAL_DEF("rendering/shadows/shadow_atlas/size", 4096); + ProjectSettings::get_singleton()->set_custom_property_info("rendering/shadows/shadow_atlas/size", PropertyInfo(Variant::INT, "rendering/shadows/shadow_atlas/size", PROPERTY_HINT_RANGE, "256,16384")); + GLOBAL_DEF("rendering/shadows/shadow_atlas/size.mobile", 2048); + bool shadowmap_16_bits = GLOBAL_DEF("rendering/shadows/shadow_atlas/16_bits", true); + int atlas_q0 = GLOBAL_DEF("rendering/shadows/shadow_atlas/quadrant_0_subdiv", 2); + int atlas_q1 = GLOBAL_DEF("rendering/shadows/shadow_atlas/quadrant_1_subdiv", 2); + int atlas_q2 = GLOBAL_DEF("rendering/shadows/shadow_atlas/quadrant_2_subdiv", 3); + int atlas_q3 = GLOBAL_DEF("rendering/shadows/shadow_atlas/quadrant_3_subdiv", 4); + ProjectSettings::get_singleton()->set_custom_property_info("rendering/shadows/shadow_atlas/quadrant_0_subdiv", PropertyInfo(Variant::INT, "rendering/shadows/shadow_atlas/quadrant_0_subdiv", PROPERTY_HINT_ENUM, "Disabled,1 Shadow,4 Shadows,16 Shadows,64 Shadows,256 Shadows,1024 Shadows")); + ProjectSettings::get_singleton()->set_custom_property_info("rendering/shadows/shadow_atlas/quadrant_1_subdiv", PropertyInfo(Variant::INT, "rendering/shadows/shadow_atlas/quadrant_1_subdiv", PROPERTY_HINT_ENUM, "Disabled,1 Shadow,4 Shadows,16 Shadows,64 Shadows,256 Shadows,1024 Shadows")); + ProjectSettings::get_singleton()->set_custom_property_info("rendering/shadows/shadow_atlas/quadrant_2_subdiv", PropertyInfo(Variant::INT, "rendering/shadows/shadow_atlas/quadrant_2_subdiv", PROPERTY_HINT_ENUM, "Disabled,1 Shadow,4 Shadows,16 Shadows,64 Shadows,256 Shadows,1024 Shadows")); + ProjectSettings::get_singleton()->set_custom_property_info("rendering/shadows/shadow_atlas/quadrant_3_subdiv", PropertyInfo(Variant::INT, "rendering/shadows/shadow_atlas/quadrant_3_subdiv", PROPERTY_HINT_ENUM, "Disabled,1 Shadow,4 Shadows,16 Shadows,64 Shadows,256 Shadows,1024 Shadows")); root->set_shadow_atlas_size(shadowmap_size); root->set_shadow_atlas_16_bits(shadowmap_16_bits); @@ -1390,13 +1390,13 @@ SceneTree::SceneTree() { root->set_shadow_atlas_quadrant_subdiv(2, Viewport::ShadowAtlasQuadrantSubdiv(atlas_q2)); root->set_shadow_atlas_quadrant_subdiv(3, Viewport::ShadowAtlasQuadrantSubdiv(atlas_q3)); - Viewport::SDFOversize sdf_oversize = Viewport::SDFOversize(int(GLOBAL_DEF("rendering/quality/2d_sdf/oversize", 1))); + Viewport::SDFOversize sdf_oversize = Viewport::SDFOversize(int(GLOBAL_DEF("rendering/2d/sdf/oversize", 1))); root->set_sdf_oversize(sdf_oversize); - Viewport::SDFScale sdf_scale = Viewport::SDFScale(int(GLOBAL_DEF("rendering/quality/2d_sdf/scale", 1))); + Viewport::SDFScale sdf_scale = Viewport::SDFScale(int(GLOBAL_DEF("rendering/2d/sdf/scale", 1))); root->set_sdf_scale(sdf_scale); - ProjectSettings::get_singleton()->set_custom_property_info("rendering/quality/2d_sdf/oversize", PropertyInfo(Variant::INT, "rendering/quality/2d_sdf/oversize", PROPERTY_HINT_ENUM, "100%,120%,150%,200%")); - ProjectSettings::get_singleton()->set_custom_property_info("rendering/quality/2d_sdf/scale", PropertyInfo(Variant::INT, "rendering/quality/2d_sdf/scale", PROPERTY_HINT_ENUM, "100%,50%,25%")); + ProjectSettings::get_singleton()->set_custom_property_info("rendering/2d/sdf/oversize", PropertyInfo(Variant::INT, "rendering/2d/sdf/oversize", PROPERTY_HINT_ENUM, "100%,120%,150%,200%")); + ProjectSettings::get_singleton()->set_custom_property_info("rendering/2d/sdf/scale", PropertyInfo(Variant::INT, "rendering/2d/sdf/scale", PROPERTY_HINT_ENUM, "100%,50%,25%")); { // Load default fallback environment. // Get possible extensions. @@ -1410,9 +1410,9 @@ SceneTree::SceneTree() { ext_hint += "*." + E->get(); } // Get path. - String env_path = GLOBAL_DEF("rendering/environment/default_environment", ""); + String env_path = GLOBAL_DEF("rendering/environment/defaults/default_environment", ""); // Setup property. - ProjectSettings::get_singleton()->set_custom_property_info("rendering/environment/default_environment", PropertyInfo(Variant::STRING, "rendering/viewport/default_environment", PROPERTY_HINT_FILE, ext_hint)); + ProjectSettings::get_singleton()->set_custom_property_info("rendering/environment/defaults/default_environment", PropertyInfo(Variant::STRING, "rendering/viewport/default_environment", PROPERTY_HINT_FILE, ext_hint)); env_path = env_path.strip_edges(); if (env_path != String()) { Ref<Environment> env = ResourceLoader::load(env_path); @@ -1421,7 +1421,7 @@ SceneTree::SceneTree() { } else { if (Engine::get_singleton()->is_editor_hint()) { // File was erased, clear the field. - ProjectSettings::get_singleton()->set("rendering/environment/default_environment", ""); + ProjectSettings::get_singleton()->set("rendering/environment/defaults/default_environment", ""); } else { // File was erased, notify user. ERR_PRINT(RTR("Default Environment as specified in Project Settings (Rendering -> Environment -> Default Environment) could not be loaded.")); diff --git a/scene/main/window.cpp b/scene/main/window.cpp index f39823736b..fc9bbeab94 100644 --- a/scene/main/window.cpp +++ b/scene/main/window.cpp @@ -1283,14 +1283,14 @@ bool Window::is_layout_rtl() const { if (parent) { return parent->is_layout_rtl(); } else { - if (GLOBAL_GET("display/window/force_right_to_left_layout_direction")) { + if (GLOBAL_GET("internationalization/rendering/force_right_to_left_layout_direction")) { return true; } String locale = TranslationServer::get_singleton()->get_tool_locale(); return TS->is_locale_right_to_left(locale); } } else if (layout_dir == LAYOUT_DIRECTION_LOCALE) { - if (GLOBAL_GET("display/window/force_right_to_left_layout_direction")) { + if (GLOBAL_GET("internationalization/rendering/force_right_to_left_layout_direction")) { return true; } String locale = TranslationServer::get_singleton()->get_tool_locale(); diff --git a/scene/register_scene_types.cpp b/scene/register_scene_types.cpp index b14c44689e..51d4643883 100644 --- a/scene/register_scene_types.cpp +++ b/scene/register_scene_types.cpp @@ -948,10 +948,10 @@ void register_scene_types() { OS::get_singleton()->yield(); //may take time to init for (int i = 0; i < 20; i++) { - GLOBAL_DEF(vformat("layer_names/2d_render/layer_%d", i), ""); - GLOBAL_DEF(vformat("layer_names/2d_physics/layer_%d", i), ""); - GLOBAL_DEF(vformat("layer_names/3d_render/layer_%d", i), ""); - GLOBAL_DEF(vformat("layer_names/3d_physics/layer_%d", i), ""); + GLOBAL_DEF_BASIC(vformat("layer_names/2d_render/layer_%d", i), ""); + GLOBAL_DEF_BASIC(vformat("layer_names/2d_physics/layer_%d", i), ""); + GLOBAL_DEF_BASIC(vformat("layer_names/3d_render/layer_%d", i), ""); + GLOBAL_DEF_BASIC(vformat("layer_names/3d_physics/layer_%d", i), ""); } bool default_theme_hidpi = GLOBAL_DEF("gui/theme/use_hidpi", false); diff --git a/scene/resources/font.cpp b/scene/resources/font.cpp index b4773adc6f..702f2ed1c8 100644 --- a/scene/resources/font.cpp +++ b/scene/resources/font.cpp @@ -828,6 +828,8 @@ Size2 Font::get_multiline_string_size(const String &p_text, float p_width, int p } void Font::draw_string(RID p_canvas_item, const Point2 &p_pos, const String &p_text, HAlign p_align, float p_width, int p_size, const Color &p_modulate, int p_outline_size, const Color &p_outline_modulate, uint8_t p_flags) const { + ERR_FAIL_COND(data.is_empty()); + uint64_t hash = p_text.hash64(); hash = hash_djb2_one_64(p_size, hash); @@ -858,6 +860,8 @@ void Font::draw_string(RID p_canvas_item, const Point2 &p_pos, const String &p_t } void Font::draw_multiline_string(RID p_canvas_item, const Point2 &p_pos, const String &p_text, HAlign p_align, float p_width, int p_max_lines, int p_size, const Color &p_modulate, int p_outline_size, const Color &p_outline_modulate, uint8_t p_flags) const { + ERR_FAIL_COND(data.is_empty()); + uint64_t hash = p_text.hash64(); hash = hash_djb2_one_64(p_size, hash); diff --git a/scene/resources/style_box.cpp b/scene/resources/style_box.cpp index 8e47c1c15c..9b80224c3f 100644 --- a/scene/resources/style_box.cpp +++ b/scene/resources/style_box.cpp @@ -937,8 +937,17 @@ void StyleBoxLine::_bind_methods() { } float StyleBoxLine::get_style_margin(Side p_side) const { - ERR_FAIL_INDEX_V((int)p_side, 4, thickness); - return thickness; + ERR_FAIL_INDEX_V((int)p_side, 4, 0); + + if (vertical) { + if (p_side == SIDE_LEFT || p_side == SIDE_RIGHT) { + return thickness / 2.0; + } + } else if (p_side == SIDE_TOP || p_side == SIDE_BOTTOM) { + return thickness / 2.0; + } + + return 0; } Size2 StyleBoxLine::get_center_size() const { diff --git a/scene/resources/surface_tool.cpp b/scene/resources/surface_tool.cpp index 5ce3532d42..47933bd69a 100644 --- a/scene/resources/surface_tool.cpp +++ b/scene/resources/surface_tool.cpp @@ -299,6 +299,7 @@ void SurfaceTool::add_triangle_fan(const Vector<Vector3> &p_vertices, const Vect void SurfaceTool::add_index(int p_index) { ERR_FAIL_COND(!begun); + ERR_FAIL_COND(p_index < 0); format |= Mesh::ARRAY_FORMAT_INDEX; index_array.push_back(p_index); diff --git a/scene/resources/text_line.cpp b/scene/resources/text_line.cpp index ed69c093cf..925867a1f2 100644 --- a/scene/resources/text_line.cpp +++ b/scene/resources/text_line.cpp @@ -167,6 +167,7 @@ void TextLine::set_bidi_override(const Vector<Vector2i> &p_override) { } bool TextLine::add_string(const String &p_text, const Ref<Font> &p_fonts, int p_size, const Dictionary &p_opentype_features, const String &p_language) { + ERR_FAIL_COND_V(p_fonts.is_null(), false); bool res = TS->shaped_text_add_string(rid, p_text, p_fonts->get_rids(), p_size, p_opentype_features, p_language); spacing_top = p_fonts->get_spacing(Font::SPACING_TOP); spacing_bottom = p_fonts->get_spacing(Font::SPACING_BOTTOM); diff --git a/scene/resources/text_paragraph.cpp b/scene/resources/text_paragraph.cpp index 94957df510..444a4bb22a 100644 --- a/scene/resources/text_paragraph.cpp +++ b/scene/resources/text_paragraph.cpp @@ -243,6 +243,7 @@ TextServer::Orientation TextParagraph::get_orientation() const { } bool TextParagraph::set_dropcap(const String &p_text, const Ref<Font> &p_fonts, int p_size, const Rect2 &p_dropcap_margins, const Dictionary &p_opentype_features, const String &p_language) { + ERR_FAIL_COND_V(p_fonts.is_null(), false); TS->shaped_text_clear(dropcap_rid); dropcap_margins = p_dropcap_margins; bool res = TS->shaped_text_add_string(dropcap_rid, p_text, p_fonts->get_rids(), p_size, p_opentype_features, p_language); @@ -257,6 +258,7 @@ void TextParagraph::clear_dropcap() { } bool TextParagraph::add_string(const String &p_text, const Ref<Font> &p_fonts, int p_size, const Dictionary &p_opentype_features, const String &p_language) { + ERR_FAIL_COND_V(p_fonts.is_null(), false); bool res = TS->shaped_text_add_string(rid, p_text, p_fonts->get_rids(), p_size, p_opentype_features, p_language); spacing_top = p_fonts->get_spacing(Font::SPACING_TOP); spacing_bottom = p_fonts->get_spacing(Font::SPACING_BOTTOM); diff --git a/scene/resources/visual_shader.cpp b/scene/resources/visual_shader.cpp index 438e130cf4..d8e63e47be 100644 --- a/scene/resources/visual_shader.cpp +++ b/scene/resources/visual_shader.cpp @@ -675,6 +675,8 @@ void VisualShader::get_node_connections(Type p_type, List<Connection> *r_connect } void VisualShader::set_mode(Mode p_mode) { + ERR_FAIL_INDEX_MSG(p_mode, Mode::MODE_MAX, vformat("Invalid shader mode: %d.", p_mode)); + if (shader_mode == p_mode) { return; } @@ -1398,11 +1400,11 @@ bool VisualShader::has_func_name(RenderingServer::ShaderMode p_mode, const Strin } void VisualShader::_update_shader() const { - if (!dirty) { + if (!dirty.is_set()) { return; } - dirty = false; + dirty.clear(); StringBuilder global_code; StringBuilder global_code_per_node; @@ -1588,11 +1590,11 @@ void VisualShader::_update_shader() const { } void VisualShader::_queue_update() { - if (dirty) { + if (dirty.is_set()) { return; } - dirty = true; + dirty.set(); call_deferred("_update_shader"); } @@ -1612,7 +1614,7 @@ void VisualShader::_input_type_changed(Type p_type, int p_id) { } void VisualShader::rebuild() { - dirty = true; + dirty.set(); _update_shader(); } @@ -1666,6 +1668,7 @@ void VisualShader::_bind_methods() { } VisualShader::VisualShader() { + dirty.set(); for (int i = 0; i < TYPE_MAX; i++) { Ref<VisualShaderNodeOutput> output; output.instance(); diff --git a/scene/resources/visual_shader.h b/scene/resources/visual_shader.h index f3f3caf15e..ef724c7650 100644 --- a/scene/resources/visual_shader.h +++ b/scene/resources/visual_shader.h @@ -32,6 +32,7 @@ #define VISUAL_SHADER_H #include "core/string/string_builder.h" +#include "core/templates/safe_refcount.h" #include "scene/gui/control.h" #include "scene/resources/shader.h" @@ -99,7 +100,7 @@ private: static RenderModeEnums render_mode_enums[]; - volatile mutable bool dirty = true; + mutable SafeFlag dirty; void _queue_update(); union ConnectionKey { diff --git a/servers/audio/audio_driver_dummy.cpp b/servers/audio/audio_driver_dummy.cpp index faddced155..a28dcb1015 100644 --- a/servers/audio/audio_driver_dummy.cpp +++ b/servers/audio/audio_driver_dummy.cpp @@ -39,11 +39,11 @@ Error AudioDriverDummy::init() { exit_thread = false; samples_in = nullptr; - mix_rate = GLOBAL_GET("audio/mix_rate"); + mix_rate = GLOBAL_GET("audio/driver/mix_rate"); speaker_mode = SPEAKER_MODE_STEREO; channels = 2; - int latency = GLOBAL_GET("audio/output_latency"); + int latency = GLOBAL_GET("audio/driver/output_latency"); buffer_frames = closest_power_of_2(latency * mix_rate / 1000); samples_in = memnew_arr(int32_t, buffer_frames * channels); diff --git a/servers/audio/audio_rb_resampler.cpp b/servers/audio/audio_rb_resampler.cpp index efdcb916ed..3c8a1469cd 100644 --- a/servers/audio/audio_rb_resampler.cpp +++ b/servers/audio/audio_rb_resampler.cpp @@ -131,7 +131,7 @@ bool AudioRBResampler::mix(AudioFrame *p_dest, int p_frames) { src_read = read_space; } - rb_read_pos = (rb_read_pos + src_read) & rb_mask; + rb_read_pos.set((rb_read_pos.get() + src_read) & rb_mask); // Create fadeout effect for the end of stream (note that it can be because of slow writer) if (p_frames - target_todo > 0) { @@ -183,8 +183,8 @@ Error AudioRBResampler::setup(int p_channels, int p_src_mix_rate, int p_target_m src_mix_rate = p_src_mix_rate; target_mix_rate = p_target_mix_rate; offset = 0; - rb_read_pos = 0; - rb_write_pos = 0; + rb_read_pos.set(0); + rb_write_pos.set(0); //avoid maybe strange noises upon load for (unsigned int i = 0; i < (rb_len * channels); i++) { @@ -205,8 +205,8 @@ void AudioRBResampler::clear() { memdelete_arr(read_buf); rb = nullptr; offset = 0; - rb_read_pos = 0; - rb_write_pos = 0; + rb_read_pos.set(0); + rb_write_pos.set(0); read_buf = nullptr; } @@ -214,8 +214,8 @@ AudioRBResampler::AudioRBResampler() { rb = nullptr; offset = 0; read_buf = nullptr; - rb_read_pos = 0; - rb_write_pos = 0; + rb_read_pos.set(0); + rb_write_pos.set(0); rb_bits = 0; rb_len = 0; diff --git a/servers/audio/audio_rb_resampler.h b/servers/audio/audio_rb_resampler.h index 7b74e3a2a1..c0f981704b 100644 --- a/servers/audio/audio_rb_resampler.h +++ b/servers/audio/audio_rb_resampler.h @@ -32,6 +32,7 @@ #define AUDIO_RB_RESAMPLER_H #include "core/os/memory.h" +#include "core/templates/safe_refcount.h" #include "core/typedefs.h" #include "servers/audio_server.h" @@ -44,8 +45,8 @@ struct AudioRBResampler { uint32_t src_mix_rate; uint32_t target_mix_rate; - volatile int rb_read_pos; - volatile int rb_write_pos; + SafeNumeric<int> rb_read_pos; + SafeNumeric<int> rb_write_pos; int32_t offset; //contains the fractional remainder of the resampler enum { @@ -62,8 +63,8 @@ struct AudioRBResampler { public: _FORCE_INLINE_ void flush() { - rb_read_pos = 0; - rb_write_pos = 0; + rb_read_pos.set(0); + rb_write_pos.set(0); offset = 0; } @@ -78,8 +79,8 @@ public: _FORCE_INLINE_ int get_writer_space() const { int space, r, w; - r = rb_read_pos; - w = rb_write_pos; + r = rb_read_pos.get(); + w = rb_write_pos.get(); if (r == w) { space = rb_len - 1; @@ -95,8 +96,8 @@ public: _FORCE_INLINE_ int get_reader_space() const { int space, r, w; - r = rb_read_pos; - w = rb_write_pos; + r = rb_read_pos.get(); + w = rb_write_pos.get(); if (r == w) { space = 0; @@ -110,48 +111,52 @@ public: } _FORCE_INLINE_ bool has_data() const { - return rb && rb_read_pos != rb_write_pos; + return rb && rb_read_pos.get() != rb_write_pos.get(); } _FORCE_INLINE_ float *get_write_buffer() { return read_buf; } _FORCE_INLINE_ void write(uint32_t p_frames) { ERR_FAIL_COND(p_frames >= rb_len); + int wp = rb_write_pos.get(); + switch (channels) { case 1: { for (uint32_t i = 0; i < p_frames; i++) { - rb[rb_write_pos] = read_buf[i]; - rb_write_pos = (rb_write_pos + 1) & rb_mask; + rb[wp] = read_buf[i]; + wp = (wp + 1) & rb_mask; } } break; case 2: { for (uint32_t i = 0; i < p_frames; i++) { - rb[(rb_write_pos << 1) + 0] = read_buf[(i << 1) + 0]; - rb[(rb_write_pos << 1) + 1] = read_buf[(i << 1) + 1]; - rb_write_pos = (rb_write_pos + 1) & rb_mask; + rb[(wp << 1) + 0] = read_buf[(i << 1) + 0]; + rb[(wp << 1) + 1] = read_buf[(i << 1) + 1]; + wp = (wp + 1) & rb_mask; } } break; case 4: { for (uint32_t i = 0; i < p_frames; i++) { - rb[(rb_write_pos << 2) + 0] = read_buf[(i << 2) + 0]; - rb[(rb_write_pos << 2) + 1] = read_buf[(i << 2) + 1]; - rb[(rb_write_pos << 2) + 2] = read_buf[(i << 2) + 2]; - rb[(rb_write_pos << 2) + 3] = read_buf[(i << 2) + 3]; - rb_write_pos = (rb_write_pos + 1) & rb_mask; + rb[(wp << 2) + 0] = read_buf[(i << 2) + 0]; + rb[(wp << 2) + 1] = read_buf[(i << 2) + 1]; + rb[(wp << 2) + 2] = read_buf[(i << 2) + 2]; + rb[(wp << 2) + 3] = read_buf[(i << 2) + 3]; + wp = (wp + 1) & rb_mask; } } break; case 6: { for (uint32_t i = 0; i < p_frames; i++) { - rb[(rb_write_pos * 6) + 0] = read_buf[(i * 6) + 0]; - rb[(rb_write_pos * 6) + 1] = read_buf[(i * 6) + 1]; - rb[(rb_write_pos * 6) + 2] = read_buf[(i * 6) + 2]; - rb[(rb_write_pos * 6) + 3] = read_buf[(i * 6) + 3]; - rb[(rb_write_pos * 6) + 4] = read_buf[(i * 6) + 4]; - rb[(rb_write_pos * 6) + 5] = read_buf[(i * 6) + 5]; - rb_write_pos = (rb_write_pos + 1) & rb_mask; + rb[(wp * 6) + 0] = read_buf[(i * 6) + 0]; + rb[(wp * 6) + 1] = read_buf[(i * 6) + 1]; + rb[(wp * 6) + 2] = read_buf[(i * 6) + 2]; + rb[(wp * 6) + 3] = read_buf[(i * 6) + 3]; + rb[(wp * 6) + 4] = read_buf[(i * 6) + 4]; + rb[(wp * 6) + 5] = read_buf[(i * 6) + 5]; + wp = (wp + 1) & rb_mask; } } break; } + + rb_write_pos.set(wp); } int get_channel_count() const; diff --git a/servers/audio/audio_stream.cpp b/servers/audio/audio_stream.cpp index 91fce5d34e..49ac78fad8 100644 --- a/servers/audio/audio_stream.cpp +++ b/servers/audio/audio_stream.cpp @@ -184,7 +184,7 @@ void AudioStreamPlaybackMicrophone::start(float p_from_pos) { return; } - if (!GLOBAL_GET("audio/enable_audio_input")) { + if (!GLOBAL_GET("audio/driver/enable_input")) { WARN_PRINT("Need to enable Project settings > Audio > Enable Audio Input option to use capturing."); return; } diff --git a/servers/audio/effects/audio_effect_capture.cpp b/servers/audio/effects/audio_effect_capture.cpp index f37938eec8..37e4122e50 100644 --- a/servers/audio/effects/audio_effect_capture.cpp +++ b/servers/audio/effects/audio_effect_capture.cpp @@ -106,7 +106,7 @@ int AudioEffectCapture::get_frames_available() const { } int64_t AudioEffectCapture::get_discarded_frames() const { - return discarded_frames; + return discarded_frames.get(); } int AudioEffectCapture::get_buffer_length_frames() const { @@ -115,7 +115,7 @@ int AudioEffectCapture::get_buffer_length_frames() const { } int64_t AudioEffectCapture::get_pushed_frames() const { - return pushed_frames; + return pushed_frames.get(); } void AudioEffectCaptureInstance::process(const AudioFrame *p_src_frames, AudioFrame *p_dst_frames, int p_frame_count) { @@ -129,9 +129,9 @@ void AudioEffectCaptureInstance::process(const AudioFrame *p_src_frames, AudioFr // Add incoming audio frames to the IO ring buffer int32_t ret = buffer.write(p_src_frames, p_frame_count); ERR_FAIL_COND_MSG(ret != p_frame_count, "Failed to add data to effect capture ring buffer despite sufficient space."); - atomic_add(&base->pushed_frames, p_frame_count); + base->pushed_frames.add(p_frame_count); } else { - atomic_add(&base->discarded_frames, p_frame_count); + base->discarded_frames.add(p_frame_count); } } diff --git a/servers/audio/effects/audio_effect_capture.h b/servers/audio/effects/audio_effect_capture.h index b154be85de..81d4ed6b0f 100644 --- a/servers/audio/effects/audio_effect_capture.h +++ b/servers/audio/effects/audio_effect_capture.h @@ -55,8 +55,8 @@ class AudioEffectCapture : public AudioEffect { friend class AudioEffectCaptureInstance; RingBuffer<AudioFrame> buffer; - uint64_t discarded_frames = 0; - uint64_t pushed_frames = 0; + SafeNumeric<uint64_t> discarded_frames; + SafeNumeric<uint64_t> pushed_frames; float buffer_length_seconds = 0.1f; bool buffer_initialized = false; diff --git a/servers/audio_server.cpp b/servers/audio_server.cpp index 16c6a26595..138cb6e1f8 100644 --- a/servers/audio_server.cpp +++ b/servers/audio_server.cpp @@ -188,10 +188,10 @@ int AudioDriverManager::get_driver_count() { } void AudioDriverManager::initialize(int p_driver) { - GLOBAL_DEF_RST("audio/enable_audio_input", false); - GLOBAL_DEF_RST("audio/mix_rate", DEFAULT_MIX_RATE); - GLOBAL_DEF_RST("audio/output_latency", DEFAULT_OUTPUT_LATENCY); - GLOBAL_DEF_RST("audio/output_latency.web", 50); // Safer default output_latency for web. + GLOBAL_DEF_RST("audio/driver/enable_input", false); + GLOBAL_DEF_RST("audio/driver/mix_rate", DEFAULT_MIX_RATE); + GLOBAL_DEF_RST("audio/driver/output_latency", DEFAULT_OUTPUT_LATENCY); + GLOBAL_DEF_RST("audio/driver/output_latency.web", 50); // Safer default output_latency for web. int failed_driver = -1; @@ -939,9 +939,9 @@ void AudioServer::init_channels_and_buffers() { } void AudioServer::init() { - channel_disable_threshold_db = GLOBAL_DEF_RST("audio/channel_disable_threshold_db", -60.0); - channel_disable_frames = float(GLOBAL_DEF_RST("audio/channel_disable_time", 2.0)) * get_mix_rate(); - ProjectSettings::get_singleton()->set_custom_property_info("audio/channel_disable_time", PropertyInfo(Variant::FLOAT, "audio/channel_disable_time", PROPERTY_HINT_RANGE, "0,5,0.01,or_greater")); + channel_disable_threshold_db = GLOBAL_DEF_RST("audio/buses/channel_disable_threshold_db", -60.0); + channel_disable_frames = float(GLOBAL_DEF_RST("audio/buses/channel_disable_time", 2.0)) * get_mix_rate(); + ProjectSettings::get_singleton()->set_custom_property_info("audio/buses/channel_disable_time", PropertyInfo(Variant::FLOAT, "audio/buses/channel_disable_time", PROPERTY_HINT_RANGE, "0,5,0.01,or_greater")); buffer_size = 1024; //hardcoded for now init_channels_and_buffers(); @@ -958,7 +958,7 @@ void AudioServer::init() { set_edited(false); //avoid editors from thinking this was edited #endif - GLOBAL_DEF_RST("audio/video_delay_compensation_ms", 0); + GLOBAL_DEF_RST("audio/video/video_delay_compensation_ms", 0); } void AudioServer::update() { @@ -1035,7 +1035,7 @@ void AudioServer::update() { } void AudioServer::load_default_bus_layout() { - String layout_path = ProjectSettings::get_singleton()->get("audio/default_bus_layout"); + String layout_path = ProjectSettings::get_singleton()->get("audio/buses/default_bus_layout"); if (ResourceLoader::exists(layout_path)) { Ref<AudioBusLayout> default_layout = ResourceLoader::load(layout_path); diff --git a/servers/display_server.cpp b/servers/display_server.cpp index 29c1c9fc60..833bae7447 100644 --- a/servers/display_server.cpp +++ b/servers/display_server.cpp @@ -504,6 +504,11 @@ void DisplayServer::_bind_methods() { ClassDB::bind_method(D_METHOD("set_native_icon", "filename"), &DisplayServer::set_native_icon); ClassDB::bind_method(D_METHOD("set_icon", "image"), &DisplayServer::set_icon); + ClassDB::bind_method(D_METHOD("tablet_get_driver_count"), &DisplayServer::tablet_get_driver_count); + ClassDB::bind_method(D_METHOD("tablet_get_driver_name", "idx"), &DisplayServer::tablet_get_driver_name); + ClassDB::bind_method(D_METHOD("tablet_get_current_driver"), &DisplayServer::tablet_get_current_driver); + ClassDB::bind_method(D_METHOD("tablet_set_current_driver", "name"), &DisplayServer::tablet_set_current_driver); + BIND_ENUM_CONSTANT(FEATURE_GLOBAL_MENU); BIND_ENUM_CONSTANT(FEATURE_SUBWINDOWS); BIND_ENUM_CONSTANT(FEATURE_TOUCHSCREEN); diff --git a/servers/display_server.h b/servers/display_server.h index 59f59531ec..3aab572120 100644 --- a/servers/display_server.h +++ b/servers/display_server.h @@ -340,6 +340,11 @@ public: virtual String keyboard_get_layout_language(int p_index) const; virtual String keyboard_get_layout_name(int p_index) const; + virtual int tablet_get_driver_count() const { return 1; }; + virtual String tablet_get_driver_name(int p_driver) const { return "default"; }; + virtual String tablet_get_current_driver() const { return "default"; }; + virtual void tablet_set_current_driver(const String &p_driver){}; + virtual void process_events() = 0; virtual void force_process_and_drop_events(); diff --git a/servers/physics_2d/physics_server_2d_wrap_mt.cpp b/servers/physics_2d/physics_server_2d_wrap_mt.cpp index c2557d8f7f..790c87cc44 100644 --- a/servers/physics_2d/physics_server_2d_wrap_mt.cpp +++ b/servers/physics_2d/physics_server_2d_wrap_mt.cpp @@ -33,7 +33,7 @@ #include "core/os/os.h" void PhysicsServer2DWrapMT::thread_exit() { - exit = true; + exit.set(); } void PhysicsServer2DWrapMT::thread_step(real_t p_delta) { @@ -52,9 +52,9 @@ void PhysicsServer2DWrapMT::thread_loop() { physics_2d_server->init(); - exit = false; - step_thread_up = true; - while (!exit) { + exit.clear(); + step_thread_up.set(); + while (!exit.is_set()) { // flush commands one by one, until exit is requested command_queue.wait_and_flush_one(); } @@ -98,7 +98,7 @@ void PhysicsServer2DWrapMT::init() { if (create_thread) { //OS::get_singleton()->release_rendering_thread(); thread.start(_thread_callback, this); - while (!step_thread_up) { + while (!step_thread_up.is_set()) { OS::get_singleton()->delay_usec(1000); } } else { @@ -120,7 +120,6 @@ PhysicsServer2DWrapMT::PhysicsServer2DWrapMT(PhysicsServer2D *p_contained, bool physics_2d_server = p_contained; create_thread = p_create_thread; step_pending = 0; - step_thread_up = false; pool_max_size = GLOBAL_GET("memory/limits/multithreaded_server/rid_pool_prealloc"); diff --git a/servers/physics_2d/physics_server_2d_wrap_mt.h b/servers/physics_2d/physics_server_2d_wrap_mt.h index a6f0b1d4f1..3577f706de 100644 --- a/servers/physics_2d/physics_server_2d_wrap_mt.h +++ b/servers/physics_2d/physics_server_2d_wrap_mt.h @@ -34,6 +34,7 @@ #include "core/config/project_settings.h" #include "core/os/thread.h" #include "core/templates/command_queue_mt.h" +#include "core/templates/safe_refcount.h" #include "servers/physics_server_2d.h" #ifdef DEBUG_SYNC @@ -52,9 +53,9 @@ class PhysicsServer2DWrapMT : public PhysicsServer2D { Thread::ID server_thread; Thread::ID main_thread; - volatile bool exit; + SafeFlag exit; Thread thread; - volatile bool step_thread_up; + SafeFlag step_thread_up; bool create_thread; Semaphore step_sem; diff --git a/servers/physics_2d/space_2d_sw.cpp b/servers/physics_2d/space_2d_sw.cpp index 05136e2501..9cbc01d1d3 100644 --- a/servers/physics_2d/space_2d_sw.cpp +++ b/servers/physics_2d/space_2d_sw.cpp @@ -376,6 +376,7 @@ struct _RestCallbackData2D { Vector2 best_normal; real_t best_len; Vector2 valid_dir; + real_t valid_depth; real_t min_allowed_depth; }; @@ -385,22 +386,24 @@ static void _rest_cbk_result(const Vector2 &p_point_A, const Vector2 &p_point_B, Vector2 contact_rel = p_point_B - p_point_A; real_t len = contact_rel.length(); - if (len == 0) { + if (len < rd->min_allowed_depth) { return; } - Vector2 normal = contact_rel / len; - - if (rd->valid_dir != Vector2() && rd->valid_dir.dot(normal) > -CMP_EPSILON) { + if (len <= rd->best_len) { return; } - if (len < rd->min_allowed_depth) { - return; - } + Vector2 normal = contact_rel / len; - if (len <= rd->best_len) { - return; + if (rd->valid_dir != Vector2()) { + if (len > rd->valid_depth) { + return; + } + + if (rd->valid_dir.dot(normal) > -CMP_EPSILON) { + return; + } } rd->best_len = len; @@ -739,10 +742,13 @@ bool Space2DSW::test_body_motion(Body2DSW *p_body, const Transform2D &p_from, co ExcludedShapeSW excluded_shape_pairs[max_excluded_shape_pairs]; int excluded_shape_pair_count = 0; - real_t separation_margin = MIN(p_margin, MAX(0.0, p_motion.length() - CMP_EPSILON)); //don't separate by more than the intended motion + real_t motion_length = p_motion.length(); + Vector2 motion_normal = p_motion / motion_length; Transform2D body_transform = p_from; + bool recovered = false; + { //STEP 1, FREE BODY IF STUCK @@ -819,7 +825,7 @@ bool Space2DSW::test_body_motion(Body2DSW *p_body, const Transform2D &p_from, co bool did_collide = false; Shape2DSW *against_shape = col_obj->get_shape(shape_idx); - if (CollisionSolver2DSW::solve(body_shape, body_shape_xform, Vector2(), against_shape, col_obj_shape_xform, Vector2(), cbkres, cbkptr, nullptr, separation_margin)) { + if (CollisionSolver2DSW::solve(body_shape, body_shape_xform, Vector2(), against_shape, col_obj_shape_xform, Vector2(), cbkres, cbkptr, nullptr, p_margin)) { did_collide = cbk.passed > current_passed; //more passed, so collision actually existed } @@ -845,11 +851,20 @@ bool Space2DSW::test_body_motion(Body2DSW *p_body, const Transform2D &p_from, co } Vector2 recover_motion; - for (int i = 0; i < cbk.amount; i++) { Vector2 a = sr[i * 2 + 0]; Vector2 b = sr[i * 2 + 1]; - recover_motion += (b - a) / cbk.amount; + + // Compute plane on b towards a. + Vector2 n = (a - b).normalized(); + real_t d = n.dot(b); + + // Compute depth on recovered motion. + real_t depth = n.dot(a + recover_motion) - d; + if (depth > 0.0) { + // Only recover if there is penetration. + recover_motion -= n * depth * 0.4; + } } if (recover_motion == Vector2()) { @@ -857,6 +872,8 @@ bool Space2DSW::test_body_motion(Body2DSW *p_body, const Transform2D &p_from, co break; } + recovered = true; + body_transform.elements[2] += recover_motion; body_aabb.position += recover_motion; @@ -929,7 +946,10 @@ bool Space2DSW::test_body_motion(Body2DSW *p_body, const Transform2D &p_from, co //test initial overlap if (CollisionSolver2DSW::solve(body_shape, body_shape_xform, Vector2(), against_shape, col_obj_shape_xform, Vector2(), nullptr, nullptr, nullptr, 0)) { if (col_obj->is_shape_set_as_one_way_collision(col_shape_idx)) { - continue; + Vector2 direction = col_obj_shape_xform.get_axis(1).normalized(); + if (motion_normal.dot(direction) < 0) { + continue; + } } stuck = true; @@ -939,13 +959,12 @@ bool Space2DSW::test_body_motion(Body2DSW *p_body, const Transform2D &p_from, co //just do kinematic solving real_t low = 0; real_t hi = 1; - Vector2 mnormal = p_motion.normalized(); for (int k = 0; k < 8; k++) { //steps should be customizable.. real_t ofs = (low + hi) * 0.5; - Vector2 sep = mnormal; //important optimization for this to work fast enough + Vector2 sep = motion_normal; //important optimization for this to work fast enough bool collided = CollisionSolver2DSW::solve(body_shape, body_shape_xform, p_motion * ofs, against_shape, col_obj_shape_xform, Vector2(), nullptr, nullptr, &sep, 0); if (collided) { @@ -966,7 +985,7 @@ bool Space2DSW::test_body_motion(Body2DSW *p_body, const Transform2D &p_from, co cbk.valid_depth = 10e20; - Vector2 sep = mnormal; //important optimization for this to work fast enough + Vector2 sep = motion_normal; //important optimization for this to work fast enough bool collided = CollisionSolver2DSW::solve(body_shape, body_shape_xform, p_motion * (hi + contact_max_allowed_penetration), col_obj->get_shape(col_shape_idx), col_obj_shape_xform, Vector2(), PhysicsServer2DSW::_shape_col_cbk, &cbk, &sep, 0); if (!collided || cbk.amount == 0) { continue; @@ -997,11 +1016,12 @@ bool Space2DSW::test_body_motion(Body2DSW *p_body, const Transform2D &p_from, co } bool collided = false; - if (safe >= 1) { - best_shape = -1; //no best shape with cast, reset to -1 - } - if (safe < 1) { + if (recovered || (safe < 1)) { + if (safe >= 1) { + best_shape = -1; //no best shape with cast, reset to -1 + } + //it collided, let's get the rest info in unsafe advance Transform2D ugt = body_transform; ugt.elements[2] += p_motion * unsafe; @@ -1010,9 +1030,10 @@ bool Space2DSW::test_body_motion(Body2DSW *p_body, const Transform2D &p_from, co rcd.best_len = 0; rcd.best_object = nullptr; rcd.best_shape = 0; - rcd.min_allowed_depth = test_motion_min_contact_depth; - //optimization + // Allowed depth can't be lower than motion length, in order to handle contacts at low speed. + rcd.min_allowed_depth = MIN(motion_length, test_motion_min_contact_depth); + int from_shape = best_shape != -1 ? best_shape : 0; int to_shape = best_shape != -1 ? best_shape + 1 : p_body->get_shape_count(); @@ -1060,8 +1081,25 @@ bool Space2DSW::test_body_motion(Body2DSW *p_body, const Transform2D &p_from, co if (col_obj->is_shape_set_as_one_way_collision(shape_idx)) { rcd.valid_dir = col_obj_shape_xform.get_axis(1).normalized(); + + real_t owc_margin = col_obj->get_shape_one_way_collision_margin(shape_idx); + rcd.valid_depth = MAX(owc_margin, p_margin); //user specified, but never less than actual margin or it won't work + + if (col_obj->get_type() == CollisionObject2DSW::TYPE_BODY) { + const Body2DSW *b = static_cast<const Body2DSW *>(col_obj); + if (b->get_mode() == PhysicsServer2D::BODY_MODE_KINEMATIC || b->get_mode() == PhysicsServer2D::BODY_MODE_RIGID) { + //fix for moving platforms (kinematic and dynamic), margin is increased by how much it moved in the given direction + Vector2 lv = b->get_linear_velocity(); + //compute displacement from linear velocity + Vector2 motion = lv * PhysicsDirectBodyState2DSW::singleton->step; + real_t motion_len = motion.length(); + motion.normalize(); + rcd.valid_depth += motion_len * MAX(motion.dot(-rcd.valid_dir), 0.0); + } + } } else { rcd.valid_dir = Vector2(); + rcd.valid_depth = 0; } rcd.object = col_obj; diff --git a/servers/physics_3d/space_3d_sw.cpp b/servers/physics_3d/space_3d_sw.cpp index 40537c7001..dd5754b9ac 100644 --- a/servers/physics_3d/space_3d_sw.cpp +++ b/servers/physics_3d/space_3d_sw.cpp @@ -384,6 +384,8 @@ bool PhysicsDirectSpaceState3DSW::collide_shape(RID p_shape, const Transform &p_ struct _RestCallbackData { const CollisionObject3DSW *object; const CollisionObject3DSW *best_object; + int local_shape; + int best_local_shape; int shape; int best_shape; Vector3 best_contact; @@ -409,6 +411,7 @@ static void _rest_cbk_result(const Vector3 &p_point_A, const Vector3 &p_point_B, rd->best_normal = contact_rel / len; rd->best_object = rd->object; rd->best_shape = rd->shape; + rd->best_local_shape = rd->local_shape; } bool PhysicsDirectSpaceState3DSW::rest_info(RID p_shape, const Transform &p_shape_xform, real_t p_margin, ShapeRestInfo *r_info, const Set<RID> &p_exclude, uint32_t p_collision_mask, bool p_collide_with_bodies, bool p_collide_with_areas) { @@ -739,8 +742,13 @@ bool Space3DSW::test_body_motion(Body3DSW *p_body, const Transform &p_from, cons body_aabb = p_from.xform(p_body->get_inv_transform().xform(body_aabb)); body_aabb = body_aabb.grow(p_margin); + real_t motion_length = p_motion.length(); + Vector3 motion_normal = p_motion / motion_length; + Transform body_transform = p_from; + bool recovered = false; + { //STEP 1, FREE BODY IF STUCK @@ -791,7 +799,17 @@ bool Space3DSW::test_body_motion(Body3DSW *p_body, const Transform &p_from, cons for (int i = 0; i < cbk.amount; i++) { Vector3 a = sr[i * 2 + 0]; Vector3 b = sr[i * 2 + 1]; - recover_motion += (b - a) / cbk.amount; + + // Compute plane on b towards a. + Vector3 n = (a - b).normalized(); + real_t d = n.dot(b); + + // Compute depth on recovered motion. + real_t depth = n.dot(a + recover_motion) - d; + if (depth > 0.0) { + // Only recover if there is penetration. + recover_motion -= n * depth * 0.4; + } } if (recover_motion == Vector3()) { @@ -799,6 +817,8 @@ bool Space3DSW::test_body_motion(Body3DSW *p_body, const Transform &p_from, cons break; } + recovered = true; + body_transform.origin += recover_motion; body_aabb.position += recover_motion; @@ -848,14 +868,14 @@ bool Space3DSW::test_body_motion(Body3DSW *p_body, const Transform &p_from, cons //test initial overlap, does it collide if going all the way? Vector3 point_A, point_B; - Vector3 sep_axis = p_motion.normalized(); + Vector3 sep_axis = motion_normal; Transform col_obj_xform = col_obj->get_transform() * col_obj->get_shape_transform(shape_idx); //test initial overlap, does it collide if going all the way? if (CollisionSolver3DSW::solve_distance(&mshape, body_shape_xform, col_obj->get_shape(shape_idx), col_obj_xform, point_A, point_B, motion_aabb, &sep_axis)) { continue; } - sep_axis = p_motion.normalized(); + sep_axis = motion_normal; if (!CollisionSolver3DSW::solve_distance(body_shape, body_shape_xform, col_obj->get_shape(shape_idx), col_obj_xform, point_A, point_B, motion_aabb, &sep_axis)) { stuck = true; @@ -865,13 +885,12 @@ bool Space3DSW::test_body_motion(Body3DSW *p_body, const Transform &p_from, cons //just do kinematic solving real_t low = 0; real_t hi = 1; - Vector3 mnormal = p_motion.normalized(); for (int k = 0; k < 8; k++) { //steps should be customizable.. real_t ofs = (low + hi) * 0.5; - Vector3 sep = mnormal; //important optimization for this to work fast enough + Vector3 sep = motion_normal; //important optimization for this to work fast enough mshape.motion = body_shape_xform_inv.basis.xform(p_motion * ofs); @@ -912,16 +931,11 @@ bool Space3DSW::test_body_motion(Body3DSW *p_body, const Transform &p_from, cons } bool collided = false; - if (safe >= 1) { - //not collided - collided = false; - if (r_result) { - r_result->motion = p_motion; - r_result->remainder = Vector3(); - r_result->motion += (body_transform.get_origin() - p_from.get_origin()); + if (recovered || (safe < 1)) { + if (safe >= 1) { + best_shape = -1; //no best shape with cast, reset to -1 } - } else { //it collided, let's get the rest info in unsafe advance Transform ugt = body_transform; ugt.origin += p_motion * unsafe; @@ -930,25 +944,40 @@ bool Space3DSW::test_body_motion(Body3DSW *p_body, const Transform &p_from, cons rcd.best_len = 0; rcd.best_object = nullptr; rcd.best_shape = 0; - rcd.min_allowed_depth = test_motion_min_contact_depth; - Transform body_shape_xform = ugt * p_body->get_shape_transform(best_shape); - Shape3DSW *body_shape = p_body->get_shape(best_shape); + // Allowed depth can't be lower than motion length, in order to handle contacts at low speed. + rcd.min_allowed_depth = MIN(motion_length, test_motion_min_contact_depth); - body_aabb.position += p_motion * unsafe; + int from_shape = best_shape != -1 ? best_shape : 0; + int to_shape = best_shape != -1 ? best_shape + 1 : p_body->get_shape_count(); - int amount = _cull_aabb_for_body(p_body, body_aabb); + for (int j = from_shape; j < to_shape; j++) { + if (p_body->is_shape_set_as_disabled(j)) { + continue; + } - for (int i = 0; i < amount; i++) { - const CollisionObject3DSW *col_obj = intersection_query_results[i]; - int shape_idx = intersection_query_subindex_results[i]; + Transform body_shape_xform = ugt * p_body->get_shape_transform(j); + Shape3DSW *body_shape = p_body->get_shape(j); - rcd.object = col_obj; - rcd.shape = shape_idx; - bool sc = CollisionSolver3DSW::solve_static(body_shape, body_shape_xform, col_obj->get_shape(shape_idx), col_obj->get_transform() * col_obj->get_shape_transform(shape_idx), _rest_cbk_result, &rcd, nullptr, p_margin); - if (!sc) { + if (p_exclude_raycast_shapes && body_shape->get_type() == PhysicsServer3D::SHAPE_RAY) { continue; } + + body_aabb.position += p_motion * unsafe; + + int amount = _cull_aabb_for_body(p_body, body_aabb); + + for (int i = 0; i < amount; i++) { + const CollisionObject3DSW *col_obj = intersection_query_results[i]; + int shape_idx = intersection_query_subindex_results[i]; + + rcd.object = col_obj; + rcd.shape = shape_idx; + bool sc = CollisionSolver3DSW::solve_static(body_shape, body_shape_xform, col_obj->get_shape(shape_idx), col_obj->get_transform() * col_obj->get_shape_transform(shape_idx), _rest_cbk_result, &rcd, nullptr, p_margin); + if (!sc) { + continue; + } + } } if (rcd.best_len != 0) { @@ -956,7 +985,7 @@ bool Space3DSW::test_body_motion(Body3DSW *p_body, const Transform &p_from, cons r_result->collider = rcd.best_object->get_self(); r_result->collider_id = rcd.best_object->get_instance_id(); r_result->collider_shape = rcd.best_shape; - r_result->collision_local_shape = best_shape; + r_result->collision_local_shape = rcd.best_local_shape; r_result->collision_normal = rcd.best_normal; r_result->collision_point = rcd.best_contact; //r_result->collider_metadata = rcd.best_object->get_shape_metadata(rcd.best_shape); @@ -972,17 +1001,15 @@ bool Space3DSW::test_body_motion(Body3DSW *p_body, const Transform &p_from, cons } collided = true; - } else { - if (r_result) { - r_result->motion = p_motion; - r_result->remainder = Vector3(); - r_result->motion += (body_transform.get_origin() - p_from.get_origin()); - } - - collided = false; } } + if (!collided && r_result) { + r_result->motion = p_motion; + r_result->remainder = Vector3(); + r_result->motion += (body_transform.get_origin() - p_from.get_origin()); + } + return collided; } diff --git a/servers/register_server_types.cpp b/servers/register_server_types.cpp index 7478ed15a1..deb230c4fb 100644 --- a/servers/register_server_types.cpp +++ b/servers/register_server_types.cpp @@ -104,6 +104,16 @@ static bool has_server_feature_callback(const String &p_feature) { void preregister_server_types() { shader_types = memnew(ShaderTypes); + + GLOBAL_DEF("internationalization/rendering/text_driver", ""); + String text_driver_options; + for (int i = 0; i < TextServerManager::get_interface_count(); i++) { + if (i > 0) { + text_driver_options += ","; + } + text_driver_options += TextServerManager::get_interface_name(i); + } + ProjectSettings::get_singleton()->set_custom_property_info("internationalization/rendering/text_driver", PropertyInfo(Variant::STRING, "internationalization/rendering/text_driver", PROPERTY_HINT_ENUM, text_driver_options)); } void register_server_types() { diff --git a/servers/rendering/renderer_rd/effects_rd.cpp b/servers/rendering/renderer_rd/effects_rd.cpp index a9cadb40df..bc304aedd8 100644 --- a/servers/rendering/renderer_rd/effects_rd.cpp +++ b/servers/rendering/renderer_rd/effects_rd.cpp @@ -1781,7 +1781,7 @@ EffectsRD::EffectsRD() { { // Initialize cubemap filter - filter.use_high_quality = GLOBAL_GET("rendering/quality/reflections/fast_filter_high_quality"); + filter.use_high_quality = GLOBAL_GET("rendering/reflections/sky_reflections/fast_filter_high_quality"); Vector<String> cubemap_filter_modes; cubemap_filter_modes.push_back("\n#define USE_HIGH_QUALITY\n"); diff --git a/servers/rendering/renderer_rd/renderer_canvas_render_rd.cpp b/servers/rendering/renderer_rd/renderer_canvas_render_rd.cpp index 2bf3c436a8..7d6e2fa8e4 100644 --- a/servers/rendering/renderer_rd/renderer_canvas_render_rd.cpp +++ b/servers/rendering/renderer_rd/renderer_canvas_render_rd.cpp @@ -2698,7 +2698,7 @@ RendererCanvasRenderRD::RendererCanvasRenderRD(RendererStorageRD *p_storage) { default_canvas_texture = storage->canvas_texture_allocate(); storage->canvas_texture_initialize(default_canvas_texture); - state.shadow_texture_size = GLOBAL_GET("rendering/quality/2d_shadow_atlas/size"); + state.shadow_texture_size = GLOBAL_GET("rendering/2d/shadow_atlas/size"); //create functions for shader and material storage->shader_set_data_request_function(RendererStorageRD::SHADER_TYPE_2D, _create_shader_funcs); diff --git a/servers/rendering/renderer_rd/renderer_scene_render_forward.cpp b/servers/rendering/renderer_rd/renderer_scene_render_forward.cpp index 15ecc11144..a57dee7314 100644 --- a/servers/rendering/renderer_rd/renderer_scene_render_forward.cpp +++ b/servers/rendering/renderer_rd/renderer_scene_render_forward.cpp @@ -3529,7 +3529,7 @@ RendererSceneRenderForward::RendererSceneRenderForward(RendererStorageRD *p_stor actions.render_mode_defines["cull_front"] = "#define DO_SIDE_CHECK\n"; actions.render_mode_defines["cull_disabled"] = "#define DO_SIDE_CHECK\n"; - bool force_lambert = GLOBAL_GET("rendering/quality/shading/force_lambert_over_burley"); + bool force_lambert = GLOBAL_GET("rendering/shading/overrides/force_lambert_over_burley"); if (!force_lambert) { actions.render_mode_defines["diffuse_burley"] = "#define DIFFUSE_BURLEY\n"; @@ -3541,7 +3541,7 @@ RendererSceneRenderForward::RendererSceneRenderForward(RendererStorageRD *p_stor actions.render_mode_defines["sss_mode_skin"] = "#define SSS_MODE_SKIN\n"; - bool force_blinn = GLOBAL_GET("rendering/quality/shading/force_blinn_over_ggx"); + bool force_blinn = GLOBAL_GET("rendering/shading/overrides/force_blinn_over_ggx"); if (!force_blinn) { actions.render_mode_defines["specular_schlick_ggx"] = "#define SPECULAR_SCHLICK_GGX\n"; @@ -3624,7 +3624,7 @@ RendererSceneRenderForward::RendererSceneRenderForward(RendererStorageRD *p_stor shadow_sampler = RD::get_singleton()->sampler_create(sampler); } - render_list_thread_threshold = GLOBAL_GET("rendering/forward_renderer/threaded_render_minimum_instances"); + render_list_thread_threshold = GLOBAL_GET("rendering/limits/forward_renderer/threaded_render_minimum_instances"); } RendererSceneRenderForward::~RendererSceneRenderForward() { diff --git a/servers/rendering/renderer_rd/renderer_scene_render_rd.cpp b/servers/rendering/renderer_rd/renderer_scene_render_rd.cpp index 74cfd64561..15e963f6e4 100644 --- a/servers/rendering/renderer_rd/renderer_scene_render_rd.cpp +++ b/servers/rendering/renderer_rd/renderer_scene_render_rd.cpp @@ -3329,8 +3329,8 @@ Ref<Image> RendererSceneRenderRD::environment_bake_panorama(RID p_env, bool p_ba RID RendererSceneRenderRD::reflection_atlas_create() { ReflectionAtlas ra; - ra.count = GLOBAL_GET("rendering/quality/reflection_atlas/reflection_count"); - ra.size = GLOBAL_GET("rendering/quality/reflection_atlas/reflection_size"); + ra.count = GLOBAL_GET("rendering/reflections/reflection_atlas/reflection_count"); + ra.size = GLOBAL_GET("rendering/reflections/reflection_atlas/reflection_size"); ra.cluster_builder = memnew(ClusterBuilderRD); ra.cluster_builder->set_shared(&cluster_builder_shared); @@ -8436,25 +8436,25 @@ bool RendererSceneRenderRD::is_low_end() const { } RendererSceneRenderRD::RendererSceneRenderRD(RendererStorageRD *p_storage) { - max_cluster_elements = GLOBAL_GET("rendering/cluster_builder/max_clustered_elements"); + max_cluster_elements = GLOBAL_GET("rendering/limits/cluster_builder/max_clustered_elements"); storage = p_storage; singleton = this; - roughness_layers = GLOBAL_GET("rendering/quality/reflections/roughness_layers"); - sky_ggx_samples_quality = GLOBAL_GET("rendering/quality/reflections/ggx_samples"); - sky_use_cubemap_array = GLOBAL_GET("rendering/quality/reflections/texture_array_reflections"); + roughness_layers = GLOBAL_GET("rendering/reflections/sky_reflections/roughness_layers"); + sky_ggx_samples_quality = GLOBAL_GET("rendering/reflections/sky_reflections/ggx_samples"); + sky_use_cubemap_array = GLOBAL_GET("rendering/reflections/sky_reflections/texture_array_reflections"); - sdfgi_ray_count = RS::EnvironmentSDFGIRayCount(CLAMP(int32_t(GLOBAL_GET("rendering/sdfgi/probe_ray_count")), 0, int32_t(RS::ENV_SDFGI_RAY_COUNT_MAX - 1))); - sdfgi_frames_to_converge = RS::EnvironmentSDFGIFramesToConverge(CLAMP(int32_t(GLOBAL_GET("rendering/sdfgi/frames_to_converge")), 0, int32_t(RS::ENV_SDFGI_CONVERGE_MAX - 1))); - sdfgi_frames_to_update_light = RS::EnvironmentSDFGIFramesToUpdateLight(CLAMP(int32_t(GLOBAL_GET("rendering/sdfgi/frames_to_update_lights")), 0, int32_t(RS::ENV_SDFGI_UPDATE_LIGHT_MAX - 1))); + sdfgi_ray_count = RS::EnvironmentSDFGIRayCount(CLAMP(int32_t(GLOBAL_GET("rendering/global_illumination/sdfgi/probe_ray_count")), 0, int32_t(RS::ENV_SDFGI_RAY_COUNT_MAX - 1))); + sdfgi_frames_to_converge = RS::EnvironmentSDFGIFramesToConverge(CLAMP(int32_t(GLOBAL_GET("rendering/global_illumination/sdfgi/frames_to_converge")), 0, int32_t(RS::ENV_SDFGI_CONVERGE_MAX - 1))); + sdfgi_frames_to_update_light = RS::EnvironmentSDFGIFramesToUpdateLight(CLAMP(int32_t(GLOBAL_GET("rendering/global_illumination/sdfgi/frames_to_update_lights")), 0, int32_t(RS::ENV_SDFGI_UPDATE_LIGHT_MAX - 1))); - directional_shadow.size = GLOBAL_GET("rendering/quality/directional_shadow/size"); - directional_shadow.use_16_bits = GLOBAL_GET("rendering/quality/directional_shadow/16_bits"); + directional_shadow.size = GLOBAL_GET("rendering/shadows/directional_shadow/size"); + directional_shadow.use_16_bits = GLOBAL_GET("rendering/shadows/directional_shadow/16_bits"); uint32_t textures_per_stage = RD::get_singleton()->limit_get(RD::LIMIT_MAX_TEXTURES_PER_SHADER_STAGE); - low_end = GLOBAL_GET("rendering/quality/rd_renderer/use_low_end_renderer"); + low_end = GLOBAL_GET("rendering/driver/rd_renderer/use_low_end_renderer"); if (textures_per_stage < 48) { low_end = true; @@ -8467,7 +8467,7 @@ RendererSceneRenderRD::RendererSceneRenderRD(RendererStorageRD *p_storage) { gi_probe_lights = memnew_arr(GIProbeLight, gi_probe_max_lights); gi_probe_lights_uniform = RD::get_singleton()->uniform_buffer_create(gi_probe_max_lights * sizeof(GIProbeLight)); - gi_probe_quality = RS::GIProbeQuality(CLAMP(int(GLOBAL_GET("rendering/quality/gi_probes/quality")), 0, 1)); + gi_probe_quality = RS::GIProbeQuality(CLAMP(int(GLOBAL_GET("rendering/global_illumination/gi_probes/quality")), 0, 1)); String defines = "\n#define MAX_LIGHTS " + itos(gi_probe_max_lights) + "\n"; @@ -8903,31 +8903,31 @@ RendererSceneRenderRD::RendererSceneRenderRD(RendererStorageRD *p_storage) { shadow_sampler = RD::get_singleton()->sampler_create(sampler); } - camera_effects_set_dof_blur_bokeh_shape(RS::DOFBokehShape(int(GLOBAL_GET("rendering/quality/depth_of_field/depth_of_field_bokeh_shape")))); - camera_effects_set_dof_blur_quality(RS::DOFBlurQuality(int(GLOBAL_GET("rendering/quality/depth_of_field/depth_of_field_bokeh_quality"))), GLOBAL_GET("rendering/quality/depth_of_field/depth_of_field_use_jitter")); - environment_set_ssao_quality(RS::EnvironmentSSAOQuality(int(GLOBAL_GET("rendering/quality/ssao/quality"))), GLOBAL_GET("rendering/quality/ssao/half_size"), GLOBAL_GET("rendering/quality/ssao/adaptive_target"), GLOBAL_GET("rendering/quality/ssao/blur_passes"), GLOBAL_GET("rendering/quality/ssao/fadeout_from"), GLOBAL_GET("rendering/quality/ssao/fadeout_to")); - screen_space_roughness_limiter = GLOBAL_GET("rendering/quality/screen_filters/screen_space_roughness_limiter_enabled"); - screen_space_roughness_limiter_amount = GLOBAL_GET("rendering/quality/screen_filters/screen_space_roughness_limiter_amount"); - screen_space_roughness_limiter_limit = GLOBAL_GET("rendering/quality/screen_filters/screen_space_roughness_limiter_limit"); - glow_bicubic_upscale = int(GLOBAL_GET("rendering/quality/glow/upscale_mode")) > 0; - glow_high_quality = GLOBAL_GET("rendering/quality/glow/use_high_quality"); - ssr_roughness_quality = RS::EnvironmentSSRRoughnessQuality(int(GLOBAL_GET("rendering/quality/screen_space_reflection/roughness_quality"))); - sss_quality = RS::SubSurfaceScatteringQuality(int(GLOBAL_GET("rendering/quality/subsurface_scattering/subsurface_scattering_quality"))); - sss_scale = GLOBAL_GET("rendering/quality/subsurface_scattering/subsurface_scattering_scale"); - sss_depth_scale = GLOBAL_GET("rendering/quality/subsurface_scattering/subsurface_scattering_depth_scale"); + camera_effects_set_dof_blur_bokeh_shape(RS::DOFBokehShape(int(GLOBAL_GET("rendering/camera/depth_of_field/depth_of_field_bokeh_shape")))); + camera_effects_set_dof_blur_quality(RS::DOFBlurQuality(int(GLOBAL_GET("rendering/camera/depth_of_field/depth_of_field_bokeh_quality"))), GLOBAL_GET("rendering/camera/depth_of_field/depth_of_field_use_jitter")); + environment_set_ssao_quality(RS::EnvironmentSSAOQuality(int(GLOBAL_GET("rendering/environment/ssao/quality"))), GLOBAL_GET("rendering/environment/ssao/half_size"), GLOBAL_GET("rendering/environment/ssao/adaptive_target"), GLOBAL_GET("rendering/environment/ssao/blur_passes"), GLOBAL_GET("rendering/environment/ssao/fadeout_from"), GLOBAL_GET("rendering/environment/ssao/fadeout_to")); + screen_space_roughness_limiter = GLOBAL_GET("rendering/anti_aliasing/screen_space_roughness_limiter/enabled"); + screen_space_roughness_limiter_amount = GLOBAL_GET("rendering/anti_aliasing/screen_space_roughness_limiter/amount"); + screen_space_roughness_limiter_limit = GLOBAL_GET("rendering/anti_aliasing/screen_space_roughness_limiter/limit"); + glow_bicubic_upscale = int(GLOBAL_GET("rendering/environment/glow/upscale_mode")) > 0; + glow_high_quality = GLOBAL_GET("rendering/environment/glow/use_high_quality"); + ssr_roughness_quality = RS::EnvironmentSSRRoughnessQuality(int(GLOBAL_GET("rendering/environment/screen_space_reflection/roughness_quality"))); + sss_quality = RS::SubSurfaceScatteringQuality(int(GLOBAL_GET("rendering/environment/subsurface_scattering/subsurface_scattering_quality"))); + sss_scale = GLOBAL_GET("rendering/environment/subsurface_scattering/subsurface_scattering_scale"); + sss_depth_scale = GLOBAL_GET("rendering/environment/subsurface_scattering/subsurface_scattering_depth_scale"); directional_penumbra_shadow_kernel = memnew_arr(float, 128); directional_soft_shadow_kernel = memnew_arr(float, 128); penumbra_shadow_kernel = memnew_arr(float, 128); soft_shadow_kernel = memnew_arr(float, 128); - shadows_quality_set(RS::ShadowQuality(int(GLOBAL_GET("rendering/quality/shadows/soft_shadow_quality")))); - directional_shadow_quality_set(RS::ShadowQuality(int(GLOBAL_GET("rendering/quality/directional_shadow/soft_shadow_quality")))); + shadows_quality_set(RS::ShadowQuality(int(GLOBAL_GET("rendering/shadows/shadows/soft_shadow_quality")))); + directional_shadow_quality_set(RS::ShadowQuality(int(GLOBAL_GET("rendering/shadows/directional_shadow/soft_shadow_quality")))); - environment_set_volumetric_fog_volume_size(GLOBAL_GET("rendering/volumetric_fog/volume_size"), GLOBAL_GET("rendering/volumetric_fog/volume_depth")); - environment_set_volumetric_fog_filter_active(GLOBAL_GET("rendering/volumetric_fog/use_filter")); + environment_set_volumetric_fog_volume_size(GLOBAL_GET("rendering/environment/volumetric_fog/volume_size"), GLOBAL_GET("rendering/environment/volumetric_fog/volume_depth")); + environment_set_volumetric_fog_filter_active(GLOBAL_GET("rendering/environment/volumetric_fog/use_filter")); cull_argument.set_page_pool(&cull_argument_pool); - gi.half_resolution = GLOBAL_GET("rendering/quality/gi/use_half_resolution"); + gi.half_resolution = GLOBAL_GET("rendering/global_illumination/gi/use_half_resolution"); } RendererSceneRenderRD::~RendererSceneRenderRD() { diff --git a/servers/rendering/renderer_rd/renderer_storage_rd.cpp b/servers/rendering/renderer_rd/renderer_storage_rd.cpp index f25cd2ade4..2a34049675 100644 --- a/servers/rendering/renderer_rd/renderer_storage_rd.cpp +++ b/servers/rendering/renderer_rd/renderer_storage_rd.cpp @@ -8396,7 +8396,7 @@ RendererStorageRD::RendererStorageRD() { static_assert(sizeof(GlobalVariables::Value) == 16); - global_variables.buffer_size = GLOBAL_GET("rendering/high_end/global_shader_variables_buffer_size"); + global_variables.buffer_size = GLOBAL_GET("rendering/limits/global_shader_variables/buffer_size"); global_variables.buffer_size = MAX(4096, global_variables.buffer_size); global_variables.buffer_values = memnew_arr(GlobalVariables::Value, global_variables.buffer_size); zeromem(global_variables.buffer_values, sizeof(GlobalVariables::Value) * global_variables.buffer_size); @@ -8664,14 +8664,14 @@ RendererStorageRD::RendererStorageRD() { sampler_state.min_filter = RD::SAMPLER_FILTER_LINEAR; sampler_state.mip_filter = RD::SAMPLER_FILTER_LINEAR; sampler_state.use_anisotropy = true; - sampler_state.anisotropy_max = 1 << int(GLOBAL_GET("rendering/quality/texture_filters/anisotropic_filtering_level")); + sampler_state.anisotropy_max = 1 << int(GLOBAL_GET("rendering/textures/default_filters/anisotropic_filtering_level")); } break; case RS::CANVAS_ITEM_TEXTURE_FILTER_LINEAR_WITH_MIPMAPS_ANISOTROPIC: { sampler_state.mag_filter = RD::SAMPLER_FILTER_LINEAR; sampler_state.min_filter = RD::SAMPLER_FILTER_LINEAR; sampler_state.mip_filter = RD::SAMPLER_FILTER_LINEAR; sampler_state.use_anisotropy = true; - sampler_state.anisotropy_max = 1 << int(GLOBAL_GET("rendering/quality/texture_filters/anisotropic_filtering_level")); + sampler_state.anisotropy_max = 1 << int(GLOBAL_GET("rendering/textures/default_filters/anisotropic_filtering_level")); } break; default: { @@ -8841,7 +8841,7 @@ RendererStorageRD::RendererStorageRD() { } } - lightmap_probe_capture_update_speed = GLOBAL_GET("rendering/lightmapper/probe_capture_update_speed"); + lightmap_probe_capture_update_speed = GLOBAL_GET("rendering/lightmapping/probe_capture/update_speed"); /* Particles */ diff --git a/servers/rendering/renderer_rd/shader_compiler_rd.cpp b/servers/rendering/renderer_rd/shader_compiler_rd.cpp index a81706700a..8135d388e1 100644 --- a/servers/rendering/renderer_rd/shader_compiler_rd.cpp +++ b/servers/rendering/renderer_rd/shader_compiler_rd.cpp @@ -1468,7 +1468,7 @@ ShaderCompilerRD::ShaderCompilerRD() { actions[RS::SHADER_SPATIAL].render_mode_defines["cull_front"] = "#define DO_SIDE_CHECK\n"; actions[RS::SHADER_SPATIAL].render_mode_defines["cull_disabled"] = "#define DO_SIDE_CHECK\n"; - bool force_lambert = GLOBAL_GET("rendering/quality/shading/force_lambert_over_burley"); + bool force_lambert = GLOBAL_GET("rendering/shading/overrides/force_lambert_over_burley"); if (!force_lambert) { actions[RS::SHADER_SPATIAL].render_mode_defines["diffuse_burley"] = "#define DIFFUSE_BURLEY\n"; @@ -1478,7 +1478,7 @@ ShaderCompilerRD::ShaderCompilerRD() { actions[RS::SHADER_SPATIAL].render_mode_defines["diffuse_lambert_wrap"] = "#define DIFFUSE_LAMBERT_WRAP\n"; actions[RS::SHADER_SPATIAL].render_mode_defines["diffuse_toon"] = "#define DIFFUSE_TOON\n"; - bool force_blinn = GLOBAL_GET("rendering/quality/shading/force_blinn_over_ggx"); + bool force_blinn = GLOBAL_GET("rendering/shading/overrides/force_blinn_over_ggx"); if (!force_blinn) { actions[RS::SHADER_SPATIAL].render_mode_defines["specular_schlick_ggx"] = "#define SPECULAR_SCHLICK_GGX\n"; diff --git a/servers/rendering/renderer_rd/shaders/scene_forward.glsl b/servers/rendering/renderer_rd/shaders/scene_forward.glsl index adccf1e712..1cea9bf8db 100644 --- a/servers/rendering/renderer_rd/shaders/scene_forward.glsl +++ b/servers/rendering/renderer_rd/shaders/scene_forward.glsl @@ -799,13 +799,11 @@ LIGHT_SHADER_CODE #ifndef USE_NO_SHADOWS -// Produces cheap white noise, optimized for window-space -// Comes from: https://www.shadertoy.com/view/4djSRW -// Copyright: Dave Hoskins, MIT License +// Interleaved Gradient Noise +// http://www.iryoku.com/next-generation-post-processing-in-call-of-duty-advanced-warfare float quick_hash(vec2 pos) { - vec3 p3 = fract(vec3(pos.xyx) * .1031); - p3 += dot(p3, p3.yzx + 33.33); - return fract((p3.x + p3.y) * p3.z); + const vec3 magic = vec3(0.06711056f, 0.00583715f, 52.9829189f); + return fract(magic.z * fract(dot(pos, magic.xy))); } float sample_directional_pcf_shadow(texture2D shadow, vec2 shadow_pixel_size, vec4 coord) { diff --git a/servers/rendering/renderer_rd/shaders/skeleton.glsl b/servers/rendering/renderer_rd/shaders/skeleton.glsl index d675e548d7..680d1045cd 100644 --- a/servers/rendering/renderer_rd/shaders/skeleton.glsl +++ b/servers/rendering/renderer_rd/shaders/skeleton.glsl @@ -100,7 +100,7 @@ void main() { for (uint i = 0; i < params.blend_shape_count; i++) { float w = blend_shape_weights.data[i]; - if ((w < 0.0001) || (w > 0.0001)) { + if (abs(w) > 0.0001) { uint base_offset = (params.vertex_count * i + index) * params.vertex_stride; blend_vertex += uintBitsToFloat(uvec3(src_blend_shapes.data[base_offset + 0], src_blend_shapes.data[base_offset + 1], src_blend_shapes.data[base_offset + 2])) * w; diff --git a/servers/rendering/renderer_scene_cull.cpp b/servers/rendering/renderer_scene_cull.cpp index 8a2a1a9eaa..e8155e4025 100644 --- a/servers/rendering/renderer_scene_cull.cpp +++ b/servers/rendering/renderer_scene_cull.cpp @@ -3533,8 +3533,8 @@ RendererSceneCull::RendererSceneCull() { frustum_cull_result_threads[i].init(&rid_cull_page_pool, &geometry_instance_cull_page_pool, &instance_cull_page_pool); } - indexer_update_iterations = GLOBAL_GET("rendering/spatial_indexer/update_iterations_per_frame"); - thread_cull_threshold = GLOBAL_GET("rendering/spatial_indexer/threaded_cull_minimum_instances"); + indexer_update_iterations = GLOBAL_GET("rendering/limits/spatial_indexer/update_iterations_per_frame"); + thread_cull_threshold = GLOBAL_GET("rendering/limits/spatial_indexer/threaded_cull_minimum_instances"); thread_cull_threshold = MAX(thread_cull_threshold, (uint32_t)RendererThreadPool::singleton->thread_work_pool.get_thread_count()); //make sure there is at least one thread per CPU } diff --git a/servers/rendering/renderer_viewport.cpp b/servers/rendering/renderer_viewport.cpp index fc3d8a78e7..a5d5033c18 100644 --- a/servers/rendering/renderer_viewport.cpp +++ b/servers/rendering/renderer_viewport.cpp @@ -457,7 +457,7 @@ void RendererViewport::draw_viewports() { } if (Engine::get_singleton()->is_editor_hint()) { - set_default_clear_color(GLOBAL_GET("rendering/environment/default_clear_color")); + set_default_clear_color(GLOBAL_GET("rendering/environment/defaults/default_clear_color")); } //sort viewports diff --git a/servers/rendering/rendering_server_default.cpp b/servers/rendering/rendering_server_default.cpp index 2e8f60d879..61d1efaf22 100644 --- a/servers/rendering/rendering_server_default.cpp +++ b/servers/rendering/rendering_server_default.cpp @@ -237,7 +237,7 @@ void RenderingServerDefault::init() { thread.start(_thread_callback, this); print_verbose("RenderingServerWrapMT: Starting render thread"); } - while (!draw_thread_up) { + while (!draw_thread_up.is_set()) { OS::get_singleton()->delay_usec(1000); } print_verbose("RenderingServerWrapMT: Finished render thread"); @@ -329,17 +329,17 @@ bool RenderingServerDefault::is_low_end() const { } void RenderingServerDefault::_thread_exit() { - exit = true; + exit.set(); } void RenderingServerDefault::_thread_draw(bool p_swap_buffers, double frame_step) { - if (!atomic_decrement(&draw_pending)) { + if (!draw_pending.decrement()) { _draw(p_swap_buffers, frame_step); } } void RenderingServerDefault::_thread_flush() { - atomic_decrement(&draw_pending); + draw_pending.decrement(); } void RenderingServerDefault::_thread_callback(void *_instance) { @@ -355,9 +355,8 @@ void RenderingServerDefault::_thread_loop() { _init(); - exit = false; - draw_thread_up = true; - while (!exit) { + draw_thread_up.set(); + while (!exit.is_set()) { // flush commands one by one, until exit is requested command_queue.wait_and_flush_one(); } @@ -371,7 +370,7 @@ void RenderingServerDefault::_thread_loop() { void RenderingServerDefault::sync() { if (create_thread) { - atomic_increment(&draw_pending); + draw_pending.increment(); command_queue.push_and_sync(this, &RenderingServerDefault::_thread_flush); } else { command_queue.flush_all(); //flush all pending from other threads @@ -380,7 +379,7 @@ void RenderingServerDefault::sync() { void RenderingServerDefault::draw(bool p_swap_buffers, double frame_step) { if (create_thread) { - atomic_increment(&draw_pending); + draw_pending.increment(); command_queue.push(this, &RenderingServerDefault::_thread_draw, p_swap_buffers, frame_step); } else { _draw(p_swap_buffers, frame_step); @@ -390,8 +389,6 @@ void RenderingServerDefault::draw(bool p_swap_buffers, double frame_step) { RenderingServerDefault::RenderingServerDefault(bool p_create_thread) : command_queue(p_create_thread) { create_thread = p_create_thread; - draw_pending = 0; - draw_thread_up = false; if (!p_create_thread) { server_thread = Thread::get_caller_id(); diff --git a/servers/rendering/rendering_server_default.h b/servers/rendering/rendering_server_default.h index effa555ec4..73b463f6e7 100644 --- a/servers/rendering/rendering_server_default.h +++ b/servers/rendering/rendering_server_default.h @@ -89,12 +89,12 @@ class RenderingServerDefault : public RenderingServer { void _thread_loop(); Thread::ID server_thread; - volatile bool exit; + SafeFlag exit; Thread thread; - volatile bool draw_thread_up; + SafeFlag draw_thread_up; bool create_thread; - uint64_t draw_pending; + SafeNumeric<uint64_t> draw_pending; void _thread_draw(bool p_swap_buffers, double frame_step); void _thread_flush(); diff --git a/servers/rendering_server.cpp b/servers/rendering_server.cpp index a3c8ef304f..809343114c 100644 --- a/servers/rendering_server.cpp +++ b/servers/rendering_server.cpp @@ -2259,130 +2259,130 @@ RenderingServer::RenderingServer() { thread_pool = memnew(RendererThreadPool); singleton = this; - GLOBAL_DEF_RST("rendering/vram_compression/import_bptc", false); - GLOBAL_DEF_RST("rendering/vram_compression/import_s3tc", true); - GLOBAL_DEF_RST("rendering/vram_compression/import_etc", false); - GLOBAL_DEF_RST("rendering/vram_compression/import_etc2", true); - GLOBAL_DEF_RST("rendering/vram_compression/import_pvrtc", false); + GLOBAL_DEF_RST("rendering/textures/vram_compression/import_bptc", false); + GLOBAL_DEF_RST("rendering/textures/vram_compression/import_s3tc", true); + GLOBAL_DEF_RST("rendering/textures/vram_compression/import_etc", false); + GLOBAL_DEF_RST("rendering/textures/vram_compression/import_etc2", true); + GLOBAL_DEF_RST("rendering/textures/vram_compression/import_pvrtc", false); GLOBAL_DEF("rendering/limits/time/time_rollover_secs", 3600); ProjectSettings::get_singleton()->set_custom_property_info("rendering/limits/time/time_rollover_secs", PropertyInfo(Variant::FLOAT, "rendering/limits/time/time_rollover_secs", PROPERTY_HINT_RANGE, "0,10000,1,or_greater")); - GLOBAL_DEF("rendering/quality/directional_shadow/size", 4096); - GLOBAL_DEF("rendering/quality/directional_shadow/size.mobile", 2048); - ProjectSettings::get_singleton()->set_custom_property_info("rendering/quality/directional_shadow/size", PropertyInfo(Variant::INT, "rendering/quality/directional_shadow/size", PROPERTY_HINT_RANGE, "256,16384")); - GLOBAL_DEF("rendering/quality/directional_shadow/soft_shadow_quality", 2); - GLOBAL_DEF("rendering/quality/directional_shadow/soft_shadow_quality.mobile", 0); - ProjectSettings::get_singleton()->set_custom_property_info("rendering/quality/directional_shadow/soft_shadow_quality", PropertyInfo(Variant::INT, "rendering/quality/directional_shadow/soft_shadow_quality", PROPERTY_HINT_ENUM, "Hard (Fastest),Soft Low (Fast),Soft Medium (Average),Soft High (Slow),Soft Ultra (Slowest)")); - GLOBAL_DEF("rendering/quality/directional_shadow/16_bits", true); - - GLOBAL_DEF("rendering/quality/shadows/soft_shadow_quality", 2); - GLOBAL_DEF("rendering/quality/shadows/soft_shadow_quality.mobile", 0); - ProjectSettings::get_singleton()->set_custom_property_info("rendering/quality/shadows/soft_shadow_quality", PropertyInfo(Variant::INT, "rendering/quality/shadows/soft_shadow_quality", PROPERTY_HINT_ENUM, "Hard (Fastest),Soft Low (Fast),Soft Medium (Average),Soft High (Slow),Soft Ultra (Slowest)")); - - GLOBAL_DEF("rendering/quality/2d_shadow_atlas/size", 2048); - - GLOBAL_DEF("rendering/quality/rd_renderer/use_low_end_renderer", false); - GLOBAL_DEF("rendering/quality/rd_renderer/use_low_end_renderer.mobile", true); - - GLOBAL_DEF("rendering/quality/reflections/roughness_layers", 8); - GLOBAL_DEF("rendering/quality/reflections/texture_array_reflections", true); - GLOBAL_DEF("rendering/quality/reflections/texture_array_reflections.mobile", false); - GLOBAL_DEF("rendering/quality/reflections/ggx_samples", 1024); - GLOBAL_DEF("rendering/quality/reflections/ggx_samples.mobile", 128); - GLOBAL_DEF("rendering/quality/reflections/fast_filter_high_quality", false); - GLOBAL_DEF("rendering/quality/reflection_atlas/reflection_size", 256); - GLOBAL_DEF("rendering/quality/reflection_atlas/reflection_size.mobile", 128); - GLOBAL_DEF("rendering/quality/reflection_atlas/reflection_count", 64); - - GLOBAL_DEF("rendering/quality/gi/use_half_resolution", false); - - GLOBAL_DEF("rendering/quality/gi_probes/anisotropic", false); - GLOBAL_DEF("rendering/quality/gi_probes/quality", 1); - ProjectSettings::get_singleton()->set_custom_property_info("rendering/quality/gi_probes/quality", PropertyInfo(Variant::INT, "rendering/quality/gi_probes/quality", PROPERTY_HINT_ENUM, "Low (4 Cones - Fast),High (6 Cones - Slow)")); - - GLOBAL_DEF("rendering/quality/shading/force_vertex_shading", false); - GLOBAL_DEF("rendering/quality/shading/force_vertex_shading.mobile", true); - GLOBAL_DEF("rendering/quality/shading/force_lambert_over_burley", false); - GLOBAL_DEF("rendering/quality/shading/force_lambert_over_burley.mobile", true); - GLOBAL_DEF("rendering/quality/shading/force_blinn_over_ggx", false); - GLOBAL_DEF("rendering/quality/shading/force_blinn_over_ggx.mobile", true); - - GLOBAL_DEF("rendering/quality/depth_prepass/enable", true); - GLOBAL_DEF("rendering/quality/depth_prepass/disable_for_vendors", "PowerVR,Mali,Adreno,Apple"); - - GLOBAL_DEF("rendering/quality/texture_filters/use_nearest_mipmap_filter", false); - GLOBAL_DEF("rendering/quality/texture_filters/anisotropic_filtering_level", 2); - ProjectSettings::get_singleton()->set_custom_property_info("rendering/quality/texture_filters/anisotropic_filtering_level", PropertyInfo(Variant::INT, "rendering/quality/texture_filters/anisotropic_filtering_level", PROPERTY_HINT_ENUM, "Disabled (Fastest),2x (Faster),4x (Fast),8x (Average),16x (Slow)")); - - GLOBAL_DEF("rendering/quality/depth_of_field/depth_of_field_bokeh_shape", 1); - ProjectSettings::get_singleton()->set_custom_property_info("rendering/quality/depth_of_field/depth_of_field_bokeh_shape", PropertyInfo(Variant::INT, "rendering/quality/depth_of_field/depth_of_field_bokeh_shape", PROPERTY_HINT_ENUM, "Box (Fast),Hexagon (Average),Circle (Slow)")); - GLOBAL_DEF("rendering/quality/depth_of_field/depth_of_field_bokeh_quality", 2); - ProjectSettings::get_singleton()->set_custom_property_info("rendering/quality/depth_of_field/depth_of_field_bokeh_quality", PropertyInfo(Variant::INT, "rendering/quality/depth_of_field/depth_of_field_bokeh_quality", PROPERTY_HINT_ENUM, "Very Low (Fastest),Low (Fast),Medium (Average),High (Slow)")); - GLOBAL_DEF("rendering/quality/depth_of_field/depth_of_field_use_jitter", false); - - GLOBAL_DEF("rendering/quality/ssao/quality", 2); - ProjectSettings::get_singleton()->set_custom_property_info("rendering/quality/ssao/quality", PropertyInfo(Variant::INT, "rendering/quality/ssao/quality", PROPERTY_HINT_ENUM, "Very Low (Fast),Low (Fast),Medium (Average),High (Slow),Ultra (Custom)")); - GLOBAL_DEF("rendering/quality/ssao/half_size", false); - GLOBAL_DEF("rendering/quality/ssao/half_size.mobile", true); - GLOBAL_DEF("rendering/quality/ssao/adaptive_target", 0.5); - ProjectSettings::get_singleton()->set_custom_property_info("rendering/quality/ssao/adaptive_target", PropertyInfo(Variant::FLOAT, "rendering/quality/ssao/adaptive_target", PROPERTY_HINT_RANGE, "0.0,1.0,0.01")); - GLOBAL_DEF("rendering/quality/ssao/blur_passes", 2); - ProjectSettings::get_singleton()->set_custom_property_info("rendering/quality/ssao/blur_passes", PropertyInfo(Variant::INT, "rendering/quality/ssao/blur_passes", PROPERTY_HINT_RANGE, "0,6")); - GLOBAL_DEF("rendering/quality/ssao/fadeout_from", 50.0); - ProjectSettings::get_singleton()->set_custom_property_info("rendering/quality/ssao/fadeout_from", PropertyInfo(Variant::FLOAT, "rendering/quality/ssao/fadeout_from", PROPERTY_HINT_RANGE, "0.0,512,0.1,or_greater")); - GLOBAL_DEF("rendering/quality/ssao/fadeout_to", 300.0); - ProjectSettings::get_singleton()->set_custom_property_info("rendering/quality/ssao/fadeout_to", PropertyInfo(Variant::FLOAT, "rendering/quality/ssao/fadeout_to", PROPERTY_HINT_RANGE, "64,65536,0.1,or_greater")); - - GLOBAL_DEF("rendering/quality/screen_filters/screen_space_roughness_limiter_enabled", true); - GLOBAL_DEF("rendering/quality/screen_filters/screen_space_roughness_limiter_amount", 0.25); - GLOBAL_DEF("rendering/quality/screen_filters/screen_space_roughness_limiter_limit", 0.18); - ProjectSettings::get_singleton()->set_custom_property_info("rendering/quality/screen_filters/screen_space_roughness_limiter_amount", PropertyInfo(Variant::FLOAT, "rendering/quality/screen_filters/screen_space_roughness_limiter_amount", PROPERTY_HINT_RANGE, "0.01,4.0,0.01")); - ProjectSettings::get_singleton()->set_custom_property_info("rendering/quality/screen_filters/screen_space_roughness_limiter_limit", PropertyInfo(Variant::FLOAT, "rendering/quality/screen_filters/screen_space_roughness_limiter_limit", PROPERTY_HINT_RANGE, "0.01,1.0,0.01")); - - GLOBAL_DEF("rendering/quality/glow/upscale_mode", 1); - ProjectSettings::get_singleton()->set_custom_property_info("rendering/quality/glow/upscale_mode", PropertyInfo(Variant::INT, "rendering/quality/glow/upscale_mode", PROPERTY_HINT_ENUM, "Linear (Fast),Bicubic (Slow)")); - GLOBAL_DEF("rendering/quality/glow/upscale_mode.mobile", 0); - GLOBAL_DEF("rendering/quality/glow/use_high_quality", false); - - GLOBAL_DEF("rendering/quality/screen_space_reflection/roughness_quality", 1); - ProjectSettings::get_singleton()->set_custom_property_info("rendering/quality/screen_space_reflection/roughness_quality", PropertyInfo(Variant::INT, "rendering/quality/screen_space_reflection/roughness_quality", PROPERTY_HINT_ENUM, "Disabled (Fastest),Low (Fast),Medium (Average),High (Slow)")); - - GLOBAL_DEF("rendering/quality/subsurface_scattering/subsurface_scattering_quality", 1); - ProjectSettings::get_singleton()->set_custom_property_info("rendering/quality/subsurface_scattering/subsurface_scattering_quality", PropertyInfo(Variant::INT, "rendering/quality/subsurface_scattering/subsurface_scattering_quality", PROPERTY_HINT_ENUM, "Disabled (Fastest),Low (Fast),Medium (Average),High (Slow)")); - GLOBAL_DEF("rendering/quality/subsurface_scattering/subsurface_scattering_scale", 0.05); - ProjectSettings::get_singleton()->set_custom_property_info("rendering/quality/subsurface_scattering/subsurface_scattering_scale", PropertyInfo(Variant::FLOAT, "rendering/quality/subsurface_scattering/subsurface_scattering_scale", PROPERTY_HINT_RANGE, "0.001,1,0.001")); - GLOBAL_DEF("rendering/quality/subsurface_scattering/subsurface_scattering_depth_scale", 0.01); - ProjectSettings::get_singleton()->set_custom_property_info("rendering/quality/subsurface_scattering/subsurface_scattering_depth_scale", PropertyInfo(Variant::FLOAT, "rendering/quality/subsurface_scattering/subsurface_scattering_depth_scale", PROPERTY_HINT_RANGE, "0.001,1,0.001")); - - GLOBAL_DEF("rendering/high_end/global_shader_variables_buffer_size", 65536); - - GLOBAL_DEF("rendering/lightmapper/probe_capture_update_speed", 15); - ProjectSettings::get_singleton()->set_custom_property_info("rendering/lightmapper/probe_capture_update_speed", PropertyInfo(Variant::FLOAT, "rendering/lightmapper/probe_capture_update_speed", PROPERTY_HINT_RANGE, "0.001,256,0.001")); - - GLOBAL_DEF("rendering/sdfgi/probe_ray_count", 1); - ProjectSettings::get_singleton()->set_custom_property_info("rendering/sdfgi/probe_ray_count", PropertyInfo(Variant::INT, "rendering/sdfgi/probe_ray_count", PROPERTY_HINT_ENUM, "8 (Fastest),16,32,64,96,128 (Slowest)")); - GLOBAL_DEF("rendering/sdfgi/frames_to_converge", 4); - ProjectSettings::get_singleton()->set_custom_property_info("rendering/sdfgi/frames_to_converge", PropertyInfo(Variant::INT, "rendering/sdfgi/frames_to_converge", PROPERTY_HINT_ENUM, "5 (Less Latency but Lower Quality),10,15,20,25,30 (More Latency but Higher Quality)")); - GLOBAL_DEF("rendering/sdfgi/frames_to_update_lights", 2); - ProjectSettings::get_singleton()->set_custom_property_info("rendering/sdfgi/frames_to_update_lights", PropertyInfo(Variant::INT, "rendering/sdfgi/frames_to_update_lights", PROPERTY_HINT_ENUM, "1 (Slower),2,4,8,16 (Faster)")); - - GLOBAL_DEF("rendering/volumetric_fog/volume_size", 64); - ProjectSettings::get_singleton()->set_custom_property_info("rendering/volumetric_fog/volume_size", PropertyInfo(Variant::INT, "rendering/volumetric_fog/volume_size", PROPERTY_HINT_RANGE, "16,512,1")); - GLOBAL_DEF("rendering/volumetric_fog/volume_depth", 128); - ProjectSettings::get_singleton()->set_custom_property_info("rendering/volumetric_fog/volume_depth", PropertyInfo(Variant::INT, "rendering/volumetric_fog/volume_depth", PROPERTY_HINT_RANGE, "16,512,1")); - GLOBAL_DEF("rendering/volumetric_fog/use_filter", 1); - ProjectSettings::get_singleton()->set_custom_property_info("rendering/volumetric_fog/use_filter", PropertyInfo(Variant::INT, "rendering/volumetric_fog/use_filter", PROPERTY_HINT_ENUM, "No (Faster),Yes (Higher Quality)")); - - GLOBAL_DEF("rendering/spatial_indexer/update_iterations_per_frame", 10); - ProjectSettings::get_singleton()->set_custom_property_info("rendering/spatial_indexer/update_iterations_per_frame", PropertyInfo(Variant::INT, "rendering/spatial_indexer/update_iterations_per_frame", PROPERTY_HINT_RANGE, "0,1024,1")); - GLOBAL_DEF("rendering/spatial_indexer/threaded_cull_minimum_instances", 1000); - ProjectSettings::get_singleton()->set_custom_property_info("rendering/spatial_indexer/threaded_cull_minimum_instances", PropertyInfo(Variant::INT, "rendering/spatial_indexer/threaded_cull_minimum_instances", PROPERTY_HINT_RANGE, "32,65536,1")); - GLOBAL_DEF("rendering/forward_renderer/threaded_render_minimum_instances", 500); - ProjectSettings::get_singleton()->set_custom_property_info("rendering/forward_renderer/threaded_render_minimum_instances", PropertyInfo(Variant::INT, "rendering/forward_renderer/threaded_render_minimum_instances", PROPERTY_HINT_RANGE, "32,65536,1")); - - GLOBAL_DEF("rendering/cluster_builder/max_clustered_elements", 512); - ProjectSettings::get_singleton()->set_custom_property_info("rendering/cluster_builder/max_clustered_elements", PropertyInfo(Variant::FLOAT, "rendering/cluster_builder/max_clustered_elements", PROPERTY_HINT_RANGE, "32,8192,1")); + GLOBAL_DEF("rendering/shadows/directional_shadow/size", 4096); + GLOBAL_DEF("rendering/shadows/directional_shadow/size.mobile", 2048); + ProjectSettings::get_singleton()->set_custom_property_info("rendering/shadows/directional_shadow/size", PropertyInfo(Variant::INT, "rendering/shadows/directional_shadow/size", PROPERTY_HINT_RANGE, "256,16384")); + GLOBAL_DEF("rendering/shadows/directional_shadow/soft_shadow_quality", 2); + GLOBAL_DEF("rendering/shadows/directional_shadow/soft_shadow_quality.mobile", 0); + ProjectSettings::get_singleton()->set_custom_property_info("rendering/shadows/directional_shadow/soft_shadow_quality", PropertyInfo(Variant::INT, "rendering/shadows/directional_shadow/soft_shadow_quality", PROPERTY_HINT_ENUM, "Hard (Fastest),Soft Low (Fast),Soft Medium (Average),Soft High (Slow),Soft Ultra (Slowest)")); + GLOBAL_DEF("rendering/shadows/directional_shadow/16_bits", true); + + GLOBAL_DEF("rendering/shadows/shadows/soft_shadow_quality", 2); + GLOBAL_DEF("rendering/shadows/shadows/soft_shadow_quality.mobile", 0); + ProjectSettings::get_singleton()->set_custom_property_info("rendering/shadows/shadows/soft_shadow_quality", PropertyInfo(Variant::INT, "rendering/shadows/shadows/soft_shadow_quality", PROPERTY_HINT_ENUM, "Hard (Fastest),Soft Low (Fast),Soft Medium (Average),Soft High (Slow),Soft Ultra (Slowest)")); + + GLOBAL_DEF("rendering/2d/shadow_atlas/size", 2048); + + GLOBAL_DEF("rendering/driver/rd_renderer/use_low_end_renderer", false); + GLOBAL_DEF("rendering/driver/rd_renderer/use_low_end_renderer.mobile", true); + + GLOBAL_DEF("rendering/reflections/sky_reflections/roughness_layers", 8); + GLOBAL_DEF("rendering/reflections/sky_reflections/texture_array_reflections", true); + GLOBAL_DEF("rendering/reflections/sky_reflections/texture_array_reflections.mobile", false); + GLOBAL_DEF("rendering/reflections/sky_reflections/ggx_samples", 1024); + GLOBAL_DEF("rendering/reflections/sky_reflections/ggx_samples.mobile", 128); + GLOBAL_DEF("rendering/reflections/sky_reflections/fast_filter_high_quality", false); + GLOBAL_DEF("rendering/reflections/reflection_atlas/reflection_size", 256); + GLOBAL_DEF("rendering/reflections/reflection_atlas/reflection_size.mobile", 128); + GLOBAL_DEF("rendering/reflections/reflection_atlas/reflection_count", 64); + + GLOBAL_DEF("rendering/global_illumination/gi/use_half_resolution", false); + + GLOBAL_DEF("rendering/global_illumination/gi_probes/anisotropic", false); + GLOBAL_DEF("rendering/global_illumination/gi_probes/quality", 1); + ProjectSettings::get_singleton()->set_custom_property_info("rendering/global_illumination/gi_probes/quality", PropertyInfo(Variant::INT, "rendering/global_illumination/gi_probes/quality", PROPERTY_HINT_ENUM, "Low (4 Cones - Fast),High (6 Cones - Slow)")); + + GLOBAL_DEF("rendering/shading/overrides/force_vertex_shading", false); + GLOBAL_DEF("rendering/shading/overrides/force_vertex_shading.mobile", true); + GLOBAL_DEF("rendering/shading/overrides/force_lambert_over_burley", false); + GLOBAL_DEF("rendering/shading/overrides/force_lambert_over_burley.mobile", true); + GLOBAL_DEF("rendering/shading/overrides/force_blinn_over_ggx", false); + GLOBAL_DEF("rendering/shading/overrides/force_blinn_over_ggx.mobile", true); + + GLOBAL_DEF("rendering/driver/depth_prepass/enable", true); + GLOBAL_DEF("rendering/driver/depth_prepass/disable_for_vendors", "PowerVR,Mali,Adreno,Apple"); + + GLOBAL_DEF("rendering/textures/default_filters/use_nearest_mipmap_filter", false); + GLOBAL_DEF("rendering/textures/default_filters/anisotropic_filtering_level", 2); + ProjectSettings::get_singleton()->set_custom_property_info("rendering/textures/default_filters/anisotropic_filtering_level", PropertyInfo(Variant::INT, "rendering/textures/default_filters/anisotropic_filtering_level", PROPERTY_HINT_ENUM, "Disabled (Fastest),2x (Faster),4x (Fast),8x (Average),16x (Slow)")); + + GLOBAL_DEF("rendering/camera/depth_of_field/depth_of_field_bokeh_shape", 1); + ProjectSettings::get_singleton()->set_custom_property_info("rendering/camera/depth_of_field/depth_of_field_bokeh_shape", PropertyInfo(Variant::INT, "rendering/camera/depth_of_field/depth_of_field_bokeh_shape", PROPERTY_HINT_ENUM, "Box (Fast),Hexagon (Average),Circle (Slow)")); + GLOBAL_DEF("rendering/camera/depth_of_field/depth_of_field_bokeh_quality", 2); + ProjectSettings::get_singleton()->set_custom_property_info("rendering/camera/depth_of_field/depth_of_field_bokeh_quality", PropertyInfo(Variant::INT, "rendering/camera/depth_of_field/depth_of_field_bokeh_quality", PROPERTY_HINT_ENUM, "Very Low (Fastest),Low (Fast),Medium (Average),High (Slow)")); + GLOBAL_DEF("rendering/camera/depth_of_field/depth_of_field_use_jitter", false); + + GLOBAL_DEF("rendering/environment/ssao/quality", 2); + ProjectSettings::get_singleton()->set_custom_property_info("rendering/environment/ssao/quality", PropertyInfo(Variant::INT, "rendering/environment/ssao/quality", PROPERTY_HINT_ENUM, "Very Low (Fast),Low (Fast),Medium (Average),High (Slow),Ultra (Custom)")); + GLOBAL_DEF("rendering/environment/ssao/half_size", false); + GLOBAL_DEF("rendering/environment/ssao/half_size.mobile", true); + GLOBAL_DEF("rendering/environment/ssao/adaptive_target", 0.5); + ProjectSettings::get_singleton()->set_custom_property_info("rendering/environment/ssao/adaptive_target", PropertyInfo(Variant::FLOAT, "rendering/environment/ssao/adaptive_target", PROPERTY_HINT_RANGE, "0.0,1.0,0.01")); + GLOBAL_DEF("rendering/environment/ssao/blur_passes", 2); + ProjectSettings::get_singleton()->set_custom_property_info("rendering/environment/ssao/blur_passes", PropertyInfo(Variant::INT, "rendering/environment/ssao/blur_passes", PROPERTY_HINT_RANGE, "0,6")); + GLOBAL_DEF("rendering/environment/ssao/fadeout_from", 50.0); + ProjectSettings::get_singleton()->set_custom_property_info("rendering/environment/ssao/fadeout_from", PropertyInfo(Variant::FLOAT, "rendering/environment/ssao/fadeout_from", PROPERTY_HINT_RANGE, "0.0,512,0.1,or_greater")); + GLOBAL_DEF("rendering/environment/ssao/fadeout_to", 300.0); + ProjectSettings::get_singleton()->set_custom_property_info("rendering/environment/ssao/fadeout_to", PropertyInfo(Variant::FLOAT, "rendering/environment/ssao/fadeout_to", PROPERTY_HINT_RANGE, "64,65536,0.1,or_greater")); + + GLOBAL_DEF("rendering/anti_aliasing/screen_space_roughness_limiter/enabled", true); + GLOBAL_DEF("rendering/anti_aliasing/screen_space_roughness_limiter/amount", 0.25); + GLOBAL_DEF("rendering/anti_aliasing/screen_space_roughness_limiter/limit", 0.18); + ProjectSettings::get_singleton()->set_custom_property_info("rendering/anti_aliasing/screen_space_roughness_limiter/amount", PropertyInfo(Variant::FLOAT, "rendering/anti_aliasing/screen_space_roughness_limiter/amount", PROPERTY_HINT_RANGE, "0.01,4.0,0.01")); + ProjectSettings::get_singleton()->set_custom_property_info("rendering/anti_aliasing/screen_space_roughness_limiter/limit", PropertyInfo(Variant::FLOAT, "rendering/anti_aliasing/screen_space_roughness_limiter/limit", PROPERTY_HINT_RANGE, "0.01,1.0,0.01")); + + GLOBAL_DEF("rendering/environment/glow/upscale_mode", 1); + ProjectSettings::get_singleton()->set_custom_property_info("rendering/environment/glow/upscale_mode", PropertyInfo(Variant::INT, "rendering/environment/glow/upscale_mode", PROPERTY_HINT_ENUM, "Linear (Fast),Bicubic (Slow)")); + GLOBAL_DEF("rendering/environment/glow/upscale_mode.mobile", 0); + GLOBAL_DEF("rendering/environment/glow/use_high_quality", false); + + GLOBAL_DEF("rendering/environment/screen_space_reflection/roughness_quality", 1); + ProjectSettings::get_singleton()->set_custom_property_info("rendering/environment/screen_space_reflection/roughness_quality", PropertyInfo(Variant::INT, "rendering/environment/screen_space_reflection/roughness_quality", PROPERTY_HINT_ENUM, "Disabled (Fastest),Low (Fast),Medium (Average),High (Slow)")); + + GLOBAL_DEF("rendering/environment/subsurface_scattering/subsurface_scattering_quality", 1); + ProjectSettings::get_singleton()->set_custom_property_info("rendering/environment/subsurface_scattering/subsurface_scattering_quality", PropertyInfo(Variant::INT, "rendering/environment/subsurface_scattering/subsurface_scattering_quality", PROPERTY_HINT_ENUM, "Disabled (Fastest),Low (Fast),Medium (Average),High (Slow)")); + GLOBAL_DEF("rendering/environment/subsurface_scattering/subsurface_scattering_scale", 0.05); + ProjectSettings::get_singleton()->set_custom_property_info("rendering/environment/subsurface_scattering/subsurface_scattering_scale", PropertyInfo(Variant::FLOAT, "rendering/environment/subsurface_scattering/subsurface_scattering_scale", PROPERTY_HINT_RANGE, "0.001,1,0.001")); + GLOBAL_DEF("rendering/environment/subsurface_scattering/subsurface_scattering_depth_scale", 0.01); + ProjectSettings::get_singleton()->set_custom_property_info("rendering/environment/subsurface_scattering/subsurface_scattering_depth_scale", PropertyInfo(Variant::FLOAT, "rendering/environment/subsurface_scattering/subsurface_scattering_depth_scale", PROPERTY_HINT_RANGE, "0.001,1,0.001")); + + GLOBAL_DEF("rendering/limits/global_shader_variables/buffer_size", 65536); + + GLOBAL_DEF("rendering/lightmapping/probe_capture/update_speed", 15); + ProjectSettings::get_singleton()->set_custom_property_info("rendering/lightmapping/probe_capture/update_speed", PropertyInfo(Variant::FLOAT, "rendering/lightmapping/probe_capture/update_speed", PROPERTY_HINT_RANGE, "0.001,256,0.001")); + + GLOBAL_DEF("rendering/global_illumination/sdfgi/probe_ray_count", 1); + ProjectSettings::get_singleton()->set_custom_property_info("rendering/global_illumination/sdfgi/probe_ray_count", PropertyInfo(Variant::INT, "rendering/global_illumination/sdfgi/probe_ray_count", PROPERTY_HINT_ENUM, "8 (Fastest),16,32,64,96,128 (Slowest)")); + GLOBAL_DEF("rendering/global_illumination/sdfgi/frames_to_converge", 4); + ProjectSettings::get_singleton()->set_custom_property_info("rendering/global_illumination/sdfgi/frames_to_converge", PropertyInfo(Variant::INT, "rendering/global_illumination/sdfgi/frames_to_converge", PROPERTY_HINT_ENUM, "5 (Less Latency but Lower Quality),10,15,20,25,30 (More Latency but Higher Quality)")); + GLOBAL_DEF("rendering/global_illumination/sdfgi/frames_to_update_lights", 2); + ProjectSettings::get_singleton()->set_custom_property_info("rendering/global_illumination/sdfgi/frames_to_update_lights", PropertyInfo(Variant::INT, "rendering/global_illumination/sdfgi/frames_to_update_lights", PROPERTY_HINT_ENUM, "1 (Slower),2,4,8,16 (Faster)")); + + GLOBAL_DEF("rendering/environment/volumetric_fog/volume_size", 64); + ProjectSettings::get_singleton()->set_custom_property_info("rendering/environment/volumetric_fog/volume_size", PropertyInfo(Variant::INT, "rendering/environment/volumetric_fog/volume_size", PROPERTY_HINT_RANGE, "16,512,1")); + GLOBAL_DEF("rendering/environment/volumetric_fog/volume_depth", 128); + ProjectSettings::get_singleton()->set_custom_property_info("rendering/environment/volumetric_fog/volume_depth", PropertyInfo(Variant::INT, "rendering/environment/volumetric_fog/volume_depth", PROPERTY_HINT_RANGE, "16,512,1")); + GLOBAL_DEF("rendering/environment/volumetric_fog/use_filter", 1); + ProjectSettings::get_singleton()->set_custom_property_info("rendering/environment/volumetric_fog/use_filter", PropertyInfo(Variant::INT, "rendering/environment/volumetric_fog/use_filter", PROPERTY_HINT_ENUM, "No (Faster),Yes (Higher Quality)")); + + GLOBAL_DEF("rendering/limits/spatial_indexer/update_iterations_per_frame", 10); + ProjectSettings::get_singleton()->set_custom_property_info("rendering/limits/spatial_indexer/update_iterations_per_frame", PropertyInfo(Variant::INT, "rendering/limits/spatial_indexer/update_iterations_per_frame", PROPERTY_HINT_RANGE, "0,1024,1")); + GLOBAL_DEF("rendering/limits/spatial_indexer/threaded_cull_minimum_instances", 1000); + ProjectSettings::get_singleton()->set_custom_property_info("rendering/limits/spatial_indexer/threaded_cull_minimum_instances", PropertyInfo(Variant::INT, "rendering/limits/spatial_indexer/threaded_cull_minimum_instances", PROPERTY_HINT_RANGE, "32,65536,1")); + GLOBAL_DEF("rendering/limits/forward_renderer/threaded_render_minimum_instances", 500); + ProjectSettings::get_singleton()->set_custom_property_info("rendering/limits/forward_renderer/threaded_render_minimum_instances", PropertyInfo(Variant::INT, "rendering/limits/forward_renderer/threaded_render_minimum_instances", PROPERTY_HINT_RANGE, "32,65536,1")); + + GLOBAL_DEF("rendering/limits/cluster_builder/max_clustered_elements", 512); + ProjectSettings::get_singleton()->set_custom_property_info("rendering/limits/cluster_builder/max_clustered_elements", PropertyInfo(Variant::FLOAT, "rendering/limits/cluster_builder/max_clustered_elements", PROPERTY_HINT_RANGE, "32,8192,1")); } RenderingServer::~RenderingServer() { diff --git a/tests/test_class_db.h b/tests/test_class_db.h index b1440b83ef..9ef4569c14 100644 --- a/tests/test_class_db.h +++ b/tests/test_class_db.h @@ -340,7 +340,14 @@ void validate_property(const Context &p_context, const ExposedClass &p_class, co if (prop_class) { TEST_COND(prop_class->is_singleton, "Property type is a singleton: '", p_class.name, ".", String(p_prop.name), "'."); + + if (p_class.api_type == ClassDB::API_CORE) { + TEST_COND(prop_class->api_type == ClassDB::API_EDITOR, + "Property '", p_class.name, ".", p_prop.name, "' has type '", prop_class->name, + "' from the editor API. Core API cannot have dependencies on the editor API."); + } } else { + // Look for types that don't inherit Object TEST_FAIL_COND(!p_context.has_type(prop_type_ref), "Property type '", prop_type_ref.name, "' not found: '", p_class.name, ".", String(p_prop.name), "'."); } @@ -370,10 +377,22 @@ void validate_property(const Context &p_context, const ExposedClass &p_class, co } void validate_method(const Context &p_context, const ExposedClass &p_class, const MethodData &p_method) { - const ExposedClass *return_class = p_context.find_exposed_class(p_method.return_type); - if (return_class) { - TEST_COND(return_class->is_singleton, - "Method return type is a singleton: '", p_class.name, ".", p_method.name, "'."); + if (p_method.return_type.name != StringName()) { + const ExposedClass *return_class = p_context.find_exposed_class(p_method.return_type); + if (return_class) { + TEST_COND(return_class->is_singleton, + "Method return type is a singleton: '", p_class.name, ".", p_method.name, "'."); + + if (p_class.api_type == ClassDB::API_CORE) { + TEST_COND(return_class->api_type == ClassDB::API_EDITOR, + "Method '", p_class.name, ".", p_method.name, "' has return type '", return_class->name, + "' from the editor API. Core API cannot have dependencies on the editor API."); + } + } else { + // Look for types that don't inherit Object + TEST_FAIL_COND(!p_context.has_type(p_method.return_type), + "Method return type '", p_method.return_type.name, "' not found: '", p_class.name, ".", p_method.name, "'."); + } } for (const List<ArgumentData>::Element *F = p_method.arguments.front(); F; F = F->next()) { @@ -383,7 +402,14 @@ void validate_method(const Context &p_context, const ExposedClass &p_class, cons if (arg_class) { TEST_COND(arg_class->is_singleton, "Argument type is a singleton: '", arg.name, "' of method '", p_class.name, ".", p_method.name, "'."); + + if (p_class.api_type == ClassDB::API_CORE) { + TEST_COND(arg_class->api_type == ClassDB::API_EDITOR, + "Argument '", arg.name, "' of method '", p_class.name, ".", p_method.name, "' has type '", + arg_class->name, "' from the editor API. Core API cannot have dependencies on the editor API."); + } } else { + // Look for types that don't inherit Object TEST_FAIL_COND(!p_context.has_type(arg.type), "Argument type '", arg.type.name, "' not found: '", arg.name, "' of method", p_class.name, ".", p_method.name, "'."); } @@ -407,8 +433,15 @@ void validate_signal(const Context &p_context, const ExposedClass &p_class, cons const ExposedClass *arg_class = p_context.find_exposed_class(arg.type); if (arg_class) { TEST_COND(arg_class->is_singleton, - "Argument class is a singleton: '", arg.name, "' of signal", p_class.name, ".", p_signal.name, "'."); + "Argument class is a singleton: '", arg.name, "' of signal '", p_class.name, ".", p_signal.name, "'."); + + if (p_class.api_type == ClassDB::API_CORE) { + TEST_COND(arg_class->api_type == ClassDB::API_EDITOR, + "Argument '", arg.name, "' of signal '", p_class.name, ".", p_signal.name, "' has type '", + arg_class->name, "' from the editor API. Core API cannot have dependencies on the editor API."); + } } else { + // Look for types that don't inherit Object TEST_FAIL_COND(!p_context.has_type(arg.type), "Argument type '", arg.type.name, "' not found: '", arg.name, "' of signal", p_class.name, ".", p_signal.name, "'."); } diff --git a/tests/test_render.cpp b/tests/test_render.cpp index 2a4ae8bd73..72b2840098 100644 --- a/tests/test_render.cpp +++ b/tests/test_render.cpp @@ -183,8 +183,8 @@ public: //vs->light_set_shadow( lightaux, true ); light = vs->instance_create2(lightaux, scenario); Transform lla; - //lla.set_look_at(Vector3(),Vector3(1,-1,1),Vector3(0,1,0)); - lla.set_look_at(Vector3(), Vector3(-0.000000, -0.836026, -0.548690), Vector3(0, 1, 0)); + //lla.set_look_at(Vector3(),Vector3(1, -1, 1)); + lla.set_look_at(Vector3(), Vector3(0.0, -0.836026, -0.548690)); vs->instance_set_transform(light, lla); |