All pastes #1875030 Raw Edit

lcd driver form1

public text v1 · immutable
#1875030 ·published 2010-05-31 20:34 UTC
rendered paste body


Const mHello = 1
Const mTime = 2
Const mCPUinfo = 3
Const mMOTD = 4
Const mWinamp1 = 5
Const mWinamp2 = 6
Const mCustom = 7
Const mProgDetected = 8
Const mVIS = 9
Const mProg = 10
Const mWaiting = 11

Dim concounter As Integer

Public mode As Integer
Public next_mode As Integer

Dim usg As Integer



Private Sub beepdelay_Timer()
    set_sound 0
    With beepdelay
        .Interval = 0
        .Enabled = False
    End With
End Sub

Private Sub concheck_Timer()
concounter = concounter + 1
If concounter = 5 Then
    tray_baloon "Ekran został odłączony.", 2
    DoEvents
    mode = mWaiting
ElseIf concounter > 5 Then
    reboot
End If
End Sub

Private Sub Form_activate()
Me.Show
Me.Refresh
prev_wa_mode = False
mode = mCPUinfo

progman.init
CPUUsage.Initialize
Me.WindowState = 1

Dim i As Long, j As Long
If MSComm1.PortOpen = False Then
MSComm1.PortOpen = True
End If

reboot
Sleep 300
set_sound_level 255

progressbar 100
DoEvents

Sleep 300

SetBacklightA 1
stline "     [boot]", 20
set_sound 0
DoEvents
Sleep 300

SetBacklightA 255

ndline "cgram: " & Chr(8) & Chr(1) & Chr(2) & Chr(3) & Chr(4) & Chr(5) & Chr(6) & Chr(7), 20
Sleep 500


SetBacklightA 0
ResetLevels
Sleep 500
SetCGMode CG_ICONS1
Sleep 500
SetBacklightA 1

redrawer = True
chmode = True


End Sub


Private Sub Check1_Click()
If Check1 Then
    mode = mCustom
    chmode = False
Else
    mode = mHello
    chmode = True
End If
redraw
End Sub



Private Sub Form_Unload(Cancel As Integer)
LCDInterface.command US_REBOOT
DoEvents
Sleep 100
SetRate 255
DoEvents
MSComm1.PortOpen = False

End Sub


            

Private Sub chmode_Timer()
    
    If Form1.mAutoChange.Checked Then mode = next_mode
    redraw
    
End Sub



Private Sub HScroll1_Change()
    Dim hr As Single, fac As Single, hf As Single, mf As Single, mof As Single
    
    hf = Int(Mid(Time$, 1, 2))
    mf = Int(Mid(Time$, 4, 2)) / 60
    fac = hf + mf
    
    mof = 6 - Abs(6 - HScroll1) / 6 * 5
    
    
    hr = Abs(12 - fac) - mof - 2 '  -2 ~ 10
    If hr < 0 Then hr = 0
    If hr > 2 Then hr = 2
    hr = 50 + hr / 2 * 205
    
    Label1 = hr
   
   
End Sub

Private Sub mAutoChange_Click()
    mAutoChange.Checked = Not mAutoChange.Checked
    meMode.Enabled = Not mAutoChange.Checked
End Sub

Private Sub mBackEnable_Click()
    mBackEnable.Checked = Not mBackEnable.Checked
    mBacklight.Enabled = mBackEnable.Checked
End Sub

Private Sub mBacklight_Click()
    mBacklight.Checked = Not mBacklight.Checked
End Sub

Private Sub meMain_Click()
    mode = mHello
End Sub



Private Sub meReboot_Click()
    command 192
End Sub

Private Sub meTime_Click()
    mode = mTime
End Sub

Private Sub meCPU_Click()
    mode = mCPUinfo
End Sub

Private Sub meProgs_Click()
    mode = mProg
End Sub

Private Sub meVIS_Click()
    mode = mVIS
End Sub

Private Sub meWA_Click()
    mode = mWinamp1
End Sub

Private Sub meWA2_Click()
    mode = mWinamp2
End Sub

Private Sub mScroller_Click()
    mScroller.Checked = Not mScroller.Checked
    If mScroller.Checked Then
        scroller1.Interval = 500
        scroller2.Interval = 500
    Else
        scroller1.Interval = 0
        scroller2.Interval = 0
    End If
End Sub



