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