home *** CD-ROM | disk | FTP | other *** search
/ The CDPD Public Domain Collection for CDTV 4 / CDPD_IV.bin / fish / 891-910 / ff896 / riff / txt / riff.mod < prev   
Text File  |  1994-05-04  |  3KB  |  98 lines

  1. (*#-- BEGIN AutoRevision header, please do NOT edit!
  2. *
  3. *   Program         :   Riff.mod
  4. *   Copyright       :   1992 ©, By DigiSoft
  5. *   Author          :   Marcel Timmermans
  6. *   Address         :   A. Dekenstr 22, 6836 RM, Arnhem, HOLLAND
  7. *   Creation Date   :   13-09-1992
  8. *   Current version :   1.1
  9. *   Translator      :   M2Amiga V4.1d
  10. *
  11. *   REVISION HISTORY
  12. *
  13. *   Date          Version         Comment
  14. *   ---------     -------         ------------------------------------------
  15. *   21-12-1992     1.0            First Release
  16. *   26-06-1993     1.1            Make Riff more easier to use, with the
  17. *                                 reqtools multifile requester.
  18. *
  19. *-- END AutoRevision header --*)
  20.  
  21. MODULE riff;
  22.  
  23. FROM SYSTEM       IMPORT ADR,ADDRESS,SHIFT,SHORTSET,LONGSET,TAG;
  24.  
  25. IMPORT id:IntuitionD,il:IntuitionL,a:Arguments,io:Terminal,A:Arts,ud:UtilityD,
  26.        s:String;
  27.  
  28. FROM readiff    IMPORT ReadILBM,IFFError,IFFErrors;
  29. FROM ReqTools   IMPORT FileListPtr,FileRequest,FileRequesterPtr,AllocRequestA,
  30.                        FreeFileList,FreeRequest,fReqMultiSelect,TypeFileReq,fiDir,
  31.                        ChangeReqAttrA,Window,LockWindowTag,fReqNoBuffer;
  32.  
  33. CONST
  34.   AutoVersion = '1.1';
  35.   AutoDate    = '26.06.1993';
  36.   CopyRight="Riff V"+AutoVersion+", iff reader, "+AutoDate+", © DigiSoft\n";
  37.  
  38. TYPE
  39.   String    = ARRAY[0..255] OF CHAR;
  40.   StringPtr = POINTER TO String;
  41.  
  42. VAR
  43.   numArgs,arg,len: INTEGER;
  44.   path,filename,complete : String;
  45.   filereq : FileRequesterPtr;
  46.   flist,templist : FileListPtr;
  47.   tagbuf:ARRAY [0..5] OF LONGINT;
  48.   myscreen : id.ScreenPtr;
  49.  
  50. (*-------------------------------------------------------------------------*)
  51. (*-------------------------------------------------------------------------*)
  52.  
  53. PROCEDURE WaitLMouse;
  54. VAR Ciapra[0BFE001H]: SHORTSET;
  55. BEGIN
  56.  WHILE 6 IN Ciapra DO END;
  57.  WHILE ((6 IN Ciapra)=FALSE) DO END;
  58. END WaitLMouse;
  59.  
  60. (*-------------------------------------------------------------------------*)
  61. (*-------------------------------------------------------------------------*)
  62.  
  63. BEGIN
  64.  io.WriteString(CopyRight);
  65.  filereq:= AllocRequestA(TypeFileReq,NIL);
  66.  A.Assert(filereq#NIL,ADR("Not enough memory"));
  67.  filereq^.flags:=LONGSET{fReqMultiSelect,fReqNoBuffer};
  68.  ChangeReqAttrA (filereq,TAG(tagbuf,fiDir,ADR(path),ud.tagEnd));
  69.  flist := FileRequest( filereq, ADR(filename), ADR("Pick some iff-files"),
  70.          TAG(tagbuf,LockWindowTag,TRUE,ud.tagEnd));
  71.  
  72.  s.Copy(path,StringPtr(filereq^.dir)^);
  73.  templist:=flist;
  74.  WHILE templist#NIL DO
  75.   IF s.Length(path) > 0 THEN
  76.     s.Copy(complete,path);
  77.     s.ConcatChar(complete,"/");
  78.     s.Concat(complete,StringPtr(templist^.name)^);
  79.   ELSE
  80.     s.Copy(complete,StringPtr(templist^.name)^);
  81.   END;
  82.   IFFError:=ReadILBM(complete,myscreen);
  83.   IF IFFError=iffNoErr THEN
  84.     WaitLMouse;
  85.   ELSE
  86.    io.WriteString("Error in ReadIff module with filename : ");
  87.    io.WriteString(complete);
  88.    io.WriteString("\n");
  89.   END;
  90.   IF myscreen#NIL THEN il.CloseScreen(myscreen); END;
  91.   templist:=templist^.next;
  92.   IF templist=NIL THEN io.WriteString("Ready\n"); END;
  93.  END;
  94. CLOSE
  95.  IF myscreen#NIL THEN il.CloseScreen(myscreen); END;
  96.  IF filereq#NIL  THEN FreeRequest(filereq); filereq:=NIL; END;
  97. END riff.
  98.