JACK API differences - jackaudio/jackaudio.github.com GitHub Wiki
This pages summarizes "changes" in JACK client API between version 1 and 2
"not public" means that symbol is available in library but not declared in public header
Symbols present in jack1 but missing in jack2
B _jack_get_microseconds- not publicD jack_builtin_NULL_functions- not publicD jack_builtin_audio_functions- not publicD jack_builtin_midi_functions- not publicD jack_builtin_port_types- not publicD jack_tmpdir- not publicT cleanup_mlock- not publicT default_jack_error_callback- not publicT default_jack_info_callback- not publicT jack_attach_port_segment- not publicT jack_attach_shm- not publicT jack_call_sync_client- not publicT jack_call_timebase_master- not publicT jack_cleanup_shm- not publicT jack_client_alloc- not publicT jack_client_alloc_internal- not publicT jack_client_deliver_request- not publicT jack_client_handle_port_connection- not publicT jack_client_invalidate_port_buffers- not publicT jack_clock_source_name- not publicT jack_default_server_name- not publicT jack_destroy_shm- not publicT jack_dump_timestamps- public in <jack/timestamps.h>T jack_generate_unique_id- not publicT jack_get_free_shm_info- not publicT jack_get_mhz- not publicT jack_get_microseconds_from_cycles- not publicT jack_get_microseconds_from_system- not publicT jack_get_port_functions- not publicT jack_get_process_done_fd- not publicT jack_hpet_init- not publicT jack_init_time- not publicT jack_init_timestamps- public in <jack/timestamps.h>T jack_initialize_shm- not publicT jack_messagebuffer_add- not publicT jack_messagebuffer_exit- not publicT jack_messagebuffer_init- not publicT jack_pool_alloc- not publicT jack_pool_release- not publicT jack_port_by_id_int- not publicT jack_port_by_name_int- not publicT jack_port_name_equals- not publicT jack_port_new- not publicT jack_register_server- not publicT jack_release_shm- not publicT jack_release_shm_info- not publicT jack_reset_timestamps- public in <jack/timestamps.h>T jack_resize_shm- not publicT jack_server_dir- not publicT jack_set_clock_source- not publicT jack_shmalloc- not publicT jack_start_freewheel- not publicT jack_stop_freewheel- not publicT jack_timestamp- public in <jack/timestamps.h>T jack_transport_copy_position- not publicT jack_unregister_server- not publicT jack_user_dir- not publicT silent_jack_error_callback- not publicT start_server- not public
Symbols present in jack2 but missing in jack1
Lot of mangled C++ names- not publicT jack_client_kill_thread- new API function, appeared in r2548T jack_client_stop_thread- new API function, appeared in r2548T jack_get_client_pid- new API function, appeared in r2299T jack_get_version- new API function, appered in trunk in r2339, appeared in control branch in r2060T jack_get_version_string- new API function, appered in trunk in r2339, appeared in control branch in r2060T jack_log- not publicT jack_port_type_id- new API function, appered in trunk in r2339, appeared in control branch in r2051T jack_tls_allocate_key(unsigned int*)- not publicT jack_tls_free_key(unsigned int)- not publicT jack_tls_get(unsigned int)- not publicT jack_tls_set(unsigned int, void*)- not publicT set_threaded_log_function- not public
Script to create above overview
nm -CDg 1/usr/lib/libjack.so | grep -v ' U '|sed 's/^[0-9a-f]* //'|sort> jack1.syms
nm -CDg 2/usr/lib/libjack.so | grep -v ' U '|sed 's/^[0-9a-f]* //'|sort> jack2.syms
diff -u jack1.syms jack2.syms > jack12.diff
grep '^-[A-Z]' jack12.diff | sed 's/^-//'
grep '^+[A-Z]' jack12.diff | sed 's/^+//'|grep -v ::
for i in `grep '^+[A-Z]' jack12.diff | grep -v :: | sed 's/^+. \([^ (]*\).*/\1/'` ; do echo "searching for $i ..." ; find 2 -type f -exec grep -Hn $i {} \; ; done|grep -v 'Binary file'
for i in `grep '^-[A-Z]' jack12.diff | sed 's/^-. //'` ; do echo "searching for $i ..." ; find 1 -type f -exec grep -Hn $i {} \; ; done|grep -v 'Binary file'