lorenkinzel Posted October 31, 2012 Share Posted October 31, 2012 I've put together a media player (because we REALLY needed another one) that has a button to hide the bulk of the GUI. When playing for about 10 minutes the pause & stop buttons un-hide. Windows xp sp3, AutoIt 3381. Not that big a bother , but quite the puzzle. Any clues? Thanks for any help. LK expandcollapse popup#cs ---------------------------------------------------------------------------- If you think you see a line or function that you wrote in this script; you are probably right. #ce ---------------------------------------------------------------------------- #region ;**** Directives created by AutoIt3Wrapper_GUI **** #AutoIt3Wrapper_Icon=Z.ico #AutoIt3Wrapper_Res_Comment=Minimalistic media player #AutoIt3Wrapper_Res_Description=Minimalistic media player #AutoIt3Wrapper_Res_Fileversion=1.1.1.0 #AutoIt3Wrapper_Res_LegalCopyright=none required for a media player #AutoIt3Wrapper_Res_Language=1033 #AutoIt3Wrapper_Res_requestedExecutionLevel=asInvoker #AutoIt3Wrapper_Run_Tidy=y #endregion ;**** Directives created by AutoIt3Wrapper_GUI **** #include <SliderConstants.au3> #include <ListBoxConstants.au3> #include <ButtonConstants.au3> #include <GUIConstantSex.au3> #include <StaticConstants.au3> #include <WindowsConstants.au3> #include <WinAPI.au3> #include <Sound.Au3> #include <GuiListBox.au3> #include <String.au3> #include <Constants.au3> #include <File.au3> Opt("GUIOnEventMode", 1) Global $L = 0, $Data, $C, $progress, $songList $eckks = @DesktopWidth - 460 $why = (@DesktopHeight * .955) - 155 $theGui = GUICreate("", 450, 120, $eckks, $why, $WS_POPUP, $WS_EX_TOOLWINDOW) GUISetOnEvent($GUI_EVENT_PRIMARYDOWN, "move_it") Func move_it() _SendMessage($theGui, $WM_SYSCOMMAND, 0xF012, 0) EndFunc ;==>move_it GUISetOnEvent($GUI_EVENT_CLOSE, "xIt") GUISetBkColor(0xABCDEF);(0xffffff)while messing with gui. Else, (0xABCDEF) GUISetStyle($WS_POPUP, $WS_EX_LAYERED, $theGui) _WinAPI_SetLayeredWindowAttributes($theGui, 0xABCDEF, 255) $mover = GUICtrlCreateLabel("", 170, 33, 80, 18);Allows xp users to re-locate the gui. Does not seem to be needed in win7 GUICtrlSetBkColor($mover, 0xc9c0c4) GUICtrlSetTip($mover, "hold here to move") $searchButton = GUICtrlCreateButton("search", 1, 31, 40, 25) GUICtrlSetOnEvent($searchButton, "find") GUICtrlSetTip($searchButton, "browse for singles") $theOneYouPicked = GUICtrlCreateLabel("", 2, 66, 420, 30) $tempProg = GUICtrlCreateLabel("", 2, 98, 35, 20) GUICtrlSetColor($tempProg, 0xffffff) $playButton = GUICtrlCreateButton("play", 380, 31, 40, 25) GUICtrlSetOnEvent($playButton, "playSingle") $xIt = GUICtrlCreateButton("X", 430, 1, 15, 15) GUICtrlSetOnEvent($xIt, "xIt") GUICtrlSetBkColor($xIt, 0xff0000) GUICtrlSetTip($xIt, "shut this thing off") $hideButton = GUICtrlCreateButton("", 430, 17, 15, 15);>>>>>>>>>>>>>hide the buttons GUICtrlSetOnEvent($hideButton, "_hide") GUICtrlSetBkColor($hideButton, 0x00ff00) GUICtrlSetTip($hideButton, "hide buttons") $showButton = GUICtrlCreateButton("", 430, 32, 15, 15) GUICtrlSetOnEvent($showButton, "_show") GUICtrlSetBkColor($showButton, 0xaa00aa) GUICtrlSetTip($showButton, "show the buttons") $pauseButton = GUICtrlCreateButton("pause", 330, 31, 40, 25);>>>>>>>>>>>>>>>>>>>>>>>>>>>>Doesn't stay hidden. Re-appears while in use GUICtrlSetOnEvent($pauseButton, "pause") GUICtrlSetState($pauseButton, $GUI_HIDE) $stopButton = GUICtrlCreateButton("stop", 280, 31, 40, 25);>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>Doesn't stay hidden. Re-appears while in use GUICtrlSetOnEvent($stopButton, "stopButton") GUICtrlSetState($stopButton, $GUI_HIDE) $playListButton = GUICtrlCreateButton("playlist", 56, 31, 40, 25) GUICtrlSetOnEvent($playListButton, "showPlaylist") $hSlider = GUICtrlCreateSlider(1, 1, 420, 18, BitOR($TBS_TOOLTIPS, $TBS_AUTOTICKS)) GUICtrlSetOnEvent($hSlider, "doTheVol") GUICtrlSetBkColor(-1, 0xABCDEF) GUICtrlSetData($hSlider, 50) GUICtrlSetLimit($hSlider, 100, 0) $i_r_Dummy = GUICtrlCreateLabel("", 110, 98, 35, 20); ref to my inability to figure out dummy controls GUICtrlSetColor($i_r_Dummy, 0xffffff) $i_r_Dummy2 = GUICtrlCreateLabel("", 50, 98, 35, 20) GUICtrlSetColor($i_r_Dummy2, 0xffffff) GUISetState(@SW_SHOW) ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>second GUI $gui2 = GUICreate("xyz", 280, 655, $eckks, $why - 351, $WS_POPUP, $WS_EX_TOOLWINDOW, $theGui) GUISetOnEvent($GUI_EVENT_PRIMARYDOWN, "move_it2") GUISetBkColor(0xABCDEF);(0xABCDEF) GUISetStyle($WS_POPUP, $WS_EX_LAYERED + $WS_EX_COMPOSITED, $gui2) _WinAPI_SetLayeredWindowAttributes($gui2, 0xABCDEF, 255) Func move_it2() _SendMessage($gui2, $WM_SYSCOMMAND, 0xF012, 0) EndFunc ;==>move_it2 $ecksIt = GUICtrlCreateButton("X", 184, 1, 15, 15) GUICtrlSetOnEvent($ecksIt, "ecksIt") GUICtrlSetBkColor($ecksIt, 0xff0000) GUICtrlSetTip($ecksIt, "hide list") $sourceButton = GUICtrlCreateButton("", 184, 17, 15, 8) GUICtrlSetOnEvent($sourceButton, "install") GUICtrlSetBkColor($sourceButton, 0x550055) GUICtrlSetTip($sourceButton, "show source - leave a source .au3 at script directory") $nuSong = GUICtrlCreateButton("new song", 1, 1, 55, 23) GUICtrlSetTip($nuSong, "push the blue button to confirm" & @CRLF & "when you're done adding songs") GUICtrlSetOnEvent($nuSong, "nuSong") $dee_leetSong = GUICtrlCreateButton("delete song", 60, 1, 60, 23) GUICtrlSetOnEvent($dee_leetSong, "_Delete") $playAll = GUICtrlCreateButton("play all", 125, 1, 55, 23) GUICtrlSetOnEvent($playAll, "getLineCount") GUICtrlSetTip($playAll, "play the whole list") $songList = GUICtrlCreateList("", 1, 55, 200, 278, BitOR($LBS_DISABLENOSCROLL, $GUI_WS_EX_PARENTDRAG, $LBS_STANDARD)) _list() $shufflePlay = GUICtrlCreateButton("play shuffle", 60, 28, 60, 25) GUICtrlSetOnEvent($shufflePlay, "getLineCountShuff") $playSelection = GUICtrlCreateButton("play selection", 125, 28, 70, 25) GUICtrlSetOnEvent($playSelection, "playSelectionButton") $reFresh = GUICtrlCreateButton("< >", 1, 31, 20, 20);_restart(); A less-than-sophisticated method (my use, not the function) GUICtrlSetOnEvent($reFresh, "_restart") GUICtrlSetBkColor($reFresh, 0x0000bb) GUICtrlSetTip($reFresh, "set / refresh list" & @CRLF & "& fix little errors" & @CRLF & "(restart the list)") $mover2 = GUICtrlCreateLabel("", 22, 30, 35, 22) GUICtrlSetBkColor($mover2, 0xc9c0c4) GUICtrlSetTip($mover2, "hold here to move") GUISetState(@SW_HIDE) _ReduceMemory();because I like the functions' effect. The angels are on their own (ref: monoceres). While 1 Sleep(10) WEnd ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>GUI 1 funcs Func find() $findtheFile = FileOpenDialog("find the s--t", "", "All Tune-type stuff (*.wav;*.avi;*.mp3;*.wma;*.ogg)|All Files (*.*)", 12) GUICtrlSetData($theOneYouPicked, $findtheFile) GUICtrlSetColor($theOneYouPicked, 0x5438ff) GUICtrlSetBkColor($theOneYouPicked, 0xff7799) EndFunc ;==>find Func playSingle() $readIt = GUICtrlRead($theOneYouPicked) _SoundOpen($readIt) _SoundPlay($readIt) AdlibRegister("_progress", 1000) GUICtrlSetBkColor($theOneYouPicked, 0x5438ff) GUICtrlSetColor($theOneYouPicked, 0xff7799) _showPauseStop() EndFunc ;==>playSingle Func pause() $readIt = GUICtrlRead($theOneYouPicked) _SoundPause($readIt) AdlibUnRegister("_progress") EndFunc ;==>pause Func stopButton() _stop() _hidePauseStop() _ReduceMemory() GUICtrlSetData($tempProg, "") EndFunc ;==>stopButton Func showPlaylist() GUISetState(@SW_SHOW, $gui2) Sleep(10) AdlibRegister("getThePos") EndFunc ;==>showPlaylist Func _showPauseStop() GUICtrlSetState($pauseButton, $GUI_SHOW) GUICtrlSetState($stopButton, $GUI_SHOW) EndFunc ;==>_showPauseStop Func _hidePauseStop() GUICtrlSetState($pauseButton, $GUI_HIDE) GUICtrlSetState($stopButton, $GUI_HIDE) EndFunc ;==>_hidePauseStop Func _stop() $readIt = GUICtrlRead($theOneYouPicked) _SoundStop($readIt) _SoundClose($readIt) GUICtrlSetData($theOneYouPicked, "") GUICtrlSetBkColor($theOneYouPicked, -1) AdlibUnRegister("_progress") AdlibUnRegister("_progress2") AdlibUnRegister("_progress2Shuff") GUICtrlSetData($tempProg, "") GUICtrlSetData($i_r_Dummy, "") GUICtrlSetData($i_r_Dummy2, "") GUICtrlSetState($shufflePlay, $GUI_ENABLE) GUICtrlSetState($playAll, $GUI_ENABLE) Sleep(100) EndFunc ;==>_stop Func _hide();>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>function in question GUICtrlSetState($searchButton, $GUI_HIDE) GUICtrlSetState($theOneYouPicked, $GUI_HIDE) GUICtrlSetState($playButton, $GUI_HIDE) GUICtrlSetState($showButton, $GUI_SHOW) GUICtrlSetState($pauseButton, $GUI_HIDE) GUICtrlSetState($stopButton, $GUI_HIDE) GUICtrlSetState($playListButton, $GUI_HIDE) GUICtrlSetState($hSlider, $GUI_HIDE) GUICtrlSetState($tempProg, $GUI_HIDE) GUICtrlSetState($i_r_Dummy, $GUI_HIDE) GUICtrlSetState($i_r_Dummy2, $GUI_HIDE) GUICtrlSetState($mover, $GUI_HIDE) EndFunc ;==>_hide Func _show() GUICtrlSetState($searchButton, $GUI_SHOW) GUICtrlSetState($theOneYouPicked, $GUI_SHOW) GUICtrlSetState($playButton, $GUI_SHOW) GUICtrlSetState($pauseButton, $GUI_SHOW) GUICtrlSetState($stopButton, $GUI_SHOW) GUICtrlSetState($playListButton, $GUI_SHOW) GUICtrlSetState($hSlider, $GUI_SHOW) GUICtrlSetState($tempProg, $GUI_SHOW) GUICtrlSetState($i_r_Dummy, $GUI_SHOW) GUICtrlSetState($i_r_Dummy2, $GUI_SHOW) GUICtrlSetState($mover, $GUI_SHOW) EndFunc ;==>_show Func playAll() Sleep(80) $readIt = GUICtrlRead($theOneYouPicked) GUICtrlSetBkColor($theOneYouPicked, 0x5438ff) GUICtrlSetColor($theOneYouPicked, 0xff7799) If $readIt = "[Section1]" Then getLineCount() EndIf _SoundOpen($readIt) _SoundPlay($readIt) AdlibRegister("_progress2", 750) EndFunc ;==>playAll Func xIt() Exit EndFunc ;==>xIt Func _progress2() $readIt = GUICtrlRead($theOneYouPicked) $length = _SoundLength($readIt, 2) $currentPos = _SoundPos($readIt, 2) $progressNum = Round(($currentPos / $length) * 100, 0) $progress = $progressNum & " %" GUICtrlSetData($tempProg, $progress) If $progress = 100 Then AdlibUnRegister("_progress2") getLineCount() EndIf EndFunc ;==>_progress2 ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>begin Rube Goldberg section Func chill() GUICtrlSetState($playAll, $GUI_ENABLE) Sleep(10) EndFunc ;==>chill Func getLineCount() _showPauseStop() GUICtrlSetState($playAll, $GUI_DISABLE) $count = _FileCountLines(@ScriptDir & "\songList.ini") GUICtrlSetData($i_r_Dummy, $count) changeCount() EndFunc ;==>getLineCount Func changeCount() Sleep(80) $count = GUICtrlRead($i_r_Dummy) $currentCount = GUICtrlRead($i_r_Dummy2) GUICtrlSetData($i_r_Dummy2, $currentCount + 1) $getTheCount = GUICtrlRead($i_r_Dummy2) If $getTheCount > $count Then AdlibUnRegister("_progress2") GUICtrlSetData($i_r_Dummy, "") GUICtrlSetData($i_r_Dummy2, "") Chill() Else useTheCount() EndIf EndFunc ;==>changeCount Func useTheCount() Sleep(80) $inny = (@ScriptDir & "\songList.ini") $getTheCount = GUICtrlRead($i_r_Dummy2) $nextLine = FileReadLine($inny, $getTheCount) GUICtrlSetData($theOneYouPicked, $nextLine) playAll() EndFunc ;==>useTheCount ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>GUI 2 funcs Func ecksIt() GUISetState(@SW_HIDE, $gui2) AdlibUnRegister("getThePos") EndFunc ;==>ecksIt Func playSelectionButton() playSel() EndFunc ;==>playSelectionButton Func playSel() If FileExists("songList.ini") = 0 Then Return @error $Read = GUICtrlRead($songList) If $Read = "" Then Return @error $Read = StringSplit($Read, ")") $Line = StringReplace(StringReplace($Read[1], "#", ""), ".", "") If StringLeft($Line, 1) = 0 Then $Line = StringTrimLeft($Line, 1) $Song = FileReadLine("songList.ini", $Line) GUICtrlSetData($theOneYouPicked, $Song) $readIt = GUICtrlRead($theOneYouPicked) _SoundOpen($readIt) _SoundPlay($readIt) GUICtrlSetBkColor($theOneYouPicked, 0x5438ff) GUICtrlSetColor($theOneYouPicked, 0xff7799) AdlibRegister("_progress", 1000) _showPauseStop() EndFunc ;==>playSel Func nuSong() $Opened_File = FileOpenDialog("Open Music File", "", "All Music Files (*.wav;*.avi;*.mp3;*.wma)|All Files (*.*)", 12) GUICtrlSetData($songList, $Opened_File) IniWriteSection(@ScriptDir & "\songList.ini", "Section1", $Opened_File) EndFunc ;==>nuSong Func _list() If FileExists(@ScriptDir & "\songList.ini") = 1 Then; from Func _List (); S.M.P. v1.0 - By : John O.;>>>begin John O. section $CountLines = _FileCountLines(@ScriptDir & "\songList.ini") For $A = 1 To $CountLines $Read = FileReadLine(@ScriptDir & "\songList.ini", $A) $Read = StringSplit($Read, '\') $Read = FileGetShortName($Read[$Read[0]]) If $A < 10 Then $C = 0 & $A Else $C = $A EndIf $Data = $Data & "#" & $C & '.) ' & $Read & '|' Next $Data = StringTrimRight($Data, 1) GUICtrlSetData($songList, "") GUICtrlSetData($songList, $Data) _GUICtrlListBox_UpdateHScroll($songList) EndIf EndFunc ;==>_list Func _Delete() If FileExists("songList.ini") = 0 Then Return @error $Read = GUICtrlRead($songList) If $Read = "" Then Return @error $Read = StringSplit($Read, ")") $Line = StringReplace(StringReplace($Read[1], "#", ""), ".", "") If StringLeft($Line, 1) = 0 Then $Line = StringTrimLeft($Line, 1) $Msg = MsgBox(4, 'Dé lé té?', 'Are you sure you want to delete song #' & $Line & '?') If $Msg == 6 Then _Remove_Line($Line) EndFunc ;==>_Delete Func _Remove_Line($iLine) Local $Temp = @TempDir & '\Temp.txt' $count = _FileCountLines("songList.ini") If $count = 1 And $iLine = 1 Then FileDelete("songList.ini") GUICtrlSetData($songList, "") GUICtrlSetData($songList, "") Return @error EndIf For $A = 1 To $count If $A <> $iLine Then FileWriteLine($Temp, FileReadLine("songList.ini", $A)) Next FileCopy($Temp, @ScriptDir & "\songList.ini", 1) FileDelete($Temp);>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>end John O. section Sleep(250) _restart() EndFunc ;==>_Remove_Line Func getThePos() $CI = GUIGetCursorInfo($gui2) If $CI[4] = $songList Then getBig() Else reShrink() EndIf EndFunc ;==>getThePos Func getBig() ;MsgBox(0, "", "it works") ControlMove("", "", $songList, Default, Default, 279, 600) EndFunc ;==>getBig Func reShrink() ControlMove("", "", $songList, Default, Default, 200, 278) EndFunc ;==>reShrink Func _ReduceMemory($i_PID = -1);>>>>>others, perhaps many, definitely not mine. If $i_PID <> -1 Then Local $ai_Handle = DllCall("kernel32.dll", 'int', 'OpenProcess', 'int', 0x1f0fff, 'int', False, 'int', $i_PID) $ai_Return = DllCall("psapi.dll", 'int', 'EmptyWorkingSet', 'long', $ai_Handle[0]) DllCall('kernel32.dll', 'int', 'CloseHandle', 'int', $ai_Handle[0]) Else $ai_Return = DllCall("psapi.dll", 'int', 'EmptyWorkingSet', 'long', -1) EndIf Return $ai_Return[0] EndFunc ;==>_ReduceMemory Func _restart();>>>>>>>>>>>>>>>>>>>>>>>from forums AZJIO (I think) Local $sAutoIt_File = @TempDir & "\~Au3_ScriptRestart_TempFile.au3" Local $sRunLine, $sScript_Content, $hFile $sRunLine = @ScriptFullPath If Not @Compiled Then $sRunLine = @AutoItExe & ' /AutoIt3ExecuteScript ""' & $sRunLine & '""' If $CmdLine[0] > 0 Then $sRunLine &= ' ' & $CmdLineRaw $sScript_Content &= '#NoTrayIcon' & @CRLF & _ 'While ProcessExists(' & @AutoItPID & ')' & @CRLF & _ ' Sleep(10)' & @CRLF & _ 'WEnd' & @CRLF & _ 'Run("' & $sRunLine & '")' & @CRLF & _ 'FileDelete(@ScriptFullPath)' & @CRLF $hFile = FileOpen($sAutoIt_File, 2) FileWrite($hFile, $sScript_Content) FileClose($hFile) Run(@AutoItExe & ' /AutoIt3ExecuteScript "' & $sAutoIt_File & '"', @ScriptDir, @SW_HIDE) Sleep(1000) Exit EndFunc ;==>_restart Func _progress() $readIt = GUICtrlRead($theOneYouPicked) $length = _SoundLength($readIt, 2) $currentPos = _SoundPos($readIt, 2) $progressNum = Round(($currentPos / $length) * 100, 0) $progress = $progressNum & " %" GUICtrlSetData($tempProg, $progress) If $progressNum = 100 Then AdlibUnRegister("_progress") GUICtrlSetData($tempProg, "") EndIf EndFunc ;==>_progress Func doTheVol() SoundSetWaveVolume(GUICtrlRead($hSlider)) EndFunc ;==>doTheVol ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>shuffle-play section Func getLineCountShuff() GUICtrlSetState($shufflePlay, $GUI_DISABLE) _showPauseStop() $count = _FileCountLines(@ScriptDir & "\songList.ini") GUICtrlSetData($i_r_Dummy, $count) changeCountShuff() EndFunc ;==>getLineCountShuff Func changeCountShuff() $count = GUICtrlRead($i_r_Dummy); ini line count $currentCount = GUICtrlRead($i_r_Dummy2) $shuffNum = Random(2, $count, 1) GUICtrlSetData($i_r_Dummy2, $shuffNum) $getTheCount = GUICtrlRead($i_r_Dummy2) If $getTheCount > $count Then AdlibUnRegister("_progress2Shuff") GUICtrlSetData($i_r_Dummy, "") GUICtrlSetData($i_r_Dummy2, "") Chill() Else useTheCountShuff() EndIf EndFunc ;==>changeCountShuff Func useTheCountShuff() $inny = (@ScriptDir & "\songList.ini") $getTheCount = GUICtrlRead($i_r_Dummy2) $nextLine = FileReadLine($inny, $getTheCount) GUICtrlSetData($theOneYouPicked, $nextLine) playAllShuff() EndFunc ;==>useTheCountShuff Func playAllShuff() $readIt = GUICtrlRead($theOneYouPicked) $readProg = GUICtrlRead($tempProg) GUICtrlSetBkColor($theOneYouPicked, 0x5438ff) GUICtrlSetColor($theOneYouPicked, 0xff7799) If $readIt = "[Section1]" Then getLineCountShuff() EndIf _SoundOpen($readIt) _SoundPlay($readIt) AdlibRegister("_progress2Shuff", 750) EndFunc ;==>playAllShuff Func _progress2Shuff() $readIt = GUICtrlRead($theOneYouPicked) $length = _SoundLength($readIt, 2) $currentPos = _SoundPos($readIt, 2) $progressNum = Round(($currentPos / $length) * 100, 0) $progress = $progressNum & " %" GUICtrlSetData($tempProg, $progress) If $progress = 100 Then;set at 10 for testing so you don't have to wait all day _SoundStop($readIt) _SoundClose($readIt) AdlibUnRegister("_progress2Shuff") GUICtrlSetData($tempProg, "") getLineCountShuff() EndIf EndFunc ;==>_progress2Shuff Func install() ; this is a literal filepath & must be changed to where your script is located FileInstall("Q:\au3 projects\Z_player\level8\Z_player.au3", @ScriptDir & "\Z_player.au3");check path>>fix EndFunc ;==>install Link to comment Share on other sites More sharing options...
lorenkinzel Posted October 31, 2012 Author Share Posted October 31, 2012 O.K. consider me the fool. I built the function into the script. I simply forgot about it in the time that passed before I added the 'hide' button. Func getLineCount() _showPauseStop() Kinda describes the issue? I will get over the humiliation eventually....... Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now