control.h   control.h 
skipping to change at line 32 skipping to change at line 32
/** /**
* @file jack/control.h * @file jack/control.h
* @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/types.h>
#include <jack/jslist.h> #include <jack/jslist.h>
#include <jack/systemdeps.h> #include <jack/systemdeps.h>
#if !defined (__sun__) #if !defined(sun) && !defined(__sun__)
#include <stdbool.h> #include <stdbool.h>
#endif #endif
/** 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 */
skipping to change at line 84 skipping to change at line 85
/** opaque type for driver object */ /** opaque type for driver object */
typedef struct jackctl_driver jackctl_driver_t; typedef struct jackctl_driver jackctl_driver_t;
/** opaque type for internal client object */ /** opaque type for internal client object */
typedef struct jackctl_internal jackctl_internal_t; typedef struct jackctl_internal jackctl_internal_t;
/** opaque type for parameter object */ /** opaque type for parameter object */
typedef struct jackctl_parameter jackctl_parameter_t; typedef struct jackctl_parameter jackctl_parameter_t;
/** opaque type for sigmask object */
typedef struct jackctl_sigmask jackctl_sigmask_t;
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif #endif
#if 0 #if 0
} /* Adjust editor indent */ } /* Adjust editor indent */
#endif #endif
/** /**
* @defgroup ControlAPI The API for starting and controlling a JACK server * @defgroup ControlAPI The API for starting and controlling a JACK server
* @{ * @{
skipping to change at line 105 skipping to change at line 109
/** /**
* Call this function to setup process signal handling. As a general * Call this function to setup process signal handling. As a general
* rule, it is required for proper operation for the server object. * rule, it is required for proper operation for the server object.
* *
* @param flags signals setup flags, use 0 for none. Currently no * @param flags signals setup flags, use 0 for none. Currently no
* flags are defined * flags are defined
* *
* @return the configurated signal set. * @return the configurated signal set.
*/ */
sigset_t jackctl_sigmask_t *
jackctl_setup_signals( jackctl_setup_signals(
unsigned int flags); unsigned int flags);
/** /**
* Call this function to wait on a signal set. * Call this function to wait on a signal set.
* *
* @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); jackctl_sigmask_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_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. * @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
skipping to change at line 333 skipping to change at line 337
* @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 parse parameters for a driver.
*
* @param driver driver object handle
* @param argc parameter list len
* @param argv parameter list, as an array of char*
*
* @return success status: true - success, false - fail
*/
int
jackctl_driver_params_parse(
jackctl_driver_t * driver,
int argc,
char* argv[]);
/**
* Call this function to get name of internal client. * Call this function to get name of internal client.
* *
* @param internal internal object handle to get name of * @param internal internal object handle to get name of
* *
* @return internal name. Must not be modified. Always same for same * @return internal name. Must not be modified. Always same for same
* internal object. * internal object.
*/ */
const char * const char *
jackctl_internal_get_name( jackctl_internal_get_name(
jackctl_internal_t * internal); jackctl_internal_t * internal);
 End of changes. 6 change blocks. 
3 lines changed or deleted 22 lines changed or added


 intclient.h   intclient.h 
