home *** CD-ROM | disk | FTP | other *** search
/ MIDI Masterpiece / MidiMasterpieceMidisoftMusicMagic.iso / disk1 / setup.ms_ / setup.ms
Encoding:
Text File  |  1995-01-25  |  13.8 KB  |  520 lines

  1. '**************************************************************************
  2. '*                       Midisoft Sequencer Setup
  3. '*
  4. '*             DEFINE STUDIO, SESSION, MUSICMAGIC, AUDIOWORKS, WOMSMPLR, POPBLOCKS
  5. '*
  6. '* 1\10\94
  7. '* Fills to > 800x600 resolution
  8. '* Checks for hard drive space, checks if directory already exists.
  9. '* 1\25\94
  10. '* Midisoft.ini entries removed
  11. '* 2\02\94 World of Music Sampler added.
  12. '* 2\09\94 Rush job for Andrea - supports Audio Works
  13. '* 2\18\94 Quick setup for PopBlocks (song disk for Studio users)
  14. '* 5\18\94 Modified for localized versions
  15. '**************************************************************************
  16.  
  17. '$DEFINE MUSICMAGIC
  18. '$DEFINE ENGLISH
  19.  
  20. '$INCLUDE 'setupapi.inc'
  21. '$INCLUDE 'msdetect.inc'
  22.  
  23. DECLARE FUNCTION ShowWindow  LIB "user.exe" (hWnd%,iShow%) AS INTEGER
  24. DECLARE FUNCTION SetWindowLong LIB "user.exe" (hWnd%, offset%, style&) AS LONG
  25. DECLARE FUNCTION GetWindowLong LIB "user.exe" (hWnd%, offset%) AS LONG
  26.  
  27.  
  28.  
  29. ''Dialog ID's
  30. CONST WELCOME        = 100
  31. CONST WELCOMEX       = 150
  32. CONST ASKQUIT        = 200
  33. CONST ASKQUITX       = 250
  34. CONST DESTPATH1      = 300
  35. CONST DESTPATH1X     = 350
  36. CONST EXITFAILURE    = 400
  37. CONST EXITFAILUREX   = 450
  38. CONST EXITQUIT       = 600
  39. CONST EXITQUITX      = 650
  40. CONST EXITSUCCESS    = 700
  41. CONST EXITSUCCESSX   = 750
  42. CONST OPTIONS        = 800
  43. CONST OPTIONSX       = 850
  44. CONST APPHELP        = 900
  45. CONST APPHELPX       = 950
  46. CONST ALREADYEXISTS  = 1000
  47. CONST ALREADYEXISTSX = 1050
  48. CONST TOOBIG         = 6300
  49. CONST TOOBIGX        = 6350
  50. CONST BADPATH        = 6400
  51. CONST BADPATHX       = 6450
  52.  
  53. ''Bitmap ID
  54. CONST LOGO1 = 1
  55. CONST LOGO2 = 2
  56.  
  57. CONST WS_VISIBLE = &H10000000
  58. CONST WS_CLIPCHILDREN = &H2000000
  59. CONST WS_BORDER = &H800000
  60. CONST SW_SHOWMAXIMIZED = 3
  61. CONST GWL_STYLE =-16
  62.  
  63.  
  64. '$IFDEF ENGLISH
  65. CONST NOTATIONTITLE = "Introduction to Musical Notation"
  66. CONST MIDITITLE = "Introduction to MIDI"
  67. CONST GENERALTITLE = "General MIDI"
  68. '$ENDIF
  69.  
  70. '$IFDEF STUDIO AND ENGLISH
  71. CONST HELPTITLE = "Studio for Windows Help"
  72. CONST PROGRAMNAME   = "Midisoft Studio for Windows"
  73. '$ENDIF
  74.  
  75. '$IFDEF HOLIDAY
  76. CONST PROGRAMGROUP  = "Startup"
  77. '$ENDIF
  78.  
  79. '$IFDEF SESSION AND ENGLISH
  80. CONST HELPTITLE = "Recording Session Help"
  81. CONST PROGRAMNAME   = "Recording Session"
  82. '$ENDIF
  83.  
  84. '$IFDEF MUSICMAGIC AND ENGLISH
  85. CONST HELPTITLE = "MusicMagic Help"
  86. CONST PROGRAMNAME   = "MusicMagic"
  87. '$ENDIF
  88.  
  89. '$IFDEF DUTCH
  90. CONST NOTATIONTITLE = "Inleiding bij het Muziekschrift"
  91. CONST MIDITITLE = "Inleiding tot MIDI"
  92. CONST GENERALTITLE = "General MIDI"
  93. '$ENDIF
  94.  
  95. '$IFDEF STUDIO AND DUTCH
  96. CONST HELPTITLE = "Help Voor Studio voor Windows"
  97. CONST PROGRAMNAME   = "Midisoft Studio voor Windows"
  98. '$ENDIF
  99.  
  100. '$IFDEF SESSION AND DUTCH
  101. CONST HELPTITLE = "Help Voor Recording Session"
  102. CONST PROGRAMNAME   = "Recording Session"
  103. '$ENDIF
  104.  
  105. '$IFDEF MUSICMAGIC AND DUTCH
  106. CONST HELPTITLE = "Help Voor MusicMagic"
  107. CONST PROGRAMNAME   = "MusicMagic"
  108. '$ENDIF
  109.  
  110.  
  111. '$IFDEF FRENCH
  112. CONST NOTATIONTITLE = "Introduction α la Notation Musicale"
  113. CONST MIDITITLE = "Introduction α MIDI"
  114. CONST GENERALTITLE = "General MIDI"
  115. '$ENDIF
  116.  
  117. '$IFDEF STUDIO AND FRENCH
  118. CONST HELPTITLE = "Aide de Studio pour Windows"
  119. CONST PROGRAMNAME   = "Midisoft Studio pour Windows"
  120. '$ENDIF
  121.  
  122. '$IFDEF SESSION AND FRENCH
  123. CONST HELPTITLE = "Aide de Recording Session"
  124. CONST PROGRAMNAME   = "Recording Session"
  125. '$ENDIF
  126.  
  127. '$IFDEF MUSICMAGIC AND FRNCH
  128. CONST HELPTITLE = "Aide de MusicMagic"
  129. CONST PROGRAMNAME   = "MusicMagic"
  130. '$ENDIF
  131.  
  132.  
  133. '$IFDEF GERMAN
  134. CONST NOTATIONTITLE = "Einfⁿhrung in die Notation"
  135. CONST MIDITITLE = "Einfⁿhrung in MIDI"
  136. CONST GENERALTITLE = "General MIDI"
  137. '$ENDIF
  138.  
  139. '$IFDEF STUDIO AND GERMAN
  140. CONST HELPTITLE = "Studio fⁿr Windows -Hilfe"
  141. CONST PROGRAMNAME   = "Midisoft Studio fⁿr Windows"
  142. '$ENDIF
  143.  
  144. '$IFDEF SESSION AND GERMAN
  145. CONST HELPTITLE = "Recording Session -Hilfe"
  146. CONST PROGRAMNAME   = "Recording Session"
  147. '$ENDIF
  148.  
  149. '$IFDEF MUSICMAGIC AND GERMAN
  150. CONST HELPTITLE = "MusicMagic -Hilfe"
  151. CONST PROGRAMNAME   = "MusicMagic"
  152. '$ENDIF
  153.  
  154.  
  155. '$IFDEF SPANISH
  156. CONST NOTATIONTITLE = "Introducci≤n a la Notaci≤n Musical"
  157. CONST MIDITITLE = "Introducci≤n al MIDI"
  158. CONST GENERALTITLE = "General MIDI"
  159. '$ENDIF
  160.  
  161. '$IFDEF STUDIO AND SPANISH
  162. CONST HELPTITLE = "Ayuda de Studio para Windows"
  163. CONST PROGRAMNAME   = "Midisoft Studio para Windows"
  164. '$ENDIF
  165.  
  166. '$IFDEF SESSION AND SPANISH
  167. CONST HELPTITLE = "Ayuda de Recording Session"
  168. CONST PROGRAMNAME   = "Recording Session"
  169. '$ENDIF
  170.  
  171. '$IFDEF MUSICMAGIC AND SPANISH
  172. CONST HELPTITLE = "Ayuda de MusicMagic"
  173. CONST PROGRAMNAME   = "MusicMagic"
  174. '$ENDIF
  175.  
  176.  
  177. '$IFDEF ITALIAN
  178. CONST NOTATIONTITLE = "Introduzione alla Notazione Musicale"
  179. CONST MIDITITLE = "Introduzione all'interfaccia MIDI"
  180. CONST GENERALTITLE = "General MIDI"
  181. '$ENDIF
  182.  
  183. '$IFDEF STUDIO AND ITALIAN
  184. CONST HELPTITLE = "Guida di Studio per Windows"
  185. CONST PROGRAMNAME   = "Midisoft Studio per Windows"
  186. '$ENDIF
  187.  
  188. '$IFDEF SESSION AND ITALIAN
  189. CONST HELPTITLE = "Guida di Recording Session"
  190. CONST PROGRAMNAME   = "Recording Session"
  191. '$ENDIF
  192.  
  193. '$IFDEF MUSICMAGIC AND ITALIAN
  194. CONST HELPTITLE = "Guida di MusicMagic"
  195. CONST PROGRAMNAME   = "MusicMagic"
  196. '$ENDIF
  197.  
  198. '$IFDEF STUDIO
  199. CONST DIRECTORY     = "C:\STUDIO"
  200. CONST EXE           = "Studio3.exe"
  201. CONST HELPEXE = "Studio3.hlp"
  202. CONST TITLE         = "Midisoft Studio Setup"
  203. CONST HDSPACE       = 2090000   'CONST for disk space needed
  204. '$ENDIF 'STUDIO
  205.  
  206. '$IFDEF SESSION
  207. CONST DIRECTORY     = "C:\SESSION"
  208. CONST EXE           = "Session.exe"
  209. CONST HELPEXE = "Session.hlp"
  210. CONST TITLE         = "Midisoft Recording Session Setup"
  211. CONST HDSPACE       = 2090000   'CONST for disk space needed
  212. '$ENDIF 'SESSION
  213.  
  214. '$IFDEF MUSICMAGIC
  215. CONST DIRECTORY     = "C:\MUSMAGIC"
  216. CONST EXE           = "Musmagic.exe"
  217. CONST HELPEXE = "Musmagic.hlp"
  218. CONST TITLE         = "Midisoft MusicMagic Setup"
  219. CONST HDSPACE       = 2090000   'CONST for disk space needed
  220. '$ENDIF 'MUSICMAGIC
  221.  
  222. '$IFDEF WOMSMPLR
  223. CONST DIRECTORY     = "C:\WOMSMPLR"
  224. CONST PROGRAMNAME   = "MusicMagic"
  225. CONST EXE           = "Musmagic.exe"
  226. CONST TITLE         = "Midisoft World of Music Sampler Setup"
  227. CONST HDSPACE       = 2090000   'CONST for disk space needed
  228. '$ENDIF 'WOMSMPLR
  229.  
  230. '$IFDEF AUDIOWORKS
  231. CONST DIRECTORY     = "C:\AUDIOWRK"
  232. CONST PROGRAMNAME   = "Audio Works"
  233. CONST EXE           = "asstereo.exe"
  234. CONST TITLE         = "Midisoft Audio Works Setup"
  235. CONST HDSPACE       = 2090000   'CONST for disk space needed
  236. '$ENDIF 'AUDIOWORKS
  237.  
  238. '$IFDEF POPBLOCKS
  239. CONST DIRECTORY     = "C:\POP_BLOX"
  240. CONST PROGRAMNAME   = "Midisoft Pop Building Blocks"
  241. CONST TITLE         = "Midisoft Pop Building Blocks Setup"
  242. CONST HDSPACE       = 2090000   'CONST for disk space needed
  243. '$ENDIF 'POPBLOCKS
  244.  
  245. GLOBAL szProgramGroup$
  246. '$IFDEF HOLIDAY
  247.    szProgramGroup$   = "Startup"
  248. '$ENDIF
  249.  
  250. '$IFNDEF HOLIDAY
  251.    szProgramGroup$   = PROGRAMNAME
  252. '$ENDIF
  253.  
  254. GLOBAL DEST$        ''Default destination directory.
  255. GLOBAL OPTCUR$      ''Option selection from option dialog.
  256. GLOBAL SCRWID%
  257.  
  258.  
  259. DECLARE SUB Install
  260. DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
  261.  
  262.  
  263. INIT:
  264.     CUIDLL$ = "mscuistf.dll"            ''Custom user interface dll
  265.     HELPPROC$ = "FHelpDlgProc"          ''Help dialog procedure
  266.  
  267.     mainWnd%=HwndFrame()
  268.     curLong& = GetWindowLong (mainWnd%, GWL_STYLE)                        'Creates window with
  269.     curLong& = curLong& OR (WS_BORDER OR WS_CLIPCHILDREN OR WS_CAPTION)   'title bar (Note: using
  270.     w&=SetWindowLong (mainWnd%, GWL_STYLE, curLong&)                      'HT video drivers icon
  271.                                                                           'on one screen is corrupt)
  272.  
  273.     'w&=SetWindowLong(mainWnd%,GWL_STYLE,WS_VISIBLE+WS_BORDER+WS_CLIPCHILDREN)
  274.     j%=ShowWindow(mainWnd%,SW_SHOWMAXIMIZED)
  275.  
  276.     SCRWID% = GetScreenWidth()
  277.         IF SCRWID% = 640 THEN
  278.             SetBitmap CUIDLL$, LOGO1
  279.         ELSE
  280.             SetBitmap CUIDLL$, LOGO2
  281.         END IF
  282.  
  283.  
  284.     SetTitle TITLE
  285.  
  286.     szInf$ = GetSymbolValue("STF_SRCINFPATH")
  287.     IF szInf$ = "" THEN
  288.         szInf$ = GetSymbolValue("STF_CWDDIR") + "SETUP.INF"
  289.     END IF
  290.     ReadInfFile szInf$
  291.  
  292.     OPTCUR$ = "1"
  293.     DEST$ = DIRECTORY
  294.  
  295. WELCOME:
  296.     IF scrwid% = 640 THEN
  297.         sz$ = UIStartDlg(CUIDLL$, WELCOMEX, "FInfoDlgProc", APPHELP, HELPPROC$)
  298.     ELSE
  299.         sz$ = UIStartDlg(CUIDLL$, WELCOME, "FInfoDlgProc", APPHELP, HELPPROC$)
  300.     END IF
  301.  
  302.     IF sz$ = "CONTINUE" THEN
  303.         UIPop 1
  304.     ELSE
  305.         GOSUB ASKQUIT
  306.         GOTO WELCOME
  307.     END IF
  308.  
  309.  
  310.  
  311. GETPATH:
  312.     SetSymbolValue "EditTextIn", DEST$
  313.     SetSymbolValue "EditFocus", "END"
  314. GETPATHL1:
  315.     IF scrwid% = 640 THEN
  316.         sz$ = UIStartDlg(CUIDLL$, DESTPATH1X, "FEditDlgProc", APPHELP, HELPPROC$)
  317.     ELSE
  318.         sz$ = UIStartDlg(CUIDLL$, DESTPATH1, "FEditDlgProc", APPHELP, HELPPROC$)
  319.     END IF
  320.  
  321.     DEST$ = GetSymbolValue("EditTextOut")
  322.  
  323.     IF sz$ = "CONTINUE" THEN
  324.         IF IsDirWritable(DEST$) = 0 THEN
  325.             GOSUB BADPATH
  326.             GOTO GETPATHL1
  327.         END IF
  328.         UIPop 1
  329.     ELSEIF sz$ = "REACTIVATE" THEN
  330.         GOTO GETPATHL1
  331.     ELSEIF sz$ = "BACK" THEN
  332.         UIPop 1
  333.         GOTO WELCOME
  334.     ELSE
  335.         GOSUB ASKQUIT
  336.         GOTO GETPATH
  337.     END IF
  338.  
  339.     'Give warning if directory exists, give option to go back and change dest directory
  340. '$IFNDEF POPBLOCKS
  341.     IF DoesDirExist(DEST$) THEN
  342.         UIPop 1
  343.  
  344.         IF SCRWID% = 640 THEN
  345.             sz$ = UIStartDlg(CUIDLL$, ALREADYEXISTSX, "FInfoDlgProc", 0, "")
  346.         ELSE
  347.             sz$ = UIStartDlg(CUIDLL$, ALREADYEXISTS, "FInfoDlgProc", 0, "")
  348.         END IF 'Screen resolution
  349.  
  350.         IF sz$ = "CONTINUE" THEN
  351.             UIPop 1
  352.  
  353.         ELSEIF sz$ = "REACTIVATE" THEN
  354.             UIPop 1
  355.             GOTO GETPATHL1
  356.  
  357.         ELSEIF sz$ = "BACK" THEN
  358.             UIPop 1
  359.             GOTO GETPATHL1
  360.  
  361.         ELSE
  362.             UIPop 1
  363.             GOSUB ASKQUIT
  364.             GOTO GETPATH
  365.         END IF
  366.     END IF
  367.  
  368. '$ENDIF
  369.  
  370.     'Check if HD has enough space for install
  371.     checkdltr$ = mid$(DEST$, 1, 1)
  372.     checkdspc& = GetFreeSpaceForDrive(checkdltr$)
  373.     if checkdspc& < HDSPACE then
  374.         IF scrwid% = 640 THEN
  375.             sz$ = UIStartDlg(CUIDLL$, TOOBIGX, "FInfoDlgProc", APPHELP, HELPPROC$)
  376.         ELSE
  377.             sz$ = UIStartDlg(CUIDLL$, TOOBIG, "FInfoDlgProc", APPHELP, HELPPROC$)
  378.         END IF
  379.  
  380.         ERROR STFQUIT
  381.         GOTO QUIT
  382.     end if
  383.  
  384.  
  385.  
  386.     Install
  387.  
  388.  
  389. QUIT:
  390.     ON ERROR GOTO ERRQUIT
  391.  
  392.     IF ERR = 0 THEN
  393.         IF SCRWID% = 640 THEN
  394.             dlg% = EXITSUCCESSX
  395.         ELSE
  396.             dlg% = EXITSUCCESS
  397.         END IF
  398.  
  399.     ELSEIF ERR = STFQUIT THEN
  400.         IF SCRWID% = 640 THEN
  401.             dlg% = EXITQUITX
  402.         ELSE
  403.             dlg% = EXITQUIT
  404.         END IF
  405.     ELSE
  406.         IF SCRWID% = 640 THEN
  407.             dlg% = EXITFAILUREX
  408.         ELSE
  409.             dlg% = EXITFAILURE
  410.         END IF
  411.  
  412.     END IF
  413. QUITL1:
  414.     sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "")
  415.     IF sz$ = "REACTIVATE" THEN
  416.         GOTO QUITL1
  417.     END IF
  418.     UIPop 1
  419.  
  420.     END
  421.  
  422. ERRQUIT:
  423.     i% = DoMsgBox("Setup sources were corrupted, please call Midisoft Technical Support", "Setup Message", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  424.     END
  425.  
  426.  
  427.  
  428. BADPATH:
  429.     IF scrwid% = 640 THEN
  430.         sz$ = UIStartDlg(CUIDLL$, BADPATHX, "FInfoDlgProc", APPHELP, HELPPROC$)
  431.     ELSE
  432.         sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfoDlgProc", APPHELP, HELPPROC$)
  433.     END IF
  434.  
  435.     IF sz$ = "REACTIVATE" THEN
  436.         GOTO BADPATH
  437.     END IF
  438.     UIPop 1
  439.     RETURN
  440.  
  441.  
  442.  
  443. ASKQUIT:
  444.     IF scrwid% = 640 THEN
  445.         sz$ = UIStartDlg(CUIDLL$, ASKQUITX, "FQuitDlgProc", APPHELP, HELPPROC$)
  446.     ELSE
  447.         sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", APPHELP, HELPPROC$)
  448.     END IF
  449.  
  450.     IF sz$ = "EXIT" THEN
  451.         UIPop 5            'UIPopAll does not work
  452.         ERROR STFQUIT
  453.     ELSEIF sz$ = "REACTIVATE" THEN
  454.         GOTO ASKQUIT
  455.     ELSE
  456.         UIPop 1
  457.     END IF
  458.     RETURN
  459.  
  460.  
  461.  
  462. '**
  463. '** Purpose:
  464. '**     Builds the copy list and performs all installation operations.
  465. '** Arguments:
  466. '**     none.
  467. '** Returns:
  468. '**     none.
  469. '*************************************************************************
  470. SUB Install STATIC
  471.  
  472.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  473.     CreateDir DEST$, cmoNone
  474.  
  475.  
  476.     AddSectionFilesToCopyList "Midisoft", SrcDir$, DEST$
  477.     AddSectionFilesToCopyList "Midifiles", SrcDir$, DEST$
  478.     CopyFilesInCopyList
  479.  
  480. '$IFNDEF POPBLOCKS
  481.     CreateProgmanGroup szProgramGroup$, "", cmoNone
  482.     ShowProgmanGroup  szProgramGroup$, 1, cmoNone
  483.  
  484.     CreateProgmanGroup PROGRAMNAME, "", cmoNone
  485.     ShowProgmanGroup  PROGRAMNAME, 1, cmoNone
  486.  
  487.     CreateProgmanItem szProgramGroup$, PROGRAMNAME, MakePath(DEST$,EXE), "", cmoOverwrite
  488.     CreateProgmanItem PROGRAMNAME, HELPTITLE, MakePath(DEST$, HELPEXE),"", cmoOverwrite
  489.     CreateProgmanItem PROGRAMNAME, NOTATIONTITLE, "WINHELP -i INTRO_NOTATION " + DEST$ + "\INTRO.HLP","", cmoOverwrite
  490.     CreateProgmanItem PROGRAMNAME, MIDITITLE, "WINHELP -i INTRO_MIDI " + DEST$ + "\INTRO.HLP","", cmoOverwrite
  491.     CreateProgmanItem PROGRAMNAME, GENERALTITLE, "WINHELP -i INTRO_GENERAL_MIDI " + DEST$ + "\INTRO.HLP","", cmoOverwrite
  492. '$ENDIF
  493.  
  494. END SUB
  495.  
  496.  
  497.  
  498. '**
  499. '** Purpose:
  500. '**     Appends a file name to the end of a directory path,
  501. '**     inserting a backslash character as needed.
  502. '** Arguments:
  503. '**     szDir$  - full directory path (with optional ending "\")
  504. '**     szFile$ - filename to append to directory
  505. '** Returns:
  506. '**     Resulting fully qualified path name.
  507. '*************************************************************************
  508. FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
  509.     IF szDir$ = "" THEN
  510.         MakePath = szFile$
  511.     ELSEIF szFile$ = "" THEN
  512.         MakePath = szDir$
  513.     ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
  514.         MakePath = szDir$ + szFile$
  515.     ELSE
  516.         MakePath = szDir$ + "\" + szFile$
  517.     END IF
  518. END FUNCTION
  519.  
  520.