summaryrefslogtreecommitdiff
path: root/apps
diff options
context:
space:
mode:
Diffstat (limited to 'apps')
-rw-r--r--apps/plugins/pdbox/PDa/src/d_soundfile.c4
-rw-r--r--apps/plugins/pdbox/PDa/src/x_net.c5
-rw-r--r--apps/plugins/pdbox/pdbox-func.c38
-rw-r--r--apps/plugins/pdbox/pdbox-net.c7
4 files changed, 48 insertions, 6 deletions
diff --git a/apps/plugins/pdbox/PDa/src/d_soundfile.c b/apps/plugins/pdbox/PDa/src/d_soundfile.c
index 74c41a78d4..49247b5ad9 100644
--- a/apps/plugins/pdbox/PDa/src/d_soundfile.c
+++ b/apps/plugins/pdbox/PDa/src/d_soundfile.c
@@ -1118,7 +1118,9 @@ static void soundfiler_read(t_soundfiler *x, t_symbol *s,
1118 if (finalsize > bytelimit / (channels * bytespersamp)) 1118 if (finalsize > bytelimit / (channels * bytespersamp))
1119 finalsize = bytelimit / (channels * bytespersamp); 1119 finalsize = bytelimit / (channels * bytespersamp);
1120#ifdef ROCKBOX 1120#ifdef ROCKBOX
1121 fp = open(filename, O_RDONLY); 1121 fp = open_soundfile(canvas_getdir(x->x_canvas)->s_name, filename,
1122 headersize, &bytespersamp, &bigendian, &channels, &bytelimit,
1123 skipframes);
1122#else 1124#else
1123 fp = fdopen(fd, "rb"); 1125 fp = fdopen(fd, "rb");
1124#endif 1126#endif
diff --git a/apps/plugins/pdbox/PDa/src/x_net.c b/apps/plugins/pdbox/PDa/src/x_net.c
index aa19f78ec0..dc9eff989d 100644
--- a/apps/plugins/pdbox/PDa/src/x_net.c
+++ b/apps/plugins/pdbox/PDa/src/x_net.c
@@ -317,6 +317,7 @@ static void *netreceive_new(t_symbol *compatflag,
317 317
318 x = (t_netreceive *) pd_new(netreceive_class); 318 x = (t_netreceive *) pd_new(netreceive_class);
319 x->x_msgout = outlet_new(&x->x_obj, &s_anything); 319 x->x_msgout = outlet_new(&x->x_obj, &s_anything);
320 x->x_connectout = 0;
320 x->x_nconnections = 0; 321 x->x_nconnections = 0;
321 x->x_udp = udp; 322 x->x_udp = udp;
322 323
@@ -428,8 +429,8 @@ static void netreceive_free(t_netreceive *x)
428#ifdef ROCKBOX 429#ifdef ROCKBOX
429/* Basically a reimplementation of socketreceiver_getudp() 430/* Basically a reimplementation of socketreceiver_getudp()
430 from s_inter.c */ 431 from s_inter.c */
431t_binbuf* inbinbuf; 432extern t_binbuf* inbinbuf;
432void outlet_setstacklim(void); 433extern void outlet_setstacklim(void);
433 434
434void rockbox_receive_callback(struct datagram* dg) 435void rockbox_receive_callback(struct datagram* dg)
435{ 436{
diff --git a/apps/plugins/pdbox/pdbox-func.c b/apps/plugins/pdbox/pdbox-func.c
index 22c8714b3f..c5a560de67 100644
--- a/apps/plugins/pdbox/pdbox-func.c
+++ b/apps/plugins/pdbox/pdbox-func.c
@@ -263,8 +263,14 @@ void rb_ftoan(float f, char* out, int size)
263 strcat(out, "."); 263 strcat(out, ".");
264 size--; 264 size--;
265 265
266 /* Calculate first rest and convert it. */ 266 /* Calculate first rest. */
267 float rest1 = (f - (float) int_part) * 1000000000.0; 267 float rest1 = (f - (float) int_part) * 1000000000.0;
268
269 /* If there is no fractional part, return here. */
270 if(rest1 == 0.0f)
271 return;
272
273 /* Convert the first rest to string. */
268 int irest1 = (int) rest1; 274 int irest1 = (int) rest1;
269 snprintf(sbuf, SBUFSIZE-1, "%09d", irest1); 275 snprintf(sbuf, SBUFSIZE-1, "%09d", irest1);
270 276
@@ -278,8 +284,26 @@ void rb_ftoan(float f, char* out, int size)
278 if(size <= 0) 284 if(size <= 0)
279 return; 285 return;
280 286
281 /* Calculate second rest and convert it. */ 287 /* Calculate second rest. */
282 float rest2 = (rest1 - (float) irest1) * 1000000000.0; 288 float rest2 = (rest1 - (float) irest1) * 1000000000.0;
289
290 /* If no second rest, check whether
291 the output string has unwanted zero trail,
292 remove it and end processing here. */
293 if(rest2 == 0.0f)
294 {
295 char* zerotrail = out + strlen(out) - 1;
296
297 for(; zerotrail >= out; zerotrail--)
298 {
299 if(*zerotrail == '0')
300 *zerotrail = '\0';
301 else
302 return;
303 }
304 }
305
306 /* Convert second rest. */
283 int irest2 = (int) rest2; 307 int irest2 = (int) rest2;
284 snprintf(sbuf, SBUFSIZE-1, "%09d", irest2); 308 snprintf(sbuf, SBUFSIZE-1, "%09d", irest2);
285 309
@@ -287,6 +311,16 @@ void rb_ftoan(float f, char* out, int size)
287 int rest2_len = strlen(sbuf); 311 int rest2_len = strlen(sbuf);
288 int rest2_minlen = MIN(size, rest2_len); 312 int rest2_minlen = MIN(size, rest2_len);
289 strncat(out, sbuf, rest2_minlen); 313 strncat(out, sbuf, rest2_minlen);
314
315 /* Cut trailing zeroes. */
316 char* zerotrail = out + strlen(out) - 1;
317 for(;zerotrail >= out; zerotrail--)
318 {
319 if(*zerotrail == '0')
320 *zerotrail = '\0';
321 else
322 return;
323 }
290} 324}
291 325
292 326
diff --git a/apps/plugins/pdbox/pdbox-net.c b/apps/plugins/pdbox/pdbox-net.c
index f0f7013488..03ef6bf6cb 100644
--- a/apps/plugins/pdbox/pdbox-net.c
+++ b/apps/plugins/pdbox/pdbox-net.c
@@ -103,7 +103,12 @@ bool receive_datagram(struct event_queue* route,
103 /* Copy datagram. */ 103 /* Copy datagram. */
104 memcpy(buffer, (struct datagram*) event.data, sizeof(struct datagram)); 104 memcpy(buffer, (struct datagram*) event.data, sizeof(struct datagram));
105 105
106 /* Free datagram buffer. */ 106 /* Clear datagram event. */
107 memset(((struct datagram*) event.data)->data,
108 0,
109 ((struct datagram*) event.data)->size);
110
111 /* Free datagram event. */
107 ((struct datagram*) event.data)->used = false; 112 ((struct datagram*) event.data)->used = false;
108 113
109 /* Everything went ok. */ 114 /* Everything went ok. */