home *** CD-ROM | disk | FTP | other *** search
/ QBasic & Borland Pascal & C / Delphi5.iso / Basic / Samples / VB_SMPL / VB_SMPL.ZIP / CDPLAY.EXE / CDPLAYER.FRM (.txt) < prev    next >
Encoding:
Visual Basic Form  |  1994-04-01  |  19.0 KB  |  557 lines

  1. VERSION 2.00
  2. Begin Form CDForm 
  3.    BackColor       =   &H00C0C0C0&
  4.    BorderStyle     =   1  'Fixed Single
  5.    Caption         =   "CD Player"
  6.    ClientHeight    =   2400
  7.    ClientLeft      =   2745
  8.    ClientTop       =   2070
  9.    ClientWidth     =   7185
  10.    FontBold        =   -1  'True
  11.    FontItalic      =   -1  'True
  12.    FontName        =   "MS Sans Serif"
  13.    FontSize        =   8.25
  14.    FontStrikethru  =   0   'False
  15.    FontUnderline   =   0   'False
  16.    ForeColor       =   &H00FFFFFF&
  17.    Height          =   3090
  18.    Icon            =   CDPLAYER.FRX:0000
  19.    Left            =   2685
  20.    LinkTopic       =   "Form1"
  21.    MaxButton       =   0   'False
  22.    ScaleHeight     =   2400
  23.    ScaleWidth      =   7185
  24.    Top             =   1440
  25.    Width           =   7305
  26.    Begin SSPanel TrackPanel3D 
  27.       Alignment       =   2  'Left Justify - BOTTOM
  28.       BackColor       =   &H00C0C0C0&
  29.       Font3D          =   0  'None
  30.       Height          =   1440
  31.       Left            =   60
  32.       TabIndex        =   15
  33.       Top             =   45
  34.       Width           =   7095
  35.       Begin SSPanel frmDisabledCD 
  36.          Alignment       =   8  'Center - BOTTOM
  37.          BackColor       =   &H00C0C0C0&
  38.          BevelOuter      =   0  'None
  39.          Caption         =   "Please Wait. . ."
  40.          Font3D          =   0  'None
  41.          Height          =   1320
  42.          Left            =   120
  43.          TabIndex        =   2
  44.          Top             =   45
  45.          Width           =   6855
  46.          Begin PictureBox picLogo 
  47.             AutoSize        =   -1  'True
  48.             BackColor       =   &H00C0C0C0&
  49.             BorderStyle     =   0  'None
  50.             Height          =   615
  51.             Left            =   2205
  52.             ScaleHeight     =   615
  53.             ScaleWidth      =   2535
  54.             TabIndex        =   3
  55.             Top             =   120
  56.             Width           =   2535
  57.             Begin Label lblLogo 
  58.                AutoSize        =   -1  'True
  59.                BackStyle       =   0  'Transparent
  60.                Caption         =   "CD Player"
  61.                FontBold        =   -1  'True
  62.                FontItalic      =   -1  'True
  63.                FontName        =   "MS Serif"
  64.                FontSize        =   24
  65.                FontStrikethru  =   0   'False
  66.                FontUnderline   =   0   'False
  67.                ForeColor       =   &H00C00000&
  68.                Height          =   525
  69.                Index           =   2
  70.                Left            =   -30
  71.                TabIndex        =   4
  72.                Top             =   0
  73.                Width           =   2445
  74.             End
  75.             Begin Label lblLogo 
  76.                AutoSize        =   -1  'True
  77.                BackStyle       =   0  'Transparent
  78.                Caption         =   "CD Player"
  79.                FontBold        =   -1  'True
  80.                FontItalic      =   -1  'True
  81.                FontName        =   "MS Serif"
  82.                FontSize        =   24
  83.                FontStrikethru  =   0   'False
  84.                FontUnderline   =   0   'False
  85.                ForeColor       =   &H00FFFFFF&
  86.                Height          =   525
  87.                Index           =   3
  88.                Left            =   0
  89.                TabIndex        =   5
  90.                Top             =   30
  91.                Width           =   2415
  92.             End
  93.          End
  94.       End
  95.       Begin PictureBox minipicLogo 
  96.          AutoSize        =   -1  'True
  97.          BackColor       =   &H00C0C0C0&
  98.          BorderStyle     =   0  'None
  99.          Height          =   210
  100.          Left            =   3045
  101.          ScaleHeight     =   210
  102.          ScaleWidth      =   1095
  103.          TabIndex        =   10
  104.          Top             =   60
  105.          Width           =   1095
  106.          Begin Label lblminiLogo 
  107.             AutoSize        =   -1  'True
  108.             BackStyle       =   0  'Transparent
  109.             Caption         =   "CD Player"
  110.             FontBold        =   -1  'True
  111.             FontItalic      =   -1  'True
  112.             FontName        =   "MS Serif"
  113.             FontSize        =   8.25
  114.             FontStrikethru  =   0   'False
  115.             FontUnderline   =   0   'False
  116.             ForeColor       =   &H00C00000&
  117.             Height          =   195
  118.             Index           =   0
  119.             Left            =   120
  120.             TabIndex        =   11
  121.             Top             =   -15
  122.             Width           =   900
  123.          End
  124.          Begin Label lblminiLogo 
  125.             AutoSize        =   -1  'True
  126.             BackStyle       =   0  'Transparent
  127.             Caption         =   "CD Player"
  128.             FontBold        =   -1  'True
  129.             FontItalic      =   -1  'True
  130.             FontName        =   "MS Serif"
  131.             FontSize        =   8.25
  132.             FontStrikethru  =   0   'False
  133.             FontUnderline   =   0   'False
  134.             ForeColor       =   &H00FFFFFF&
  135.             Height          =   195
  136.             Index           =   1
  137.             Left            =   120
  138.             TabIndex        =   12
  139.             Top             =   0
  140.             Width           =   900
  141.          End
  142.       End
  143.       Begin SSPanel DisplayTracks 
  144.          BackColor       =   &H00C0C0C0&
  145.          BevelInner      =   1  'Inset
  146.          BevelOuter      =   0  'None
  147.          Font3D          =   0  'None
  148.          Height          =   855
  149.          Left            =   105
  150.          TabIndex        =   18
  151.          Top             =   225
  152.          Width           =   6855
  153.          Begin SSOption TrackNum 
  154.             Font3D          =   0  'None
  155.             FontBold        =   -1  'True
  156.             FontItalic      =   0   'False
  157.             FontName        =   "MS Sans Serif"
  158.             FontSize        =   9.75
  159.             FontStrikethru  =   0   'False
  160.             FontUnderline   =   0   'False
  161.             Height          =   255
  162.             Index           =   0
  163.             Left            =   240
  164.             TabIndex        =   13
  165.             Top             =   105
  166.             Visible         =   0   'False
  167.             Width           =   200
  168.          End
  169.          Begin Label TrackLabel 
  170.             BackStyle       =   0  'Transparent
  171.             Caption         =   "1"
  172.             Height          =   255
  173.             Index           =   0
  174.             Left            =   240
  175.             TabIndex        =   14
  176.             Top             =   345
  177.             Visible         =   0   'False
  178.             Width           =   135
  179.          End
  180.       End
  181.       Begin SSCheck Repeat 
  182.          Caption         =   "&Repeat"
  183.          Font3D          =   0  'None
  184.          Height          =   255
  185.          Left            =   6030
  186.          TabIndex        =   17
  187.          Top             =   1095
  188.          Width           =   975
  189.       End
  190.       Begin PictureBox PicTotalTime 
  191.          AutoRedraw      =   -1  'True
  192.          BackColor       =   &H00C0C0C0&
  193.          BorderStyle     =   0  'None
  194.          Height          =   255
  195.          Left            =   135
  196.          ScaleHeight     =   255
  197.          ScaleWidth      =   3015
  198.          TabIndex        =   16
  199.          Top             =   1095
  200.          Width           =   3015
  201.       End
  202.    End
  203.    Begin SSPanel CDButton3DPanel 
  204.       BackColor       =   &H00C0C0C0&
  205.       BevelInner      =   1  'Inset
  206.       Font3D          =   0  'None
  207.       Height          =   855
  208.       Left            =   45
  209.       TabIndex        =   6
  210.       Top             =   1530
  211.       Width           =   7095
  212.       Begin MMControl MMControl1 
  213.          BackVisible     =   0   'False
  214.          BorderStyle     =   0  'None
  215.          DeviceType      =   "CDAudio"
  216.          Height          =   615
  217.          Left            =   150
  218.          RecordVisible   =   0   'False
  219.          StepVisible     =   0   'False
  220.          TabIndex        =   9
  221.          Top             =   120
  222.          Width           =   2640
  223.       End
  224.       Begin SSPanel Status 
  225.          BackColor       =   &H00C0C0C0&
  226.          BevelInner      =   1  'Inset
  227.          BevelOuter      =   0  'None
  228.          Font3D          =   0  'None
  229.          Height          =   495
  230.          Left            =   3000
  231.          TabIndex        =   8
  232.          Top             =   120
  233.          Width           =   3975
  234.       End
  235.       Begin SSPanel CDStatusBar 
  236.          BackColor       =   &H00C0C0C0&
  237.          BevelInner      =   1  'Inset
  238.          BevelOuter      =   0  'None
  239.          FloodShowPct    =   0   'False
  240.          FloodType       =   1  'Left To Right
  241.          Font3D          =   0  'None
  242.          FontBold        =   -1  'True
  243.          FontItalic      =   0   'False
  244.          FontName        =   "MS Serif"
  245.          FontSize        =   6
  246.          FontStrikethru  =   0   'False
  247.          FontUnderline   =   0   'False
  248.          ForeColor       =   &H00000000&
  249.          Height          =   200
  250.          Left            =   3000
  251.          TabIndex        =   7
  252.          Top             =   575
  253.          Width           =   3975
  254.       End
  255.    End
  256.    Begin PictureBox CDPicture 
  257.       AutoRedraw      =   -1  'True
  258.       BackColor       =   &H00C0C0C0&
  259.       BorderStyle     =   0  'None
  260.       DragIcon        =   CDPLAYER.FRX:0302
  261.       DrawMode        =   4  'Not Copy Pen
  262.       FillStyle       =   0  'Solid
  263.       ForeColor       =   &H00000000&
  264.       Height          =   480
  265.       Left            =   150
  266.       Picture         =   CDPLAYER.FRX:0604
  267.       ScaleHeight     =   32
  268.       ScaleMode       =   3  'Pixel
  269.       ScaleWidth      =   32
  270.       TabIndex        =   1
  271.       TabStop         =   0   'False
  272.       Tag             =   "9130"
  273.       Top             =   2505
  274.       Width           =   480
  275.    End
  276.    Begin TextBox txtFloatTitle 
  277.       BackColor       =   &H00E0FFFF&
  278.       FontBold        =   -1  'True
  279.       FontItalic      =   -1  'True
  280.       FontName        =   "MS Sans Serif"
  281.       FontSize        =   8.25
  282.       FontStrikethru  =   0   'False
  283.       FontUnderline   =   0   'False
  284.       ForeColor       =   &H00000000&
  285.       Height          =   285
  286.       Left            =   1260
  287.       TabIndex        =   0
  288.       Text            =   "Text1"
  289.       Top             =   2655
  290.       Visible         =   0   'False
  291.       Width           =   735
  292.    End
  293.    Begin Timer Timer1 
  294.       Left            =   795
  295.       Top             =   2520
  296.    End
  297.    Begin Menu mnuExit 
  298.       Caption         =   "E&xit"
  299.    End
  300.    Begin Menu mnuOptions 
  301.       Caption         =   "&Options"
  302.       Begin Menu mnuOptionsItem 
  303.          Caption         =   "&Display Track Time In Icon"
  304.          Index           =   0
  305.       End
  306.       Begin Menu mnuOptionsItem 
  307.          Caption         =   "-"
  308.          Index           =   1
  309.       End
  310.       Begin Menu mnuOptionsItem 
  311.          Caption         =   "Alway on &Top"
  312.          Index           =   2
  313.       End
  314.       Begin Menu mnuOptionsItem 
  315.          Caption         =   "&Floating Titles"
  316.          Index           =   3
  317.       End
  318.    End
  319.    Begin Menu mnuCDInfo 
  320.       Caption         =   "&CD Info"
  321.       Begin Menu mnuCDInfoItem 
  322.          Caption         =   "A&dd To/Edit CD Database"
  323.          Index           =   0
  324.       End
  325.       Begin Menu mnuCDInfoItem 
  326.          Caption         =   "About This &CD"
  327.          Index           =   1
  328.       End
  329.       Begin Menu mnuCDInfoItem 
  330.          Caption         =   "-"
  331.          Index           =   2
  332.       End
  333.       Begin Menu mnuCDInfoItem 
  334.          Caption         =   "&About CD Player"
  335.          Index           =   3
  336.       End
  337.    End
  338. Option Explicit
  339. Sub CDStatusBar_MouseDown (Button As Integer, Shift As Integer, X As Single, Y As Single)
  340.     Call UpdateSeek(CDTime(TrackIndex), X)
  341. End Sub
  342. Sub Form_Load ()
  343.     ' Initialize some variables to default values
  344.     CRLF = Chr$(13) & Chr$(10)
  345.     NumOfTracks = 1
  346.     AppPath = App.Path
  347.     CenterLogo Me, frmDisabledCD
  348.     CenterForm CDForm, True
  349.     ' Check for CD Installed
  350.     If MMInstalled() = True Then
  351.         InitMMControl
  352.         ' Check to see if In Play Mode
  353.         If CDForm.MMControl1.Mode = 526 Then MMControl1_PlayClick 0
  354.     End If
  355.     ' Get Option Settings
  356.     GetOptionSettings
  357. End Sub
  358. Sub Form_Resize ()
  359.     If CDForm.WindowState <= 1 And CDForm.mnuOptionsItem(2).Checked = True Then
  360.         ' Because of the way VB is handling the ICON Window, it destroys
  361.         ' the old window and creates a new one, thus totally screwing up Alway On Top!
  362.         OnTop Me ' Call to turn check off
  363.         OnTop Me ' Turn back on new Window
  364.     End If
  365.     If CDForm.WindowState = 1 And CDForm.mnuOptionsItem(0).Checked = True Then
  366.         ' Turn on an Icon if not checked
  367.         CDForm.Icon = LoadPicture()
  368.     Else
  369.         CDForm.Icon = CDForm.CDPicture.Picture
  370.     End If
  371. End Sub
  372. Sub Form_Unload (Cancel As Integer)
  373.     Dim Answer As Integer
  374.     If MMControl1.Mode = MCI_MODE_PLAY Then
  375.         Answer = MsgBox(CDInfo.CDTitle & " is still playing!" & CRLF & "Are you sure you want to Exit?", 4, "Attention")
  376.         If Answer = 6 Then ' Yes
  377.             ' Save Option Settings
  378.             SaveOptionSettings
  379.             MMControl1.Command = "Close"
  380.         Else ' No
  381.             Cancel = True
  382.         End If
  383.     Else
  384.         ' Save Option Settings
  385.         SaveOptionSettings
  386.         MMControl1.Command = "Close"
  387.     End If
  388. End Sub
  389. Sub MMControl1_EjectClick (Cancel As Integer)
  390.     MMControl1.Command = "Eject"
  391.     MMControl1.Command = "Close"
  392.     UpdateCaption 0, "None"
  393.     CDForm.txtFloatTitle.Visible = False
  394.     Timer_Control True
  395. End Sub
  396. Sub MMControl1_PauseClick (Cancel As Integer)
  397.     CDForm.Caption = CDInfo.CDTitle & " (Paused)"
  398. End Sub
  399. Sub MMControl1_PlayClick (Cancel As Integer)
  400.     Dim I As Integer
  401.     MMControl1.UpdateInterval = 1000
  402.     MMControl1.From = TrackIndex
  403.     If CDForm.Caption = CDInfo.CDTitle & " (Paused)" Then
  404.         MMControl1.Command = "Seek"
  405.     End If
  406. End Sub
  407. Sub MMControl1_PlayCompleted (ErrorCode As Long)
  408.     If ErrorCode = 262 Then
  409.         MMControl1.Command = "Close"
  410.         Timer_Control True
  411.     End If
  412. End Sub
  413. Sub MMControl1_StatusUpdate ()
  414.     Static Stopped As Integer
  415.     If MMControl1.Mode = MCI_MODE_STOP And CDForm.Caption <> CDInfo.CDTitle & "(Paused)" Then
  416.         
  417.         ' Repeat
  418.         If Repeat.Value = True And MMControl1.NotifyValue = 1 Then
  419.             Call UpdateCaption(1, "Rewinding")
  420.             MMControl1.From = "1"
  421.             MMControl1.Command = "Play"
  422.             Exit Sub
  423.         End If
  424.         If Stopped = True Then Exit Sub
  425.         ' Update Form Caption
  426.         Call UpdateCaption(CDInfo.CDTrack, "Stopped")
  427.             
  428.         ' Update CD Info
  429.         Call UpdateCDInfo(0, "00:00")
  430.         ' Set Icon Timer to 00:00
  431.         If CDForm.mnuOptionsItem(0).Checked = True Then
  432.             CDForm.Cls
  433.             CDForm.Print "00:00"
  434.         End If
  435.         ' Set Stopped Flag
  436.         Stopped = True
  437.         
  438.     ElseIf MMControl1.Mode = MCI_MODE_PLAY Then
  439.         If CDForm.WindowState = 0 Then
  440.             ' Clear Form and Reset Flags
  441.             CDForm.Cls
  442.             Stopped = False
  443.             
  444.             ' Get CD Track, Minute and Second Info
  445.             CDInfo.CDTrack = GetCDTrack()
  446.             
  447.             ' Update Form Caption
  448.             Call UpdateCaption(CDInfo.CDTrack, "Play")
  449.         
  450.             ' Update CD Info
  451.             Call UpdateCDInfo(CInt(CDInfo.CDTrack), GetCDTime())
  452.         
  453.             ' Floating Titles
  454.             If mnuOptionsItem(3).Checked = True Then FloatingTitle
  455.         ElseIf CDForm.WindowState = 1 Then
  456.             If mnuOptionsItem(0).Checked = True Then AnimateIcon GetCDTime()
  457.             
  458.             ' Update Form Caption
  459.             Call UpdateCaption(GetCDTrack(), "Play")
  460.         End If
  461.     ElseIf MMControl1.Mode = MCI_MODE_READY Then
  462.         MMControl1.Command = "Close"
  463.         UpdateCaption 0, "None"
  464.         CDForm.txtFloatTitle.Visible = False
  465.         Timer_Control True
  466.     End If
  467. End Sub
  468. Sub MMControl1_StopClick (Cancel As Integer)
  469.     ' Update Form Caption
  470.     Call UpdateCaption(CDInfo.CDTrack, "Stopped")
  471.             
  472.     ' Update CD Info
  473.     CDForm.Status.Caption = "Length: -None- Time: -None-"
  474.         
  475. End Sub
  476. Sub mnuCDInfoItem_Click (Index As Integer)
  477.     Select Case Index
  478.         Case 0 ' Add CD Info
  479.             CDEntry.Show 1
  480.         Case 1 ' About The CD
  481.             CDAbout.Show 1
  482.         Case 3 ' About CDPlayer
  483.             About.Show 1
  484.     End Select
  485. End Sub
  486. Sub mnuExit_Click ()
  487.     Unload Me
  488. End Sub
  489. Sub mnuOptionsItem_Click (Index As Integer)
  490.     Select Case Index
  491.         Case 0 ' Animation
  492.                 mnuOptionsItem(0).Checked = Not mnuOptionsItem(0).Checked
  493.         Case 1 ' Bar
  494.         Case 2 ' Always On Top
  495.             OnTop Me
  496.         Case 3
  497.             mnuOptionsItem(Index).Checked = Not mnuOptionsItem(Index).Checked
  498.     End Select
  499. End Sub
  500. Sub Timer1_Timer ()
  501.     Dim I As Integer
  502.     MMControl1.Command = "Open"
  503.     If MMControl1.Error = 266 Then
  504.         ' Control Disabled! No CD Present
  505.         CDForm.frmDisabledCD.Caption = "Please Insert A CD!"
  506.         
  507.         frmDisabledCD.Visible = True
  508.         ChangeMenuStatus False
  509.         If Tracks_Loaded = True Then Call LoadTracks(NumOfTracks, False)
  510.         PicTotalTime.Cls
  511.         ReDim CDTracks(0)
  512.     Else
  513.         ' Initialize the control
  514.         If Tracks_Loaded = True Then Call LoadTracks(NumOfTracks, False)
  515.         InitMMControl
  516.         ChangeMenuStatus True
  517.         CDStatusBar.FloodPercent = 0
  518.         Call Timer_Control(False)
  519.     End If
  520. End Sub
  521. Sub TrackLabel_Click (Index As Integer)
  522.     ' Seek to Track
  523.     TrackNum(Index).Value = True
  524.     TrackPanel3D.Refresh
  525. End Sub
  526. Sub TrackNum_Click (Index As Integer, Value As Integer)
  527.     TrackIndex = Index
  528.     ' Check if just Setting Option
  529.     If TrackNumChange = True Then Exit Sub
  530.     ' Seek to Track
  531.     MMControl1.To = TrackIndex
  532.     MMControl1.Command = "Seek"
  533.     MMControl1.Track = TrackIndex
  534.     MMControl1.SetFocus
  535. End Sub
  536. Sub TrackNum_MouseMove (Index As Integer, Button As Integer, Shift As Integer, X As Single, Y As Single)
  537.     Static SavedIndex As Integer
  538.     If SavedIndex = Index Then Exit Sub
  539.     If mnuOptionsItem(3).Checked = True Then
  540.         MouseX = X
  541.         MouseY = Y
  542.         txtFloatTitle.Visible = False
  543.         txtFloatTitle = (Mid$(CDTrackNo(Index), 5, (Len(CDTrackNo(Index)) - 5)))
  544.         txtFloatTitle.Width = CDForm.TextWidth(txtFloatTitle) + 100
  545.         txtFloatTitle.Height = CDForm.TextHeight(txtFloatTitle)
  546.         txtFloatTitle.ZOrder 0
  547.         txtFloatTitle.Left = TrackNum(Index).Left
  548.         If (txtFloatTitle.Left + txtFloatTitle.Width) > (TrackPanel3D.Left + TrackPanel3D.Width) Then
  549.             txtFloatTitle.Left = TrackNum(Index).Left + ((TrackPanel3D.Left + TrackPanel3D.Width) - (txtFloatTitle.Left + txtFloatTitle.Width))
  550.         End If
  551.         txtFloatTitle.Top = TrackNum(Index).Top
  552.         txtFloatTitle.Tag = Index
  553.         SavedIndex = Index
  554.         txtFloatTitle.Visible = True
  555.     End If
  556. End Sub
  557.