VERSION 5.00
Object = "{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}#2.0#0"; "MSCOMCTL.OCX"
Object = "{648A5603-2C6E-101B-82B6-000000000014}#1.1#0"; "MSCOMM32.OCX"
Object = "{F9043C88-F6F2-101A-A3C9-08002B2F49FB}#1.2#0"; "COMDLG32.OCX"
Begin VB.Form frmSettings 
   BorderStyle     =   1  'Fixed Single
   Caption         =   "Settings"
   ClientHeight    =   5430
   ClientLeft      =   150
   ClientTop       =   435
   ClientWidth     =   5865
   Icon            =   "Form1.frx":0000
   LinkTopic       =   "Form1"
   MaxButton       =   0   'False
   ScaleHeight     =   5430
   ScaleWidth      =   5865
   ShowInTaskbar   =   0   'False
   StartUpPosition =   2  'CenterScreen
   Begin VB.CommandButton btnAbout 
      Caption         =   "A&bout"
      Height          =   255
      Left            =   2880
      TabIndex        =   22
      Top             =   4800
      Width           =   1335
   End
   Begin VB.CommandButton cmdTest 
      Caption         =   "Command1"
      Height          =   255
      Left            =   4320
      TabIndex        =   30
      TabStop         =   0   'False
      Top             =   1800
      Width           =   1455
   End
   Begin VB.TextBox txtTest 
      Height          =   285
      Left            =   4320
      TabIndex        =   29
      TabStop         =   0   'False
      Text            =   "Text1"
      Top             =   1440
      Width           =   1455
   End
   Begin VB.CommandButton cmdStartStop 
      Caption         =   "Sta&rt"
      Enabled         =   0   'False
      Height          =   375
      Left            =   2880
      TabIndex        =   21
      Top             =   3720
      Width           =   1335
   End
   Begin VB.Frame Frame4 
      Caption         =   "VFD7000 Options"
      Height          =   1095
      Left            =   0
      TabIndex        =   28
      Top             =   0
      Width           =   2775
      Begin VB.CheckBox chkAutoHide 
         Caption         =   "Auto &Hide On Startup"
         Height          =   255
         Left            =   120
         TabIndex        =   2
         Top             =   720
         Width           =   2535
      End
      Begin VB.CheckBox chkStartScreen 
         Caption         =   "&Use Start Screen"
         Height          =   255
         Left            =   120
         TabIndex        =   1
         Top             =   480
         Width           =   2535
      End
      Begin VB.CheckBox chkConnect 
         Caption         =   "Auto &Connect On Startup"
         Height          =   195
         Left            =   120
         TabIndex        =   0
         Top             =   240
         Width           =   2535
      End
   End
   Begin MSComDlg.CommonDialog comdlg 
      Left            =   4800
      Top             =   600
      _ExtentX        =   847
      _ExtentY        =   847
      _Version        =   393216
   End
   Begin VB.Frame winamp 
      Caption         =   "Winamp Options"
      Height          =   1455
      Left            =   0
      TabIndex        =   26
      Top             =   1200
      Width           =   2775
      Begin VB.CheckBox chkAutoPlay 
         Caption         =   "Auto Pla&y"
         Height          =   255
         Left            =   120
         TabIndex        =   4
         Top             =   480
         Width           =   1095
      End
      Begin VB.CommandButton btnOpen 
         Caption         =   "&Open"
         Enabled         =   0   'False
         Height          =   255
         Left            =   1800
         TabIndex        =   6
         Top             =   720
         Width           =   855
      End
      Begin VB.TextBox txtPlaylist 
         Enabled         =   0   'False
         Height          =   285
         Left            =   120
         TabIndex        =   27
         TabStop         =   0   'False
         Top             =   1080
         Width           =   2535
      End
      Begin VB.CheckBox chkLoadPlaylist 
         Caption         =   "Auto Load &Playlist"
         Height          =   255
         Left            =   120
         TabIndex        =   5
         Top             =   720
         Width           =   1575
      End
      Begin VB.CheckBox chkWinampLoad 
         Caption         =   "Auto Load &Winamp"
         Height          =   255
         Left            =   120
         TabIndex        =   3
         Top             =   240
         Width           =   1695
      End
   End
   Begin VB.Timer tmrWinamp 
      Enabled         =   0   'False
      Interval        =   500
      Left            =   4320
      Top             =   960
   End
   Begin VB.CommandButton btnSave 
      Caption         =   "&Save Settings"
      Height          =   255
      Left            =   2880
      TabIndex        =   23
      Top             =   5160
      Width           =   1335
   End
   Begin VB.Timer tmrUpdate 
      Enabled         =   0   'False
      Interval        =   1000
      Left            =   4320
      Top             =   480
   End
   Begin VB.Timer tmrDisplay 
      Enabled         =   0   'False
      Interval        =   500
      Left            =   4320
      Top             =   0
   End
   Begin VB.Frame Frame3 
      Caption         =   "Com Port Options"
      Height          =   1695
      Left            =   0
      TabIndex        =   25
      Top             =   3720
      Width           =   2775
      Begin VB.ComboBox cmbHandshaking 
         Height          =   315
         ItemData        =   "Form1.frx":038A
         Left            =   120
         List            =   "Form1.frx":039A
         Style           =   2  'Dropdown List
         TabIndex        =   10
         Top             =   960
         Width           =   2535
      End
      Begin VB.ComboBox cmbSpeed 
         Height          =   315
         ItemData        =   "Form1.frx":03C1
         Left            =   120
         List            =   "Form1.frx":03DA
         Style           =   2  'Dropdown List
         TabIndex        =   9
         Top             =   600
         Width           =   2535
      End
      Begin VB.ComboBox cmbCom 
         Height          =   315
         ItemData        =   "Form1.frx":040D
         Left            =   120
         List            =   "Form1.frx":041D
         Style           =   2  'Dropdown List
         TabIndex        =   8
         Top             =   240
         Width           =   2535
      End
      Begin VB.CheckBox chkEof 
         Caption         =   "&EOF"
         Height          =   255
         Left            =   840
         TabIndex        =   12
         Top             =   1320
         Width           =   615
      End
      Begin VB.CheckBox chkDTR 
         Caption         =   "&DTR"
         Height          =   255
         Left            =   120
         TabIndex        =   11
         Top             =   1320
         Width           =   735
      End
   End
   Begin VB.Frame Frame2 
      Caption         =   "Configure"
      Height          =   3135
      Left            =   2880
      TabIndex        =   24
      Top             =   0
      Width           =   1335
      Begin VB.CommandButton btnScreen5 
         Caption         =   "Screen &5"
         Height          =   375
         Left            =   120
         TabIndex        =   18
         Top             =   2640
         Width           =   1095
      End
      Begin VB.CommandButton btnScreen4 
         Caption         =   "Screen &4"
         Height          =   375
         Left            =   120
         TabIndex        =   17
         Top             =   2160
         Width           =   1095
      End
      Begin VB.CommandButton btnScreen3 
         Caption         =   "Screen &3"
         Height          =   375
         Left            =   120
         TabIndex        =   16
         Top             =   1680
         Width           =   1095
      End
      Begin VB.CommandButton btnScreen2 
         Caption         =   "Screen &2"
         Height          =   375
         Left            =   120
         TabIndex        =   15
         Top             =   1200
         Width           =   1095
      End
      Begin VB.CommandButton btnStartScreen 
         Caption         =   "Start Screen"
         Height          =   375
         Left            =   120
         TabIndex        =   13
         Top             =   240
         Width           =   1095
      End
      Begin VB.CommandButton btnScreen1 
         Caption         =   "Screen &1"
         Height          =   375
         Left            =   120
         TabIndex        =   14
         Top             =   720
         Width           =   1095
      End
   End
   Begin VB.CommandButton btnConnect 
      Caption         =   "Connect"
      Height          =   375
      Left            =   2880
      TabIndex        =   20
      Top             =   3240
      Width           =   1335
   End
   Begin MSCommLib.MSComm vfdCom 
      Left            =   4800
      Top             =   0
      _ExtentX        =   1005
      _ExtentY        =   1005
      _Version        =   393216
      CommPort        =   4
      DTREnable       =   0   'False
      NullDiscard     =   -1  'True
      OutBufferSize   =   4096
      BaudRate        =   38400
   End
   Begin VB.Frame Frame1 
      Caption         =   "VFD Brightness"
      Height          =   855
      Left            =   0
      TabIndex        =   19
      Top             =   2760
      Width           =   2775
      Begin MSComctlLib.Slider sldBrightness 
         Height          =   495
         Left            =   120
         TabIndex        =   7
         Top             =   240
         Width           =   2535
         _ExtentX        =   4471
         _ExtentY        =   873
         _Version        =   393216
         Enabled         =   0   'False
         LargeChange     =   1
         Min             =   1
         Max             =   8
         SelStart        =   8
         Value           =   8
      End
   End
   Begin VB.Menu popMenu 
      Caption         =   "Menu"
      Visible         =   0   'False
      Begin VB.Menu popStartStop 
         Caption         =   "Start"
      End
      Begin VB.Menu popHideShow 
         Caption         =   "Hide"
      End
      Begin VB.Menu popAbout 
         Caption         =   "About"
      End
      Begin VB.Menu popExit 
         Caption         =   "Exit"
      End
   End
