home *** CD-ROM | disk | FTP | other *** search
/ Dream 41 / Amiga_Dream_41.iso / Amiga / Programmation / gui / guicreator20.lha / GUICreator2.0 / Demos / Sound.c < prev    next >
C/C++ Source or Header  |  1996-06-12  |  27KB  |  542 lines

  1. /*************************************************************************/
  2. /*                                                                       */
  3. /*   Includes                                                            */
  4. /*                                                                       */
  5. /*************************************************************************/
  6. #include "Sound_Includes.h"
  7. #include "Sound.h"
  8.  
  9. /*************************************************************************/
  10. /*                                                                       */
  11. /*   Variables and Structures                                            */
  12. /*                                                                       */
  13. /*************************************************************************/
  14. extern struct IntuitionBase *IntuitionBase;
  15. extern struct GfxBase       *GfxBase;
  16.  
  17. extern struct UtilityBase   *UtilityBase;
  18.  
  19. extern struct Library *GadToolsBase ;
  20. extern struct Library *AslBase      ;
  21. extern struct Library *DataTypesBase;
  22.  
  23. /*************************************************************************/
  24. /*                                                                       */
  25. /*   Defines                                                             */
  26. /*                                                                       */
  27. /*************************************************************************/
  28. #define GADGET_DOWN  0
  29. #define GADGET_UP    1
  30. #define RASTERX (((struct GfxBase *)GfxBase)->DefaultFont->tf_XSize)
  31. #define RASTERY (((struct GfxBase *)GfxBase)->DefaultFont->tf_YSize/2+4)
  32.  
  33. #define XSIZE(x)  ((x)*RASTERX)
  34. #define YSIZE(x)  ((x)*RASTERY)
  35.  
  36. #define XPOS(x)   (XSIZE(x)+customscreen->WBorLeft)
  37. #define YPOS(x)   (YSIZE(x)+customscreen->BarHeight+1)
  38.  
  39. /*************************************************************************/
  40. /*                                                                       */
  41. /*   WindowStructures                                                    */
  42. /*                                                                       */
  43. /*************************************************************************/
  44. struct SoundPrefsWindowData
  45.     {
  46.     BOOL    gd_Disabled_Gadget10;
  47.     BOOL    gd_Checked_Gadget10;
  48.     BOOL    gd_Disabled_Gadget11;
  49.     BOOL    gd_Checked_Gadget11;
  50.     BOOL    gd_Disabled_Gadget12;
  51.     UWORD   gd_Active_Gadget12;
  52.     char * *gd_Labels_Gadget12;
  53.     BOOL    gd_Disabled_Gadget14;
  54.     UWORD   gd_Level_Gadget14;
  55.     UWORD   gd_Max_Gadget14;
  56.     UWORD   gd_Min_Gadget14;
  57.     BOOL    gd_Disabled_Gadget15;
  58.     UWORD   gd_Level_Gadget15;
  59.     UWORD   gd_Max_Gadget15;
  60.     UWORD   gd_Min_Gadget15;
  61.     BOOL    gd_Disabled_Gadget1;
  62.     UWORD   gd_Level_Gadget1;
  63.     UWORD   gd_Max_Gadget1;
  64.     UWORD   gd_Min_Gadget1;
  65.     BOOL    gd_Disabled_Gadget4;
  66.     char    gd_String_Gadget4[256];
  67.     BOOL    gd_Disabled_Gadget3;
  68.     BOOL    gd_Disabled_Gadget5;
  69.     BOOL    gd_Disabled_Gadget6;
  70.     BOOL    gd_Disabled_Gadget8;
  71.     BOOL    gd_Disabled_Gadget9;
  72.     };
  73.  
  74. /*************************************************************************/
  75. /*                                                                       */
  76. /*   Routines to handle gadgets                                          */
  77. /*                                                                       */
  78. /*************************************************************************/
  79. void HandleGadgetsSoundPrefsWindow(struct Window *win,struct Gadget *wingads[],ULONG gadgetid,ULONG messagecode,struct SoundPrefsWindowData *gadgetdata,APTR userdata)
  80. {
  81.     switch(gadgetid)
  82.         {
  83.         case CBID_Gadget10:
  84.             Gadget10Clicked(win,wingads,gadgetid,messagecode,userdata);
  85.             break;
  86.         case CBID_Gadget11:
  87.             Gadget11Clicked(win,wingads,gadgetid,messagecode,userdata);
  88.             break;
  89.         case CYID_Gadget12:
  90.             Gadget12Clicked(win,wingads,gadgetid,messagecode,userdata);
  91.             break;
  92.         case SLID_Gadget14:
  93.             Gadget14Clicked(win,wingads,gadgetid,messagecode,userdata);
  94.             break;
  95.         case SLID_Gadget15:
  96.             Gadget15Clicked(win,wingads,gadgetid,messagecode,userdata);
  97.             break;
  98.         case SLID_Gadget1:
  99.             Gadget1Clicked(win,wingads,gadgetid,messagecode,userdata);
  100.             break;
  101.         case STID_Gadget4:
  102.             Gadget4Clicked(win,wingads,gadgetid,messagecode,userdata);
  103.             break;
  104.         case BTID_Gadget3:
  105.             Gadget3Clicked(win,wingads,gadgetid,messagecode,userdata);
  106.             break;
  107.         case BTID_Gadget5:
  108.             Gadget5Clicked(win,wingads,gadgetid,messagecode,userdata);
  109.             break;
  110.         case BTID_Gadget6:
  111.             Gadget6Clicked(win,wingads,gadgetid,messagecode,userdata);
  112.             break;
  113.         case BTID_Gadget8:
  114.             Gadget8Clicked(win,wingads,gadgetid,messagecode,userdata);
  115.             break;
  116.         case BTID_Gadget9:
  117.             Gadget9Clicked(win,wingads,gadgetid,messagecode,userdata);
  118.             break;
  119.         };
  120. }
  121.  
  122. /*************************************************************************/
  123. /*                                                                       */
  124. /*   Routines to create gadgets                                          */
  125. /*                                                                       */
  126. /*************************************************************************/
  127. struct Gadget *CreateGadgetsSoundPrefsWindow(struct Gadget **gadgetlist,struct NewGadget newgad[],struct Gadget *wingads[],struct SoundPrefsWindowData *gadgetdata)
  128. {
  129.     struct Gadget *gadget=CreateContext(gadgetlist);
  130.     if (gadget)
  131.         {
  132.         wingads[LAID_Gadget1]=gadget=CreateGadget(TEXT_KIND,gadget,&newgad[LAID_Gadget1],GT_Underscore,'_',GTTX_Border,FALSE,TAG_END);
  133.         wingads[LAID_Gadget2]=gadget=CreateGadget(TEXT_KIND,gadget,&newgad[LAID_Gadget2],GT_Underscore,'_',GTTX_Border,FALSE,TAG_END);
  134.         wingads[LAID_Gadget3]=gadget=CreateGadget(TEXT_KIND,gadget,&newgad[LAID_Gadget3],GT_Underscore,'_',GTTX_Border,FALSE,TAG_END);
  135.         wingads[LAID_Gadget4]=gadget=CreateGadget(TEXT_KIND,gadget,&newgad[LAID_Gadget4],GT_Underscore,'_',GTTX_Border,FALSE,TAG_END);
  136.         wingads[LAID_Gadget6]=gadget=CreateGadget(TEXT_KIND,gadget,&newgad[LAID_Gadget6],GT_Underscore,'_',GTTX_Border,FALSE,TAG_END);
  137.         wingads[LAID_Gadget8]=gadget=CreateGadget(TEXT_KIND,gadget,&newgad[LAID_Gadget8],GT_Underscore,'_',GTTX_Border,FALSE,TAG_END);
  138.         wingads[LAID_Gadget9]=gadget=CreateGadget(TEXT_KIND,gadget,&newgad[LAID_Gadget9],GT_Underscore,'_',GTTX_Border,FALSE,TAG_END);
  139.         wingads[CBID_Gadget10]=gadget=CreateGadget(CHECKBOX_KIND,gadget,&newgad[CBID_Gadget10],GA_Disabled,gadgetdata->gd_Disabled_Gadget10,GTCB_Scaled,TRUE,GTCB_Checked,gadgetdata->gd_Checked_Gadget10,TAG_END);
  140.         wingads[CBID_Gadget11]=gadget=CreateGadget(CHECKBOX_KIND,gadget,&newgad[CBID_Gadget11],GA_Disabled,gadgetdata->gd_Disabled_Gadget11,GTCB_Scaled,TRUE,GTCB_Checked,gadgetdata->gd_Checked_Gadget11,TAG_END);
  141.         wingads[CYID_Gadget12]=gadget=CreateGadget(CYCLE_KIND,gadget,&newgad[CYID_Gadget12],GA_Disabled,gadgetdata->gd_Disabled_Gadget12,GTCY_Labels,(ULONG)gadgetdata->gd_Labels_Gadget12,GTCY_Active,gadgetdata->gd_Active_Gadget12,TAG_END);
  142.         wingads[SLID_Gadget14]=gadget=CreateGadget(SLIDER_KIND,gadget,&newgad[SLID_Gadget14],GA_Disabled,gadgetdata->gd_Disabled_Gadget14,GA_Immediate,TRUE,GA_RelVerify,TRUE,GTSL_Level,gadgetdata->gd_Level_Gadget14,GTSL_LevelFormat,(ULONG)"%ld",GTSL_LevelPlace,PLACETEXT_RIGHT,GTSL_Max,gadgetdata->gd_Max_Gadget14,GTSL_Min,gadgetdata->gd_Min_Gadget14,GTSL_MaxLevelLen,5,PGA_Freedom,LORIENT_HORIZ,TAG_END);
  143.         wingads[SLID_Gadget15]=gadget=CreateGadget(SLIDER_KIND,gadget,&newgad[SLID_Gadget15],GA_Disabled,gadgetdata->gd_Disabled_Gadget15,GA_Immediate,TRUE,GA_RelVerify,TRUE,GTSL_Level,gadgetdata->gd_Level_Gadget15,GTSL_LevelFormat,(ULONG)"%ld",GTSL_LevelPlace,PLACETEXT_RIGHT,GTSL_Max,gadgetdata->gd_Max_Gadget15,GTSL_Min,gadgetdata->gd_Min_Gadget15,GTSL_MaxLevelLen,5,PGA_Freedom,LORIENT_HORIZ,TAG_END);
  144.         wingads[SLID_Gadget1]=gadget=CreateGadget(SLIDER_KIND,gadget,&newgad[SLID_Gadget1],GA_Disabled,gadgetdata->gd_Disabled_Gadget1,GA_Immediate,TRUE,GA_RelVerify,TRUE,GTSL_Level,gadgetdata->gd_Level_Gadget1,GTSL_LevelFormat,(ULONG)"%ld",GTSL_LevelPlace,PLACETEXT_RIGHT,GTSL_Max,gadgetdata->gd_Max_Gadget1,GTSL_Min,gadgetdata->gd_Min_Gadget1,GTSL_MaxLevelLen,5,PGA_Freedom,LORIENT_HORIZ,TAG_END);
  145.         wingads[STID_Gadget4]=gadget=CreateGadget(STRING_KIND,gadget,&newgad[STID_Gadget4],GA_Disabled,gadgetdata->gd_Disabled_Gadget4,GA_TabCycle,TRUE,GTST_MaxChars,256,GTST_String,(ULONG)gadgetdata->gd_String_Gadget4,GA_TabCycle,TRUE,STRINGA_ExitHelp,TRUE,STRINGA_Justification,GACT_STRINGLEFT,STRINGA_ReplaceMode,FALSE,TAG_END);
  146.         wingads[BTID_Gadget3]=gadget=CreateGadget(BUTTON_KIND,gadget,&newgad[BTID_Gadget3],GA_Disabled,gadgetdata->gd_Disabled_Gadget3,GT_Underscore,'_',TAG_END);
  147.         wingads[BTID_Gadget5]=gadget=CreateGadget(BUTTON_KIND,gadget,&newgad[BTID_Gadget5],GA_Disabled,gadgetdata->gd_Disabled_Gadget5,GT_Underscore,'_',TAG_END);
  148.         wingads[BTID_Gadget6]=gadget=CreateGadget(BUTTON_KIND,gadget,&newgad[BTID_Gadget6],GA_Disabled,gadgetdata->gd_Disabled_Gadget6,GT_Underscore,'_',TAG_END);
  149.         wingads[BTID_Gadget8]=gadget=CreateGadget(BUTTON_KIND,gadget,&newgad[BTID_Gadget8],GA_Disabled,gadgetdata->gd_Disabled_Gadget8,GT_Underscore,'_',TAG_END);
  150.         wingads[BTID_Gadget9]=gadget=CreateGadget(BUTTON_KIND,gadget,&newgad[BTID_Gadget9],GA_Disabled,gadgetdata->gd_Disabled_Gadget9,GT_Underscore,'_',TAG_END);
  151.         return gadget;
  152.         }
  153.     else return NULL;
  154. }
  155. /*************************************************************************/
  156. /*                                                                       */
  157. /*   Routines to create BOOPSI gadgets                                   */
  158. /*                                                                       */
  159. /*************************************************************************/
  160. /*************************************************************************/
  161. /*                                                                       */
  162. /*   Routines to handle windows                                          */
  163. /*                                                                       */
  164. /*************************************************************************/
  165. void HandleSoundPrefsWindow(struct Screen *customscreen,LONG left,LONG top,APTR userdata)
  166. {
  167.     APTR             visualinfo   = NULL;
  168.     struct Gadget   *gadgetlist   = NULL;
  169.     char            *title        = "Sound Preferences";
  170.     struct Window   *win          = NULL;
  171.     struct Gadget   *wingads[39];
  172.     struct TextAttr  textattr     = { NULL,8,FS_NORMAL,FPF_DISKFONT };
  173.     struct Menu     *menustrip    = NULL;
  174.     ULONG  height=22,width=42,maxheight=1024,maxwidth=1280;
  175.  
  176.     textattr.ta_Name  = ((struct GfxBase *)GfxBase)->DefaultFont->tf_Message.mn_Node.ln_Name;
  177.     textattr.ta_YSize = ((struct GfxBase *)GfxBase)->DefaultFont->tf_YSize;
  178.     visualinfo        = GetVisualInfo(customscreen,TAG_DONE);
  179.  
  180.     if (visualinfo)
  181.         {
  182.         char *LA_Gadget12[]  = { "Beep","Sampled Sound",NULL };
  183.         struct BevelFrame bevels[] = {
  184.             XPOS(1),YPOS(1),XSIZE(40),YSIZE(17),"Sound Preferences",2,
  185.             };
  186.         struct NewMenu menu[] = {
  187.             NM_TITLE, "Program",0,0,0,0,
  188.             NM_ITEM ,"About","A",0,0,0,
  189.             NULL,
  190.             };
  191.         struct NewGadget newgad[] = {
  192.             XPOS(2),YPOS(2),XSIZE(15),YSIZE(2),"_Flash Display:",&textattr, LAID_Gadget1,PLACETEXT_IN,visualinfo,NULL,
  193.             XPOS(25),YPOS(2),XSIZE(12),YSIZE(2),"_Make Sound:",&textattr, LAID_Gadget2,PLACETEXT_IN,visualinfo,NULL,
  194.             XPOS(2),YPOS(4),XSIZE(15),YSIZE(2),"Sound _Type   :",&textattr, LAID_Gadget3,PLACETEXT_IN,visualinfo,NULL,
  195.             XPOS(2),YPOS(6),XSIZE(15),YSIZE(2),"Sound _Volume :",&textattr, LAID_Gadget4,PLACETEXT_IN,visualinfo,NULL,
  196.             XPOS(2),YPOS(8),XSIZE(15),YSIZE(2),"Sound _Pitch  :",&textattr, LAID_Gadget6,PLACETEXT_IN,visualinfo,NULL,
  197.             XPOS(2),YPOS(10),XSIZE(15),YSIZE(2),"_Beep Length  :",&textattr, LAID_Gadget8,PLACETEXT_IN,visualinfo,NULL,
  198.             XPOS(2),YPOS(12),XSIZE(15),YSIZE(2),"Sample _Name  :",&textattr, LAID_Gadget9,PLACETEXT_IN,visualinfo,NULL,
  199.             XPOS(17),YPOS(2),XSIZE(3),YSIZE(2),NULL,&textattr, CBID_Gadget10,PLACETEXT_ABOVE,visualinfo,NULL,
  200.             XPOS(37),YPOS(2),XSIZE(3),YSIZE(2),NULL,&textattr, CBID_Gadget11,PLACETEXT_ABOVE,visualinfo,NULL,
  201.             XPOS(17),YPOS(4),XSIZE(23),YSIZE(2),NULL,&textattr, CYID_Gadget12,PLACETEXT_ABOVE,visualinfo,NULL,
  202.             XPOS(17),YPOS(6),XSIZE(18),YSIZE(2),NULL,&textattr, SLID_Gadget14,PLACETEXT_LEFT,visualinfo,NULL,
  203.             XPOS(17),YPOS(8),XSIZE(18),YSIZE(2),NULL,&textattr, SLID_Gadget15,PLACETEXT_LEFT,visualinfo,NULL,
  204.             XPOS(17),YPOS(10),XSIZE(18),YSIZE(2),NULL,&textattr, SLID_Gadget1,PLACETEXT_LEFT,visualinfo,NULL,
  205.             XPOS(17),YPOS(12),XSIZE(21),YSIZE(2),NULL,&textattr, STID_Gadget4,PLACETEXT_LEFT,visualinfo,NULL,
  206.             XPOS(38),YPOS(12),XSIZE(2),YSIZE(2),"½",&textattr, BTID_Gadget3,PLACETEXT_IN,visualinfo,NULL,
  207.             XPOS(2),YPOS(15),XSIZE(38),YSIZE(2),"Test S_ound",&textattr, BTID_Gadget5,PLACETEXT_IN,visualinfo,NULL,
  208.             XPOS(1),YPOS(19),XSIZE(12),YSIZE(2),"_Save",&textattr, BTID_Gadget6,PLACETEXT_IN,visualinfo,NULL,
  209.             XPOS(15),YPOS(19),XSIZE(12),YSIZE(2),"_Use",&textattr, BTID_Gadget8,PLACETEXT_IN,visualinfo,NULL,
  210.             XPOS(29),YPOS(19),XSIZE(12),YSIZE(2),"_Cancel",&textattr, BTID_Gadget9,PLACETEXT_IN,visualinfo,NULL,
  211.             };
  212.         struct SoundPrefsWindowData gadgetdata = {
  213.             /* belongs to a checkbox gadget */
  214.             FALSE,
  215.             TRUE,
  216.             /* belongs to a checkbox gadget */
  217.             FALSE,
  218.             TRUE,
  219.             /* belongs to a cycle gadget */
  220.             FALSE,
  221.             1,
  222.             (char * *)&LA_Gadget12[0],
  223.             /* belongs to a slider gadget */
  224.             FALSE,
  225.             32,
  226.             64,
  227.             0,
  228.             /* belongs to a slider gadget */
  229.             FALSE,
  230.             1500,
  231.             3000,
  232.             1,
  233.             /* belongs to a slider gadget */
  234.             TRUE,
  235.             50,
  236.             100,
  237.             1,
  238.             /* belongs to a string gadget */
  239.             FALSE,
  240.             "SYS:Prefs/Beep.IFF",
  241.             /* belongs to a button */
  242.             FALSE,
  243.             /* belongs to a button */
  244.             FALSE,
  245.             /* belongs to a button */
  246.             FALSE,
  247.             /* belongs to a button */
  248.             FALSE,
  249.             /* belongs to a button */
  250.             FALSE,
  251.             };
  252.         height= YSIZE(height);
  253.         width = XSIZE(width) ;
  254.         if (left == -1) left = (customscreen->Width -width )/2;
  255.         if (top  == -1) top  = (customscreen->Height-height)/2;
  256.  
  257.         if (CreateGadgetsSoundPrefsWindow(&gadgetlist,newgad,wingads,&gadgetdata) != NULL)
  258.             {
  259.             if (height>customscreen->Height || width>customscreen->Width) GUIC_ErrorReport(NULL,ERROR_SCREEN_TOO_SMALL);
  260.             win=OpenWindowTags(NULL,WA_Activate,         TRUE,
  261.                         WA_CloseGadget,      TRUE,
  262.                         WA_DepthGadget,      TRUE,
  263.                         WA_SizeGadget,       FALSE,
  264.                         WA_DragBar,          TRUE,
  265.                         WA_Gadgets,          (ULONG)gadgetlist,
  266.                         WA_InnerHeight,      height,
  267.                         WA_InnerWidth,       width,
  268.                         WA_IDCMP,            IDCMP_CLOSEWINDOW|IDCMP_NEWSIZE|IDCMP_VANILLAKEY|IDCMP_REFRESHWINDOW|IDCMP_GADGETUP|IDCMP_MENUPICK|BUTTONIDCMP|STRINGIDCMP|CHECKBOXIDCMP|CYCLEIDCMP|SLIDERIDCMP,
  269.                         WA_Left,             left,
  270.                         WA_Top,              top,
  271.                         WA_MaxHeight,        maxheight,
  272.                         WA_MinHeight,        height,
  273.                         WA_MaxWidth,         maxwidth,
  274.                         WA_MinWidth,         width,
  275.                         WA_SizeBRight,       FALSE,
  276.                         WA_SizeBBottom,      FALSE,
  277.                         WA_SmartRefresh,     TRUE,
  278.                         WA_CustomScreen,     (ULONG)customscreen,
  279.                         WA_Title,            (ULONG)title,
  280.                         WA_NewLookMenus,     TRUE,
  281.                     TAG_END);
  282.             if (win)
  283.                 {
  284.                 menustrip=CreateMenus(menu,GTMN_NewLookMenus,TRUE,TAG_END);
  285.                 if (menustrip)
  286.                     {
  287.                     if (LayoutMenus(menustrip,visualinfo,GTMN_NewLookMenus,TRUE,TAG_END))
  288.                         {
  289.                         if (SetMenuStrip(win,menustrip))
  290.                             {
  291.                             struct IntuiMessage  *imessage   = NULL;
  292.                             struct Gadget        *idcmpgad   = NULL;
  293.                             struct Gadget        *firstboopsi= 0;
  294.                             ULONG  idcmpclass                = 0;
  295.                             UWORD  messagecode               = 0;
  296.                             BOOL   running                   = TRUE;
  297.                             ULONG  signal                    = 0;
  298.                             ULONG  longpointer1              = 0;
  299.                             ULONG  longpointer2              = 0;
  300.                             SetFont(win->RPort,((struct GfxBase *)GfxBase)->DefaultFont);
  301.                             CreateBevelFrames(win,visualinfo,1,bevels);
  302.                             GT_RefreshWindow(win,NULL);
  303.                             do
  304.                                 {
  305.                                 if (running) signal=Wait(SIGBREAKF_CTRL_C | 1L << win->UserPort->mp_SigBit);
  306.                                 if (signal & SIGBREAKF_CTRL_C) running=FALSE;
  307.                                 while (running && (imessage=GT_GetIMsg(win->UserPort)))
  308.                                     {
  309.                                     idcmpgad=(struct Gadget *)imessage->IAddress;
  310.                                     idcmpclass=imessage->Class;
  311.                                     messagecode =imessage->Code;
  312.  
  313.                                     GT_ReplyIMsg(imessage);
  314.  
  315.                                     switch(idcmpclass)
  316.                                         {
  317.                                         case IDCMP_REFRESHWINDOW:
  318.                                             GT_BeginRefresh(win);
  319.                                             GT_EndRefresh(win,TRUE);
  320.                                             break;
  321.                                         case IDCMP_CLOSEWINDOW:
  322.                                             running=FALSE;
  323.                                             break;
  324.                                         case IDCMP_GADGETUP:
  325.                                         case MXIDCMP:
  326.                                             HandleGadgetsSoundPrefsWindow(win,wingads,idcmpgad->GadgetID,messagecode,&gadgetdata,userdata);
  327.                                             break;
  328.                                         case IDCMP_MENUPICK:
  329.                                             switch(MENUNUM(messagecode))
  330.                                                 {
  331.                                                 case 0:
  332.                                                     switch (ITEMNUM(messagecode))
  333.                                                         {
  334.                                                         case 0:
  335.                                                             About(win,wingads,userdata);
  336.                                                             break;
  337.                                                         }
  338.                                                     break;
  339.                                                 }
  340.                                             break;
  341.                                         case IDCMP_VANILLAKEY:
  342.                                             switch(messagecode)
  343.                                                 {
  344.                                                 case 'f':
  345.                                                     GT_GetGadgetAttrs(wingads[CBID_Gadget10],win,NULL,GA_Disabled,(ULONG)&longpointer2,GTCB_Checked,(ULONG)&longpointer1,TAG_END);
  346.                                                     if (longpointer2 == 0)
  347.                                                         {
  348.                                                         GT_SetGadgetAttrs(wingads[CBID_Gadget10],win,NULL,GTCB_Checked,(longpointer1 == 0)?TRUE:FALSE,TAG_END);
  349.                                                         HandleGadgetsSoundPrefsWindow(win,wingads,CBID_Gadget10,(longpointer1 == 0)?1:0,&gadgetdata,userdata);
  350.                                                         }
  351.                                                     break;
  352.                                                 case 'm':
  353.                                                     GT_GetGadgetAttrs(wingads[CBID_Gadget11],win,NULL,GA_Disabled,(ULONG)&longpointer2,GTCB_Checked,(ULONG)&longpointer1,TAG_END);
  354.                                                     if (longpointer2 == 0)
  355.                                                         {
  356.                                                         GT_SetGadgetAttrs(wingads[CBID_Gadget11],win,NULL,GTCB_Checked,(longpointer1 == 0)?TRUE:FALSE,TAG_END);
  357.                                                         HandleGadgetsSoundPrefsWindow(win,wingads,CBID_Gadget11,(longpointer1 == 0)?1:0,&gadgetdata,userdata);
  358.                                                         }
  359.                                                     break;
  360.                                                 case 't':
  361.                                                     GT_GetGadgetAttrs(wingads[CYID_Gadget12],win,NULL,GA_Disabled,(ULONG)&longpointer1,TAG_END);
  362.                                                     if (longpointer1 == 0)
  363.                                                         {
  364.                                                         ShowGadget(win,wingads[CYID_Gadget12],GADGET_DOWN);
  365.                                                         Delay(5);
  366.                                                         ShowGadget(win,wingads[CYID_Gadget12],GADGET_UP  );
  367.                                                         GT_GetGadgetAttrs(wingads[CYID_Gadget12],win,NULL,GTCY_Active,(ULONG)&longpointer1,TAG_END);
  368.                                                         if (++longpointer1 == 2) longpointer1=0;
  369.                                                         GT_SetGadgetAttrs(wingads[CYID_Gadget12],win,NULL,GTCY_Active,longpointer1,TAG_END);
  370.                                                         HandleGadgetsSoundPrefsWindow(win,wingads,CYID_Gadget12,longpointer1,&gadgetdata,userdata);
  371.                                                         }
  372.                                                     break;
  373.                                                 case 'T':
  374.                                                     GT_GetGadgetAttrs(wingads[CYID_Gadget12],win,NULL,GA_Disabled,(ULONG)&longpointer1,TAG_END);
  375.                                                     if (longpointer1 == 0)
  376.                                                         {
  377.                                                         ShowGadget(win,wingads[CYID_Gadget12],GADGET_DOWN);
  378.                                                         Delay(5);
  379.                                                         ShowGadget(win,wingads[CYID_Gadget12],GADGET_UP  );
  380.                                                         GT_GetGadgetAttrs(wingads[CYID_Gadget12],win,NULL,GTCY_Active,(ULONG)&longpointer1,TAG_END);
  381.                                                         if (longpointer1 == 0) longpointer1=2;
  382.                                                     longpointer1--;
  383.                                                         GT_SetGadgetAttrs(wingads[CYID_Gadget12],win,NULL,GTCY_Active,longpointer1,TAG_END);
  384.                                                         HandleGadgetsSoundPrefsWindow(win,wingads,CYID_Gadget12,longpointer1,&gadgetdata,userdata);
  385.                                                         }
  386.                                                     break;
  387.                                                 case 'v':
  388.                                                     GT_GetGadgetAttrs(wingads[SLID_Gadget14],win,NULL,GA_Disabled,(ULONG)&longpointer1,TAG_END);
  389.                                                     if (longpointer1 == 0)
  390.                                                         {
  391.                                                         GT_GetGadgetAttrs(wingads[SLID_Gadget14],win,NULL,GTSL_Max,(ULONG)&longpointer1,GTSL_Level,(ULONG)&longpointer2,TAG_END);
  392.                                                         if (longpointer2<longpointer1)
  393.                                                             {
  394.                                                             GT_SetGadgetAttrs(wingads[SLID_Gadget14],win,NULL,GTSL_Level,++longpointer2,TAG_END);
  395.                                                             HandleGadgetsSoundPrefsWindow(win,wingads,SLID_Gadget14,longpointer2,&gadgetdata,userdata);
  396.                                                             }
  397.                                                         }
  398.                                                     break;
  399.                                                 case 'V':
  400.                                                     GT_GetGadgetAttrs(wingads[SLID_Gadget14],win,NULL,GA_Disabled,(ULONG)&longpointer1,TAG_END);
  401.                                                     if (longpointer1 == 0)
  402.                                                         {
  403.                                                         GT_GetGadgetAttrs(wingads[SLID_Gadget14],win,NULL,GTSL_Min,(ULONG)&longpointer1,GTSL_Level,(ULONG)&longpointer2,TAG_END);
  404.                                                         if (longpointer2>longpointer1)
  405.                                                             {
  406.                                                             GT_SetGadgetAttrs(wingads[SLID_Gadget14],win,NULL,GTSL_Level,--longpointer2,TAG_END);
  407.                                                             HandleGadgetsSoundPrefsWindow(win,wingads,SLID_Gadget14,longpointer2,&gadgetdata,userdata);
  408.                                                             }
  409.                                                         }
  410.                                                     break;
  411.                                                 case 'p':
  412.                                                     GT_GetGadgetAttrs(wingads[SLID_Gadget15],win,NULL,GA_Disabled,(ULONG)&longpointer1,TAG_END);
  413.                                                     if (longpointer1 == 0)
  414.                                                         {
  415.                                                         GT_GetGadgetAttrs(wingads[SLID_Gadget15],win,NULL,GTSL_Max,(ULONG)&longpointer1,GTSL_Level,(ULONG)&longpointer2,TAG_END);
  416.                                                         if (longpointer2<longpointer1)
  417.                                                             {
  418.                                                             GT_SetGadgetAttrs(wingads[SLID_Gadget15],win,NULL,GTSL_Level,++longpointer2,TAG_END);
  419.                                                             HandleGadgetsSoundPrefsWindow(win,wingads,SLID_Gadget15,longpointer2,&gadgetdata,userdata);
  420.                                                             }
  421.                                                         }
  422.                                                     break;
  423.                                                 case 'P':
  424.                                                     GT_GetGadgetAttrs(wingads[SLID_Gadget15],win,NULL,GA_Disabled,(ULONG)&longpointer1,TAG_END);
  425.                                                     if (longpointer1 == 0)
  426.                                                         {
  427.                                                         GT_GetGadgetAttrs(wingads[SLID_Gadget15],win,NULL,GTSL_Min,(ULONG)&longpointer1,GTSL_Level,(ULONG)&longpointer2,TAG_END);
  428.                                                         if (longpointer2>longpointer1)
  429.                                                             {
  430.                                                             GT_SetGadgetAttrs(wingads[SLID_Gadget15],win,NULL,GTSL_Level,--longpointer2,TAG_END);
  431.                                                             HandleGadgetsSoundPrefsWindow(win,wingads,SLID_Gadget15,longpointer2,&gadgetdata,userdata);
  432.                                                             }
  433.                                                         }
  434.                                                     break;
  435.                                                 case 'b':
  436.                                                     GT_GetGadgetAttrs(wingads[SLID_Gadget1],win,NULL,GA_Disabled,(ULONG)&longpointer1,TAG_END);
  437.                                                     if (longpointer1 == 0)
  438.                                                         {
  439.                                                         GT_GetGadgetAttrs(wingads[SLID_Gadget1],win,NULL,GTSL_Max,(ULONG)&longpointer1,GTSL_Level,(ULONG)&longpointer2,TAG_END);
  440.                                                         if (longpointer2<longpointer1)
  441.                                                             {
  442.                                                             GT_SetGadgetAttrs(wingads[SLID_Gadget1],win,NULL,GTSL_Level,++longpointer2,TAG_END);
  443.                                                             HandleGadgetsSoundPrefsWindow(win,wingads,SLID_Gadget1,longpointer2,&gadgetdata,userdata);
  444.                                                             }
  445.                                                         }
  446.                                                     break;
  447.                                                 case 'B':
  448.                                                     GT_GetGadgetAttrs(wingads[SLID_Gadget1],win,NULL,GA_Disabled,(ULONG)&longpointer1,TAG_END);
  449.                                                     if (longpointer1 == 0)
  450.                                                         {
  451.                                                         GT_GetGadgetAttrs(wingads[SLID_Gadget1],win,NULL,GTSL_Min,(ULONG)&longpointer1,GTSL_Level,(ULONG)&longpointer2,TAG_END);
  452.                                                         if (longpointer2>longpointer1)
  453.                                                             {
  454.                                                             GT_SetGadgetAttrs(wingads[SLID_Gadget1],win,NULL,GTSL_Level,--longpointer2,TAG_END);
  455.                                                             HandleGadgetsSoundPrefsWindow(win,wingads,SLID_Gadget1,longpointer2,&gadgetdata,userdata);
  456.                                                             }
  457.                                                         }
  458.                                                     break;
  459.                                                 case 'n':
  460.                                                     GT_GetGadgetAttrs(wingads[STID_Gadget4],win,NULL,GA_Disabled,(ULONG)&longpointer1,TAG_END);
  461.                                                     if (longpointer1 == 0) ActivateGadget(wingads[STID_Gadget4],win,NULL);
  462.                                                     break;
  463.                                                 case 'N':
  464.                                                     GT_GetGadgetAttrs(wingads[BTID_Gadget3],win,NULL,GA_Disabled,(ULONG)&longpointer1,TAG_END);
  465.                                                     if (longpointer1 == 0)
  466.                                                         {
  467.                                                         ShowGadget(win,wingads[BTID_Gadget3],GADGET_DOWN);
  468.                                                         Delay(5);
  469.                                                         ShowGadget(win,wingads[BTID_Gadget3],GADGET_UP  );
  470.                                                         HandleGadgetsSoundPrefsWindow(win,wingads,BTID_Gadget3,messagecode,&gadgetdata,userdata);
  471.                                                         }
  472.                                                     break;
  473.                                                 case 'o':
  474.                                                     GT_GetGadgetAttrs(wingads[BTID_Gadget5],win,NULL,GA_Disabled,(ULONG)&longpointer1,TAG_END);
  475.                                                     if (longpointer1 == 0)
  476.                                                         {
  477.                                                         ShowGadget(win,wingads[BTID_Gadget5],GADGET_DOWN);
  478.                                                         Delay(5);
  479.                                                         ShowGadget(win,wingads[BTID_Gadget5],GADGET_UP  );
  480.                                                         HandleGadgetsSoundPrefsWindow(win,wingads,BTID_Gadget5,messagecode,&gadgetdata,userdata);
  481.                                                         }
  482.                                                     break;
  483.                                                 case 's':
  484.                                                     GT_GetGadgetAttrs(wingads[BTID_Gadget6],win,NULL,GA_Disabled,(ULONG)&longpointer1,TAG_END);
  485.                                                     if (longpointer1 == 0)
  486.                                                         {
  487.                                                         ShowGadget(win,wingads[BTID_Gadget6],GADGET_DOWN);
  488.                                                         Delay(5);
  489.                                                         ShowGadget(win,wingads[BTID_Gadget6],GADGET_UP  );
  490.                                                         HandleGadgetsSoundPrefsWindow(win,wingads,BTID_Gadget6,messagecode,&gadgetdata,userdata);
  491.                                                         }
  492.                                                     break;
  493.                                                 case 'u':
  494.                                                     GT_GetGadgetAttrs(wingads[BTID_Gadget8],win,NULL,GA_Disabled,(ULONG)&longpointer1,TAG_END);
  495.                                                     if (longpointer1 == 0)
  496.                                                         {
  497.                                                         ShowGadget(win,wingads[BTID_Gadget8],GADGET_DOWN);
  498.                                                         Delay(5);
  499.                                                         ShowGadget(win,wingads[BTID_Gadget8],GADGET_UP  );
  500.                                                         HandleGadgetsSoundPrefsWindow(win,wingads,BTID_Gadget8,messagecode,&gadgetdata,userdata);
  501.                                                         }
  502.                                                     break;
  503.                                                 case 'c':
  504.                                                     GT_GetGadgetAttrs(wingads[BTID_Gadget9],win,NULL,GA_Disabled,(ULONG)&longpointer1,TAG_END);
  505.                                                     if (longpointer1 == 0)
  506.                                                         {
  507.                                                         ShowGadget(win,wingads[BTID_Gadget9],GADGET_DOWN);
  508.                                                         Delay(5);
  509.                                                         ShowGadget(win,wingads[BTID_Gadget9],GADGET_UP  );
  510.                                                         HandleGadgetsSoundPrefsWindow(win,wingads,BTID_Gadget9,messagecode,&gadgetdata,userdata);
  511.                                                         }
  512.                                                     break;
  513.                                                 case 27:
  514.                                                     running=FALSE;
  515.                                                     break;
  516.                                                 }
  517.                                             break;
  518.                                         }
  519.                                     /* end-switch */
  520.                                     }
  521.                                 /* end-while */
  522.                                 }
  523.                             while (running);
  524.                             ClearMenuStrip(win);
  525.                             }
  526.                         else GUIC_ErrorReport(win,ERROR_NO_WINDOW_MENU);
  527.                         }
  528.                     else GUIC_ErrorReport(win,ERROR_NO_WINDOW_MENU);
  529.                     FreeMenus(menustrip);
  530.                     }
  531.                 else GUIC_ErrorReport(win,ERROR_NO_WINDOW_MENU);
  532.                 if (win) CloseWindow(win);
  533.                 }
  534.             else GUIC_ErrorReport(win,ERROR_NO_WINDOW_OPENED);
  535.             if (gadgetlist) FreeGadgets(gadgetlist);
  536.             }
  537.         else GUIC_ErrorReport(NULL,ERROR_NO_GADGETS_CREATED);
  538.         if (visualinfo) FreeVisualInfo(visualinfo);
  539.         }
  540.     else GUIC_ErrorReport(NULL,ERROR_NO_VISUALINFO);
  541. }
  542.