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>
#if !defined (__sun__)
#include <stdbool.h> #include <stdbool.h>
#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 */
JackParamBool, /**< @brief value type is a boolean */ JackParamBool, /**< @brief value type is a boolean */
} jackctl_param_type_t; } jackctl_param_type_t;
 End of changes. 2 change blocks. 
0 lines changed or deleted 2 lines changed or added


 jack.h   jack.h 
skipping to change at line 37 skipping to change at line 37
#endif #endif
#include <jack/systemdeps.h> #include <jack/systemdeps.h>
#include <jack/types.h> #include <jack/types.h>
#include <jack/transport.h> #include <jack/transport.h>
/** /**
* Note: More documentation can be found in jack/types.h. * Note: More documentation can be found in jack/types.h.
*/ */
/*************************************************************
* NOTE: JACK_WEAK_EXPORT ***MUST*** be used on every function
* added to the JACK API after the 0.116.2 release.
*************************************************************/
#ifndef JACK_WEAK_EXPORT
#ifdef __GNUC__
/* JACK_WEAK_EXPORT needs to be a macro which
expands into a compiler directive. If non-null, the directive
must tell the compiler to arrange for weak linkage of
the symbol it used with. For this to work full may
require linker arguments in the client as well.
*/
#define JACK_WEAK_EXPORT __attribute__((weak))
#else
/* Add other things here for non-gcc platforms */
#endif
#endif
/** /**
* @defgroup ClientFunctions Creating & manipulating clients * @defgroup ClientFunctions Creating & manipulating clients
* @{ * @{
*/ */
/** /**
* Call this function to get version of the JACK, in form of several number s * Call this function to get version of the JACK, in form of several number s
* *
* @param major_ptr pointer to variable receiving major version of JACK. * @param major_ptr pointer to variable receiving major version of JACK.
* *
skipping to change at line 297 skipping to change at line 316
* be written as if it were an asynchonrous POSIX signal * be written as if it were an asynchonrous POSIX signal
* handler --- use only async-safe functions, and remember that it * handler --- use only async-safe functions, and remember that it
* is executed from another thread. A typical function might * is executed from another thread. A typical function might
* set a flag or write to a pipe so that the rest of the * set a flag or write to a pipe so that the rest of the
* application knows that the JACK client thread has shut * application knows that the JACK client thread has shut
* down. * down.
* *
* NOTE: clients do not need to call this. It exists only * NOTE: clients do not need to call this. It exists only
* to help more complex clients understand what is going * to help more complex clients understand what is going
* on. It should be called before jack_client_activate(). * on. It should be called before jack_client_activate().
*
* NOTE: if a client calls this AND jack_on_info_shutdown(), then
* the event of a client thread shutdown, the callback
* passed to this function will not be called, and the one passed to
* jack_on_info_shutdown() will.
*/ */
void jack_on_shutdown (jack_client_t *client, void jack_on_shutdown (jack_client_t *client,
JackShutdownCallback shutdown_callback, void *arg); JackShutdownCallback shutdown_callback, void *arg) J
ACK_WEAK_EXPORT;
/**
* @param client pointer to JACK client structure.
* @param function The jack_info_shutdown function pointer.
* @param arg The arguments for the jack_info_shutdown function.
*
* Register a function (and argument) to be called if and when the
* JACK server shuts down the client thread. The function must
* be written as if it were an asynchonrous POSIX signal
* handler --- use only async-safe functions, and remember that it
* is executed from another thread. A typical function might
* set a flag or write to a pipe so that the rest of the
* application knows that the JACK client thread has shut
* down.
*
* NOTE: clients do not need to call this. It exists only
* to help more complex clients understand what is going
* on. It should be called before jack_client_activate().
*
* NOTE: if a client calls this AND jack_on_info_shutdown(), then
* the event of a client thread shutdown, the callback
* passed to this function will not be called, and the one passed to
* jack_on_info_shutdown() will.
*/
void jack_on_info_shutdown (jack_client_t *client,
JackInfoShutdownCallback shutdown_callback, void *ar
g);
/** /**
* Tell the Jack server to call @a process_callback whenever there is * Tell the Jack server to call @a process_callback whenever there is
* work be done, passing @a arg as the second argument. * work be done, passing @a arg as the second argument.
* *
* 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
 End of changes. 3 change blocks. 
1 lines changed or deleted 53 lines changed or added


 jslist.h   jslist.h 
skipping to change at line 51 skipping to change at line 51
JSList *next; JSList *next;
}; };
static __inline__ static __inline__
JSList* JSList*
jack_slist_alloc (void) jack_slist_alloc (void)
{ {
JSList *new_list; JSList *new_list;
new_list = (JSList*)malloc(sizeof(JSList)); new_list = (JSList*)malloc(sizeof(JSList));
new_list->data = NULL; if (new_list) {
new_list->next = NULL; new_list->data = NULL;
new_list->next = NULL;
}
return new_list; return new_list;
} }
static __inline__ static __inline__
JSList* JSList*
jack_slist_prepend (JSList* list, void* data) jack_slist_prepend (JSList* list, void* data)
{ {
JSList *new_list; JSList *new_list;
new_list = (JSList*)malloc(sizeof(JSList)); new_list = (JSList*)malloc(sizeof(JSList));
new_list->data = data; if (new_list) {
new_list->next = list; new_list->data = data;
new_list->next = list;
}
return new_list; return new_list;
} }
#define jack_slist_next(slist) ((slist) ? (((JSList *)(slist))->next) : NUL L) #define jack_slist_next(slist) ((slist) ? (((JSList *)(slist))->next) : NUL L)
static __inline__ static __inline__
JSList* JSList*
jack_slist_last (JSList *list) jack_slist_last (JSList *list)
{ {
if (list) { if (list) {
 End of changes. 2 change blocks. 
4 lines changed or deleted 8 lines changed or added


 types.h   types.h 
skipping to change at line 421 skipping to change at line 421
JackInitFailure = 0x100, JackInitFailure = 0x100,
/** /**
* Unable to access shared memory * Unable to access shared memory
*/ */
JackShmFailure = 0x200, JackShmFailure = 0x200,
/** /**
* Client's protocol version does not match * Client's protocol version does not match
*/ */
JackVersionError = 0x400 JackVersionError = 0x400,
/**
* Backend error
*/
JackBackendError = 0x800,
/**
* Client zombified failure
*/
JackClientZombie = 0x1000
}; };
/** /**
* Status word returned from several JACK operations, formed by * Status word returned from several JACK operations, formed by
* OR-ing together the relevant @ref JackStatus bits. * OR-ing together the relevant @ref JackStatus bits.
*/ */
typedef enum JackStatus jack_status_t; typedef enum JackStatus jack_status_t;
/** /**
* Transport states. * Transport states.
skipping to change at line 645 skipping to change at line 655
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;
/**
* Prototype for the client supplied function that is called
* whenever jackd is shutdown. Note that after server shutdown,
* the client pointer is *not* deallocated by libjack,
* the application is responsible to properly use jack_client_close()
* to release client ressources. Warning: jack_client_close() cannot be
* safely used inside the shutdown callback and has to be called outside of
* the callback context.
* @param code a status word, formed by OR-ing together the relevant @ref J
ackStatus bits.
* @param reason a string describing the shutdown reason (backend failure,
server crash... etc...)
* @param arg pointer to a client supplied structure
*/
typedef void (*JackInfoShutdownCallback)(jack_status_t code, const char* re
ason, void *arg);
#endif /* __jack_types_h__ */ #endif /* __jack_types_h__ */
 End of changes. 2 change blocks. 
1 lines changed or deleted 29 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/