End
Attribute VB_Name = "frmSettings"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

Private iniFile As String
Private bigText As Boolean

'Winamp Variables
Private Winamp_TrackPosition As Integer
Private Winamp_TrackLength As Integer
Private Winamp_SongName As String

'Screen Variables
Private CurrentScreen As Integer
Private ScreenTime(1 To 5) As Integer

'How long to display each screen for
Private Screen0Time As Integer
Private Screen1Time As Integer
Private Screen2Time As Integer
Private Screen3Time As Integer
Private Screen4Time As Integer
Private Screen5Time As Integer

Private Screen0Line1 As String
Private Screen0Line1Text As String
Private Screen0Line2 As String
Private Screen0Line2Text As String
Private Screen0Line3 As String
Private Screen0Line3Text As String
Private Screen0Line4 As String
Private Screen0Line4Text As String
Private Screen0Enabled As String
Private Screen0DisplayLength As String

Private Screen1Line1 As String
Private Screen1Line1Text As String
Private Screen1Line2 As String
Private Screen1Line2Text As String
Private Screen1Line3 As String
Private Screen1Line3Text As String
Private Screen1Line4 As String
Private Screen1Line4Text As String
Private Screen1Enabled As String
Private Screen1DisplayLength As String

Private Screen2Line1 As String
Private Screen2Line1Text As String
Private Screen2Line2 As String
Private Screen2Line2Text As String
Private Screen2Line3 As String
Private Screen2Line3Text As String
Private Screen2Line4 As String
Private Screen2Line4Text As String
Private Screen2Enabled As String
Private Screen2DisplayLength As String

