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