home *** CD-ROM | disk | FTP | other *** search
/ Aminet 18 / aminetcdnumber181997.iso / Aminet / misc / emu / AROSdev.lha / AROS / workbench / libs / iffparse / dosstreamhandler.c < prev    next >
Encoding:
C/C++ Source or Header  |  1997-02-03  |  1.2 KB  |  88 lines

  1. /*
  2.     (C) 1995-96 AROS - The Amiga Replacement OS
  3.     $Id: dosstreamhandler.c,v 1.2 1997/02/03 18:38:01 digulla Exp $
  4.  
  5.     Desc: DOS stream handler. Used in InitIFFasDOS.
  6.     Lang: English.
  7. */
  8. #include "iffparse_intern.h"
  9.  
  10. /********************/
  11. /* DosStreamHandler */
  12. /********************/
  13.  
  14. #undef DOSBase
  15. #define DOSBase    (IPB(hook->h_Data)->dosbase)
  16.  
  17. ULONG DOSStreamHandler
  18. (
  19.     struct Hook     * hook,
  20.     struct IFFHandle    * iff,
  21.     struct IFFStreamCmd * cmd
  22. )
  23. {
  24.  
  25.     LONG error;
  26.  
  27.     switch (cmd->sc_Command)
  28.     {
  29.     case IFFCMD_READ:
  30.  
  31.         error =
  32.         (
  33.         Read
  34.         (
  35.             (BPTR)iff->iff_Stream,
  36.             cmd->sc_Buf,
  37.             cmd->sc_NBytes
  38.         )
  39.         !=
  40.         cmd->sc_NBytes
  41.         );
  42.  
  43.         break;
  44.  
  45.     case IFFCMD_WRITE:
  46.  
  47.         error =
  48.         (
  49.         Write
  50.         (
  51.             (BPTR)iff->iff_Stream,
  52.             cmd->sc_Buf,
  53.             cmd->sc_NBytes
  54.         )
  55.         !=
  56.         cmd->sc_NBytes
  57.         );
  58.  
  59.         break;
  60.  
  61.     case IFFCMD_SEEK:
  62.         error =
  63.         (
  64.         Seek
  65.         (
  66.             (BPTR)iff->iff_Stream,
  67.             cmd->sc_NBytes,
  68.             OFFSET_CURRENT
  69.         )
  70.  
  71.         ==
  72.         -1
  73.         );
  74.  
  75.         break;
  76.  
  77.     case IFFCMD_INIT:
  78.     case IFFCMD_CLEANUP:
  79.         /* Don't need these for dos streams
  80.         */
  81.         error = NULL;
  82.         break;
  83.     }
  84.  
  85.     return (error);
  86.  
  87. }
  88.