home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD2.iso / Misc / Split_GUI.lha / Split_v1.0 / Sources.lha / Sources / main.c < prev    next >
Encoding:
C/C++ Source or Header  |  1995-03-09  |  1.6 KB  |  85 lines

  1. #include <exec/types.h>
  2. #include <exec/lists.h>
  3. #include <dos/dos.h>
  4. #include "split.h"
  5.  
  6. #include <proto/exec.h>
  7.  
  8. /* for debug purposes */
  9. #include <stdio.h>
  10.  
  11. /* in commodity.c */
  12. extern ULONG brokerSig;
  13. extern BOOL setUpCommodity(int,char**);
  14. extern void removeCommodity( void );
  15. extern void handleBrokerSig( void );
  16.  
  17. /* in window.c */
  18. extern ULONG windowSig;
  19. extern void handleWindowSig( void );
  20. extern void openGUI( void );
  21. extern void closeGUI( void );
  22. extern void updateVolumeList( UWORD );
  23. extern void quit( void );
  24.  
  25. /* in diskhandler.c */
  26. extern ULONG diskSig;
  27. extern BOOL setDiskHandler( void );
  28. extern void removeDiskHandler( void );
  29.  
  30. /* in handler.s */
  31. extern void patchDOSlibrary( void );
  32.  
  33. /* in locale.c */
  34. extern void initLocale( void );
  35. extern void flushLocale( void );
  36.  
  37. /* in split.c */
  38. extern void readyChunkList( void );
  39. extern void goIdle( void );
  40.  
  41. /* end of external definitions */
  42.  
  43. char *ver = "$VER: Split 1.0 "__AMIGADATE__;
  44.  
  45. VolumeList *vlist = NULL;
  46.  
  47. BOOL stay = TRUE;
  48.  
  49. void main( int argc, char **argv )
  50. {
  51. initLocale();
  52. if ( setUpCommodity( argc, argv ) )
  53.     {
  54.     if ( setDiskHandler() )
  55.         {
  56.         ULONG signal;
  57.  
  58.         patchDOSlibrary();
  59.         readyChunkList();
  60.         goIdle();
  61.         openGUI();
  62.         while( stay )
  63.             {
  64.             signal = Wait( SIGBREAKF_CTRL_C | windowSig | brokerSig | diskSig );
  65.  
  66.             if ( signal & SIGBREAKF_CTRL_C )
  67.                 quit();
  68.  
  69.             if ( signal & brokerSig )
  70.                 handleBrokerSig();
  71.  
  72.             if ( signal & windowSig )
  73.                 handleWindowSig();
  74.  
  75.             if ( signal & diskSig )
  76.                 updateVolumeList( (UWORD)~0 );
  77.             }
  78.         closeGUI();
  79.         removeDiskHandler();
  80.         }
  81.     removeCommodity();
  82.     }
  83. flushLocale();
  84. }
  85.