skipping to change at line 43 skipping to change at line 43
* and @ref JackNameNotUnique status was returned. In that case, the * and @ref JackNameNotUnique status was returned. In that case, the
* actual name will differ from the @a client_name requested. * actual name will differ from the @a client_name requested.
* *
* @param client requesting JACK client's handle. * @param client requesting JACK client's handle.
* *
* @param intclient handle returned from jack_internal_client_load() * @param intclient handle returned from jack_internal_client_load()
* or jack_internal_client_handle(). * or jack_internal_client_handle().
* *
* @return NULL if unsuccessful, otherwise pointer to the internal * @return NULL if unsuccessful, otherwise pointer to the internal
* client name obtained from the heap via malloc(). The caller should * client name obtained from the heap via malloc(). The caller should
* free() this storage when no longer needed. * jack_free() this storage when no longer needed.
*/ */
char *jack_get_internal_client_name (jack_client_t *client, char *jack_get_internal_client_name (jack_client_t *client,
jack_intclient_t intclient); jack_intclient_t intclient);
/** /**
* Return the @ref jack_intclient_t handle for an internal client * Return the @ref jack_intclient_t handle for an internal client
* running in the JACK server. * running in the JACK server.
* *
* @param client requesting JACK client's handle. * @param client requesting JACK client's handle.
* *
 End of changes. 1 change blocks. 
1 lines changed or deleted 1 lines changed or added


 jack.h   jack.h 
skipping to change at line 80 skipping to change at line 80
/** /**
* Call this function to get version of the JACK, in form of a string * Call this function to get version of the JACK, in form of a string
* *
* @return Human readable string describing JACK version being used. * @return Human readable string describing JACK version being used.
* *
*/ */
const char * const char *
jack_get_version_string() JACK_OPTIONAL_WEAK_EXPORT; jack_get_version_string() JACK_OPTIONAL_WEAK_EXPORT;
/** /**
* @defgroup ClientFunctions Creating & manipulating clients
* @{
*/
/**
* Open an external client session with a JACK server. This interface * Open an external client session with a JACK server. This interface
* is more complex but more powerful than jack_client_new(). With it, * is more complex but more powerful than jack_client_new(). With it,
* clients may choose which of several servers to connect, and control * clients may choose which of several servers to connect, and control
* whether and how to start the server automatically, if it was not * whether and how to start the server automatically, if it was not
* already running. There is also an option for JACK to generate a * already running. There is also an option for JACK to generate a
* unique client name, when necessary. * unique client name, when necessary.
* *
* @param client_name of at most jack_client_name_size() characters. * @param client_name of at most jack_client_name_size() characters.
* The name scope is local to each server. Unless forbidden by the * The name scope is local to each server. Unless forbidden by the
* @ref JackUseExactName option, the server will modify this name to * @ref JackUseExactName option, the server will modify this name to
skipping to change at line 173 skipping to change at line 178
* *
* @return 0 if successful. * @return 0 if successful.
*/ */
int jack_internal_client_new (const char *client_name, int jack_internal_client_new (const char *client_name,
const char *load_name, const char *load_name,
const char *load_init) JACK_OPTIONAL_WEAK_DEP RECATED_EXPORT; const char *load_init) JACK_OPTIONAL_WEAK_DEP RECATED_EXPORT;
/** /**
* Remove an internal client from a JACK server. * Remove an internal client from a JACK server.
* *
* @deprecated Please use jack_internal_client_load(). * @deprecated Please use jack_internal_client_unload().
*/ */
void jack_internal_client_close (const char *client_name) JACK_OPTIONAL_WEA K_DEPRECATED_EXPORT; void jack_internal_client_close (const char *client_name) JACK_OPTIONAL_WEA K_DEPRECATED_EXPORT;
/** /**
* Tell the Jack server that the program is ready to start processing * Tell the Jack server that the program is ready to start processing
* audio. * audio.
* *
* @return 0 on success, otherwise a non-zero error code * @return 0 on success, otherwise a non-zero error code
*/ */
int jack_activate (jack_client_t *client) JACK_OPTIONAL_WEAK_EXPORT; int jack_activate (jack_client_t *client) JACK_OPTIONAL_WEAK_EXPORT;
skipping to change at line 201 skipping to change at line 206
*/ */
int jack_deactivate (jack_client_t *client) JACK_OPTIONAL_WEAK_EXPORT; int jack_deactivate (jack_client_t *client) JACK_OPTIONAL_WEAK_EXPORT;
/** /**
* @return pid of client. If not available, 0 will be returned. * @return pid of client. If not available, 0 will be returned.
*/ */
int jack_get_client_pid (const char *name) JACK_OPTIONAL_WEAK_EXPORT; int jack_get_client_pid (const char *name) JACK_OPTIONAL_WEAK_EXPORT;
/** /**
* @return the pthread ID of the thread running the JACK client side * @return the pthread ID of the thread running the JACK client side
* code. * real-time code.
*/ */
jack_native_thread_t jack_client_thread_id (jack_client_t *) JACK_OPTIONAL_ WEAK_EXPORT; jack_native_thread_t jack_client_thread_id (jack_client_t *client) JACK_OPT IONAL_WEAK_EXPORT;
/*@}*/ /*@}*/
/** /**
* @param client pointer to JACK client structure. * @param client pointer to JACK client structure.
* *
* Check if the JACK subsystem is running with -R (--realtime). * Check if the JACK subsystem is running with -R (--realtime).
* *
* @return 1 if JACK is running realtime, 0 otherwise * @return 1 if JACK is running realtime, 0 otherwise
*/ */
skipping to change at line 227 skipping to change at line 232
* @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.
* *
* @deprecated Please use jack_cycle_wait() and jack_cycle_signal() functio ns. * @deprecated Please use jack_cycle_wait() and jack_cycle_signal() functio ns.
*/ */
jack_nframes_t jack_thread_wait (jack_client_t*, int status) JACK_OPTIONAL_ WEAK_EXPORT; jack_nframes_t jack_thread_wait (jack_client_t *client, int status) JACK_OP TIONAL_WEAK_EXPORT;
/** /**
* 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
*/ */
jack_nframes_t jack_cycle_wait (jack_client_t* client) JACK_OPTIONAL_WEAK_E XPORT; jack_nframes_t jack_cycle_wait (jack_client_t* client) JACK_OPTIONAL_WEAK_E XPORT;
skipping to change at line 435 skipping to change at line 440
* *
* All "notification events" are received in a seperated non RT thread, * All "notification events" are received in a seperated non RT thread,
* the code in the supplied function does not need to be * the code in the supplied function does not need to be
* suitable for real-time execution. * suitable for real-time execution.
* *
* 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.)
* *
* @return 0 on success, otherwise a non-zero error code * @return 0 on success, otherwise a non-zero error code
*/ */
int jack_set_client_registration_callback (jack_client_t *, int jack_set_client_registration_callback (jack_client_t *client,
JackClientRegistrationCallback JackClientRegistrationCallback
registration_callback, void *arg registration_callback, void *ar
) JACK_OPTIONAL_WEAK_EXPORT; g) JACK_OPTIONAL_WEAK_EXPORT;
/** /**
* Tell the JACK server to call @a registration_callback whenever a * Tell the JACK server to call @a registration_callback whenever a
* port is registered or unregistered, passing @a arg as a parameter. * port is registered or unregistered, passing @a arg as a parameter.
* *
* All "notification events" are received in a seperated non RT thread, * All "notification events" are received in a seperated non RT thread,
* the code in the supplied function does not need to be * the code in the supplied function does not need to be
* suitable for real-time execution. * suitable for real-time execution.
* *
* 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.)
* *
* @return 0 on success, otherwise a non-zero error code * @return 0 on success, otherwise a non-zero error code
*/ */
int jack_set_port_registration_callback (jack_client_t *, int jack_set_port_registration_callback (jack_client_t *client,
JackPortRegistrationCallback JackPortRegistrationCallback
registration_callback, void *arg) JACK_OPTIONAL_WEAK_EXPORT; registration_callback, void *arg) JACK_OPTIONAL_WEAK_EXPORT;
/** /**
* Tell the JACK server to call @a connect_callback whenever a * Tell the JACK server to call @a connect_callback whenever a
* port is connected or disconnected, passing @a arg as a parameter. * port is connected or disconnected, passing @a arg as a parameter.
* *
* All "notification events" are received in a seperated non RT thread, * All "notification events" are received in a seperated non RT thread,
* the code in the supplied function does not need to be * the code in the supplied function does not need to be
* suitable for real-time execution. * suitable for real-time execution.
* *
* 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.)
* *
* @return 0 on success, otherwise a non-zero error code * @return 0 on success, otherwise a non-zero error code
*/ */
int jack_set_port_connect_callback (jack_client_t *, int jack_set_port_connect_callback (jack_client_t *client,
JackPortConnectCallback JackPortConnectCallback
connect_callback, void *arg) JACK_OPTIO NAL_WEAK_EXPORT; connect_callback, void *arg) JACK_OPTIO NAL_WEAK_EXPORT;
/** /**
* Tell the JACK server to call @a rename_callback whenever a * Tell the JACK server to call @a rename_callback whenever a
* port is renamed, passing @a arg as a parameter. * port is renamed, passing @a arg as a parameter.
* *
* All "notification events" are received in a seperated non RT thread, * All "notification events" are received in a seperated non RT thread,
* the code in the supplied function does not need to be * the code in the supplied function does not need to be
* suitable for real-time execution. * suitable for real-time execution.
* *
* 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.)
* *
* @return 0 on success, otherwise a non-zero error code * @return 0 on success, otherwise a non-zero error code
*/ */
int jack_set_port_rename_callback (jack_client_t *, int jack_set_port_rename_callback (jack_client_t *client,
JackPortRenameCallback JackPortRenameCallback
rename_callback, void *arg) JACK_OPTIONA L_WEAK_EXPORT; rename_callback, void *arg) JACK_OPTIONA L_WEAK_EXPORT;
/** /**
* Tell the JACK server to call @a graph_callback whenever the * Tell the JACK server to call @a graph_callback whenever the
* processing graph is reordered, passing @a arg as a parameter. * processing graph is reordered, passing @a arg as a parameter.
* *
* All "notification events" are received in a seperated non RT thread, * All "notification events" are received in a seperated non RT thread,
* the code in the supplied function does not need to be * the code in the supplied function does not need to be
* suitable for real-time execution. * suitable for real-time execution.
* *
* 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.)
* *
* @return 0 on success, otherwise a non-zero error code * @return 0 on success, otherwise a non-zero error code
*/ */
int jack_set_graph_order_callback (jack_client_t *, int jack_set_graph_order_callback (jack_client_t *client,
JackGraphOrderCallback graph_callback, JackGraphOrderCallback graph_callback,
void *) JACK_OPTIONAL_WEAK_EXPORT; void *) JACK_OPTIONAL_WEAK_EXPORT;
/** /**
* Tell the JACK server to call @a xrun_callback whenever there is a * Tell the JACK server to call @a xrun_callback whenever there is a
* xrun, passing @a arg as a parameter. * xrun, passing @a arg as a parameter.
* *
* All "notification events" are received in a seperated non RT thread, * All "notification events" are received in a seperated non RT thread,
* the code in the supplied function does not need to be * the code in the supplied function does not need to be
* suitable for real-time execution. * suitable for real-time execution.
* *
* 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.)
* *
* @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 *client,
JackXRunCallback xrun_callback, void *arg) JACK _OPTIONAL_WEAK_EXPORT; JackXRunCallback xrun_callback, void *arg) JACK _OPTIONAL_WEAK_EXPORT;
/*@}*/ /*@}*/
/** /**
* Tell the Jack server to call @a latency_callback whenever it * Tell the Jack server to call @a latency_callback whenever it
* is necessary to recompute the latencies for some or all * is necessary to recompute the latencies for some or all
* Jack ports. * Jack ports.
* *
* @a latency_callback will be called twice each time it is * @a latency_callback will be called twice each time it is
skipping to change at line 578 skipping to change at line 583
* Clients that do not meet any of those conditions SHOULD * Clients that do not meet any of those conditions SHOULD
* register a latency callback. * register a latency callback.
* *
* See the documentation for @ref jack_port_set_latency_range() * See the documentation for @ref jack_port_set_latency_range()
* on how the callback should operate. Remember that the @a mode * on how the callback should operate. Remember that the @a mode
* argument given to the latency callback will need to be * argument given to the latency callback will need to be
* passed into @ref jack_port_set_latency_range() * passed into @ref jack_port_set_latency_range()
* *
* @return 0 on success, otherwise a non-zero error code * @return 0 on success, otherwise a non-zero error code
*/ */
int jack_set_latency_callback (jack_client_t *, int jack_set_latency_callback (jack_client_t *client,
JackLatencyCallback latency_callback, JackLatencyCallback latency_callback,
void *) JACK_WEAK_EXPORT; void *) JACK_WEAK_EXPORT;
/*@}*/ /*@}*/
/** /**
* @defgroup ServerClientControl Controlling & querying JACK server operati on * @defgroup ServerClientControl Controlling & querying JACK server operati on
* @{ * @{
*/ */
/** /**
skipping to change at line 716 skipping to change at line 721
const char *port_type, const char *port_type,
unsigned long flags, unsigned long flags,
unsigned long buffer_size) JACK_OPTIONAL_ WEAK_EXPORT; unsigned long buffer_size) JACK_OPTIONAL_ WEAK_EXPORT;
/** /**
* Remove the port from the client, disconnecting any existing * Remove the port from the client, disconnecting any existing
* connections. * connections.
* *
* @return 0 on success, otherwise a non-zero error code * @return 0 on success, otherwise a non-zero error code
*/ */
int jack_port_unregister (jack_client_t *, jack_port_t *) JACK_OPTIONAL_WEA K_EXPORT; int jack_port_unregister (jack_client_t *client, jack_port_t *port) JACK_OP TIONAL_WEAK_EXPORT;
/** /**
* This returns a pointer to the memory area associated with the * This returns a pointer to the memory area associated with the
* specified port. For an output port, it will be a memory area * specified port. For an output port, it will be a memory area
* that can be written to; for an input port, it will be an area * that can be written to; for an input port, it will be an area
* containing the data from the port's connection(s), or * containing the data from the port's connection(s), or
* zero-filled. if there are multiple inbound connections, the data * zero-filled. if there are multiple inbound connections, the data
* will be mixed appropriately. * will be mixed appropriately.
* *
* FOR OUTPUT PORTS ONLY : DEPRECATED in Jack 2.0 !! * FOR OUTPUT PORTS ONLY : DEPRECATED in Jack 2.0 !!
* --------------------------------------------------- * ---------------------------------------------------
* You may cache the value returned, but only between calls to * You may cache the value returned, but only between calls to
* your "blocksize" callback. For this reason alone, you should * your "blocksize" callback. For this reason alone, you should
* either never cache the return value or ensure you have * either never cache the return value or ensure you have
* a "blocksize" callback and be sure to invalidate the cached * a "blocksize" callback and be sure to invalidate the cached
* address from there. * address from there.
* *
* Caching output ports is DEPRECATED in Jack 2.0, due to some new optimiza tion (like "pipelining"). * Caching output ports is DEPRECATED in Jack 2.0, due to some new optimiza tion (like "pipelining").
* Port buffers have to be retrieved in each callback for proper functionni ng. * Port buffers have to be retrieved in each callback for proper functionni ng.
*/ */
void * jack_port_get_buffer (jack_port_t *, jack_nframes_t) JACK_OPTIONAL_W EAK_EXPORT; void * jack_port_get_buffer (jack_port_t *port, jack_nframes_t) JACK_OPTION AL_WEAK_EXPORT;
/** /**
* @return the full name of the jack_port_t (including the @a * @return the full name of the jack_port_t (including the @a
* "client_name:" prefix). * "client_name:" prefix).
* *
* @see jack_port_name_size(). * @see jack_port_name_size().
*/ */
const char * jack_port_name (const jack_port_t *port) JACK_OPTIONAL_WEAK_EX PORT; const char * jack_port_name (const jack_port_t *port) JACK_OPTIONAL_WEAK_EX PORT;
/** /**
skipping to change at line 774 skipping to change at line 779
const char * jack_port_type (const jack_port_t *port) JACK_OPTIONAL_WEAK_EX PORT; const char * jack_port_type (const jack_port_t *port) JACK_OPTIONAL_WEAK_EX PORT;
/** /**
* @return the @a port type id. * @return the @a port type id.
*/ */
jack_port_type_id_t jack_port_type_id (const jack_port_t *port) JACK_OPTION AL_WEAK_EXPORT; jack_port_type_id_t jack_port_type_id (const jack_port_t *port) JACK_OPTION AL_WEAK_EXPORT;
/** /**
* @return TRUE if the jack_port_t belongs to the jack_client_t. * @return TRUE if the jack_port_t belongs to the jack_client_t.
*/ */
int jack_port_is_mine (const jack_client_t *, const jack_port_t *port) JACK _OPTIONAL_WEAK_EXPORT; int jack_port_is_mine (const jack_client_t *client, const jack_port_t *port ) JACK_OPTIONAL_WEAK_EXPORT;
/** /**
* @return number of connections to or from @a port. * @return number of connections to or from @a port.
* *
* @pre The calling client must own @a port. * @pre The calling client must own @a port.
*/ */
int jack_port_connected (const jack_port_t *port) JACK_OPTIONAL_WEAK_EXPORT ; int jack_port_connected (const jack_port_t *port) JACK_OPTIONAL_WEAK_EXPORT ;
/** /**
* @return TRUE if the locally-owned @a port is @b directly connected * @return TRUE if the locally-owned @a port is @b directly connected
skipping to change at line 796 skipping to change at line 801
* *
* @see jack_port_name_size() * @see jack_port_name_size()
*/ */
int jack_port_connected_to (const jack_port_t *port, int jack_port_connected_to (const jack_port_t *port,
const char *port_name) JACK_OPTIONAL_WEAK_EXPOR T; const char *port_name) JACK_OPTIONAL_WEAK_EXPOR T;
/** /**
* @return a null-terminated array of full port names to which the @a * @return a null-terminated array of full port names to which the @a
* port is connected. If none, returns NULL. * port is connected. If none, returns NULL.
* *
* The caller is responsible for calling jack_free(3) on any non-NULL * The caller is responsible for calling jack_free() on any non-NULL
* returned value. * returned value.
* *
* @param port locally owned jack_port_t pointer. * @param port locally owned jack_port_t pointer.
* *
* @see jack_port_name_size(), jack_port_get_all_connections() * @see jack_port_name_size(), jack_port_get_all_connections()
*/ */
const char ** jack_port_get_connections (const jack_port_t *port) JACK_OPTI ONAL_WEAK_EXPORT; const char ** jack_port_get_connections (const jack_port_t *port) JACK_OPTI ONAL_WEAK_EXPORT;
/** /**
* @return a null-terminated array of full port names to which the @a * @return a null-terminated array of full port names to which the @a
* port is connected. If none, returns NULL. * port is connected. If none, returns NULL.
* *
* The caller is responsible for calling jack_free(3) on any non-NULL * The caller is responsible for calling jack_free() on any non-NULL
* returned value. * returned value.
* *
* This differs from jack_port_get_connections() in two important * This differs from jack_port_get_connections() in two important
* respects: * respects:
* *
* 1) You may not call this function from code that is * 1) You may not call this function from code that is
* executed in response to a JACK event. For example, * executed in response to a JACK event. For example,
* you cannot use it in a GraphReordered handler. * you cannot use it in a GraphReordered handler.
* *
* 2) You need not be the owner of the port to get information * 2) You need not be the owner of the port to get information
skipping to change at line 934 skipping to change at line 939
* *
* @pre The @ref JackPortFlags of the @a source_port must include @ref * @pre The @ref JackPortFlags of the @a source_port must include @ref
* JackPortIsOutput. * JackPortIsOutput.
* *
* @pre The @ref JackPortFlags of the @a destination_port must include * @pre The @ref JackPortFlags of the @a destination_port must include
* @ref JackPortIsInput. * @ref JackPortIsInput.
* *
* @return 0 on success, EEXIST if the connection is already made, * @return 0 on success, EEXIST if the connection is already made,
* otherwise a non-zero error code * otherwise a non-zero error code
*/ */
int jack_connect (jack_client_t *, int jack_connect (jack_client_t *client,
const char *source_port, const char *source_port,
const char *destination_port) JACK_OPTIONAL_WEAK_EXPORT; const char *destination_port) JACK_OPTIONAL_WEAK_EXPORT;
/** /**
* Remove a connection between two ports. * Remove a connection between two ports.
* *
* @pre The port types must be identical. * @pre The port types must be identical.
* *
* @pre The @ref JackPortFlags of the @a source_port must include @ref * @pre The @ref JackPortFlags of the @a source_port must include @ref
* JackPortIsOutput. * JackPortIsOutput.
* *
* @pre The @ref JackPortFlags of the @a destination_port must include * @pre The @ref JackPortFlags of the @a destination_port must include
* @ref JackPortIsInput. * @ref JackPortIsInput.
* *
* @return 0 on success, otherwise a non-zero error code * @return 0 on success, otherwise a non-zero error code
*/ */
int jack_disconnect (jack_client_t *, int jack_disconnect (jack_client_t *client,
const char *source_port, const char *source_port,
const char *destination_port) JACK_OPTIONAL_WEAK_EXPOR T; const char *destination_port) JACK_OPTIONAL_WEAK_EXPOR T;
/** /**
* Perform the same function as jack_disconnect() using port handles * Perform the same function as jack_disconnect() using port handles
* rather than names. This avoids the name lookup inherent in the * rather than names. This avoids the name lookup inherent in the
* name-based version. * name-based version.
* *
* Clients connecting their own ports are likely to use this function, * Clients connecting their own ports are likely to use this function,
* while generic connection clients (e.g. patchbays) would use * while generic connection clients (e.g. patchbays) would use
* jack_disconnect(). * jack_disconnect().
*/ */
int jack_port_disconnect (jack_client_t *, jack_port_t *) JACK_OPTIONAL_WEA K_EXPORT; int jack_port_disconnect (jack_client_t *client, jack_port_t *port) JACK_OP TIONAL_WEAK_EXPORT;
/** /**
* @return the maximum number of characters in a full JACK port name * @return the maximum number of characters in a full JACK port name
* including the final NULL character. This value is a constant. * including the final NULL character. This value is a constant.
* *
* A port's full name contains the owning client name concatenated * A port's full name contains the owning client name concatenated
* with a colon (:) followed by its short name and a NULL * with a colon (:) followed by its short name and a NULL
* character. * character.
*/ */
int jack_port_name_size(void) JACK_OPTIONAL_WEAK_EXPORT; int jack_port_name_size(void) JACK_OPTIONAL_WEAK_EXPORT;
skipping to change at line 1055 skipping to change at line 1060
* physical hardware controlled by the client. For example, * physical hardware controlled by the client. For example,
* for a client controlling a digital audio interface connected * for a client controlling a digital audio interface connected
* to an external digital converter, the latency setting should * to an external digital converter, the latency setting should
* include both buffering by the audio interface *and* the converter. * include both buffering by the audio interface *and* the converter.
* *
* @deprecated This method will be removed in the next major * @deprecated This method will be removed in the next major
* release of JACK. It should not be used in new code, and should * release of JACK. It should not be used in new code, and should
* be replaced by a latency callback that calls @ref * be replaced by a latency callback that calls @ref
* jack_port_set_latency_range(). * jack_port_set_latency_range().
*/ */
void jack_port_set_latency (jack_port_t *, jack_nframes_t) JACK_OPTIONAL_WE AK_DEPRECATED_EXPORT; void jack_port_set_latency (jack_port_t *port, jack_nframes_t) JACK_OPTIONA L_WEAK_DEPRECATED_EXPORT;
/** /**
* return the latency range defined by @a mode for * return the latency range defined by @a mode for
* @a port, in frames. * @a port, in frames.
* *
* See @ref LatencyFunctions for the definition of each latency value. * See @ref LatencyFunctions for the definition of each latency value.
* *
* This is normally used in the LatencyCallback. * This is normally used in the LatencyCallback.
* and therefor safe to execute from callbacks. * and therefor safe to execute from callbacks.
*/ */
skipping to change at line 1150 skipping to change at line 1155
* latency of its port using jack_port_set_latency * latency of its port using jack_port_set_latency
* and wants to ensure that all signal pathways in the graph * and wants to ensure that all signal pathways in the graph
* are updated with respect to the values that will be returned * are updated with respect to the values that will be returned
* by jack_port_get_total_latency. It allows a client * by jack_port_get_total_latency. It allows a client
* to change multiple port latencies without triggering a * to change multiple port latencies without triggering a
* recompute for each change. * recompute for each change.
* *
* @return zero for successful execution of the request. non-zero * @return zero for successful execution of the request. non-zero
* otherwise. * otherwise.
*/ */
int jack_recompute_total_latencies (jack_client_t*) JACK_OPTIONAL_WEAK_EXPO RT; int jack_recompute_total_latencies (jack_client_t *client) JACK_OPTIONAL_WE AK_EXPORT;
/** /**
* @return the time (in frames) between data being available or * @return the time (in frames) between data being available or
* delivered at/to a port, and the time at which it arrived at or is * delivered at/to a port, and the time at which it arrived at or is
* delivered to the "other side" of the port. E.g. for a physical * delivered to the "other side" of the port. E.g. for a physical
* audio output port, this is the time between writing to the port and * audio output port, this is the time between writing to the port and
* when the signal will leave the connector. For a physical audio * when the signal will leave the connector. For a physical audio
* input port, this is the time between the sound arriving at the * input port, this is the time between the sound arriving at the
* connector and the corresponding frames being readable from the * connector and the corresponding frames being readable from the
* port. * port.
skipping to change at line 1179 skipping to change at line 1184
/** /**
* The maximum of the sum of the latencies in every * The maximum of the sum of the latencies in every
* connection path that can be drawn between the port and other * connection path that can be drawn between the port and other
* ports with the @ref JackPortIsTerminal flag set. * ports with the @ref JackPortIsTerminal flag set.
* *
* @deprecated This method will be removed in the next major * @deprecated This method will be removed in the next major
* release of JACK. It should not be used in new code, and should * release of JACK. It should not be used in new code, and should
* be replaced by jack_port_get_latency_range() in any existing * be replaced by jack_port_get_latency_range() in any existing
* use cases. * use cases.
*/ */
jack_nframes_t jack_port_get_total_latency (jack_client_t *, jack_nframes_t jack_port_get_total_latency (jack_client_t *client,
jack_port_t *port) JACK_OPTIONAL _WEAK_DEPRECATED_EXPORT; jack_port_t *port) JACK_OPTIONAL _WEAK_DEPRECATED_EXPORT;
/** /**
* Request a complete recomputation of a port's total latency. This * Request a complete recomputation of a port's total latency. This
* can be called by a client that has just changed the internal * can be called by a client that has just changed the internal
* latency of its port using jack_port_set_latency * latency of its port using jack_port_set_latency
* and wants to ensure that all signal pathways in the graph * and wants to ensure that all signal pathways in the graph
* are updated with respect to the values that will be returned * are updated with respect to the values that will be returned
* by jack_port_get_total_latency. * by jack_port_get_total_latency.
* *
skipping to change at line 1218 skipping to change at line 1223
* @param port_name_pattern A regular expression used to select * @param port_name_pattern A regular expression used to select
* ports by name. If NULL or of zero length, no selection based * ports by name. If NULL or of zero length, no selection based
* on name will be carried out. * on name will be carried out.
* @param type_name_pattern A regular expression used to select * @param type_name_pattern A regular expression used to select
* ports by type. If NULL or of zero length, no selection based * ports by type. If NULL or of zero length, no selection based
* on type will be carried out. * on type will be carried out.
* @param flags A value used to select ports by their flags. * @param flags A value used to select ports by their flags.
* If zero, no selection based on flags will be carried out. * If zero, no selection based on flags will be carried out.
* *
* @return a NULL-terminated array of ports that match the specified * @return a NULL-terminated array of ports that match the specified
* arguments. The caller is responsible for calling jack_free(3) any * arguments. The caller is responsible for calling jack_free() any
* non-NULL returned value. * non-NULL returned value.
* *
* @see jack_port_name_size(), jack_port_type_size() * @see jack_port_name_size(), jack_port_type_size()
*/ */
const char ** jack_get_ports (jack_client_t *, const char ** jack_get_ports (jack_client_t *client,
const char *port_name_pattern, const char *port_name_pattern,
const char *type_name_pattern, const char *type_name_pattern,
unsigned long flags) JACK_OPTIONAL_WEAK_EXPOR T; unsigned long flags) JACK_OPTIONAL_WEAK_EXPOR T;
/** /**
* @return address of the jack_port_t named @a port_name. * @return address of the jack_port_t named @a port_name.
* *
* @see jack_port_name_size() * @see jack_port_name_size()
*/ */
jack_port_t * jack_port_by_name (jack_client_t *, const char *port_name) JA CK_OPTIONAL_WEAK_EXPORT; jack_port_t * jack_port_by_name (jack_client_t *client, const char *port_na me) JACK_OPTIONAL_WEAK_EXPORT;
/** /**
* @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_OPTIONAL_WEAK_E XPORT; jack_port_id_t port_id) JACK_OPTIONAL_WEAK_E XPORT;
/*@}*/ /*@}*/
/** /**
skipping to change at line 1283 skipping to change at line 1288
* when used during the process callback it always returns the same * when used during the process callback it always returns the same
* value (until the next process callback, where it will return * value (until the next process callback, where it will return
* that value + nframes, etc). The return value is guaranteed to be * that value + nframes, etc). The return value is guaranteed to be
* monotonic and linear in this fashion unless an xrun occurs. * monotonic and linear in this fashion unless an xrun occurs.
* If an xrun occurs, clients must check this value again, as time * 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 ). * 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_OPTI ONAL_WEAK_EXPORT; jack_nframes_t jack_last_frame_time (const jack_client_t *client) JACK_OPTI ONAL_WEAK_EXPORT;
/** /**
* This function may only be used from the process callback.
* It provides the internal cycle timing information as used by
* most of the other time related functions. This allows the
* caller to map between frame counts and microseconds with full
* precision (i.e. without rounding frame times to integers),
* and also provides e.g. the microseconds time of the start of
* the current cycle directly (it has to be computed otherwise).
*
* If the return value is zero, the following information is
* provided in the variables pointed to by the arguments:
*
* current_frames: the frame time counter at the start of the
* current cycle, same as jack_last_frame_time().
* current_usecs: the microseconds time at the start of the
* current cycle.
* next_usecs: the microseconds time of the start of the next
* next cycle as computed by the DLL.
* period_usecs: the current best estimate of the period time in
* microseconds.
*
* NOTES:
*
* Because of the types used, all the returned values except period_usecs
* are unsigned. In computations mapping between frames and microseconds
* *signed* differences are required. The easiest way is to compute those
* separately and assign them to the appropriate signed variables,
* int32_t for frames and int64_t for usecs. See the implementation of
* jack_frames_to_time() and Jack_time_to_frames() for an example.
*
* Unless there was an xrun, skipped cycles, or the current cycle is the
* first after freewheeling or starting Jack, the value of current_usecs
* will always be the value of next_usecs of the previous cycle.
*
* The value of period_usecs will in general NOT be exactly equal to
* the difference of next_usecs and current_usecs. This is because to
* ensure stability of the DLL and continuity of the mapping, a fraction
* of the loop error must be included in next_usecs. For an accurate
* mapping between frames and microseconds, the difference of next_usecs
* and current_usecs should be used, and not period_usecs.
*
* @return zero if OK, non-zero otherwise.
*/
int jack_get_cycle_times(const jack_client_t *client,
jack_nframes_t *current_frames,
jack_time_t *current_usecs,
jack_time_t *next_usecs,
float *period_usecs) JACK_OPTIONAL_WEAK_EX
PORT;
/**
* @return the 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_OPTIONAL_WEAK_EXPORT; jack_time_t jack_frames_to_time(const jack_client_t *client, jack_nframes_t ) JACK_OPTIONAL_WEAK_EXPORT;
/** /**
* @return the 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_OPTIONAL_WEAK_EXPORT; jack_nframes_t jack_time_to_frames(const jack_client_t *client, jack_time_t ) JACK_OPTIONAL_WEAK_EXPORT;
/** /**
skipping to change at line 1349 skipping to change at line 1403
* *
* The JACK library provides two built-in callbacks for this purpose: * The JACK library provides two built-in callbacks for this purpose:
* default_jack_info_callback() and silent_jack_info_callback(). * default_jack_info_callback() and silent_jack_info_callback().
*/ */
void jack_set_info_function (void (*func)(const char *)) JACK_OPTIONAL_WEAK _EXPORT; void jack_set_info_function (void (*func)(const char *)) JACK_OPTIONAL_WEAK _EXPORT;
/*@}*/ /*@}*/
/** /**
* The free function to be used on memory returned by jack_port_get_connect ions, * 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. * jack_port_get_all_connections, jack_get_ports and jack_get_internal_clie nt_name functions.
* This is MANDATORY on Windows when otherwise all nasty runtime version re lated crashes can occur. * 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. * Developers are strongly encouraged to use this function instead of the s tandard "free" function in new code.
* *
*/ */
void jack_free(void* ptr) JACK_OPTIONAL_WEAK_EXPORT; void jack_free(void* ptr) JACK_OPTIONAL_WEAK_EXPORT;
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif
 End of changes. 28 change blocks. 
