diff --git a/GdpdExample/Main.tscn b/GdpdExample/Main.tscn new file mode 100644 index 0000000000000000000000000000000000000000..08937250694234a885585ed12aa719e7df34c1dd --- /dev/null +++ b/GdpdExample/Main.tscn @@ -0,0 +1,35 @@ +[gd_scene load_steps=2 format=2] + +[sub_resource type="GDScript" id=1] +script/source = "extends Control + +var gdpd = load(\"res://addons/gdpd/bin/gdpd.gdns\") +var patch + +func _ready(): + #initialize pd + patch = gdpd.new() + + #retrieve + var inps = patch.get_available_input_devices() + var outs = patch.get_available_output_devices() + patch.init_devices(inps[0], outs[0]) + + #the patch path should be the absolute one + _load_patch(ProjectSettings.globalize_path(\"res://patch1.pd\")) + _load_patch(ProjectSettings.globalize_path(\"res://patch2.pd\")) + + +func _load_patch(pd_patch) : + #separate file name from directory + var patch_name = pd_patch.split(\"/\")[-1] + var patch_dir = pd_patch.trim_suffix(patch_name) + + #load patch + patch.openfile(patch_name, patch_dir) +" + +[node name="Control" type="Control"] +anchor_right = 1.0 +anchor_bottom = 1.0 +script = SubResource( 1 ) diff --git a/bin/gdpd.gdns b/GdpdExample/addons/gdpd/bin/gdpd.gdns similarity index 100% rename from bin/gdpd.gdns rename to GdpdExample/addons/gdpd/bin/gdpd.gdns diff --git a/bin/libgdpd.gdnlib b/GdpdExample/addons/gdpd/bin/libgdpd.gdnlib similarity index 100% rename from bin/libgdpd.gdnlib rename to GdpdExample/addons/gdpd/bin/libgdpd.gdnlib diff --git a/GdpdExample/default_env.tres b/GdpdExample/default_env.tres new file mode 100644 index 0000000000000000000000000000000000000000..20207a4aa2cfbae0c95636531b00d91502940d12 --- /dev/null +++ b/GdpdExample/default_env.tres @@ -0,0 +1,7 @@ +[gd_resource type="Environment" load_steps=2 format=2] + +[sub_resource type="ProceduralSky" id=1] + +[resource] +background_mode = 2 +background_sky = SubResource( 1 ) diff --git a/GdpdExample/icon.png b/GdpdExample/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..9f3f45025404a96aa4f1f30de8ad04becd5cea73 Binary files /dev/null and b/GdpdExample/icon.png differ diff --git a/GdpdExample/icon.png.import b/GdpdExample/icon.png.import new file mode 100644 index 0000000000000000000000000000000000000000..96cbf4629a557eb7339eef87ad61b7e7d8c8f0e7 --- /dev/null +++ b/GdpdExample/icon.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://icon.png" +dest_files=[ "res://.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/GdpdExample/patch1.pd b/GdpdExample/patch1.pd new file mode 100644 index 0000000000000000000000000000000000000000..1b76f22db6ca7e7058e0a5c3f1f4d3fdabdba2ac Binary files /dev/null and b/GdpdExample/patch1.pd differ diff --git a/GdpdExample/patch2.pd b/GdpdExample/patch2.pd new file mode 100644 index 0000000000000000000000000000000000000000..a21bd1f0f0bbc0e0ca10b06711b81c5f93e550f0 Binary files /dev/null and b/GdpdExample/patch2.pd differ diff --git a/GdpdExample/project.godot b/GdpdExample/project.godot new file mode 100644 index 0000000000000000000000000000000000000000..ccec52e3f776f1b9920d0b5c74b7ec7bd2ba7ff3 --- /dev/null +++ b/GdpdExample/project.godot @@ -0,0 +1,27 @@ +; Engine configuration file. +; It's best edited using the editor UI and not directly, +; since the parameters that go here are not all obvious. +; +; Format: +; [section] ; section goes between [] +; param=value ; assign values to parameters + +config_version=4 + +_global_script_classes=[ ] +_global_script_class_icons={ + +} + +[application] + +config/name="GdpdExample" +run/main_scene="res://Main.tscn" +config/icon="res://icon.png" + +[rendering] + +quality/driver/driver_name="GLES2" +vram_compression/import_etc=true +vram_compression/import_etc2=false +environment/default_environment="res://default_env.tres" diff --git a/SConstruct b/SConstruct index 6ee59d1b58f67847c01445501746b8d75ce2b013..62b159afec1666beafda5da739cfbc68ada10ccd 100644 --- a/SConstruct +++ b/SConstruct @@ -12,7 +12,7 @@ opts.Add(EnumVariable('platform', "Compilation platform", '', ['', 'windows', 'x opts.Add(EnumVariable('p', "Compilation target, alias for 'platform'", '', ['', 'windows', 'x11', 'linux', 'osx'])) opts.Add(BoolVariable('use_llvm', "Use the LLVM / Clang compiler", 'no')) opts.Add(BoolVariable('use_mingw', "Use the MingW for cross-compiling", 'no')) -opts.Add(PathVariable('target_path', 'The path where the lib is installed.', 'bin/')) +opts.Add(PathVariable('target_path', 'The path where the lib is installed.', 'GdpdExample/addons/gdpd/bin/')) opts.Add(PathVariable('target_name', 'The library name.', 'libgdpd', PathVariable.PathAccept)) # Local dependency paths, adapt them to your setup @@ -91,11 +91,25 @@ elif env['platform'] == "windows": env['CXX'] = 'x86_64-w64-mingw32-g++-win32' env['CC'] = 'x86_64-w64-mingw32-gcc-win32' env.Append(CCFLAGS=['-g', '-O3', '-std=c++14', '-Wwrite-strings', '-fpermissive']) - env.Append(LINKFLAGS=['--static', '-Wl,--no-undefined', '-static-libgcc', '-static-libstdc++']) - env.Append(CPPDEFINES=['WIN32', '_WIN32', '_MSC_VER', '_WINDOWS', '_CRT_SECURE_NO_WARNINGS']) + #env.Append(LINKFLAGS=['--static', '-Wl,--no-undefined', '-static-libgcc', '-static-libstdc++']) + #env.Append(CPPDEFINES=['WIN32', '_WIN32', '_MSC_VER', '_WINDOWS', '_CRT_SECURE_NO_WARNINGS']) + env.Append(CFLAGS=['-DWINVER=0x502','-DWIN32','-D_WIN32','-Wno-int-to-pointer-cast', + '-Wno-pointer-to-int-cast']) + env.Append(CPPDEFINES=['HAVE_UNISTD_H=1','LIBPD_EXTRA=1','PD=1', + 'PD_INTERNAL','USEAPI_DUMMY=1','libpd_EXPORTS']) #env.Append(CPPDEFINES=['__WINDOWS_DS__', 'LIBPD_EXTRA']) env.Append(CPPDEFINES=['__RTAUDIO_DUMMY__', 'LIBPD_EXTRA']) env.Append(CFLAGS=['-DUSEAPI_DUMMY', '-DPD', '-DHAVE_UNISTD_H', '-D_GNU_SOURCE']) + env.Append(LDPATH=['/usr/x86_64-w64-mingw32/lib/']) + env.Append(LINKFLAGS=['-Wl,--export-all-symbols', + '-static-libgcc','/usr/x86_64-w64-mingw32/lib/libm.a']) + + #env.Append(LINKFLAGS=['-lkernel32','-luser32', '-lgdi32', + # '-lwinspool', '-lshell32', '-lole32', + # '-loleaut32', '-luuid', '-lcomdlg32', + # '-ladvapi32','-lws2_32', '-lwsock32']) + env.Append(LINKFLAGS=['/usr/x86_64-w64-mingw32/lib/libws2_32.a', + '/usr/x86_64-w64-mingw32/lib/libwsock32.a']) #env.Append(CPPDEFINES=['WINVER=0x502']) @@ -128,7 +142,7 @@ env.Append(CFLAGS=['-DUSEAPI_DUMMY', '-DPD', '-DHAVE_UNISTD_H', '-D_GNU_SOURCE'] # tweak this if you want to use different folders, or more folders, to store your source code in. env.Append(CPPPATH=['src/']) -sources = Glob('src/*.cpp') + Glob('src/rtaudio/*.cpp') + Glob('src/libpd/libpd_wrapper/*.c') + Glob('src/libpd/libpd_wrapper/util/*.c') + Glob('src/libpd/pure-data/extra/**/*.c') + Glob('src/libpd/pure-data/src/[xmgz]_*.c') + Glob('src/libpd/pure-data/src/d_[acgmorsu]*.c') + Glob('src/libpd/pure-data/src/d_dac.c') + Glob('src/libpd/pure-data/src/d_delay.c') + Glob('src/libpd/pure-data/src/d_fft.c') + Glob('src/libpd/pure-data/src/d_fft_fftsg.c') + Glob('src/libpd/pure-data/src/d_filter.c') + Glob('src/libpd/pure-data/src/s_audio.c') + Glob('src/libpd/pure-data/src/s_audio_dummy.c') + Glob('src/libpd/pure-data/src/s_print.c') + Glob('src/libpd/pure-data/src/s_path.c') + Glob('src/libpd/pure-data/src/s_main.c') + Glob('src/libpd/pure-data/src/s_inter.c') + Glob('src/libpd/pure-data/src/s_utf8.c') + Glob('src/libpd/pure-data/src/s_loader.c') + Glob('src/libpd/pure-data/extra/*.c') +sources = Glob('src/*.cpp') + Glob('src/rtaudio/*.cpp') + Glob('src/libpd/libpd_wrapper/*.c') + Glob('src/libpd/libpd_wrapper/util/*.c') + Glob('src/libpd/pure-data/extra/**/*.c') + Glob('src/libpd/pure-data/src/[xmgz]_*.c') + Glob('src/libpd/pure-data/src/d_[acgmorsu]*.c') + Glob('src/libpd/pure-data/src/d_dac.c') + Glob('src/libpd/pure-data/src/d_delay.c') + Glob('src/libpd/pure-data/src/d_fft.c') + Glob('src/libpd/pure-data/src/d_fft_fftsg.c') + Glob('src/libpd/pure-data/src/d_filter.c') + Glob('src/libpd/pure-data/src/s_audio.c') + Glob('src/libpd/pure-data/src/s_audio_dummy.c') + Glob('src/libpd/pure-data/src/s_print.c') + Glob('src/libpd/pure-data/src/s_path.c') + Glob('src/libpd/pure-data/src/s_main.c') + Glob('src/libpd/pure-data/src/s_inter.c') + Glob('src/libpd/pure-data/src/s_utf8.c') + Glob('src/libpd/pure-data/src/s_loader.c') + Glob('src/libpd/pure-data/extra/*.c') library = env.SharedLibrary(target=env['target_path'] + env['target_name'] , source=sources) diff --git a/src/rtaudio/RtAudio.os b/src/rtaudio/RtAudio.os index 067f8bb431a651b59d9ae5deccc671021129c206..e6c362417eea4c66694fb6a7fd4727c23093c67a 100644 Binary files a/src/rtaudio/RtAudio.os and b/src/rtaudio/RtAudio.os differ