| midiport.h | | midiport.h | |
| | | | |
| skipping to change at line 29 | | skipping to change at line 29 | |
| | | | |
| #ifndef __JACK_MIDIPORT_H | | #ifndef __JACK_MIDIPORT_H | |
| #define __JACK_MIDIPORT_H | | #define __JACK_MIDIPORT_H | |
| | | | |
| #ifdef __cplusplus | | #ifdef __cplusplus | |
| extern "C" { | | extern "C" { | |
| #endif | | #endif | |
| | | | |
| #include <jack/types.h> | | #include <jack/types.h> | |
| #include <stdlib.h> | | #include <stdlib.h> | |
|
| | | #include <jack/weakmacros.h> | |
| | | | |
| /** Type for raw event data contained in @ref jack_midi_event_t. */ | | /** Type for raw event data contained in @ref jack_midi_event_t. */ | |
| typedef unsigned char jack_midi_data_t; | | typedef unsigned char jack_midi_data_t; | |
| | | | |
| /** A Jack MIDI event. */ | | /** A Jack MIDI event. */ | |
| typedef struct _jack_midi_event | | typedef struct _jack_midi_event | |
| { | | { | |
| 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 */ | |
| | | | |
| skipping to change at line 52 | | skipping to change at line 53 | |
| * @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) JACK_OPTIONAL_WEAK_EXPORT; | |
| | | | |
| /** 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 | |
| * guaranteed to be a complete MIDI event (the status byte will always be | | * guaranteed to be a complete MIDI event (the status byte will always be | |
| * present, and no realtime events will interspered with the event). | | * present, and no realtime events will interspered with the event). | |
| * | | * | |
| * @param event Event structure to store retrieved event in. | | * @param event Event structure to store retrieved event in. | |
| * @param port_buffer Port buffer from which to retrieve event. | | * @param port_buffer Port buffer from which to retrieve event. | |
| * @param event_index Index of event to retrieve. | | * @param event_index Index of event to retrieve. | |
| * @return 0 on success, ENODATA if buffer is empty. | | * @return 0 on success, ENODATA if buffer is empty. | |
| */ | | */ | |
| int | | int | |
| jack_midi_event_get(jack_midi_event_t *event, | | jack_midi_event_get(jack_midi_event_t *event, | |
| void *port_buffer, | | void *port_buffer, | |
|
| jack_nframes_t event_index); | | jack_nframes_t event_index) JACK_OPTIONAL_WEAK_EXPO
RT; | |
| | | | |
| /** Clear an event buffer. | | /** Clear an event buffer. | |
| * | | * | |
| * This should be called at the beginning of each process cycle before call
ing | | * This should be called at the beginning of each process cycle before call
ing | |
| * @ref jack_midi_event_reserve or @ref jack_midi_event_write. This | | * @ref jack_midi_event_reserve or @ref jack_midi_event_write. This | |
| * function may not be called on an input port's buffer. | | * function may not be called on an input port's buffer. | |
| * | | * | |
| * @param port_buffer Port buffer to clear (must be an output port buffer). | | * @param port_buffer Port buffer to clear (must be an output port buffer). | |
| */ | | */ | |
| void | | void | |
|
| jack_midi_clear_buffer(void *port_buffer); | | jack_midi_clear_buffer(void *port_buffer) JACK_OPTIONAL_WEAK_EXPORT; | |
| | | | |
| /** Get the size of the largest event that can be stored by the port. | | /** Get the size of the largest event that can be stored by the port. | |
| * | | * | |
| * This function returns the current space available, taking into account | | * This function returns the current space available, taking into account | |
| * events already stored in the port. | | * events already stored in the port. | |
| * | | * | |
| * @param port_buffer Port buffer to check size of. | | * @param port_buffer Port buffer to check size of. | |
| */ | | */ | |
| size_t | | size_t | |
|
| jack_midi_max_event_size(void* port_buffer); | | jack_midi_max_event_size(void* port_buffer) JACK_OPTIONAL_WEAK_EXPORT; | |
| | | | |
| /** Allocate space for an event to be written to an event port buffer. | | /** Allocate space for an event to be written to an event port buffer. | |
| * | | * | |
| * Clients are to write the actual event data to be written starting at the | | * Clients are to write the actual event data to be written starting at the | |
| * pointer returned by this function. Clients must not write more than | | * pointer returned by this function. Clients must not write more than | |
| * @a data_size bytes into this buffer. Clients must write normalised | | * @a data_size bytes into this buffer. Clients must write normalised | |
| * MIDI data to the port - no running status and no (1-byte) realtime | | * MIDI data to the port - no running status and no (1-byte) realtime | |
| * messages interspersed with other messages (realtime messages are fine | | * messages interspersed with other messages (realtime messages are fine | |
| * when they occur on their own, like other messages). | | * when they occur on their own, like other messages). | |
| * | | * | |
| * @param port_buffer Buffer to write event to. | | * @param port_buffer Buffer to write event to. | |
| * @param time Sample offset of event. | | * @param time Sample offset of event. | |
| * @param data_size Length of event's raw data in bytes. | | * @param data_size Length of event's raw data in bytes. | |
| * @return Pointer to the beginning of the reserved event's data buffer, or | | * @return Pointer to the beginning of the reserved event's data buffer, or | |
| * NULL on error (ie not enough space). | | * NULL on error (ie not enough space). | |
| */ | | */ | |
| jack_midi_data_t* | | jack_midi_data_t* | |
|
| jack_midi_event_reserve(void *port_buffer, | | jack_midi_event_reserve(void *port_buffer, | |
| jack_nframes_t time, | | jack_nframes_t time, | |
|
| size_t data_size); | | size_t data_size) JACK_OPTIONAL_WEAK_EXPORT; | |
| | | | |
| /** Write an event into an event port buffer. | | /** Write an event into an event port buffer. | |
| * | | * | |
| * This function is simply a wrapper for @ref jack_midi_event_reserve | | * This function is simply a wrapper for @ref jack_midi_event_reserve | |
| * which writes the event data into the space reserved in the buffer. | | * which writes the event data into the space reserved in the buffer. | |
| * The same restrictions on the MIDI data apply. | | * The same restrictions on the MIDI data apply. | |
| * | | * | |
| * @param port_buffer Buffer to write event to. | | * @param port_buffer Buffer to write event to. | |
| * @param time Sample offset of event. | | * @param time Sample offset of event. | |
| * @param data Message data to be written. | | * @param data Message data to be written. | |
| * @param data_size Length of @a data in bytes. | | * @param data_size Length of @a data in bytes. | |
| * @return 0 on success, ENOBUFS if there's not enough space in buffer for
event. | | * @return 0 on success, ENOBUFS if there's not enough space in buffer for
event. | |
| */ | | */ | |
| int | | int | |
|
| jack_midi_event_write(void *port_buffer, | | jack_midi_event_write(void *port_buffer, | |
| jack_nframes_t time, | | jack_nframes_t time, | |
| const jack_midi_data_t *data, | | const jack_midi_data_t *data, | |
|
| size_t data_size); | | size_t data_size) JACK_OPTIONAL_WEAK_EXPORT; | |
| | | | |
| /** Get the number of events that could not be written to @a port_buffer. | | /** Get the number of events that could not be written to @a port_buffer. | |
| * | | * | |
| * This function returning a non-zero value implies @a port_buffer is full. | | * This function returning a non-zero value implies @a port_buffer is full. | |
| * Currently the only way this can happen is if events are lost on port mix
down. | | * Currently the only way this can happen is if events are lost on port mix
down. | |
| * | | * | |
| * @param port_buffer Port to receive count for. | | * @param port_buffer Port to receive count for. | |
| * @returns Number of events that could not be written to @a port_buffer. | | * @returns Number of events that could not be written to @a port_buffer. | |
| */ | | */ | |
| jack_nframes_t | | jack_nframes_t | |
|
| jack_midi_get_lost_event_count(void *port_buffer); | | jack_midi_get_lost_event_count(void *port_buffer) JACK_OPTIONAL_WEAK_EXPORT
; | |
| | | | |
| /*@}*/ | | /*@}*/ | |
| | | | |
| #ifdef __cplusplus | | #ifdef __cplusplus | |
| } | | } | |
| #endif | | #endif | |
| | | | |
| #endif /* __JACK_MIDIPORT_H */ | | #endif /* __JACK_MIDIPORT_H */ | |
| | | | |
End of changes. 10 change blocks. |
| 10 lines changed or deleted | | 11 lines changed or added | |
|
| thread.h | | thread.h | |
| | | | |
| skipping to change at line 29 | | skipping to change at line 29 | |
| | | | |
| #ifndef __jack_thread_h__ | | #ifndef __jack_thread_h__ | |
| #define __jack_thread_h__ | | #define __jack_thread_h__ | |
| | | | |
| #ifdef __cplusplus | | #ifdef __cplusplus | |
| extern "C" | | extern "C" | |
| { | | { | |
| #endif | | #endif | |
| | | | |
| #include <jack/systemdeps.h> | | #include <jack/systemdeps.h> | |
|
| | | #include <jack/weakmacros.h> | |
| | | | |
| /** @file thread.h | | /** @file thread.h | |
| * | | * | |
| * Library functions to standardize thread creation for JACK and its | | * Library functions to standardize thread creation for JACK and its | |
| * clients. These interfaces hide some system variations in the | | * clients. These interfaces hide some system variations in the | |
| * handling of realtime scheduling and associated privileges. | | * handling of realtime scheduling and associated privileges. | |
| */ | | */ | |
| | | | |
| /** | | /** | |
| * @defgroup ClientThreads Creating and managing client threads | | * @defgroup ClientThreads Creating and managing client threads | |
| * @{ | | * @{ | |
| */ | | */ | |
| | | | |
| /** | | /** | |
| * @returns if JACK is running with realtime scheduling, this returns | | * @returns if JACK is running with realtime scheduling, this returns | |
| * the priority that any JACK-created client threads will run at. | | * the priority that any JACK-created client threads will run at. | |
| * Otherwise returns -1. | | * Otherwise returns -1. | |
| */ | | */ | |
| | | | |
|
| int jack_client_real_time_priority (jack_client_t*); | | int jack_client_real_time_priority (jack_client_t*) JACK_OPTIONAL_WEAK_EXPO
RT; | |
| | | | |
| /** | | /** | |
| * @returns if JACK is running with realtime scheduling, this returns | | * @returns if JACK is running with realtime scheduling, this returns | |
| * the maximum priority that a JACK client thread should use if the thread | | * the maximum priority that a JACK client thread should use if the thread | |
| * is subject to realtime scheduling. Otherwise returns -1. | | * is subject to realtime scheduling. Otherwise returns -1. | |
| */ | | */ | |
| | | | |
|
| int jack_client_max_real_time_priority (jack_client_t*); | | int jack_client_max_real_time_priority (jack_client_t*) JACK_OPTIONAL_WEAK_
EXPORT; | |
| | | | |
| /** | | /** | |
| * Attempt to enable realtime scheduling for a thread. On some | | * Attempt to enable realtime scheduling for a thread. On some | |
| * systems that may require special privileges. | | * systems that may require special privileges. | |
| * | | * | |
| * @param thread POSIX thread ID. | | * @param thread POSIX thread ID. | |
| * @param priority requested thread priority. | | * @param priority requested thread priority. | |
| * | | * | |
| * @returns 0, if successful; EPERM, if the calling process lacks | | * @returns 0, if successful; EPERM, if the calling process lacks | |
| * required realtime privileges; otherwise some other error number. | | * required realtime privileges; otherwise some other error number. | |
| */ | | */ | |
|
| int jack_acquire_real_time_scheduling (pthread_t thread, int priority); | | int jack_acquire_real_time_scheduling (pthread_t thread, int priority) JACK
_OPTIONAL_WEAK_EXPORT; | |
| | | | |
| /** | | /** | |
| * Create a thread for JACK or one of its clients. The thread is | | * Create a thread for JACK or one of its clients. The thread is | |
| * created executing @a start_routine with @a arg as its sole | | * created executing @a start_routine with @a arg as its sole | |
| * argument. | | * argument. | |
| * | | * | |
| * @param client the JACK client for whom the thread is being created. May
be | | * @param client the JACK client for whom the thread is being created. May
be | |
| * NULL if the client is being created within the JACK server. | | * NULL if the client is being created within the JACK server. | |
| * @param thread place to return POSIX thread ID. | | * @param thread place to return POSIX thread ID. | |
| * @param priority thread priority, if realtime. | | * @param priority thread priority, if realtime. | |
| | | | |
| skipping to change at line 91 | | skipping to change at line 92 | |
| * @param start_routine function the thread calls when it starts. | | * @param start_routine function the thread calls when it starts. | |
| * @param arg parameter passed to the @a start_routine. | | * @param arg parameter passed to the @a start_routine. | |
| * | | * | |
| * @returns 0, if successful; otherwise some error number. | | * @returns 0, if successful; otherwise some error number. | |
| */ | | */ | |
| int jack_client_create_thread (jack_client_t* client, | | int jack_client_create_thread (jack_client_t* client, | |
| pthread_t *thread, | | pthread_t *thread, | |
| int priority, | | int priority, | |
| int realtime, /* boolean */ | | int realtime, /* boolean */ | |
| void *(*start_routine)(void*), | | void *(*start_routine)(void*), | |
|
| void *arg); | | void *arg) JACK_OPTIONAL_WEAK_EXPORT; | |
| | | | |
| /** | | /** | |
| * Drop realtime scheduling for a thread. | | * Drop realtime scheduling for a thread. | |
| * | | * | |
| * @param thread POSIX thread ID. | | * @param thread POSIX thread ID. | |
| * | | * | |
| * @returns 0, if successful; otherwise an error number. | | * @returns 0, if successful; otherwise an error number. | |
| */ | | */ | |
|
| int jack_drop_real_time_scheduling (pthread_t thread); | | int jack_drop_real_time_scheduling (pthread_t thread) JACK_OPTIONAL_WEAK_EX
PORT; | |
| | | | |
| /** | | /** | |
| * Stop the thread, waiting for the thread handler to terminate. | | * Stop the thread, waiting for the thread handler to terminate. | |
| * | | * | |
| * @param thread POSIX thread ID. | | * @param thread POSIX thread ID. | |
| * | | * | |
| * @returns 0, if successful; otherwise an error number. | | * @returns 0, if successful; otherwise an error number. | |
| */ | | */ | |
|
| int jack_client_stop_thread(jack_client_t* client, pthread_t thread); | | int jack_client_stop_thread(jack_client_t* client, pthread_t thread) JACK_O
PTIONAL_WEAK_EXPORT; | |
| | | | |
| /** | | /** | |
| * Cancel the thread then waits for the thread handler to terminate. | | * Cancel the thread then waits for the thread handler to terminate. | |
| * | | * | |
| * @param thread POSIX thread ID. | | * @param thread POSIX thread ID. | |
| * | | * | |
| * @returns 0, if successful; otherwise an error number. | | * @returns 0, if successful; otherwise an error number. | |
| */ | | */ | |
|
| int jack_client_kill_thread(jack_client_t* client, pthread_t thread); | | int jack_client_kill_thread(jack_client_t* client, pthread_t thread) JACK_
OPTIONAL_WEAK_EXPORT; | |
| | | | |
| #ifndef WIN32 | | #ifndef WIN32 | |
| | | | |
| typedef int (*jack_thread_creator_t)(pthread_t*, | | typedef int (*jack_thread_creator_t)(pthread_t*, | |
| const pthread_attr_t*, | | const pthread_attr_t*, | |
| void* (*function)(void*), | | void* (*function)(void*), | |
| void* arg); | | void* arg); | |
| /** | | /** | |
| * This function can be used in very very specialized cases | | * This function can be used in very very specialized cases | |
| * where it is necessary that client threads created by JACK | | * where it is necessary that client threads created by JACK | |
| | | | |
| skipping to change at line 145 | | skipping to change at line 146 | |
| * 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. | | * 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) JACK_OPTIONAL_
WEAK_EXPORT; | |
| | | | |
| #endif | | #endif | |
| | | | |
| /* @} */ | | /* @} */ | |
| | | | |
| #ifdef __cplusplus | | #ifdef __cplusplus | |
| } | | } | |
| #endif | | #endif | |
| | | | |
| #endif /* __jack_thread_h__ */ | | #endif /* __jack_thread_h__ */ | |
| | | | |
End of changes. 9 change blocks. |
| 8 lines changed or deleted | | 9 lines changed or added | |
|
| transport.h | | transport.h | |
| | | | |
| skipping to change at line 29 | | skipping to change at line 29 | |
| */ | | */ | |
| | | | |
| #ifndef __jack_transport_h__ | | #ifndef __jack_transport_h__ | |
| #define __jack_transport_h__ | | #define __jack_transport_h__ | |
| | | | |
| #ifdef __cplusplus | | #ifdef __cplusplus | |
| extern "C" { | | extern "C" { | |
| #endif | | #endif | |
| | | | |
| #include <jack/types.h> | | #include <jack/types.h> | |
|
| | | #include <jack/weakmacros.h> | |
| | | | |
| /** | | /** | |
| * @defgroup TransportControl Transport and Timebase control | | * @defgroup TransportControl Transport and Timebase control | |
| * @{ | | * @{ | |
| */ | | */ | |
| | | | |
| /** | | /** | |
| * Called by the timebase master to release itself from that | | * Called by the timebase master to release itself from that | |
| * responsibility. | | * responsibility. | |
| * | | * | |
| | | | |
| skipping to change at line 51 | | skipping to change at line 52 | |
| * the next process cycle. The transport state does not change. If | | * the next process cycle. The transport state does not change. If | |
| * rolling, it continues to play, with frame numbers as the only | | * rolling, it continues to play, with frame numbers as the only | |
| * available position information. | | * available position information. | |
| * | | * | |
| * @see jack_set_timebase_callback | | * @see jack_set_timebase_callback | |
| * | | * | |
| * @param client the JACK client structure. | | * @param client the JACK client structure. | |
| * | | * | |
| * @return 0 on success, otherwise a non-zero error code. | | * @return 0 on success, otherwise a non-zero error code. | |
| */ | | */ | |
|
| int jack_release_timebase (jack_client_t *client); | | int jack_release_timebase (jack_client_t *client) JACK_OPTIONAL_WEAK_EXPOR
T; | |
| | | | |
| /** | | /** | |
| * Register (or unregister) as a slow-sync client, one that cannot | | * Register (or unregister) as a slow-sync client, one that cannot | |
| * respond immediately to transport position changes. | | * respond immediately to transport position changes. | |
| * | | * | |
| * The @a sync_callback will be invoked at the first available | | * The @a sync_callback will be invoked at the first available | |
| * opportunity after its registration is complete. If the client is | | * opportunity after its registration is complete. If the client is | |
| * currently active this will be the following process cycle, | | * currently active this will be the following process cycle, | |
| * otherwise it will be the first cycle after calling jack_activate(). | | * otherwise it will be the first cycle after calling jack_activate(). | |
| * After that, it runs according to the ::JackSyncCallback rules. | | * After that, it runs according to the ::JackSyncCallback rules. | |
| | | | |
| skipping to change at line 75 | | skipping to change at line 76 | |
| * @param client the JACK client structure. | | * @param client the JACK client structure. | |
| * @param sync_callback is a realtime function that returns TRUE when | | * @param sync_callback is a realtime function that returns TRUE when | |
| * the client is ready. Setting @a sync_callback to NULL declares that | | * the client is ready. Setting @a sync_callback to NULL declares that | |
| * this client no longer requires slow-sync processing. | | * this client no longer requires slow-sync processing. | |
| * @param arg an argument for the @a sync_callback function. | | * @param arg an argument for the @a sync_callback function. | |
| * | | * | |
| * @return 0 on success, otherwise a non-zero error code. | | * @return 0 on success, otherwise a non-zero error code. | |
| */ | | */ | |
| int jack_set_sync_callback (jack_client_t *client, | | int jack_set_sync_callback (jack_client_t *client, | |
| JackSyncCallback sync_callback, | | JackSyncCallback sync_callback, | |
|
| void *arg); | | void *arg) JACK_OPTIONAL_WEAK_EXPORT; | |
| | | | |
| /** | | /** | |
| * Set the timeout value for slow-sync clients. | | * Set the timeout value for slow-sync clients. | |
| * | | * | |
| * This timeout prevents unresponsive slow-sync clients from | | * This timeout prevents unresponsive slow-sync clients from | |
| * completely halting the transport mechanism. The default is two | | * completely halting the transport mechanism. The default is two | |
| * seconds. When the timeout expires, the transport starts rolling, | | * seconds. When the timeout expires, the transport starts rolling, | |
| * even if some slow-sync clients are still unready. The @a | | * even if some slow-sync clients are still unready. The @a | |
| * sync_callbacks of these clients continue being invoked, giving them | | * sync_callbacks of these clients continue being invoked, giving them | |
| * a chance to catch up. | | * a chance to catch up. | |
| * | | * | |
| * @see jack_set_sync_callback | | * @see jack_set_sync_callback | |
| * | | * | |
| * @param client the JACK client structure. | | * @param client the JACK client structure. | |
| * @param timeout is delay (in microseconds) before the timeout expires. | | * @param timeout is delay (in microseconds) before the timeout expires. | |
| * | | * | |
| * @return 0 on success, otherwise a non-zero error code. | | * @return 0 on success, otherwise a non-zero error code. | |
| */ | | */ | |
| int jack_set_sync_timeout (jack_client_t *client, | | int jack_set_sync_timeout (jack_client_t *client, | |
|
| jack_time_t timeout); | | jack_time_t timeout) JACK_OPTIONAL_WEAK_EXPORT; | |
| | | | |
| /** | | /** | |
| * Register as timebase master for the JACK subsystem. | | * Register as timebase master for the JACK subsystem. | |
| * | | * | |
| * The timebase master registers a callback that updates extended | | * The timebase master registers a callback that updates extended | |
| * position information such as beats or timecode whenever necessary. | | * position information such as beats or timecode whenever necessary. | |
| * Without this extended information, there is no need for this | | * Without this extended information, there is no need for this | |
| * function. | | * function. | |
| * | | * | |
| * There is never more than one master at a time. When a new client | | * There is never more than one master at a time. When a new client | |
| | | | |
| skipping to change at line 125 | | skipping to change at line 126 | |
| * | | * | |
| * @return | | * @return | |
| * - 0 on success; | | * - 0 on success; | |
| * - EBUSY if a conditional request fails because there was already a | | * - EBUSY if a conditional request fails because there was already a | |
| * timebase master; | | * timebase master; | |
| * - other non-zero error code. | | * - other non-zero error code. | |
| */ | | */ | |
| int jack_set_timebase_callback (jack_client_t *client, | | int jack_set_timebase_callback (jack_client_t *client, | |
| int conditional, | | int conditional, | |
| JackTimebaseCallback timebase_callback, | | JackTimebaseCallback timebase_callback, | |
|
| void *arg); | | void *arg) JACK_OPTIONAL_WEAK_EXPORT; | |
| | | | |
| /** | | /** | |
| * Reposition the transport to a new frame number. | | * Reposition the transport to a new frame number. | |
| * | | * | |
| * May be called at any time by any client. The new position takes | | * May be called at any time by any client. The new position takes | |
| * effect in two process cycles. If there are slow-sync clients and | | * effect in two process cycles. If there are slow-sync clients and | |
| * the transport is already rolling, it will enter the | | * the transport is already rolling, it will enter the | |
| * ::JackTransportStarting state and begin invoking their @a | | * ::JackTransportStarting state and begin invoking their @a | |
| * sync_callbacks until ready. This function is realtime-safe. | | * sync_callbacks until ready. This function is realtime-safe. | |
| * | | * | |
| * @see jack_transport_reposition, jack_set_sync_callback | | * @see jack_transport_reposition, jack_set_sync_callback | |
| * | | * | |
| * @param client the JACK client structure. | | * @param client the JACK client structure. | |
| * @param frame frame number of new transport position. | | * @param frame frame number of new transport position. | |
| * | | * | |
| * @return 0 if valid request, non-zero otherwise. | | * @return 0 if valid request, non-zero otherwise. | |
| */ | | */ | |
| int jack_transport_locate (jack_client_t *client, | | int jack_transport_locate (jack_client_t *client, | |
|
| jack_nframes_t frame); | | jack_nframes_t frame) JACK_OPTIONAL_WEAK_EXPORT; | |
| | | | |
| /** | | /** | |
| * Query the current transport state and position. | | * Query the current transport state and position. | |
| * | | * | |
| * This function is realtime-safe, and can be called from any thread. | | * This function is realtime-safe, and can be called from any thread. | |
| * If called from the process thread, @a pos corresponds to the first | | * If called from the process thread, @a pos corresponds to the first | |
| * frame of the current cycle and the state returned is valid for the | | * frame of the current cycle and the state returned is valid for the | |
| * entire cycle. | | * entire cycle. | |
| * | | * | |
| * @param client the JACK client structure. | | * @param client the JACK client structure. | |
| * @param pos pointer to structure for returning current transport | | * @param pos pointer to structure for returning current transport | |
| * position; @a pos->valid will show which fields contain valid data. | | * position; @a pos->valid will show which fields contain valid data. | |
| * If @a pos is NULL, do not return position information. | | * If @a pos is NULL, do not return position information. | |
| * | | * | |
| * @return Current transport state. | | * @return Current transport state. | |
| */ | | */ | |
| jack_transport_state_t jack_transport_query (const jack_client_t *client, | | jack_transport_state_t jack_transport_query (const jack_client_t *client, | |
|
| jack_position_t *pos); | | jack_position_t *pos) JACK_OPTI
ONAL_WEAK_EXPORT; | |
| | | | |
| /** | | /** | |
| * Return an estimate of the current transport frame, | | * Return an estimate of the current transport frame, | |
| * including any time elapsed since the last transport | | * including any time elapsed since the last transport | |
| * positional update. | | * positional update. | |
| * | | * | |
| * @param client the JACK client structure | | * @param client the JACK client structure | |
| */ | | */ | |
|
| jack_nframes_t jack_get_current_transport_frame (const jack_client_t *clien
t); | | jack_nframes_t jack_get_current_transport_frame (const jack_client_t *clien
t) JACK_OPTIONAL_WEAK_EXPORT; | |
| | | | |
| /** | | /** | |
| * Request a new transport position. | | * Request a new transport position. | |
| * | | * | |
| * May be called at any time by any client. The new position takes | | * May be called at any time by any client. The new position takes | |
| * effect in two process cycles. If there are slow-sync clients and | | * effect in two process cycles. If there are slow-sync clients and | |
| * the transport is already rolling, it will enter the | | * the transport is already rolling, it will enter the | |
| * ::JackTransportStarting state and begin invoking their @a | | * ::JackTransportStarting state and begin invoking their @a | |
| * sync_callbacks until ready. This function is realtime-safe. | | * sync_callbacks until ready. This function is realtime-safe. | |
| * | | * | |
| * @see jack_transport_locate, jack_set_sync_callback | | * @see jack_transport_locate, jack_set_sync_callback | |
| * | | * | |
| * @param client the JACK client structure. | | * @param client the JACK client structure. | |
| * @param pos requested new transport position. | | * @param pos requested new transport position. | |
| * | | * | |
| * @return 0 if valid request, EINVAL if position structure rejected. | | * @return 0 if valid request, EINVAL if position structure rejected. | |
| */ | | */ | |
| int jack_transport_reposition (jack_client_t *client, | | int jack_transport_reposition (jack_client_t *client, | |
|
| jack_position_t *pos); | | jack_position_t *pos) JACK_OPTIONAL_WEAK_EXP
ORT; | |
| | | | |
| /** | | /** | |
| * Start the JACK transport rolling. | | * Start the JACK transport rolling. | |
| * | | * | |
| * Any client can make this request at any time. It takes effect no | | * Any client can make this request at any time. It takes effect no | |
| * sooner than the next process cycle, perhaps later if there are | | * sooner than the next process cycle, perhaps later if there are | |
| * slow-sync clients. This function is realtime-safe. | | * slow-sync clients. This function is realtime-safe. | |
| * | | * | |
| * @see jack_set_sync_callback | | * @see jack_set_sync_callback | |
| * | | * | |
| * @param client the JACK client structure. | | * @param client the JACK client structure. | |
| */ | | */ | |
|
| void jack_transport_start (jack_client_t *client); | | void jack_transport_start (jack_client_t *client) JACK_OPTIONAL_WEAK_EXPORT
; | |
| | | | |
| /** | | /** | |
| * Stop the JACK transport. | | * Stop the JACK transport. | |
| * | | * | |
| * Any client can make this request at any time. It takes effect on | | * Any client can make this request at any time. It takes effect on | |
| * the next process cycle. This function is realtime-safe. | | * the next process cycle. This function is realtime-safe. | |
| * | | * | |
| * @param client the JACK client structure. | | * @param client the JACK client structure. | |
| */ | | */ | |
|
| void jack_transport_stop (jack_client_t *client); | | void jack_transport_stop (jack_client_t *client) JACK_OPTIONAL_WEAK_EXPORT; | |
| | | | |
| /** | | /** | |
| * Gets the current transport info structure (deprecated). | | * Gets the current transport info structure (deprecated). | |
| * | | * | |
| * @param client the JACK client structure. | | * @param client the JACK client structure. | |
| * @param tinfo current transport info structure. The "valid" field | | * @param tinfo current transport info structure. The "valid" field | |
| * describes which fields contain valid data. | | * describes which fields contain valid data. | |
| * | | * | |
| * @deprecated This is for compatibility with the earlier transport | | * @deprecated This is for compatibility with the earlier transport | |
| * interface. Use jack_transport_query(), instead. | | * interface. Use jack_transport_query(), instead. | |
| * | | * | |
| * @pre Must be called from the process thread. | | * @pre Must be called from the process thread. | |
| */ | | */ | |
| void jack_get_transport_info (jack_client_t *client, | | void jack_get_transport_info (jack_client_t *client, | |
|
| jack_transport_info_t *tinfo); | | jack_transport_info_t *tinfo) JACK_OPTIONAL_WE
AK_EXPORT; | |
| | | | |
| /** | | /** | |
| * Set the transport info structure (deprecated). | | * Set the transport info structure (deprecated). | |
| * | | * | |
| * @deprecated This function still exists for compatibility with the | | * @deprecated This function still exists for compatibility with the | |
| * earlier transport interface, but it does nothing. Instead, define | | * earlier transport interface, but it does nothing. Instead, define | |
| * a ::JackTimebaseCallback. | | * a ::JackTimebaseCallback. | |
| */ | | */ | |
| void jack_set_transport_info (jack_client_t *client, | | void jack_set_transport_info (jack_client_t *client, | |
|
| jack_transport_info_t *tinfo); | | jack_transport_info_t *tinfo) JACK_OPTIONAL_WE
AK_EXPORT; | |
| | | | |
| /*@}*/ | | /*@}*/ | |
| | | | |
| #ifdef __cplusplus | | #ifdef __cplusplus | |
| } | | } | |
| #endif | | #endif | |
| | | | |
| #endif /* __jack_transport_h__ */ | | #endif /* __jack_transport_h__ */ | |
| | | | |
End of changes. 13 change blocks. |
| 12 lines changed or deleted | | 13 lines changed or added | |
|