29 lines changed or deleted 84 lines changed or added


 net.h   net.h 
skipping to change at line 43 skipping to change at line 43
#define DEFAULT_MTU 1500 #define DEFAULT_MTU 1500
#define MASTER_NAME_SIZE 256 #define MASTER_NAME_SIZE 256
#define SOCKET_ERROR -1 #define SOCKET_ERROR -1
enum JackNetEncoder { enum JackNetEncoder {
JackFloatEncoder = 0, // samples are transmitted as float JackFloatEncoder = 0, // samples are transmitted as float
JackIntEncoder = 1, // samples are transmitted as 16 bits integer JackIntEncoder = 1, // samples are transmitted as 16 bits integer
JackCeltEncoder = 2, // samples are transmitted using CELT codec (ht tp://www.celt-codec.org/) JackCeltEncoder = 2, // samples are transmitted using CELT codec (ht tp://www.celt-codec.org/)
JackOpusEncoder = 3, // samples are transmitted using OPUS codec (ht tp://www.opus-codec.org/)
}; };
typedef struct { typedef struct {
int audio_input; // from master or to slave (-1 for get master audio int audio_input; // from master or to slave (-1 to take master audio
physical outputs) physical inputs)
int audio_output; // to master or from slave (-1 for get master audio int audio_output; // to master or from slave (-1 to take master audio
physical inputs) physical outputs)
int midi_input; // from master or to slave (-1 for get master MIDI int midi_input; // from master or to slave (-1 to take master MIDI
physical outputs) physical inputs)
int midi_output; // to master or from slave (-1 for get master MIDI int midi_output; // to master or from slave (-1 to take master MIDI
physical inputs) physical outputs)
int mtu; // network Maximum Transmission Unit int mtu; // network Maximum Transmission Unit
int time_out; // in second, -1 means in infinite int time_out; // in second, -1 means in infinite
int encoder; // encoder type (one of JackNetEncoder) int encoder; // encoder type (one of JackNetEncoder)
int kbps; // KB per second for CELT encoder int kbps; // KB per second for CELT encoder
int latency; // network latency int latency; // network latency
} jack_slave_t; } jack_slave_t;
typedef struct { typedef struct {
int audio_input; // master audio physical outputs int audio_input; // master audio physical outputs (-
int audio_output; // master audio physical inputs 1 to take slave wanted audio inputs)
int midi_input; // master MIDI physical outputs int audio_output; // master audio physical inputs (-1
int midi_output; // master MIDI physical inputs to take slave wanted audio outputs)
int midi_input; // master MIDI physical outputs (-1
to take slave wanted MIDI inputs)
int midi_output; // master MIDI physical inputs (-1
to take slave wanted MIDI outputs)
jack_nframes_t buffer_size; // mater buffer size jack_nframes_t buffer_size; // mater buffer size
jack_nframes_t sample_rate; // mater sample rate jack_nframes_t sample_rate; // mater sample rate
char master_name[MASTER_NAME_SIZE]; // master machine name char master_name[MASTER_NAME_SIZE]; // master machine name
} jack_master_t; } jack_master_t;
/** /**
* jack_net_slave_t is an opaque type. You may only access it using the * jack_net_slave_t is an opaque type. You may only access it using the
* API provided. * API provided.
*/ */
 End of changes. 3 change blocks. 
