#include <math.h>
#include <stdlib.h>
#include <string.h>
-
+#include <stdbool.h>
#include "splitter.h"
+#define BLOCK_SIZE 2048.0
#define S_IFREG 0100000 // bitmask for regular file; man inode
int cmpfunc(const void *filea, const void *fileb)
return strcmp(filename1, filename2);
}
-int can_add_file_to_medium(medium_t *disc, file_size_t *file)
+bool can_add_file_to_medium(medium_t *disc, file_size_t *file)
{
- int retvalue = 0;
-
// ISO9660 filesystem overhead
- unsigned long long filesize = ceil(file->fsize / 2048.0) * 2048;
+ unsigned long long filesize = ceil(file->fsize / BLOCK_SIZE) * BLOCK_SIZE;
if (disc->freespace >= filesize) {
disc->freespace -= filesize;
- retvalue = 1;
+ return true;
}
- return retvalue;
+ return false;
}
-int bigger_file_ignore_medium(medium_t *disc, file_size_t *file)
+bool bigger_file_ignore_medium(medium_t *disc, file_size_t *file)
{
- int retvalue = 0;
- unsigned long long filesize = ceil(file->fsize /2048.0) * 2048;
+ unsigned long long filesize = ceil(file->fsize / BLOCK_SIZE) * BLOCK_SIZE;
if ((file->type & S_IFREG) != S_IFREG)
- retvalue = 1;
-
- if (disc->freespace < filesize)
- retvalue = 1;
+ return true;
- return retvalue;
+ return disc->freespace < filesize;
}
void add_item_medium(medium_t *medium, file_size_t *item)
}
medium_t* splitter_to_disc(medium_t *srcdata,
- int (*check)(medium_t*, file_size_t*))
+ bool (*check)(medium_t*, file_size_t*))
{
qsort(srcdata->filearray, srcdata->length, sizeof(file_size_t*), cmpfunc);