diff options
author | Wincent Balin <wincent@rockbox.org> | 2009-08-04 02:04:24 +0000 |
---|---|---|
committer | Wincent Balin <wincent@rockbox.org> | 2009-08-04 02:04:24 +0000 |
commit | 11ac0b3f2a7d2abc0ae6127752559b1ffafbebff (patch) | |
tree | 6b57fc0120b5ac8c486691be8c300709bd29f894 /apps | |
parent | bec80ca7ddeff355d0ca46efa331d98c77567fd4 (diff) | |
download | rockbox-11ac0b3f2a7d2abc0ae6127752559b1ffafbebff.tar.gz rockbox-11ac0b3f2a7d2abc0ae6127752559b1ffafbebff.zip |
PDBox: Minor addition and bugfixes.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22148 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps')
-rw-r--r-- | apps/plugins/pdbox/PDa/src/d_soundfile.c | 4 | ||||
-rw-r--r-- | apps/plugins/pdbox/PDa/src/x_net.c | 5 | ||||
-rw-r--r-- | apps/plugins/pdbox/pdbox-func.c | 38 | ||||
-rw-r--r-- | apps/plugins/pdbox/pdbox-net.c | 7 |
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 */ |
431 | t_binbuf* inbinbuf; | 432 | extern t_binbuf* inbinbuf; |
432 | void outlet_setstacklim(void); | 433 | extern void outlet_setstacklim(void); |
433 | 434 | ||
434 | void rockbox_receive_callback(struct datagram* dg) | 435 | void 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. */ |