Private Screen3Line1 As String
Private Screen3Line1Text As String
Private Screen3Line2 As String
Private Screen3Line2Text As String
Private Screen3Line3 As String
Private Screen3Line3Text As String
Private Screen3Line4 As String
Private Screen3Line4Text As String
Private Screen3Enabled As String
Private Screen3DisplayLength As String

Private Screen4Line1 As String
Private Screen4Line1Text As String
Private Screen4Line2 As String
Private Screen4Line2Text As String
Private Screen4Line3 As String
Private Screen4Line3Text As String
Private Screen4Line4 As String
Private Screen4Line4Text As String
Private Screen4Enabled As String
Private Screen4DisplayLength As String

Private Sub btnAbout_Click()
    frmSettings.Hide
    frmAbout.Show
End Sub

Private Sub btnConnect_Click()
    If vfdCom.PortOpen = False Then
        vfdConnect
        btnConnect.Caption = "Disconnect"
        cmdStartStop.Enabled = True
        sldBrightness.Enabled = True
    Else
        vfdCom.PortOpen = False
        btnConnect.Caption = "Connect"
        cmdStartStop.Enabled = False
        sldBrightness.Enabled = False
    End If
End Sub

Private Sub btnOpen_Click()
    comdlg.InitDir = App.Path
    comdlg.Filter = "*.m3u"
    comdlg.ShowOpen
    txtPlaylist.Text = comdlg.Filename
