home *** CD-ROM | disk | FTP | other *** search
/ Computer Tool Software / soft.iso / mpeg1 / ARVIN / VISCUI.MST < prev    next >
Encoding:
Text File  |  1995-06-12  |  11.1 KB  |  383 lines

  1. '$DEFINE DEBUG  ''Define for script development/debugging
  2.  
  3. '$INCLUDE 'setupapi.inc'
  4. '$INCLUDE 'msdetect.inc'
  5.  
  6. ''Dialog ID's
  7. ''Must be the same as viscui.h
  8. CONST WELCOME       = 100
  9. CONST ASKQUIT       = 200
  10. CONST DESTPATH      = 300
  11. CONST EXITFAILURE   = 400
  12. CONST EXITQUIT      = 600
  13. CONST EXITSUCCESS   = 700
  14. CONST OPTIONS       = 800
  15. CONST APPHELP       = 900        '' Help dialog box
  16. CONST INTEROPTIONS  = 1000
  17. CONST DMAOPTIONS    = 1100       '' DMA Channel switch selection dialog
  18. CONST IOOPTIONSA    = 1210       '' Audio IO base address selection dialog
  19. CONST IRQOPTIONS    = 1120       '' Interrupt switch selection dialog
  20. CONST BADPATH       = 6400       '' Bad destination directory dialog box
  21.  
  22.  
  23. '' Dialog bitmap icon ID
  24. CONST LOGO = 1
  25.  
  26. ''Global variable declaration
  27. GLOBAL VxD$             '' Virtual device installl status
  28. GLOBAL MCI$             '' MCI device driver installl status
  29. GLOBAL DEST$            '' Default destination directory
  30. GLOBAL DESTMCI$         '' Default destination directory
  31. GLOBAL DESTDOS$         '' Default destination directory
  32. GLOBAL DESTWIN$         '' Default destination directory
  33. GLOBAL DESTINC$         '' Default destination directory
  34. GLOBAL DESTLIB$         '' Default destination directory
  35. GLOBAL BASEIOA$         '' Audio I/O address
  36. GLOBAL BASEIOV$         '' Video I/O address
  37. GLOBAL INTR$            '' IRQ
  38. GLOBAL DMA$             '' DMA channel
  39. GLOBAL VIDEOSOURCE$     '' NTSC,PAL
  40. GLOBAL INTERFACE$       '' SCSI,OTHERS
  41.  
  42. GLOBAL OPTCUR$      ''Option selection from option dialog.
  43. GLOBAL RebootMsg%
  44.  
  45. DECLARE SUB Install
  46. DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
  47.  
  48. DECLARE FUNCTION PostMessage LIB "user" (hwnd%, msg%, wparam%, lparam&) AS INTEGER
  49. DECLARE FUNCTION RegisterWindowMessage LIB "user" (szRebootMessage$) AS INTEGER
  50.  
  51.  
  52. INIT:
  53.    CUIDLL$ = "mscuistf.dll"            ''Custom user interface dll
  54.    HELPPROC$ = "FHelpDlgProc"          ''Help dialog procedure
  55.  
  56.    SetBitmap CUIDLL$, LOGO
  57.    SetTitle "ARVIN MPEG Player Installation"
  58.  
  59.    szInf$ = GetSymbolValue("STF_SRCINFPATH")
  60.    IF szInf$ = "" THEN
  61.       szInf$ = GetSymbolValue("STF_CWDDIR") + "VISCUI.INF"
  62.    END IF
  63.    ReadInfFile szInf$
  64.    INTERFACE$ = "OTHERS"
  65.    BASEIOA$ = "0x2C0"
  66.    DMA$   = "6"
  67.    INTR$  = "15"
  68.    VIDEOSOURCE$ = "NTSC"
  69.    DEST$  = "C:\ARVIN"
  70.    VxD = "NO"         '' need not to add device=winvdmad.386 to system.ini
  71.  
  72.  
  73.    RebootMsg% = RegisterWindowMessage ("Setup")
  74.  
  75. '$IFDEF DEBUG
  76.     i% = SetSizeCheckMode(scmOnIgnore)    '' could use scmOff; def = scmOnFatal
  77.     WinDrive$ = MID$(GetWindowsDir, 1, 1)
  78.     IF IsDriveValid(WinDrive$) = 0 THEN
  79.         i% = DoMsgBox("Windows drive ('"+WinDrive$+"') is not a valid drive.", "DEBUG", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  80.         GOTO QUIT
  81.     END IF
  82. '$ENDIF ''DEBUG
  83.  
  84.  
  85. WELCOME:
  86.    sz$ = UIStartDlg(CUIDLL$, WELCOME, "FInfoDlgProc", APPHELP, HELPPROC$)
  87.    IF sz$ = "CONTINUE" THEN
  88.       UIPop 1
  89.    ELSE
  90.       GOSUB ASKQUIT
  91.       GOTO WELCOME
  92.    END IF
  93.  
  94.  
  95. ' Get the installation destination path
  96. GETPATH:
  97.    SetSymbolValue "EditTextIn", DEST$
  98.    SetSymbolValue "EditFocus", "END"
  99. GETPATHL1:
  100.    sz$ = UIStartDlg(CUIDLL$, DESTPATH, "FEditDlgProc", APPHELP, HELPPROC$)
  101.    DEST$ = GetSymbolValue("EditTextOut")
  102.    DESTWIN$=DEST$+"\windows"
  103.    DESTDOS$=DEST$+"\dos"
  104.    DESTINC$=DEST$+"\include"
  105.    DESTLIB$=DEST$+"\lib"
  106.    DESTMCI$=DEST$+"\mci"
  107.  
  108.    IF sz$ = "CONTINUE" THEN
  109.        IF IsDirWritable(DEST$) = 0 THEN
  110.            GOSUB BADPATH
  111.            GOTO GETPATHL1
  112.        END IF
  113.        UIPop 1
  114.    ELSEIF sz$ = "REACTIVATE" THEN
  115.        GOTO GETPATHL1
  116.    ELSE
  117.        GOSUB ASKQUIT
  118.        GOTO GETPATH
  119.    END IF
  120.  
  121.  
  122.  
  123. ' Get IO Port
  124. IOOPTIONA:
  125.    SetSymbolValue "DefIO", "6"  ''0x2C0
  126.    SetSymbolValue "DefVSrc", "NTSC"  ''NTSC
  127. IOOPTL1A:
  128.    sz$ = UIStartDlg(CUIDLL$, IOOPTIONSA, "FAIOProc", APPHELP, HELPPROC$)
  129.    BASEIOA$ = GetSymbolValue("IOPortA")
  130.    BASEIOV$ = GetSymbolValue("IOPortV")
  131.    VIDEOSOURCE$ = GetSymbolValue("VideoSource")
  132.  
  133.    IF sz$ = "CONTINUE" THEN
  134.        UIPop(1)
  135.    ELSEIF sz$ = "REACTIVATE" THEN
  136.        GOTO IOOPTL1A
  137.    ELSE
  138.        GOSUB ASKQUIT
  139.        GOTO IOOPTIONA
  140.    END IF
  141.  
  142.  
  143. ' Get IRQ
  144. AINTOPTION:
  145.    SetSymbolValue "IRQ", "15"
  146. AINTOPTL1:
  147.    sz$ = UIStartDlg(CUIDLL$, IRQOPTIONS, "FIRQDlgProc", APPHELP, HELPPROC$)
  148.    INTR$ = GetSymbolValue("IRQ")
  149.  
  150.    IF sz$ = "CONTINUE" THEN
  151.        UIPop(1)
  152.    ELSEIF sz$ = "REACTIVATE" THEN
  153.        GOTO AINTOPTL1
  154.    ELSE
  155.        GOSUB ASKQUIT
  156.        GOTO AINTOPTION
  157.    END IF
  158.  
  159.  
  160. ' Get DMA
  161. DMAOPTION:
  162.    SetSymbolValue "DMA", "6"
  163. DMAOPTL1:
  164.    sz$ = UIStartDlg(CUIDLL$, DMAOPTIONS, "FDMADlgProc", APPHELP, HELPPROC$)
  165.    DMA$ = GetSymbolValue("DMAChannel")
  166.  
  167.    IF sz$ = "CONTINUE" THEN
  168.        UIPop(1)
  169.    ELSEIF sz$ = "REACTIVATE" THEN
  170.        GOTO DMAOPTL1
  171.    ELSE
  172.        GOSUB ASKQUIT
  173.        GOTO DMAOPTION
  174.    END IF
  175.  
  176. ' Get CD-ROM Interface
  177. INTEROPTION:
  178.    SetSymbolValue "DefInterface", "OTHERS"
  179. INTEROPTL1:
  180.    sz$ = UIStartDlg(CUIDLL$,INTEROPTIONS, "FINTERFACEDlgProc", APPHELP, HELPPROC$)
  181.    INTERFACE$ = GetSymbolValue("Interface")
  182.  
  183.    IF sz$ = "CONTINUE" THEN
  184.        UIPop(1)
  185.    ELSEIF sz$ = "REACTIVATE" THEN
  186.        GOTO INTEROPTL1
  187.    ELSE
  188.        GOSUB ASKQUIT
  189.        GOTO  INTEROPTION
  190.    END IF
  191.  
  192.    Install
  193.  
  194. QUIT:
  195.    ON ERROR GOTO ERRQUIT
  196.  
  197.    IF ERR = 0 THEN
  198.  
  199.      dlg% = EXITSUCCESS
  200.      'sz$=UIStartDlg(CUIDLL$, EXITSUCCESS, "FRestartWinProc", 0, "")
  201.  
  202.    ELSEIF ERR = STFQUIT THEN
  203.            dlg% = EXITQUIT
  204.    ELSE
  205.            dlg% = EXITFAILURE
  206.    END IF
  207. QUITL1:
  208.    END
  209.    sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "")
  210.    IF sz$ = "REACTIVATE" THEN
  211.            GOTO QUITL1
  212.    END IF
  213.    UIPop 1
  214.  
  215.    END
  216.  
  217. ERRQUIT:
  218.     i% = DoMsgBox("Setup sources were corrupted, call technical support!", "ARVIN MPEG Player", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  219.     END
  220.  
  221.  
  222.  
  223. BADPATH:
  224.     sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfo0DlgProc", 0, "")
  225.     IF sz$ = "REACTIVATE" THEN
  226.         GOTO BADPATH
  227.     END IF
  228.     UIPop 1
  229.     RETURN
  230.  
  231.  
  232.  
  233. ASKQUIT:
  234.     sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
  235.  
  236.     IF sz$ = "EXIT" THEN
  237.         UIPopAll
  238.         ERROR STFQUIT
  239.     ELSEIF sz$ = "REACTIVATE" THEN
  240.         GOTO ASKQUIT
  241.     ELSE
  242.         UIPop 1
  243.     END IF
  244.     RETURN
  245.  
  246.  
  247. '**
  248. '** Purpose:
  249. '**     Builds the copy list and performs all installation operations.
  250. '** Arguments:
  251. '**     none.
  252. '** Returns:
  253. '**     none.
  254. '*************************************************************************
  255. SUB Install STATIC
  256.  
  257. ' Create the directory
  258.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  259.     CreateDir DEST$,cmoNone
  260.     CreateDir DESTWIN$, cmoNone
  261.     CreateDir DESTINC$, cmoNone
  262.     CreateDir DESTDOS$, cmoNone
  263.     CreateDir DESTLIB$, cmoNone
  264.     CreateDir DESTMCI$, cmoNone
  265.  
  266. ' Copy files
  267.     AddSectionFilesToCopyList "windows", SrcDir$, DESTWIN$
  268.     AddSectionFilesToCopyList "dos", SrcDir$, DESTDOS$
  269.     AddSectionFilesToCopyList "include", SrcDir$, DESTINC$
  270.     AddSectionFilesToCopyList "lib", SrcDir$, DESTLIB$
  271.     AddSectionFilesToCopyList "mci", SrcDir$, DESTMCI$
  272.  
  273.     CopyFilesInCopyList
  274.  
  275.     windir$  = GetWindowsDir()
  276.     sysdir$  = GetWindowsSysDir()
  277.     mpegini$ = windir$+"WINMPEG.INI"
  278.     winini$  = windir$+"WIN.INI"
  279.     sysini$  = windir$+"SYSTEM.INI"
  280.  
  281. ' create section
  282.     sec1$ = "WinMPEG"
  283.     sec2$ = "UserDef"
  284.     VFORMAT$ = "RGB"
  285.     CDIFMV$="CDIFMV"
  286.     SLASH$ = "\"
  287.  
  288. ' Create the WINMPEG.INI file
  289.    RemoveFile mpegini$, cmoForce
  290.  
  291. ' Add the symbols to the winmpeg.ini file for windows demo program
  292.    CreateIniKeyValue mpegini$, sec1$, "IOBASEA", "0x"+BASEIOA$ , cmoOverwrite
  293.    CreateIniKeyValue mpegini$, sec1$, "IRQ", INTR$ , cmoOverwrite
  294.    CreateIniKeyValue mpegini$, sec1$, "DMA", DMA$, cmoOverwrite
  295.    CreateIniKeyValue mpegini$, sec1$, "VideoSource", VIDEOSOURCE$ ,cmoOverwrite
  296.    CreateIniKeyValue mpegini$, sec1$, "CDROM", INTERFACE$ ,cmoOverwrite
  297.  
  298. ' Add the VxD to the system.ini file
  299.    VxD$ = GetSymbolValue("AddVxD")   '' need to add VxD driver to system.ini?
  300.    IF VxD$ = "YES" THEN
  301.       CreateSysIniKeyValue sysini$, "386Enh", "DEVICE",MakePath(DESTWIN$,"WINVDMAD.386"), cmoOverwrite
  302.    ENDIF
  303.  
  304. ' Add the symbols to the dosmpeg.ini file for DOS demo program
  305.    CopyFile mpegini$,DESTDOS$+"\DOSMPEG.INI",cmoOverwrite,0
  306.  
  307. ' Create a MPEG Master group under Windows
  308.    group$ = "ARVIN MPEG Player"
  309.    CreateProgmanGroup group$, "", cmoNone
  310.    ShowProgmanGroup  group$, 1, cmoNone
  311.    CreateProgmanItem group$, "ARVIN MPEG Player", MakePath(DESTWIN$,"wplayer.exe"),"", cmoOverwrite
  312.  
  313. ' Add MPEG Master MCI drivers
  314.    RemoveIniKey sysini$, "MCI", "MMaster",cmoForce
  315.    RemoveIniKey winini$, "MCI EXTENSIONS", "mpg",cmoForce
  316.    RemoveIniKey winini$, "MCI EXTENSIONS", "dat",cmoForce
  317.  
  318.    RemoveIniKey winini$, "MCI EXTENSIONS", "cdi",cmoForce
  319.  
  320. '
  321.    CreateSysIniKeyValue sysini$, "MCI", "MMaster","mmaster.drv", cmoOverwrite
  322. '
  323.    CreateIniKeyValue winini$, "MCI EXTENSIONS", "mpg","MMaster", cmoOverwrite
  324.    CreateIniKeyValue winini$, "MCI EXTENSIONS", "dat","MMaster", cmoOverwrite
  325.    CreateIniKeyValue winini$, "MCI EXTENSIONS", "cdi","MMaster", cmoOverwrite
  326.  
  327. '  RemoveFile
  328.    RemoveFile WINDIR$+"VISAUDIO.EXE", cmoForce
  329.    RemoveFile WINDIR$+"JRAUDIO.EXE", cmoForce
  330.    RemoveFile WINDIR$+"VISDLL.DLL", cmoForce
  331.    RemoveFile WINDIR$+"VISFONT.FON", cmoForce
  332.  
  333.  
  334. ' Copy files to windows and windows\system
  335.    CopyFile DESTWIN$+"\WINMPEG.DLL",sysdir$+"WINMPEG.DLL",cmoOverwrite,0
  336.    CopyFile DESTMCI$+"\mmaster.drv",sysdir$+"mmaster.drv",cmoOverwrite,0
  337.    CopyFile DESTMCI$+"\movie.cdi",windir$+"movie.cdi",cmoOverwrite,0
  338.  
  339.    CopyFile DESTWIN$+"\visdll.dll",windir$+"visdll.dll",cmoOverwrite,0
  340.    CopyFile DESTWIN$+"\visaudio.exe",windir$+"visaudio.exe",cmoOverwrite,0
  341.    CopyFile DESTWIN$+"\jraudio.exe",windir$+"jraudio.exe",cmoOverwrite,0
  342.    CopyFile DESTWIN$+"\dram.dat",windir$+"dram.dat",cmoOverwrite,0
  343.  
  344. ' Copy font to windows and windows\syustem
  345.    RemoveIniKey winini$, "fonts", "VISFONT",cmoForce
  346.    CopyFile DESTWIN$+"\VISFONT.FON",sysdir$+"VISFONT.FON",cmoOverwrite,0
  347.    CreateSysIniKeyValue winini$, "fonts", "VISFONT",MakePath(DESTWIN$,"VISFONT.FON"), cmoOverwrite
  348.  
  349.  
  350. '***************************************************************
  351. '** We ask the user if they want to reboot and post the 
  352. '** appropriate message to SETUP.EXE.
  353. '***************************************************************
  354.     j% = PostMessage (65535, RebootMsg%, 0, 0)
  355.  
  356.     CloseLogFile
  357.  
  358. END SUB
  359.  
  360.  
  361.  
  362. '**
  363. '** Purpose:
  364. '**     Appends a file name to the end of a directory path,
  365. '**     inserting a backslash character as needed.
  366. '** Arguments:
  367. '**     szDir$  - full directory path (with optional ending "\")
  368. '**     szFile$ - filename to append to directory
  369. '** Returns:
  370. '**     Resulting fully qualified path name.
  371. '*************************************************************************
  372. FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
  373.     IF szDir$ = "" THEN
  374.         MakePath = szFile$
  375.     ELSEIF szFile$ = "" THEN
  376.         MakePath = szDir$
  377.     ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
  378.         MakePath = szDir$ + szFile$
  379.     ELSE
  380.         MakePath = szDir$ + "\" + szFile$
  381.     END IF
  382. END FUNCTION
  383.