123 static inline short inf_global(
const mu_ent *
const first,
const mu_ent *
const second,
const unsigned char *
const order);
189 unsigned long packsize,
200 for (ssmsize = 1; ssmsize <= packsize; ssmsize *= 2) {
212 for (psize=0; (psize < ssmsize) && q; psize++)
219 while (psize || (qsize && q)) {
225 }
else if (!qsize || !q) {
289 return (rand()-(RAND_MAX/2));
294 return (first->track - second->track);
299 return (first->posn - second->posn);
304 return (first->date - second->date);
309 return (first->length - second->length);
315 return ((first->bitrate <= second->bitrate) ? -1 : 1);
326 return (first->freq - second->freq);
332 return ((first->size <= second->size) ? -1 : 1);
346 return ((first->mtime < second->mtime) ? 1 : -1);
351 register short ret = -1;
352 if (
likely(first->artist))
354 if (
likely(second->artist))
356 return (
likely(!ret) ? strcasecmp(first->artist, second->artist) : ~ret);
361 register short ret = -1;
364 if (
likely(second->album))
366 return (
likely(!ret) ? strcasecmp(first->album, second->album) : ~ret);
372 return strcasecmp(first->title, second->title);
377 return (first->filetype - second->filetype);
382 return strcasecmp(first->file, second->file);
387 return strcmp(first->uri, second->uri);
392 register short ret = -1;
395 if (
likely(second->genre))
397 return (
likely(!ret) ? strcasecmp(first->genre, second->genre) : ~ret);
403 const char *
const restrict one = first->uri;
404 const char *
const restrict two = second->uri;
405 unsigned char cone =
'a', ctwo =
'a';
406 register unsigned short i;
408 for (i=0; one[i] == two[i]; i++)
411 for (; ((cone!=
'\0') && (cone!=
'/')) || ((ctwo!=
'\0') && (ctwo!=
'/')); i++) {
412 if (((one[i]==
'\0')||(one[i]==
'/')) && (cone!=
'\0') && (cone!=
'/'))
415 if (((two[i]==
'\0')||(two[i]==
'/')) && (ctwo!=
'\0') && (ctwo!=
'/'))
419 return ((
short)cone - (short)ctwo);
451 static inline short inf_global(
const mu_ent *
const first,
const mu_ent *
const second,
const unsigned char *
const restrict order)
454 register unsigned short i;