End Sub

Private Sub btnSave_Click()
    SaveSettings
End Sub

Private Sub btnScreen1_Click()
    frmSettings.Hide
    frmScreen.Screen = 1 'tells the screen configuration form what button was pressed
    ReadScreenSettings (1)
    frmScreen.Show
End Sub

Private Sub btnScreen2_Click()
    frmSettings.Hide
    frmScreen.Screen = 2 'tells the screen configuration form what button was pressed
    ReadScreenSettings (2)
    frmScreen.Show
End Sub

Private Sub btnScreen3_Click()
    frmSettings.Hide
    frmScreen.Screen = 3 'tells the screen configuration form what button was pressed
    ReadScreenSettings (3)
    frmScreen.Show
End Sub

Private Sub btnScreen4_Click()
    frmSettings.Hide
    frmScreen.Screen = 4 'tells the screen configuration form what button was pressed
    ReadScreenSettings (4)
    frmScreen.Show
End Sub

Private Sub btnScreen5_Click()
    frmSettings.Hide
    frmScreen.Screen = 5 'tells the screen configuration form what button was pressed
    ReadScreenSettings (5)
    frmScreen.Show
End Sub

Private Sub btnStartScreen_Click()
    frmSettings.Hide
    frmScreen.Screen = 0 'tells the screen configuration form what button was pressed
    ReadScreenSettings (0)
    frmScreen.Show
End Sub

Private Sub chkConnect_Click()
    If chkConnect.Value = 1 Then
        chkStartScreen.Enabled = True
    Else
        chkStartScreen.Enabled = False
    End If
End Sub

Private Sub chkLoadPlaylist_Click()
    If chkLoadPlaylist.Value = 1 Then
        btnOpen.Enabled = True
    Else
        btnOpen.Enabled = False
    End If
End Sub

Private Sub chkWinampLoad_Click()
    If chkWinampLoad.Value = 1 Then
        chkAutoPlay.Enabled = True
        chkLoadPlaylist.Enabled = True
    Else
        chkAutoPlay.Enabled = False
        chkLoadPlaylist.Enabled = False
    End If
End Sub

Private Sub cmdStartStop_Click()
    If cmdStartStop.Caption = "Sta&rt" Then
        CheckDisplayTimes 'Init ScreenTime
        CurrentScreen = 1 'Sets the screen to 4 sence no one knows
        If vfdCom.PortOpen = True Then
            
            '************************************
            'vfdCom.Output = Chr$(12) 'Clear VFD
            Call VfdComSendMsg(Chr$(12))
            '************************************
            
            tmrUpdate.Enabled = True
            tmrDisplay.Enabled = True
            tmrWinamp.Enabled = True
            btnConnect.Enabled = False
            cmdStartStop.Caption = "S&top"
        End If
    Else
        '************************************
        'vfdCom.Output = Chr$(12)
        Call VfdComSendMsg(Chr$(12))
        '************************************
        
        tmrUpdate.Enabled = False
        tmrDisplay.Enabled = False
        tmrWinamp.Enabled = False
        btnConnect.Enabled = True
        cmdStartStop.Caption = "Sta&rt"
    End If
End Sub

Private Sub cmdTest_Click()
Dim strSendMsg As String

Dim a As String
a = Time
If vfdCom.PortOpen = True Then
    '************************************
    'vfdCom.Output = Chr$(12)
    'vfdCom.Output = Chr$(31) & Chr$(40) & Chr$(103) & Chr$(64) & Chr$(2) & Chr$(1)
    'vfdCom.Output = "12:12abcdef"
    'vfdCom.Output = Chr$(13)
    'vfdCom.Output = "12:12"
    'strSendMsg = Chr$(12) & Chr$(31) & Chr$(40) & Chr$(103) & Chr$(64) & Chr$(2) & Chr$(1) & "12:12abcdef" & Chr$(13) & "12:12"
    '************************************
    vfdCom.Output = Chr$(12) & "123456789012345"
End If
End Sub

