#define PROPWIDTH 588
#define PROPSHIFT (MAXBODY / (1672/88))
#define PROPSIZE  (588/(1672/88))

#define OPENFAIL   -1
#define NODISK     -10
#define OUTOFRANGE -11

struct IntuiText ThText1 = { 3,0,COMPLEMENT, 0,0, NULL, "   DF0", NULL };
struct IntuiText ThText2 = { 3,0,COMPLEMENT, 0,0, NULL, "   DF1", NULL };
struct IntuiText ThText3 = { 3,0,COMPLEMENT, 0,0, NULL, "   DF2", NULL };
struct IntuiText ThText4 = { 3,0,COMPLEMENT, 0,0, NULL, "   DF3", NULL };

struct MenuItem ThItem4 = {
        NULL,0,30,55,8,CHECKIT+MENUTOGGLE+ITEMTEXT+HIGHCOMP,
        7,(APTR)&ThText4,NULL,NULL,NULL,MENUNULL
};
struct MenuItem ThItem3 = {
        &ThItem4,0,20,55,8,CHECKIT+MENUTOGGLE+ITEMTEXT+HIGHCOMP,
        11,(APTR)&ThText3,NULL,NULL,NULL,MENUNULL
};

struct MenuItem ThItem2 = {
        &ThItem3,0,10,55,8,CHECKIT+MENUTOGGLE+ITEMTEXT+HIGHCOMP,
        13,(APTR)&ThText2,NULL,NULL,NULL,MENUNULL
};
struct MenuItem ThItem1 = {
        &ThItem2,0,0,55,8,CHECKIT+MENUTOGGLE+ITEMTEXT+ITEMENABLED+HIGHCOMP,
        14,(APTR)&ThText1,NULL,NULL,NULL,MENUNULL
};

struct Menu ThirdMenu = { NULL,195,0,55,0,MENUENABLED,"Drive",&ThItem1 };


struct IntuiText SecText1 = { 3,0,COMPLEMENT, 0,0, NULL, "Play buffer", NULL };
struct IntuiText SecText2 = { 3,0,COMPLEMENT, 0,0, NULL, "Scan disk  ", NULL };
struct IntuiText SecText3 = { 3,0,COMPLEMENT, 0,0, NULL, "Audio prefs", NULL };
struct IntuiText SecText4 = { 3,0,COMPLEMENT, 0,0, NULL, "Chng Filter", NULL };

struct MenuItem SecItem4 = {
        NULL, 0,30, 88,8, ITEMTEXT+ITEMENABLED+HIGHCOMP,
        0, (APTR)&SecText4, NULL, NULL, NULL, MENUNULL
};
struct MenuItem SecItem3 = {
        &SecItem4, 0,20, 88,8, ITEMTEXT+ITEMENABLED+HIGHCOMP,
        0, (APTR)&SecText3, NULL, NULL, NULL, MENUNULL
};

struct MenuItem SecItem2 = {
        &SecItem3,0,10,88,8,ITEMTEXT+ITEMENABLED+HIGHCOMP,
        0,(APTR)&SecText2,NULL,NULL,NULL,MENUNULL
};

struct MenuItem SecItem1 = {
        &SecItem2,0,0,88,8,ITEMTEXT+ITEMENABLED+HIGHCOMP,
        0,(APTR)&SecText1,NULL,NULL,NULL,MENUNULL
};

struct Menu SecondMenu = { &ThirdMenu,102,0,88,0,MENUENABLED,"Play",&SecItem1 };

struct IntuiText IText1 = { 3,0,COMPLEMENT, 0,0, NULL, "Save       ", NULL };
struct IntuiText IText2 = { 3,0,COMPLEMENT, 0,0, NULL, "Quit       ", NULL };

struct MenuItem Item2 = {
        NULL, 0,10, 88,8, ITEMTEXT+ITEMENABLED+HIGHCOMP,
        0, (APTR)&IText2, NULL, NULL, NULL, MENUNULL
};
struct MenuItem Item1 = {
        &Item2, 0,0, 88,8, ITEMTEXT+ITEMENABLED+HIGHCOMP,
        0, (APTR)&IText1, NULL, NULL, NULL, MENUNULL
};
struct Menu FirstMenu = { &SecondMenu,10,0,88,0,MENUENABLED, "Options ",&Item1 };

struct PropInfo ProperInfo = { AUTOKNOB|FREEHORIZ, 0,0,PROPSHIFT,PROPSIZE, };
struct Image PropImage = { 0,0, PROPWIDTH,8, 1, NULL, 0,1, NULL };
struct Gadget ProperGadget = {
        NULL, 3,22, PROPWIDTH+4,8, NULL,
        RELVERIFY|GADGHIMAGE, PROPGADGET,
        (APTR)&PropImage, NULL, NULL, NULL, (APTR)&ProperInfo, NULL, NULL
};