12 lines changed or deleted 17 lines changed or added


 systemdeps.h   systemdeps.h 
/* /*
Copyright (C) 2004-2009 Grame Copyright (C) 2004-2012 Grame
This program is free software; you can redistribute it and/or modify This program is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published by it under the terms of the GNU Lesser General Public License as published by
the Free Software Foundation; either version 2.1 of the License, or the Free Software Foundation; either version 2.1 of the License, or
(at your option) any later version. (at your option) any later version.
This program is distributed in the hope that it will be useful, This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details. GNU General Public License for more details.
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/ */
#ifndef __jack_systemdeps_h__ #ifndef __jack_systemdeps_h__
#define __jack_systemdeps_h__ #define __jack_systemdeps_h__
#if defined(WIN32) && !defined(__CYGWIN__) && !defined(GNU_WIN32) #ifndef POST_PACKED_STRUCTURE
#include <windows.h> #ifdef __GNUC__
/* POST_PACKED_STRUCTURE needs to be a macro which
expands into a compiler directive. The directive must
tell the compiler to arrange the preceding structure
declaration so that it is packed on byte-boundaries rather
than use the natural alignment of the processor and/or
compiler.
*/
#define PRE_PACKED_STRUCTURE
#define POST_PACKED_STRUCTURE __attribute__((__packed__))
#else
#ifdef _MSC_VER
#define PRE_PACKED_STRUCTURE1 __pragma(pack(push,1))
#define PRE_PACKED_STRUCTURE PRE_PACKED_STRUCTURE1
/* PRE_PACKED_STRUCTURE needs to be a macro which
expands into a compiler directive. The directive must
tell the compiler to arrange the following structure
declaration so that it is packed on byte-boundaries rather
than use the natural alignment of the processor and/or
compiler.
*/
#define POST_PACKED_STRUCTURE ;__pragma(pack(pop))
/* and POST_PACKED_STRUCTURE needs to be a macro which
restores the packing to its previous setting */
#else
#define PRE_PACKED_STRUCTURE
#define POST_PACKED_STRUCTURE
#endif
#ifdef _MSC_VER /* Microsoft compiler */
#define __inline__ inline
#if (!defined(int8_t) && !defined(_STDINT_H))
#define __int8_t_defined
typedef char int8_t;
typedef unsigned char uint8_t;
typedef short int16_t;
typedef unsigned short uint16_t;
typedef long int32_t;
typedef unsigned long uint32_t;
typedef LONGLONG int64_t;
typedef ULONGLONG uint64_t;
#endif #endif
#elif __MINGW32__ /* MINGW */
#include <stdint.h>
#include <sys/types.h>
#else /* other compilers ...*/
#include <inttypes.h>
#include <pthread.h>
#include <sys/types.h>
#endif #endif
#if !defined(_PTHREAD_H) && !defined(PTHREAD_WIN32) #if defined(WIN32) && !defined(__CYGWIN__) && !defined(GNU_WIN32)
/**
* to make jack API independent of different thread implementations, #include <windows.h>
* we define jack_native_thread_t to HANDLE here.
*/ #ifdef _MSC_VER /* Microsoft compiler */
typedef HANDLE jack_native_thread_t; #define __inline__ inline
#else #if (!defined(int8_t) && !defined(_STDINT_H))
#ifdef PTHREAD_WIN32 // Added by JE - 10-10-2011 #define __int8_t_defined
#include <ptw32/pthread.h> // Makes sure we #include the ptw32 ver typedef char int8_t;
sion ! typedef unsigned char uint8_t;
typedef short int16_t;
typedef unsigned short uint16_t;
typedef long int32_t;
typedef unsigned long uint32_t;
typedef LONGLONG int64_t;
typedef ULONGLONG uint64_t;
#endif
#elif __MINGW32__ /* MINGW */
#include <stdint.h>
#include <sys/types.h>
#else /* other compilers ...*/
#include <inttypes.h>
#include <pthread.h>
#include <sys/types.h>
#endif
#if !defined(_PTHREAD_H) && !defined(PTHREAD_WIN32)
/**
* to make jack API independent of different thread implementation
s,
* we define jack_native_thread_t to HANDLE here.
*/
typedef HANDLE jack_native_thread_t;
#else
#ifdef PTHREAD_WIN32 // Added by JE - 10-10-2011
#include <ptw32/pthread.h> // Makes sure we #include the ptw32
version !
#endif
/**
* to make jack API independent of different thread implementation
s,
* we define jack_native_thread_t to pthread_t here.
*/
typedef pthread_t jack_native_thread_t;
#endif #endif
/**
* to make jack API independent of different thread implementations,
* we define jack_native_thread_t to pthread_t here.
*/
typedef pthread_t jack_native_thread_t;
#endif
#endif // WIN32 && !__CYGWIN__ && !GNU_WIN32 */ #endif // WIN32 && !__CYGWIN__ && !GNU_WIN32 */
#if defined(__APPLE__) || defined(__linux__) || defined(__sun__) || defined (sun) || defined(__unix__) || defined(__CYGWIN__) || defined(GNU_WIN32) #if defined(__APPLE__) || defined(__linux__) || defined(__sun__) || defined (sun) || defined(__unix__) || defined(__CYGWIN__) || defined(GNU_WIN32)
#if defined(__CYGWIN__) || defined(GNU_WIN32) #if defined(__CYGWIN__) || defined(GNU_WIN32)
#include <stdint.h> #include <stdint.h>
#endif #endif
#include <inttypes.h> #include <inttypes.h>
#include <pthread.h> #include <pthread.h>
#include <sys/types.h> #include <sys/types.h>
/** /**
* to make jack API independent of different thread implementations, * to make jack API independent of different thread implementation
* we define jack_native_thread_t to pthread_t here. s,
*/ * we define jack_native_thread_t to pthread_t here.
typedef pthread_t jack_native_thread_t; */
typedef pthread_t jack_native_thread_t;
#endif /* __APPLE__ || __linux__ || __sun__ || sun */ #endif /* __APPLE__ || __linux__ || __sun__ || sun */
#endif #endif
 End of changes. 9 change blocks. 
