From ece1d34aa6c2e01239a51843c873f7cc821c4efe Mon Sep 17 00:00:00 2001 From: sletz Date: Thu, 6 Mar 2008 10:03:06 +0000 Subject: [PATCH] Add netsource as an internal client git-svn-id: svn+ssh://jackaudio.org/trunk/jack@1099 0c269be4-1314-0410-8aa9-9f06e86f4224 --- drivers/netjack/Makefile.am | 13 ++++++++++++ drivers/netjack/net_driver.c | 3 --- drivers/netjack/net_source.c | 41 +++++++++++++++++++++++++++++------- 3 files changed, 46 insertions(+), 11 deletions(-) diff --git a/drivers/netjack/Makefile.am b/drivers/netjack/Makefile.am index 65d3dcd..efc0523 100644 --- a/drivers/netjack/Makefile.am +++ b/drivers/netjack/Makefile.am @@ -12,3 +12,16 @@ jack_net_la_LDFLAGS = -module -avoid-version jack_net_la_SOURCES = net_driver.c netjack_packet.c noinst_HEADERS = net_driver.h + +# +# netsource in-process client +# + +netsource_clientdir = $(ADDON_DIR) + +netsource_client_LTLIBRARIES = netsource.la + +netsource_la_LDFLAGS = -module -avoid-version @OS_LDFLAGS@ +netsource_la_SOURCES = net_source.c netjack_packet.c + +netsource_la_LIBADD = -lsamplerate diff --git a/drivers/netjack/net_driver.c b/drivers/netjack/net_driver.c index 9e5506b..177ab98 100644 --- a/drivers/netjack/net_driver.c +++ b/drivers/netjack/net_driver.c @@ -465,8 +465,6 @@ net_driver_new (jack_client_t * client, resample_factor_up = resample_factor; // Now open the socket, and wait for the first packet to arrive... - - driver->sockfd = socket(PF_INET, SOCK_DGRAM, 0); if (driver->sockfd == -1) { jack_info("socket error"); @@ -520,7 +518,6 @@ net_driver_new (jack_client_t * client, } // After possible Autoconfig: do all calculations... - driver->period_usecs = (jack_time_t) floor ((((float) driver->period_size) / driver->sample_rate) * 1000000.0f); diff --git a/drivers/netjack/net_source.c b/drivers/netjack/net_source.c index 985a559..20c2fdd 100644 --- a/drivers/netjack/net_source.c +++ b/drivers/netjack/net_source.c @@ -5,7 +5,8 @@ */ #include -#include (#include +#include +#include #include #include @@ -38,16 +39,13 @@ int insockfd; struct sockaddr destaddr; struct sockaddr bindaddr; - int recv_channels; int recv_smaple_format; - int sync_state; jack_transport_state_t last_transport_state; int framecnt = 0; - int cont_miss = 0; SRC_STATE *src_state; @@ -207,7 +205,6 @@ ReadAgain: //////////////// // reset packet_bufX... and then send... - packet_bufX = packet_buf + sizeof(jacknet_packet_header) / sizeof(jack_default_audio_sample_t); //////////////// send //////////////// @@ -216,7 +213,6 @@ ReadAgain: render_jack_ports_to_payload(bitdepth, playback_ports, playback_srcs, nframes, packet_bufX, net_period); // fill in packet hdr - pkthdr->transport_state = jack_transport_query(client, &local_trans_pos); pkthdr->transport_frame = local_trans_pos.frame; pkthdr->framecnt = framecnt; @@ -246,7 +242,6 @@ ReadAgain: void jack_shutdown (void *arg) { - exit (1); } @@ -381,7 +376,6 @@ main (int argc, char *argv[]) jack_on_shutdown (client, jack_shutdown, 0); - /* display the current sample rate. */ @@ -413,3 +407,34 @@ main (int argc, char *argv[]) exit (0); } +/** + * This required entry point is called after the client is loaded by + * jack_internal_client_load(). + * + * @param client pointer to JACK client structure. + * @param load_init character string passed to the load operation. + * + * @return 0 if successful; otherwise jack_finish() will be called and + * the client terminated immediately. + */ +int +jack_initialize (jack_client_t *client, const char *load_init) +{ + jack_info("netsource: jack_initialize"); + return 0; /* success */ +} + +/** + * This required entry point is called immediately before the client + * is unloaded, which could happen due to a call to + * jack_internal_client_unload(), or a nonzero return from either + * jack_initialize() or inprocess(). + * + * @param arg the same parameter provided to inprocess(). + */ +void +jack_finish (void *arg) +{ + jack_info("netsource: jack_finish"); +} +