Private Sub Form_Load()
    On Error Resume Next
    frmSettings.Height = 5805
    frmSettings.Width = 4380
    
    iniFile = App.Path & "\settings.ini" 'set the ini location to a var

    'Set the individual values of the NOTIFYICONDATA data type.
    nid.cbSize = Len(nid)
    nid.hWnd = frmSettings.hWnd
    nid.uId = vbNull
    nid.uFlags = NIF_ICON Or NIF_TIP Or NIF_MESSAGE
    nid.uCallBackMessage = WM_MOUSEMOVE
    nid.hIcon = frmSettings.Icon
    nid.szTip = "VFD7000" & vbNullChar
    
    Shell_NotifyIcon NIM_ADD, nid
    
    ItsThere = FileExists(iniFile)
    If ItsThere = False Then
        Open iniFile For Output As #1
        Print #1, "[VFD7000 Settings]"
        Print #1, "[Screen0]"
        Print #1, "[Screen1]"
        Print #1, "[Screen2]"
        Print #1, "[Screen3]"
        Print #1, "[Screen4]"
        Close #1
    Else
        ReadVFD7000Settings 'loads all the settings for the settings page
    End If
    
    If chkAutoHide.Value = 1 Then
        popHideShow_Click
    End If
    
    If chkConnect.Value = 1 Then 'Things to only do if it auto connects
        If vfdCom.PortOpen = False Then
            btnConnect_Click
            If chkStartScreen = 1 Then
                'add code to display start screen
            End If
        Else
            vfdCom.PortOpen = False
        End If
    Else
        chkStartScreen.Value = 0
        chkStartScreen.Enabled = False
    End If
    
    If chkWinampLoad.Value = 1 Then 'Things to only do if winamp is auto loaded
        WinAMP_Start
        If chkLoadPlaylist.Value = 1 Then
            WinAMP_FindWindow
            WinAMP_ClearPlaylist
            WinAMP_OpenFile (txtPlaylist.Text)
        End If
        
        If chkAutoPlay.Value = 1 Then
            WinAMP_FindWindow
            WinAMP_SendCommandMessage (WA_PLAY)
        End If
    Else 'Things to do when winamp is not auto loaded
        chkLoadPlaylist.Value = 0
        chkLoadPlaylist.Enabled = False
        chkAutoPlay.Value = 0
        chkAutoPlay.Enabled = False
    End If
End Sub

Private Function FileExists(FullFileName As String) As Boolean
    On Error GoTo MakeF
    Open FullFileName For Input As #1
    Close #1
    FileExists = True
    Exit Function
MakeF:
    FileExists = False
End Function

Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
    Dim lngMsg As Long
    lngMsg = X / Screen.TwipsPerPixelX
                
    Select Case lngMsg
        Case WM_RBUTTONUP ' right button
            SetForegroundWindow Me.hWnd
            Call Me.PopupMenu(popMenu, , , , popStartStop)
        Case WM_LBUTTONUP
            popHideShow_Click
    End Select
End Sub

Private Sub Form_Unload(Cancel As Integer)
    btnSave_Click 'Makes sure all settings get saved when program is closed
    
    Unload frmScreen 'Make sure all other forms are unloaded or the program wont fully close
    Unload frmAbout
    Unload frmVariable
    Unload frmSettings
    
    Shell_NotifyIcon NIM_DELETE, nid 'Removes tray icon
End Sub

Private Sub popAbout_Click()
    btnAbout_Click
End Sub

Private Sub popExit_Click()
    Unload frmScreen
    Unload frmSettings
    Unload frmAbout
    Unload frmVariable
    End
End Sub

Private Sub popHideShow_Click()
    If popHideShow.Caption = "Hide" Then 'Hide stuff
        frmAbout.Hide
        frmScreen.Hide
        frmSettings.Hide
        frmVariable.Hide
        popHideShow.Caption = "Show"
    Else
        frmSettings.Show
        popHideShow.Caption = "Hide"
    End If
End Sub

