home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1997 February / PCWK0297.iso / envelop / envelop.5 / Tools / Arsenal / tools / playwav / playwav.eto < prev    next >
Text File  |  1996-07-08  |  8KB  |  289 lines

  1. Type SoundPlayerMasterForm From SampleMasterForm
  2.   Dim lstWaveFiles As New ListBox
  3.   Dim lstSelDirectory As New FileListBox
  4.   Dim btnSearch As New Button
  5.   Dim btnClear As New Button
  6.   Dim cboSelDrive As New FileComboBox
  7.   Dim Label1 As New Label
  8.   Dim Label2 As New Label
  9.   Dim Label3 As New Label
  10.   Dim lblCurDirectory As New Label
  11.   Dim lblSearchDirectory As New Label
  12.   Dim tmrStopWatch As New StopClock
  13.  
  14.   ' METHODS for object: SoundPlayerMasterForm
  15.   Sub AddFileToList(ByVal path as string, ByVal attr as long)
  16.     lstWaveFiles.AddItem path
  17.   
  18.     ' Process events to update display and/or Cancel
  19.     App.DoEvents()
  20.   End Sub
  21.  
  22.   Sub btnClear_Click()
  23.     If btnClear.Caption = "Cancel" Then 
  24.       Throw AbortFlag()
  25.     Else 
  26.       lstWaveFiles.Clear
  27.     End If
  28.   End Sub
  29.  
  30.   Sub btnSearch_Click()
  31.     Dim searchstring As String
  32.     Dim file_count As single
  33.     Dim total_time As String
  34.   
  35.     ' Disable controls until after search
  36.     lstWaveFiles.Enabled = 0
  37.     lstSelDirectory.Enabled = 0
  38.     cboSelDrive.Enabled = 0
  39.     btnClear.Caption = "Cancel"
  40.     btnSearch.Enabled = "False"
  41.   
  42.     ' Clear the wave file list
  43.     lstWaveFiles.Clear
  44.   
  45.     tmrStopWatch.Start
  46.   
  47.     ' Initiate the recursive search for matching files
  48.     Try
  49.       GenerateWaveList lstSelDirectory.Path
  50.     catch AbortFlag()
  51.       InfoBox.Message("", "Search operation cancelled.")
  52.     End Try
  53.   
  54.     tmrStopWatch.Finish
  55.   
  56.     total_time = tmrStopWatch.ElapsedTime
  57.   
  58.     tmrStopWatch.Reset
  59.   
  60.     ' Disable controls until after search
  61.     lstWaveFiles.Enabled = -1
  62.     lstSelDirectory.Enabled = -1
  63.     cboSelDrive.Enabled = -1
  64.     btnClear.Caption = "Clear"
  65.     btnSearch.Enabled = "True"
  66.   
  67.     file_count = lstWaveFiles.ListCount
  68.     InfoBox.Message("", file_count & " sound files located in " & total_time & " time.")
  69.   
  70.   End Sub
  71.  
  72.   Sub cboSelDrive_Click()
  73.     ' Set the path for the Select Directory list
  74.     lstSelDirectory.Path = cboSelDrive.SelPath
  75.   
  76.     ' Update the Search Directory label
  77.     lblCurDirectory.Caption = lstSelDirectory.Path
  78.   
  79.   End Sub
  80.  
  81.   Sub ExitApplication_Click()
  82.     Dim F Strictly As SampleMasterForm
  83.     F = Me
  84.   
  85.     ' Set the contents of the titlebar of the YesNoPrompt object
  86.     YesNoBox.title = "Quit?"
  87.   
  88.     ' Set the message of the YesNoPrompt object
  89.     YesNoBox.Msg("Ok to quit application?")
  90.   
  91.     ' If the Yes entry was clicked, hide the textedit form
  92.     If YesNoBox.result = 6 Then 
  93.       ' Forward to parent
  94.       F.ExitApplication_Click
  95.     End If
  96.   End Sub
  97.  
  98.   Sub GenerateWaveList(ByVal searchFrom As String)
  99.     Dim dir As New Directory
  100.     dir.Path = IIf(searchFrom <> "", searchFrom, dir.CurrentDir)
  101.     dir.EnumContents(Me, "AddFileToList", "*.wav", True)
  102.   End Sub
  103.  
  104.   Sub Load()
  105.   
  106.     ' Restore prerequisite objects that are shared with other
  107.     ' samples, and therefore may already be loaded.
  108.     If FindObject("AudioPlayer") = Nothing Then 
  109.       LoadTextObject(SampleDir & "audio.eto")
  110.     End If
  111.   
  112.   End Sub
  113.  
  114.   Sub lstSelDirectory_DblClick()
  115.     ' Set the Select Directory path to the one chosen
  116.     lstSelDirectory.Path = lstSelDirectory.SelPath
  117.   
  118.     ' Update the Search Directory label
  119.     lblCurDirectory.Caption = lstSelDirectory.Path
  120.   End Sub
  121.  
  122.   Sub lstWaveFiles_Click()
  123.     Dim option As long
  124.     Dim result As long
  125.     Dim sound_file As String
  126.   
  127.     ' Set a variable to be the name of sound file including absolute path
  128.     sound_file = lstWaveFiles.Text
  129.   
  130.     ' Play the selected sound file
  131.     result = AudioPlayer.sndPlaySoundA(sound_file, option)
  132.   
  133.   End Sub
  134.  
  135.   Sub ResetApplication_Click()
  136.   
  137.     ' Preset the height of the combo drive box
  138.     cboSelDrive.Height = 1500
  139.   
  140.     ' Initialize the Search Directory label
  141.     lblCurDirectory.Text = lstSelDirectory.Path
  142.   
  143.     ' Preset the combo drive box
  144.     cboSelDrive.SelectDrive(lstSelDirectory.Path)
  145.   
  146.   End Sub
  147.  
  148.   Sub Resize()
  149.     Dim min_width As single
  150.     Dim min_height As single
  151.     Dim edge_margin As single
  152.     Dim gap_margin As single
  153.   
  154.     edge_margin = 200
  155.     gap_margin = 200
  156.   
  157.     min_height = 4000
  158.     min_width = 6500
  159.   
  160.     If SoundPlayerMasterForm.Width < min_width Then 
  161.       SoundPlayerMasterForm.Width = min_width
  162.     End If
  163.   
  164.     If SoundPlayerMasterForm.Height < min_height Then 
  165.       SoundPlayerMasterForm.Height = min_height
  166.     End If
  167.   
  168.     lstWaveFiles.Width = SoundPlayerMasterForm.ScaleWidth - lstWaveFiles.Left - edge_margin
  169.     btnClear.Left = SoundPlayerMasterForm.ScaleWidth - btnClear.Width - edge_margin
  170.     btnSearch.Left = btnClear.Left - btnSearch.Width - gap_margin
  171.     lblCurDirectory.Width = btnSearch.Left - gap_margin - lblCurDirectory.Left
  172.   
  173.     btnClear.Top = SoundPlayerMasterForm.ScaleHeight - edge_margin - btnClear.Height
  174.     lstWaveFiles.Height = btnClear.Top - gap_margin - lstWaveFiles.Top
  175.     btnSearch.Top = btnClear.Top
  176.     lblCurDirectory.Top = btnClear.Top
  177.     lblSearchDirectory.Top = lblCurDirectory.Top - lblSearchDirectory.Height
  178.     lstSelDirectory.Height = lstWaveFiles.Height - (lstSelDirectory.Top - lstWaveFiles.Top)
  179.   
  180.     SoundPlayerMasterForm.Refresh
  181.   
  182.   End Sub
  183.  
  184. End Type
  185.  
  186. Type AudioPlayer
  187.   Dim SND_SYNC As Long
  188.   Dim SND_ASYNC As Long
  189.   Dim SND_NODEFAULT As Long
  190.   Dim SND_MEMORY As Long
  191.   Dim SND_LOOP As Long
  192.   Dim SND_NOSTOP As Long
  193.   Declare Function sndPlaySoundA Lib "Winmm" (ByVal file As String, ByVal opt As Long) As Long
  194.  
  195.   ' METHODS for object: AudioPlayer
  196.   Function Play(file As String) As Long
  197.     Play = sndPlaySoundA(file, SND_ASYNC Or SND_NODEFAULT)
  198.   End Function
  199.  
  200.   Function PlaySync(file As String) As Long
  201.     Play = sndPlaySoundA(file, SND_SYNC Or SND_NODEFAULT)
  202.   End Function
  203.  
  204. End Type
  205.  
  206. Begin Code
  207. ' Reconstruction commands for object: SoundPlayerMasterForm
  208. '
  209.   With SoundPlayerMasterForm
  210.     .Caption := "Sound Player"
  211.     .Move(3840, 1170, 8955, 4980)
  212.     .Parent := EnvelopForm
  213.     .SampleDir := "C:\ENVELOP\arsenal\tools\playwav\"
  214.     .SampleName := "PLAYWAV"
  215.     With .lstWaveFiles
  216.       .Caption := "lstWaveFiles"
  217.       .ZOrder := 1
  218.       .Move(2475, 450, 6165, 2910)
  219.     End With  'SoundPlayerMasterForm.lstWaveFiles
  220.     With .lstSelDirectory
  221.       .Caption := "lstSelDirectory"
  222.       .ZOrder := 2
  223.       .Move(270, 1420, 1875, 1950)
  224.       .ShowDirs := True
  225.       .ShowFiles := False
  226.     End With  'SoundPlayerMasterForm.lstSelDirectory
  227.     With .btnSearch
  228.       .Caption := "Search"
  229.       .ZOrder := 3
  230.       .Move(6635, 3760, 900, 330)
  231.     End With  'SoundPlayerMasterForm.btnSearch
  232.     With .btnClear
  233.       .Caption := "Clear"
  234.       .ZOrder := 4
  235.       .Move(7735, 3760, 900, 330)
  236.     End With  'SoundPlayerMasterForm.btnClear
  237.     With .cboSelDrive
  238.       .ZOrder := 5
  239.       .Move(300, 450, 1875, 360)
  240.       .ShowDrives := True
  241.       .ShowFiles := False
  242.     End With  'SoundPlayerMasterForm.cboSelDrive
  243.     With .Label1
  244.       .Caption := "Drives:"
  245.       .ForeColor := 13107200
  246.       .ZOrder := 6
  247.       .Move(150, 150, 750, 240)
  248.     End With  'SoundPlayerMasterForm.Label1
  249.     With .Label2
  250.       .Caption := "Directories:"
  251.       .ForeColor := 13107200
  252.       .ZOrder := 7
  253.       .Move(150, 1035, 1500, 240)
  254.     End With  'SoundPlayerMasterForm.Label2
  255.     With .Label3
  256.       .Caption := "Sound Files:   (Click to play)"
  257.       .ForeColor := 13107200
  258.       .ZOrder := 8
  259.       .Move(2325, 150, 2880, 240)
  260.     End With  'SoundPlayerMasterForm.Label3
  261.     With .lblCurDirectory
  262.       .Caption := "C:\envelop"
  263.       .ZOrder := 9
  264.       .Move(300, 3760, 6135, 300)
  265.     End With  'SoundPlayerMasterForm.lblCurDirectory
  266.     With .lblSearchDirectory
  267.       .Caption := "Search Directory:"
  268.       .ForeColor := 13107200
  269.       .ZOrder := 10
  270.       .Move(150, 3460, 1950, 300)
  271.     End With  'SoundPlayerMasterForm.lblSearchDirectory
  272.     With .tmrStopWatch
  273.     End With  'SoundPlayerMasterForm.tmrStopWatch
  274.     With .helpfile
  275.       .FileName := "C:\ENVELOP\arsenal\tools\playwav\PLAYWAV.hlp"
  276.     End With  'SoundPlayerMasterForm.helpfile
  277.   End With  'SoundPlayerMasterForm
  278. ' Reconstruction commands for object: AudioPlayer
  279. '
  280.   With AudioPlayer
  281.     .SND_SYNC := 0
  282.     .SND_ASYNC := 1
  283.     .SND_NODEFAULT := 2
  284.     .SND_MEMORY := 4
  285.     .SND_LOOP := 8
  286.     .SND_NOSTOP := 16
  287.   End With  'AudioPlayer
  288. End Code
  289.