Private Sub redrawer_Timer()
redraw
'If Hour(Time) > 20 Or Hour(Time) < 5 Then LCDInterface.SetBacklight 0 _
'Else LCDInterface.SetBacklight 0
End Sub
Sub draw_mcheckboxes()
    meMain.Checked = cmp(mode, mHello)
    meCPU.Checked = cmp(mode, mCPU)
    meProgs.Checked = cmp(mode, mProg)
    meTime.Checked = cmp(mode, mTime)
    meWA.Checked = cmp(mode, mWinamp1)
    meWA2.Checked = cmp(mode, mWinamp2)
    meVIS.Checked = cmp(mode, mVIS)
End Sub

Sub WinampCheckboxes(state As Boolean)
    meWA.Enabled = state
    meWA2.Enabled = state
    meVIS.Enabled = state
End Sub

Function cmp(var1, var2)
    If var1 = var2 Then cmp = True Else cmp = False
End Function

Private Sub redraw()
    Dim out As String, prog As Integer

    Dim hr As Single, fac As Single, hf As Single, mf As Single, mof As Single
    
    hf = Int(Mid(Time$, 1, 2))
    mf = Int(Mid(Time$, 4, 2)) / 60
    mof = (6 - Abs(6 - Int(Mid(Date$, 1, 2)))) * 0.85
    
    If mof > 5 Then mof = 5
    
    fac = hf + mf - mof
    
    
    
    hr = Abs(12 - fac) - mof + 2 '  -2 ~ 10
    If hr < 0 Then hr = 0
    If hr > 4 Then hr = 4
    hr = 50 + (205 - hr / 4 * 205)
    
    SetBacklightA CByte(hr)
   
   
    progman.DetectProgs
    
    If progman.detected Then
        next_mode = mHello
        mode = mProgDetected
    Else
        progman.detected_progid = pNone
    End If
    Label1 = GetVolume
    WinampCheckboxes IsPlaying()
    draw_mcheckboxes
    
    Select Case mode
        Case mHello:
            redrawer = 1
            redrawer.Interval = 1000
            
            stline "Witaj " & Get_User_Name & "."
            'ndline "bla bla bla... ciekawy tekst"
            Dim Uptime As TimeConv
            Uptime = SystemUptime
            ndline "Upt: " & numpad(Uptime.Hours) & "h " & numpad(Uptime.Minutes) & "m " & numpad(Uptime.Seconds) & "s"
            next_mode = mTime
            SetRate 64
        Case mTime:
            redrawer = 1
            redrawer.Interval = 1000
            SetRate 64
            stline Date$
            ndline Time$
            next_mode = mCPUinfo
    
        Case mCPUinfo:
            redrawer = 1
            redrawer.Interval = 500
            SetRate 32
            usg = CPUUsage.Query
            stline "CPU: " & dblnumpad(usg) & "%"
            progressbar usg
            'stline "CPU: " & Chr(3)
            'progsy = "Prog: "
            'If FindWinamp() Then progsy = progsy & Chr(2)
            'If IsPlaying() Then progsy = progsy & Chr(4)
            'ndline progsy & ProgIcons
            next_mode = mProg
        Case mProg:
            SetCGMode CG_ICONS1
            redrawer = 1
            redrawer.Interval = 1000
            SetRate 64
            stline "Programy:"
            ndline ProgIcons
            If IsPlaying() Then next_mode = mWinamp1 _
            Else next_mode = mHello
        Case mWinamp1:
            redrawer = 1
            redrawer.Interval = 250
            SetRate 16
            SetCGMode CG_ICONS1
            songnfo = Split(getWinampWindowText(), " - ", 2)
            
            
            If scroller1 = False Then _
                stline Chr(2) & songnfo(0)
            If scroller2 = False Then _
                ndline songnfo(1)
            
            If IsPlaying() = False Then mode = mHello
            next_mode = mWinamp2
        Case mWinamp2:
            Dim curmin, cursec, cur
            Dim allmin, allsec, all
            
            SetRate 64
            
            cur = Int(GetCurrentSongPosition() / 1000)
            cursec = cur Mod 60
            curmin = (cur - cursec) / 60
            
            all = GetSongLength()
            allsec = all Mod 60
            allmin = (all - allsec) / 60
            
            If IsPlaying() = False Then mode = mHello
            
            stline "[" & numpad(curmin) & ":" & numpad(cursec) & " / " & numpad(allmin) & ":" & numpad(allsec) & "]"
            progressbar cur / all * 100
            redrawer.Interval = 1000
            next_mode = mVIS
        Case mCustom:
            stline Text3
            ndline Text4
            SetRate 16
        Case mProgDetected:
            SetRate 8
            SetCGMode CG_ICONS1
            SetBacklightA CByte(0)
            Sleep 100
            beep 2000, 50
            beep 500, 100
            stline "  === Prog ==="
            
            For i = 1200 To hr / 3 Step -4
                If i > 255 Then i = 255
                SetBacklightA CByte(i)
                DoEvents
                Sleep 1
            Next i
            ndline Chr(progman.prog(progman.detected_progid).icon) & " " & progman.prog(progman.detected_progid).name, 100
            Sleep 700
            redrawer = True
            redrawer.Interval = 250
            chmode = True
            mode = mCPUinfo
            If progman.detected_progid = pPlaying Then mode = mWinamp2
        Case mVIS:
            redrawer = True
            redrawer.Interval = 50
            GetWALevels
            DrawVIS
            LowerLevels
            next_mode = mWinamp
            If IsPlaying() = False Then mode = mHello
            chmode = True
        Case mWaiting:
            redrawer = False
            chmode = False
        End Select
        'ndline hr & ", " & fac

