Array fehler

    • Offizieller Beitrag

    Ich habe dir dich im letzten Beiitrag schon geschrieben, welche Fehler mir auf Anhieb aufgefallen sind. Es wird bestimmt nicht besser laufen, wenn du jetzt an deiner Radiowiedergabe rumbastelst.
    Wenn dein Script bessser stuckturiert wäre würde ich dir auch helfen, aber da blickt ja keien S.. mehr durch. Heilloses durcheinander.

  • so ich hab das ganze nochmal neugeschrieben und hab jetzt folgendes problem bei gleicher fehlermeldung:
    ich droppe eine datei mache einen doppelklick und drücke danach playliste abspielen.
    Woran könnte das liegen,(ich kriegs einfach nicht raus...)

    Spoiler anzeigen
    [autoit]

    #include <Bass.au3>
    #include <BassTags.au3>
    #include <GuiListView.au3>
    #include <GuiStatusBar.au3>
    #include <IE.au3>
    #include <Misc.au3>
    #include <_GetFilesFolder_Rekursiv.au3>
    #include <File.au3>
    #include <WindowsConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <BassConstants.au3>
    #include <GDIPlus.au3>
    #include <ListViewConstants.au3>
    #include <StructureConstants.au3>

    [/autoit] [autoit][/autoit] [autoit]

    #region Wrapper
    #AutoIt3Wrapper_icon=INRadio Entwicklungs-umgebung\INRadio.ico
    #AutoIt3Wrapper_outfile=Localtuner.exe
    #AutoIt3Wrapper_Compression=4
    #AutoIt3Wrapper_Res_Description=INR
    #AutoIt3Wrapper_Res_Fileversion=0.0.0.0
    #AutoIt3Wrapper_Res_LegalCopyright=JuraX
    #AutoIt3Wrapper_Res_Language=1031
    #AutoIt3Wrapper_Res_Field=ProductVersion|2.1
    #AutoIt3Wrapper_Res_Field=ProductName|INRadio
    #AutoIt3Wrapper_Run_Tidy=y
    #AutoIt3Wrapper_Run_Obfuscator=y
    #Obfuscator_Parameters=/striponly
    #endregion Wrapper

    [/autoit] [autoit][/autoit] [autoit]

    ;===================================================================================================
    ;===================================================================================================
    ; INRadio-Mainmodul by JuraX
    ;===================================================================================================
    ;===================================================================================================
    Global Const $APPpfad = @AppDataCommonDir & "\INRadio\"
    Global Const $INR_INI = $APPpfad & "\INRadio.ini"
    Global $Tmsg = TrayGetMsg()
    Global $Lmsg = GUIGetMsg()
    Global $Playingstate = -1
    Global $titelnummer = 1
    Global $oWMP = ObjCreate("WMPLayer.ocx")
    Global $hMusic
    Global $Arraytoplay
    Global Const $WM_DROPFILES = 0x0233
    Global $fftstruct = DllStructCreate("float[128]")
    Global $gaDropFiles[1]
    Global $aItem[2]
    Global $leftChLvlper
    Global $rightChLvlper

    [/autoit] [autoit][/autoit] [autoit]

    _GDIPlus_Startup()
    ;+++++++++++++++Startup+++++++++++++++
    #region OPT
    Opt("TrayMenuMode", 1)
    Opt("MouseCoordMode", 0)
    Opt("GUIOnEventMode", 1)
    Opt("GUIEventOptions", 1)
    #endregion OPT

    [/autoit] [autoit][/autoit] [autoit]

    #region Tray
    $ShowTray = TrayCreateItem("Anzeigen")
    $HideTray = TrayCreateItem("Verstecken")
    $Killtray = TrayCreateItem("Schließen")
    #endregion Tray

    [/autoit] [autoit][/autoit] [autoit]

    #region Bass
    _BASS_STARTUP(@ScriptDir & "\sys\BASS.dll")
    _Bass_Tags_Startup(@ScriptDir & "\sys\BassTags.dll")
    _BASS_Init(0, -1, 44100, 0, "")

    [/autoit] [autoit][/autoit] [autoit]

    If @error Then
    MsgBox(0, "Error", "Sound konnte nicht Initialisiert werden!")
    Exit
    EndIf
    #endregion Bass

    [/autoit] [autoit][/autoit] [autoit]

    #region Firststart
    $FirstStart = IniRead($INR_INI, "BOOT", "Firtsstart", "")
    Local $FS
    If $FS = "" Then
    DirCreate(@AppDataCommonDir & "\INRadio\")
    IniWrite($INR_INI, "BOOT", "Firtsstart", "False")
    EndIf
    #endregion Firststart

    [/autoit] [autoit][/autoit] [autoit]

    #region Register
    If IsDeclared("Musichandle") And $Playingstate = 1 Or 2 Then
    AdlibRegister("tagout", 3000)
    EndIf
    AdlibRegister("Aktualisieren")
    GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY")
    GUIRegisterMsg($WM_DROPFILES, 'WM_DROPFILES_FUNC')
    #endregion Register

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    ;+++++++++++++++Gui+++++++++++++++
    $Width = 380
    $Height = 670

    [/autoit] [autoit][/autoit] [autoit]

    Global $hgui = GUICreate("INRadio-Localtuner", $Width + 300, $Height, -1, -1, Default, $WS_EX_ACCEPTFILES)
    #region mp3
    $Tagoutput = GUICtrlCreateLabel("", 130, 220, 500, 70)
    $TimeprogressVIS = GUICtrlCreateProgress(8, 32, 236, 20)
    $TimeprogressNUM = GUICtrlCreateLabel(GUICtrlRead($TimeprogressVIS), 8, 8, 150, 17)

    [/autoit] [autoit][/autoit] [autoit]

    $Close = GUICtrlCreateButton("Close", 296, 160, 75, 25, 0)
    GUICtrlSetOnEvent(-1, "Shutdown_INR")

    [/autoit] [autoit][/autoit] [autoit]

    $PlayPause = GUICtrlCreateButton("Play|Pause", 216, 160, 75, 25, 0)
    GUICtrlSetOnEvent(-1, "Playpause")

    [/autoit] [autoit][/autoit] [autoit]

    $Stop = GUICtrlCreateButton("Stop", 136, 160, 75, 25, 0)
    GUICtrlSetOnEvent(-1, "Stop")

    [/autoit] [autoit][/autoit] [autoit]

    $Openfile = GUICtrlCreateButton("Andere Datei", 36, 160, 75, 25, 0)
    GUICtrlSetOnEvent(-1, "Openfile")

    [/autoit] [autoit][/autoit] [autoit]

    $NewBib = GUICtrlCreateButton("Neue Bibliothek", 136, 330)
    GUICtrlSetOnEvent(-1, "Newbib")

    [/autoit] [autoit][/autoit] [autoit]

    GUICtrlCreateLabel("Lautstärke", 8, 190, 80, 20)
    $VolumeSlider = GUICtrlCreateSlider(8, 250, 366, 30)
    GUICtrlSetOnEvent(-1, "Volumechange")

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    $Playliste = GUICtrlCreateListView('Dateiname|Pfad', 10, 375, 350, 200)
    GUICtrlSetLimit($TimeprogressVIS, 100)
    GUICtrlSetData($VolumeSlider, 50)
    SoundSetWaveVolume(50)
    $Soundextern = GUICtrlCreateProgress(8, 280, 366, 30)
    $StartPlayliste = GUICtrlCreateButton("Playliste abspielen", 20, 330)
    GUICtrlSetOnEvent(-1, "Startplayliste")

    [/autoit] [autoit][/autoit] [autoit]

    $PlaylisteForward = GUICtrlCreateButton("Vorwärts", 30, 600, 70)
    GUICtrlSetOnEvent(-1, "PlaylisteForward")

    [/autoit] [autoit][/autoit] [autoit]

    $Saveplayliste = GUICtrlCreateButton("Playliste speichern", 110, 600)
    GUICtrlSetOnEvent(-1, "Saveplayliste")

    [/autoit] [autoit][/autoit] [autoit]

    $Loadplayliste = GUICtrlCreateButton("Playliste laden", 205, 600)
    GUICtrlSetOnEvent(-1, "Loadplayliste")

    [/autoit] [autoit][/autoit] [autoit]

    $OpenJS = GUICtrlCreateButton("JSound-öffnen", 280, 600)
    GUICtrlSetOnEvent(-1, "Openjs")

    [/autoit] [autoit][/autoit] [autoit]

    $rightVolumeout = GUICtrlCreateProgress(8, 88, 236, 17)
    GUICtrlSetLimit(-1, 100, 0)
    GUICtrlCreateLabel("Right Channel Volume Level", 8, 112, 150, 17)
    $LeftVolumeout = GUICtrlCreateProgress(8, 136, 236, 17)
    GUICtrlSetLimit(-1, 100, 0)
    GUICtrlCreateLabel("Left Channel Volume Level", 8, 64, 150, 17)
    GUICtrlCreateGroup("Webradio", 400, 5, 270, $Height - 5)
    $StatusBar = _GUICtrlStatusBar_Create($hgui)
    _GUICtrlStatusBar_SetMinHeight($StatusBar, 25)
    _GUICtrlStatusBar_SetText($StatusBar, "[" & @HOUR & ":" & @MIN & ":" & @SEC & "]" & " Localtuner.exe gestartet")
    #endregion mp3

    [/autoit] [autoit][/autoit] [autoit]

    #region radio
    $oIE = _IECreateEmbedded()
    GUICtrlCreateObj($oIE, -300, -300, 0, 0)
    $SenderCombo = GUICtrlCreateCombo("", 445, 20, 153, 25)
    GUICtrlSetData(-1, "Antenne Bayern|Rock Antenne|Bayern 3|TechnoBase.FM")
    $PlayRadio = GUICtrlCreateButton("Play", 465, 60, 121, 25, 0)
    GUICtrlSetOnEvent(-1, "Playradio")

    [/autoit] [autoit][/autoit] [autoit]

    $StopRadio = GUICtrlCreateButton("Stop", 465, 92, 121, 25, 0)
    GUICtrlSetOnEvent(-1, "Stopradio")

    [/autoit] [autoit][/autoit] [autoit]

    $Credits = GUICtrlCreateButton("Credits", 465, 124, 121, 25, 0)
    GUICtrlSetOnEvent(-1, "Credits")

    [/autoit] [autoit][/autoit] [autoit]

    GUICtrlCreateLabel("Gerade gespielt:", 465, 230)
    $Playing = GUICtrlCreateLabel("", 465, 250, 150, 30)
    $URL_Y_N = GUICtrlCreateCheckbox("Internetadresse angeben", 405, 300)
    GUICtrlSetOnEvent(-1, "Url_y_n")

    [/autoit] [autoit][/autoit] [autoit]

    $Urllink = GUICtrlCreateInput("Bitte URL angeben", 405, 330)
    GUICtrlSetState(-1, $GUI_DISABLE)
    $OpenUrl = GUICtrlCreateButton("Laden", 405, 360)
    GUICtrlSetOnEvent(-1, "Openurl")

    [/autoit] [autoit][/autoit] [autoit]

    GUICtrlSetState(-1, $GUI_DISABLE)
    #endregion radio

    [/autoit] [autoit][/autoit] [autoit]

    #region GDI+
    ;==========================================Spektrum-Analysator====================================================
    $iX = 120
    $iY = 145
    $graphics = _GDIPlus_GraphicsCreateFromHWND($hgui)
    $bitmap = _GDIPlus_BitmapCreateFromGraphics($iX, $iY, $graphics)
    $backbuffer = _GDIPlus_ImageGetGraphicsContext($bitmap)
    _GDIPlus_GraphicsClear($backbuffer)
    $pen1_size = 4
    $pen1 = _GDIPlus_PenCreate(0, $pen1_size)
    $pen2_size = 4
    $pen2 = _GDIPlus_PenCreate(0, $pen2_size)
    $pen3_size = 3
    $pen3 = _GDIPlus_PenCreate(0, $pen3_size)

    [/autoit] [autoit][/autoit] [autoit]

    $fall_speed_l_threshold = 0
    $fall_speed_r_threshold = 0
    $equalizer_width = 24
    $max_l = 0
    $max_r = 0
    $fall_speed = 5
    $fire_up = 15

    [/autoit] [autoit][/autoit] [autoit]

    $fft_start = 7
    $fft_end = 127
    $fft_boost = 750
    $dy = Int($iY / ($fft_end - $fft_start)) + $pen3_size
    $dyy = Int($iY / $dy / 2)
    $eq = 1
    Dim $mpos[2]
    #endregion GDI+

    [/autoit] [autoit][/autoit] [autoit]

    #region OnEvent
    GUISetOnEvent($GUI_EVENT_CLOSE, "Windows_Event")
    GUISetOnEvent($GUI_EVENT_MINIMIZE, "Windows_Event")
    GUISetOnEvent($GUI_EVENT_RESTORE, "Windows_Event")
    #endregion OnEvent

    [/autoit] [autoit][/autoit] [autoit]

    GUISetState(@SW_SHOW)
    ;+++++++++++++++Loop+++++++++++++++
    while (True)
    $selectcode = _GUICtrlListView_GetSelectedCount($Playliste)
    If _IsPressed("2E") Then
    _GUICtrlListView_DeleteItemsSelected($Playliste)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    _GUICtrlListView_SetColumnWidth($Playliste, 1, 0)

    [/autoit] [autoit][/autoit] [autoit]

    $soundget = _SoundGetWaveVolume()
    GUICtrlSetData($Soundextern, $soundget)

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    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($TimeprogressVIS, $percent)
    $levels = _BASS_ChannelGetLevel($hMusic)
    $rightChLvl = _LoWord($levels)
    $rightChLvlper = Round(($rightChLvl / 32768) * 100, 0)
    $LeftChLvl = _HiWord($levels)
    $leftChLvlper = Round(($LeftChLvl / 32768) * 100, 0)

    [/autoit] [autoit][/autoit] [autoit]

    If $current = $song_length Then
    GUICtrlSetData($TimeprogressVIS, 0)
    _BASS_ChannelPlay($hMusic, True)

    [/autoit] [autoit][/autoit] [autoit]

    If IsArray($Arraytoplay) Then
    If $current = $song_length Then
    GUICtrlSetData($TimeprogressVIS, 0)
    If $Playingstate = 1 Then
    _BASS_ChannelStop($hMusic)
    EndIf
    $titelnummer += 1
    If $titelnummer = UBound($Arraytoplay, 1) - 1 Then $titelnummer = 0
    $Playingstate = 1
    $hMusic = _BASS_StreamCreateFile(False, $Arraytoplay[$titelnummer], 0, 0, 0)
    _BASS_ChannelPlay($hMusic, 0)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    EndIf
    EndIf
    GUICtrlSetData($rightVolumeout, $rightChLvlper)
    GUICtrlSetData($LeftVolumeout, $leftChLvlper)
    EndIf

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Display_Vis($eq)

    [/autoit] [autoit][/autoit] [autoit]

    Switch $Tmsg
    Case $ShowTray
    GUISetState(@SW_SHOW)
    Case $HideTray
    GUISetState(@SW_HIDE)
    Case $Killtray
    Exit
    EndSwitch

    [/autoit] [autoit][/autoit] [autoit]

    Switch $Lmsg
    Case $GUI_EVENT_DROPPED
    For $i = 0 To UBound($gaDropFiles) - 1
    GUICtrlCreateListViewItem(StringRegExpReplace($gaDropFiles[$i], '.*\\(.*)\..*', '$1'), $Playliste)
    _GUICtrlListView_SetColumnWidth($Playliste, 0, $LVSCW_AUTOSIZE)
    Next
    EndSwitch
    WEnd
    #endregion Wrapper

    [/autoit] [autoit][/autoit] [autoit]

    ;+++++++++++++++Functions+++++++++++++++
    #region OnEventMode
    Func Windows_Event()
    Select
    Case @GUI_CtrlId = $GUI_EVENT_CLOSE
    Shutdown_INR()

    [/autoit] [autoit][/autoit] [autoit]

    Case @GUI_CtrlId = $GUI_EVENT_MINIMIZE
    GUISetState(@SW_MINIMIZE)

    [/autoit] [autoit][/autoit] [autoit]

    Case @GUI_CtrlId = $GUI_EVENT_RESTORE
    GUISetState(@SW_RESTORE)
    EndSelect
    EndFunc ;==>Windows_Event

    [/autoit] [autoit][/autoit] [autoit]

    Func Shutdown_INR()
    Exit
    EndFunc ;==>Shutdown_INR

    [/autoit] [autoit][/autoit] [autoit]

    Func Playpause()
    If $Playingstate = 1 Then
    _Bass_ChannelPause($hMusic)
    $Playingstate = 2
    ElseIf $Playingstate = 2 Then
    _Bass_ChannelPlay($hMusic, False)
    $Playingstate = 1
    ElseIf $Playingstate = 3 Then
    _IENavigate($oIE, "about:blank")
    $oWMP.controls.stop()
    _Bass_ChannelPlay($hMusic, False)
    $Playingstate = 1
    EndIf
    EndFunc ;==>Playpause

    [/autoit] [autoit][/autoit] [autoit]

    Func Stop()
    If $Playingstate = 1 Or 2 Then
    _Bass_ChannelStop($hMusic)
    $Playingstate = -1
    ElseIf $Playingstate = 3 Then
    _IENavigate($oIE, "about:blank")
    $oWMP.controls.stop()
    $Playingstate = -1
    EndIf
    EndFunc ;==>Stop

    [/autoit] [autoit][/autoit] [autoit]

    Func Openfile()
    $SelectedFile = FileOpenDialog("MP3-Datei öffnen...", "", "Mp3 (*.mp3)")
    $hMusic = _BASS_StreamCreateFile(False, $SelectedFile, 0, 0, 0)
    _Bass_ChannelPlay($hMusic, False)
    $Playingstate = 1
    EndFunc ;==>Openfile

    [/autoit] [autoit][/autoit] [autoit]

    Func Newbib()
    If $Playingstate = 1 Or 2 Then
    _Bass_ChannelStop($hMusic)
    $Playingstate = -1
    EndIf
    $selectedbib = FileSelectFolder("Ordner wählen", "")
    IniWrite($APPpfad & "\INRadio.ini", "Load", "BIB", $selectedbib)
    $returnputin = _GetFilesFolder_Rekursiv($selectedbib, "mp3", 0)
    _GUICtrlListView_DeleteAllItems($Playliste)
    For $i = 1 To $returnputin[0]
    $dateiname = StringSplit($returnputin[$i], "\")
    GUICtrlCreateListViewItem($dateiname[$dateiname[0]] & "|" & $returnputin[$i], $Playliste)
    Next
    EndFunc ;==>Newbib

    [/autoit] [autoit][/autoit] [autoit]

    Func Volumechange()
    $NewVolume = GUICtrlRead($VolumeSlider)
    SoundSetWaveVolume($NewVolume)
    EndFunc ;==>Volumechange

    [/autoit] [autoit][/autoit] [autoit]

    Func Startplayliste()
    If $Playingstate = 1 Then
    _BASS_ChannelStop($hMusic)
    _BASS_ChannelStop($hMusic)
    _BASS_ChannelStop($hMusic)
    $Playingstate = -1
    EndIf
    $Read = GUICtrlRead($Playliste)
    If $Read = "" Then

    [/autoit] [autoit][/autoit] [autoit]

    $sString = ""
    For $i = 0 To _GUICtrlListView_GetItemCount($Playliste) - 1
    $sString &= _GUICtrlListView_GetItemTextString($Playliste, $i)
    $sString &= ";"
    Next
    $aSplit = StringSplit(StringTrimRight($sString, 1), ";", 2)
    $iUB1 = UBound($aSplit)
    Dim $ARET[$iUB1][1]
    For $i = 0 To $iUB1 - 1
    $aSplit2 = StringSplit($aSplit[$i], "|", 2)
    $iUB2 = UBound($aSplit2)
    If $iUB2 > UBound($ARET, 2) Then ReDim $ARET[$iUB1][$iUB2]
    For $j = 0 To $iUB2 - 1
    $ARET[$i][$j] = $aSplit2[$j]
    Next
    Next
    $Arraytoplay = $ARET

    [/autoit] [autoit][/autoit] [autoit]

    $Playingstate = 1
    $hMusic = _BASS_StreamCreateFile(False, $Arraytoplay[$titelnummer], 0, 0, 0)
    _BASS_ChannelPlay($hMusic, 0)
    Else
    $Read -= 16
    Local $sString = ""
    For $i = $Read To _GUICtrlListView_GetItemCount($Playliste) - 1
    $sString &= _GUICtrlListView_GetItemTextString($Playliste, $i)
    $sString &= ";"
    Next
    $aSplit = StringSplit(StringTrimRight($sString, 1), ";", 2)
    $iUB1 = UBound($aSplit)
    Dim $anext[$iUB1][1]
    For $i = 0 To $iUB1 - 1
    $aSplit2 = StringSplit($aSplit[$i], "|", 2)
    $iUB2 = UBound($aSplit2)
    If $iUB2 > UBound($anext, 2) Then ReDim $anext[$iUB1][$iUB2]
    For $j = 0 To $iUB2 - 1
    $anext[$i][$j] = $aSplit2[$j]
    Next
    Next
    $Arraytoplay = $anext
    $Playingstate = 1
    $hMusic = _BASS_StreamCreateFile(False, $Arraytoplay[$titelnummer], 0, 0, 0)
    _BASS_ChannelPlay($hMusic, 0)
    EndIf
    _GUICtrlStatusBar_SetText($StatusBar, "[" & @HOUR & ":" & @MIN & ":" & @SEC & "]" & " Playliste gestartet")
    EndFunc ;==>Startplayliste

    [/autoit] [autoit][/autoit] [autoit]

    Func PlaylisteForward()
    If IsArray($Arraytoplay) Then
    _BASS_ChannelStop($hMusic)
    $titelnummer += 1
    If $titelnummer = UBound($Arraytoplay) - 1 Then $titelnummer = 1
    $Playingstate = 1
    $hMusic = _BASS_StreamCreateFile(False, $Arraytoplay[$titelnummer], 0, 0, 0)
    _BASS_ChannelPlay($hMusic, 0)
    EndIf
    EndFunc ;==>PlaylisteForward

    [/autoit] [autoit][/autoit] [autoit]

    Func Saveplayliste()
    $SFILE = FileSaveDialog("Playliste Speichern...", @DocumentsCommonDir, "Playlisten (*.INRP)")

    [/autoit] [autoit][/autoit] [autoit]

    Local $HFILEOUT, $aItem
    $HFILEOUT = FileOpen($SFILE, 2)
    For $j = 0 To _GUICtrlListView_GetItemCount($Playliste) - 1
    $aItem = _GUICtrlListView_GetItemTextString($Playliste, $j)
    FileWriteLine($HFILEOUT, $aItem)
    Next
    FileClose($HFILEOUT)
    EndFunc ;==>Saveplayliste

    [/autoit] [autoit][/autoit] [autoit]

    Func Loadplayliste()
    $SFILE = FileOpenDialog("Playliste laden...", @DocumentsCommonDir, "Playlisten (*.INRP)")

    [/autoit] [autoit][/autoit] [autoit]

    Local $AITEMS
    If FileExists($SFILE) Then
    _FileReadToArray($SFILE, $AITEMS)
    If IsArray($AITEMS) Then
    _GUICtrlListView_DeleteAllItems($Playliste)
    For $j = 1 To $AITEMS[0]
    GUICtrlCreateListViewItem($AITEMS[$j], $Playliste)
    Next
    EndIf
    EndIf
    EndFunc ;==>Loadplayliste

    [/autoit] [autoit][/autoit] [autoit]

    Func Openjs()

    [/autoit] [autoit][/autoit] [autoit]

    EndFunc ;==>Openjs

    [/autoit] [autoit][/autoit] [autoit]

    Func Playradio()
    GUICtrlSetData($Playing, GUICtrlRead($SenderCombo))
    GUICtrlCreateIcon("inradio.ico", "", 463, 165, 125, 50)
    If $Playingstate = 1 Or 2 Then
    _BASS_ChannelStop($hMusic)
    ElseIf $Playingstate = 3 Then
    _IENavigate($oIE, "about:blank")
    $oWMP.controls.stop()
    $Playingstate = -1
    EndIf
    If GUICtrlRead($SenderCombo) = "" Then
    MsgBox(0, "Error", "Sie haben kein Radio ausgew?hlt!")
    ElseIf GUICtrlRead($SenderCombo) = "Antenne Bayern" Then
    $oWMP.URL = "http://www.antenne.de/webradio/antenne.wmx"
    $oWMP.controls.play()
    $Playingstate = 3
    ElseIf GUICtrlRead($SenderCombo) = "Bayern 3" Then
    $oWMP.URL = "http://streams.br-online.de/bayern3_1.asx"
    $oWMP.controls.play()
    $Playingstate = 3
    ElseIf GUICtrlRead($SenderCombo) = "Rock Antenne" Then
    $oWMP.URL = "http://www.rockantenne.de/webradio/rockantenne.wmx"
    $oWMP.controls.play()
    $Playingstate = 3
    ElseIf GUICtrlRead($SenderCombo) = "B5 Aktuell" Then
    $oWMP.URL = "http://streams.br-online.de/b5aktuell_1.asx"
    $oWMP.controls.play()
    $Playingstate = 3
    ElseIf GUICtrlRead($SenderCombo) = "TechnoBase.FM" Then
    $oWMP.URL = "http://listen.technobase.fm/tunein-dsl-asx"
    $oWMP.controls.play()
    $Playingstate = 3
    EndIf
    EndFunc ;==>Playradio

    [/autoit] [autoit][/autoit] [autoit]

    Func Stopradio()
    If $Playingstate = 3 Then
    _IENavigate($oIE, "about:blank")
    $oWMP.controls.stop()
    $Playingstate = -1
    EndIf
    EndFunc ;==>Stopradio

    [/autoit] [autoit][/autoit] [autoit]

    Func Credits()
    MsgBox(64, "Credits", "(C) JuraX 2010")
    EndFunc ;==>Credits

    [/autoit] [autoit][/autoit] [autoit]

    Func Url_y_n()
    If BitAND(GUICtrlRead($URL_Y_N), $GUI_CHECKED) Then
    GUICtrlSetState($Urllink, $GUI_ENABLE)
    GUICtrlSetState($PlayRadio, $GUI_DISABLE)
    GUICtrlSetState($StopRadio, $GUI_DISABLE)
    GUICtrlSetState($Credits, $GUI_DISABLE)
    GUICtrlSetState($SenderCombo, $GUI_DISABLE)
    GUICtrlSetState($OpenUrl, $GUI_ENABLE)
    Else
    GUICtrlSetState($Urllink, $GUI_DISABLE)
    GUICtrlSetState($PlayRadio, $GUI_ENABLE)
    GUICtrlSetState($StopRadio, $GUI_ENABLE)
    GUICtrlSetState($Credits, $GUI_ENABLE)
    GUICtrlSetState($SenderCombo, $GUI_ENABLE)
    GUICtrlSetState($OpenUrl, $GUI_DISABLE)
    EndIf
    EndFunc ;==>Url_y_n

    [/autoit] [autoit][/autoit] [autoit]

    Func Openurl()
    $tourl = GUICtrlRead($Urllink)
    #region "YoutubeF"
    $youre = StringInStr($tourl, "youtube")
    If $youre >= 1 Then
    GUICtrlCreateIcon("youtube.ico", "", 35, 100, 100, 50)
    EndIf
    #endregion "YoutubeF"
    #region "MyvideoF"
    $myre = StringInStr($tourl, "myvideo")
    If $myre >= 1 Then
    GUICtrlCreateIcon("myvid.ico", "", 35, 100, 100, 50)
    EndIf
    #endregion "MyvideoF"
    $asx = StringInStr($tourl, "asx")
    If $asx >= 1 Then
    $oWMP = ObjCreate("WMPLayer.ocx")
    $oWMP.URL = $tourl
    $oWMP.controls.play()
    Else
    _IENavigate($oIE, $tourl)
    EndIf
    EndFunc ;==>Openurl
    #endregion OnEventMode

    [/autoit] [autoit][/autoit] [autoit]

    #region andere
    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

    [/autoit] [autoit][/autoit] [autoit]

    Func TAGOUT()
    $tags = _BASS_TAGS_READ($hMusic, "%TITL" & "-" & "%ARTI")
    If $Playingstate = -1 Then
    GUICtrlSetData($Tagoutput, "INR - Localtuner")
    ElseIf $tags = "" & "-" & "" Then
    GUICtrlSetData($Tagoutput, "Konnte ID3-Tags nicht Lesen!")
    Else
    GUICtrlSetData($Tagoutput, $tags)
    EndIf
    EndFunc ;==>TAGOUT

    [/autoit] [autoit][/autoit] [autoit]

    Func AKTUALISIEREN()
    $SLIDERSTATUS = GUICtrlRead($TimeprogressVIS)
    GUICtrlSetData($TimeprogressNUM, $SLIDERSTATUS)
    EndFunc ;==>AKTUALISIEREN

    [/autoit] [autoit][/autoit] [autoit]

    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], $Playliste)
    Next
    _GUICtrlListView_SetColumnWidth($Playliste, 0, $LVSCW_AUTOSIZE)
    EndFunc ;==>WM_DROPFILES_FUNC

    [/autoit] [autoit][/autoit] [autoit]

    Func WM_NOTIFY($hwnd, $MSGID, $WPARAM, $LPARAM)
    Local $TAGNMHDR, $EVENT, $HWNDFROM, $CODE
    $TAGNMHDR = DllStructCreate("int;int;int", $LPARAM)
    If @error Then Return 0
    $CODE = DllStructGetData($TAGNMHDR, 3)
    If $WPARAM = $Playliste And $CODE = -3 And _GUICtrlListView_GetSelectedCount($Playliste) > 0 Then
    For $i = 0 To _GUICtrlListView_GetItemCount($Playliste)
    If _GUICtrlListView_GetItemSelected($Playliste, $i) Then
    $aItem = _GUICtrlListView_GetItemTextArray($Playliste, $i)
    _LEFTDBLCLICK()
    EndIf
    Next
    EndIf
    Return $GUI_RUNDEFMSG
    EndFunc ;==>WM_NOTIFY

    [/autoit] [autoit][/autoit] [autoit]

    Func _LEFTDBLCLICK()
    $titelnummer = 1
    If $Playingstate = 1 Or 2 Then
    _BASS_CHANNELSTOP($hMusic)
    ElseIf $Playingstate = 3 Then
    _IENavigate($oIE, "about:blank")
    $oWMP = ObjCreate("WMPLayer.ocx")
    $oWMP.controls.stop()
    EndIf
    $Playingstate = -1
    $file = $aItem[2]
    $hMusic = _BASS_STREAMCREATEFILE(False, $file, 0, 0, 0)
    _BASS_CHANNELPLAY($hMusic, 0)
    $Playingstate = 1
    $tags = _BASS_TAGS_READ($hMusic, "%TITL" & "-" & "%ARTI")
    If $tags = "" & "-" & "" Then
    _GUICtrlStatusBar_SetText($StatusBar, "[" & @HOUR & ":" & @MIN & ":" & @SEC & "]" & " Konnte ID3-Tags nicht Lesen!")
    Else
    _GUICtrlStatusBar_SetText($StatusBar, "[" & @HOUR & ":" & @MIN & ":" & @SEC & "]" & " " & $tags)
    EndIf
    EndFunc ;==>_LEFTDBLCLICK

    [/autoit] [autoit][/autoit] [autoit]

    Func DISPLAY_VIS($eq = 1)
    _GDIPlus_GraphicsClear($backbuffer, -2131693328)
    If $eq > 0 Then
    $levels = _BASS_CHANNELGETLEVEL($hMusic)
    $LeftChLvl = $leftChLvlper
    $rightChLvl = $rightChLvlper
    If $max_l <= $LeftChLvl Then
    $max_l = $LeftChLvl + $fire_up
    $fall_speed_l_threshold = 20
    Else
    If $fall_speed_l_threshold <= 0 Then
    If $max_l > $LeftChLvl + $pen2_size * 2 Then $max_l -= $fall_speed
    Else
    $fall_speed_l_threshold -= 1
    If $max_l > $LeftChLvl + $pen2_size * 2 Then $max_l -= $fall_speed / 3
    EndIf
    EndIf
    If $max_r <= $rightChLvl Then
    $max_r = $rightChLvl + $fire_up
    $fall_speed_r_threshold = 20
    Else
    If $fall_speed_r_threshold <= 0 Then
    If $max_r > $rightChLvl + $pen2_size * 2 Then $max_r -= $fall_speed
    Else
    $fall_speed_r_threshold -= 1
    If $max_r > $rightChLvl + $pen2_size * 2 Then $max_r -= $fall_speed / 3
    EndIf
    EndIf
    _BASS_CHANNELGETDATA($hMusic, DllStructGetPtr($fftstruct), $BASS_DATA_FFT256)
    For $i = $fft_start To $fft_end Step $dy
    $FFT = Round(DllStructGetData($fftstruct, 1, $i + 1) * $fft_boost)
    $R = (-(Cos(1.7 * $FFT / 256) + 1) * 0.5) * 256
    $G = ((Cos(4 * $FFT / 256) + 1) * 0.5) * 256
    $B = 0
    _GDIPlus_PenSetColor($pen3, "0xFF" & Hex($R, 2) & Hex($G, 2) & Hex($B, 2))
    _GDIPlus_GraphicsDrawLine($backbuffer, $iX / 5, $i + $dyy, $iX / 5 + $FFT, $i + $dyy, $pen3)
    Next
    EndIf
    _GDIPlus_GraphicsDrawImageRect($graphics, $bitmap, $Width - $iX - 10, 8, $iX, $iY)
    EndFunc ;==>DISPLAY_VIS

    [/autoit] [autoit][/autoit] [autoit]

    #endregion andere

    [/autoit]
    • Offizieller Beitrag

    Ausser das du dein Script umgeschreiben hast hat sich nichts geändert. Dein $ArraytoPlay Array ist immer noch nicht in einem Format. Du wechselst zwichen 1D und 2D Array.

    Siehe Zeile 392 und 415. Dort wird dein 1D Array zu einem 2D Array. Du versuchst aber in Zeile 395 und 417 ein 1D Array zu benutzen.

    • Offizieller Beitrag

    Sei froh, das ich gerade Langeweile habe. Hab dein Script mal lauffähig gemacht .

    Spoiler anzeigen
    [autoit]

    #region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_icon=INRadio Entwicklungs-umgebung\INRadio.ico
    #AutoIt3Wrapper_outfile=Localtuner.exe
    #AutoIt3Wrapper_Compression=4
    #AutoIt3Wrapper_Res_Description=INR
    #AutoIt3Wrapper_Res_Fileversion=0.0.0.0
    #AutoIt3Wrapper_Res_LegalCopyright=JuraX
    #AutoIt3Wrapper_Res_Language=1031
    #AutoIt3Wrapper_Res_Field=ProductVersion|2.1
    #AutoIt3Wrapper_Res_Field=ProductName|INRadio
    #AutoIt3Wrapper_Run_Tidy=y
    #AutoIt3Wrapper_Run_Obfuscator=y
    #Obfuscator_Parameters=/striponly
    #endregion ;**** Directives created by AutoIt3Wrapper_GUI ****
    #include <Bass.au3>
    #include <BassTags.au3>
    #include <GuiListView.au3>
    #include <GuiStatusBar.au3>
    #include <IE.au3>
    #include <Misc.au3>
    #include <_GetFilesFolder_Rekursiv.au3>
    #include <File.au3>
    #include <WindowsConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <BassConstants.au3>
    #include <GDIPlus.au3>
    #include <ListViewConstants.au3>
    #include <StructureConstants.au3>

    [/autoit] [autoit][/autoit] [autoit]

    #region Wrapper
    #endregion Wrapper

    [/autoit] [autoit][/autoit] [autoit]

    ;===================================================================================================
    ;===================================================================================================
    ; INRadio-Mainmodul by JuraX
    ;===================================================================================================
    ;===================================================================================================
    Global Const $APPpfad = @AppDataCommonDir & "\INRadio\"
    Global Const $INR_INI = $APPpfad & "\INRadio.ini"
    Global $Tmsg = TrayGetMsg()
    Global $Lmsg = GUIGetMsg()
    Global $Playingstate = -1
    Global $titelnummer = 0
    Global $oWMP = ObjCreate("WMPLayer.ocx")
    Global $hMusic
    Global $Arraytoplay[1]
    Global Const $WM_DROPFILES = 0x0233
    Global $fftstruct = DllStructCreate("float[128]")
    Global $gaDropFiles[1]
    Global $aItem[2]
    Global $leftChLvlper
    Global $rightChLvlper

    [/autoit] [autoit][/autoit] [autoit]

    _GDIPlus_Startup()
    ;+++++++++++++++Startup+++++++++++++++
    #region OPT
    Opt("TrayMenuMode", 1)
    Opt("MouseCoordMode", 0)
    Opt("GUIOnEventMode", 1)
    Opt("GUIEventOptions", 1)
    #endregion OPT

    [/autoit] [autoit][/autoit] [autoit]

    #region Tray
    $ShowTray = TrayCreateItem("Anzeigen")
    $HideTray = TrayCreateItem("Verstecken")
    $Killtray = TrayCreateItem("Schließen")
    #endregion Tray

    [/autoit] [autoit][/autoit] [autoit]

    #region Bass
    _BASS_STARTUP(@ScriptDir & "\sys\BASS.dll")
    _Bass_Tags_Startup(@ScriptDir & "\sys\BassTags.dll")
    _BASS_Init(0, -1, 44100, 0, "")

    [/autoit] [autoit][/autoit] [autoit]

    If @error Then
    MsgBox(0, "Error", "Sound konnte nicht Initialisiert werden!")
    Exit
    EndIf
    #endregion Bass

    [/autoit] [autoit][/autoit] [autoit]

    #region Firststart
    $FirstStart = IniRead($INR_INI, "BOOT", "Firtsstart", "")
    Local $FS
    If $FS = "" Then
    DirCreate(@AppDataCommonDir & "\INRadio\")
    IniWrite($INR_INI, "BOOT", "Firtsstart", "False")
    EndIf
    #endregion Firststart

    [/autoit] [autoit][/autoit] [autoit]

    #region Register
    If IsDeclared("Musichandle") And $Playingstate = 1 Or 2 Then
    AdlibRegister("tagout", 3000)
    EndIf
    AdlibRegister("Aktualisieren")
    GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY")
    GUIRegisterMsg($WM_DROPFILES, 'WM_DROPFILES_FUNC')
    #endregion Register

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    ;+++++++++++++++Gui+++++++++++++++
    $Width = 380
    $Height = 670

    [/autoit] [autoit][/autoit] [autoit]

    Global $hgui = GUICreate("INRadio-Localtuner", $Width + 300, $Height, -1, -1, Default, $WS_EX_ACCEPTFILES)
    #region mp3
    $Tagoutput = GUICtrlCreateLabel("", 130, 220, 500, 70)
    $TimeprogressVIS = GUICtrlCreateProgress(8, 32, 236, 20)
    $TimeprogressNUM = GUICtrlCreateLabel(GUICtrlRead($TimeprogressVIS), 8, 8, 150, 17)

    [/autoit] [autoit][/autoit] [autoit]

    $Close = GUICtrlCreateButton("Close", 296, 160, 75, 25, 0)
    GUICtrlSetOnEvent(-1, "Shutdown_INR")

    [/autoit] [autoit][/autoit] [autoit]

    $PlayPause = GUICtrlCreateButton("Play|Pause", 216, 160, 75, 25, 0)
    GUICtrlSetOnEvent(-1, "Playpause")

    [/autoit] [autoit][/autoit] [autoit]

    $Stop = GUICtrlCreateButton("Stop", 136, 160, 75, 25, 0)
    GUICtrlSetOnEvent(-1, "Stop")

    [/autoit] [autoit][/autoit] [autoit]

    $Openfile = GUICtrlCreateButton("Andere Datei", 36, 160, 75, 25, 0)
    GUICtrlSetOnEvent(-1, "Openfile")

    [/autoit] [autoit][/autoit] [autoit]

    $NewBib = GUICtrlCreateButton("Neue Bibliothek", 136, 330)
    GUICtrlSetOnEvent(-1, "Newbib")

    [/autoit] [autoit][/autoit] [autoit]

    GUICtrlCreateLabel("Lautstärke", 8, 190, 80, 20)
    $VolumeSlider = GUICtrlCreateSlider(8, 250, 366, 30)
    GUICtrlSetOnEvent(-1, "Volumechange")

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    $Playliste = GUICtrlCreateListView('Dateiname|Pfad', 10, 375, 350, 200)
    GUICtrlSetLimit($TimeprogressVIS, 100)
    GUICtrlSetData($VolumeSlider, 50)
    SoundSetWaveVolume(50)
    $Soundextern = GUICtrlCreateProgress(8, 280, 366, 30)
    $StartPlayliste = GUICtrlCreateButton("Playliste abspielen", 20, 330)
    GUICtrlSetOnEvent(-1, "Startplayliste")

    [/autoit] [autoit][/autoit] [autoit]

    $PlaylisteForward = GUICtrlCreateButton("Vorwärts", 30, 600, 70)
    GUICtrlSetOnEvent(-1, "PlaylisteForward")

    [/autoit] [autoit][/autoit] [autoit]

    $Saveplayliste = GUICtrlCreateButton("Playliste speichern", 110, 600)
    GUICtrlSetOnEvent(-1, "Saveplayliste")

    [/autoit] [autoit][/autoit] [autoit]

    $Loadplayliste = GUICtrlCreateButton("Playliste laden", 205, 600)
    GUICtrlSetOnEvent(-1, "Loadplayliste")

    [/autoit] [autoit][/autoit] [autoit]

    $OpenJS = GUICtrlCreateButton("JSound-öffnen", 280, 600)
    GUICtrlSetOnEvent(-1, "Openjs")

    [/autoit] [autoit][/autoit] [autoit]

    $rightVolumeout = GUICtrlCreateProgress(8, 88, 236, 17)
    GUICtrlSetLimit(-1, 100, 0)
    GUICtrlCreateLabel("Right Channel Volume Level", 8, 112, 150, 17)
    $LeftVolumeout = GUICtrlCreateProgress(8, 136, 236, 17)
    GUICtrlSetLimit(-1, 100, 0)
    GUICtrlCreateLabel("Left Channel Volume Level", 8, 64, 150, 17)
    GUICtrlCreateGroup("Webradio", 400, 5, 270, $Height - 5)
    $StatusBar = _GUICtrlStatusBar_Create($hgui)
    _GUICtrlStatusBar_SetMinHeight($StatusBar, 25)
    _GUICtrlStatusBar_SetText($StatusBar, "[" & @HOUR & ":" & @MIN & ":" & @SEC & "]" & " Localtuner.exe gestartet")
    #endregion mp3

    [/autoit] [autoit][/autoit] [autoit]

    #region radio
    $oIE = _IECreateEmbedded()
    GUICtrlCreateObj($oIE, -300, -300, 0, 0)
    $SenderCombo = GUICtrlCreateCombo("", 445, 20, 153, 25)
    GUICtrlSetData(-1, "Antenne Bayern|Rock Antenne|Bayern 3|TechnoBase.FM")
    $PlayRadio = GUICtrlCreateButton("Play", 465, 60, 121, 25, 0)
    GUICtrlSetOnEvent(-1, "Playradio")

    [/autoit] [autoit][/autoit] [autoit]

    $StopRadio = GUICtrlCreateButton("Stop", 465, 92, 121, 25, 0)
    GUICtrlSetOnEvent(-1, "Stopradio")

    [/autoit] [autoit][/autoit] [autoit]

    $Credits = GUICtrlCreateButton("Credits", 465, 124, 121, 25, 0)
    GUICtrlSetOnEvent(-1, "Credits")

    [/autoit] [autoit][/autoit] [autoit]

    GUICtrlCreateLabel("Gerade gespielt:", 465, 230)
    $Playing = GUICtrlCreateLabel("", 465, 250, 150, 30)
    $URL_Y_N = GUICtrlCreateCheckbox("Internetadresse angeben", 405, 300)
    GUICtrlSetOnEvent(-1, "Url_y_n")

    [/autoit] [autoit][/autoit] [autoit]

    $Urllink = GUICtrlCreateInput("Bitte URL angeben", 405, 330)
    GUICtrlSetState(-1, $GUI_DISABLE)
    $OpenUrl = GUICtrlCreateButton("Laden", 405, 360)
    GUICtrlSetOnEvent(-1, "Openurl")

    [/autoit] [autoit][/autoit] [autoit]

    GUICtrlSetState(-1, $GUI_DISABLE)
    #endregion radio

    [/autoit] [autoit][/autoit] [autoit]

    #region GDI+
    ;==========================================Spektrum-Analysator====================================================
    $iX = 120
    $iY = 145
    $graphics = _GDIPlus_GraphicsCreateFromHWND($hgui)
    $bitmap = _GDIPlus_BitmapCreateFromGraphics($iX, $iY, $graphics)
    $backbuffer = _GDIPlus_ImageGetGraphicsContext($bitmap)
    _GDIPlus_GraphicsClear($backbuffer)
    $pen1_size = 4
    $pen1 = _GDIPlus_PenCreate(0, $pen1_size)
    $pen2_size = 4
    $pen2 = _GDIPlus_PenCreate(0, $pen2_size)
    $pen3_size = 3
    $pen3 = _GDIPlus_PenCreate(0, $pen3_size)

    [/autoit] [autoit][/autoit] [autoit]

    $fall_speed_l_threshold = 0
    $fall_speed_r_threshold = 0
    $equalizer_width = 24
    $max_l = 0
    $max_r = 0
    $fall_speed = 5
    $fire_up = 15

    [/autoit] [autoit][/autoit] [autoit]

    $fft_start = 7
    $fft_end = 127
    $fft_boost = 750
    $dy = Int($iY / ($fft_end - $fft_start)) + $pen3_size
    $dyy = Int($iY / $dy / 2)
    $eq = 1
    Dim $mpos[2]
    #endregion GDI+

    [/autoit] [autoit][/autoit] [autoit]

    #region OnEvent
    GUISetOnEvent($GUI_EVENT_CLOSE, "Windows_Event")
    GUISetOnEvent($GUI_EVENT_MINIMIZE, "Windows_Event")
    GUISetOnEvent($GUI_EVENT_RESTORE, "Windows_Event")
    #endregion OnEvent

    [/autoit] [autoit][/autoit] [autoit]

    GUISetState(@SW_SHOW)
    ;+++++++++++++++Loop+++++++++++++++
    while (True)
    $selectcode = _GUICtrlListView_GetSelectedCount($Playliste)
    If _IsPressed("2E") Then
    _GUICtrlListView_DeleteItemsSelected($Playliste)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    _GUICtrlListView_SetColumnWidth($Playliste, 1, 0)

    [/autoit] [autoit][/autoit] [autoit]

    $soundget = _SoundGetWaveVolume()
    GUICtrlSetData($Soundextern, $soundget)

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    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($TimeprogressVIS, $percent)
    $levels = _BASS_ChannelGetLevel($hMusic)
    $rightChLvl = _LoWord($levels)
    $rightChLvlper = Round(($rightChLvl / 32768) * 100, 0)
    $LeftChLvl = _HiWord($levels)
    $leftChLvlper = Round(($LeftChLvl / 32768) * 100, 0)

    [/autoit] [autoit][/autoit] [autoit]

    If $current = $song_length Then
    GUICtrlSetData($TimeprogressVIS, 0)
    _BASS_ChannelPlay($hMusic, True)

    [/autoit] [autoit][/autoit] [autoit]

    If IsArray($Arraytoplay) Then
    If $current = $song_length Then
    GUICtrlSetData($TimeprogressVIS, 0)
    If $Playingstate = 1 Then
    _BASS_ChannelStop($hMusic)
    EndIf
    $titelnummer += 1
    If $titelnummer > UBound($Arraytoplay, 1) - 1 Then $titelnummer = 0
    $Playingstate = 1
    $hMusic = _BASS_StreamCreateFile(False, $Arraytoplay[$titelnummer], 0, 0, 0)
    _BASS_ChannelPlay($hMusic, 0)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    EndIf
    EndIf
    GUICtrlSetData($rightVolumeout, $rightChLvlper)
    GUICtrlSetData($LeftVolumeout, $leftChLvlper)
    EndIf

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Display_Vis($eq)

    [/autoit] [autoit][/autoit] [autoit]

    Switch $Tmsg
    Case $ShowTray
    GUISetState(@SW_SHOW)
    Case $HideTray
    GUISetState(@SW_HIDE)
    Case $Killtray
    Exit
    EndSwitch

    [/autoit] [autoit][/autoit] [autoit]

    Switch $Lmsg
    Case $GUI_EVENT_DROPPED
    For $i = 0 To UBound($gaDropFiles) - 1
    GUICtrlCreateListViewItem(StringRegExpReplace($gaDropFiles[$i], '.*\\(.*)\..*', '$1'), $Playliste)
    _GUICtrlListView_SetColumnWidth($Playliste, 0, $LVSCW_AUTOSIZE)
    Next
    EndSwitch
    WEnd
    #endregion ;**** Directives created by AutoIt3Wrapper_GUI ****

    [/autoit] [autoit][/autoit] [autoit]

    ;+++++++++++++++Functions+++++++++++++++
    #region OnEventMode
    Func Windows_Event()
    Select
    Case @GUI_CtrlId = $GUI_EVENT_CLOSE
    Shutdown_INR()

    [/autoit] [autoit][/autoit] [autoit]

    Case @GUI_CtrlId = $GUI_EVENT_MINIMIZE
    GUISetState(@SW_MINIMIZE)

    [/autoit] [autoit][/autoit] [autoit]

    Case @GUI_CtrlId = $GUI_EVENT_RESTORE
    GUISetState(@SW_RESTORE)
    EndSelect
    EndFunc ;==>Windows_Event

    [/autoit] [autoit][/autoit] [autoit]

    Func Shutdown_INR()
    Exit
    EndFunc ;==>Shutdown_INR

    [/autoit] [autoit][/autoit] [autoit]

    Func Playpause()
    If $Playingstate = 1 Then
    _Bass_ChannelPause($hMusic)
    $Playingstate = 2
    ElseIf $Playingstate = 2 Then
    _Bass_ChannelPlay($hMusic, False)
    $Playingstate = 1
    ElseIf $Playingstate = 3 Then
    _IENavigate($oIE, "about:blank")
    $oWMP.controls.stop()
    _Bass_ChannelPlay($hMusic, False)
    $Playingstate = 1
    EndIf
    EndFunc ;==>Playpause

    [/autoit] [autoit][/autoit] [autoit]

    Func Stop()
    If $Playingstate = 1 Or 2 Then
    _Bass_ChannelStop($hMusic)
    $Playingstate = -1
    ElseIf $Playingstate = 3 Then
    _IENavigate($oIE, "about:blank")
    $oWMP.controls.stop()
    $Playingstate = -1
    EndIf
    EndFunc ;==>Stop

    [/autoit] [autoit][/autoit] [autoit]

    Func Openfile()
    $SelectedFile = FileOpenDialog("MP3-Datei öffnen...", "", "Mp3 (*.mp3)")
    $hMusic = _BASS_StreamCreateFile(False, $SelectedFile, 0, 0, 0)
    _Bass_ChannelPlay($hMusic, False)
    $Playingstate = 1
    EndFunc ;==>Openfile

    [/autoit] [autoit][/autoit] [autoit]

    Func Newbib()
    If $Playingstate = 1 Or 2 Then
    _Bass_ChannelStop($hMusic)
    $Playingstate = -1
    EndIf
    $selectedbib = FileSelectFolder("Ordner wählen", "")
    IniWrite($APPpfad & "\INRadio.ini", "Load", "BIB", $selectedbib)
    $returnputin = _GetFilesFolder_Rekursiv($selectedbib, "mp3", 0)
    _GUICtrlListView_DeleteAllItems($Playliste)
    For $i = 1 To $returnputin[0]
    $dateiname = StringSplit($returnputin[$i], "\")
    GUICtrlCreateListViewItem($dateiname[$dateiname[0]] & "|" & $returnputin[$i], $Playliste)
    Next
    EndFunc ;==>Newbib

    [/autoit] [autoit][/autoit] [autoit]

    Func Volumechange()
    $NewVolume = GUICtrlRead($VolumeSlider)
    ConsoleWrite("Volume" & $NewVolume & @CRLF)
    SoundSetWaveVolume($NewVolume)
    EndFunc ;==>Volumechange

    [/autoit] [autoit][/autoit] [autoit]

    Func Startplayliste()
    $titelnummer = 0
    If $Playingstate = 1 Then
    _BASS_ChannelStop($hMusic)
    $Playingstate = -1
    EndIf
    $Read = GUICtrlRead($Playliste)
    $sString = ""
    ReDim $Arraytoplay[_GUICtrlListView_GetItemCount($Playliste)]
    For $i = 0 To _GUICtrlListView_GetItemCount($Playliste) - 1
    $Result = StringSplit(_GUICtrlListView_GetItemTextString($Playliste, $i), "|")
    $Arraytoplay[$i] = $Result[2]
    Next
    $Playingstate = 1
    $hMusic = _BASS_StreamCreateFile(False, $Arraytoplay[$titelnummer], 0, 0, 0)
    _BASS_ChannelPlay($hMusic, True)
    _GUICtrlStatusBar_SetText($StatusBar, "[" & @HOUR & ":" & @MIN & ":" & @SEC & "]" & " Playliste gestartet")
    EndFunc ;==>Startplayliste

    [/autoit] [autoit][/autoit] [autoit]

    Func PlaylisteForward()
    If IsArray($Arraytoplay) Then
    _BASS_ChannelStop($hMusic)
    $titelnummer += 1
    If $titelnummer = UBound($Arraytoplay) Then $titelnummer = 0
    $Playingstate = 1
    $hMusic = _BASS_StreamCreateFile(False, $Arraytoplay[$titelnummer], 0, 0, 0)
    _BASS_ChannelPlay($hMusic, 0)
    EndIf
    EndFunc ;==>PlaylisteForward

    [/autoit] [autoit][/autoit] [autoit]

    Func Saveplayliste()
    $SFILE = FileSaveDialog("Playliste Speichern...", @DocumentsCommonDir, "Playlisten (*.INRP)")

    [/autoit] [autoit][/autoit] [autoit]

    Local $HFILEOUT, $aItem
    $HFILEOUT = FileOpen($SFILE, 2)
    For $j = 0 To _GUICtrlListView_GetItemCount($Playliste) - 1
    $aItem = _GUICtrlListView_GetItemTextString($Playliste, $j)
    FileWriteLine($HFILEOUT, $aItem)
    Next
    FileClose($HFILEOUT)
    EndFunc ;==>Saveplayliste

    [/autoit] [autoit][/autoit] [autoit]

    Func Loadplayliste()
    $SFILE = FileOpenDialog("Playliste laden...", @DocumentsCommonDir, "Playlisten (*.INRP)")

    [/autoit] [autoit][/autoit] [autoit]

    Local $AITEMS
    If FileExists($SFILE) Then
    _FileReadToArray($SFILE, $AITEMS)
    If IsArray($AITEMS) Then
    _GUICtrlListView_DeleteAllItems($Playliste)
    For $j = 1 To $AITEMS[0]
    GUICtrlCreateListViewItem($AITEMS[$j], $Playliste)
    Next
    EndIf
    EndIf
    EndFunc ;==>Loadplayliste

    [/autoit] [autoit][/autoit] [autoit]

    Func Openjs()

    [/autoit] [autoit][/autoit] [autoit]

    EndFunc ;==>Openjs

    [/autoit] [autoit][/autoit] [autoit]

    Func Playradio()
    GUICtrlSetData($Playing, GUICtrlRead($SenderCombo))
    GUICtrlCreateIcon("inradio.ico", "", 463, 165, 125, 50)
    If $Playingstate = 1 Or 2 Then
    _BASS_ChannelStop($hMusic)
    ElseIf $Playingstate = 3 Then
    _IENavigate($oIE, "about:blank")
    $oWMP.controls.stop()
    $Playingstate = -1
    EndIf
    If GUICtrlRead($SenderCombo) = "" Then
    MsgBox(0, "Error", "Sie haben kein Radio ausgew?hlt!")
    ElseIf GUICtrlRead($SenderCombo) = "Antenne Bayern" Then
    $oWMP.URL = "http://www.antenne.de/webradio/antenne.wmx"
    $oWMP.controls.play()
    $Playingstate = 3
    ElseIf GUICtrlRead($SenderCombo) = "Bayern 3" Then
    $oWMP.URL = "http://streams.br-online.de/bayern3_1.asx"
    $oWMP.controls.play()
    $Playingstate = 3
    ElseIf GUICtrlRead($SenderCombo) = "Rock Antenne" Then
    $oWMP.URL = "http://www.rockantenne.de/webradio/rockantenne.wmx"
    $oWMP.controls.play()
    $Playingstate = 3
    ElseIf GUICtrlRead($SenderCombo) = "B5 Aktuell" Then
    $oWMP.URL = "http://streams.br-online.de/b5aktuell_1.asx"
    $oWMP.controls.play()
    $Playingstate = 3
    ElseIf GUICtrlRead($SenderCombo) = "TechnoBase.FM" Then
    $oWMP.URL = "http://listen.technobase.fm/tunein-dsl-asx"
    $oWMP.controls.play()
    $Playingstate = 3
    EndIf
    EndFunc ;==>Playradio

    [/autoit] [autoit][/autoit] [autoit]

    Func Stopradio()
    If $Playingstate = 3 Then
    _IENavigate($oIE, "about:blank")
    $oWMP.controls.stop()
    $Playingstate = -1
    EndIf
    EndFunc ;==>Stopradio

    [/autoit] [autoit][/autoit] [autoit]

    Func Credits()
    MsgBox(64, "Credits", "(C) JuraX 2010")
    EndFunc ;==>Credits

    [/autoit] [autoit][/autoit] [autoit]

    Func Url_y_n()
    If BitAND(GUICtrlRead($URL_Y_N), $GUI_CHECKED) Then
    GUICtrlSetState($Urllink, $GUI_ENABLE)
    GUICtrlSetState($PlayRadio, $GUI_DISABLE)
    GUICtrlSetState($StopRadio, $GUI_DISABLE)
    GUICtrlSetState($Credits, $GUI_DISABLE)
    GUICtrlSetState($SenderCombo, $GUI_DISABLE)
    GUICtrlSetState($OpenUrl, $GUI_ENABLE)
    Else
    GUICtrlSetState($Urllink, $GUI_DISABLE)
    GUICtrlSetState($PlayRadio, $GUI_ENABLE)
    GUICtrlSetState($StopRadio, $GUI_ENABLE)
    GUICtrlSetState($Credits, $GUI_ENABLE)
    GUICtrlSetState($SenderCombo, $GUI_ENABLE)
    GUICtrlSetState($OpenUrl, $GUI_DISABLE)
    EndIf
    EndFunc ;==>Url_y_n

    [/autoit] [autoit][/autoit] [autoit]

    Func Openurl()
    $tourl = GUICtrlRead($Urllink)
    #region "YoutubeF"
    $youre = StringInStr($tourl, "youtube")
    If $youre >= 1 Then
    GUICtrlCreateIcon("youtube.ico", "", 35, 100, 100, 50)
    EndIf
    #endregion "YoutubeF"
    #region "MyvideoF"
    $myre = StringInStr($tourl, "myvideo")
    If $myre >= 1 Then
    GUICtrlCreateIcon("myvid.ico", "", 35, 100, 100, 50)
    EndIf
    #endregion "MyvideoF"
    $asx = StringInStr($tourl, "asx")
    If $asx >= 1 Then
    $oWMP = ObjCreate("WMPLayer.ocx")
    $oWMP.URL = $tourl
    $oWMP.controls.play()
    Else
    _IENavigate($oIE, $tourl)
    EndIf
    EndFunc ;==>Openurl
    #endregion OnEventMode

    [/autoit] [autoit][/autoit] [autoit]

    #region andere
    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

    [/autoit] [autoit][/autoit] [autoit]

    Func TAGOUT()
    $tags = _BASS_TAGS_READ($hMusic, "%TITL" & "-" & "%ARTI")
    If $Playingstate = -1 Then
    GUICtrlSetData($Tagoutput, "INR - Localtuner")
    ElseIf $tags = "" & "-" & "" Then
    GUICtrlSetData($Tagoutput, "Konnte ID3-Tags nicht Lesen!")
    Else
    GUICtrlSetData($Tagoutput, $tags)
    EndIf
    EndFunc ;==>TAGOUT

    [/autoit] [autoit][/autoit] [autoit]

    Func AKTUALISIEREN()
    $SLIDERSTATUS = GUICtrlRead($TimeprogressVIS)
    GUICtrlSetData($TimeprogressNUM, $SLIDERSTATUS)
    EndFunc ;==>AKTUALISIEREN

    [/autoit] [autoit][/autoit] [autoit]

    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], $Playliste)
    Next
    _GUICtrlListView_SetColumnWidth($Playliste, 0, $LVSCW_AUTOSIZE)
    EndFunc ;==>WM_DROPFILES_FUNC

    [/autoit] [autoit][/autoit] [autoit]

    Func WM_NOTIFY($hwnd, $MSGID, $WPARAM, $LPARAM)
    Local $TAGNMHDR, $EVENT, $HWNDFROM, $CODE
    $TAGNMHDR = DllStructCreate("int;int;int", $LPARAM)
    If @error Then Return 0
    $CODE = DllStructGetData($TAGNMHDR, 3)
    If $WPARAM = $Playliste And $CODE = -3 And _GUICtrlListView_GetSelectedCount($Playliste) > 0 Then
    For $i = 0 To _GUICtrlListView_GetItemCount($Playliste)
    If _GUICtrlListView_GetItemSelected($Playliste, $i) Then
    $aItem = _GUICtrlListView_GetItemTextArray($Playliste, $i)
    _LEFTDBLCLICK()
    EndIf
    Next
    EndIf
    Return $GUI_RUNDEFMSG
    EndFunc ;==>WM_NOTIFY

    [/autoit] [autoit][/autoit] [autoit]

    Func _LEFTDBLCLICK()
    $titelnummer = 0
    If $Playingstate = 1 Or 2 Then
    _BASS_CHANNELSTOP($hMusic)
    ElseIf $Playingstate = 3 Then
    _IENavigate($oIE, "about:blank")
    $oWMP = ObjCreate("WMPLayer.ocx")
    $oWMP.controls.stop()
    EndIf
    $Playingstate = -1
    $file = $aItem[2]
    $hMusic = _BASS_STREAMCREATEFILE(False, $file, 0, 0, 0)
    _BASS_CHANNELPLAY($hMusic, 0)
    $Playingstate = 1
    $tags = _BASS_TAGS_READ($hMusic, "%TITL" & "-" & "%ARTI")
    If $tags = "" & "-" & "" Then
    _GUICtrlStatusBar_SetText($StatusBar, "[" & @HOUR & ":" & @MIN & ":" & @SEC & "]" & " Konnte ID3-Tags nicht Lesen!")
    Else
    _GUICtrlStatusBar_SetText($StatusBar, "[" & @HOUR & ":" & @MIN & ":" & @SEC & "]" & " " & $tags)
    EndIf
    EndFunc ;==>_LEFTDBLCLICK

    [/autoit] [autoit][/autoit] [autoit]

    Func DISPLAY_VIS($eq = 1)
    _GDIPlus_GraphicsClear($backbuffer, -2131693328)
    If $eq > 0 Then
    $levels = _BASS_CHANNELGETLEVEL($hMusic)
    $LeftChLvl = $leftChLvlper
    $rightChLvl = $rightChLvlper
    If $max_l <= $LeftChLvl Then
    $max_l = $LeftChLvl + $fire_up
    $fall_speed_l_threshold = 20
    Else
    If $fall_speed_l_threshold <= 0 Then
    If $max_l > $LeftChLvl + $pen2_size * 2 Then $max_l -= $fall_speed
    Else
    $fall_speed_l_threshold -= 1
    If $max_l > $LeftChLvl + $pen2_size * 2 Then $max_l -= $fall_speed / 3
    EndIf
    EndIf
    If $max_r <= $rightChLvl Then
    $max_r = $rightChLvl + $fire_up
    $fall_speed_r_threshold = 20
    Else
    If $fall_speed_r_threshold <= 0 Then
    If $max_r > $rightChLvl + $pen2_size * 2 Then $max_r -= $fall_speed
    Else
    $fall_speed_r_threshold -= 1
    If $max_r > $rightChLvl + $pen2_size * 2 Then $max_r -= $fall_speed / 3
    EndIf
    EndIf
    _BASS_CHANNELGETDATA($hMusic, DllStructGetPtr($fftstruct), $BASS_DATA_FFT256)
    For $i = $fft_start To $fft_end Step $dy
    $FFT = Round(DllStructGetData($fftstruct, 1, $i + 1) * $fft_boost)
    $R = (-(Cos(1.7 * $FFT / 256) + 1) * 0.5) * 256
    $G = ((Cos(4 * $FFT / 256) + 1) * 0.5) * 256
    $B = 0
    _GDIPlus_PenSetColor($pen3, "0xFF" & Hex($R, 2) & Hex($G, 2) & Hex($B, 2))
    _GDIPlus_GraphicsDrawLine($backbuffer, $iX / 5, $i + $dyy, $iX / 5 + $FFT, $i + $dyy, $pen3)
    Next
    EndIf
    _GDIPlus_GraphicsDrawImageRect($graphics, $bitmap, $Width - $iX - 10, 8, $iX, $iY)
    EndFunc ;==>DISPLAY_VIS

    [/autoit] [autoit][/autoit] [autoit]

    #endregion andere

    [/autoit]


    PS: Was dagegen das ich deine EQ-Anzeige benutze?

    • Offizieller Beitrag

    Teste mal aus, ob ich noch etwas vergessen habe. Achja, dein Lautstärkeregler funzt nicht immer. Aber das schaffst du schon. :thumbup:

    • Offizieller Beitrag

    Ich hab dein Problem mit der Lautstärke auch mal gelöst.
    Schuld daran war dein Label $Tagoutput das hat deinen Slider überdeckt. Hab die Position geändert und den Style $SS_CENTER hinzugefügt. Auch die Position vom Lautstärkenlabel war ein wenig falsch gesetzt.

    Spoiler anzeigen
    [autoit]

    #include <GDIPlus.au3>
    #include <GuiStatusBar.au3>
    #include <IE.au3>
    #include <GuiListView.au3>
    #include <Misc.au3>
    #include <File.au3>
    #include <WindowsConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <ListViewConstants.au3>
    #include <StructureConstants.au3>
    #include <StaticConstants.au3>
    #region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_icon=INRadio Entwicklungs-umgebung\INRadio.ico
    #AutoIt3Wrapper_outfile=Localtuner.exe
    #AutoIt3Wrapper_Compression=4
    #AutoIt3Wrapper_Res_Description=INR
    #AutoIt3Wrapper_Res_Fileversion=0.0.0.0
    #AutoIt3Wrapper_Res_LegalCopyright=JuraX
    #AutoIt3Wrapper_Res_Language=1031
    #AutoIt3Wrapper_Res_Field=ProductVersion|2.1
    #AutoIt3Wrapper_Res_Field=ProductName|INRadio
    #AutoIt3Wrapper_Run_Tidy=y
    #AutoIt3Wrapper_Run_Obfuscator=y
    #Obfuscator_Parameters=/striponly
    #endregion ;**** Directives created by AutoIt3Wrapper_GUI ****
    #include <Bass.au3>
    #include <BassTags.au3>
    #include <GuiListView.au3>
    #include <GuiStatusBar.au3>
    #include <IE.au3>
    #include <Misc.au3>
    #include <_GetFilesFolder_Rekursiv.au3>
    #include <File.au3>
    #include <WindowsConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <BassConstants.au3>
    #include <GDIPlus.au3>
    #include <ListViewConstants.au3>
    #include <StructureConstants.au3>

    [/autoit] [autoit][/autoit] [autoit]

    #region Wrapper
    #endregion Wrapper

    [/autoit] [autoit][/autoit] [autoit]

    ;===================================================================================================
    ;===================================================================================================
    ; INRadio-Mainmodul by JuraX
    ;===================================================================================================
    ;===================================================================================================
    Global Const $APPpfad = @AppDataCommonDir & "\INRadio\"
    Global Const $INR_INI = $APPpfad & "\INRadio.ini"
    Global $Tmsg = TrayGetMsg()
    Global $Lmsg = GUIGetMsg()
    Global $Playingstate = -1
    Global $titelnummer = 0
    Global $oWMP = ObjCreate("WMPLayer.ocx")
    Global $hMusic
    Global $Arraytoplay[1]
    Global Const $WM_DROPFILES = 0x0233
    Global $fftstruct = DllStructCreate("float[128]")
    Global $gaDropFiles[1]
    Global $aItem[2]
    Global $leftChLvlper
    Global $rightChLvlper

    [/autoit] [autoit][/autoit] [autoit]

    _GDIPlus_Startup()
    ;+++++++++++++++Startup+++++++++++++++
    #region OPT
    Opt("TrayMenuMode", 1)
    Opt("MouseCoordMode", 0)
    Opt("GUIOnEventMode", 1)
    Opt("GUIEventOptions", 1)
    #endregion OPT

    [/autoit] [autoit][/autoit] [autoit]

    #region Tray
    $ShowTray = TrayCreateItem("Anzeigen")
    $HideTray = TrayCreateItem("Verstecken")
    $Killtray = TrayCreateItem("Schließen")
    #endregion Tray

    [/autoit] [autoit][/autoit] [autoit]

    #region Bass
    _BASS_STARTUP(@ScriptDir & "\sys\BASS.dll")
    _Bass_Tags_Startup(@ScriptDir & "\sys\BassTags.dll")
    _BASS_Init(0, -1, 44100, 0, "")

    [/autoit] [autoit][/autoit] [autoit]

    If @error Then
    MsgBox(0, "Error", "Sound konnte nicht Initialisiert werden!")
    Exit
    EndIf
    #endregion Bass

    [/autoit] [autoit][/autoit] [autoit]

    #region Firststart
    $FirstStart = IniRead($INR_INI, "BOOT", "Firtsstart", "")
    Local $FS
    If $FS = "" Then
    DirCreate(@AppDataCommonDir & "\INRadio\")
    IniWrite($INR_INI, "BOOT", "Firtsstart", "False")
    EndIf
    #endregion Firststart

    [/autoit] [autoit][/autoit] [autoit]

    #region Register
    If IsDeclared("Musichandle") And $Playingstate = 1 Or 2 Then
    AdlibRegister("tagout", 3000)
    EndIf
    AdlibRegister("Aktualisieren")
    GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY")
    GUIRegisterMsg($WM_DROPFILES, 'WM_DROPFILES_FUNC')
    #endregion Register

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    ;+++++++++++++++Gui+++++++++++++++
    $Width = 380
    $Height = 670

    [/autoit] [autoit][/autoit] [autoit]

    Global $hgui = GUICreate("INRadio-Localtuner", $Width + 300, $Height, -1, -1, Default, $WS_EX_ACCEPTFILES)
    #region mp3
    $Tagoutput = GUICtrlCreateLabel("", 10, 200, 366, 21, $SS_CENTER)
    $TimeprogressVIS = GUICtrlCreateProgress(8, 32, 236, 20)
    $TimeprogressNUM = GUICtrlCreateLabel(GUICtrlRead($TimeprogressVIS), 8, 8, 150, 17)

    [/autoit] [autoit][/autoit] [autoit]

    $Close = GUICtrlCreateButton("Close", 296, 160, 75, 25, 0)
    GUICtrlSetOnEvent(-1, "Shutdown_INR")

    [/autoit] [autoit][/autoit] [autoit]

    $PlayPause = GUICtrlCreateButton("Play|Pause", 216, 160, 75, 25, 0)
    GUICtrlSetOnEvent(-1, "Playpause")

    [/autoit] [autoit][/autoit] [autoit]

    $Stop = GUICtrlCreateButton("Stop", 136, 160, 75, 25, 0)
    GUICtrlSetOnEvent(-1, "Stop")

    [/autoit] [autoit][/autoit] [autoit]

    $Openfile = GUICtrlCreateButton("Andere Datei", 36, 160, 75, 25, 0)
    GUICtrlSetOnEvent(-1, "Openfile")

    [/autoit] [autoit][/autoit] [autoit]

    $NewBib = GUICtrlCreateButton("Neue Bibliothek", 136, 330)
    GUICtrlSetOnEvent(-1, "Newbib")

    [/autoit] [autoit][/autoit] [autoit]

    GUICtrlCreateLabel("Lautstärke", 8, 230, 80, 20)
    $VolumeSlider = GUICtrlCreateSlider(8, 250, 366, 30)
    GUICtrlSetOnEvent(-1, "Volumechange")

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    $Playliste = GUICtrlCreateListView('Dateiname|Pfad', 10, 375, 350, 200)
    GUICtrlSetLimit($TimeprogressVIS, 100)
    GUICtrlSetData($VolumeSlider, 50)
    SoundSetWaveVolume(50)
    $Soundextern = GUICtrlCreateProgress(8, 280, 366, 30)
    $StartPlayliste = GUICtrlCreateButton("Playliste abspielen", 20, 330)
    GUICtrlSetOnEvent(-1, "Startplayliste")

    [/autoit] [autoit][/autoit] [autoit]

    $PlaylisteForward = GUICtrlCreateButton("Vorwärts", 30, 600, 70)
    GUICtrlSetOnEvent(-1, "PlaylisteForward")

    [/autoit] [autoit][/autoit] [autoit]

    $Saveplayliste = GUICtrlCreateButton("Playliste speichern", 110, 600)
    GUICtrlSetOnEvent(-1, "Saveplayliste")

    [/autoit] [autoit][/autoit] [autoit]

    $Loadplayliste = GUICtrlCreateButton("Playliste laden", 205, 600)
    GUICtrlSetOnEvent(-1, "Loadplayliste")

    [/autoit] [autoit][/autoit] [autoit]

    $OpenJS = GUICtrlCreateButton("JSound-öffnen", 280, 600)
    GUICtrlSetOnEvent(-1, "Openjs")

    [/autoit] [autoit][/autoit] [autoit]

    $rightVolumeout = GUICtrlCreateProgress(8, 88, 236, 17)
    GUICtrlSetLimit(-1, 100, 0)
    GUICtrlCreateLabel("Right Channel Volume Level", 8, 112, 150, 17)
    $LeftVolumeout = GUICtrlCreateProgress(8, 136, 236, 17)
    GUICtrlSetLimit(-1, 100, 0)
    GUICtrlCreateLabel("Left Channel Volume Level", 8, 64, 150, 17)
    GUICtrlCreateGroup("Webradio", 400, 5, 270, $Height - 5)
    $StatusBar = _GUICtrlStatusBar_Create($hgui)
    _GUICtrlStatusBar_SetMinHeight($StatusBar, 25)
    _GUICtrlStatusBar_SetText($StatusBar, "[" & @HOUR & ":" & @MIN & ":" & @SEC & "]" & " Localtuner.exe gestartet")
    #endregion mp3

    [/autoit] [autoit][/autoit] [autoit]

    #region radio
    $oIE = _IECreateEmbedded()
    GUICtrlCreateObj($oIE, -300, -300, 0, 0)
    $SenderCombo = GUICtrlCreateCombo("", 445, 20, 153, 25)
    GUICtrlSetData(-1, "Antenne Bayern|Rock Antenne|Bayern 3|TechnoBase.FM")
    $PlayRadio = GUICtrlCreateButton("Play", 465, 60, 121, 25, 0)
    GUICtrlSetOnEvent(-1, "Playradio")

    [/autoit] [autoit][/autoit] [autoit]

    $StopRadio = GUICtrlCreateButton("Stop", 465, 92, 121, 25, 0)
    GUICtrlSetOnEvent(-1, "Stopradio")

    [/autoit] [autoit][/autoit] [autoit]

    $Credits = GUICtrlCreateButton("Credits", 465, 124, 121, 25, 0)
    GUICtrlSetOnEvent(-1, "Credits")

    [/autoit] [autoit][/autoit] [autoit]

    GUICtrlCreateLabel("Gerade gespielt:", 465, 230)
    $Playing = GUICtrlCreateLabel("", 465, 250, 150, 30)
    $URL_Y_N = GUICtrlCreateCheckbox("Internetadresse angeben", 405, 300)
    GUICtrlSetOnEvent(-1, "Url_y_n")

    [/autoit] [autoit][/autoit] [autoit]

    $Urllink = GUICtrlCreateInput("Bitte URL angeben", 405, 330)
    GUICtrlSetState(-1, $GUI_DISABLE)
    $OpenUrl = GUICtrlCreateButton("Laden", 405, 360)
    GUICtrlSetOnEvent(-1, "Openurl")

    [/autoit] [autoit][/autoit] [autoit]

    GUICtrlSetState(-1, $GUI_DISABLE)
    #endregion radio

    [/autoit] [autoit][/autoit] [autoit]

    #region GDI+
    ;==========================================Spektrum-Analysator====================================================
    $iX = 120
    $iY = 145
    $graphics = _GDIPlus_GraphicsCreateFromHWND($hgui)
    $bitmap = _GDIPlus_BitmapCreateFromGraphics($iX, $iY, $graphics)
    $backbuffer = _GDIPlus_ImageGetGraphicsContext($bitmap)
    _GDIPlus_GraphicsClear($backbuffer)
    $pen1_size = 4
    $pen1 = _GDIPlus_PenCreate(0, $pen1_size)
    $pen2_size = 4
    $pen2 = _GDIPlus_PenCreate(0, $pen2_size)
    $pen3_size = 3
    $pen3 = _GDIPlus_PenCreate(0, $pen3_size)

    [/autoit] [autoit][/autoit] [autoit]

    $fall_speed_l_threshold = 0
    $fall_speed_r_threshold = 0
    $equalizer_width = 24
    $max_l = 0
    $max_r = 0
    $fall_speed = 5
    $fire_up = 15

    [/autoit] [autoit][/autoit] [autoit]

    $fft_start = 7
    $fft_end = 127
    $fft_boost = 750
    $dy = Int($iY / ($fft_end - $fft_start)) + $pen3_size
    $dyy = Int($iY / $dy / 2)
    $eq = 1
    Dim $mpos[2]
    #endregion GDI+

    [/autoit] [autoit][/autoit] [autoit]

    #region OnEvent
    GUISetOnEvent($GUI_EVENT_CLOSE, "Windows_Event")
    GUISetOnEvent($GUI_EVENT_MINIMIZE, "Windows_Event")
    GUISetOnEvent($GUI_EVENT_RESTORE, "Windows_Event")
    #endregion OnEvent

    [/autoit] [autoit][/autoit] [autoit]

    GUISetState(@SW_SHOW)
    ;+++++++++++++++Loop+++++++++++++++
    while (True)
    $selectcode = _GUICtrlListView_GetSelectedCount($Playliste)
    If _IsPressed("2E") Then
    _GUICtrlListView_DeleteItemsSelected($Playliste)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    _GUICtrlListView_SetColumnWidth($Playliste, 1, 0)

    [/autoit] [autoit][/autoit] [autoit]

    $soundget = _SoundGetWaveVolume()
    GUICtrlSetData($Soundextern, $soundget)

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    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($TimeprogressVIS, $percent)
    $levels = _BASS_ChannelGetLevel($hMusic)
    $rightChLvl = _LoWord($levels)
    $rightChLvlper = Round(($rightChLvl / 32768) * 100, 0)
    $LeftChLvl = _HiWord($levels)
    $leftChLvlper = Round(($LeftChLvl / 32768) * 100, 0)

    [/autoit] [autoit][/autoit] [autoit]

    If $current = $song_length Then
    GUICtrlSetData($TimeprogressVIS, 0)
    _BASS_ChannelPlay($hMusic, True)

    [/autoit] [autoit][/autoit] [autoit]

    If IsArray($Arraytoplay) Then
    If $current = $song_length Then
    GUICtrlSetData($TimeprogressVIS, 0)
    If $Playingstate = 1 Then
    _BASS_ChannelStop($hMusic)
    EndIf
    $titelnummer += 1
    If $titelnummer > UBound($Arraytoplay, 1) - 1 Then $titelnummer = 0
    $Playingstate = 1
    $hMusic = _BASS_StreamCreateFile(False, $Arraytoplay[$titelnummer], 0, 0, 0)
    _BASS_ChannelPlay($hMusic, 0)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    EndIf
    EndIf
    GUICtrlSetData($rightVolumeout, $rightChLvlper)
    GUICtrlSetData($LeftVolumeout, $leftChLvlper)
    EndIf

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Display_Vis($eq)

    [/autoit] [autoit][/autoit] [autoit]

    Switch $Tmsg
    Case $ShowTray
    GUISetState(@SW_SHOW)
    Case $HideTray
    GUISetState(@SW_HIDE)
    Case $Killtray
    Exit
    EndSwitch

    [/autoit] [autoit][/autoit] [autoit]

    Switch $Lmsg
    Case $GUI_EVENT_DROPPED
    For $i = 0 To UBound($gaDropFiles) - 1
    GUICtrlCreateListViewItem(StringRegExpReplace($gaDropFiles[$i], '.*\\(.*)\..*', '$1'), $Playliste)
    _GUICtrlListView_SetColumnWidth($Playliste, 0, $LVSCW_AUTOSIZE)
    Next
    EndSwitch
    WEnd
    #endregion ;**** Directives created by AutoIt3Wrapper_GUI ****

    [/autoit] [autoit][/autoit] [autoit]

    ;+++++++++++++++Functions+++++++++++++++
    #region OnEventMode
    Func Windows_Event()
    Select
    Case @GUI_CtrlId = $GUI_EVENT_CLOSE
    Shutdown_INR()

    [/autoit] [autoit][/autoit] [autoit]

    Case @GUI_CtrlId = $GUI_EVENT_MINIMIZE
    GUISetState(@SW_MINIMIZE)

    [/autoit] [autoit][/autoit] [autoit]

    Case @GUI_CtrlId = $GUI_EVENT_RESTORE
    GUISetState(@SW_RESTORE)
    EndSelect
    EndFunc ;==>Windows_Event

    [/autoit] [autoit][/autoit] [autoit]

    Func Shutdown_INR()
    Exit
    EndFunc ;==>Shutdown_INR

    [/autoit] [autoit][/autoit] [autoit]

    Func Playpause()
    If $Playingstate = 1 Then
    _Bass_ChannelPause($hMusic)
    $Playingstate = 2
    ElseIf $Playingstate = 2 Then
    _Bass_ChannelPlay($hMusic, False)
    $Playingstate = 1
    ElseIf $Playingstate = 3 Then
    _IENavigate($oIE, "about:blank")
    $oWMP.controls.stop()
    _Bass_ChannelPlay($hMusic, False)
    $Playingstate = 1
    EndIf
    EndFunc ;==>Playpause

    [/autoit] [autoit][/autoit] [autoit]

    Func Stop()
    If $Playingstate = 1 Or 2 Then
    _Bass_ChannelStop($hMusic)
    $Playingstate = -1
    ElseIf $Playingstate = 3 Then
    _IENavigate($oIE, "about:blank")
    $oWMP.controls.stop()
    $Playingstate = -1
    EndIf
    EndFunc ;==>Stop

    [/autoit] [autoit][/autoit] [autoit]

    Func Openfile()
    $SelectedFile = FileOpenDialog("MP3-Datei öffnen...", "", "Mp3 (*.mp3)")
    $hMusic = _BASS_StreamCreateFile(False, $SelectedFile, 0, 0, 0)
    _Bass_ChannelPlay($hMusic, False)
    $Playingstate = 1
    EndFunc ;==>Openfile

    [/autoit] [autoit][/autoit] [autoit]

    Func Newbib()
    If $Playingstate = 1 Or 2 Then
    _Bass_ChannelStop($hMusic)
    $Playingstate = -1
    EndIf
    $selectedbib = FileSelectFolder("Ordner wählen", "")
    IniWrite($APPpfad & "\INRadio.ini", "Load", "BIB", $selectedbib)
    $returnputin = _GetFilesFolder_Rekursiv($selectedbib, "mp3", 0)
    _GUICtrlListView_DeleteAllItems($Playliste)
    For $i = 1 To $returnputin[0]
    $dateiname = StringSplit($returnputin[$i], "\")
    GUICtrlCreateListViewItem($dateiname[$dateiname[0]] & "|" & $returnputin[$i], $Playliste)
    Next
    EndFunc ;==>Newbib

    [/autoit] [autoit][/autoit] [autoit]

    Func Volumechange()
    $NewVolume = GUICtrlRead($VolumeSlider)
    ConsoleWrite("Volume" & $NewVolume & @CRLF)
    SoundSetWaveVolume($NewVolume)
    EndFunc ;==>Volumechange

    [/autoit] [autoit][/autoit] [autoit]

    Func Startplayliste()
    $titelnummer = 0
    If $Playingstate = 1 Then
    _BASS_ChannelStop($hMusic)
    $Playingstate = -1
    EndIf
    $Read = GUICtrlRead($Playliste)
    $sString = ""
    ReDim $Arraytoplay[_GUICtrlListView_GetItemCount($Playliste)]
    For $i = 0 To _GUICtrlListView_GetItemCount($Playliste) - 1
    $Result = StringSplit(_GUICtrlListView_GetItemTextString($Playliste, $i), "|")
    $Arraytoplay[$i] = $Result[2]
    Next
    $Playingstate = 1
    $hMusic = _BASS_StreamCreateFile(False, $Arraytoplay[$titelnummer], 0, 0, 0)
    _BASS_ChannelPlay($hMusic, True)
    _GUICtrlStatusBar_SetText($StatusBar, "[" & @HOUR & ":" & @MIN & ":" & @SEC & "]" & " Playliste gestartet")
    EndFunc ;==>Startplayliste

    [/autoit] [autoit][/autoit] [autoit]

    Func PlaylisteForward()
    If IsArray($Arraytoplay) Then
    _BASS_ChannelStop($hMusic)
    $titelnummer += 1
    If $titelnummer = UBound($Arraytoplay) Then $titelnummer = 0
    $Playingstate = 1
    $hMusic = _BASS_StreamCreateFile(False, $Arraytoplay[$titelnummer], 0, 0, 0)
    _BASS_ChannelPlay($hMusic, 0)
    EndIf
    EndFunc ;==>PlaylisteForward

    [/autoit] [autoit][/autoit] [autoit]

    Func Saveplayliste()
    $SFILE = FileSaveDialog("Playliste Speichern...", @DocumentsCommonDir, "Playlisten (*.INRP)")

    [/autoit] [autoit][/autoit] [autoit]

    Local $HFILEOUT, $aItem
    $HFILEOUT = FileOpen($SFILE, 2)
    For $j = 0 To _GUICtrlListView_GetItemCount($Playliste) - 1
    $aItem = _GUICtrlListView_GetItemTextString($Playliste, $j)
    FileWriteLine($HFILEOUT, $aItem)
    Next
    FileClose($HFILEOUT)
    EndFunc ;==>Saveplayliste

    [/autoit] [autoit][/autoit] [autoit]

    Func Loadplayliste()
    $SFILE = FileOpenDialog("Playliste laden...", @DocumentsCommonDir, "Playlisten (*.INRP)")

    [/autoit] [autoit][/autoit] [autoit]

    Local $AITEMS
    If FileExists($SFILE) Then
    _FileReadToArray($SFILE, $AITEMS)
    If IsArray($AITEMS) Then
    _GUICtrlListView_DeleteAllItems($Playliste)
    For $j = 1 To $AITEMS[0]
    GUICtrlCreateListViewItem($AITEMS[$j], $Playliste)
    Next
    EndIf
    EndIf
    EndFunc ;==>Loadplayliste

    [/autoit] [autoit][/autoit] [autoit]

    Func Openjs()

    [/autoit] [autoit][/autoit] [autoit]

    EndFunc ;==>Openjs

    [/autoit] [autoit][/autoit] [autoit]

    Func Playradio()
    GUICtrlSetData($Playing, GUICtrlRead($SenderCombo))
    GUICtrlCreateIcon("inradio.ico", "", 463, 165, 125, 50)
    If $Playingstate = 1 Or 2 Then
    _BASS_ChannelStop($hMusic)
    ElseIf $Playingstate = 3 Then
    _IENavigate($oIE, "about:blank")
    $oWMP.controls.stop()
    $Playingstate = -1
    EndIf
    If GUICtrlRead($SenderCombo) = "" Then
    MsgBox(0, "Error", "Sie haben kein Radio ausgew?hlt!")
    ElseIf GUICtrlRead($SenderCombo) = "Antenne Bayern" Then
    $oWMP.URL = "http://www.antenne.de/webradio/antenne.wmx"
    $oWMP.controls.play()
    $Playingstate = 3
    ElseIf GUICtrlRead($SenderCombo) = "Bayern 3" Then
    $oWMP.URL = "http://streams.br-online.de/bayern3_1.asx"
    $oWMP.controls.play()
    $Playingstate = 3
    ElseIf GUICtrlRead($SenderCombo) = "Rock Antenne" Then
    $oWMP.URL = "http://www.rockantenne.de/webradio/rockantenne.wmx"
    $oWMP.controls.play()
    $Playingstate = 3
    ElseIf GUICtrlRead($SenderCombo) = "B5 Aktuell" Then
    $oWMP.URL = "http://streams.br-online.de/b5aktuell_1.asx"
    $oWMP.controls.play()
    $Playingstate = 3
    ElseIf GUICtrlRead($SenderCombo) = "TechnoBase.FM" Then
    $oWMP.URL = "http://listen.technobase.fm/tunein-dsl-asx"
    $oWMP.controls.play()
    $Playingstate = 3
    EndIf
    EndFunc ;==>Playradio

    [/autoit] [autoit][/autoit] [autoit]

    Func Stopradio()
    If $Playingstate = 3 Then
    _IENavigate($oIE, "about:blank")
    $oWMP.controls.stop()
    $Playingstate = -1
    EndIf
    EndFunc ;==>Stopradio

    [/autoit] [autoit][/autoit] [autoit]

    Func Credits()
    MsgBox(64, "Credits", "(C) JuraX 2010")
    EndFunc ;==>Credits

    [/autoit] [autoit][/autoit] [autoit]

    Func Url_y_n()
    If BitAND(GUICtrlRead($URL_Y_N), $GUI_CHECKED) Then
    GUICtrlSetState($Urllink, $GUI_ENABLE)
    GUICtrlSetState($PlayRadio, $GUI_DISABLE)
    GUICtrlSetState($StopRadio, $GUI_DISABLE)
    GUICtrlSetState($Credits, $GUI_DISABLE)
    GUICtrlSetState($SenderCombo, $GUI_DISABLE)
    GUICtrlSetState($OpenUrl, $GUI_ENABLE)
    Else
    GUICtrlSetState($Urllink, $GUI_DISABLE)
    GUICtrlSetState($PlayRadio, $GUI_ENABLE)
    GUICtrlSetState($StopRadio, $GUI_ENABLE)
    GUICtrlSetState($Credits, $GUI_ENABLE)
    GUICtrlSetState($SenderCombo, $GUI_ENABLE)
    GUICtrlSetState($OpenUrl, $GUI_DISABLE)
    EndIf
    EndFunc ;==>Url_y_n

    [/autoit] [autoit][/autoit] [autoit]

    Func Openurl()
    $tourl = GUICtrlRead($Urllink)
    #region "YoutubeF"
    $youre = StringInStr($tourl, "youtube")
    If $youre >= 1 Then
    GUICtrlCreateIcon("youtube.ico", "", 35, 100, 100, 50)
    EndIf
    #endregion "YoutubeF"
    #region "MyvideoF"
    $myre = StringInStr($tourl, "myvideo")
    If $myre >= 1 Then
    GUICtrlCreateIcon("myvid.ico", "", 35, 100, 100, 50)
    EndIf
    #endregion "MyvideoF"
    $asx = StringInStr($tourl, "asx")
    If $asx >= 1 Then
    $oWMP = ObjCreate("WMPLayer.ocx")
    $oWMP.URL = $tourl
    $oWMP.controls.play()
    Else
    _IENavigate($oIE, $tourl)
    EndIf
    EndFunc ;==>Openurl
    #endregion OnEventMode

    [/autoit] [autoit][/autoit] [autoit]

    #region andere
    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

    [/autoit] [autoit][/autoit] [autoit]

    Func TAGOUT()
    $tags = _BASS_TAGS_READ($hMusic, "%TITL" & "-" & "%ARTI")
    If $Playingstate = -1 Then
    GUICtrlSetData($Tagoutput, "INR - Localtuner")
    ElseIf $tags = "" & "-" & "" Then
    GUICtrlSetData($Tagoutput, "Konnte ID3-Tags nicht Lesen!")
    Else
    GUICtrlSetData($Tagoutput, $tags)
    EndIf
    EndFunc ;==>TAGOUT

    [/autoit] [autoit][/autoit] [autoit]

    Func AKTUALISIEREN()
    $SLIDERSTATUS = GUICtrlRead($TimeprogressVIS)
    GUICtrlSetData($TimeprogressNUM, $SLIDERSTATUS)
    EndFunc ;==>AKTUALISIEREN

    [/autoit] [autoit][/autoit] [autoit]

    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], $Playliste)
    Next
    _GUICtrlListView_SetColumnWidth($Playliste, 0, $LVSCW_AUTOSIZE)
    EndFunc ;==>WM_DROPFILES_FUNC

    [/autoit] [autoit][/autoit] [autoit]

    Func WM_NOTIFY($hwnd, $MSGID, $WPARAM, $LPARAM)
    Local $TAGNMHDR, $EVENT, $HWNDFROM, $CODE
    $TAGNMHDR = DllStructCreate("int;int;int", $LPARAM)
    If @error Then Return 0
    $CODE = DllStructGetData($TAGNMHDR, 3)
    If $WPARAM = $Playliste And $CODE = -3 And _GUICtrlListView_GetSelectedCount($Playliste) > 0 Then
    For $i = 0 To _GUICtrlListView_GetItemCount($Playliste)
    If _GUICtrlListView_GetItemSelected($Playliste, $i) Then
    $aItem = _GUICtrlListView_GetItemTextArray($Playliste, $i)
    _LEFTDBLCLICK()
    EndIf
    Next
    EndIf
    Return $GUI_RUNDEFMSG
    EndFunc ;==>WM_NOTIFY

    [/autoit] [autoit][/autoit] [autoit]

    Func _LEFTDBLCLICK()
    $titelnummer = 0
    If $Playingstate = 1 Or 2 Then
    _BASS_CHANNELSTOP($hMusic)
    ElseIf $Playingstate = 3 Then
    _IENavigate($oIE, "about:blank")
    $oWMP = ObjCreate("WMPLayer.ocx")
    $oWMP.controls.stop()
    EndIf
    $Playingstate = -1
    $file = $aItem[2]
    $hMusic = _BASS_STREAMCREATEFILE(False, $file, 0, 0, 0)
    _BASS_CHANNELPLAY($hMusic, 0)
    $Playingstate = 1
    $tags = _BASS_TAGS_READ($hMusic, "%TITL" & "-" & "%ARTI")
    If $tags = "" & "-" & "" Then
    _GUICtrlStatusBar_SetText($StatusBar, "[" & @HOUR & ":" & @MIN & ":" & @SEC & "]" & " Konnte ID3-Tags nicht Lesen!")
    Else
    _GUICtrlStatusBar_SetText($StatusBar, "[" & @HOUR & ":" & @MIN & ":" & @SEC & "]" & " " & $tags)
    EndIf
    EndFunc ;==>_LEFTDBLCLICK

    [/autoit] [autoit][/autoit] [autoit]

    Func DISPLAY_VIS($eq = 1)
    _GDIPlus_GraphicsClear($backbuffer, -2131693328)
    If $eq > 0 Then
    $levels = _BASS_CHANNELGETLEVEL($hMusic)
    $LeftChLvl = $leftChLvlper
    $rightChLvl = $rightChLvlper
    If $max_l <= $LeftChLvl Then
    $max_l = $LeftChLvl + $fire_up
    $fall_speed_l_threshold = 20
    Else
    If $fall_speed_l_threshold <= 0 Then
    If $max_l > $LeftChLvl + $pen2_size * 2 Then $max_l -= $fall_speed
    Else
    $fall_speed_l_threshold -= 1
    If $max_l > $LeftChLvl + $pen2_size * 2 Then $max_l -= $fall_speed / 3
    EndIf
    EndIf
    If $max_r <= $rightChLvl Then
    $max_r = $rightChLvl + $fire_up
    $fall_speed_r_threshold = 20
    Else
    If $fall_speed_r_threshold <= 0 Then
    If $max_r > $rightChLvl + $pen2_size * 2 Then $max_r -= $fall_speed
    Else
    $fall_speed_r_threshold -= 1
    If $max_r > $rightChLvl + $pen2_size * 2 Then $max_r -= $fall_speed / 3
    EndIf
    EndIf
    _BASS_CHANNELGETDATA($hMusic, DllStructGetPtr($fftstruct), $BASS_DATA_FFT256)
    For $i = $fft_start To $fft_end Step $dy
    $FFT = Round(DllStructGetData($fftstruct, 1, $i + 1) * $fft_boost)
    $R = (-(Cos(1.7 * $FFT / 256) + 1) * 0.5) * 256
    $G = ((Cos(4 * $FFT / 256) + 1) * 0.5) * 256
    $B = 0
    _GDIPlus_PenSetColor($pen3, "0xFF" & Hex($R, 2) & Hex($G, 2) & Hex($B, 2))
    _GDIPlus_GraphicsDrawLine($backbuffer, $iX / 5, $i + $dyy, $iX / 5 + $FFT, $i + $dyy, $pen3)
    Next
    EndIf
    _GDIPlus_GraphicsDrawImageRect($graphics, $bitmap, $Width - $iX - 10, 8, $iX, $iY)
    EndFunc ;==>DISPLAY_VIS

    [/autoit] [autoit][/autoit] [autoit]

    #endregion andere

    [/autoit]