PDBox: Minor addition and bugfixes.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22148 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
Wincent Balin 2009-08-04 02:04:24 +00:00
parent bec80ca7dd
commit 11ac0b3f2a
4 changed files with 48 additions and 6 deletions

View file

@ -1118,7 +1118,9 @@ static void soundfiler_read(t_soundfiler *x, t_symbol *s,
if (finalsize > bytelimit / (channels * bytespersamp))
finalsize = bytelimit / (channels * bytespersamp);
#ifdef ROCKBOX
fp = open(filename, O_RDONLY);
fp = open_soundfile(canvas_getdir(x->x_canvas)->s_name, filename,
headersize, &bytespersamp, &bigendian, &channels, &bytelimit,
skipframes);
#else
fp = fdopen(fd, "rb");
#endif

View file

@ -317,6 +317,7 @@ static void *netreceive_new(t_symbol *compatflag,
x = (t_netreceive *) pd_new(netreceive_class);
x->x_msgout = outlet_new(&x->x_obj, &s_anything);
x->x_connectout = 0;
x->x_nconnections = 0;
x->x_udp = udp;
@ -428,8 +429,8 @@ static void netreceive_free(t_netreceive *x)
#ifdef ROCKBOX
/* Basically a reimplementation of socketreceiver_getudp()
from s_inter.c */
t_binbuf* inbinbuf;
void outlet_setstacklim(void);
extern t_binbuf* inbinbuf;
extern void outlet_setstacklim(void);
void rockbox_receive_callback(struct datagram* dg)
{

View file

@ -263,8 +263,14 @@ void rb_ftoan(float f, char* out, int size)
strcat(out, ".");
size--;
/* Calculate first rest and convert it. */
/* Calculate first rest. */
float rest1 = (f - (float) int_part) * 1000000000.0;
/* If there is no fractional part, return here. */
if(rest1 == 0.0f)
return;
/* Convert the first rest to string. */
int irest1 = (int) rest1;
snprintf(sbuf, SBUFSIZE-1, "%09d", irest1);
@ -278,8 +284,26 @@ void rb_ftoan(float f, char* out, int size)
if(size <= 0)
return;
/* Calculate second rest and convert it. */
/* Calculate second rest. */
float rest2 = (rest1 - (float) irest1) * 1000000000.0;
/* If no second rest, check whether
the output string has unwanted zero trail,
remove it and end processing here. */
if(rest2 == 0.0f)
{
char* zerotrail = out + strlen(out) - 1;
for(; zerotrail >= out; zerotrail--)
{
if(*zerotrail == '0')
*zerotrail = '\0';
else
return;
}
}
/* Convert second rest. */
int irest2 = (int) rest2;
snprintf(sbuf, SBUFSIZE-1, "%09d", irest2);
@ -287,6 +311,16 @@ void rb_ftoan(float f, char* out, int size)
int rest2_len = strlen(sbuf);
int rest2_minlen = MIN(size, rest2_len);
strncat(out, sbuf, rest2_minlen);
/* Cut trailing zeroes. */
char* zerotrail = out + strlen(out) - 1;
for(;zerotrail >= out; zerotrail--)
{
if(*zerotrail == '0')
*zerotrail = '\0';
else
return;
}
}

View file

@ -103,7 +103,12 @@ bool receive_datagram(struct event_queue* route,
/* Copy datagram. */
memcpy(buffer, (struct datagram*) event.data, sizeof(struct datagram));
/* Free datagram buffer. */
/* Clear datagram event. */
memset(((struct datagram*) event.data)->data,
0,
((struct datagram*) event.data)->size);
/* Free datagram event. */
((struct datagram*) event.data)->used = false;
/* Everything went ok. */