27 #ifndef __JACK_NET_PACKET_H__    28 #define __JACK_NET_PACKET_H__    35 #include <jack/jack.h>    36 #include <jack/types.h>    37 #include <jack/jslist.h>    38 #include <jack/midiport.h>    42 #define CELT_MODE 1000   // Magic bitdepth value that indicates CELT compression    43 #define OPUS_MODE  999   // Magic bitdepth value that indicates OPUS compression    44 #define MASTER_FREEWHEELS 0x80000000    50         jack_nframes_t capture_channels_audio;
    51         jack_nframes_t playback_channels_audio;
    52         jack_nframes_t capture_channels_midi;
    53         jack_nframes_t playback_channels_midi;
    54         jack_nframes_t period_size;
    55         jack_nframes_t sample_rate;
    58         jack_nframes_t sync_state;
    59         jack_nframes_t transport_frame;
    60         jack_nframes_t transport_state;
    63         jack_nframes_t framecnt;
    64         jack_nframes_t latency;
    66         jack_nframes_t reply_port;
    68         jack_nframes_t fragment_nr;
    86         jack_time_t         recv_timestamp;
    87         jack_nframes_t  framecnt;
    88         char *      fragment_array;
    96         cache_packet *packets;
    98         struct sockaddr_in master_address;
    99         int master_address_valid;
   100         jack_nframes_t last_framecnt_retreived;
   101         int last_framecnt_retreived_valid;
   106     packet_cache *packet_cache_new(
int num_packets, 
int pkt_size, 
int mtu);
   107     void              packet_cache_free(packet_cache *pkt_cache);
   109     cache_packet *packet_cache_get_packet(packet_cache *pkt_cache, jack_nframes_t framecnt);
   110     cache_packet *packet_cache_get_oldest_packet(packet_cache *pkt_cache);
   111     cache_packet *packet_cache_get_free_packet(packet_cache *pkt_cache);
   113     void        cache_packet_reset(cache_packet *pack);
   114     void        cache_packet_set_framecnt(cache_packet *pack, jack_nframes_t framecnt);
   115     void        cache_packet_add_fragment(cache_packet *pack, 
char *packet_buf, 
int rcv_len);
   116     int cache_packet_is_complete(cache_packet *pack);
   118     void packet_cache_drain_socket( packet_cache *pcache, 
int sockfd );
   119     void packet_cache_reset_master_address( packet_cache *pcache );
   120     float packet_cache_get_fill( packet_cache *pcache, jack_nframes_t expected_framecnt );
   121     int packet_cache_retreive_packet_pointer( packet_cache *pcache, jack_nframes_t framecnt, 
char **packet_buf, 
int pkt_size, jack_time_t *timestamp );
   122     int packet_cache_release_packet( packet_cache *pcache, jack_nframes_t framecnt );
   123     int packet_cache_get_next_available_framecnt( packet_cache *pcache, jack_nframes_t expected_framecnt, jack_nframes_t *framecnt );
   124     int packet_cache_get_highest_available_framecnt( packet_cache *pcache, jack_nframes_t *framecnt );
   125     int packet_cache_find_latency( packet_cache *pcache, jack_nframes_t expected_framecnt, jack_nframes_t *framecnt );
   129     int netjack_poll_deadline (
int sockfd, jack_time_t deadline);
   130     void netjack_sendto(
int sockfd, 
char *packet_buf, 
int pkt_size, 
int flags, 
struct sockaddr *addr, 
int addr_size, 
int mtu);
   131     int get_sample_size(
int bitdepth);
   134     void render_payload_to_jack_ports(
int bitdepth, 
void *packet_payload, jack_nframes_t net_period_down, 
JSList *capture_ports, 
JSList *capture_srcs, jack_nframes_t nframes, 
int dont_htonl_floats );
   135     void render_jack_ports_to_payload(
int bitdepth, 
JSList *playback_ports, 
JSList *playback_srcs, jack_nframes_t nframes, 
void *packet_payload, jack_nframes_t net_period_up, 
int dont_htonl_floats );
   139     int netjack_poll(
int sockfd, 
int timeout);
   141     void decode_midi_buffer (uint32_t *buffer_uint32, 
unsigned int buffer_size_uint32, jack_default_audio_sample_t* buf);
   142     void encode_midi_buffer (uint32_t *buffer_uint32, 
unsigned int buffer_size_uint32, jack_default_audio_sample_t* buf);