home *** CD-ROM | disk | FTP | other *** search
/ MIDI Music Collection / MUSIC.iso / keysound / specific.in_ / specific.bin
Encoding:
Text File  |  1994-06-15  |  19.6 KB  |  514 lines

  1. ''
  2. '' WFS Pro 3.0-specific install functions
  3. '' Copyright (c) 1993 Aristosoft, Inc.
  4. ''
  5.  
  6. '' Set up product-specific titles, etc.
  7. SUB SetProductTitles STATIC
  8.     SetTitle "Wired for Sound Pro"
  9.     WFSAPP$ = "WFS Pro"
  10. END SUB
  11.  
  12.  
  13. FUNCTION InfFile() STATIC AS STRING
  14.     InfFile = "WFSPRO.INF"
  15. END FUNCTION
  16.  
  17.  
  18. FUNCTION MakeInstDir(D$) STATIC AS STRING
  19.  
  20.     '' If we're lucky, this will tell us where we're located
  21.     S$ = GetIniKeyString(WININI$, "Aristosoft", "WFS")
  22.  
  23.     '' If that didn't work, then try this for 2.02
  24.     IF S$ = "" THEN
  25.     S$ = GetIniKeyString(WININI$, "Sound API", "MaleVoice")
  26.     S$ = mid$(S$, 1, len(S$) - len("\VOICE3.VOI"))
  27.     END IF
  28.  
  29.     '' If that didn't work, then we'll punt with the default
  30.     IF S$ = "" THEN
  31.     S$ = D$ + ":\WFSOUND"
  32.     END IF
  33.  
  34.     '' WFSOUND.INF must be in any installed WFS product
  35.     IF EXISTS(MakePath(S$, "WFSOUND.INF")) THEN
  36.     r% = DoMsgBox("An installed copy of Wired for Sound was found in " + S$+ ".", "Wired for Sound", MB_OK)
  37.     END IF
  38.  
  39.     MakeInstDir = S$
  40. END FUNCTION
  41.  
  42.  
  43. SUB AddInfSectionNames(BASE$, TAPPS$, SOUNDS$, VOICES$, BASEINST$, TAPPSINST$, SOUNDSINST$, VOICESINST$) STATIC
  44.  
  45.     '' These are the base files we can install
  46.     AddListItem BASE$, "Base Files"
  47.     SetSymbolValue BASEINST$, GetSymbolValue(BASE$)
  48.  
  49.     '' These are the Talking Apps we can install
  50.     AddListItem TAPPS$, "Cursor Changer"
  51.     AddListItem TAPPS$, "Groupie"
  52.     AddListItem TAPPS$, "Icon Changer"
  53.     AddListItem TAPPS$, "Intruder Alert"
  54.     AddListItem TAPPS$, "MediaScape Changer"
  55.     AddListItem TAPPS$, "Multimedia Jukebox"
  56.     AddListItem TAPPS$, "Multimedia Screen Saver"
  57.     AddListItem TAPPS$, "Post This!"
  58.     AddListItem TAPPS$, "WFS Sound Editor"
  59.     AddListItem TAPPS$, "Talking Calendar"
  60.     AddListItem TAPPS$, "Talking Clock"
  61.     AddListItem TAPPS$, "Talking Graveyard"
  62.     AddListItem TAPPS$, "Talking Minesweeper"
  63.     AddListItem TAPPS$, "Talking Monitor"
  64.     AddListItem TAPPS$, "Talking Solitaire"
  65.     AddListItem TAPPS$, "Talking Calculator"
  66.     AddListItem TAPPS$, "Wallpaper Changer"
  67.  
  68.     '' By default, we install all Talking Apps
  69.     SetSymbolValue TAPPSINST$, GetSymbolValue(TAPPS$)
  70.  
  71.     '' These are the sounds we can install
  72.     AddListItem SOUNDS$, "Icon Sounds"
  73.     AddListItem SOUNDS$, "Phrase Sounds"
  74.     AddListItem SOUNDS$, "Human Sounds"
  75.     AddListItem SOUNDS$, "Funny Sounds"
  76.     AddListItem SOUNDS$, "Command Sounds"
  77.     AddListItem SOUNDS$, "Classical MIDI"
  78.     AddListItem SOUNDS$, "Jazz MIDI"
  79.     AddListItem SOUNDS$, "Long MIDI"
  80.     AddListItem SOUNDS$, "Misc. MIDI"
  81.     AddListItem SOUNDS$, "New Age MIDI"
  82.     AddListItem SOUNDS$, "Pleasant MIDI"
  83.     AddListItem SOUNDS$, "R & B MIDI"
  84.     AddListItem SOUNDS$, "Job Saver Sounds"
  85.     AddListItem SOUNDS$, "Video Clips"
  86.     AddListItem SOUNDS$, "Pictures"
  87.     AddListItem SOUNDS$, "Wallpaper Patterns"
  88.  
  89.     '' By default, we install all the above
  90.     SetSymbolValue SOUNDSINST$, GetSymbolValue(SOUNDS$)
  91.  
  92.     '' Only include this file if we can find the Star Trek DLL
  93.     st$ = GetIniKeyString(MakePath(WINDIR$, "AD_PREFS.INI"), "After Dark", "Path")
  94.     IF EXISTS(MakePath(st$, "st_res\st_snd.dll")) THEN
  95.     AddListItem SOUNDSINST$, "Star Trek Stubs"
  96.     END IF
  97.  
  98.     '' ...but it's always an option
  99.     AddListItem SOUNDS$, "Star Trek Stubs"
  100.  
  101.     '' We can install all these voices
  102.     '' AddListItem VOICES$, "Computer Face"
  103.     AddListItem VOICES$, "Female Face"
  104.     AddListItem VOICES$, "Male Face"
  105.     AddListItem VOICES$, "Male Voice"
  106.     AddListItem VOICES$, "Nerd Face"
  107.     AddListItem VOICES$, "Make-Your-Own Voice"
  108.  
  109.     '' By default, we install all the above
  110.     SetSymbolValue VOICESINST$, GetSymbolValue(VOICES$)
  111.  
  112.     AddListItem VOICES$, "Synthesized Voice"
  113.  
  114. END SUB
  115.  
  116.  
  117. SUB RecalcPath STATIC
  118.     CursorSave% = ShowWaitCursor()
  119.     RecalcOptFiles BASEFILES
  120.     RecalcOptFiles SOUNDFILES
  121.     RecalcOptFiles TAPPFILES
  122.     RecalcOptFiles VOICEFILES
  123.     RestoreCursor CursorSave%
  124. END SUB
  125.  
  126.  
  127. SUB AddOptFiles STATIC
  128.     AddOptFilesToCopyList BASEFILES
  129.     AddOptFilesToCopyList TAPPFILES
  130.     AddOptFilesToCopyList SOUNDFILES
  131.     AddOptFilesToCopyList VOICEFILES
  132. END SUB
  133.  
  134.  
  135. SUB AddOptFilesToCopyList (ftype%) STATIC
  136.  
  137.     IF GetListItem(CHECKSTATES$, ftype%) = "ON" THEN
  138.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  139.     IF ftype% = BASEFILES THEN
  140.         ''Base files
  141.         l% = GetListLength(BASEINST$)
  142.         FOR i% = 1 TO l% STEP 1
  143.         AddSectionFilesToCopyList GetListItem(BASEINST$, i%), SrcDir$, DEST$
  144.         NEXT i%
  145.  
  146.         '' Install Video for Windows runtime
  147.         AddSectionFilesToCopyList "Media Player", SrcDir$, WINDIR$
  148.         AddSectionFilesToCopyList "VFW Runtime", SrcDir$, SYSDIR$
  149.         AddSectionFilesToCopyList "Codecs", SrcDir$, SYSDIR$
  150.  
  151.         AddSectionFilesToCopyList "Female Voice", SrcDir$, DEST$
  152.  
  153.         AddSpecialFileToCopyList "System Files", "CTL3D", SrcDir$, MakePath(SYSDIR$, "CTL3D.DLL")
  154.         AddSpecialFileToCopyList "System Files", "DIB", SrcDir$, MakePath(SYSDIR$, "DIB.DRV")
  155.  
  156.         IF INSTDSOUND% OR EXISTS(MakePath(SYSDIR$, "DSOUND.DLL")) THEN
  157.         AddSpecialFileToCopyList "DSOUND Files", "DSOUND", SrcDir$, MakePath(SYSDIR$, "DSOUND.DLL")
  158.         AddSpecialFileToCopyList "DSOUND Files", "DSCPL", SrcDir$, MakePath(SYSDIR$, "DSCPL.CPL")
  159.         END IF
  160.     ELSEIF ftype% = TAPPFILES THEN
  161.         l% = GetListLength(TAPPSINST$)
  162.         FOR i% = 1 TO l% STEP 1
  163.         AddSectionFilesToCopyList GetListItem(TAPPSINST$, i%), SrcDir$, DEST$
  164.         NEXT i%
  165.  
  166.         IF StringInList("Talking Calculator", TAPPSINST$) THEN
  167.         AddSpecialFileToCopyList "System Files", "LCD Font (VGA)", SrcDir$, MakePath(SYSDIR$, "LCD.FON")
  168.         AddSpecialFileToCopyList "System Files", "LCD Font (8514a)", SrcDir$, MakePath(SYSDIR$, "LCDBIG.FON")
  169.         END IF
  170.  
  171.         IF StringInList("Multimedia Jukebox", TAPPSINST$) THEN
  172.         AddSpecialFileToCopyList "System Files", "MMSSSCR", SrcDir$, MakePath(WINDIR$, "MMSSSCR.SCR")
  173.         END IF
  174.     ELSEIF ftype% = SOUNDFILES THEN
  175.         l% = GetListLength(SOUNDSINST$)
  176.         FOR i% = 1 TO l% STEP 1
  177.         s$ = GetListItem(SOUNDSINST$, i%)
  178.         IF INSTR(s$, "Sounds") THEN
  179.             AddSectionFilesToCopyList s$, SrcDir$, MakePath(DEST$, "SOUNDS")
  180.         ELSEIF INSTR(s$, "MIDI") THEN
  181.             AddSectionFilesToCopyList s$, SrcDir$, MakePath(DEST$, "MUSIC")
  182.         ELSEIF INSTR(s$, "Video") THEN
  183.             AddSectionFilesToCopyList s$, SrcDir$, MakePath(DEST$, "VIDEOS")
  184.         ELSEIF INSTR(s$, "Pictures") OR INSTR (s$, "Patterns") THEN
  185.             AddSectionFilesToCopyList s$, SrcDir$, MakePath(DEST$, "PICTURES")
  186.         ELSE
  187.             AddSectionFilesToCopyList GetListItem(SOUNDSINST$, i%), SrcDir$, DEST$
  188.         END IF
  189.         s$ = ""
  190.         NEXT i%
  191.     ELSEIF ftype% = VOICEFILES THEN
  192.         l% = GetListLength(VOICESINST$)
  193.         FOR i% = 1 TO l% STEP 1
  194.         AddSectionFilesToCopyList GetListItem(VOICESINST$, i%), SrcDir$, DEST$
  195.         NEXT i%
  196.     END IF
  197.     SrcDir$ = ""
  198.     END IF
  199.  
  200. END SUB
  201.  
  202.  
  203. SUB SetDriveStatus STATIC
  204.     FITS% = 0
  205.     drive$ = MID$(DEST$, 1, 1)
  206.     ndrive% = ASC(ucase$(drive$)) - ASC("A") + 1
  207.  
  208.     cost& = VAL(GetListItem(BASENEEDS$, ndrive%))
  209.     cost& = cost& + VAL(GetListItem(SOUNDNEEDS$, ndrive%))
  210.     cost& = cost& + VAL(GetListItem(TAPPNEEDS$, ndrive%))
  211.     cost& = cost& + VAL(GetListItem(VOICENEEDS$, ndrive%))
  212.  
  213.     free& = GetFreeSpaceForDrive(drive$)
  214.     IF cost& > free& THEN
  215.     FITS% = 1
  216.     END IF
  217.     ReplaceListItem DRIVETEXT$, 1, drive$ + ":"
  218.     ReplaceListItem DRIVETEXT$, 2, STR$(cost& / 1024) + " K"
  219.     ReplaceListItem DRIVETEXT$, 3, STR$(free& / 1024) + " K"
  220.  
  221.     IF drive$ = WINDRIVE$ THEN
  222.     ReplaceListItem DRIVETEXT$, 4, ""
  223.     ReplaceListItem DRIVETEXT$, 5, ""
  224.     ReplaceListItem DRIVETEXT$, 6, ""
  225.     ELSE
  226.     ndrive% = ASC(ucase$(WINDRIVE$)) - ASC("A") + 1
  227.  
  228.     cost& = VAL(GetListItem(BASENEEDS$, ndrive%))
  229.     cost& = cost& + VAL(GetListItem(SOUNDNEEDS$, ndrive%))
  230.     cost& = cost& + VAL(GetListItem(TAPPNEEDS$, ndrive%))
  231.     cost& = cost& + VAL(GetListItem(VOICENEEDS$, ndrive%))
  232.  
  233.     IF cost& = 0 THEN
  234.         ReplaceListItem DRIVETEXT$, 4, ""
  235.         ReplaceListItem DRIVETEXT$, 5, ""
  236.         ReplaceListItem DRIVETEXT$, 6, ""
  237.     ELSE
  238.         free& = GetFreeSpaceForDrive(WINDRIVE$)
  239.         IF cost& > free& THEN
  240.         FITS% = 1
  241.         END IF
  242.         ReplaceListItem DRIVETEXT$, 4, WINDRIVE$ + ":"
  243.         ReplaceListItem DRIVETEXT$, 5, STR$(cost& / 1024) + " K"
  244.         ReplaceListItem DRIVETEXT$, 6, STR$(free& / 1024) + " K"
  245.     END IF
  246.     END IF
  247. END SUB
  248.  
  249.  
  250. '' Add billboard dialogs for this app
  251. SUB AddBillboards STATIC
  252.     AddToBillboardList CUIDLL$, BBD1, "FModelessDlgProc", 100
  253.     AddToBillboardList CUIDLL$, BBD2, "FModelessDlgProc", 100
  254.     AddToBillboardList CUIDLL$, BBD3, "FModelessDlgProc", 100
  255.     AddToBillboardList CUIDLL$, BBD4, "FModelessDlgProc", 100
  256.     AddToBillboardList CUIDLL$, BBD5, "FModelessDlgProc", 100
  257.     AddToBillboardList CUIDLL$, BBD6, "FModelessDlgProc", 100
  258. END SUB
  259.  
  260.  
  261. CONST IDC_OWNER = 104
  262. CONST IDC_WORKPLACE = 106
  263. CONST RT_RCDATA = 10
  264.  
  265. SUB ConfigureApps STATIC
  266.  
  267.     '' This is so Fixer can find where we're installed
  268.     CreateIniKeyValue WININI$, "Aristosoft", "WFS", DEST$, cmoOverwrite
  269.  
  270.     '' This is the name of the group we'll install into
  271.     GROUP$ = "Wired for Sound Pro"
  272.     GROUP1$ = "WFS Utilities"
  273.     GROUP2$ = "Talking Apps"
  274.  
  275.     '' Configure base applications
  276.     IF GetListItem(CHECKSTATES$, BASEFILES) = "ON" THEN
  277.  
  278.     '' Create a group for us...
  279.     CreateProgmanGroup GROUP$, "", cmoNone
  280.     CreateProgmanGroup GROUP1$, "", cmoNone
  281.     CreateProgmanGroup GROUP2$, "", cmoNone
  282.  
  283.     '' Setup WFS Pro
  284.     CreateProgmanItem GROUP$, WFSAPP$, MakePath(DEST$, "wfsound.exe"), "", cmoOverwrite
  285.     CreateProgmanItem GROUP$, "Configuration Editor", MakePath(DEST$, "wfsconf.exe"), "", cmoOverwrite
  286.  
  287.     INI$ = MakePath(DEST$, "FACE.INI")
  288.     CreateIniKeyValue INI$, "FACE", "WFSOUND.EXE", "+nullface.fac", cmoNone
  289.  
  290.     CreateProgmanItem GROUP$, "Manual Addendum", "write.exe " + MakePath(DEST$, "addendum.wri"), "", cmoOverwrite
  291.  
  292.     CreateProgmanItem GROUP1$, "Media Manager", MakePath(DEST$, "sndmnger.exe"), "", cmoOverwrite
  293.  
  294.     ''Setup up default association file
  295.     CreateIniKeyValue MakePath(DEST$, "WFSOUND.INF"), "WFSound", "ActiveProfile", MakePath(DEST$, "DEFAULT.WFS"), cmoNone
  296.  
  297.     ''Turn on icon events only if we support the shell
  298.     s$ = LCASE$(GetIniKeyString(SYSINI$, "boot", "shell"))
  299.     IF INSTR(s$, "progman.exe") THEN
  300.         i$ = "1"
  301.     ELSEIF INSTR(s$, "ndw.exe") THEN
  302.         i$ = "1"
  303.     ELSEIF INSTR(s$, "wndt.exe") THEN
  304.         i$ = "1"
  305.     ELSE
  306.         i$ = "0"
  307.     END IF
  308.     CreateIniKeyValue MakePath(DEST$, "DEFAULT.WFS"), "Status", "Icon", i$, cmoNone
  309.     s$ = ""
  310.     i$ = ""
  311.  
  312.     '' Disable speech synthesis support by default
  313.     CreateIniKeyValue WININI$, "Sound API", "NoSynth", "1", cmoNone
  314.  
  315.     '' Remove vox.drv
  316.     IF LCASE$(GetIniKeyString(SYSINI$, "drivers", "wavemapper")) = "vox.drv" THEN
  317.         s$ = GetIniKeyString(SYSINI$, "drivers", "vox.wavemapper")
  318.         CreateIniKeyValue SYSINI$, "drivers", "wavemapper", s$, cmoOverwrite
  319.     END IF
  320.  
  321.     ''Stamp the WFSABOUT resources
  322.     IF len(OWNER$) > 0 THEN
  323.         StampResource "Base Files", "WFS About", DEST$, RT_RCDATA, IDC_OWNER, OWNER$ + chr$(0), len(OWNER$) + 1
  324.     ELSE
  325.         StampResource "Base Files", "WFS About", DEST$, RT_RCDATA, IDC_OWNER, " " + chr$(0), 2
  326.     END IF
  327.     IF len(WORKPLACE$) > 0 THEN
  328.         StampResource "Base Files", "WFS About", DEST$, RT_RCDATA, IDC_WORKPLACE, WORKPLACE$ + chr$(0), len(WORKPLACE$) + 1
  329.     ELSE
  330.         StampResource "Base Files", "WFS About", DEST$, RT_RCDATA, IDC_WORKPLACE, " " + chr$(0), 2
  331.     END IF
  332.  
  333.     '' Setup Video for Windows
  334.     ''CreateIniKeyValue SYSINI$, "Drivers", "VIDC.MSVC", "msvidc.drv", cmoNone
  335.     ''CreateIniKeyValue SYSINI$, "Drivers", "VIDC.RT21", "indeo.drv", cmoNone
  336.     CreateIniKeyValue SYSINI$, "Drivers", "VIDC.CVID", "iccvid.drv", cmoNone
  337.     CreateIniKeyValue SYSINI$, "mci", "AVIVideo", "mciavi.drv", cmoNone
  338.  
  339.     CreateIniKeyValue WININI$, "mci extensions", "avi", "AVIVideo", cmoNone
  340.  
  341.     res% = Run("regedit.exe /s " + MakePath(WINDIR$, "mplayer.reg"))
  342.  
  343.     END IF
  344.  
  345.     '' Configure Talking Applications
  346.     IF GetListItem(CHECKSTATES$, TAPPFILES) = "ON" THEN
  347.  
  348.     IF StringInList("Multimedia Screen Saver", TAPPSINST$) THEN
  349.         CreateProgmanItem GROUP$, "Multimedia Screen Saver", MakePath(DEST$, "mmssaver.exe"), "", cmoOverwrite
  350.         CreateIniKeyValue WININI$, "Aristosoft", "ScreenSaver", MakePath(DEST$, "mmssaver.exe"), cmoOverwrite
  351.  
  352.         INI$ = MakePath(DEST$, "MMSSAVER.INI")
  353.         CreateIniKeyValue INI$, "Settings", "SplFile", MakePath(DEST$, "default.spl"), cmoNone
  354.     END IF
  355.  
  356.     IF StringInList("Multimedia Jukebox", TAPPSINST$) THEN
  357.         CreateProgmanItem GROUP$, "Multimedia Jukebox", MakePath(DEST$, "mmjbox.exe"), "", cmoOverwrite
  358.  
  359.         INI$ = MakePath(DEST$, "MMJBOX.INI")
  360.         CreateIniKeyValue INI$, "Settings", "BoxFile", MakePath(DEST$, "default.box"), cmoNone
  361.     END IF
  362.  
  363.     IF StringInList("Wallpaper Changer", TAPPSINST$) THEN
  364.         CreateProgmanItem GROUP$, "Wallpaper Changer", MakePath(DEST$, "wally.exe"), "", cmoOverwrite
  365.         INI$ = MakePath(DEST$, "WALLY.INI")
  366.         CreateIniKeyValue INI$, "Settings", "WallFile", MakePath(DEST$, "default.wal"), cmoNone
  367.     END IF
  368.  
  369.     IF StringInList("MediaScape Changer", TAPPSINST$) THEN
  370.         CreateProgmanItem GROUP$, "MediaScape Changer", MakePath(DEST$, "scape.exe"), "", cmoOverwrite
  371.     END IF
  372.  
  373.     IF StringInList("Post This!", TAPPSINST$) THEN
  374.         CreateProgmanItem GROUP1$, "Post This!", MakePath(DEST$, "postit.exe"), "", cmoOverwrite
  375.     END IF
  376.  
  377.     IF StringInList("Icon Changer", TAPPSINST$) THEN
  378.         CreateProgmanItem GROUP1$, "Icon Changer", MakePath(DEST$, "iconplus.exe"), "", cmoOverwrite
  379.     END IF
  380.  
  381.     IF StringInList("Cursor Changer", TAPPSINST$) THEN
  382.         CreateProgmanItem GROUP1$, "Cursor Changer", MakePath(DEST$, "cursor.exe") + " /foo /bar", "", cmoOverwrite
  383.     END IF
  384.  
  385.     IF StringInList("Groupie", TAPPSINST$) THEN
  386.         CreateProgmanItem GROUP1$, "Groupie", MakePath(DEST$, "groupie.exe"), "", cmoOverwrite
  387.         '' CreateProgmanItem GROUP1$, "Groupie Documentation", "write.exe " + MakePath(DEST$, "groupie.wri"), "", cmoOverwrite
  388.     END IF
  389.  
  390.     IF StringInList("WFS Sound Editor", TAPPSINST$) THEN
  391.         CreateProgmanItem GROUP1$, "WFS Edit", MakePath(DEST$, "wfsedit.exe"), "", cmoOverwrite
  392.     END IF
  393.  
  394.     IF StringInList("Talking Solitaire", TAPPSINST$) THEN
  395.         CreateProgmanItem GROUP2$, "Talking Solitaire", MakePath(DEST$, "tsol.exe"), "", cmoOverwrite
  396.         '' CreateProgmanItem GROUP2$, "How to Cheat at Solitaire", "winhelp " + MakePath(DEST$, "tsol.hlp"), "", cmoOverwrite
  397.         INI$ = MakePath(DEST$, "VOICE.INI")
  398.         CreateIniKeyValue INI$, "Voice Library", "TSOL.EXE", "+female.voi", cmoNone
  399.         INI$ = MakePath(DEST$, "FACE.INI")
  400.         CreateIniKeyValue INI$, "Face", "TSOL.EXE", "+NULLFACE.FAC", cmoNone
  401.     END IF
  402.  
  403.     IF StringInList("Talking Minesweeper", TAPPSINST$) THEN
  404.         CreateProgmanItem GROUP2$, "Talking Minesweeper", MakePath(DEST$, "tmine.exe"), "", cmoOverwrite
  405.         '' CreateProgmanItem GROUP2$, "How to Win Minesweeper", "winhelp " + MakePath(DEST$, "tmine.hlp"), "", cmoOverwrite
  406.     END IF
  407.  
  408.     IF StringInList("Talking Monitor", TAPPSINST$) THEN
  409.         INI$ = MakePath(DEST$, "TMON.INI")
  410.         CreateIniKeyValue INI$, "Talking Monitor", "LowResources", MakePath(DEST$, "SOUNDS\PHRASES\WARNING.wav"), cmoNone
  411.         CreateIniKeyValue INI$, "Talking Monitor", "LowMemory", MakePath(DEST$, "SOUNDS\PHRASES\WARNING.wav"), cmoNone
  412.         CreateIniKeyValue INI$, "Talking Monitor", "LowDiskSpace", MakePath(DEST$, "SOUNDS\PHRASES\DISKLOW.wav"), cmoNone
  413.         CreateProgmanItem GROUP2$, "Talking Monitor", MakePath(DEST$, "tmon.exe"), "", cmoOverwrite
  414.         INI$ = MakePath(DEST$, "VOICE.INI")
  415.         CreateIniKeyValue INI$, "Voice Library", "TMON.EXE", "+female.voi", cmoNone
  416.         INI$ = MakePath(DEST$, "FACE.INI")
  417.         CreateIniKeyValue INI$, "Face", "TMON.EXE", "+NULLFACE.FAC", cmoNone
  418.     END IF
  419.  
  420.     IF StringInList("Talking Clock", TAPPSINST$) THEN
  421.         CreateProgmanItem GROUP2$, "Talking Clock", MakePath(DEST$, "tclock.exe"), "", cmoOverwrite
  422.         INI$ = MakePath(DEST$, "VOICE.INI")
  423.         CreateIniKeyValue INI$, "Voice Library", "TCLOCK.EXE", "+female.voi", cmoNone
  424.         INI$ = MakePath(DEST$, "FACE.INI")
  425.         CreateIniKeyValue INI$, "Face", "TCLOCK.EXE", "+NULLFACE.FAC", cmoNone
  426.     END IF
  427.  
  428.     IF StringInList("Talking Calendar", TAPPSINST$) THEN
  429.         CreateProgmanItem GROUP2$, "Talking Calendar", MakePath(DEST$, "tcal.exe"), "", cmoOverwrite
  430.         INI$ = MakePath(DEST$, "VOICE.INI")
  431.         CreateIniKeyValue INI$, "Voice Library", "TCAL.EXE", "+female.voi", cmoNone
  432.         INI$ = MakePath(DEST$, "FACE.INI")
  433.         CreateIniKeyValue INI$, "Face", "TCAL.EXE", "+NULLFACE.FAC", cmoNone
  434.     END IF
  435.  
  436.     IF StringInList("Talking Clock", TAPPSINST$) OR StringInList("Talking Calendar", TAPPSINST$) THEN
  437.         INI$ = MakePath(DEST$, "SCHEDAPI.INI")
  438.         CreateIniKeyValue INI$, "Settings", "HolidayFile", MakePath(DEST$, "TCAL.HOL"), cmoNone
  439.         CreateIniKeyValue INI$, "Settings", "DefaultApptBook", MakePath(DEST$, "DEFAULT.APP"), cmoNone
  440.     END IF
  441.  
  442.     IF StringInList("Talking Calculator", TAPPSINST$) THEN
  443.         CreateProgmanItem GROUP2$, "Talking Calculator", MakePath(DEST$, "tcalc.exe"), "", cmoOverwrite
  444.         CreateIniKeyValue WININI$, "FONTS", "LCD (VGA Res)", "lcd.fon", cmoNone
  445.         CreateIniKeyValue WININI$, "FONTS", "LCD (8514a Res)", "lcdbig.fon", cmoNone
  446.          INI$ = MakePath(DEST$, "VOICE.INI")
  447.          CreateIniKeyValue INI$, "Voice Library", "TCALC.EXE", "+female.voi", cmoNone
  448.          INI$ = MakePath(DEST$, "FACE.INI")
  449.          CreateIniKeyValue INI$, "Face", "TCALC.EXE", "+NULLFACE.FAC", cmoNone
  450.     END IF
  451.  
  452.     IF StringInList("Talking Graveyard", TAPPSINST$) THEN
  453.         INI$ = MakePath(DEST$, "TGRAVE.INI")
  454.         CreateIniKeyValue INI$, "Settings", "BurySoundFile", MakePath(DEST$, "SOUNDS\FUNNYSND\BOMB.WAV"), cmoNone
  455.         CreateIniKeyValue INI$, "Settings", "KillSoundFile", MakePath(DEST$, "SOUNDS\FUNNYSND\FLUSH.WAV"), cmoNone
  456.         CreateProgmanItem GROUP2$, "Talking Graveyard", MakePath(DEST$, "tgrave.exe"), "", cmoOverwrite
  457.     END IF
  458.  
  459.     IF StringInList("Intruder Alert", TAPPSINST$) THEN
  460.         CreateProgmanItem GROUP2$, "Intruder Alert", MakePath(DEST$, "alert.exe"), "", cmoOverwrite
  461.         INI$ = MakePath(DEST$, "ALERT.INI")
  462.         CreateIniKeyValue INI$, "Settings", "AlarmSound", MakePath(DEST$, "SOUNDS\FUNNYSND\ALARM.wav"), cmoNone
  463.         CreateIniKeyValue WININI$, "Exclude Buttons", "Intruder Alert", "1", cmoOverwrite
  464.     END IF
  465.  
  466.     END IF
  467.  
  468.     '' Perform sound file installation
  469.     IF GetListItem(CHECKSTATES$, SOUNDFILES) = "ON" THEN
  470.     IF StringInList("Star Trek Stubs", SOUNDSINST$) THEN
  471.         ''Set the StarTrek .ESF pointer variable correctly...
  472.         path$ = GetIniKeyString(MakePath(WINDIR$, "AD_PREFS.INI"), "After Dark", "Path")
  473.         IF path$ <> "" THEN
  474.         path$ = MakePath(path$, "st_res\st_snd.dll")
  475.         CreateIniKeyValue WININI$, "Sound API", "StarTrek", path$, cmoOverwrite
  476.         END IF
  477.     END IF
  478.     END IF
  479.  
  480.     '' Install DSOUND.DLL as the wave driver if there isn't one already, somewhere...
  481.     IF INSTDSOUND% AND EXISTS(MakePath(SYSDIR$, "DSOUND.DLL")) THEN
  482.     CreateIniKeyValue SYSINI$, "drivers", "wave", "DSOUND.DLL", cmoOverwrite
  483.     END IF
  484. END SUB
  485.  
  486.  
  487.  
  488. '' Remove all files and directories...
  489.  
  490. SUB DoUninstall STATIC
  491.     IF IDYES = DoMsgBox("Are you sure you want to remove Wired for Sound Pro from your system?", "Wired for Sound Pro", MB_YESNO) THEN
  492.     DEST$ = GetIniKeyString(WININI$, "Aristosoft", "WFS")
  493.     IF DEST$ <> "" THEN
  494.         old% = ShowWaitCursor()
  495.  
  496.         SendProgmanCommand "[DeleteGroup(""Wired for Sound Pro"")]"
  497.         SendProgmanCommand "[DeleteGroup(""WFS Utilities"")]"
  498.         SendProgmanCommand "[DeleteGroup(""Talking Apps"")]"
  499.  
  500.         KillFiles DEST$
  501.  
  502.         RemoveIniSection WININI$, "Sound API", cmoNone
  503.  
  504.         RestoreCursor old%
  505.  
  506.         i% = DoMsgBox("Wired for Sound Pro has been removed.  You can run Setup later to re-install it.", "Wired for Sound Pro", MB_OK)
  507.  
  508.         END
  509.     ELSE
  510.         i% = DoMsgBox("Wired for Sound Pro is not installed or cannot be found!", "Wired for Sound Pro", MB_OK)
  511.     END IF
  512.     END IF
  513. END SUB
  514.