Code : Tout sélectionner
#include <WinAPI.au3>
#include <Bass.au3>
#include <BASSCD.au3>
#include <GDIPlus.au3>
#include <Array.au3>
#include <GuiImageList.au3>
#include <ThumbBar.au3>
#include <GuiListView.au3>
#include <RegisterNotify_UDF.au3>
#include <JSound.au3>
#include <_GetFilesFolder_Rekursiv.au3>
#include <File.au3>
#include <GuiComboBox.au3>
#include <Inet.au3>
#include <Debug.au3>
#include <HTTP.au3>
#include <String.au3>
#include <WindowsConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <SliderConstants.au3>
#include <ListViewConstants.au3>
#include <ComboConstants.au3>
#include <EditConstants.au3>
#include <ButtonConstants.au3>
#include <BassConstants.au3>
#include <StructureConstants.au3>
#include <Constants.au3>
#include <media.au3>
#NoTrayIcon
#region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_icon=Pics\Sonstiges\INRico.ico
#AutoIt3Wrapper_outfile=Kompiliert\INR-Multimediacenter.exe
#AutoIt3Wrapper_Compression=4
#AutoIt3Wrapper_UseUpx=n
#AutoIt3Wrapper_Res_Comment=INR-Multimediacenter (C) JuraX 2010 (http://www.jurax.square7.de)
#AutoIt3Wrapper_Res_Description=INR-Multimediacenter
#AutoIt3Wrapper_Res_Fileversion=3.6.0.0
#AutoIt3Wrapper_Res_LegalCopyright=JuraX
#AutoIt3Wrapper_Res_SaveSource=y
#AutoIt3Wrapper_Res_Language=1031
#AutoIt3Wrapper_Add_Constants=n
#AutoIt3Wrapper_AU3Check_Stop_OnWarning=y
#AutoIt3Wrapper_Run_Tidy=y
#AutoIt3Wrapper_res_productversion=3.6.0.0
#endregion ;**** Directives created by AutoIt3Wrapper_GUI ****
#region (C)
;INR 2010 2010
;Alle Rechte bei JuraX (http://www.Jurax.square7.ch)
;Scriptklau und decompilierung Verboten!
#endregion (C)
#region Erklährung
#cs
Playingstate:
-1 = Nichts
1 = Musik
2 = Pause
3.1 = WMP-Object
4 = CD-Player
#ce
#endregion Erklährung
#region Wrapper
#endregion Wrapper
#region Globals
Opt("GUICloseOnESC", 0)
Opt("TrayMenuMode", 1)
Opt("MouseCoordMode", 0)
Global $sTitle = "INR-Import"
Global $iSelfPID = _WinAPI_GetCurrentProcessID()
Global $aProcessList = ProcessList('INR-Multimediacenter.exe')
If $aProcessList[0][0] > 1 Then
If $iSelfPID <> $aProcessList[1][1] Then WinWait($sTitle)
EndIf
If WinExists($sTitle) Then
If $CmdLine[0] > 0 Then
For $i = 1 To $CmdLine[0]
If FileExists($CmdLine[$i]) Then
Switch StringRight($CmdLine[$i], 4)
Case '.mp3', '.wav'
ControlCommand($sTitle, '', '[CLASS:Edit; INSTANCE:1]', 'EditPaste', $CmdLine[$i] & @CRLF)
EndSwitch
EndIf
Next
EndIf
Exit
EndIf
Global Const $AC_SRC_ALPHA = 1
Global Const $APPpfad = @AppDataCommonDir & "\INRadio\"
Global Const $INR_INI = $APPpfad & "\INRadio.ini"
Global Const $WM_DROPFILES = 0x0233
Global $Playingstate = -1
Global $titelnummer = 0
Global $oWMP = ObjCreate("WMPLayer.ocx")
Global $hMusic
Global $Arraytoplay[1]
Global $fftstruct = DllStructCreate("float[128]")
Global $gaDropFiles[1]
Global $aItem[2]
Global $Hover
Global $currentDrive = 0
Global $MusicHandle
Global $loaded = False
Global $playing = False
Global $idx = 0
Global $totalTracks
Global $paused = False
Global $ButtonSource
Global $GesamtZeit
Global $SchonGespieltZeit
Global $ShowTray = TrayCreateItem("Anzeigen")
Global $HideTray = TrayCreateItem("Verstecken")
Global $Killtray = TrayCreateItem("Schließen")
GUIRegisterMsg($WM_DROPFILES, 'WM_DROPFILES_FUNC')
#region Bass-Startup
_BASS_Startup(@ScriptDir & "\sys\bASS.dll")
_BASS_CD_Startup(@ScriptDir & "\sys\basscd.dll")
_BASS_Init(0, -1, 44100, 0, "")
_BASS_PluginLoad("BassCD.dll", 0)
If @error Then
MsgBox(0, "Error", "Konnte Sound nicht Initialisieren!")
Exit
EndIf
#endregion Bass-Startup
#region FirstStart
Global $FS = IniRead($INR_INI, "BOOT", "Firtsstart", "")
If $FS = "" Then
ShellExecute("http://creativecommons.org/licenses/by-nc-nd/3.0/de/")
$iMsgBoxAnswer = MsgBox(262452, "Lizenz", "Mit dem Starten dieses Programmes aktzeptieren sie die Aktuellen Lizenzbedingungen, die sie in Ihrem Webrowser jetzt sehen sollten." & @CRLF & @CRLF & "INR jetzt starten?" & @CRLF)
Select
Case $iMsgBoxAnswer = 6 ;Yes
Case $iMsgBoxAnswer = 7 ;No
Exit
EndSelect
DirCreate(@AppDataCommonDir & "\INRadio\")
DirCreate($APPpfad & "\JSoundextract")
IniWrite($INR_INI, "BOOT", "Firtsstart", "False")
EndIf
#endregion FirstStart
If IniRead($INR_INI, "Updates", "Updates", "") = "" Then
Update()
EndIf
_GDIPlus_Startup()
$hNewsImage = _GDIPlus_ImageLoadFromFile(@ScriptDir & "\Pics\INR.png")
$hNewsImage = _GDIPlus_ImageLoadFromFile(@ScriptDir & "\Pics\INR.png")
$hMusikImage = _GDIPlus_ImageLoadFromFile(@ScriptDir & "\Pics\INRMusik.png")
$hRadioImage = _GDIPlus_ImageLoadFromFile(@ScriptDir & "\Pics\INRRadio.png")
$hCDPlayerImage = _GDIPlus_ImageLoadFromFile(@ScriptDir & "\Pics\INRCDPlayer.png")
$hOptionenImage = _GDIPlus_ImageLoadFromFile(@ScriptDir & "\Pics\INROptionen.png")
$hCreditsImage = _GDIPlus_ImageLoadFromFile(@ScriptDir & "\Pics\INRCredits.png")
$hForwHoverImage = _GDIPlus_ImageLoadFromFile(@ScriptDir & "\Pics\forwardbuttonhover.png")
$hForwNoHoverImage = _GDIPlus_ImageLoadFromFile(@ScriptDir & "\Pics\forwardbuttonnohover.png")
$hPlayHoverImage = _GDIPlus_ImageLoadFromFile(@ScriptDir & "\Pics\Playbuttonhover.png")
$hPlayNoHoverImage = _GDIPlus_ImageLoadFromFile(@ScriptDir & "\Pics\Playbuttonnohover.png")
$hBackHoverImage = _GDIPlus_ImageLoadFromFile(@ScriptDir & "\Pics\backbuttonhover.png")
$hBackNoHoverImage = _GDIPlus_ImageLoadFromFile(@ScriptDir & "\Pics\backbuttonnohover.png")
$hStopHoverImage = _GDIPlus_ImageLoadFromFile(@ScriptDir & "\Pics\Stopbuttonhover.png")
$hStopNoHoverImage = _GDIPlus_ImageLoadFromFile(@ScriptDir & "\Pics\Stopbuttonnohover.png")
If $CmdLine[0] = 0 Or $CmdLine[0] = "" Then
$hAktullesImage = $hNewsImage
Else
$hAktullesImage = $hMusikImage
EndIf
$width = _GDIPlus_ImageGetWidth($hMusikImage)
$height = _GDIPlus_ImageGetHeight($hMusikImage)
GUIRegisterMsg($WM_DROPFILES, 'WM_DROPFILES_FUNC')
AdlibRegister("Aktualisieren")
#endregion Globals
#region GUI
$hImportGui = GUICreate("INR-Import", 100, 100)
$hImport = GUICtrlCreateEdit("", 1, 1)
GUISetState(@SW_HIDE, $hImportGui)
$GUI = GUICreate("INR", $width, $height, -1, -1, BitOR($WS_POPUP, $WS_SYSMENU), BitOR($WS_EX_LAYERED, $WS_EX_ACCEPTFILES))
SetBitmap($GUI, $hAktullesImage, 0)
GUIRegisterMsg($WM_NCHITTEST, "WM_NCHITTEST")
GUISetState()
$WinPos = WinGetPos($GUI)
$ChildGUI = GUICreate("", $width, $height, 0, 0, $WS_POPUP, BitOR($WS_EX_MDICHILD, $WS_EX_LAYERED), $GUI)
$hGraphicButtons = _GDIPlus_GraphicsCreateFromHWND($ChildGUI)
GUICtrlCreatePic(@ScriptDir & "\Pics\grey.gif", 0, 0, $width, $height)
GUICtrlSetState(-1, $GUI_DISABLE)
$topplay = GUICtrlCreateLabel("", 110, 53, 41, 54)
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
$topvor = GUICtrlCreateLabel("", 152, 53, 37, 27)
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
$topback = GUICtrlCreateLabel("", 152, 81, 37, 27)
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
$Button_ = GUICtrlCreateButton("_", 523, 36, 20, 19)
$ButtonX = GUICtrlCreateButton("X", 543, 36, 20, 19)
$MusikTabLabel = GUICtrlCreateLabel("Musik", 49, 126, 128, 17, $SS_CENTER)
GUICtrlSetColor(-1, 0xFFFFFF)
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
$RadioTabLabel = GUICtrlCreateLabel("Radio", 49, 126 + 25, 128, 17, $SS_CENTER)
GUICtrlSetColor(-1, 0xFFFFFF)
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
$CDPlayerTabLabel = GUICtrlCreateLabel("CD-Player", 49, 126 + 50, 128, 17, $SS_CENTER)
GUICtrlSetColor(-1, 0xFFFFFF)
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
$OptionenTabLabel = GUICtrlCreateLabel("Optionen", 49, 331, 128, 17, $SS_CENTER)
GUICtrlSetColor(-1, 0xFFFFFF)
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
$CreditsTabLabel = GUICtrlCreateLabel("Credits", 49, 331 + 25, 128, 17, $SS_CENTER)
GUICtrlSetColor(-1, 0xFFFFFF)
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
GUICtrlCreateTab(0, 0, 10, 10)
GUICtrlSetState(-1, $GUI_HIDE)
$NewsTab = GUICtrlCreateTabItem("News")
$NewsString = FileRead(@ScriptDir & "\sys\news.txt")
GUICtrlCreateLabel($NewsString, 200, 60, 350, 600)
$MusikTab = GUICtrlCreateTabItem("Musik")
GUICtrlCreateLabel("", 199, 59, 372, 82)
GUICtrlSetBkColor(-1, 0x666666)
$Graphik = GUICtrlCreateLabel("", 200, 60, 370, 80)
GUICtrlSetBkColor(-1, 0xFFFFFF)
If $CmdLine[0] > 0 Then
GUICtrlSetState($MusikTab, $GUI_SHOW)
EndIf
;==========================================Spektrum-Analysator====================================================
$visGraphics = _GDIPlus_GraphicsCreateFromHWND(GUICtrlGetHandle($Graphik))
$visBitmap = _GDIPlus_BitmapCreateFromGraphics(320, 80, $visGraphics)
$visBuffer = _GDIPlus_ImageGetGraphicsContext($visBitmap)
_GDIPlus_GraphicsClear($visBuffer)
$pen_size = Int(320 / 128)
$pen = _GDIPlus_PenCreate(0, $pen_size)
$hBrush = _GDIPlus_BrushCreateSolid()
$eq = 1
$AktuellePositionSlider = GUICtrlCreateSlider(200, 145, 370, 20, $TBS_NOTICKS)
GUICtrlSetState($AktuellePositionSlider, @SW_DISABLE)
GUICtrlSetBkColor(-1, 0xFFFFFF)
$SchonGespieltZeit = GUICtrlCreateLabel("0:00", 200, 165, 100, 20)
$GesamtZeit = GUICtrlCreateLabel("3:40", 470, 165, 100, 20, $SS_RIGHT)
$PlaylistListView = GUICtrlCreateListView("Dateiname|Pfad", 200, 185, 350, 165, BitOR($LVS_NOCOLUMNHEADER, $LVS_SINGLESEL, $LVS_SHOWSELALWAYS), BitOR($LVS_EX_DOUBLEBUFFER, $LVS_EX_FULLROWSELECT, $WS_EX_CLIENTEDGE))
$PlaylistAddFile = GUICtrlCreateButton("+", 550, 185, 20, 20)
GUICtrlSetTip(-1, "Musikdatei zur Playlist hinzufügen")
$PlaylistAddJSound = GUICtrlCreateButton("+J", 550, 205, 20, 20)
GUICtrlSetTip(-1, "JSound zur Playlist hinzufügen")
$PlaylistDelFile = GUICtrlCreateButton("-", 550, 225, 20, 20)
GUICtrlSetTip(-1, "Datei aus Playlist löschen")
$PlaylistCreateFromFolder = GUICtrlCreateButton("Playlist aus Ordner einlesen", 200, 352, 150, 20)
$PlaylistSpeichern = GUICtrlCreateButton("Playlist speichern", 350, 352, 100, 20)
$PlaylistLaden = GUICtrlCreateButton("Playlist laden", 450, 352, 100, 20)
$RadioTab = GUICtrlCreateTabItem("Radio")
$SenderListView = GUICtrlCreateListView("Sender|URL", 200, 60, 350, 310, BitOR($LVS_NOCOLUMNHEADER, $LVS_SINGLESEL, $LVS_SHOWSELALWAYS), BitOR($LVS_EX_DOUBLEBUFFER, $LVS_EX_FULLROWSELECT, $WS_EX_CLIENTEDGE))
GUICtrlSendMsg($SenderListView, $LVM_SETCOLUMNWIDTH, 0, 350 - 25)
$varnew = IniReadSectionNames($INR_INI)
_ArraySearch($varnew, "Sender")
If Not @error = 6 Then
$var = IniReadSection($INR_INI, "Sender")
If IsArray($var) Then
For $i = 1 To $var[0][0]
GUICtrlCreateListViewItem($var[$i][0] & "|" & $var[$i][1], $SenderListView)
Next
EndIf
EndIf
GUICtrlCreateListViewItem("Antenne Bayern|http://www.antenne.de/webradio/antenne.wmx ", $SenderListView)
GUICtrlCreateListViewItem("TechnoBase.FM|http://listen.TechnoBase.FM/dsl.asx", $SenderListView)
$SenderAdd = GUICtrlCreateButton("+", 550, 60, 20, 20)
GUICtrlSetTip(-1, "Sender zur Liste hinzufügen")
$SenderDel = GUICtrlCreateButton("-", 550, 80, 20, 20)
GUICtrlSetTip(-1, "Sender aus Liste löschen")
$CDPlayerTab = GUICtrlCreateTabItem("CD-Player")
$btnPrev = GUICtrlCreateButton("Zurück", 384, 68, 35, 35, 0)
$btnPlay = GUICtrlCreateButton("Play", 422, 68, 35, 35, 0)
$btnPause = GUICtrlCreateButton("Pause", 460, 68, 35, 35, 0)
$btnStop = GUICtrlCreateButton("Stop", 498, 68, 35, 35, 0)
$btnNext = GUICtrlCreateButton("Vor", 536, 68, 35, 35, 0)
$lblTitle = GUICtrlCreateLabel("Title", 208, 120, 540, 17)
$lblAlbum = GUICtrlCreateLabel("Album", 208, 160, 540, 17)
$lblArtist = GUICtrlCreateLabel("Künstler", 208, 140, 540, 17)
$hProgress = GUICtrlCreateProgress(208, 180, 350, 20)
GUICtrlSetLimit($hProgress, 100, 0)
$hListview = GUICtrlCreateListView("ID|Title|Künstler", 208, 206, 350, 150)
$combo_drives = GUICtrlCreateCombo("Laufwerk Auswählen", 208, 88, 170, 25, $CBS_DROPDOWNLIST)
$drives = DriveGetDrive("CDROM")
If IsArray($drives) Then
For $i = 1 To $drives[0]
GUICtrlSetData($combo_drives, $drives[$i])
Next
EndIf
GUICtrlCreateLabel("Bitte CD Laufwerk auswählen:", 208, 68, 270, 17)
$OptionenTab = GUICtrlCreateTabItem("Optionen")
GUICtrlCreateGroup("Lautstärke", 212, 68, 353, 121)
$LautstaerkeSliderINT = GUICtrlCreateSlider(228, 92, 329, 25)
GUICtrlCreateLabel("Aktuelle Lautstärke :", 228, 124, 107, 17)
$LautstaerkeSliderEXT = GUICtrlCreateSlider(228, 148, 329, 25)
GUICtrlSetState(-1, $GUI_DISABLE)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Group1 = GUICtrlCreateGroup("Updates", 212, 210, 265, 161)
$UpdateCheckbox = GUICtrlCreateCheckbox("Automatisch nach updates suchen", 212 + 16, 40 + 210 - 10, 193, 25)
If IniRead($INR_INI, "BOOT", "Updates", "") = "" Then
GUICtrlSetState($UpdateCheckbox, $GUI_CHECKED)
EndIf
$UpdateSearch = GUICtrlCreateButton("Jetzt nach Updates suchen", 212 + 16, 72 + 210 - 10, 147, 25, $WS_GROUP)
GUICtrlCreateLabel("Aktuelle Version", 212 + 16, 112 + 210 - 10, 80, 17)
$AktuelleVersionLabel = GUICtrlCreateInput("Fehler !", (120 - 16) + 212, 112 + 210 - 10, 137, 21, BitOR($ES_AUTOHSCROLL, $ES_READONLY))
GUICtrlCreateLabel("Neue Version", 212 + 16, 144 + 210 - 10, 76, 17)
$NeueVersionLabel = GUICtrlCreateInput("Fehler !", (120 - 16) + 212, 144 + 210 - 10, 137, 21, BitOR($ES_AUTOHSCROLL, $ES_READONLY))
GUICtrlCreateGroup("", -99, -99, 1, 1)
;$Console = GUICtrlCreateEdit("", 480, 300, 80, 70)
$VideoButton = GUICtrlCreateButton("Video abspielen", 480, 300, 80, 70)
;GUICtrlSetState($Console, @SW_HIDE)
If @AutoItVersion <> "" Then
$ButtonSource = GUICtrlCreateButton("Quelltext Downloaden", 480, 210, 80, 80, $BS_MULTILINE)
;GUICtrlSetState($Console, @SW_SHOW)
EndIf
$CreditsTab = GUICtrlCreateTabItem("Credits")
GUICtrlCreateLabel("Credits:", 224, 92, 114, 28)
GUICtrlSetFont(-1, 20, 400, 0, "Nasalization")
GUICtrlCreateLabel("JuraX 2010", 256, 132, 124, 22)
GUICtrlSetFont(-1, 15, 400, 0, "Nasalization")
GUICtrlCreateLabel("Alle Rechte Vorbehalten", 256, 164, 283, 22)
GUICtrlSetFont(-1, 15, 400, 0, "Nasalization")
$LizenzZeigen = GUICtrlCreateButton("Lizenz", 228, 212, 129, 41, $WS_GROUP)
GUICtrlSetFont(-1, 20, 400, 0, "Nasalization")
$Betreff = GUICtrlCreateCombo("<Betreff auswählen>", 215, 260, 225, 25)
GUICtrlSetData($Betreff, "Feedback|Support|Fehler melden")
$Edit = GUICtrlCreateEdit("", 215, 288, 225, 80)
$MailSenden = GUICtrlCreateButton("Mail Senden", 450, 260, 100, 100)
GUICtrlCreateTabItem("")
_WinAPI_SetLayeredWindowAttributes($ChildGUI, 0x999999, 0)
GUISetState()
For $i = 0 To 255 Step 30
Sleep(5)
SetBitmap($GUI, $hAktullesImage, $i)
_WinAPI_SetLayeredWindowAttributes($ChildGUI, 0x999999, $i)
Next
$i = 255
SetBitmap($GUI, $hAktullesImage, $i)
_WinAPI_SetLayeredWindowAttributes($ChildGUI, 0x999999, $i)
#endregion GUI
#region Win7 Taskleistenimigration
If @OSVersion = "WIN_7" Or "WIN_VISTA" Then
Global $hImageList = _GUIImageList_Create(16, 16, 5, 3) ;Imageliste erstellen
_GUIImageList_AddIcon($hImageList, @ScriptDir & "\sys\pictures.dll", 2); Play Icon ist Icon 52 Nullindexbasiert das 2. Icon
_GUIImageList_AddIcon($hImageList, @ScriptDir & "\sys\pictures.dll", 1); Pause Icon ist Icon 51 Nullindexbasiert das 1. Icon
_GUIImageList_AddIcon($hImageList, @ScriptDir & "\sys\pictures.dll", 3); Stop Icon ist Icon 53 Nullindexbasiert das 3. Icon
_GUIImageList_AddIcon($hImageList, @ScriptDir & "\sys\pictures.dll", 0);; Close Icon ist Icon 50 Nullindexbasiert das 0. Icon
_ThumbBar_SetImageList($GUI, $hImageList); Imageliste am ThumbBar übergeben
$but1 = _ThumbBar_CreateButton('Play', -1, 0, '_Playfromtop'); -1 für die Verwendung der Imagelist ,0. Icon in der Imageliste
;$but2 = _ThumbBar_CreateButton('Pause', -1, 1, 'But2');1. Icon in der Imageliste
;$but3 = _ThumbBar_CreateButton('Stop', -1, 2, '_Playfromtop');2. Icon in der Imageliste
$but4 = _ThumbBar_CreateButton('Close', -1, 3, "Exitf");3. Icon in der Imageliste
_ThumbBar_AddButtons($GUI)
$oTaskbar = _ThumbBar_GetObj()
$oTaskbar.SetActiveAlt(Number($GUI))
EndIf
#endregion Win7 Taskleistenimigration
#region CMD-Line
If $CmdLine[0] = 0 Or $CmdLine[0] = "" Then
$hAktullesImage = $hNewsImage
ElseIf $CmdLine[0] = 1 Then
$hAktullesImage = $hMusikImage
$hMusic = _BASS_StreamCreateFile(False, $CmdLine[1], 0, 0, 0)
_BASS_ChannelPlay($hMusic, 0)
$dateiname = StringSplit($CmdLine[1], "\")
$dateinameOhneTyp = StringSplit($dateiname[$dateiname[0]], ".")
GUICtrlCreateListViewItem($dateinameOhneTyp[1] & "|" & $CmdLine[1], $PlaylistListView)
_GDIPlus_GraphicsDrawImageRect($hGraphicButtons, $hStopNoHoverImage, 108, 53, 43, 55)
$Playingstate = 1
_GUICtrlListView_SetItemDropHilited($PlaylistListView, $titelnummer, True)
ElseIf $CmdLine[0] > 1 Then
$hAktullesImage = $hMusikImage
$hMusic = _BASS_StreamCreateFile(False, $CmdLine[1], 0, 0, 0)
_BASS_ChannelPlay($hMusic, 0)
For $i = 1 To $CmdLine[0]
$dateiname = StringSplit($CmdLine[$i], "\")
$dateinameOhneTyp = StringSplit($dateiname[$dateiname[0]], ".")
GUICtrlCreateListViewItem($dateinameOhneTyp[1] & "|" & $CmdLine[$i], $PlaylistListView)
Next
_GDIPlus_GraphicsDrawImageRect($hGraphicButtons, $hStopNoHoverImage, 108, 53, 43, 55)
$Playingstate = 1
_GUICtrlListView_SetItemDropHilited($PlaylistListView, $titelnummer, True)
EndIf
#endregion CMD-Line
#region Notify
_Notify_SetNotifytoFunc(GUICtrlGetHandle($PlaylistListView), $NM_DBLCLK, "WM_NOTIFY")
If @error Then ConsoleWrite(@error & @CRLF)
_Notify_SetNotifytoFunc(GUICtrlGetHandle($SenderListView), $NM_DBLCLK, "WM_NOTIFY_Radio")
_StartUp_Notify(True)
SoundSetWaveVolume(50)
GUICtrlSetData($LautstaerkeSliderINT, 50)
#endregion Notify
#region LOOP
While (True)
_GUICtrlListView_SetColumnWidth($PlaylistListView, 0, $LVSCW_AUTOSIZE)
_GUICtrlListView_SetColumnWidth($PlaylistListView, 1, 0)
_GUICtrlListView_SetColumnWidth($SenderListView, 0, $LVSCW_AUTOSIZE)
_GUICtrlListView_SetColumnWidth($SenderListView, 1, 0)
$EXT_Volume = _SoundGetWaveVolume()
GUICtrlSetData($LautstaerkeSliderEXT, $EXT_Volume)
If StringRight(GUICtrlRead($hImport), 2) = @CRLF Then _ImportFiles()
;If StringRight(GUICtrlRead($Console), 2) = @CRLF Then _CheckOrder()
If $Playingstate = 1 Then
$song_length = _BASS_ChannelGetLength($hMusic, $BASS_POS_BYTE)
$current = _BASS_ChannelGetPosition($hMusic, $BASS_POS_BYTE)
$percent = Round(($current / $song_length) * 100, 0)
GUICtrlSetData($AktuellePositionSlider, $percent)
DISPLAY_VIS()
If $current = $song_length Then
GUICtrlSetData($AktuellePositionSlider, 0)
_Playnext()
EndIf
EndIf
Switch GUIGetMsg($ChildGUI)
Case $Button_
WinSetState($GUI, "", @SW_MINIMIZE)
Case $GUI_EVENT_CLOSE, $ButtonX
ExitLoop
Case $PlaylistAddFile
$MusikFileHinzufuegen = FileOpenDialog("Öffnen...", "", 'Musik Dateien(*.mp3;*.wav)', 4)
If StringInStr($MusikFileHinzufuegen, "|") >= 1 Then
$MusikFileHinzufuegen = StringSplit($MusikFileHinzufuegen, "|")
For $i = 2 To $MusikFileHinzufuegen[0]
$dateiname = StringSplit($MusikFileHinzufuegen[$i], "\")
$dateinameOhneTyp = StringSplit($dateiname[$dateiname[0]], ".")
GUICtrlCreateListViewItem($dateinameOhneTyp[1] & "|" & $MusikFileHinzufuegen[$i], $PlaylistListView)
Next
Else
$dateiname = StringSplit($MusikFileHinzufuegen, "\")
$dateinameOhneTyp = StringSplit($dateiname[$dateiname[0]], ".")
GUICtrlCreateListViewItem($dateinameOhneTyp[1] & "|" & $MusikFileHinzufuegen, $PlaylistListView)
EndIf
Case $PlaylistDelFile
_GUICtrlListView_DeleteItemsSelected($PlaylistListView)
Case $PlaylistAddJSound
$filepath = FileOpenDialog("Öffnen...", "", 'JSound-Dateien (*.JSound)')
$Filedestination = $APPpfad & "\JSoundextract"
_JSound_GetFiles($filepath, $Filedestination, @ScriptDir & "\sys\JHelper.dll")
$JSREK = _GetFilesFolder_Rekursiv($Filedestination & "\", "mp3", 0)
For $i = 1 To $JSREK[0]
$dateiname = StringSplit($JSREK[$i], "\")
$dateinameOhneTyp = StringSplit($dateiname[$dateiname[0]], ".")
GUICtrlCreateListViewItem($dateinameOhneTyp[1] & "|" & $JSREK[$i], $PlaylistListView)
Next
$JSREK = _GetFilesFolder_Rekursiv($Filedestination & "\", "wav", 0)
For $i = 1 To $JSREK[0]
$dateiname = StringSplit($JSREK[$i], "\")
$dateinameOhneTyp = StringSplit($dateiname[$dateiname[0]], ".")
GUICtrlCreateListViewItem($dateinameOhneTyp[1] & "|" & $JSREK[$i], $PlaylistListView)
Next
Case $LizenzZeigen
Switch @OSLang
Case 0407, 0807, "0c07", 1007, 1407
ShellExecute("http://creativecommons.org/licenses/by-nc-nd/3.0/de/deed.de")
Case "040c", "080c", "0c0c", "100c", "140c", "180c"
ShellExecute("http://creativecommons.org/licenses/by-nc-nd/3.0/de/deed.fr")
Case Else
ShellExecute("http://creativecommons.org/licenses/by-nc-nd/3.0/de/deed.en")
EndSwitch
Case $PlaylistCreateFromFolder
$selectedbib = FileSelectFolder("Ordner Einlesen...", "")
$returnputin = _GetFilesFolder_Rekursiv($selectedbib, "mp3", 0)
For $i = 1 To $returnputin[0]
$dateiname = StringSplit($returnputin[$i], "\")
$dateinameOhneTyp = StringSplit($dateiname[$dateiname[0]], ".")
GUICtrlCreateListViewItem($dateinameOhneTyp[1] & "|" & $returnputin[$i], $PlaylistListView)
Next
$returnputin = _GetFilesFolder_Rekursiv($selectedbib, "wav", 0)
For $i = 1 To $returnputin[0]
$dateiname = StringSplit($returnputin[$i], "\")
$dateinameOhneTyp = StringSplit($dateiname[$dateiname[0]], ".")
GUICtrlCreateListViewItem($dateinameOhneTyp[1] & "|" & $returnputin[$i], $PlaylistListView)
Next
Case $topplay
_Playfromtop()
Case $topvor
_Playnext()
Case $topback
_Playback()
Case $MailSenden
Mail()
Case $SenderAdd
$Name = InputBox("Sendername", "Bitte Sendername angeben!")
$Pfad = InputBox("Senderadresse", "Bitte Senderadresse angeben!")
If StringInStr($Pfad, "asx") < 1 Or StringInStr($Pfad, "wmx") < 1 Then
MsgBox(16, "Falscher stream", 'Bitte geben Sie einen "asx" oder "wmx" Stream an.')
Else
$iMsgBoxAnswer = MsgBox(291, "Fertig stellen", "Sendername: " & $Name & @CRLF & "Senderpfad: " & $Pfad & @CRLF & @CRLF & "Ist das richtig?")
Select
Case $iMsgBoxAnswer = 6 ;Yes
MsgBox(0, "", "Sender hinzugefügt!")
IniWrite($INR_INI, "Sender", $Name, $Pfad)
Case $iMsgBoxAnswer = 7 ;No
Case $iMsgBoxAnswer = 2 ;Cancel
EndSelect
EndIf
Case $SenderDel
If _GUICtrlListView_GetSelectedCount($SenderListView) <> 0 Then
$aSelected = _GUICtrlListView_GetSelectedIndices($SenderListView, True)
$SenderDelText = _GUICtrlListView_GetItemTextString($SenderListView, $aSelected[1])
$SenderDelText = StringSplit($SenderDelText, "|")
$SenderDelText = $SenderDelText[1]
IniDelete($INR_INI, "Sender", $SenderDelText)
_GUICtrlListView_DeleteItemsSelected($SenderListView)
EndIf
Case $LautstaerkeSliderINT
LautstaerkeAEndern()
Case $PlaylistSpeichern
$Datei = FileSaveDialog("Playliste Speichern...", @DocumentsCommonDir, "INR-Playliste (*.INRP)")
Local $HFILEOUT, $aItem
$HFILEOUT = FileOpen($Datei, 2)
For $j = 0 To _GUICtrlListView_GetItemCount($PlaylistListView) - 1
$aItem = _GUICtrlListView_GetItemTextString($PlaylistListView, $j)
FileWriteLine($HFILEOUT, $aItem)
Next
FileClose($HFILEOUT)
Case $PlaylistLaden
$SFILE = FileOpenDialog("Playliste Laden...", @DocumentsCommonDir, "INR-Playliste (*.INRP)")
Local $AITEMS
If FileExists($SFILE) Then
_FileReadToArray($SFILE, $AITEMS)
If IsArray($AITEMS) Then
_GUICtrlListView_DeleteAllItems($PlaylistListView)
For $j = 1 To $AITEMS[0]
GUICtrlCreateListViewItem($AITEMS[$j], $PlaylistListView)
Next
EndIf
EndIf
#region BASSCD
Case $combo_drives
$read = GUICtrlRead($combo_drives)
If $read <> "Laufwerk Auswählen" Then
GUICtrlSetState($combo_drives, $GUI_DISABLE)
$loaded = True
GUISetCursor(15)
$sel = _GUICtrlComboBox_GetCurSel($combo_drives)
$currentDrive = $sel - 1
$MusicHandle = _BASS_CD_StreamCreate(0, 0, $BASS_SAMPLE_LOOP)
If @error Then
MsgBox(0, "", "Konnte audiodatei nicht laden!" & @CR & "Error = " & @error)
Exit
EndIf
$totalTracks = _BASS_CD_GetTracks($currentDrive)
$cdID = _BASS_CD_GetID($currentDrive, $BASS_CDID_CDDB)
If @error Then
MsgBox(0, "Error", "Konnte Audioinfo nicht laden. @error = " & @error)
Exit
EndIf
$tracks = _BASS_CD_GetTracklist($cdID[0])
For $i = 1 To $tracks[0][0]
$idx = _GUICtrlListView_AddItem($hListview, $i)
_GUICtrlListView_AddSubItem($hListview, $idx, $tracks[$i][0], 1)
_GUICtrlListView_AddSubItem($hListview, $idx, $tracks[$i][1], 2)
Next
GUICtrlSetData($lblAlbum, $tracks[0][1])
GUISetCursor(2)
EndIf
Case $btnStop
If $loaded Then
_BASS_ChannelStop($MusicHandle)
EndIf
Case $btnPlay
If $loaded Then
$playing = True
$Playingstate = 4
$idx = _GUICtrlListView_GetSelectedIndices($hListview)
_BASS_CD_StreamSetTrack($MusicHandle, $idx)
_BASS_ChannelPlay($MusicHandle, 1)
_SetData($idx)
Else
MsgBox(0, "", "Bitte ein Laufwerk mit Audio-CD auswählen!")
EndIf
Case $btnPause
If $loaded Then
If $paused Then
$pause = False
_BASS_Start()
Else
$pause = True
_BASS_Pause()
EndIf
EndIf
Case $btnNext
If $loaded Then
$idx += 1
If $idx >= $totalTracks Then $idx = 0
_BASS_CD_StreamSetTrack($MusicHandle, $idx)
_SetData($idx)
EndIf
Case $btnPrev
If $loaded Then
$idx -= 1
If $idx < 0 Then $idx = 0
_BASS_CD_StreamSetTrack($MusicHandle, $idx)
_SetData($idx)
EndIf
#endregion BASSCD
Case $ButtonSource
MsgBox(64, "Warnung", "Es kann sein, dass der Quelltext nicht der Aktuellsten Version entspricht!")
ShellExecute("http://jurax.square7.ch/Downloads/Autoit/INR.zip", @DesktopCommonDir & "\INR.zip")
Case $UpdateSearch
Update(1)
Case $UpdateCheckbox
MsgBox(0, "", "0")
If BitAND(GUICtrlRead($UpdateCheckbox), $GUI_CHECKED) Then
IniDelete($INR_INI, "Updates", "Updates")
MsgBox(0, "", "1")
Else
IniWrite($INR_INI, "Updates", "Updates", "False")
MsgBox(0, "", "2")
EndIf
Case $VideoButton
$VideoFile = FileOpenDialog("", "", "Video Dateien(*.mpg;*.wmv;*.mp4)")
$VideoFile = _MediaOpen($VideoFile)
_MediaPlay($VideoFile)
EndSwitch
If $playing Then
$current = _BASS_ChannelGetPosition($MusicHandle, $BASS_POS_BYTE)
$perdone = Round(($current / $tracks[$idx + 1][2]) * 100, 0)
GUICtrlSetData($hProgress, $perdone)
If $perdone >= 100 Then
$idx += 1
If $idx >= $totalTracks Then $idx = 0
_BASS_CD_StreamSetTrack($MusicHandle, $idx)
_SetData($idx)
EndIf
EndIf
_CheckHover()
WEnd
#endregion LOOP
For $i = 255 To 0 Step -30
Sleep(5)
SetBitmap($GUI, $hAktullesImage, $i)
_WinAPI_SetLayeredWindowAttributes($ChildGUI, 0x999999, $i)
Next
Exitf()
#region Funcs :2:
Func Exitf()
_BASS_STOP()
_BASS_FREE()
_WinAPI_DeleteObject($hNewsImage)
_WinAPI_DeleteObject($hMusikImage)
_WinAPI_DeleteObject($hRadioImage)
_WinAPI_DeleteObject($hCDPlayerImage)
_WinAPI_DeleteObject($hOptionenImage)
_WinAPI_DeleteObject($hCreditsImage)
_GDIPlus_Shutdown()
$returnputin = _GetFilesFolder_Rekursiv($APPpfad & "\JSoundextract", "mp3", 0)
For $i = 1 To $returnputin[0]
$dateinamedel = FileDelete($returnputin[$i])
Next
$returnputin = _GetFilesFolder_Rekursiv($APPpfad & "\JSoundextract", "wav", 0)
For $i = 1 To $returnputin[0]
$dateinamedel = FileDelete($returnputin[$i])
Next
Exit
EndFunc ;==>Exitf
Func Display_Vis($eq = 1)
_GDIPlus_GraphicsClear($visBuffer, 0x77FFFFFF)
If $eq > 0 Then
$levels = _BASS_ChannelGetLevel($hMusic)
$LeftChannel = Round((_LoWord($levels) / 32768) * 80, 0)
$RightChannel = Round((_HiWord($levels) / 32768) * 80, 0)
_GDIPlus_BrushSetSolidColor($hBrush, _CalcColor($LeftChannel))
_GDIPlus_GraphicsFillRect($visBuffer, 0, 80 - $LeftChannel, 20, $LeftChannel, $hBrush)
_GDIPlus_BrushSetSolidColor($hBrush, _CalcColor($RightChannel))
_GDIPlus_GraphicsFillRect($visBuffer, 25, 80 - $RightChannel, 20, $RightChannel, $hBrush)
_BASS_CHANNELGETDATA($hMusic, DllStructGetPtr($fftstruct), $BASS_DATA_FFT256)
For $i = 1 To 127 Step 1
$FFT = Round(DllStructGetData($fftstruct, 1, $i + 1) * 700)
_GDIPlus_PenSetColor($pen, _CalcColor($FFT))
_GDIPlus_GraphicsDrawLine($visBuffer, 50 + $i * $pen_size, 80, 50 + $i * $pen_size, 80 - $FFT, $pen)
Next
EndIf
_GDIPlus_GraphicsDrawImageRect($visGraphics, $visBitmap, 0, 0, 320, 80)
EndFunc ;==>Display_Vis
Func _CalcColor($iPercent)
$R = $iPercent * 3.5
$G = 171
$B = 255
Return "0x77" & Hex($R, 2) & Hex($G, 2) & Hex($B, 2)
EndFunc ;==>_CalcColor
Func _CheckHover()
$CurInf = GUIGetCursorInfo($ChildGUI)
If @error Then Return
If $Hover Then
If $CurInf[2] Then
Switch $Hover
Case $MusikTabLabel
If $hAktullesImage <> $hMusikImage Then
$hAktullesImage = $hMusikImage
GUICtrlSetState($MusikTab, $GUI_SHOW)
SetBitmap($GUI, $hAktullesImage, 255)
EndIf
Case $RadioTabLabel
If $hAktullesImage <> $hRadioImage Then
$hAktullesImage = $hRadioImage
GUICtrlSetState($RadioTab, $GUI_SHOW)
SetBitmap($GUI, $hAktullesImage, 255)
EndIf
Case $CDPlayerTabLabel
If $hAktullesImage <> $hCDPlayerImage Then
$hAktullesImage = $hCDPlayerImage
GUICtrlSetState($CDPlayerTab, $GUI_SHOW)
SetBitmap($GUI, $hAktullesImage, 255)
EndIf
Case $OptionenTabLabel
If $hAktullesImage <> $hOptionenImage Then
$hAktullesImage = $hOptionenImage
GUICtrlSetState($OptionenTab, $GUI_SHOW)
SetBitmap($GUI, $hAktullesImage, 255)
EndIf
Case $CreditsTabLabel
If $hAktullesImage <> $hCreditsImage Then
$hAktullesImage = $hCreditsImage
GUICtrlSetState($CreditsTab, $GUI_SHOW)
SetBitmap($GUI, $hAktullesImage, 255)
EndIf
EndSwitch
EndIf
EndIf
If $Hover = $CurInf[4] Then Return
Switch $Hover
Case $MusikTabLabel, $RadioTabLabel, $CDPlayerTabLabel, $OptionenTabLabel, $CreditsTabLabel
GUICtrlSetColor($Hover, 0xFFFFFF)
Case $topplay
If ($Playingstate = 1) Or ($Playingstate = 2) Or ($Playingstate = 4) Then _GDIPlus_GraphicsDrawImageRect($hGraphicButtons, $hStopNoHoverImage, 108, 53, 43, 55)
If $Playingstate = -1 Then _GDIPlus_GraphicsDrawImageRect($hGraphicButtons, $hPlayNoHoverImage, 108, 53, 43, 55)
Case $topvor
_GDIPlus_GraphicsDrawImageRect($hGraphicButtons, $hForwNoHoverImage, 152, 53, 37, 27)
Case $topback
_GDIPlus_GraphicsDrawImageRect($hGraphicButtons, $hBackNoHoverImage, 152, 80, 37, 28)
EndSwitch
$Hover = $CurInf[4]
Switch $Hover
Case $MusikTabLabel, $RadioTabLabel, $CDPlayerTabLabel, $OptionenTabLabel, $CreditsTabLabel
GUICtrlSetColor($Hover, 0xCCCCCC)
Case $topplay
If ($Playingstate = 1) Or ($Playingstate = 2) Or ($Playingstate = 4) Then _GDIPlus_GraphicsDrawImageRect($hGraphicButtons, $hStopHoverImage, 108, 53, 43, 55)
If $Playingstate = -1 Then _GDIPlus_GraphicsDrawImageRect($hGraphicButtons, $hPlayHoverImage, 108, 53, 43, 55)
Case $topvor
_GDIPlus_GraphicsDrawImageRect($hGraphicButtons, $hForwHoverImage, 152, 53, 37, 27)
Case $topback
_GDIPlus_GraphicsDrawImageRect($hGraphicButtons, $hBackHoverImage, 152, 80, 37, 28)
EndSwitch
EndFunc ;==>_CheckHover
Func WM_NCHITTEST($hWnd, $iMsg, $iwParam, $ilParam)
If ($hWnd = $GUI) And ($iMsg = $WM_NCHITTEST) Then Return $HTCAPTION
EndFunc ;==>WM_NCHITTEST
Func SetBitmap($hgui, $hImage, $iOpacity)
Local $hScrDC, $hMemDC, $hBitmap, $hOld, $pSize, $tSize, $pSource, $tSource, $pBlend, $tBlend
$hScrDC = _WinAPI_GetDC(0)
$hMemDC = _WinAPI_CreateCompatibleDC($hScrDC)
$hBitmap = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hImage)
$hOld = _WinAPI_SelectObject($hMemDC, $hBitmap)
$tSize = DllStructCreate($tagSIZE)
$pSize = DllStructGetPtr($tSize)
DllStructSetData($tSize, "X", _GDIPlus_ImageGetWidth($hImage))
DllStructSetData($tSize, "Y", _GDIPlus_ImageGetHeight($hImage))
$tSource = DllStructCreate($tagPOINT)
$pSource = DllStructGetPtr($tSource)
$tBlend = DllStructCreate($tagBLENDFUNCTION)
$pBlend = DllStructGetPtr($tBlend)
DllStructSetData($tBlend, "Alpha", $iOpacity)
DllStructSetData($tBlend, "Format", $AC_SRC_ALPHA)
_WinAPI_UpdateLayeredWindow($hgui, $hScrDC, 0, $pSize, $hMemDC, $pSource, 0, $pBlend, $ULW_ALPHA)
_WinAPI_ReleaseDC(0, $hScrDC)
_WinAPI_SelectObject($hMemDC, $hOld)
_WinAPI_DeleteObject($hBitmap)
_WinAPI_DeleteDC($hMemDC)
EndFunc ;==>SetBitmap
Func WM_DROPFILES_FUNC($hWnd, $MSGID, $WPARAM, $LPARAM)
Local $NSIZE, $PFILENAME
Local $NAMT = DllCall("shell32.dll", "int", "DragQueryFileW", "hwnd", $WPARAM, "int", -1, "ptr", 0, "int", 255)
For $i = 0 To $NAMT[0]
$NSIZE = DllCall("shell32.dll", "int", "DragQueryFileW", "hwnd", $WPARAM, "int", $i, "ptr", 0, "int", 0)
$NSIZE = $NSIZE[0] + 1
$PFILENAME = DllStructCreate("wchar[" & $NSIZE & "]")
DllCall("shell32.dll", "int", "DragQueryFileW", "hwnd", $WPARAM, "int", $i, "ptr", DllStructGetPtr($PFILENAME), "int", $NSIZE)
$FILENAME = DllStructGetData($PFILENAME, 1)
ConsoleWrite($FILENAME & @CRLF)
ReDim $gaDropFiles[$i + 1]
$gaDropFiles[$i] = DllStructGetData($PFILENAME, 1)
$PFILENAME = 0
Next
For $i = 0 To UBound($gaDropFiles) - 2
GUICtrlCreateListViewItem(StringRegExpReplace($gaDropFiles[$i], ".*\\(.*)\..*", "$1") & "|" & $gaDropFiles[$i], $PlaylistListView)
Next
_GUICtrlListView_SetColumnWidth($PlaylistListView, 0, $LVSCW_AUTOSIZE)
EndFunc ;==>WM_DROPFILES_FUNC
Func WM_NOTIFY($hWndFrom, $iIDFrom, $iNotifyCode, $WPARAM, $LPARAM); Die Funktion muß 5 Parameter haben.
$tInfo = DllStructCreate($tagNMITEMACTIVATE, $LPARAM)
$iIndex = DllStructGetData($tInfo, "Index")
_LEFTDBLCLICK(_GUICtrlListView_GetItemText($iIDFrom, $iIndex, 1), $iIndex)
EndFunc ;==>WM_NOTIFY
Func _LeftDblClick($file, $num)
_GUICtrlListView_SetItemDropHilited($PlaylistListView, $titelnummer, False)
$titelnummer = 0
If $Playingstate = 1 Or $Playingstate = 2 Or $Playingstate = 4 Then
_BASS_ChannelStop($hMusic)
ElseIf $Playingstate = 3.1 Then
$oWMP.controls.stop()
EndIf
$Playingstate = -1
$hMusic = _BASS_StreamCreateFile(False, $file, 0, 0, 0)
_BASS_ChannelPlay($hMusic, 0)
_GDIPlus_GraphicsDrawImageRect($hGraphicButtons, $hStopNoHoverImage, 108, 53, 43, 55)
$Playingstate = 1
$titelnummer = $num
_GUICtrlListView_SetItemDropHilited($PlaylistListView, $titelnummer, True)
EndFunc ;==>_LeftDblClick
Func _PlayFromTop()
If $Playingstate = 1 Or $Playingstate = 2 Or $Playingstate = 4 Then
_BASS_ChannelStop($hMusic)
$Playingstate = -1
_GDIPlus_GraphicsDrawImageRect($hGraphicButtons, $hPlayNoHoverImage, 108, 53, 43, 55)
Return
ElseIf $Playingstate = 3.1 Then
$oWMP.controls.stop()
$Playingstate = -1
Return
EndIf
If _GUICtrlListView_GetItemCount($PlaylistListView) = 0 Then Return
For $i = 0 To _GUICtrlListView_GetItemCount($PlaylistListView)
If _GUICtrlListView_GetItemSelected($PlaylistListView, $i) Then
_PlayMusic($i)
Return
EndIf
Next
_PlayMusic(0)
EndFunc ;==>_PlayFromTop
Func _PlayMusic($listviewline)
$file = _GUICtrlListView_GetItemTextArray($PlaylistListView, $listviewline)
$hMusic = _BASS_StreamCreateFile(False, $file[2], 0, 0, 0)
_BASS_ChannelPlay($hMusic, 0)
_GDIPlus_GraphicsDrawImageRect($hGraphicButtons, $hStopNoHoverImage, 108, 53, 43, 55)
$Playingstate = 1
$titelnummer = $listviewline
EndFunc ;==>_PlayMusic
Func _PlayNext()
Local $wasplaying = 0
If $Playingstate = 1 Or $Playingstate = 2 Or $Playingstate = 4 Then
_BASS_ChannelStop($hMusic)
$Playingstate = -1
$wasplaying = 1
_GDIPlus_GraphicsDrawImageRect($hGraphicButtons, $hPlayNoHoverImage, 108, 53, 43, 55)
Sleep(500)
ElseIf $Playingstate = 3.1 Then
$oWMP.controls.stop()
$Playingstate = -1
Sleep(500)
EndIf
If $titelnummer = _GUICtrlListView_GetItemCount($PlaylistListView) - 1 Then $titelnummer = -1
If _GUICtrlListView_GetItemCount($PlaylistListView) = 0 Then Return
If $wasplaying = 1 Then _PlayMusic($titelnummer + 1)
EndFunc ;==>_PlayNext
Func _PlayBack()
Local $wasplaying = 0
If $Playingstate = 1 Or $Playingstate = 2 Or $Playingstate = 4 Then
_BASS_ChannelStop($hMusic)
$Playingstate = -1
$wasplaying = 1
_GDIPlus_GraphicsDrawImageRect($hGraphicButtons, $hPlayNoHoverImage, 108, 53, 43, 55)
Sleep(500)
ElseIf $Playingstate = 3.1 Then
$oWMP.controls.stop()
$Playingstate = -1
Sleep(500)
EndIf
If $titelnummer = 0 Then $titelnummer = _GUICtrlListView_GetItemCount($PlaylistListView)
If _GUICtrlListView_GetItemCount($PlaylistListView) = 0 Then Return
If $wasplaying = 1 Then _PlayMusic($titelnummer - 1)
EndFunc ;==>_PlayBack
Func AKTUALISIEREN()
$song_lengthdata = StringSplit(_BASS_ChannelBytes2Seconds($hMusic, _BASS_ChannelGetLength($hMusic, $BASS_POS_BYTE)), ".")
$currentdata = StringSplit(_BASS_ChannelBytes2Seconds($hMusic, _BASS_ChannelGetPosition($hMusic, $BASS_POS_BYTE)), ".")
$currentdata = Floor($currentdata[1] / 60) & ":" & $currentdata[1] - Floor($currentdata[1] / 60) * 60
$song_lengthdata = Floor($song_lengthdata[1] / 60) & ":" & $song_lengthdata[1] - Floor($song_lengthdata[1] / 60) * 60
GUICtrlSetData($GesamtZeit, $song_lengthdata)
GUICtrlSetData($SchonGespieltZeit, $currentdata)
EndFunc ;==>AKTUALISIEREN
Func Mail()
$Betreffsend = GUICtrlRead($Betreff)
$Editsend = GUICtrlRead($Edit)
If $Betreffsend = "" Or $Betreffsend = "<Betreff auswählen>" Then
MsgBox(48, "Warnung!", "Bitte Betreff auswählen !")
Return
EndIf
_INetMail("Justmails@gmx.net", $Betreffsend, _DebugBugReportEnv() & @CRLF & $Editsend & @CRLF & @Compiled)
EndFunc ;==>Mail
Func WM_NOTIFY_Radio($hWndFrom, $iIDFrom, $iNotifyCode, $WPARAM, $LPARAM); Die Funktion muß 5 Parameter haben.
ConsoleWrite($hWndFrom & @CRLF)
ConsoleWrite($iIDFrom & @CRLF)
$tInfo = DllStructCreate($tagNMITEMACTIVATE, $LPARAM)
$iIndex = DllStructGetData($tInfo, "Index")
If $Playingstate = 1 Or $Playingstate = 2 Or $Playingstate = 4 Then
_BASS_ChannelStop($hMusic)
ElseIf $Playingstate = 3.1 Then
$oWMP.controls.stop()
EndIf
$Playingstate = -1
_LeftDblClick_Radio(_GUICtrlListView_GetItemText($iIDFrom, $iIndex, 1))
EndFunc ;==>WM_NOTIFY_Radio
Func _LeftDblClick_Radio($file)
;If StringInStr($file, "asx") > 0 Or StringInStr($file, "wmx") > 0 Then
$oWMP.URL = $file
$oWMP.controls.play()
$Playingstate = 3.1
;EndIf
EndFunc ;==>_LeftDblClick_Radio
Func _SoundGetWaveVolume()
Local $WAVEVOL = -1, $P, $RET
Const $MMSYSERR_NOERROR = 0
$P = DllStructCreate("dword")
If @error Then
SetError(2)
Return -2
EndIf
$RET = DllCall("winmm.dll", "long", "waveOutGetVolume", "long", -1, "long", DllStructGetPtr($P))
IF ($RET[0] == $MMSYSERR_NOERROR) Then
$WAVEVOL = Round(Dec(StringRight(Hex(DllStructGetData($P, 1), 8), 4)) / 65535 * 100)
Else
SetError(1)
EndIf
$P = ""
Return $WAVEVOL
EndFunc ;==>_SoundGetWaveVolume
Func LautstaerkeAEndern()
$NeueLautstaerke = GUICtrlRead($LautstaerkeSliderINT)
ConsoleWrite("Volume" & $NeueLautstaerke & @CRLF)
SoundSetWaveVolume($NeueLautstaerke)
$oWMP.settings.volume = $NeueLautstaerke
EndFunc ;==>LautstaerkeAEndern
Func _SetData($indx)
;Set the lables with Album/Title/Artist
GUICtrlSetData($lblTitle, $tracks[$indx + 1][0])
GUICtrlSetData($lblArtist, $tracks[$indx + 1][1])
GUICtrlSetData($lblAlbum, $tracks[0][1])
EndFunc ;==>_SetData
;Get tracks
Func _BASS_CD_GetTracklist($params)
;Set vairiables
Local $tracklist[1][3]
Local $tcount = 0
;This is the disc ID
$discID = StringLeft($params, StringInStr($params, " ") - 1)
;username
$user = @UserName
;host
$myhost = "localhost"
;client
$clientname = "AutoItTest"
;version
$version = "1"
;type
$proto = "1"
;query string
$cmd = "cmd=cddb+query+" & StringReplace($params, " ", "+") & "&hello=" & $user & "+" & $myhost & "+" & $clientname & "+" & $version & "&proto=" & $proto
;Host
$host = "freedb.freedb.org"
;page
$page = "/~cddb/cddb.cgi?" & $cmd
;connect to host
$socket = _HTTPConnect($host)
;Send request
_HTTPGet($host, $page, $socket)
;get recieved data
$recv = _HTTPRead($socket, 1)
;Check if OKAY
If $recv[0] = 200 Then
;Yes
$response = $recv[4]
;Get the genre so we can get the tracks
$genre = StringTrimRight(StringTrimLeft($response, StringInStr($response, " ")), StringLen($response) - StringInStr($response, " ", Default, 2) + 1)
;Get Tracks
;Command
$cmd = "cmd=cddb+read+" & $genre & "+" & StringReplace($discID, " ", "+") & "&hello=" & $user & "+" & $myhost & "+" & $clientname & "+" & $version & "&proto=" & $proto
;page
$page = "/~cddb/cddb.cgi?" & $cmd
;connect
$socket = _HTTPConnect($host)
;send request
_HTTPGet($host, $page, $socket)
;Get response
$recv = _HTTPRead($socket, 1)
;Check for success
If $recv[0] = 200 Then
$response = $recv[4]
;Remove comments
$response = StringTrimLeft($response, StringInStr($response, "#", Default, -1))
;Split by lines
$response = StringSplit($response, @LF)
For $i = 1 To $response[0]
Select
Case StringInStr($response[$i], "TTITLE");Line has track data
;Increase number of tracks
$tcount += 1
;Adjust our array
ReDim $tracklist[$tcount + 1][3]
;Gets track name
$trackname = StringTrimRight(StringTrimLeft($response[$i], StringInStr($response[$i], "=")), 1)
;Split it
$lists = StringSplit($trackname, " / ", 1)
;Set value
$tracklist[$tcount][0] = $lists[2]
$tracklist[$tcount][1] = $lists[1]
;get lenght
$tracklist[$tcount][2] = _BASS_CD_GetTrackLength($currentDrive, $tcount - 1)
Case StringInStr($response[$i], "DTITLE");Line has disc data
;Get name
$trackname = StringTrimRight(StringTrimLeft($response[$i], StringInStr($response[$i], "=")), 1)
;Split it
$lists = StringSplit($trackname, " / ", 1)
;Set it
$tracklist[0][1] = $lists[2]
$tracklist[0][2] = $lists[1]
EndSelect
Next
;Update total
$tracklist[0][0] = $tcount
EndIf
;Return array
Return $tracklist
EndIf
EndFunc ;==>_BASS_CD_GetTracklist
Func Update($sp = "")
HttpSetUserAgent("Firefox")
$sIndex = BinaryToString(InetRead('http://jurax.square7.ch/INR/index.html'))
If @error Then
MsgBox(0, "INR Updater", "Keine Verbindung zur Seite. Bitte überprüfen Sie ihre Netzwerkverbindung und versuchen es erneut!")
Return
EndIf
$updates = _INetGetSource("http://jurax.square7.ch/updates.html")
$VersionNeu = _StringBetween($updates, "[INR]", "[/INR]")
$hInstance = _WinAPI_LoadLibraryEx(@ScriptDir & "\sys\Settings.dll", $LOAD_LIBRARY_AS_DATAFILE)
$dll = _ArrayFromResource($hInstance, 0, True, True)
If Not IsArray($dll) Then
MsgBox(0, "Fehler", "Konnte DLL nicht laden!")
Return
EndIf
If $dll[0][0] = 0 Or "" Then
MsgBox(0, "Fehler", "Konnte DLL nicht laden!")
EndIf
$VersionJetzt = $dll[1][1]
$VersionNeu = $VersionNeu[0]
$PointVersionJetzt = StringSplit($VersionJetzt, ".")
$update = False
$PointVersionNeu = StringSplit($VersionNeu, ".")
For $i = 1 To 4
If $PointVersionNeu[$i] > $PointVersionJetzt[$i] Then $update = True
Next
If Not $update = True Then Return
If Not ($VersionJetzt == $VersionNeu) Then
If $sp = 1 Then
GUICtrlSetData($NeueVersionLabel, $VersionNeu)
GUICtrlSetData($AktuelleVersionLabel, $VersionJetzt)
EndIf
EndIf
$iMsgBoxAnswer = MsgBox(68, "Update!", "Neue Version Verfügbar !" & @CRLF & @CRLF & "Ihre Version: " & $VersionJetzt & @CRLF & "Neue Version: " & $VersionNeu & @CRLF & @CRLF & "Updaten?")
Select
Case $iMsgBoxAnswer = 6 ;Yes
SplashTextOn("", "Bitte Warten..." & @CRLF & "Update wird heruntergeladen...", "200", "200", "-1", "-1", $DLG_NOTITLE + $DLG_TEXTVCENTER, "Ethnocentric", "10", "400")
$hRead = "http://jurax.square7.ch/Downloads/INR-Setup.exe"
InetGet($hRead)
$sRead = $hRead
$sFileName = StringTrimLeft($sRead, StringInStr($sRead, "/", -1, -1))
$hRead = InetGet($sRead, @ScriptDir & "\" & $sFileName, 1, 1)
Do
$aInfo = InetGetInfo($hRead)
Sleep(100)
Until $aInfo[2]
SplashOff()
Sleep(4000)
ShellExecute(@ScriptDir & "\" & $sFileName)
Sleep(10000)
Exit
Case $iMsgBoxAnswer = 7 ;No
If $sp = 1 Then
GUICtrlSetData($NeueVersionLabel, $VersionNeu)
GUICtrlSetData($AktuelleVersionLabel, $VersionJetzt)
EndIf
Return
EndSelect
If $sp = 1 Then
GUICtrlSetData($NeueVersionLabel, $VersionNeu)
GUICtrlSetData($AktuelleVersionLabel, $VersionJetzt)
EndIf
EndFunc ;==>Update
Func _ArrayFromResource($hInstance, $iTextString, $Index = False, $2D = False)
Local $sText, $aRetArray
If Not IsBool($Index) Then Return SetError(1, 0, 0)
If Not IsBool($2D) Then Return SetError(2, 0, 0)
If Not $hInstance Then Return SetError(3, 0, 0)
$sText = _WinAPI_LoadString($hInstance, $iTextString)
If @error Then Return SetError(4, 0, 0)
If $2D = False Then
If $Index = True Then $aRetArray = StringSplit($sText, "|", 0)
If $Index = False Then $aRetArray = StringSplit($sText, "|", 2)
If Not IsArray($aRetArray) Then Return SetError(3, 0, 0)
Return $aRetArray
Else
$aRetArray = _String2Array2D($sText, '|', ',', $Index)
If Not IsArray($aRetArray) Then Return SetError(3, 0, 0)
Return $aRetArray
EndIf
EndFunc ;==>_ArrayFromResource
Func _Array2D2String($Array, $iStart = 0, $iEnd = 0, $DelimRow = '|', $DelimCol = ','); Funktion zum erstellen eines Strings von einem 2D Array (c) BugFix
If Not IsArray($Array) Then Return SetError(1, 0, 0)
Local $sOut = ''
If $iStart < 0 Then $iStart = 0
If $iEnd = 0 Or $iEnd > UBound($Array) - 1 Then $iEnd = UBound($Array) - 1
For $i = $iStart To $iEnd
For $j = 0 To UBound($Array, 2) - 1
$sOut &= $Array[$i][$j] & $DelimCol
Next
$sOut = StringTrimRight($sOut, 1) & $DelimRow
Next
Return StringTrimRight($sOut, 1)
EndFunc ;==>_Array2D2String
Func _String2Array2D($string, $DelimRow = '|', $DelimCol = ',', $idx = False); Funktion von BugFix erweitert von Raupi
If Not IsBool($idx) Then Return SetError(1, 0, 0)
Local $tmp = StringSplit($string, $DelimRow, 2)
Local $tmp1 = StringSplit($tmp[0], $DelimCol, 2)
Local $aOut[UBound($tmp) + $idx][UBound($tmp1)]
For $i = 0 To UBound($tmp) - 1
$tmp1 = StringSplit($tmp[$i], $DelimCol, 2)
For $j = 0 To UBound($tmp1) - 1
$aOut[$i + $idx][$j] = $tmp1[$j]
Next
Next
If $idx = True Then $aOut[0][0] = UBound($aOut, 1) - 1
Return $aOut
EndFunc ;==>_String2Array2D
Func _ImportFiles()
$MusikFileHinzufuegen = GUICtrlRead($hImport)
$MusikFileHinzufuegen = StringSplit($MusikFileHinzufuegen, @CRLF)
$MusikFileHinzufuegen = $MusikFileHinzufuegen[1]
$dateiname = StringSplit($MusikFileHinzufuegen, "\")
$dateinameOhneTyp = StringSplit($dateiname[$dateiname[0]], ".")
GUICtrlCreateListViewItem($dateinameOhneTyp[1] & "|" & $MusikFileHinzufuegen, $PlaylistListView)
GUICtrlSetData($hImport, "")
EndFunc ;==>_ImportFiles
#cs
Func _CheckOrder()
$pass = GUICtrlRead($Console)http://www.roubaixinteractive.com/PlayGround/Binary_Conversion/The_Characters.asp
If StringInStr($pass, "show CMDL", 1) Then GUISetState(@SW_SHOW, $hImportGui)
If StringInStr($pass, "hide CMDL", 1) Then GUISetState(@SW_HIDE, $hImportGui)
If StringInStr($pass, "play ", 1) Then
If $Playingstate = 1 Or 2 Then
_BASS_ChannelStop($hMusic)
ElseIf $Playingstate = 3.1 Then
$oWMP.controls.stop()
EndIf
$Playingstate = -1
$playCMD = _StringBetween($pass, "<", ">")
Switch $playCMD
Case StringInStr($playCMD, "http")
Case Else
$FileCMD = StringSplit($pass, @CRLF)
$FileCMD = $FileCMD[1]
$hMusic = _BASS_StreamCreateFile(False, $FileCMD, 0, 0, 0)
_BASS_ChannelPlay($hMusic, 0)
$Playingstate = 1
EndSwitch
EndIf
GUICtrlSetData($Console, "")
EndFunc ;==>_CheckOrder
#ce
#endregion Funcs :2: