|
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 | | -caseos: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=casecode:priv_dir(?APPLICATION)of |
| 13 | + {error,bad_name} -> |
| 14 | +casefilelib: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 | + |