Private Sub popStartStop_Click()
    If popStartStop.Caption = "Start" Then
        popStartStop.Caption = "Stop"
        'put code here to start the display timer
        tmrUpdate.Enabled = True
        tmrDisplay.Enabled = True
        tmrWinamp.Enabled = True
    Else
        popStartStop.Caption = "Start"
        'put code here to stop the display timer
        tmrUpdate.Enabled = False
        tmrDisplay.Enabled = False
        tmrWinamp.Enabled = False
    End If
End Sub

Private Sub sldBrightness_Change()
    Dim strSendMsg As String

    If vfdCom.PortOpen = True Then
        '************************************
        'vfdCom.Output = Chr$(31) & Chr$(88) & Chr$(sldBrightness.Value)
        strSendMsg = Chr$(31) & Chr$(88) & Chr$(sldBrightness.Value)
        Call VfdComSendMsg(strSendMsg)
        '************************************
    End If
End Sub

Private Sub ReadVFD7000Settings()
    On Error Resume Next
    chkConnect.Value = ReadINI("VFD7000 Settings", "AutoConnect", iniFile)
    chkStartScreen.Value = ReadINI("VFD7000 Settings", "StartScreen", iniFile)
    chkAutoHide.Value = ReadINI("VFD7000 Settings", "AutoHide", iniFile)
    sldBrightness.Value = ReadINI("VFD7000 Settings", "Brightness", iniFile)
    cmbCom.ListIndex = ReadINI("VFD7000 Settings", "COMport", iniFile)
    cmbSpeed.ListIndex = ReadINI("VFD7000 Settings", "COMspeed", iniFile)
    cmbHandshaking.ListIndex = ReadINI("VFD7000 Settings", "COMhandshaking", iniFile)
    chkDTR.Value = ReadINI("VFD7000 Settings", "DTR", iniFile)
    chkEof.Value = ReadINI("VFD7000 Settings", "EOF", iniFile)
    chkWinampLoad.Value = ReadINI("VFD7000 Settings", "LoadWinamp", iniFile)
    chkAutoPlay.Value = ReadINI("VFD7000 Settings", "AutoPlay", iniFile)
    chkLoadPlaylist.Value = ReadINI("VFD7000 Settings", "LoadPlaylist", iniFile)
    txtPlaylist.Text = ReadINI("VFD7000 Settings", "PlaylistLocation", iniFile)
End Sub

Private Sub ReadScreenSettings(Screen As Integer)
    On Error Resume Next
    frmScreen.txtLine1 = ReadINI("Screen" & Screen, "Line1Text", iniFile)
    frmScreen.txtLine2 = ReadINI("Screen" & Screen, "Line2Text", iniFile)
    frmScreen.txtLine3 = ReadINI("Screen" & Screen, "Line3Text", iniFile)
    frmScreen.txtLine4 = ReadINI("Screen" & Screen, "Line4Text", iniFile)
    frmScreen.chkBigText = ReadINI("Screen" & Screen, "BigText", iniFile)
    If ReadINI("Screen" & Screen, "ScreenTime" & Screen, iniFile) = 5 Then
        frmScreen.chkEnabled = 1
        frmScreen.cmbDisplayLength.ListIndex = 0
    ElseIf ReadINI("Screen" & Screen, "ScreenTime" & Screen, iniFile) = 10 Then
        frmScreen.chkEnabled = 1
        frmScreen.cmbDisplayLength.ListIndex = 1
    ElseIf ReadINI("Screen" & Screen, "ScreenTime" & Screen, iniFile) = 20 Then
        frmScreen.chkEnabled = 1
        frmScreen.cmbDisplayLength.ListIndex = 2
    ElseIf ReadINI("Screen" & Screen, "ScreenTime" & Screen, iniFile) = 30 Then
        frmScreen.chkEnabled = 1
        frmScreen.cmbDisplayLength.ListIndex = 3
    End If
End Sub

