

t@CVXe֐Q



y0. Tvz

GD-ROM ̃ANZX@\񋟂܂B
EfBNg̃ANZX
Et@C̃I[v/N[Y
Et@C̓ǂݍ(A)

y1. f[^dlz


s1.1 萔t

  Seek mode
    GDFS_SEEK_SET
    GDFS_SEEK_CUR
    GDFS_SEEK_END

  Status
    GDFS_STAT_IDLE
    GDFS_STAT_COMPLETE
    GDFS_STAT_READ
    GDFS_STAT_SEEK
    GDFS_STAT_PLAY
    GDFS_STAT_BUSY
    GDFS_STAT_ERR
    GDFS_STAT_FATAL
    GDFS_STAT_UNDEF

  Errors
    GDFS_ERR_OK
    GDFS_ERR_RESET
    GDFS_ERR_INIT
    GDFS_ERR_DIRREC
    GDFS_ERR_CANTOPEN
    GDFS_ERR_NOTFOUND
    GDFS_ERR_NOHNDL
    GDFS_ERR_ILLHNDL
    GDFS_ERR_NOTDIR
    GDFS_ERR_DIROVER
    GDFS_ERR_BUSY
    GDFS_ERR_32ALIGN
    GDFS_ERR_SEEK
    GDFS_ERR_OFS
    GDFS_ERR_ILLTMODE
    GDFS_ERR_ILLREQ
    GDFS_ERR_READ
    GDFS_ERR_NOTREAD
    GDFS_ERR_RDTOUT
    GDFS_ERR_TOUT
    GDFS_ERR_EOF
    GDFS_ERR_TRAYOPEND
    GDFS_ERR_HWARE
    GDFS_ERR_MEDIA
    GDFS_ERR_RECOVER
    GDFS_ERR_PROTECT
    GDFS_ERR_ABORT
    GDFS_ERR_NOTREADY
    GDFS_ERR_UNITATTENT
    GDFS_ERR_FATAL
    GDFS_ERR_UNDEF



s1.2 f[^^t
  GDFS         ...  t@Cnh
  GDFS_DIRREC  ...  fBNgR[hnh



s1.3 }Nt
  GDFS_WORK_SIZE(x)
    :  x ... ɃI[vt@C
    Ӗ: KvƂ郏[Nobt@TCY
  
  GDFS_DIRREC_SIZE(x)
    :  x ... i[fBNgGg
    Ӗ: KvƂfBNgR[hobt@TCY


y2. ֐dlz
s2.1֐ꗗt
+---------------+-----------------------------------+
|֐           |@\                               |
+---------------+-----------------------------------+
|gdFsInit       |t@CVXȅƃ}Eg |
+---------------+-----------------------------------+
|gdFsLoadDir    |fBNg̎擾             |
+---------------+-----------------------------------+
|gdFsChangeDir  |JgfBNg̕ύX         |
+---------------+-----------------------------------+
|gdFsOpen       |t@CJ                     |
+---------------+-----------------------------------+
|gdFsGetFileSize|t@CTCY̎擾               |
+---------------+-----------------------------------+
|gdFsRead       |t@C̓ǂݍ                 |
+---------------+-----------------------------------+
|gdFsClose      |t@C                   |
+---------------+-----------------------------------+


s2.2֐APIt
----------

m֐nSint32  gdFsInit(Uint32 max_open, void *gdfs_work, Uint32 max_dirent, void *gdfs_dirrec)
ḿnmax_open     ... ɃI[vłt@C
        gdfs_work    ... [NGÃ|C^ ([U[̈悩)
        max_dirent   ... JgfBNg̃Gg
        gdfs_dirrec  ... JgfBNg̃obt@ ([U[̈悩)
mónȂ
m߂lnGDFS_ERR_OK ... I
          ̑      ... G[
m@\nCȕB
mgpn
           Uint8 gdfswork[GDFS_WORK_SIZE(8)];
           Uint8 gdfscurdir[GDFS_DIRREC_SIZE(64)];

           gdFsInit(8, gdfswork, 64, gdfscurdir);

mӁngdfs_work  32 Byte align łȂ΂Ȃ܂B
        {֐́AsbInit֐Ŏs܂B
        SDKł́AsbInit֐̃\[XvO͌J܂񂪁A
        SDKł́AsbInit\[XJt@CVXȅɐݒ
        ύXł悤ɂȂ\łB
        sbInitł̃ftHgl͈ȉ̒ʂłB
          I[vłt@CF8
          [NGAւ̃|C^    FO[oϐugdfsworkv
                                        Uint8 gdfswork[GDFS_WORK_SIZE(8)];
          JgfBNg̃GgF1024
          JgfBNg̃obt@FO[oϐugdfsurdirv
                                     Uint8 gdfscurdir[GDFS_DIRREC_SIZE(1024)];

----------

m֐nGDFS_DIRREC gdFsCreateDirhn(void *gdfs_dirrec, Uint32 max_dirent)
ḿngdfs_dirrec  ...  fBNg̃obt@
      max_dirent   ...  fBNg̃Gg
mónȂ
m߂lnfBNgR[hnh
m@\nfBNgnh𐶐
mgpn
      Uint8 dirbuf[GDFS_DIRREC_SIZE(64)];
      GDFS_DIRREC g_dir;

      g_dir = gdFsCreateDirhn(dirbuf, 64);
mӁnfBNgGg͍Œ 3 KvłB
        fBNgɂ͕KgwfBNgA
        efBNgwfBNg擪ɒuĂ܂B
        t@C 3 Ԗڂ̃Ggȍ~ƂȂ܂B

----------

m֐nUint32  gdFsLoadDir(Sint8 *dirname, GDFS_DIRREC gdfs_dirrec)
ḿndirname      ...  fBNg
móngdfs_dirrec  ...  fBNgR[hnh
                        (NULL ̏ꍇ̓JgfBNg)
m߂lnGDFS_ERR_OK ... I
          ̑      ... G[
m@\nfBNgR[hǂݍށB
mgpn
          /* Tv 1 */
          /* MOVIE directory  g_dir ֓ǂݎ */
          Uint8       dirbuf[GDFS_DIRREC_SIZE(64)];
          GDFS_DIRREC g_dir;

          g_dir = gdFsCreateDirhn( dirbuf, 64 );
          gdFsLoadDir("MOVIE", g_dir);

          /* Tv 2 */
          /* JgfBNg DATA directory ֈړ */
          gdFsLoadDir("DATA", NULL);

----------

m֐nUint32 gdFsChangeDir(Sint8 *dirname)
ḿndirname  ...  fBNg
mónȂ
m߂lnGDFS_ERR_OK ... I
          ̑      ... G[
m@\nJgfBNgύXB
mgpn
          /* JgfBNg DATA directory ֈړ */
          gdFsChangeDir("WORK");

----------

m֐nGDFS  gdFsOpen(Sint8 *fname, GDFS_DIRREC gdfs_dirrec)
ḿnfname        ...  t@C
        gdfs_dirrec  ...  t@CfBNgR[hnh
                          (NULL ̏ꍇ̓Jg猟)
mónȂ
m߂lnNULL      ...  s
          ȊO  ...  t@Cnh
m@\nt@C̃I[vB
mgpn
         /* Tv 1(JgfBNg̃t@CɃANZXƂ) */
         GDFS gf;

         gf = gdFsOpen("A.BIN", NULL);

         /* Tv 2(TufBNg̃t@CɃANZXƂ) */
         GDFS gf;
         Uint8 dirbuf[GDFS_DIRREC_SIZE(64)];
         GDFS_DIRREC g_dir;

         g_dir = gdFsCreateDirhn(dirbuf, 64);
         gdFsLoadDir("MOVIE", g_dir);
         gf = gdFsOpen("SMP.MOV", g_dir);

----------

m֐nBool  gdFsGetFileSize(GDFS gdfs, Uint32 *fsize);
ḿngdfs     ...  t@Cnh
món*fsize   ...  t@CTCY (oCg)
m߂lnTRUE / FALSE
m@\nt@CTCY擾B 
mgpn
          GDFS gf;
          Uint32 flen;

          gf = gdFsOpen("TEST.BIN", NULL);
          gdFsGetFileSize(gdfs, &flen);

----------

m֐nSint32  gdFsRead(GDFS gdfs, Uint32 nsct, void *buf)
ḿngdfs     ...  t@Cnh
        nsct     ...  ǂݍރZN^
        buf      ...  i[obt@
mónȂ
m߂lnGDFS_ERR_OK ... I
          ̑      ... G[
m@\nt@C̓ǂݍ (A)
mgpn
          GDFS gf;
          Uint32 buf[32*2048/4];

          gf = gdFsOpen("TEST.BIN", NULL);
          gdFsRead(gf, 32, buf);
          gdFsClose(gf);

----------

m֐nvoid  gdFsClose(GDFS gdfs);
ḿngdfs   ...  t@Cnh
mónȂ
m߂lnȂ
m@\nt@C̃N[YB
mgpn
          GDFS gf;

          gf = gdFsOpen("TEST.BIN", NULL);
          gdFsClose(gf);