struct NewWindow Newwin = {
   0, 0, 600, 200, 2, 3,
   CLOSEWINDOW | RAWKEY | MENUPICK | GADGETUP,
   WINDOWCLOSE | WINDOWDEPTH | WINDOWDRAG | ACTIVATE |
   SMART_REFRESH,
   &ProperGadget, NULL, (UBYTE *)"Sample scanner by Steven Lagerweij", NULL, NULL,
   240, 100, 640, 256, WBENCHSCREEN
};

struct PropInfo PeriodInfo = { AUTOKNOB|FREEHORIZ, 0,0,(MAXBODY/64),5, };
struct Image PerImage = { 0,0, 64,8, 1, NULL, 0,1, NULL };
struct Gadget PeriodGadget = {
        NULL, 75,32, 66,8, NULL,
        RELVERIFY|GADGHIMAGE, PROPGADGET,
        (APTR)&PerImage, NULL, NULL, NULL, (APTR)&PeriodInfo, 2,NULL
};

struct PropInfo VolumeInfo = { AUTOKNOB|FREEHORIZ, 0,0,(MAXBODY/64),5, };
struct Image VolImage = { 0,0, 64,8, 1, NULL, 0,1, NULL };
struct Gadget VolumeGadget = {
        &PeriodGadget, 75,20, 66,8, NULL,
        RELVERIFY|GADGHIMAGE, PROPGADGET,
        (APTR)&VolImage, NULL, NULL, NULL, (APTR)&VolumeInfo, 1,NULL
};
struct NewWindow newsswin = {
   100,75,185,45,2,1,
   CLOSEWINDOW | GADGETUP,
   WINDOWCLOSE | WINDOWDEPTH | WINDOWDRAG | ACTIVATE | SMART_REFRESH,
   &VolumeGadget,NULL,(UBYTE *)"Audio Preferences",NULL,NULL,
   0,0,0,0,WBENCHSCREEN
};

SHORT ReqBordervecs[] = { 0,0, 100,0, 100,9, 0,9, 0,0 };
struct Border ReqBorder = { -2,-1, 3,0,JAM1, 5, ReqBordervecs, NULL };

struct IntuiText ReqTex = { 1,0,JAM2, 18,0, NULL, "ArpReq", NULL };

struct Gadget ReqGadget = {
        NULL, 235,69, 95,8, NULL, RELVERIFY, BOOLGADGET,
        (APTR)&ReqBorder, NULL, &ReqTex, NULL, NULL, 5, NULL
};


SHORT StartBordervecs[] = { 0,0, 100,0, 100,9, 0,9, 0,0 };
struct Border StartBorder = { -2,-1, 3,0,JAM1, 5, StartBordervecs, NULL };

struct IntuiText StartTex = { 1,0,JAM2, 18,0, NULL, "Start", NULL };

struct Gadget StartGadget = {
        &ReqGadget, 15,69, 95,8, NULL, RELVERIFY, BOOLGADGET,
        (APTR)&StartBorder, NULL, &StartTex, NULL, NULL, 4, NULL
};

char Frombuf[10] = {""};
struct StringInfo FromInfo = { Frombuf,NULL,0,5,0,0,0,0,0,0,NULL,0,NULL, };

struct Gadget FromGadget = {
   &StartGadget, 110, 22, 200, 10, GADGHCOMP, LONGINT|RELVERIFY, STRGADGET, NULL,
   NULL, NULL, NULL, (APTR)&FromInfo, 3, NULL,
};

char ToBuf[10] = {""};
struct StringInfo ToInfo = { ToBuf,NULL,0,5,0,0,0,0,0,0,NULL,0,NULL, };

struct Gadget ToGadget = {
   &FromGadget, 110, 32, 200, 10, GADGHCOMP, LONGINT|RELVERIFY, STRGADGET, NULL,
   NULL, NULL, NULL, (APTR)&ToInfo, 2, NULL,
};

char StringBuffer[80] = {"ram:grabbedfile"};
struct StringInfo StringInfo = { StringBuffer,NULL,0,80,0,0,0,0,0,0,NULL,0,NULL, };

struct Gadget StringGadget = {
   &ToGadget, 110, 42, 200, 10, GADGHCOMP, RELVERIFY, STRGADGET, NULL,
   NULL, NULL, NULL, (APTR)&StringInfo, 1, NULL,
};


struct NewWindow newsavewin = {
   100,75,350,80,2,1,
   CLOSEWINDOW | GADGETUP,
   WINDOWCLOSE | WINDOWDEPTH | WINDOWDRAG | ACTIVATE | SMART_REFRESH,
   &StringGadget,NULL,(UBYTE *)"Save blocks to file",NULL,NULL,
   0,0,0,0,WBENCHSCREEN
};