Private Sub SaveSettings()
    On Error Resume Next
    WriteINI "VFD7000 Settings", "AutoConnect", chkConnect.Value, iniFile
    WriteINI "VFD7000 Settings", "StartScreen", chkStartScreen.Value, iniFile
    WriteINI "VFD7000 Settings", "AutoHide", chkAutoHide.Value, iniFile
    WriteINI "VFD7000 Settings", "Brightness", sldBrightness.Value, iniFile
    WriteINI "VFD7000 Settings", "COMport", cmbCom.ListIndex, iniFile
    WriteINI "VFD7000 Settings", "COMspeed", cmbSpeed.ListIndex, iniFile
    WriteINI "VFD7000 Settings", "COMhandshaking", cmbHandshaking.ListIndex, iniFile
    WriteINI "VFD7000 Settings", "DTR", chkDTR.Value, iniFile
    WriteINI "VFD7000 Settings", "EOF", chkEof.Value, iniFile
    WriteINI "VFD7000 Settings", "LoadWinamp", chkWinampLoad.Value, iniFile
    WriteINI "VFD7000 Settings", "AutoPlay", chkAutoPlay.Value, iniFile
    WriteINI "VFD7000 Settings", "LoadPlaylist", chkLoadPlaylist.Value, iniFile
    WriteINI "VFD7000 Settings", "PlaylistLocation", txtPlaylist.Text, iniFile
End Sub

Private Sub tmrDisplay_Timer()
    If vfdCom.PortOpen = True Then 'Com port check
        CompileMessage
    End If
End Sub

Private Sub tmrUpdate_Timer()
    Dim Screen As Integer
    Screen = (CurrentScreen Mod 5) + 1

    While ScreenTime(Screen) = 0 And Screen <> CurrentScreen
        Screen = (Screen Mod 5) + 1
    Wend

    If Screen <> CurrentScreen Then
        CurrentScreen = Screen
        tmrUpdate.Interval = ScreenTime(Screen) * 1000
    End If
End Sub

Private Sub tmrWinamp_Timer()
    WinAMP_FindWindow
    Winamp_TrackPosition = WinAMP_GetTrackPosition()
    Winamp_TrackLength = WinAMP_GetTrackLength()
    Winamp_SongName = getWinampSong()
End Sub

Private Sub vfdConnect()
    'vfdCom.InputMode = comInputModeBinary
    'Com Port Check
    If cmbCom.Text = "Com1" Then
        vfdCom.CommPort = 1
    ElseIf cmbCom.Text = "Com2" Then
        vfdCom.CommPort = 2
    ElseIf cmbCom.Text = "Com3" Then
        vfdCom.CommPort = 3
    ElseIf cmbCom.Text = "Com4" Then
        vfdCom.CommPort = 4
    End If
    
    'Handshaking Check
    If cmbHandshaking.Text = "None" Then
        vfdCom.Handshaking = comNone
    ElseIf cmbHandshaking.Text = "XOn XOff" Then
        vfdCom.Handshaking = comXOnXoff
    ElseIf cmbHandshaking.Text = "RTS" Then
        vfdCom.Handshaking = comRTS
    ElseIf cmbHandshaking.Text = "RTS XOn XOff" Then
        vfdCom.Handshaking = comRTSXOnXOff
    End If
    
    'DTR Check
    If chkDTR.Value = 1 Then
        vfdCom.DTREnable = True
    Else
        vfdCom.DTREnable = False
    End If
    
    'EOF check
    If chkEof.Value = 1 Then
        vfdCom.EOFEnable = True
    Else
        vfdCom.EOFEnable = False
    End If
    
    'Com Settings
    vfdCom.Settings = cmbSpeed.Text + "n,8,1"
    
    vfdCom.PortOpen = True
End Sub

Private Sub CheckDisplayTimes()
    ScreenTime(1) = ReadINI("Screen1", "ScreenTime1", iniFile)
    ScreenTime(2) = ReadINI("Screen2", "ScreenTime2", iniFile)
    ScreenTime(3) = ReadINI("Screen3", "ScreenTime3", iniFile)
    ScreenTime(4) = ReadINI("Screen4", "ScreenTime4", iniFile)
    ScreenTime(5) = ReadINI("Screen5", "ScreenTime5", iniFile)
End Sub