End Sub


Private Sub Command1_Click()
mode = mWinamp1
End Sub

Private Sub Command2_Click()
mode = mHello
End Sub







Private Sub MSComm1_OnComm()
    On Error Resume Next
    
    Dim ins As String
    ins = MSComm1.input
    If InStr(ins, "p") Or InStr(ins, "REBOOT") Then
        If concounter >= 5 Then
            redrawer = True
            chmode = True
            mode = mCPUinfo
            tray_remove
            
            tray_baloon "Ekran podłączony", 1, 1000
            tray_show
        End If
        concounter = 0
    End If
    Text1 = Text1 & ins
End Sub



Private Sub scroller1_Timer()
    scroller1.Enabled = False
    stline Mid(line1, 2)
End Sub

Private Sub scroller2_Timer()
    scroller2.Enabled = False
    ndline Mid(line2, 2)
End Sub

Private Sub Text2_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
    MSComm1.Output = Text2.Text
    Text2 = ""
End If
End Sub



Private Sub Text3_KeyPress(KeyAscii As Integer)
If mode = mCustom Then stline Text3
End Sub


Private Sub Text4_KeyPress(KeyAscii As Integer)
If mode = mCustom Then ndline Text4
End Sub

'''' TRAY






Private Sub mPopExit_Click()
'called when user clicks the popup menu Exit command
Unload Me
End Sub

Private Sub mPopRestore_Click()
'called when the user clicks the popup menu Restore command
Dim Result As Long
Me.WindowState = vbNormal
Result = SetForegroundWindow(Me.hWnd)
tray_remove
Me.Show
End Sub


Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
'this procedure receives the callbacks from the System Tray icon.
      Dim Result As Long
Dim msg As Long
'the value of X will vary depending upon the scalemode setting
If Me.ScaleMode = vbPixels Then
msg = X
Else
msg = X / Screen.TwipsPerPixelX
End If
Select Case msg
Case WM_LBUTTONUP        '514 restore form window
Me.WindowState = vbNormal
Result = SetForegroundWindow(Me.hWnd)
Me.Show
'this removes the icon from the system tray
tray_remove

Case WM_LBUTTONDBLCLK    '515 restore form window
Me.WindowState = vbNormal
Result = SetForegroundWindow(Me.hWnd)
Me.Show
'this removes the icon from the system tray
tray_remove

Case WM_RBUTTONUP        '517 display popup menu
Result = SetForegroundWindow(Me.hWnd)
Me.PopupMenu Me.mPopupSys
End Select
      End Sub

Private Sub Form_Resize()
'this is necessary to assure that the minimized window is hidden
    If Me.WindowState = vbMinimized Then
        WinTray.init_trayicon Me.hWnd, Me.icon
        tray_show

        Me.Hide
    End If
End Sub



Function dblnumpad(num)
    If num < 100 Then dblnumpad = "0"
    If num < 10 Then dblnumpad = dblnumpad & "0"
    dblnumpad = dblnumpad & num
End Function



Function numpad(num)
    If num < 10 Then numpad = "0"
    numpad = numpad & num
End Function