control.h   control.h 
skipping to change at line 34 skipping to change at line 34
* @ingroup publicheader * @ingroup publicheader
* @brief JACK control API * @brief JACK control API
* *
*/ */
#ifndef JACKCTL_H__2EEDAD78_DF4C_4B26_83B7_4FF1A446A47E__INCLUDED #ifndef JACKCTL_H__2EEDAD78_DF4C_4B26_83B7_4FF1A446A47E__INCLUDED
#define JACKCTL_H__2EEDAD78_DF4C_4B26_83B7_4FF1A446A47E__INCLUDED #define JACKCTL_H__2EEDAD78_DF4C_4B26_83B7_4FF1A446A47E__INCLUDED
#include <jack/jslist.h> #include <jack/jslist.h>
#include <jack/systemdeps.h> #include <jack/systemdeps.h>
#include <stdbool.h>
/** Parameter types, intentionally similar to jack_driver_param_type_t */ /** Parameter types, intentionally similar to jack_driver_param_type_t */
typedef enum typedef enum
{ {
JackParamInt = 1, /**< @brief value type is a signed i nteger */ JackParamInt = 1, /**< @brief value type is a signed i nteger */
JackParamUInt, /**< @brief value type is an unsigned integer */ JackParamUInt, /**< @brief value type is an unsigned integer */
JackParamChar, /**< @brief value type is a char */ JackParamChar, /**< @brief value type is a char */
JackParamString, /**< @brief value type is a string w ith max size of ::JACK_PARAM_STRING_MAX+1 chars */ JackParamString, /**< @brief value type is a string w ith max size of ::JACK_PARAM_STRING_MAX+1 chars */
JackParamBool, /**< @brief value type is a boolean */ JackParamBool, /**< @brief value type is a boolean */
} jackctl_param_type_t; } jackctl_param_type_t;
skipping to change at line 111 skipping to change at line 112
* *
* @param signals signals set to wait on * @param signals signals set to wait on
*/ */
void void
jackctl_wait_signals( jackctl_wait_signals(
sigset_t signals); sigset_t signals);
/** /**
* Call this function to create server object. * Call this function to create server object.
* *
* @param on_device_acquire - Optional callback to be called before device
is acquired. If false is returned, device usage will fail
* @param on_device_release - Optional callback to be called after device i
s released.
*
* @return server object handle, NULL if creation of server object * @return server object handle, NULL if creation of server object
* failed. Successfully created server object must be destroyed with * failed. Successfully created server object must be destroyed with
* paired call to ::jackctl_server_destroy * paired call to ::jackctl_server_destroy
*/ */
jackctl_server_t * jackctl_server_t *
jackctl_server_create(); jackctl_server_create(
bool (* on_device_acquire)(const char * device_name),
void (* on_device_release)(const char * device_name));
/** /**
* Call this function to destroy server object. * Call this function to destroy server object.
* *
* @param server server object handle to destroy * @param server server object handle to destroy
*/ */
void void
jackctl_server_destroy( jackctl_server_destroy(
jackctl_server_t * server); jackctl_server_t * server);
/** /**
* Call this function to get list of available drivers. List node data
* pointers is a driver object handle (::jackctl_driver_t).
*
* @param server server object handle to get drivers for
*
* @return Single linked list of driver object handles. Must not be
* modified. Always same for same server object.
*/
const JSList *
jackctl_server_get_drivers_list(
jackctl_server_t * server);
/**
* Call this function to start JACK server * Call this function to start JACK server
* *
* @param server server object handle * @param server server object handle
* @param driver driver to use * @param driver driver to use
* *
* @return success status: true - success, false - fail * @return success status: true - success, false - fail
*/ */
bool bool
jackctl_server_start( jackctl_server_start(
jackctl_server_t * server, jackctl_server_t * server,
skipping to change at line 165 skipping to change at line 158
* *
* @param server server object handle * @param server server object handle
* *
* @return success status: true - success, false - fail * @return success status: true - success, false - fail
*/ */
bool bool
jackctl_server_stop( jackctl_server_stop(
jackctl_server_t * server); jackctl_server_t * server);
/** /**
* Call this function to get list of available drivers. List node data
* pointers is a driver object handle (::jackctl_driver_t).
*
* @param server server object handle to get drivers for
*
* @return Single linked list of driver object handles. Must not be
* modified. Always same for same server object.
*/
const JSList *
jackctl_server_get_drivers_list(
jackctl_server_t * server);
/**
* Call this function to get list of server parameters. List node data * Call this function to get list of server parameters. List node data
* pointers is a parameter object handle (::jackctl_parameter_t). * pointers is a parameter object handle (::jackctl_parameter_t).
* *
* @param server server object handle to get parameters for * @param server server object handle to get parameters for
* *
* @return Single linked list of parameter object handles. Must not be * @return Single linked list of parameter object handles. Must not be
* modified. Always same for same server object. * modified. Always same for same server object.
*/ */
const JSList * const JSList *
jackctl_server_get_parameters( jackctl_server_get_parameters(
jackctl_server_t * server); jackctl_server_t * server);
/** /**
* Call this function to get list of available internal clients. List node
data
* pointers is a internal client object handle (::jackctl_internal_t).
*
* @param server server object handle to get internal clients for
*
* @return Single linked list of internal client object handles. Must not b
e
* modified. Always same for same server object.
*/
const JSList *
jackctl_server_get_internals_list(
jackctl_server_t * server);
/**
* Call this function to load one internal client.
*
* @param server server object handle
* @param internal internal to use
*
* @return success status: true - success, false - fail
*/
bool
jackctl_server_load_internal(
jackctl_server_t * server,
jackctl_internal_t * internal);
/**
* Call this function to unload one internal client.
*
* @param server server object handle
* @param internal internal to unload
*
* @return success status: true - success, false - fail
*/
bool
jackctl_server_unload_internal(
jackctl_server_t * server,
jackctl_internal_t * internal);
/**
* Call this function to add a slave in the driver slave list.
*
* @param server server object handle
* @param driver driver to add in the driver slave list.
*
* @return success status: true - success, false - fail
*/
bool
jackctl_server_add_slave(jackctl_server_t * server,
jackctl_driver_t * driver);
/**
* Call this function to remove a slave from the driver slave list.
*
* @param server server object handle
* @param driver driver to remove from the driver slave list.
*
* @return success status: true - success, false - fail
*/
bool
jackctl_server_remove_slave(jackctl_server_t * server,
jackctl_driver_t * driver);
/**
* Call this function to switch master driver.
*
* @param server server object handle
* @param driver driver to switch to
*
* @return success status: true - success, false - fail
*/
bool
jackctl_server_switch_master(jackctl_server_t * server,
jackctl_driver_t * driver);
/**
* Call this function to get name of driver. * Call this function to get name of driver.
* *
* @param driver driver object handle to get name of * @param driver driver object handle to get name of
* *
* @return driver name. Must not be modified. Always same for same * @return driver name. Must not be modified. Always same for same
* driver object. * driver object.
*/ */
const char * const char *
jackctl_driver_get_name( jackctl_driver_get_name(
jackctl_driver_t * driver); jackctl_driver_t * driver);
skipping to change at line 203 skipping to change at line 284
* @param driver driver object handle to get parameters for * @param driver driver object handle to get parameters for
* *
* @return Single linked list of parameter object handles. Must not be * @return Single linked list of parameter object handles. Must not be
* modified. Always same for same driver object. * modified. Always same for same driver object.
*/ */
const JSList * const JSList *
jackctl_driver_get_parameters( jackctl_driver_get_parameters(
jackctl_driver_t * driver); jackctl_driver_t * driver);
/** /**
* Call this function to get name of internal client.
*
* @param internal internal object handle to get name of
*
* @return internal name. Must not be modified. Always same for same
* internal object.
*/
const char *
jackctl_internal_get_name(
jackctl_internal_t * internal);
/**
* Call this function to get list of internal parameters. List node data
* pointers is a parameter object handle (::jackctl_parameter_t).
*
* @param internal internal object handle to get parameters for
*
* @return Single linked list of parameter object handles. Must not be
* modified. Always same for same internal object.
*/
const JSList *
jackctl_internal_get_parameters(
jackctl_internal_t * internal);
/**
* Call this function to get parameter name. * Call this function to get parameter name.
* *
* @param parameter parameter object handle to get name of * @param parameter parameter object handle to get name of
* *
* @return parameter name. Must not be modified. Always same for same * @return parameter name. Must not be modified. Always same for same
* parameter object. * parameter object.
*/ */
const char * const char *
jackctl_parameter_get_name( jackctl_parameter_get_name(
jackctl_parameter_t * parameter); jackctl_parameter_t * parameter);
skipping to change at line 417 skipping to change at line 523
* *
* @param parameter parameter object handle to check * @param parameter parameter object handle to check
* *
* @return whether parameter constraint is strict. * @return whether parameter constraint is strict.
*/ */
bool bool
jackctl_parameter_constraint_is_fake_value( jackctl_parameter_constraint_is_fake_value(
jackctl_parameter_t * parameter); jackctl_parameter_t * parameter);
/** /**
* Call this function to get list of available internal clients. List node
data
* pointers is a internal client object handle (::jackctl_internal_t).
*
* @param server server object handle to get internal clients for
*
* @return Single linked list of internal client object handles. Must not b
e
* modified. Always same for same server object.
*/
const JSList *
jackctl_server_get_internals_list(
jackctl_server_t * server);
/**
* Call this function to get name of internal client.
*
* @param internal internal object handle to get name of
*
* @return internal name. Must not be modified. Always same for same
* internal object.
*/
const char *
jackctl_internal_get_name(
jackctl_internal_t * internal);
/**
* Call this function to get list of internal parameters. List node data
* pointers is a parameter object handle (::jackctl_parameter_t).
*
* @param internal internal object handle to get parameters for
*
* @return Single linked list of parameter object handles. Must not be
* modified. Always same for same internal object.
*/
const JSList *
jackctl_internal_get_parameters(
jackctl_internal_t * internal);
/**
* Call this function to load one internal client.
*
* @param server server object handle
* @param internal internal to use
*
* @return success status: true - success, false - fail
*/
bool
jackctl_server_load_internal(
jackctl_server_t * server,
jackctl_internal_t * internal);
/**
* Call this function to unload one internal client.
*
* @param server server object handle
* @param internal internal to unload
*
* @return success status: true - success, false - fail
*/
bool
jackctl_server_unload_internal(
jackctl_server_t * server,
jackctl_internal_t * internal);
/**
* Call this function to log an error message. * Call this function to log an error message.
* *
* @param format string * @param format string
*/ */
void void
jack_error( jack_error(
const char *format, const char *format,
...); ...);
/** /**
 End of changes. 8 change blocks. 
80 lines changed or deleted 124 lines changed or added


 jack.h   jack.h 
skipping to change at line 111 skipping to change at line 111
* caller is not a JACK client. * caller is not a JACK client.
*/ */
jack_client_t * jack_client_open (const char *client_name, jack_client_t * jack_client_open (const char *client_name,
jack_options_t options, jack_options_t options,
jack_status_t *status, ...); jack_status_t *status, ...);
/** /**
* \bold THIS FUNCTION IS DEPRECATED AND SHOULD NOT BE USED IN * \bold THIS FUNCTION IS DEPRECATED AND SHOULD NOT BE USED IN
* NEW JACK CLIENTS * NEW JACK CLIENTS
* *
* @deprecated Please use jack_client_open().
*/ */
jack_client_t * jack_client_new (const char *client_name); jack_client_t * jack_client_new (const char *client_name);
/** /**
* Disconnects an external client from a JACK server. * Disconnects an external client from a JACK server.
* *
* @return 0 on success, otherwise a non-zero error code * @return 0 on success, otherwise a non-zero error code
*/ */
int jack_client_close (jack_client_t *client); int jack_client_close (jack_client_t *client);
skipping to change at line 215 skipping to change at line 216
/** /**
* @defgroup NonCallbackAPI The non-callback API * @defgroup NonCallbackAPI The non-callback API
* @{ * @{
*/ */
/** /**
* \bold THIS FUNCTION IS DEPRECATED AND SHOULD NOT BE USED IN * \bold THIS FUNCTION IS DEPRECATED AND SHOULD NOT BE USED IN
* NEW JACK CLIENTS. * NEW JACK CLIENTS.
* *
* It should be replace by use of @ jack_cycle_wait and @ jack_cycle_signal * @deprecated Please use jack_cycle_wait() and jack_cycle_signal() functio
functions. ns.
*
*/ */
jack_nframes_t jack_thread_wait (jack_client_t*, int status); jack_nframes_t jack_thread_wait (jack_client_t*, int status);
/** /**
* Wait until this JACK client should process data. * Wait until this JACK client should process data.
* *
* @param client - pointer to a JACK client structure * @param client - pointer to a JACK client structure
* *
* @return the number of frames of data to process * @return the number of frames of data to process
*/ */
skipping to change at line 239 skipping to change at line 239
/** /**
* Signal next clients in the graph. * Signal next clients in the graph.
* *
* @param client - pointer to a JACK client structure * @param client - pointer to a JACK client structure
* @param status - if non-zero, calling thread should exit * @param status - if non-zero, calling thread should exit
*/ */
void jack_cycle_signal (jack_client_t* client, int status); void jack_cycle_signal (jack_client_t* client, int status);
/** /**
* Tell the Jack server to call @a thread_callback in the RT thread. * Tell the Jack server to call @a thread_callback in the RT thread.
* Typical use are in conjunction with @a jack_cycle_wait and @ jack_cycle_ signal functions. * Typical use are in conjunction with @a jack_cycle_wait and @a jack_cycle _signal functions.
* The code in the supplied function must be suitable for real-time * The code in the supplied function must be suitable for real-time
* execution. That means that it cannot call functions that might * execution. That means that it cannot call functions that might
* block for a long time. This includes malloc, free, printf, * block for a long time. This includes malloc, free, printf,
* pthread_mutex_lock, sleep, wait, poll, select, pthread_join, * pthread_mutex_lock, sleep, wait, poll, select, pthread_join,
* pthread_cond_wait, etc, etc. See * pthread_cond_wait, etc, etc. See
* http://jackit.sourceforge.net/docs/design/design.html#SECTION00411000000 000000000 * http://jackit.sourceforge.net/docs/design/design.html#SECTION00411000000 000000000
* for more information. * for more information.
* *
* NOTE: this function cannot be called while the client is activated * NOTE: this function cannot be called while the client is activated
* (after jack_activate has been called.) * (after jack_activate has been called.)
skipping to change at line 486 skipping to change at line 486
* (after jack_activate has been called.) * (after jack_activate has been called.)
* *
* @return 0 on success, otherwise a non-zero error code * @return 0 on success, otherwise a non-zero error code
*/ */
int jack_set_xrun_callback (jack_client_t *, int jack_set_xrun_callback (jack_client_t *,
JackXRunCallback xrun_callback, void *arg); JackXRunCallback xrun_callback, void *arg);
/*@}*/ /*@}*/
/** /**
* @defgroup ServerControl Controlling & querying JACK server operation * @defgroup ServerClientControl Controlling & querying JACK server operati on
* @{ * @{
*/ */
/** /**
* Start/Stop JACK's "freewheel" mode. * Start/Stop JACK's "freewheel" mode.
* *
* When in "freewheel" mode, JACK no longer waits for * When in "freewheel" mode, JACK no longer waits for
* any external event to begin the start of the next process * any external event to begin the start of the next process
* cycle. * cycle.
* *
skipping to change at line 838 skipping to change at line 838
/** /**
* Remove @a alias as an alias for @a port. May be called at any time. * Remove @a alias as an alias for @a port. May be called at any time.
* *
* After a successful call, @a alias can no longer be * After a successful call, @a alias can no longer be
* used as a alternate name for the port. * used as a alternate name for the port.
* *
* @return 0 on success, otherwise a non-zero error code. * @return 0 on success, otherwise a non-zero error code.
*/ */
int jack_port_unset_alias (jack_port_t *port, const char *alias); int jack_port_unset_alias (jack_port_t *port, const char *alias);
/* /**
* Get any aliases known for @port. * Get any aliases known for @port.
* *
* @return the number of aliases discovered for the port * @return the number of aliases discovered for the port
*/ */
int jack_port_get_aliases (const jack_port_t *port, char* const aliases[2]) ; int jack_port_get_aliases (const jack_port_t *port, char* const aliases[2]) ;
/** /**
* If @ref JackPortCanMonitor is set for this @a port, turn input * If @ref JackPortCanMonitor is set for this @a port, turn input
* monitoring on or off. Otherwise, do nothing. * monitoring on or off. Otherwise, do nothing.
*/ */
skipping to change at line 987 skipping to change at line 987
* @return address of the jack_port_t of a @a port_id. * @return address of the jack_port_t of a @a port_id.
*/ */
jack_port_t * jack_port_by_id (jack_client_t *client, jack_port_t * jack_port_by_id (jack_client_t *client,
jack_port_id_t port_id); jack_port_id_t port_id);
/*@}*/ /*@}*/
/** /**
* @defgroup TimeFunctions Handling time * @defgroup TimeFunctions Handling time
* @{ * @{
*
* JACK time is in units of 'frames', according to the current sample rate.
* The absolute value of frame times is meaningless, frame times have meani
ng
* only relative to each other.
*/ */
/** /**
* @return the time in frames that has passed since the JACK server * @return the estimated time in frames that has passed since the JACK
* began the current process cycle. * server began the current process cycle.
*/ */
jack_nframes_t jack_frames_since_cycle_start (const jack_client_t *); jack_nframes_t jack_frames_since_cycle_start (const jack_client_t *);
/** /**
* @return an estimate of the current time in frames. This is a * @return the estimated current time in frames.
* running counter, no significance should be attached to its value, * This function is intended for use in other threads (not the process
* but it can be compared to a previously returned value. * callback). The return value can be compared with the value of
* jack_last_frame_time to relate time in other threads to JACK time.
*/ */
jack_nframes_t jack_frame_time (const jack_client_t *); jack_nframes_t jack_frame_time (const jack_client_t *);
/** /**
* @return the frame_time after the last processing of the graph * @return the precise time at the start of the current process cycle.
* this is only to be used from the process callback. * This function may only be used from the process callback, and can
* be used to interpret timestamps generated by jack_frame_time() in
* other threads with respect to the current process cycle.
* *
* This function can be used to put timestamps generated by * This is the only jack time function that returns exact time:
* jack_frame_time() in correlation to the current process cycle. * when used during the process callback it always returns the same
* value (until the next process callback, where it will return
* that value + nframes, etc). The return value is guaranteed to be
* monotonic and linear in this fashion unless an xrun occurs.
* If an xrun occurs, clients must check this value again, as time
* may have advanced in a non-linear way (e.g. cycles may have been skipped
).
*/ */
jack_nframes_t jack_last_frame_time (const jack_client_t *client); jack_nframes_t jack_last_frame_time (const jack_client_t *client);
/** /**
* @return estimated time in microseconds of the specified frame time * @return the estimated time in microseconds of the specified frame time
*/ */
jack_time_t jack_frames_to_time(const jack_client_t *client, jack_nframes_t ); jack_time_t jack_frames_to_time(const jack_client_t *client, jack_nframes_t );
/** /**
* @return estimated time in frames for the specified system time. * @return the estimated time in frames for the specified system time.
*/ */
jack_nframes_t jack_time_to_frames(const jack_client_t *client, jack_time_t ); jack_nframes_t jack_time_to_frames(const jack_client_t *client, jack_time_t );
/** /**
* @return return JACK's current system time in microseconds, * @return return JACK's current system time in microseconds,
* using JACK clock source. * using the JACK clock source.
* *
* The value returned is guaranteed to be monotonic, but not linear. * The value returned is guaranteed to be monotonic, but not linear.
*
* This function is a client version of @function jack_get_microseconds().
*/ */
jack_time_t jack_get_time(); jack_time_t jack_get_time();
/*@}*/ /*@}*/
/** /**
* @defgroup ErrorOutput Controlling error/information output * @defgroup ErrorOutput Controlling error/information output
*/ */
/*@{*/ /*@{*/
skipping to change at line 1050 skipping to change at line 1060
* *
* Set via jack_set_error_function(), otherwise a JACK-provided * Set via jack_set_error_function(), otherwise a JACK-provided
* default will print @a msg (plus a newline) to stderr. * default will print @a msg (plus a newline) to stderr.
* *
* @param msg error message text (no newline at end). * @param msg error message text (no newline at end).
*/ */
extern void (*jack_error_callback)(const char *msg); extern void (*jack_error_callback)(const char *msg);
/** /**
* Set the @ref jack_error_callback for error message display. * Set the @ref jack_error_callback for error message display.
* Set it to NULL to restore default_jack_error_callback function.
* *
* The JACK library provides two built-in callbacks for this purpose: * The JACK library provides two built-in callbacks for this purpose:
* default_jack_error_callback() and silent_jack_error_callback(). * default_jack_error_callback() and silent_jack_error_callback().
*/ */
void jack_set_error_function (void (*func)(const char *)); void jack_set_error_function (void (*func)(const char *));
/** /**
* Display JACK info message. * Display JACK info message.
* *
* Set via jack_set_info_function(), otherwise a JACK-provided * Set via jack_set_info_function(), otherwise a JACK-provided
* default will print @a msg (plus a newline) to stdout. * default will print @a msg (plus a newline) to stdout.
* *
* @param msg info message text (no newline at end). * @param msg info message text (no newline at end).
*/ */
extern void (*jack_info_callback)(const char *msg); extern void (*jack_info_callback)(const char *msg);
/** /**
* Set the @ref jack_info_callback for info message display. * Set the @ref jack_info_callback for info message display.
* Set it to NULL to restore default_jack_info_callback function.
*
* The JACK library provides two built-in callbacks for this purpose:
* default_jack_info_callback() and silent_jack_info_callback().
*/ */
void jack_set_info_function (void (*func)(const char *)); void jack_set_info_function (void (*func)(const char *));
/*@}*/ /*@}*/
/**
* The free function to be used on memory returned by jack_port_get_connect
ions,
* jack_port_get_all_connections and jack_get_ports functions.
* This is MANDATORY on Windows when otherwise all nasty runtime version re
lated crashes can occur.
* Developers are strongly encouraged to use this function instead of the s
tandard "free" function in new code.
*
*/
void jack_free(void* ptr);
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif
#endif /* __jack_h__ */ #endif /* __jack_h__ */
 End of changes. 17 change blocks. 
20 lines changed or deleted 49 lines changed or added


 midiport.h   midiport.h 
skipping to change at line 46 skipping to change at line 46
jack_nframes_t time; /**< Sample index at which event is valid */ jack_nframes_t time; /**< Sample index at which event is valid */
size_t size; /**< Number of bytes of data in \a buffer */ size_t size; /**< Number of bytes of data in \a buffer */
jack_midi_data_t *buffer; /**< Raw MIDI data */ jack_midi_data_t *buffer; /**< Raw MIDI data */
} jack_midi_event_t; } jack_midi_event_t;
/** /**
* @defgroup MIDIAPI Reading and writing MIDI data * @defgroup MIDIAPI Reading and writing MIDI data
* @{ * @{
*/ */
/* Get number of events in a port buffer. /** Get number of events in a port buffer.
* *
* @param port_buffer Port buffer from which to retrieve event. * @param port_buffer Port buffer from which to retrieve event.
* @return number of events inside @a port_buffer * @return number of events inside @a port_buffer
*/ */
jack_nframes_t jack_nframes_t
jack_midi_get_event_count(void* port_buffer); jack_midi_get_event_count(void* port_buffer);
/** Get a MIDI event from an event port buffer. /** Get a MIDI event from an event port buffer.
* *
* Jack MIDI is normalised, the MIDI event returned by this function is * Jack MIDI is normalised, the MIDI event returned by this function is
 End of changes. 1 change blocks. 
1 lines changed or deleted 1 lines changed or added


 thread.h   thread.h 
skipping to change at line 140 skipping to change at line 140
* it is used, any threads that JACK needs for the client will * it is used, any threads that JACK needs for the client will
* will be created by calling the function passed to this * will be created by calling the function passed to this
* function. * function.
* *
* No normal application/client should consider calling this. * No normal application/client should consider calling this.
* The specific case for which it was created involves running * The specific case for which it was created involves running
* win32/x86 plugins under Wine on Linux, where it is necessary * win32/x86 plugins under Wine on Linux, where it is necessary
* that all threads that might call win32 functions are known * that all threads that might call win32 functions are known
* to Wine. * to Wine.
* *
* Set it to NULL to restore thread creation function.
*
* @param creator a function that creates a new thread * @param creator a function that creates a new thread
* *
*/ */
void jack_set_thread_creator (jack_thread_creator_t creator); void jack_set_thread_creator (jack_thread_creator_t creator);
#endif #endif
/* @} */ /* @} */
#ifdef __cplusplus #ifdef __cplusplus
 End of changes. 1 change blocks. 
0 lines changed or deleted 2 lines changed or added


 types.h   types.h 
skipping to change at line 642 skipping to change at line 643
int bar; int bar;
int beat; int beat;
int tick; int tick;
double bar_start_tick; double bar_start_tick;
float beats_per_bar; float beats_per_bar;
float beat_type; float beat_type;
double ticks_per_beat; double ticks_per_beat;
double beats_per_minute; double beats_per_minute;
} } jack_transport_info_t;
jack_transport_info_t;
#endif /* __jack_types_h__ */ #endif /* __jack_types_h__ */
 End of changes. 1 change blocks. 
2 lines changed or deleted 1 lines changed or added

This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/