Private Sub SendMessage(Msg As String, maxlength As Integer)
    Dim strSendMsg As String
    
    DoEvents
    
    If maxlength = 10 Then 'big text is on
        'vfdCom.Output = Chr$(31) & Chr$(40) & Chr$(103) & Chr$(64) & Chr$(2) & Chr$(1)
        'strSendMsg = Chr$(31) & Chr$(40) & Chr$(103) & Chr$(64) & Chr$(2) & Chr$(1)
        'Call VfdComSendMsg(strSendMsg)
        'Sleep 50
    Else
        'vfdCom.Output = Chr$(31) & Chr$(40) & Chr$(103) & Chr$(64) & Chr$(1) & Chr$(1)
        'strSendMsg = Chr$(31) & Chr$(40) & Chr$(103) & Chr$(64) & Chr$(1) & Chr$(1)
        'Call VfdComSendMsg(strSendMsg)
        'Sleep 50
    End If
    
    'strSendMsg = strSendMsg & Msg
    
    If Len(Msg) < 20 Then
        Msg = Msg & Chr$(10) & Chr$(13)
    Else
        Msg = Msg & Chr$(13)
    End If
    
    Call VfdComSendMsg(Msg)
End Sub

Function DrawBar() As String
    Dim Bar As String
    Dim i As Integer
    Dim pos As Integer
    
    Bar = ":------------------:"
    pos = CalcPos

    If pos = "-1" Then
        DrawBar = Bar
    Else
        Mid(Bar, pos, 1) = ">"
    End If
    
    DrawBar = Bar
End Function

Function CalcPos() As Integer
    If Winamp_TrackLength <= "0" Then
        CalcPos = "-1"
    Else
        CalcPos = (Winamp_TrackPosition \ (Winamp_TrackLength \ 17)) + 2 'calc the pos and return an integer between 2 and 18
    End If
End Function

Public Sub CompileMessage()
    Dim LineText As String
    Dim TheScreen As String
    Dim TP As Long
    Dim TL As Long
    Dim tempStr As String
    
    TP = Winamp_TrackPosition
    TL = Winamp_TrackLength
    
    TheScreen = "Screen" & CurrentScreen
    
    If ReadINI(TheScreen, "ScreenTime" & CurrentScreen, iniFile) <> 0 Then 'Screen enabled check
        For i = 1 To 4 'Number of lines
            DoEvents
            
            LineText = ReadINI(TheScreen, "Line" & i & "Text", iniFile)
            
            LineText = Replace(LineText, "%time", Time)
            LineText = Replace(LineText, "%date", Format(Date, "mm/dd/yy"))
            LineText = Replace(LineText, "%songname", Winamp_SongName)
            LineText = Replace(LineText, "%trackpos", HHMMSS(TP))
            LineText = Replace(LineText, "%tracklen", HHMMSS(TP))
            LineText = Replace(LineText, "%seekbar", DrawBar)
            LineText = Replace(LineText, "%totalmem", TotalPhysMem \ 2 ^ 20)
            LineText = Replace(LineText, "%freemem", AvailPhysMem \ 2 ^ 20)
            LineText = Replace(LineText, "%uptime", Uptime)
            
            If ReadINI(TheScreen, "BigText", iniFile) = True Then
                For X = 1 To 10 'Number of letters to pass along
                    tempStr = tempStr & Mid(LineText, X, 1)
                Next X
                SendMessage tempStr, 10 'If bigfont is selected
                tempStr = ""
            Else
                For X = 1 To 20 'Number of letters to pass along
                    tempStr = tempStr & Mid(LineText, X, 1)
                Next X
                SendMessage tempStr, 20
                tempStr = ""
            End If
        Next
    End If
End Sub


Private Sub VfdComSendMsg(Msg As String)
    Dim lngLen As Long
    Dim X As Long
    
    Dim strTemp As String
    
    lngLen = Len(Msg)
    
    'For X = 1 To lngLen
    '    strTemp = Mid(Msg, X, 1)
    '    vfdCom.Output = strTemp
    '    Sleep 1
    'Next X
    
    strTemp = Mid(Msg, 1, 15)
    vfdCom.Output = strTemp
    Sleep 100
    If Len(Msg) > 15 Then
        strTemp = Mid(Msg, 16, Len(Msg))
        vfdCom.Output = strTemp
        Sleep 1
    End If
End Sub
