fix polution in global send buffer -> refactor to local send buffer

git-svn-id: svn://code.dyne.org/veejay/trunk@1397 eb8d1916-c9e9-0310-b8de-cf0c9472ead5
This commit is contained in:
Niels Elburg
2010-02-27 19:34:01 +00:00
parent 572fe9640f
commit e8f54c7603
2 changed files with 111 additions and 70 deletions

View File

@@ -1,5 +1,5 @@
/* veejay - Linux VeeJay /* veejay - Linux VeeJay
* (C) 2002-2004 Niels Elburg <nwelburg@gmail.com> * (C) 2002-2010 Niels Elburg <nwelburg@gmail.com>
* *
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
@@ -654,7 +654,7 @@ int main(int argc, char **argv)
vj_osc_allocate(VJ_PORT+2); vj_osc_allocate(VJ_PORT+2);
vj_event_dump(); vj_event_dump();
vj_effect_dump(); vj_effect_dump();
fprintf(stdout, "Environment variables:\n\tSDL_VIDEO_HWACCEL\t\tSet to 1 to use SDL video hardware accel (default=on)\n\tVEEJAY_PERFORMANCE\t\tSet to \"quality\" or \"fastest\" (default is fastest)\n\tVEEJAY_AUTO_SCALE_PIXELS\tSet to 1 to convert between CCIR 601 and JPEG automatically (default=dont care)\n\tVEEJAY_INTERPOLATE_CHROMA\tSet to 1 if you wish to interpolate every chroma sample when scaling (default=0)\n\tVEEJAY_CAPTURE_DRIVER\t\tSet to \"unicap\" or \"v4lutils\" (default=v4lutils)\n\tVEEJAY_SDL_KEY_REPEAT_INTERVAL\tinterval of key pressed to repeat while pressed down.\n\tVEEJAY_PLAYBACK_CACHE\t\tSample cache size in MB - by default, veejay takes 30 percent of total RAM\n\tVEEJAY_SDL_KEY_REPEAT_DELAY\tDelay key repeat in ms\n\tVEEJAY_FULLSCREEN\t\tStart in fullscreen (1) or windowed (0) mode\nVEEJAY_SCREEN_GEOMETRY\t\tSpecifiy a geometry for veejay to position the video window.\nVEEJAY_SCREEN_SIZE\t\tSize of video window, defaults to full screen size.\n"); fprintf(stdout, "Environment variables:\n\tSDL_VIDEO_HWACCEL\t\tSet to 1 to use SDL video hardware accel (default=on)\n\tVEEJAY_PERFORMANCE\t\tSet to \"quality\" or \"fastest\" (default is fastest)\n\tVEEJAY_AUTO_SCALE_PIXELS\tSet to 1 to convert between CCIR 601 and JPEG automatically (default=dont care)\n\tVEEJAY_INTERPOLATE_CHROMA\tSet to 1 if you wish to interpolate every chroma sample when scaling (default=0)\n\tVEEJAY_CAPTURE_DRIVER\t\tSet to \"unicap\" or \"v4lutils\" (default=v4lutils)\n\tVEEJAY_SDL_KEY_REPEAT_INTERVAL\tinterval of key pressed to repeat while pressed down.\n\tVEEJAY_PLAYBACK_CACHE\t\tSample cache size in MB - by default, veejay takes 30 percent of total RAM\n\tVEEJAY_SDL_KEY_REPEAT_DELAY\tDelay key repeat in ms\n\tVEEJAY_FULLSCREEN\t\tStart in fullscreen (1) or windowed (0) mode\n\tVEEJAY_SCREEN_GEOMETRY\t\tSpecifiy a geometry for veejay to position the video window.\n\tVEEJAY_SCREEN_SIZE\t\tSize of video window, defaults to full screen size.\n\tVEEJAY_RUN_MODE\t\t\tRun in \"classic\" (352x288 Dummy) or default (720x576). \n");
fprintf(stdout, "\n\n\tExample for bash:\n\t\t\t$ export VEEJAY_AUTO_SCALE_PIXEL=1\n"); fprintf(stdout, "\n\n\tExample for bash:\n\t\t\t$ export VEEJAY_AUTO_SCALE_PIXEL=1\n");

View File

@@ -124,8 +124,14 @@ typedef struct
static int _recorder_format = ENCODER_MJPEG; static int _recorder_format = ENCODER_MJPEG;
#define SEND_BUF 256000 #define SEND_BUF 256000
static char _print_buf[SEND_BUF];
static char _s_print_buf[SEND_BUF]; static char *get_print_buf(int size) {
int s = size;
if( s<= 0)
s = SEND_BUF;
char *res = (char*) vj_calloc(sizeof(char) * s );
return res;
}
static void *macro_bank_[12]; static void *macro_bank_[12];
static void *macro_port_ = NULL; static void *macro_port_ = NULL;
@@ -1494,7 +1500,7 @@ int vj_event_parse_msg( void *ptr, char *msg, int msg_len )
if( net_id != 412 && net_id != 333) if( net_id != 412 && net_id != 333)
#else #else
veejay_msg(VEEJAY_MSG_DEBUG, "VIMS: Parse message '%s'", msg ); veejay_msg(VEEJAY_MSG_DEBUG, "VIMS: @%ld Parse message '%s'",v->settings->current_frame_num, msg );
#endif #endif
if( net_id <= 0 || net_id >= VIMS_MAX ) if( net_id <= 0 || net_id >= VIMS_MAX )
@@ -2384,13 +2390,13 @@ void vj_event_format_xml_event( xmlNodePtr node, int event_id )
static void vj_event_send_new_id(veejay_t * v, int new_id) static void vj_event_send_new_id(veejay_t * v, int new_id)
{ {
char s_print_buf[16];
if( vj_server_client_promoted( v->vjs[0], v->uc->current_link )) if( vj_server_client_promoted( v->vjs[0], v->uc->current_link ))
{ {
char result[6]; char result[6];
sprintf( result, "%05d",new_id ); sprintf( result, "%05d",new_id );
sprintf(_s_print_buf, "%03d%s",5, result); sprintf(s_print_buf, "%03d%s",5, result);
SEND_MSG( v,_s_print_buf ); SEND_MSG( v,s_print_buf);
} }
} }
@@ -8224,12 +8230,13 @@ void vj_event_print_info(void *ptr, const char format[], va_list ap)
void vj_event_send_track_list ( void *ptr, const char format[], va_list ap ) void vj_event_send_track_list ( void *ptr, const char format[], va_list ap )
{ {
veejay_t *v = (veejay_t*)ptr; veejay_t *v = (veejay_t*)ptr;
sprintf(_s_print_buf, "%05d",0); char *s_print_buf = get_print_buf(0);
sprintf(s_print_buf, "%05d",0);
int n = vj_tag_size()-1; int n = vj_tag_size()-1;
if (n >= 1 ) if (n >= 1 )
{ {
char line[300]; char line[300];
veejay_memset( _print_buf, 0,SEND_BUF); char *print_buf = get_print_buf(SEND_BUF);
int i; int i;
for(i=0; i <= n; i++) for(i=0; i <= n; i++)
{ {
@@ -8242,14 +8249,16 @@ void vj_event_send_track_list ( void *ptr, const char format[], va_list ap )
char space[275]; char space[275];
sprintf(space, "%s %d", tag->descr, tag->id ); sprintf(space, "%s %d", tag->descr, tag->id );
sprintf(cmd, "%03d%s",strlen(space),space); sprintf(cmd, "%03d%s",strlen(space),space);
APPEND_MSG(_print_buf,cmd); APPEND_MSG(print_buf,cmd);
} }
} }
} }
sprintf(_s_print_buf, "%05d%s",strlen(_print_buf),_print_buf); sprintf(s_print_buf, "%05d%s",strlen(print_buf),print_buf);
free(print_buf);
} }
SEND_MSG(v,_s_print_buf); SEND_MSG(v,s_print_buf);
free(s_print_buf);
} }
void vj_event_send_tag_list ( void *ptr, const char format[], va_list ap ) void vj_event_send_tag_list ( void *ptr, const char format[], va_list ap )
@@ -8260,7 +8269,8 @@ void vj_event_send_tag_list ( void *ptr, const char format[], va_list ap )
char *str = NULL; char *str = NULL;
P_A(args,str,format,ap); P_A(args,str,format,ap);
int i,n; int i,n;
sprintf(_s_print_buf, "%05d",0); char *s_print_buf = get_print_buf(0);
sprintf(s_print_buf, "%05d",0);
//if(args[0]>0) start_from_tag = args[0]; //if(args[0]>0) start_from_tag = args[0];
@@ -8268,7 +8278,7 @@ void vj_event_send_tag_list ( void *ptr, const char format[], va_list ap )
if (n >= 1 ) if (n >= 1 )
{ {
char line[300]; char line[300];
veejay_memset( _print_buf,0, SEND_BUF); char *print_buf = get_print_buf(SEND_BUF);
for(i=0; i <= n; i++) for(i=0; i <= n; i++)
{ {
@@ -8292,16 +8302,18 @@ void vj_event_send_tag_list ( void *ptr, const char format[], va_list ap )
source_name source_name
); );
sprintf(cmd, "%03d%s",strlen(line),line); sprintf(cmd, "%03d%s",strlen(line),line);
APPEND_MSG(_print_buf,cmd); APPEND_MSG(print_buf,cmd);
} }
} }
sprintf(_s_print_buf, "%05d%s",strlen(_print_buf),_print_buf); sprintf(s_print_buf, "%05d%s",strlen(print_buf),print_buf);
free(print_buf);
} }
SEND_MSG(v,_s_print_buf); SEND_MSG(v,s_print_buf);
free(s_print_buf);
} }
static void _vj_event_gatter_sample_info( veejay_t *v, int id ) static char *_vj_event_gatter_sample_info( veejay_t *v, int id )
{ {
char description[SAMPLE_MAX_DESCR_LEN]; char description[SAMPLE_MAX_DESCR_LEN];
int end_frame = sample_get_endFrame( id ); int end_frame = sample_get_endFrame( id );
@@ -8316,8 +8328,8 @@ static void _vj_event_gatter_sample_info( veejay_t *v, int id )
int dlen = strlen(description); int dlen = strlen(description);
int tlen = strlen(timecode); int tlen = strlen(timecode);
char *s_print_buf = get_print_buf(512);
sprintf( _s_print_buf, snprintf( s_print_buf, 512,
"%08d%03d%s%03d%s%02d%02d", "%08d%03d%s%03d%s%02d%02d",
( 3 + dlen + 3+ tlen + 2 +2), ( 3 + dlen + 3+ tlen + 2 +2),
dlen, dlen,
@@ -8327,9 +8339,9 @@ static void _vj_event_gatter_sample_info( veejay_t *v, int id )
0, 0,
id id
); );
return s_print_buf;
} }
static void _vj_event_gatter_stream_info( veejay_t *v, int id ) static char * _vj_event_gatter_stream_info( veejay_t *v, int id )
{ {
char description[SAMPLE_MAX_DESCR_LEN]; char description[SAMPLE_MAX_DESCR_LEN];
char source[255]; char source[255];
@@ -8339,7 +8351,8 @@ static void _vj_event_gatter_stream_info( veejay_t *v, int id )
int dlen = strlen( description ); int dlen = strlen( description );
int tlen = strlen( source ); int tlen = strlen( source );
sprintf( _s_print_buf, char *s_print_buf = get_print_buf( 512 );
snprintf( s_print_buf,512,
"%08d%03d%s%03d%s%02d%02d", "%08d%03d%s%03d%s%02d%02d",
( 3 + dlen + 3 + tlen + 2 + 2), ( 3 + dlen + 3 + tlen + 2 + 2),
dlen, dlen,
@@ -8349,6 +8362,7 @@ static void _vj_event_gatter_stream_info( veejay_t *v, int id )
stream_type, stream_type,
id id
); );
return s_print_buf;
} }
void vj_event_send_sample_info ( void *ptr, const char format[], va_list ap ) void vj_event_send_sample_info ( void *ptr, const char format[], va_list ap )
@@ -8361,6 +8375,9 @@ void vj_event_send_sample_info ( void *ptr, const char format[], va_list ap )
if(args[0] == 0 ) if(args[0] == 0 )
args[0] = v->uc->sample_id; args[0] = v->uc->sample_id;
char *s_print_buf = NULL;
switch( args[1] ) switch( args[1] )
{ {
case 0: case 0:
@@ -8369,7 +8386,7 @@ void vj_event_send_sample_info ( void *ptr, const char format[], va_list ap )
if(sample_exists(args[0])) if(sample_exists(args[0]))
{ {
_vj_event_gatter_sample_info(v,args[0]); s_print_buf = _vj_event_gatter_sample_info(v,args[0]);
failed = 0; failed = 0;
} }
break; break;
@@ -8379,7 +8396,7 @@ void vj_event_send_sample_info ( void *ptr, const char format[], va_list ap )
if(vj_tag_exists(args[0])) if(vj_tag_exists(args[0]))
{ {
_vj_event_gatter_stream_info(v,args[0]); s_print_buf = _vj_event_gatter_stream_info(v,args[0]);
failed = 0; failed = 0;
} }
break; break;
@@ -8387,9 +8404,12 @@ void vj_event_send_sample_info ( void *ptr, const char format[], va_list ap )
break; break;
} }
if(failed) if(failed) {
sprintf( _s_print_buf, "%08d", 0 ); s_print_buf = get_print_buf( 8 );
SEND_MSG(v , _s_print_buf ); snprintf( s_print_buf,8, "%08d", 0 );
}
SEND_MSG(v , s_print_buf );
free(s_print_buf);
} }
void vj_event_get_scaled_image ( void *ptr, const char format[], va_list ap ) void vj_event_get_scaled_image ( void *ptr, const char format[], va_list ap )
@@ -8522,9 +8542,11 @@ void vj_event_send_working_dir(void *ptr, const char format[], va_list ap)
filelist_t *list = (filelist_t*)find_media_files(v); filelist_t *list = (filelist_t*)find_media_files(v);
char *s_print_buf = NULL;
if(!list) { if(!list) {
veejay_msg(VEEJAY_MSG_ERROR, "No usable files found."); veejay_msg(VEEJAY_MSG_ERROR, "No usable files found.");
sprintf(_s_print_buf, "00000000"); s_print_buf = get_print_buf( 8 );
snprintf(s_print_buf,8,"%08d",0);
}else { }else {
int len = 1; int len = 1;
@@ -8534,7 +8556,8 @@ void vj_event_send_working_dir(void *ptr, const char format[], va_list ap)
} }
int msg_len = (list->num_files*4) + len - 1; int msg_len = (list->num_files*4) + len - 1;
sprintf(_s_print_buf, "%08d", msg_len ); s_print_buf = get_print_buf ( msg_len + 32 );
sprintf(s_print_buf, "%08d", msg_len );
int tlen=0; int tlen=0;
for( i = 0; i <list->num_files; i ++ ) { for( i = 0; i <list->num_files; i ++ ) {
@@ -8547,11 +8570,12 @@ void vj_event_send_working_dir(void *ptr, const char format[], va_list ap)
#endif #endif
snprintf(tmp,sizeof(tmp), "%04d%s",tlen,list->files[i]); snprintf(tmp,sizeof(tmp), "%04d%s",tlen,list->files[i]);
strcat( _s_print_buf,tmp); strcat( s_print_buf,tmp);
} }
SEND_MSG(v,_s_print_buf); SEND_MSG(v,s_print_buf);
free_media_files(v,list); free_media_files(v,list);
} }
free( s_print_buf );
} }
void vj_event_send_sample_list ( void *ptr, const char format[], va_list ap ) void vj_event_send_sample_list ( void *ptr, const char format[], va_list ap )
@@ -8559,19 +8583,21 @@ void vj_event_send_sample_list ( void *ptr, const char format[], va_list ap )
veejay_t *v = (veejay_t*)ptr; veejay_t *v = (veejay_t*)ptr;
int args[2]; int args[2];
int start_from_sample = 1; int start_from_sample = 1;
char cmd[2048]; char cmd[512];
char *str = NULL; char *str = NULL;
int i,n; int i,n;
P_A(args,str,format,ap); P_A(args,str,format,ap);
if(args[0] > 0 ) if(args[0] > 0 )
start_from_sample = args[0]; start_from_sample = args[0];
sprintf(_s_print_buf, "00000000"); char *s_print_buf = get_print_buf(0);
sprintf(s_print_buf, "00000000");
n = sample_size(); n = sample_size();
if( n > 1 ) if( n > 1 )
{ {
char line[400]; char line[400];
veejay_memset(_print_buf, 0,SEND_BUF); char *print_buf = get_print_buf(SEND_BUF);
for(i=start_from_sample; i <= n; i++) for(i=start_from_sample; i <= n; i++)
{ {
if(sample_exists(i)) if(sample_exists(i))
@@ -8597,14 +8623,15 @@ void vj_event_send_sample_list ( void *ptr, const char format[], va_list ap )
description description
); );
FORMAT_MSG(line,cmd); FORMAT_MSG(line,cmd);
APPEND_MSG(_print_buf,line); APPEND_MSG(print_buf,line);
} }
} }
sprintf(_s_print_buf, "%08d%s", strlen(_print_buf),_print_buf); sprintf(s_print_buf, "%08d%s", strlen(print_buf),print_buf);
free(print_buf);
} }
SEND_MSG(v, _s_print_buf); SEND_MSG(v, s_print_buf);
free(s_print_buf);
} }
void vj_event_send_log ( void *ptr, const char format[], va_list ap ) void vj_event_send_log ( void *ptr, const char format[], va_list ap )
@@ -8614,18 +8641,21 @@ void vj_event_send_log ( void *ptr, const char format[], va_list ap )
int str_len = 0; int str_len = 0;
char *messages = NULL; char *messages = NULL;
char *s_print_buf = get_print_buf(0);
messages = veejay_pop_messages( &num_lines, &str_len ); messages = veejay_pop_messages( &num_lines, &str_len );
if(str_len == 0 || num_lines == 0 ) if(str_len == 0 || num_lines == 0 )
sprintf(_s_print_buf, "%06d", 0); sprintf(s_print_buf, "%06d", 0);
else else
sprintf(_s_print_buf, "%06d%s", str_len, messages ); sprintf(s_print_buf, "%06d%s", str_len, messages );
if(messages) if(messages)
free(messages); free(messages);
veejay_msg(VEEJAY_MSG_DEBUG, "\tDebug: send log %s", _s_print_buf); veejay_msg(VEEJAY_MSG_DEBUG, "\tDebug: send log %s", s_print_buf);
SEND_MSG( v, _s_print_buf ); SEND_MSG( v, s_print_buf );
free(s_print_buf);
} }
void vj_event_send_sample_stack ( void *ptr, const char format[], va_list ap ) void vj_event_send_sample_stack ( void *ptr, const char format[], va_list ap )
@@ -8829,14 +8859,14 @@ void vj_event_send_chain_list ( void *ptr, const char format[], va_list ap )
if(args[0] == 0) if(args[0] == 0)
args[0] = v->uc->sample_id; args[0] = v->uc->sample_id;
veejay_memset( _s_print_buf,0,SEND_BUF); char *s_print_buf = get_print_buf(0);
sprintf( _s_print_buf, "%03d",0 ); sprintf( s_print_buf, "%03d",0 );
if(SAMPLE_PLAYING(v)) if(SAMPLE_PLAYING(v))
{ {
if(args[0] == -1) args[0] = sample_size()-1; if(args[0] == -1) args[0] = sample_size()-1;
char *print_buf = get_print_buf(16*SAMPLE_MAX_EFFECTS);
for(i=0; i < SAMPLE_MAX_EFFECTS; i++) for(i=0; i < SAMPLE_MAX_EFFECTS; i++)
{ {
int effect_id = sample_get_effect_any(args[0], i); int effect_id = sample_get_effect_any(args[0], i);
@@ -8854,14 +8884,16 @@ void vj_event_send_chain_list ( void *ptr, const char format[], va_list ap )
(using_audio <= 0 ? 0 : 1 ) (using_audio <= 0 ? 0 : 1 )
); );
APPEND_MSG(_print_buf,line); APPEND_MSG(print_buf,line);
} }
} }
sprintf(_s_print_buf, "%03d%s",strlen(_print_buf), _print_buf); sprintf(s_print_buf, "%03d%s",strlen(print_buf), print_buf);
free(print_buf);
} else if(STREAM_PLAYING(v)) } else if(STREAM_PLAYING(v))
{ {
if(args[0] == -1) args[0] = vj_tag_size()-1; if(args[0] == -1) args[0] = vj_tag_size()-1;
char *print_buf = get_print_buf(16*SAMPLE_MAX_EFFECTS);
for(i=0; i < SAMPLE_MAX_EFFECTS; i++) for(i=0; i < SAMPLE_MAX_EFFECTS; i++)
{ {
@@ -8877,21 +8909,22 @@ void vj_event_send_chain_list ( void *ptr, const char format[], va_list ap )
(using_effect <= 0 ? 0 : 1 ), (using_effect <= 0 ? 0 : 1 ),
0 0
); );
APPEND_MSG(_print_buf, line); APPEND_MSG(print_buf, line);
} }
} }
sprintf(_s_print_buf, "%03d%s",strlen( _print_buf ), _print_buf); sprintf(s_print_buf, "%03d%s",strlen( print_buf ), print_buf);
free(print_buf);
} else { } else {
sprintf(_s_print_buf, "000"); sprintf(s_print_buf, "000");
} }
SEND_MSG(v, _s_print_buf); SEND_MSG(v, s_print_buf);
free(s_print_buf);
} }
void vj_event_send_video_information ( void *ptr, const char format[], va_list ap ) void vj_event_send_video_information ( void *ptr, const char format[], va_list ap )
{ {
/* send video properties */ /* send video properties */
char info_msg[255]; char info_msg[150];
veejay_t *v = (veejay_t*)ptr; veejay_t *v = (veejay_t*)ptr;
editlist *el = v->current_edit_list; editlist *el = v->current_edit_list;
@@ -8902,7 +8935,7 @@ void vj_event_send_video_information ( void *ptr, const char format[], va_lis
long n_frames = el->total_frames; long n_frames = el->total_frames;
if( SAMPLE_PLAYING(v)) if( SAMPLE_PLAYING(v))
n_frames = sample_max_video_length( v->uc->sample_id ); n_frames = sample_max_video_length( v->uc->sample_id );
char *s_print_buf = get_print_buf(200);
snprintf(info_msg,sizeof(info_msg)-1, "%04d %04d %01d %c %02.3f %1d %04d %06ld %02d %03ld %08ld %1d", snprintf(info_msg,sizeof(info_msg)-1, "%04d %04d %01d %c %02.3f %1d %04d %06ld %02d %03ld %08ld %1d",
el->video_width, el->video_width,
el->video_height, el->video_height,
@@ -8917,10 +8950,9 @@ void vj_event_send_video_information ( void *ptr, const char format[], va_lis
n_frames, n_frames,
v->audio v->audio
); );
sprintf( _s_print_buf, "%03d%s",strlen(info_msg), info_msg); sprintf(s_print_buf, "%03d%s",strlen(info_msg), info_msg);
SEND_MSG(v,s_print_buf);
free(s_print_buf);
SEND_MSG(v,_s_print_buf);
} }
void vj_event_send_editlist ( void *ptr, const char format[], va_list ap ) void vj_event_send_editlist ( void *ptr, const char format[], va_list ap )
@@ -8939,10 +8971,13 @@ void vj_event_send_editlist ( void *ptr, const char format[], va_list ap )
char *msg = (char*) vj_el_write_line_ascii( el, &b ); char *msg = (char*) vj_el_write_line_ascii( el, &b );
sprintf( _s_print_buf, "%06d%s", b, msg );
if(msg)free(msg);
SEND_MSG( v, _s_print_buf );
char *s_print_buf = get_print_buf( b + 8 );
snprintf( s_print_buf, (b+8),"%06d%s", b, msg );
if(msg)free(msg);
SEND_MSG( v, s_print_buf );
free(s_print_buf);
} }
void vj_event_send_devices ( void *ptr, const char format[], va_list ap ) void vj_event_send_devices ( void *ptr, const char format[], va_list ap )
@@ -9415,6 +9450,9 @@ void vj_event_send_sample_options ( void *ptr, const char format[], va_list ap )
veejay_memset(prefix,0, 4 ); veejay_memset(prefix,0, 4 );
veejay_memset(options, 0,100); veejay_memset(options, 0,100);
char *s_print_buf = get_print_buf(128);
switch(args[1]) switch(args[1])
{ {
case VJ_PLAYBACK_MODE_SAMPLE: case VJ_PLAYBACK_MODE_SAMPLE:
@@ -9516,11 +9554,12 @@ void vj_event_send_sample_options ( void *ptr, const char format[], va_list ap )
} }
if(failed) if(failed)
sprintf( _s_print_buf, "%05d", 0 ); sprintf( s_print_buf, "%05d", 0 );
else else
sprintf( _s_print_buf, "%05d%s%s",strlen(prefix) + strlen(options), prefix,options ); sprintf( s_print_buf, "%05d%s%s",strlen(prefix) + strlen(options), prefix,options );
SEND_MSG(v , _s_print_buf ); SEND_MSG(v , s_print_buf );
free(s_print_buf);
} }
#ifdef HAVE_FREETYPE #ifdef HAVE_FREETYPE
void vj_event_get_srt_list( void *ptr, const char format[], va_list ap ) void vj_event_get_srt_list( void *ptr, const char format[], va_list ap )
@@ -10058,7 +10097,9 @@ void vj_event_get_sample_sequences( void *ptr, const char format[], va_list a
return; return;
} }
sprintf(_s_print_buf, "%06d%04d%04d%04d", char *s_print_buf = get_print_buf( 32 + (MAX_SEQUENCES*4));
sprintf(s_print_buf, "%06d%04d%04d%04d",
( 12 + (4*MAX_SEQUENCES)), ( 12 + (4*MAX_SEQUENCES)),
v->seq->current,MAX_SEQUENCES, v->seq->active ); v->seq->current,MAX_SEQUENCES, v->seq->active );
@@ -10066,11 +10107,11 @@ void vj_event_get_sample_sequences( void *ptr, const char format[], va_list a
{ {
char tmp[32]; char tmp[32];
sprintf(tmp, "%04d", v->seq->samples[i]); sprintf(tmp, "%04d", v->seq->samples[i]);
veejay_strncat(_s_print_buf, tmp, 4 ); veejay_strncat(s_print_buf, tmp, 4 );
} }
SEND_MSG(v, _s_print_buf ); SEND_MSG(v, s_print_buf );
free(s_print_buf);
} }
void vj_event_sample_sequencer_active( void *ptr, const char format[], va_list ap ) void vj_event_sample_sequencer_active( void *ptr, const char format[], va_list ap )