51 lines changed or deleted 92 lines changed or added


 types.h   types.h 
skipping to change at line 262 skipping to change at line 262
* @param mode playback or capture latency * @param mode playback or capture latency
* @param arg pointer to a client supplied data * @param arg pointer to a client supplied data
* *
* @return zero on success, non-zero on error * @return zero on success, non-zero on error
*/ */
typedef void (*JackLatencyCallback)(jack_latency_callback_mode_t mode, void *arg); typedef void (*JackLatencyCallback)(jack_latency_callback_mode_t mode, void *arg);
/** /**
* the new latency API operates on Ranges. * the new latency API operates on Ranges.
*/ */
PRE_PACKED_STRUCTURE
struct _jack_latency_range struct _jack_latency_range
{ {
/** /**
* minimum latency * minimum latency
*/ */
jack_nframes_t min; jack_nframes_t min;
/** /**
* maximum latency * maximum latency
*/ */
jack_nframes_t max; jack_nframes_t max;
}; } POST_PACKED_STRUCTURE;
typedef struct _jack_latency_range jack_latency_range_t; typedef struct _jack_latency_range jack_latency_range_t;
/** /**
* Prototype for the client supplied function that is called * Prototype for the client supplied function that is called
* by the engine anytime there is work to be done. * by the engine anytime there is work to be done.
* *
* @pre nframes == jack_get_buffer_size() * @pre nframes == jack_get_buffer_size()
* @pre nframes == pow(2,x) * @pre nframes == pow(2,x)
* *
skipping to change at line 551 skipping to change at line 552
JackBBTFrameOffset = 0x40, /**< Frame offset of BBT informatio n */ JackBBTFrameOffset = 0x40, /**< Frame offset of BBT informatio n */
JackAudioVideoRatio = 0x80, /**< audio frames per video frame */ JackAudioVideoRatio = 0x80, /**< audio frames per video frame */
JackVideoFrameOffset = 0x100 /**< frame offset of first video frame */ JackVideoFrameOffset = 0x100 /**< frame offset of first video frame */
} jack_position_bits_t; } jack_position_bits_t;
/** all valid position bits */ /** all valid position bits */
#define JACK_POSITION_MASK (JackPositionBBT|JackPositionTimecode) #define JACK_POSITION_MASK (JackPositionBBT|JackPositionTimecode)
#define EXTENDED_TIME_INFO #define EXTENDED_TIME_INFO
typedef struct { PRE_PACKED_STRUCTURE
struct _jack_position {
/* these four cannot be set from clients: the server sets them */ /* these four cannot be set from clients: the server sets them */
jack_unique_t unique_1; /**< unique ID */ jack_unique_t unique_1; /**< unique ID */
jack_time_t usecs; /**< monotonic, free-rolling */ jack_time_t usecs; /**< monotonic, free-rolling */
jack_nframes_t frame_rate; /**< current frame rate (per second ) */ jack_nframes_t frame_rate; /**< current frame rate (per second ) */
jack_nframes_t frame; /**< frame number, always present * / jack_nframes_t frame; /**< frame number, always present * /
jack_position_bits_t valid; /**< which other fields are valid * / jack_position_bits_t valid; /**< which other fields are valid * /
/* JackPositionBBT fields: */ /* JackPositionBBT fields: */
skipping to change at line 617 skipping to change at line 619
no video frame within this cycle. */ no video frame within this cycle. */
/* For binary compatibility, new fields should be allocated from /* For binary compatibility, new fields should be allocated from
* this padding area with new valid bits controlling access, so * this padding area with new valid bits controlling access, so
* the existing structure size and offsets are preserved. */ * the existing structure size and offsets are preserved. */
int32_t padding[7]; int32_t padding[7];
/* When (unique_1 == unique_2) the contents are consistent. */ /* When (unique_1 == unique_2) the contents are consistent. */
jack_unique_t unique_2; /**< unique ID */ jack_unique_t unique_2; /**< unique ID */
} jack_position_t; } POST_PACKED_STRUCTURE;
typedef struct _jack_position jack_position_t;
/** /**
* Prototype for the @a sync_callback defined by slow-sync clients. * Prototype for the @a sync_callback defined by slow-sync clients.
* When the client is active, this callback is invoked just before * When the client is active, this callback is invoked just before
* process() in the same thread. This occurs once after registration, * process() in the same thread. This occurs once after registration,
* then subsequently whenever some client requests a new position, or * then subsequently whenever some client requests a new position, or
* the transport enters the ::JackTransportStarting state. This * the transport enters the ::JackTransportStarting state. This
* realtime function must not wait. * realtime function must not wait.
* *
* The transport @a state will be: * The transport @a state will be:
 End of changes. 4 change blocks. 
3 lines changed or deleted 7 lines changed or added


 weakmacros.h   weakmacros.h 
skipping to change at line 70 skipping to change at line 70
#else #else
/* Add other things here for non-gcc platforms */ /* Add other things here for non-gcc platforms */
#ifdef WIN32 #ifdef WIN32
#define JACK_WEAK_EXPORT #define JACK_WEAK_EXPORT
#endif #endif
#endif #endif
#endif #endif
#ifndef JACK_WEAK_EXPORT
#define JACK_WEAK_EXPORT
#endif
#ifndef JACK_OPTIONAL_WEAK_EXPORT #ifndef JACK_OPTIONAL_WEAK_EXPORT
#define JACK_OPTIONAL_WEAK_EXPORT #define JACK_OPTIONAL_WEAK_EXPORT
#endif #endif
#ifndef JACK_OPTIONAL_WEAK_DEPRECATED_EXPORT #ifndef JACK_OPTIONAL_WEAK_DEPRECATED_EXPORT
#ifdef __GNUC__ #ifdef __GNUC__
#define JACK_OPTIONAL_WEAK_DEPRECATED_EXPORT __attribute__((__deprecated__) ) #define JACK_OPTIONAL_WEAK_DEPRECATED_EXPORT __attribute__((__deprecated__) )
#else #else
/* Add other things here for non-gcc platforms */ /* Add other things here for non-gcc platforms */
#ifdef WIN32 #ifdef WIN32
#define JACK_OPTIONAL_WEAK_DEPRECATED_EXPORT #define JACK_OPTIONAL_WEAK_DEPRECATED_EXPORT
#endif #endif
#endif /* __GNUC__ */ #endif /* __GNUC__ */
#ifndef JACK_OPTIONAL_WEAK_DEPRECATED_EXPORT
#define JACK_OPTIONAL_WEAK_DEPRECATED_EXPORT
#endif
#endif #endif
#endif /* __weakmacros_h__ */ #endif /* __weakmacros_h__ */
 End of changes. 2 change blocks. 
0 lines changed or deleted 9 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/