home *** CD-ROM | disk | FTP | other *** search
- #include <exec/types.h>
- #include <exec/memory.h>
- #include <dos/dos.h>
- #include <dos/dosextens.h>
- #include <dos/notify.h>
- #include <string.h>
- #include <intuition/classes.h>
- #include <clib/macros.h>
- #include "gaugeclass.h"
- #include "tinymeter.h"
-
- getVolsize(struct tm_data *data,char *volname)
- {
- struct InfoData inf;
- struct DevProc *devproc;
- if(devproc=(struct DevProc *)GetDeviceProc(volname,NULL))
- {
- if( DoPkt(devproc->dvp_Port,ACTION_DISK_INFO,MKBADDR(&inf),NULL,NULL,NULL,NULL)==DOSTRUE)
- {
- switch(inf.id_DiskType)
- {
- case 0x42555359:
- data->volmax=0;
- data->volcur=GAU_err_busy;
- break;
- case ID_UNREADABLE_DISK:
- data->volmax=0;
- data->volcur=GAU_err_unreadable;
- break;
- case ID_NOT_REALLY_DOS:
- data->volmax=0;
- data->volcur=GAU_err_nodos;
- break;
- case ID_NO_DISK_PRESENT:
- data->volmax=0;
- data->volcur=GAU_err_notpresent;
- break;
- case ID_KICKSTART_DISK:
- data->volmax=0L;
- data->volcur=GAU_err_kickstart;
- break;
- default:
- data->volcur=(inf.id_NumBlocks-inf.id_NumBlocksUsed)*inf.id_BytesPerBlock;
- data->volmax=inf.id_NumBlocks*inf.id_BytesPerBlock;
- data->voltype=inf.id_DiskType;
- break;
- }
- }
- FreeDeviceProc(devproc);
- }
- else
- {
- data->volmax=0;
- data->volcur=GAU_err_notmount;
- }
- }
-
-