From 72e88670ac4a2aaf6509df6996db9a75d3c89275 Mon Sep 17 00:00:00 2001 From: Sam Aaron Date: Mon, 10 Feb 2025 19:08:19 +0000 Subject: [PATCH 1/3] Cmake - update min version --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 2b492b78e0..ff106415c4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,5 +1,5 @@ +cmake_minimum_required (VERSION 3.13) project (sp_link) -cmake_minimum_required (VERSION 3.0) set(CMAKE_VERBOSE_MAKEFILE ON) From e79049ffeea2430d02aa3ae4aef0a52817e00b77 Mon Sep 17 00:00:00 2001 From: Sam Aaron Date: Tue, 4 Mar 2025 12:25:08 +0000 Subject: [PATCH 2/3] Build - update min cmake versoin for external libs --- external_libs/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/external_libs/CMakeLists.txt b/external_libs/CMakeLists.txt index a7d1a4b297..e99fa6e03b 100644 --- a/external_libs/CMakeLists.txt +++ b/external_libs/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.13) project(Link) set(ERLANG_INCLUDE_PATH "/usr/local/lib/erlang/usr/include" CACHE PATH "Path to erlang includes") From e4a090dd224975c2332091989007b1e8d9ca7487 Mon Sep 17 00:00:00 2001 From: Sam Aaron Date: Tue, 27 May 2025 16:15:27 +0100 Subject: [PATCH 3/3] External - SP Link - update to match Sonic Pi's version --- src/sp_link.erl | 89 +++++++++++++++++++++++++++---------------------- 1 file changed, 49 insertions(+), 40 deletions(-) diff --git a/src/sp_link.erl b/src/sp_link.erl index 3568d80fe4..d6f6eac80e 100644 --- a/src/sp_link.erl +++ b/src/sp_link.erl @@ -1,64 +1,73 @@ -module(sp_link). --export([is_nif_loaded/0, is_nif_initialized/0, init_nif/1, deinit_nif/0, enable/1, is_enabled/0, set_tempo/2, get_tempo/0, get_num_peers/0, +-export([init/0, is_nif_loaded/0, is_nif_initialized/0, init_nif/1, deinit_nif/0, enable/1, is_enabled/0, set_tempo/2, get_tempo/0, get_num_peers/0, start_stop_sync_enable/1, is_start_stop_sync_enabled/0, set_is_playing/2, is_playing/0, get_time_for_is_playing/0, get_beat_at_time/2, get_phase_at_time/2, get_time_at_beat/2, request_beat_at_time/3, force_beat_at_time/3, request_beat_at_start_playing_time/2, set_is_playing_and_request_beat_at_time/4, set_callback_pid/1, get_current_time_microseconds/0, set_log_level/1]). --on_load(init/0). + +-define(APPLICATION, tau). +-define(LIBNAME, "libsp_link"). init() -> - case os:type() of - {win32, _} -> - ok = erlang:load_nif("D:/projects/sp_link/build/Debug/libsp_link", 0); - _Else -> - ok = erlang:load_nif("/home/luis/projects/sp_link/build/libsp_link", 0) - end. + SoName = case code:priv_dir(?APPLICATION) of + {error, bad_name} -> + case filelib:is_dir(filename:join(["..", priv])) of + true -> + filename:join(["..", priv, ?LIBNAME]); + _ -> + filename:join([priv, ?LIBNAME]) + end; + Dir -> + filename:join(Dir, ?LIBNAME) + end, + erlang:load_nif(SoName, 0). is_nif_loaded() -> - exit(nif_library_not_loaded). + false. is_nif_initialized() -> - exit(nif_library_not_loaded). + false. init_nif(_) -> - exit(nif_library_not_loaded). + done. deinit_nif() -> - exit(nif_library_not_loaded). -enable(_) -> - exit(nif_library_not_loaded). + done. is_enabled() -> - exit(nif_library_not_loaded). -set_tempo(_, _) -> - exit(nif_library_not_loaded). -get_tempo() -> - exit(nif_library_not_loaded). -get_num_peers() -> - exit(nif_library_not_loaded). -start_stop_sync_enable(_) -> - exit(nif_library_not_loaded). + false. +enable(_) -> + done. is_start_stop_sync_enabled() -> - exit(nif_library_not_loaded). -set_is_playing(_, _) -> - exit(nif_library_not_loaded). -is_playing() -> - exit(nif_library_not_loaded). -get_time_for_is_playing() -> - exit(nif_library_not_loaded). + false. +start_stop_sync_enable(_) -> + done. +get_num_peers() -> + 0. +get_tempo() -> + 60. +set_tempo(_, _) -> + done. get_beat_at_time(_, _) -> - exit(nif_library_not_loaded). + 0. get_phase_at_time(_, _) -> - exit(nif_library_not_loaded). + 0. get_time_at_beat(_, _) -> - exit(nif_library_not_loaded). + 0. request_beat_at_time(_, _, _) -> - exit(nif_library_not_loaded). + 0. force_beat_at_time(_, _, _) -> - exit(nif_library_not_loaded). + 0. +set_is_playing(_, _) -> + done. +is_playing() -> + false. +get_time_for_is_playing() -> + 0. request_beat_at_start_playing_time(_, _) -> - exit(nif_library_not_loaded). + 0. set_is_playing_and_request_beat_at_time(_, _, _, _) -> - exit(nif_library_not_loaded). + done. set_callback_pid(_) -> - exit(nif_library_not_loaded). + done. get_current_time_microseconds() -> - exit(nif_library_not_loaded). + 0. set_log_level(_) -> - exit(nif_library_not_loaded). + done. +