Skip to content

Commit 62b7f29

Browse files
committed
External - SP Link - update to match Sonic Pi's version
1 parent 32cdbcb commit 62b7f29

File tree

1 file changed

+49
-40
lines changed

1 file changed

+49
-40
lines changed

app/external/sp_link/src/sp_link.erl

Lines changed: 49 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -1,64 +1,73 @@
11
-module(sp_link).
2-
-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,
2+
-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,
33
start_stop_sync_enable/1, is_start_stop_sync_enabled/0, set_is_playing/2, is_playing/0, get_time_for_is_playing/0,
44
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,
55
request_beat_at_start_playing_time/2, set_is_playing_and_request_beat_at_time/4, set_callback_pid/1,
66
get_current_time_microseconds/0, set_log_level/1]).
7-
-on_load(init/0).
7+
8+
-define(APPLICATION, tau).
9+
-define(LIBNAME, "libsp_link").
810

911
init() ->
10-
case os:type() of
11-
{win32, _} ->
12-
ok = erlang:load_nif("D:/projects/sp_link/build/Debug/libsp_link", 0);
13-
_Else ->
14-
ok = erlang:load_nif("/home/luis/projects/sp_link/build/libsp_link", 0)
15-
end.
12+
SoName = case code:priv_dir(?APPLICATION) of
13+
{error, bad_name} ->
14+
case filelib:is_dir(filename:join(["..", priv])) of
15+
true ->
16+
filename:join(["..", priv, ?LIBNAME]);
17+
_ ->
18+
filename:join([priv, ?LIBNAME])
19+
end;
20+
Dir ->
21+
filename:join(Dir, ?LIBNAME)
22+
end,
23+
erlang:load_nif(SoName, 0).
1624

1725
is_nif_loaded() ->
18-
exit(nif_library_not_loaded).
26+
false.
1927
is_nif_initialized() ->
20-
exit(nif_library_not_loaded).
28+
false.
2129
init_nif(_) ->
22-
exit(nif_library_not_loaded).
30+
done.
2331
deinit_nif() ->
24-
exit(nif_library_not_loaded).
25-
enable(_) ->
26-
exit(nif_library_not_loaded).
32+
done.
2733
is_enabled() ->
28-
exit(nif_library_not_loaded).
29-
set_tempo(_, _) ->
30-
exit(nif_library_not_loaded).
31-
get_tempo() ->
32-
exit(nif_library_not_loaded).
33-
get_num_peers() ->
34-
exit(nif_library_not_loaded).
35-
start_stop_sync_enable(_) ->
36-
exit(nif_library_not_loaded).
34+
false.
35+
enable(_) ->
36+
done.
3737
is_start_stop_sync_enabled() ->
38-
exit(nif_library_not_loaded).
39-
set_is_playing(_, _) ->
40-
exit(nif_library_not_loaded).
41-
is_playing() ->
42-
exit(nif_library_not_loaded).
43-
get_time_for_is_playing() ->
44-
exit(nif_library_not_loaded).
38+
false.
39+
start_stop_sync_enable(_) ->
40+
done.
41+
get_num_peers() ->
42+
0.
43+
get_tempo() ->
44+
60.
45+
set_tempo(_, _) ->
46+
done.
4547
get_beat_at_time(_, _) ->
46-
exit(nif_library_not_loaded).
48+
0.
4749
get_phase_at_time(_, _) ->
48-
exit(nif_library_not_loaded).
50+
0.
4951
get_time_at_beat(_, _) ->
50-
exit(nif_library_not_loaded).
52+
0.
5153
request_beat_at_time(_, _, _) ->
52-
exit(nif_library_not_loaded).
54+
0.
5355
force_beat_at_time(_, _, _) ->
54-
exit(nif_library_not_loaded).
56+
0.
57+
set_is_playing(_, _) ->
58+
done.
59+
is_playing() ->
60+
false.
61+
get_time_for_is_playing() ->
62+
0.
5563
request_beat_at_start_playing_time(_, _) ->
56-
exit(nif_library_not_loaded).
64+
0.
5765
set_is_playing_and_request_beat_at_time(_, _, _, _) ->
58-
exit(nif_library_not_loaded).
66+
done.
5967
set_callback_pid(_) ->
60-
exit(nif_library_not_loaded).
68+
done.
6169
get_current_time_microseconds() ->
62-
exit(nif_library_not_loaded).
70+
0.
6371
set_log_level(_) ->
64-
exit(nif_library_not_loaded).
72+
done.
73+

0 commit comments

Comments
 (0)