diff options
Diffstat (limited to 'recordmydesktop/src/rmd_jack.c')
| -rw-r--r-- | recordmydesktop/src/rmd_jack.c | 69 | 
1 files changed, 33 insertions, 36 deletions
| diff --git a/recordmydesktop/src/rmd_jack.c b/recordmydesktop/src/rmd_jack.c index ada967e..ba37c8b 100644 --- a/recordmydesktop/src/rmd_jack.c +++ b/recordmydesktop/src/rmd_jack.c @@ -46,23 +46,22 @@  *  *   \returns Zero always  */ -static int rmdJackCapture(jack_nframes_t nframes,void *jdata_t) { -	int i=0; -	JackData *jdata=(JackData *)jdata_t; +static int rmdJackCapture(jack_nframes_t nframes, void *jdata_t) { +	JackData *jdata = (JackData *)jdata_t; -	if (!jdata->pdata->running  || jdata->pdata->paused || !jdata->capture_started) +	if (!jdata->pdata->running || jdata->pdata->paused || !jdata->capture_started)  		return 0; -	for(i= 0;i<jdata->nports;i++) -		jdata->portbuf[i]=jack_port_get_buffer(jdata->ports[i],nframes); +	for(int i = 0; i < jdata->nports; i++) +		jdata->portbuf[i] = jack_port_get_buffer(jdata->ports[i], nframes);  //vorbis analysis buffer wants uninterleaved data  //so we are simply placing the buffers for every channel  //sequentially on the ringbuffer -	for(i=0;i<jdata->nports;i++) +	for(int i = 0; i < jdata->nports; i++)  		(*jack_ringbuffer_write)(	jdata->sound_buffer,  						(void *)(jdata->portbuf[i]), -						nframes* +						nframes *  						sizeof(jack_default_audio_sample_t));  /*FIXME */  //This is not safe. @@ -88,18 +87,16 @@ static int rmdJackCapture(jack_nframes_t nframes,void *jdata_t) {  *   \returns 0 on Success, 1 on failure  */  static int rmdSetupPorts(JackData *jdata) { -	int i=0; - -	jdata->ports=malloc(sizeof(jack_port_t *)* jdata->nports); -	jdata->portbuf=malloc(sizeof(jack_default_audio_sample_t*)* jdata->nports); -	memset(jdata->portbuf,0,sizeof(jack_default_audio_sample_t*)* jdata->nports); +	jdata->ports = malloc(sizeof(jack_port_t *) * jdata->nports); +	jdata->portbuf = malloc(sizeof(jack_default_audio_sample_t *) * jdata->nports); +	memset(jdata->portbuf, 0, sizeof(jack_default_audio_sample_t *) * jdata->nports); -	for(i=0;i<jdata->nports;i++) { +	for(int i = 0; i < jdata->nports; i++) {  		char name[64];//recordMyDesktop:input_n<64 is enough for full name  		char num[8]; -		strcpy(name,"input_"); -		snprintf( num, 8, "%d", i+1 ); -		strcat(name,num); +		strcpy(name, "input_"); +		snprintf(num, 8, "%d", i + 1); +		strcat(name, num);  		jdata->ports[i] = jack_port_register(	jdata->client,  							name, @@ -108,13 +105,13 @@ static int rmdSetupPorts(JackData *jdata) {  							0);  		if (!jdata->ports[i]) { -			fprintf(stderr,"Cannot register input port \"%s\"!\n",name); +			fprintf(stderr, "Cannot register input port \"%s\"!\n", name);  			return 1;  		}  		if (jack_connect(jdata->client, jdata->port_names[i], jack_port_name(jdata->ports[i]))) { -			fprintf(stderr,"Cannot connect input port %s to %s\n", +			fprintf(stderr,	"Cannot connect input port %s to %s\n",  					jack_port_name(jdata->ports[i]),  					jdata->port_names[i]);  			return 1; @@ -136,7 +133,7 @@ static void rmdJackShutdown(void *jdata_t) {  }  int rmdStartJackClient(JackData *jdata) { -	float ring_buffer_size=0.0; +	float ring_buffer_size = 0.0;  	int pid;  	char pidbuf[8];  	char rmd_client_name[32]; @@ -146,12 +143,12 @@ int rmdStartJackClient(JackData *jdata) {  	//in order to allow multiple  	//instances of recordMyDesktop  	//to connetc to a Jack Server -	strcpy(rmd_client_name,"recordMyDesktop-"); -	pid=getpid(); +	strcpy(rmd_client_name, "recordMyDesktop-"); +	pid = getpid();  	snprintf( pidbuf, 8, "%d", pid ); -	strcat(rmd_client_name,pidbuf); +	strcat(rmd_client_name, pidbuf); -	if ((jdata->client=(*jack_client_new)(rmd_client_name))==0) { +	if ((jdata->client = (*jack_client_new)(rmd_client_name)) == 0) {  		fprintf(stderr,	"Could not create new client!\n"  				"Make sure that Jack server is running!\n");  		return 15; @@ -169,18 +166,18 @@ int rmdStartJackClient(JackData *jdata) {  //(it might be in some cases, but it will certainly be the cause  //of unpredicted problems). A clean exit is preferable  //and any recording up to that point will be encoded and saved. -	jdata->frequency=jack_get_sample_rate(jdata->client); -	jdata->buffersize=jack_get_buffer_size(jdata->client); -	ring_buffer_size=(	jdata->ringbuffer_secs* +	jdata->frequency = jack_get_sample_rate(jdata->client); +	jdata->buffersize = jack_get_buffer_size(jdata->client); +	ring_buffer_size = (	jdata->ringbuffer_secs*  				jdata->frequency*  				sizeof(jack_default_audio_sample_t)*  				jdata->nports); -	jdata->sound_buffer= (*jack_ringbuffer_create)((int)(ring_buffer_size+0.5));//round up -	jack_set_process_callback(jdata->client,rmdJackCapture,jdata); -	jack_on_shutdown(jdata->client,rmdJackShutdown,jdata); +	jdata->sound_buffer = (*jack_ringbuffer_create)((int)(ring_buffer_size+0.5));//round up +	jack_set_process_callback(jdata->client, rmdJackCapture, jdata); +	jack_on_shutdown(jdata->client, rmdJackShutdown, jdata);  	if (jack_activate(jdata->client)) { -		fprintf(stderr,"cannot activate client!\n"); +		fprintf(stderr, "cannot activate client!\n");  		return 16;  	} @@ -193,12 +190,12 @@ int rmdStartJackClient(JackData *jdata) {  }  int rmdStopJackClient(JackData *jdata) { -	int ret=0; +	int ret = 0;  	(*jack_ringbuffer_free)(jdata->sound_buffer);  	if (jack_client_close(jdata->client)) { -		fprintf(stderr,"Cannot close Jack client!\n"); -		ret=1; +		fprintf(stderr, "Cannot close Jack client!\n"); +		ret = 1;  	}  /*TODO*/ @@ -207,10 +204,10 @@ int rmdStopJackClient(JackData *jdata) {  //because here it causes a segfault.  //	 if (dlclose(jdata->jack_lib_handle)) { -//		 fprintf(stderr,"Cannot unload Jack library!\n"); +//		 fprintf(stderr, "Cannot unload Jack library!\n");  //		 ret=1;  //	 } -//	 else fprintf(stderr,"Unloaded Jack library.\n"); +//	 else fprintf(stderr, "Unloaded Jack library.\n");  	return ret;  } | 
