From 50c439ffa36fed9e1cce65b211ec05bf50925cc2 Mon Sep 17 00:00:00 2001 From: germeier Date: Sun, 6 Apr 2003 23:09:19 +0000 Subject: initial support for directories BEWARE: this might have broken some things!!! --- libmpio/fat.c | 53 +++++++++++++++++++++++++++++++++-------------------- 1 file changed, 33 insertions(+), 20 deletions(-) (limited to 'libmpio/fat.c') diff --git a/libmpio/fat.c b/libmpio/fat.c index f26f009..c24f56e 100644 --- a/libmpio/fat.c +++ b/libmpio/fat.c @@ -1,6 +1,6 @@ /* * - * $Id: fat.c,v 1.25 2003/04/04 22:08:53 germeier Exp $ + * $Id: fat.c,v 1.26 2003/04/06 23:09:20 germeier Exp $ * * Library for USB MPIO-* * @@ -837,24 +837,31 @@ mpio_fat_write(mpio_t *m, mpio_mem_t mem) if (mem == MPIO_INTERNAL_MEM) { sm = &m->internal; - f=mpio_fatentry_new(m, mem, 0, FTYPE_MUSIC); - mpio_io_block_delete(m, mem, f); - free(f); - - memset(dummy, 0x00, BLOCK_SIZE); - - /* only write the FAT */ - for (i= 0; i< 0x20; i++) - { - - if (icdir == sm->root) + { + f=mpio_fatentry_new(m, mem, 0, FTYPE_MUSIC); + mpio_io_block_delete(m, mem, f); + free(f); + + memset(dummy, 0x00, BLOCK_SIZE); + + /* only write the root dir */ + for (i= 0; i< 0x20; i++) { - mpio_io_sector_write(m, mem, i, (sm->dir + SECTOR_SIZE * i)); - } else { - /* fill the rest of the block with zeros */ - mpio_io_sector_write(m, mem, i, dummy); - } - } + + if (iroot->dir + SECTOR_SIZE * i)); + } else { + /* fill the rest of the block with zeros */ + mpio_io_sector_write(m, mem, i, dummy); + } + } + } else { + mpio_directory_write(m, mem, sm->cdir); + } + } if (mem == MPIO_EXTERNAL_MEM) @@ -896,9 +903,15 @@ mpio_fat_write(mpio_t *m, mpio_mem_t mem) if (i>=sm->dir_offset) mpio_io_sector_write(m, mem, i, - (sm->dir + (i - sm->dir_offset) * SECTOR_SIZE)); + (sm->root->dir + + (i - sm->dir_offset) * SECTOR_SIZE)); } - } + + if (sm->cdir != sm->root) + mpio_directory_write(m, mem, sm->cdir); + + } + return 0; } -- cgit v1.2.3