Adding

bk_add()

int bk_add(VolInfo* volInfo, const char* srcPathAndName, const char* destPathStr, void(*progressFunction)(VolInfo*));

Add the file or the directory srcPathAndName to destPathStr. The destination is a full path, relative to the root of the ISO. For example, to add /etc/fstab to the (existing) KNOPPIX directory on the ISO, pass /KNOPPIX/ as the destPathStr.

progressFunction is a pointer to a function that takes a VolInfo* as a parameter and returns void. bk will call this function every 1 second or so. You can pass in NULL if you like but in that case control won't be returned to your code until bk_add() is finished doing what it has to do so you can't update a progress bar or cancel adding.

bk_create_dir()

int bk_create_dir(VolInfo* volInfo, const char* destPathStr, const char* newDirName);

Create the directory newDirName in the directory destPathStr on the ISO.

bk_add_boot_record()

int bk_add_boot_record(VolInfo* volInfo, const char* srcPathAndName, int bootMediaType);

Set the boot record for the ISO to be a file from the regular filesystem. This file will end up being a hidden file on the ISO. The parameter srcPathAndName has to be a string (with or without the path) pointing to a file that is an image of a boot record, e.g. /home/andrew/dosboot.raw. These images are created using various tools. ISO Master can extract the bootable image from CDs. It's a complex topic and I must assume you understand what a boot record is.

The bootMediaType parameter is one of the constants described in the 'Constants' section of this manual. For floppy emulation boot record types the size of the file pointed to by srcPathAndName must match the size assumed by bootMediaType.