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