|
1 | 1 | -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, |
3 | 3 | start_stop_sync_enable/1, is_start_stop_sync_enabled/0, set_is_playing/2, is_playing/0, get_time_for_is_playing/0,
|
4 | 4 | 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,
|
5 | 5 | request_beat_at_start_playing_time/2, set_is_playing_and_request_beat_at_time/4, set_callback_pid/1,
|
6 | 6 | get_current_time_microseconds/0, set_log_level/1]).
|
7 |
| --on_load(init/0). |
| 7 | + |
| 8 | +-define(APPLICATION, tau). |
| 9 | +-define(LIBNAME, "libsp_link"). |
8 | 10 |
|
9 | 11 | 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). |
16 | 24 |
|
17 | 25 | is_nif_loaded() ->
|
18 |
| - exit(nif_library_not_loaded). |
| 26 | + false. |
19 | 27 | is_nif_initialized() ->
|
20 |
| - exit(nif_library_not_loaded). |
| 28 | + false. |
21 | 29 | init_nif(_) ->
|
22 |
| - exit(nif_library_not_loaded). |
| 30 | + done. |
23 | 31 | deinit_nif() ->
|
24 |
| - exit(nif_library_not_loaded). |
25 |
| -enable(_) -> |
26 |
| - exit(nif_library_not_loaded). |
| 32 | + done. |
27 | 33 | 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. |
37 | 37 | 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. |
45 | 47 | get_beat_at_time(_, _) ->
|
46 |
| - exit(nif_library_not_loaded). |
| 48 | + 0. |
47 | 49 | get_phase_at_time(_, _) ->
|
48 |
| - exit(nif_library_not_loaded). |
| 50 | + 0. |
49 | 51 | get_time_at_beat(_, _) ->
|
50 |
| - exit(nif_library_not_loaded). |
| 52 | + 0. |
51 | 53 | request_beat_at_time(_, _, _) ->
|
52 |
| - exit(nif_library_not_loaded). |
| 54 | + 0. |
53 | 55 | 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. |
55 | 63 | request_beat_at_start_playing_time(_, _) ->
|
56 |
| - exit(nif_library_not_loaded). |
| 64 | + 0. |
57 | 65 | set_is_playing_and_request_beat_at_time(_, _, _, _) ->
|
58 |
| - exit(nif_library_not_loaded). |
| 66 | + done. |
59 | 67 | set_callback_pid(_) ->
|
60 |
| - exit(nif_library_not_loaded). |
| 68 | + done. |
61 | 69 | get_current_time_microseconds() ->
|
62 |
| - exit(nif_library_not_loaded). |
| 70 | + 0. |
63 | 71 | set_log_level(_) ->
|
64 |
| - exit(nif_library_not_loaded). |
| 72 | + done. |
| 73 | + |
0 commit comments