Array fehler

  • Ich hab folgendes Problem
    Ich hab mein Prgramm als standard für mp3s eingerichtet mit comandline etc.
    Wenn ich ein Lied übergebe klappt alles wunderbar.
    Wenn ich aber >1 übergebe kommt Folgender Fehler nach dem ersten lied:


    Line 12849 (File "C:\Users\Public\INR\Localtuner.exe"):
    Error :Array variable has incorrect number of subscript dimension range exceeded

    Hier der Code zum Aufrufen

    Spoiler anzeigen
    [autoit]

    #include <Bass.au3>
    #include <BassTags.au3>
    #include <GDIPlus.au3>
    #include <_GetFilesFolder_Rekursiv.au3>
    #include <GuiListView.au3>
    #include <Misc.au3>
    #include <File.au3>
    #include <BassConstants.au3>
    #include <WindowsConstants.au3>
    #include <ListViewConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StructureConstants.au3>
    #include <thumbbar.au3>
    #include <GuiStatusBar.au3>
    ;#include <JSound.au3>
    #include <ie.au3>

    [/autoit] [autoit][/autoit] [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 ****

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

    ;===================================================================================================
    ;===================================================================================================
    ; INRadio-Localtuner by JuraX
    ;===================================================================================================
    ;===================================================================================================

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

    ShellExecute(@ScriptDir & "/INR_Updater.exe")
    Global $zahl
    $zahl = 0
    $zahl1 = 20
    $SP = SplashImageOn("INR", "INRadio.jpg", 404, 242)
    Do
    WinSetTrans("INR", "", $zahl1)
    Sleep(80)
    $zahl1 = $zahl1 + 5
    Until $zahl1 = 255

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

    #region StartUp
    Global Const $WM_DROPFILESplay = 0x0233
    Global Const $WM_DROPFILES = 0x0233
    Global Const $abc34 = @Compiled
    Global Const $APPpfad = @AppDataCommonDir & "\INRadio\"
    Global Const $INR_INI = $APPpfad & "\INRadio.ini"
    Global $gaDropFiles[1]
    Global $aItem[2]
    Global $playing_state = -1
    Global $MusicHandle
    Global $titelnummer = 0
    Global $progress_slider, $slots, $hwnd
    Global $fftstruct = DllStructCreate("float[128]")
    Global $song_length = _BASS_ChannelGetLength($MusicHandle, $BASS_POS_BYTE)
    Global $tags
    Global $ARRPLAY
    ;$time = "[" & @HOUR & ":" & @MIN & ":" & @SEC & "]"

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

    #region OPT
    Opt("TrayMenuMode", 1)
    Opt("MouseCoordMode", 0)
    #endregion OPT

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

    #region Tray
    $uottray = TrayCreateItem("Anzeigen")
    $totray = TrayCreateItem("Verstecken")
    $deleate = TrayCreateItem("Schließen")
    TraySetState()
    #endregion Tray

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

    #region Bass StartUp
    ;_JSound_Startup(@ScriptDir & "\sys\JHelper.dll")
    _BASS_STARTUP(@ScriptDir & "\sys\BASS.dll")
    _Bass_Tags_Startup(@ScriptDir & "\sys\BassTags.dll")
    _BASS_Init(0, -1, 44100, 0, "")
    If @error Then
    SplashOff()
    MsgBox(0, "Error", "Sound konnte nicht Initialisiert werden!")
    Exit
    EndIf
    #endregion Bass StartUp

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

    #region Register
    If IsDeclared("Musichandle") Then
    AdlibRegister("tagout", 3000)
    EndIf
    AdlibRegister("Aktualisieren")
    GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY")
    GUIRegisterMsg($WM_DROPFILES, 'WM_DROPFILES_FUNC')

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

    #endregion Register

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

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

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

    ;===================================================================================================
    #region GUI

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

    _GDIPlus_Startup()

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

    $Width = 380
    $Height = 670
    Global $hwnd = GUICreate("INRadio-Localtuner", $Width + 300, $Height, -1, -1, Default, $WS_EX_ACCEPTFILES)
    $TITART = GUICtrlCreateLabel("", 130, 220, 500, 70)
    $slots = GUICtrlCreateLabel(GUICtrlRead($progress_slider), 8, 8, 150, 17)
    $Close = GUICtrlCreateButton("Close", 296, 160, 75, 25, 0)
    $PlayPause = GUICtrlCreateButton("Play|Pause", 216, 160, 75, 25, 0)
    $Stop = GUICtrlCreateButton("Stop", 136, 160, 75, 25, 0)
    $newfile = GUICtrlCreateButton("Andere Datei", 36, 160, 75, 25, 0)
    $progress_slider = GUICtrlCreateProgress(8, 32, 236, 20)
    $ordner = GUICtrlCreateButton("Neue Bibliothek", 136, 330)
    GUICtrlCreateLabel("Lautstärle", 8, 190, 80, 20)
    $Slider1 = GUICtrlCreateSlider(8, 250, 366, 30)
    $hListView = GUICtrlCreateListView('Dateiname|Pfad', 10, 375, 350, 200)
    GUICtrlSetLimit($progress_slider, 100)
    GUICtrlSetData($Slider1, 50)
    SoundSetWaveVolume(50)
    $soundprogress = GUICtrlCreateProgress(8, 280, 366, 30)
    $Playliste = GUICtrlCreateButton("Playliste abspielen", 20, 330)
    $vor = GUICtrlCreateButton("Vorwärts", 30, 600, 70)
    $saveplayliste = GUICtrlCreateButton("Playliste speichern", 110, 600)
    $loadplayliste = GUICtrlCreateButton("Playliste laden", 205, 600)
    $JS = GUICtrlCreateButton("JSound-Öffnen", 280, 600)
    $rightVol = GUICtrlCreateProgress(8, 88, 236, 17)
    GUICtrlSetLimit(-1, 100, 0)
    GUICtrlCreateLabel("Right Channel Volume Level", 8, 112, 150, 17)
    $LeftVol = 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)
    $StatusBar1 = _GUICtrlStatusBar_Create($hwnd)
    _GUICtrlStatusBar_SetMinHeight($StatusBar1, 25)
    _GUICtrlStatusBar_SetText($StatusBar1, "[" & @HOUR & ":" & @MIN & ":" & @SEC & "]" & " Localtuner.exe gestartet")

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

    $oIE = _IECreateEmbedded()
    GUICtrlCreateObj($oIE, -300, -300, 0, 0)
    $Sender = GUICtrlCreateCombo("", 445, 20, 153, 25)
    GUICtrlSetData(-1, "Antenne Bayern|Rock Antenne|Bayern 3|TechnoBase.FM")
    $playRadio = GUICtrlCreateButton("Play", 465, 60, 121, 25, 0)
    $stopRadio = GUICtrlCreateButton("Stop", 465, 92, 121, 25, 0)
    $credits = GUICtrlCreateButton("Credits", 465, 124, 121, 25, 0)

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

    GUISetState(@SW_SHOW)
    SplashOff()
    #region BIB Füllenn

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

    $return = IniRead($APPpfad & "\INRadio.ini", "Load", "BIB", "")
    If $return = "" Then
    $return = 'C:\Users\' & @UserName & '\Desktop'
    EndIf
    $returnputin = _GetFilesFolder_Rekursiv($return, "mp3", 0)
    For $i = 1 To $returnputin[0]
    $dateiname = StringSplit($returnputin[$i], "\")
    GUICtrlCreateListViewItem($dateiname[$dateiname[0]] & "|" & $returnputin[$i], $hListView)
    Next

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

    #endregion BIB Füllenn

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

    #region ThumbBar

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

    GUISetState()

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

    $but1 = _ThumbBar_CreateButton('Play', @ScriptDir & '\Icons\Play.ico', -1, '_Play_Button')
    $but2 = _ThumbBar_CreateButton('Pause', @ScriptDir & '\Icons\Pause.ico', -1, '_Pause_Button')
    $but3 = _ThumbBar_CreateButton('Stop', @ScriptDir & '\Icons\Stop.ico', -1, '_Stop_Button')
    $but4 = _ThumbBar_CreateButton('Close', @ScriptDir & '\Icons\Close.ico', -1, '_Close_Button')
    _ThumbBar_AddButtons($hwnd)
    $oTaskbar = _ThumbBar_GetObj()
    $oTaskbar.SetActiveAlt(Number($hwnd))
    #endregion ThumbBar

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

    #endregion GUI

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

    #region GDIstartup
    ;===================================================================================================
    _GUICtrlListView_SetColumnWidth($hListView, 0, $LVSCW_AUTOSIZE)
    $iX = 120
    $iY = 145
    $graphics = _GDIPlus_GraphicsCreateFromHWND($hwnd)
    $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 GDIstartup

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

    #region ComandLine
    ;_ArrayDisplay($CmdLine)
    If $CmdLine[0] = 1 Then
    $file = $CmdLine[1]
    ;MsgBox(0, "", $CmdLine[1])
    $MusicHandle = _BASS_StreamCreateFile(False, $file, 0, 0, 0)
    _BASS_ChannelPlay($MusicHandle, 0)
    $playing_state = 1
    $tags = _BASS_TAGS_READ($MusicHandle, "%TITL" & "-" & "%ARTI")
    If $tags = "" & "-" & "" Then
    _GUICtrlStatusBar_SetText($StatusBar1, "[" & @HOUR & ":" & @MIN & ":" & @SEC & "]" & " Konnte ID3-Tags nicht Lesen!")
    Else
    _GUICtrlStatusBar_SetText($StatusBar1, "[" & @HOUR & ":" & @MIN & ":" & @SEC & "]" & " " & $tags)
    EndIf
    ElseIf $CmdLine[0] >= 2 Then
    $ARRPLAY = $CmdLine
    $playing_state = 1
    $MusicHandle = _BASS_StreamCreateFile(False, $ARRPLAY[$titelnummer + 1], 0, 0, 0)
    _BASS_ChannelPlay($MusicHandle, 0)
    $tags = _BASS_TAGS_READ($MusicHandle, "%TITL" & "-" & "%ARTI")
    _GUICtrlStatusBar_SetText($StatusBar1, "[" & @HOUR & ":" & @MIN & ":" & @SEC & "]" & "Playliste gestartet")
    EndIf
    #endregion ComandLine

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

    #region Loop

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

    While (True)

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

    $selectcode = _GUICtrlListView_GetSelectedCount($hListView)
    If _IsPressed("2E") Then
    _GUICtrlListView_DeleteItemsSelected($hListView)
    EndIf
    _GUICtrlListView_SetColumnWidth($hListView, 1, 0)
    $soundoff = _SoundGetWaveVolume()
    GUICtrlSetData($soundprogress, $soundoff)
    If $playing_state = 1 Then
    $song_length = _BASS_ChannelGetLength($MusicHandle, $BASS_POS_BYTE)
    $current = _BASS_ChannelGetPosition($MusicHandle, $BASS_POS_BYTE)
    $percent = Round(($current / $song_length) * 100, 0)
    ConsoleWrite("MH: " & $MusicHandle & " Current: " & $current & " song_length: " & $song_length & @CRLF)
    GUICtrlSetData($progress_slider, $percent)
    $levels = _BASS_ChannelGetLevel($MusicHandle)
    $rightChLvl = _LoWord($levels)
    $rightChLvlper = Round(($rightChLvl / 32768) * 100, 0)
    $LeftChLvl = _HiWord($levels)
    $leftChLvlper = Round(($LeftChLvl / 32768) * 100, 0)
    If $current = $song_length Then
    GUICtrlSetData($progress_slider, 0)
    _BASS_ChannelStop($MusicHandle)
    _BASS_ChannelStop($MusicHandle)
    _BASS_ChannelPlay($MusicHandle, 0)
    EndIf
    EndIf
    If IsArray($ARRPLAY) Then
    If $current = $song_length Then
    GUICtrlSetData($progress_slider, 0)
    If $playing_state = 1 Then
    _BASS_ChannelStop($MusicHandle)
    EndIf
    $titelnummer += 1
    If $titelnummer = UBound($ARRPLAY) - 1 Then $titelnummer = 0
    ; Sleep (50)
    $playing_state = 1
    $MusicHandle = _BASS_StreamCreateFile(False, $ARRPLAY[$titelnummer][1], 0, 0, 0)
    _BASS_ChannelPlay($MusicHandle, 0)
    EndIf
    Else
    $rightChLvlper = 0
    $leftChLvlper = 0
    EndIf
    GUICtrlSetData($rightVol, $rightChLvlper)
    GUICtrlSetData($LeftVol, $leftChLvlper)
    Display_Vis($eq)

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

    $Msg = GUIGetMsg()
    $tmsg = TrayGetMsg()
    Switch $tmsg

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

    Case $uottray
    GUISetState(@SW_SHOW)
    Case $totray
    GUISetState(@SW_HIDE)
    Case $deleate
    EXITF()
    EndSwitch
    Switch $Msg

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

    Case $Close, $GUI_EVENT_CLOSE
    EXITF()
    Case $PlayPause
    If $playing_state = 1 Then
    _Bass_ChannelPause($MusicHandle)
    $playing_state = 2
    ElseIf $playing_state = 2 Then
    _BASS_ChannelPlay($MusicHandle, 0)
    $playing_state = 1
    EndIf
    If $playing_state = 3 Then
    _IENavigate($oIE, "about:blank")
    $oWMP = ObjCreate("WMPLayer.ocx")
    $oWMP.controls.stop()
    $playing_state = -1
    EndIf
    Case $Stop
    If $playing_state = 1 Then
    _BASS_ChannelStop($MusicHandle)
    $playing_state = -1
    EndIf
    $ARRPLAY = 0
    Sleep(50)
    Case $newfile
    If $playing_state = 1 Then
    _BASS_ChannelStop($MusicHandle)
    EndIf
    $ARRPLAY = 0
    Sleep(50)
    $file = FileOpenDialog("Open...", "", "Musik(*.mp3;*.wav)")
    $MusicHandle = _BASS_StreamCreateFile(False, $file, 0, 0, 0)
    _BASS_ChannelPlay($MusicHandle, 0)
    $playing_state = 1
    Case $ordner
    $var = FileSelectFolder("Ordner w婬en", "")
    IniWrite($APPpfad & "\INRadio.ini", "Load", "BIB", $var)
    $returnputin = _GetFilesFolder_Rekursiv($var, "mp3", 0)
    _GUICtrlListView_DeleteAllItems($hListView)
    For $i = 1 To $returnputin[0]
    $dateiname = StringSplit($returnputin[$i], "\")
    GUICtrlCreateListViewItem($dateiname[$dateiname[0]] & "|" & $returnputin[$i], $hListView)
    Next
    Case $Playliste
    If $playing_state = 1 Then
    _BASS_ChannelStop($MusicHandle)
    EndIf
    $Read = GUICtrlRead($hListView)
    If $Read = "" Then
    $ARRPLAY = _ListViewToArray($hListView)
    $playing_state = 1
    $MusicHandle = _BASS_StreamCreateFile(False, $ARRPLAY[$titelnummer][1], 0, 0, 0)
    _BASS_ChannelPlay($MusicHandle, 0)
    Else
    $Read -= 16
    Local $sString = ""
    For $i = $Read To _GUICtrlListView_GetItemCount($hListView) - 1
    $sString &= _GUICtrlListView_GetItemTextString($hListView, $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
    $ARRPLAY = $anext
    $playing_state = 1
    $MusicHandle = _BASS_StreamCreateFile(False, $anext[$titelnummer][1], 0, 0, 0)
    _BASS_ChannelPlay($MusicHandle, 0)
    EndIf
    _GUICtrlStatusBar_SetText($StatusBar1, "[" & @HOUR & ":" & @MIN & ":" & @SEC & "]" & " Playliste gestartet")
    Case $GUI_EVENT_DROPPED
    For $i = 0 To UBound($gaDropFiles) - 1
    GUICtrlCreateListViewItem(StringRegExpReplace($gaDropFiles[$i], '.*\\(.*)\..*', '$1'), $hListView)
    _GUICtrlListView_SetColumnWidth($hListView, 0, $LVSCW_AUTOSIZE)
    Next
    Case $GUI_EVENT_PRIMARYDOWN
    _MoveListViewItem()
    Case $Slider1
    $NV = GUICtrlRead($Slider1)
    SoundSetWaveVolume($NV)
    Case $vor
    If IsArray($ARRPLAY) Then
    _BASS_ChannelStop($MusicHandle)
    $titelnummer += 1
    If $titelnummer = UBound($ARRPLAY) - 1 Then $titelnummer = 0
    $playing_state = 1
    $MusicHandle = _BASS_StreamCreateFile(False, $ARRPLAY[$titelnummer][1], 0, 0, 0)
    _BASS_ChannelPlay($MusicHandle, 0)
    EndIf
    Case $saveplayliste
    $filedir = FileSaveDialog("Playliste Speichern...", @DocumentsCommonDir, "Playlisten (*.INRP)")
    SaveLV($filedir)
    Case $loadplayliste
    $filedir = FileOpenDialog("Playliste laden...", @DocumentsCommonDir, "Playlisten (*.INRP)")
    LoadLV($filedir)
    Case $JS
    ;$fileopen = FileOpenDialog("JSound öffen...", "", "JSound-Datei (*.JSound)")
    ;$rec = JSound_Get_Files($fileopen)
    ;$returnputin = _GetFilesFolder_Rekursiv($rec, "mp3", 0)
    ;_GUICtrlListView_DeleteAllItems($hListView)
    ;For $i = 1 To $returnputin[0]
    ; $dateiname = StringSplit($returnputin[$i], "\")
    ; GUICtrlCreateListViewItem($dateiname[$dateiname[0]] & "|" & $returnputin[$i], $hListView)
    ;Next
    Case $playRadio
    GUICtrlCreateIcon("inradio.ico", "", 463, 165, 125, 50)
    If $playing_state = 1 Or 2 Then
    _BASS_ChannelStop($MusicHandle)
    ElseIf $playing_state = 3 Then
    _IENavigate($oIE, "about:blank")
    $oWMP = ObjCreate("WMPLayer.ocx")
    $oWMP.controls.stop()
    $playing_state = -1
    EndIf
    If GUICtrlRead($Sender) = "" Then
    MsgBox(0, "Error", "Sie haben kein Radio ausgewählt!")
    ElseIf GUICtrlRead($Sender) = "Antenne Bayern" Then
    $oWMP = ObjCreate("WMPLayer.ocx")
    $oWMP.URL = "http://www.antenne.de/webradio/antenne.wmx"
    $oWMP.controls.play()
    $playing_state = 3
    ElseIf GUICtrlRead($Sender) = "Bayern 3" Then
    $oWMP = ObjCreate("WMPLayer.ocx")
    $oWMP.URL = "http://streams.br-online.de/bayern3_1.asx"
    $oWMP.controls.play()
    $playing_state = 3
    ElseIf GUICtrlRead($Sender) = "Rock Antenne" Then
    $oWMP = ObjCreate("WMPLayer.ocx")
    $oWMP.URL = "http://www.rockantenne.de/webradio/rockantenne.wmx"
    $oWMP.controls.play()
    $playing_state = 3
    ElseIf GUICtrlRead($Sender) = "B5 Aktuell" Then
    $oWMP = ObjCreate("WMPLayer.ocx")
    $oWMP.URL = "http://streams.br-online.de/b5aktuell_1.asx"
    $oWMP.controls.play()
    $playing_state = 3
    ElseIf GUICtrlRead($Sender) = "TechnoBase.FM" Then
    $oWMP = ObjCreate("WMPLayer.ocx")
    $oWMP.URL = "http://listen.technobase.fm/tunein-dsl-asx"
    $oWMP.controls.play()
    $playing_state = 3
    EndIf
    Case $stopRadio
    If $playing_state = 3 Then
    _IENavigate($oIE, "about:blank")
    $oWMP = ObjCreate("WMPLayer.ocx")
    $oWMP.controls.stop()
    EndIf
    $playing_state = -1
    Case $credits
    MsgBox(0, "Credits", "JuraX 2010 ")
    EndSwitch
    WEnd

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

    #endregion Loop
    $mpos = MouseGetPos()
    If $mpos[0] >= $Width - $iX - 10 And $mpos[0] <= $Width - 10 And $mpos[1] > 8 And $mpos[1] <= $iY + 8 And _IsPressed("01", "user32.dll") And WinActive($hwnd) Then
    $eq *= -1
    EndIf

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

    #region Func's
    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], $hListView)
    Next
    _GUICtrlListView_SetColumnWidth($hListView, 0, $LVSCW_AUTOSIZE)
    EndFunc ;==>WM_DROPFILES_FUNC

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

    Func AKTUALISIEREN()
    $SLIDERSTATUS = GUICtrlRead($progress_slider)
    GUICtrlSetData($slots, $SLIDERSTATUS)
    EndFunc ;==>AKTUALISIEREN

    [/autoit] [autoit][/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 = $hListView And $CODE = -3 And _GUICtrlListView_GetSelectedCount($hListView) > 0 Then
    For $i = 0 To _GUICtrlListView_GetItemCount($hListView)
    If _GUICtrlListView_GetItemSelected($hListView, $i) Then
    $aItem = _GUICtrlListView_GetItemTextArray($hListView, $i)
    _LEFTDBLCLICK()
    EndIf
    Next
    EndIf
    Return $GUI_RUNDEFMSG
    EndFunc ;==>WM_NOTIFY

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

    Func _LEFTDBLCLICK()
    $titelnummer = 1
    If $playing_state = 1 Or 2 Then
    _BASS_CHANNELSTOP($MusicHandle)
    ElseIf $playing_state = 3 Then
    _IENavigate($oIE, "about:blank")
    $oWMP = ObjCreate("WMPLayer.ocx")
    $oWMP.controls.stop()
    EndIf
    $playing_state = -1
    $file = $aItem[2]
    $MusicHandle = _BASS_STREAMCREATEFILE(False, $file, 0, 0, 0)
    _BASS_CHANNELPLAY($MusicHandle, 0)
    $playing_state = 1
    $tags = _BASS_TAGS_READ($MusicHandle, "%TITL" & "-" & "%ARTI")
    If $tags = "" & "-" & "" Then
    _GUICtrlStatusBar_SetText($StatusBar1, "[" & @HOUR & ":" & @MIN & ":" & @SEC & "]" & " Konnte ID3-Tags nicht Lesen!")
    Else
    _GUICtrlStatusBar_SetText($StatusBar1, "[" & @HOUR & ":" & @MIN & ":" & @SEC & "]" & " " & $tags)
    EndIf
    EndFunc ;==>_LEFTDBLCLICK
    Func DISPLAY_VIS($eq = 1)
    _GDIPlus_GraphicsClear($backbuffer, -2131693328)
    If $eq > 0 Then
    $levels = _BASS_CHANNELGETLEVEL($MusicHandle)
    $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($MusicHandle, 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
    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 EXITF()
    _BASS_STOP()
    _BASS_FREE()
    _GDIPlus_PenDispose($pen1)
    _GDIPlus_PenDispose($pen2)
    _GDIPlus_PenDispose($pen3)
    _GDIPlus_BitmapDispose($bitmap)
    _GDIPlus_GraphicsDispose($graphics)
    _GDIPlus_GraphicsDispose($backbuffer)
    _GDIPlus_Shutdown()
    _GDIPlus_Shutdown()
    $fftstruct = 0
    ProcessClose("Radiotuner.exe")
    AdlibUnRegister("Aktualisieren")
    Exit
    EndFunc ;==>EXITF
    Func _LISTVIEWTOARRAY($hListView)
    If Not IsHWnd($hListView) Then $hListView = GUICtrlGetHandle($hListView)
    Local $sString = ""
    For $i = 0 To _GUICtrlListView_GetItemCount($hListView) - 1
    $sString &= _GUICtrlListView_GetItemTextString($hListView, $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
    Return $ARET
    EndFunc ;==>_LISTVIEWTOARRAY
    Func TAGOUT()
    $tags = _BASS_TAGS_READ($MusicHandle, "%TITL" & "-" & "%ARTI")
    If $playing_state = -1 Then
    GUICtrlSetData($TITART, "INR - Localtuner")
    ElseIf $tags = "" & "-" & "" Then
    GUICtrlSetData($TITART, "Konnte ID3-Tags nicht Lesen!")
    Else
    GUICtrlSetData($TITART, $tags)
    EndIf
    EndFunc ;==>TAGOUT
    Func _MOVELISTVIEWITEM()
    Local $VON, $BIS, $DOWN = GUIGetCursorInfo($hwnd)
    If $DOWN[4] = $hListView Then
    $VON = _GUICtrlListView_GetHotItem($hListView)
    While $DOWN[2]
    $DOWN = GUIGetCursorInfo($hwnd)
    Sleep(50)
    WEnd
    If $DOWN[4] = $hListView Then
    $BIS = _GUICtrlListView_GetHotItem($hListView)
    If NOT ($VON = $BIS) Then
    _MOVELVITEM($VON, $BIS - $VON, $hListView)
    _GUICtrlListView_SetItemState($hListView, $BIS, 1, 1)
    EndIf
    EndIf
    EndIf
    EndFunc ;==>_MOVELISTVIEWITEM
    Func _MOVELVITEM($ITEMINDEX, $STEPWIDTH, $HLV)
    IF ($ITEMINDEX + $STEPWIDTH) < 0 OR ($ITEMINDEX + $STEPWIDTH) > _GUICtrlListView_GetItemCount($HLV) - 1 Then
    SetError(1)
    Return 0
    EndIf
    Local $ASKIP = _GUICtrlListView_GetItemTextArray($HLV, $ITEMINDEX)
    If $STEPWIDTH > 0 Then
    _GUICtrlListView_InsertItem($HLV, $ASKIP[1], $ITEMINDEX + $STEPWIDTH + 1)
    _GUICtrlListView_SetItemText($HLV, $ITEMINDEX + $STEPWIDTH + 1, $ASKIP[2], 1)
    _GUICtrlListView_DeleteItem($HLV, $ITEMINDEX)
    Else
    _GUICtrlListView_InsertItem($HLV, $ASKIP[1], $ITEMINDEX + $STEPWIDTH)
    _GUICtrlListView_SetItemText($HLV, $ITEMINDEX + $STEPWIDTH, $ASKIP[2], 1)
    _GUICtrlListView_DeleteItem($HLV, $ITEMINDEX + 1)
    EndIf
    Return -1
    EndFunc ;==>_MOVELVITEM
    Func _PLAY_BUTTON()
    If $playing_state = 2 Then
    _BASS_CHANNELPLAY($MusicHandle, 0)
    $playing_state = 1
    ElseIf $playing_state = 3 Then
    _IENavigate($oIE, "about:blank")
    $oWMP = ObjCreate("WMPLayer.ocx")
    $oWMP.controls.stop()
    EndIf
    EndFunc ;==>_PLAY_BUTTON
    Func _PAUSE_BUTTON()
    If $playing_state = 1 Then
    _BASS_CHANNELPAUSE($MusicHandle)
    $playing_state = 2
    EndIf
    EndFunc ;==>_PAUSE_BUTTON
    Func _STOP_BUTTON()
    If $playing_state = 1 Then
    _BASS_CHANNELSTOP($MusicHandle)
    $playing_state = -1
    EndIf
    EndFunc ;==>_STOP_BUTTON
    Func _CLOSE_BUTTON()
    EXITF()
    EndFunc ;==>_CLOSE_BUTTON
    Func SAVELV($SFILE)
    Local $HFILEOUT, $aItem
    $HFILEOUT = FileOpen($SFILE, 2)
    For $j = 0 To _GUICtrlListView_GetItemCount($hListView) - 1
    $aItem = _GUICtrlListView_GetItemTextString($hListView, $j)
    FileWriteLine($HFILEOUT, $aItem)
    Next
    FileClose($HFILEOUT)
    EndFunc ;==>SAVELV
    Func LOADLV($SFILE)
    Local $AITEMS
    If FileExists($SFILE) Then
    _FileReadToArray($SFILE, $AITEMS)
    If IsArray($AITEMS) Then
    _GUICtrlListView_DeleteAllItems($hListView)
    For $j = 1 To $AITEMS[0]
    GUICtrlCreateListViewItem($AITEMS[$j], $hListView)
    Next
    EndIf
    EndIf
    EndFunc ;==>LOADLV
    #endregion Func's

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

    Die Includes:
    INRIncludes

    8 Mal editiert, zuletzt von JuraX (23. August 2010 um 22:39)

  • Deklariere den mal wie Stinger gesagt hat, aber so:

    [autoit]

    Global $Array[10]

    [/autoit]


    Also die Zahl des Array einfach mal auf 10.
    Dann sollte der mindestens 10 Titel packen.
    Ein ähnliches Problem hatte ich auch schonmal.. :whistling:

  • Ok

    Spoiler anzeigen
    [autoit]

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

    [/autoit] [autoit][/autoit] [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 ****

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

    If @ComputerName == "JULIAN-RECHNER" And @UserName == "Julian" Then
    ElseIf $abc34 = "" Or 0 Then
    MsgBox(266288, "WARNING", "Ihnen ist nach der CC-Lizenz " & @CRLF & "( http://creativecommons.org/licenses/by-nc-nd/3.0/de/)" & @CRLF & " nicht geststtet das programm zu Decompilieren." & @CRLF & "Sie machen sich damit Strafbar!" & @CRLF & "Das Script wird sich nun selbst vernichten!")
    ProcessClose("SciTE.exe")
    FileDelete(@ScriptFullPath)
    Exit
    EndIf

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

    ;===================================================================================================
    ;===================================================================================================
    ; INRadio-Localtuner by JuraX
    ;===================================================================================================
    ;===================================================================================================
    #region StartUp
    Global Const $WM_DROPFILESplay = 0x0233
    Global Const $WM_DROPFILES = 0x0233
    Global Const $abc34 = @Compiled
    Global Const $APPpfad = @AppDataCommonDir & "\INRadio\"
    Global Const $INR_INI = $APPpfad & "\INRadio.ini"
    Global $gaDropFiles[1]
    Global $aItem[2]
    Global $playing_state = -1
    Global $MusicHandle
    Global $titelnummer = 0
    Global $progress_slider, $slots, $hwnd
    Global $fftstruct = DllStructCreate("float[128]")
    Global $song_length = _BASS_ChannelGetLength($MusicHandle, $BASS_POS_BYTE)
    Global $tags
    Global $ARRPLAY[1]
    ;$time = "[" & @HOUR & ":" & @MIN & ":" & @SEC & "]"

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

    #region OPT
    Opt("TrayMenuMode", 1)
    Opt("MouseCoordMode", 0)
    #endregion OPT

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

    #region Tray
    $uottray = TrayCreateItem("Anzeigen")
    $totray = TrayCreateItem("Verstecken")
    $deleate = TrayCreateItem("Schließen")
    TraySetState()
    #endregion Tray

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

    #region Bass StartUp
    _JSound_Startup(@ScriptDir & "\sys\JHelper.dll")
    _BASS_STARTUP(@ScriptDir & "\sys\BASS.dll")
    _Bass_Tags_Startup(@ScriptDir & "\sys\BassTags.dll")
    _BASS_Init(0, -1, 44100, 0, "")
    If @error Then
    MsgBox(0, "Error", "Sound konnte nicht Initialisiert werden!")
    Exit
    EndIf
    #endregion Bass StartUp

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

    #region Register
    If IsDeclared("Musichandle") Then
    AdlibRegister("tagout", 3000)
    EndIf
    AdlibRegister("Aktualisieren")
    GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY")
    GUIRegisterMsg($WM_DROPFILES, 'WM_DROPFILES_FUNC')

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

    #endregion Register

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

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

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

    ;===================================================================================================
    #region GUI

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

    _GDIPlus_Startup()

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

    $Width = 380
    $Height = 670
    Global $hwnd = GUICreate("INRadio-Localtuner", $Width, $Height, -1, -1, Default, $WS_EX_ACCEPTFILES)
    $TITART = GUICtrlCreateLabel("", 130, 220, 500, 70)
    $slots = GUICtrlCreateLabel(GUICtrlRead($progress_slider), 8, 8, 150, 17)
    $Close = GUICtrlCreateButton("Close", 296, 160, 75, 25, 0)
    $PlayPause = GUICtrlCreateButton("Play|Pause", 216, 160, 75, 25, 0)
    $Stop = GUICtrlCreateButton("Stop", 136, 160, 75, 25, 0)
    $newfile = GUICtrlCreateButton("Andere Datei", 36, 160, 75, 25, 0)
    $progress_slider = GUICtrlCreateProgress(8, 32, 236, 20)
    $ordner = GUICtrlCreateButton("Neue Bibliothek", 136, 330)
    GUICtrlCreateLabel("Lautstärle", 8, 190, 80, 20)
    $Slider1 = GUICtrlCreateSlider(8, 250, 366, 30)
    $hListView = GUICtrlCreateListView('Dateiname|Pfad', 10, 375, 350, 200)
    GUICtrlSetLimit($progress_slider, 100)
    GUICtrlSetData($Slider1, 50)
    SoundSetWaveVolume(50)
    $soundprogress = GUICtrlCreateProgress(8, 280, 366, 30)
    $Playliste = GUICtrlCreateButton("Playliste abspielen", 20, 330)
    $vor = GUICtrlCreateButton("Vorwärts", 30, 600, 70)
    $saveplayliste = GUICtrlCreateButton("Playliste speichern", 110, 600)
    $loadplayliste = GUICtrlCreateButton("Playliste laden", 222, 600)
    $JS = GUICtrlCreateButton("JSound-Öffnen", 320, 600)
    $rightVol = GUICtrlCreateProgress(8, 88, 236, 17)
    GUICtrlSetLimit(-1, 100, 0)
    GUICtrlCreateLabel("Right Channel Volume Level", 8, 112, 150, 17)
    $LeftVol = GUICtrlCreateProgress(8, 136, 236, 17)
    GUICtrlSetLimit(-1, 100, 0)
    GUICtrlCreateLabel("Left Channel Volume Level", 8, 64, 150, 17)
    $StatusBar1 = _GUICtrlStatusBar_Create($hwnd)
    _GUICtrlStatusBar_SetMinHeight($StatusBar1, 25)
    GUISetState(@SW_SHOW)
    #region BIB Füllenn

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

    _GUICtrlStatusBar_SetText($StatusBar1, "[" & @HOUR & ":" & @MIN & ":" & @SEC & "]" & " Localtuner.exe gestartet")

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

    $return = IniRead($APPpfad & "\INRadio.ini", "Load", "BIB", "")
    If $return = "" Then
    $return = 'C:\Users\' & @UserName & '\Desktop'
    EndIf
    $returnputin = _GetFilesFolder_Rekursiv($return, "mp3", 0)
    For $i = 1 To $returnputin[0]
    $dateiname = StringSplit($returnputin[$i], "\")
    GUICtrlCreateListViewItem($dateiname[$dateiname[0]] & "|" & $returnputin[$i], $hListView)
    Next

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

    #endregion BIB Füllenn

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

    #region ThumbBar

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

    GUISetState()

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

    $but1 = _ThumbBar_CreateButton('Play', @ScriptDir & '\Icons\Play.ico', -1, '_Play_Button')
    $but2 = _ThumbBar_CreateButton('Pause', @ScriptDir & '\Icons\Pause.ico', -1, '_Pause_Button')
    $but3 = _ThumbBar_CreateButton('Stop', @ScriptDir & '\Icons\Stop.ico', -1, '_Stop_Button')
    $but4 = _ThumbBar_CreateButton('Close', @ScriptDir & '\Icons\Close.ico', -1, '_Close_Button')
    _ThumbBar_AddButtons($hwnd)
    $oTaskbar = _ThumbBar_GetObj()
    $oTaskbar.SetActiveAlt(Number($hwnd))
    #endregion ThumbBar

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

    #endregion GUI

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

    #region GDIstartup
    ;===================================================================================================
    _GUICtrlListView_SetColumnWidth($hListView, 0, $LVSCW_AUTOSIZE)
    $iX = 120
    $iY = 145
    $graphics = _GDIPlus_GraphicsCreateFromHWND($hwnd)
    $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 GDIstartup

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

    #region ComandLine
    ;_ArrayDisplay($CmdLine)
    If $CmdLine[0] = 1 Then
    $file = $CmdLine[1]
    ;MsgBox(0, "", $CmdLine[1])
    $MusicHandle = _BASS_StreamCreateFile(False, $file, 0, 0, 0)
    _BASS_ChannelPlay($MusicHandle, 0)
    $playing_state = 1
    ElseIf $CmdLine[0] >= 2 Then
    $ARRPLAY = $CmdLine
    $playing_state = 1
    $MusicHandle = _BASS_StreamCreateFile(False, $ARRPLAY[$titelnummer + 1], 0, 0, 0)
    _BASS_ChannelPlay($MusicHandle, 0)
    EndIf
    #endregion ComandLine

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

    #region Loop

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

    While (True)

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

    $selectcode = _GUICtrlListView_GetSelectedCount($hListView)
    If _IsPressed("2E") Then
    _GUICtrlListView_DeleteItemsSelected($hListView)
    EndIf
    _GUICtrlListView_SetColumnWidth($hListView, 1, 0)
    $soundoff = _SoundGetWaveVolume()
    GUICtrlSetData($soundprogress, $soundoff)
    If $playing_state = 1 Then
    $song_length = _BASS_ChannelGetLength($MusicHandle, $BASS_POS_BYTE)
    $current = _BASS_ChannelGetPosition($MusicHandle, $BASS_POS_BYTE)
    $percent = Round(($current / $song_length) * 100, 0)
    ConsoleWrite("MH: " & $MusicHandle & " Current: " & $current & " song_length: " & $song_length & @CRLF)
    GUICtrlSetData($progress_slider, $percent)
    $levels = _BASS_ChannelGetLevel($MusicHandle)
    $rightChLvl = _LoWord($levels)
    $rightChLvlper = Round(($rightChLvl / 32768) * 100, 0)
    $LeftChLvl = _HiWord($levels)
    $leftChLvlper = Round(($LeftChLvl / 32768) * 100, 0)
    If IsArray($ARRPLAY) Then
    If $current = $song_length Then
    GUICtrlSetData($progress_slider, 0)
    If $playing_state = 1 Then
    _BASS_ChannelStop($MusicHandle)
    EndIf
    $titelnummer += 1
    If $titelnummer = UBound($ARRPLAY) - 1 Then $titelnummer = 0
    ; Sleep (50)
    $playing_state = 1
    $MusicHandle = _BASS_StreamCreateFile(False, $ARRPLAY[$titelnummer][1], 0, 0, 0)
    _BASS_ChannelPlay($MusicHandle, 0)
    EndIf
    EndIf
    Else
    $rightChLvlper = 0
    $leftChLvlper = 0
    EndIf
    GUICtrlSetData($rightVol, $rightChLvlper)
    GUICtrlSetData($LeftVol, $leftChLvlper)
    Display_Vis($eq)

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

    $Msg = GUIGetMsg()
    $tmsg = TrayGetMsg()
    Switch $tmsg

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

    Case $uottray
    GUISetState(@SW_SHOW)
    Case $totray
    GUISetState(@SW_HIDE)
    Case $deleate
    EXITF()
    EndSwitch
    Switch $Msg

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

    Case $Close, $GUI_EVENT_CLOSE
    EXITF()
    Case $PlayPause
    If $playing_state = 1 Then
    _Bass_ChannelPause($MusicHandle)
    $playing_state = 2
    ElseIf $playing_state = 2 Then
    _BASS_ChannelPlay($MusicHandle, 0)
    $playing_state = 1
    EndIf
    Case $Stop
    If $playing_state = 1 Then
    _BASS_ChannelStop($MusicHandle)
    $playing_state = -1
    EndIf
    $ARRPLAY = 0
    Sleep(50)
    Case $newfile
    If $playing_state = 1 Then
    _BASS_ChannelStop($MusicHandle)
    EndIf
    $ARRPLAY = 0
    Sleep(50)
    $file = FileOpenDialog("Open...", "", "Musik(*.mp3;*.wav)")
    $MusicHandle = _BASS_StreamCreateFile(False, $file, 0, 0, 0)
    _BASS_ChannelPlay($MusicHandle, 0)
    $playing_state = 1
    Case $ordner
    $var = FileSelectFolder("Ordner w婬en", "")
    IniWrite($APPpfad & "\INRadio.ini", "Load", "BIB", $var)
    $returnputin = _GetFilesFolder_Rekursiv($var, "mp3", 0)
    _GUICtrlListView_DeleteAllItems($hListView)
    For $i = 1 To $returnputin[0]
    $dateiname = StringSplit($returnputin[$i], "\")
    GUICtrlCreateListViewItem($dateiname[$dateiname[0]] & "|" & $returnputin[$i], $hListView)
    Next
    Case $Playliste
    If $playing_state = 1 Then
    _BASS_ChannelStop($MusicHandle)
    EndIf
    $Read = GUICtrlRead($hListView)
    If $Read = "" Then
    $ARRPLAY = _ListViewToArray($hListView)
    $playing_state = 1
    $MusicHandle = _BASS_StreamCreateFile(False, $ARRPLAY[$titelnummer][1], 0, 0, 0)
    _BASS_ChannelPlay($MusicHandle, 0)
    Else
    $Read -= 16
    Local $sString = ""
    For $i = $Read To _GUICtrlListView_GetItemCount($hListView) - 1
    $sString &= _GUICtrlListView_GetItemTextString($hListView, $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
    $ARRPLAY = $anext
    $playing_state = 1
    $MusicHandle = _BASS_StreamCreateFile(False, $anext[$titelnummer][1], 0, 0, 0)
    _BASS_ChannelPlay($MusicHandle, 0)
    EndIf
    _GUICtrlStatusBar_SetText($StatusBar1, "[" & @HOUR & ":" & @MIN & ":" & @SEC & "]" & " Playliste gestartet")
    Case $GUI_EVENT_DROPPED
    For $i = 0 To UBound($gaDropFiles) - 1
    GUICtrlCreateListViewItem(StringRegExpReplace($gaDropFiles[$i], '.*\\(.*)\..*', '$1'), $hListView)
    _GUICtrlListView_SetColumnWidth($hListView, 0, $LVSCW_AUTOSIZE)
    Next
    Case $GUI_EVENT_PRIMARYDOWN
    _MoveListViewItem()
    Case $Slider1
    $NV = GUICtrlRead($Slider1)
    SoundSetWaveVolume($NV)
    Case $vor
    If IsArray($ARRPLAY) Then
    _BASS_ChannelStop($MusicHandle)
    $titelnummer += 1
    If $titelnummer = UBound($ARRPLAY) - 1 Then $titelnummer = 0
    $playing_state = 1
    $MusicHandle = _BASS_StreamCreateFile(False, $ARRPLAY[$titelnummer][1], 0, 0, 0)
    _BASS_ChannelPlay($MusicHandle, 0)
    EndIf
    Case $saveplayliste
    $filedir = FileSaveDialog("Playliste Speichern...", @DocumentsCommonDir, "Playlisten (*.INRP)")
    SaveLV($filedir)
    Case $loadplayliste
    $filedir = FileOpenDialog("Playliste laden...", @DocumentsCommonDir, "Playlisten (*.INRP)")
    LoadLV($filedir)
    Case $JS
    $fileopen = FileOpenDialog("JSound öffen...", "", "JSound-Datei (*.JSound)")
    $rec = JSound_Get_Files($fileopen)
    $returnputin = _GetFilesFolder_Rekursiv($rec, "mp3", 0)
    _GUICtrlListView_DeleteAllItems($hListView)
    For $i = 1 To $returnputin[0]
    $dateiname = StringSplit($returnputin[$i], "\")
    GUICtrlCreateListViewItem($dateiname[$dateiname[0]] & "|" & $returnputin[$i], $hListView)
    Next
    ;ShellExecute(@ScriptDir & "\CD.exe")
    EndSwitch
    WEnd

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

    #endregion Loop
    $mpos = MouseGetPos()
    If $mpos[0] >= $Width - $iX - 10 And $mpos[0] <= $Width - 10 And $mpos[1] > 8 And $mpos[1] <= $iY + 8 And _IsPressed("01", "user32.dll") And WinActive($hwnd) Then
    $eq *= -1
    EndIf

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

    #region Func's
    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], $hListView)
    Next
    _GUICtrlListView_SetColumnWidth($hListView, 0, $LVSCW_AUTOSIZE)
    EndFunc ;==>WM_DROPFILES_FUNC

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

    Func AKTUALISIEREN()
    $SLIDERSTATUS = GUICtrlRead($progress_slider)
    GUICtrlSetData($slots, $SLIDERSTATUS)
    EndFunc ;==>AKTUALISIEREN

    [/autoit] [autoit][/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 = $hListView And $CODE = -3 And _GUICtrlListView_GetSelectedCount($hListView) > 0 Then
    For $i = 0 To _GUICtrlListView_GetItemCount($hListView)
    If _GUICtrlListView_GetItemSelected($hListView, $i) Then
    $aItem = _GUICtrlListView_GetItemTextArray($hListView, $i)
    _LEFTDBLCLICK()
    EndIf
    Next
    EndIf
    Return $GUI_RUNDEFMSG
    EndFunc ;==>WM_NOTIFY

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

    Func _LEFTDBLCLICK()
    $titelnummer = 1
    If $playing_state = 1 Then
    _BASS_CHANNELSTOP($MusicHandle)
    EndIf
    $playing_state = -1
    $file = $aItem[2]
    $MusicHandle = _BASS_STREAMCREATEFILE(False, $file, 0, 0, 0)
    _BASS_CHANNELPLAY($MusicHandle, 0)
    $playing_state = 1
    $tags = _BASS_TAGS_READ($MusicHandle, "%TITL" & "-" & "%ARTI")
    If $tags = "" & "-" & "" Then
    _GUICtrlStatusBar_SetText($StatusBar1, "[" & @HOUR & ":" & @MIN & ":" & @SEC & "]" & " Konnte ID3-Tags nicht Lesen!")
    Else
    _GUICtrlStatusBar_SetText($StatusBar1, "[" & @HOUR & ":" & @MIN & ":" & @SEC & "]" & " " & $tags)
    EndIf
    EndFunc ;==>_LEFTDBLCLICK
    Func DISPLAY_VIS($eq = 1)
    _GDIPlus_GraphicsClear($backbuffer, -2131693328)
    If $eq > 0 Then
    $levels = _BASS_CHANNELGETLEVEL($MusicHandle)
    $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($MusicHandle, 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
    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 EXITF()
    _BASS_STOP()
    _BASS_FREE()
    _GDIPlus_PenDispose($pen1)
    _GDIPlus_PenDispose($pen2)
    _GDIPlus_PenDispose($pen3)
    _GDIPlus_BitmapDispose($bitmap)
    _GDIPlus_GraphicsDispose($graphics)
    _GDIPlus_GraphicsDispose($backbuffer)
    _GDIPlus_Shutdown()
    _GDIPlus_Shutdown()
    $fftstruct = 0
    ProcessClose("Radiotuner.exe")
    AdlibUnRegister("Aktualisieren")
    Exit
    EndFunc ;==>EXITF
    Func _LISTVIEWTOARRAY($hListView)
    If Not IsHWnd($hListView) Then $hListView = GUICtrlGetHandle($hListView)
    Local $sString = ""
    For $i = 0 To _GUICtrlListView_GetItemCount($hListView) - 1
    $sString &= _GUICtrlListView_GetItemTextString($hListView, $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
    Return $ARET
    EndFunc ;==>_LISTVIEWTOARRAY
    Func TAGOUT()
    $tags = _BASS_TAGS_READ($MusicHandle, "%TITL" & "-" & "%ARTI")
    If $playing_state = -1 Then
    GUICtrlSetData($TITART, "INR - Localtuner")
    ElseIf $tags = "" & "-" & "" Then
    GUICtrlSetData($TITART, "Konnte ID3-Tags nicht Lesen!")
    Else
    GUICtrlSetData($TITART, $tags)
    EndIf
    EndFunc ;==>TAGOUT
    Func _MOVELISTVIEWITEM()
    Local $VON, $BIS, $DOWN = GUIGetCursorInfo($hwnd)
    If $DOWN[4] = $hListView Then
    $VON = _GUICtrlListView_GetHotItem($hListView)
    While $DOWN[2]
    $DOWN = GUIGetCursorInfo($hwnd)
    Sleep(50)
    WEnd
    If $DOWN[4] = $hListView Then
    $BIS = _GUICtrlListView_GetHotItem($hListView)
    If NOT ($VON = $BIS) Then
    _MOVELVITEM($VON, $BIS - $VON, $hListView)
    _GUICtrlListView_SetItemState($hListView, $BIS, 1, 1)
    EndIf
    EndIf
    EndIf
    EndFunc ;==>_MOVELISTVIEWITEM
    Func _MOVELVITEM($ITEMINDEX, $STEPWIDTH, $HLV)
    IF ($ITEMINDEX + $STEPWIDTH) < 0 OR ($ITEMINDEX + $STEPWIDTH) > _GUICtrlListView_GetItemCount($HLV) - 1 Then
    SetError(1)
    Return 0
    EndIf
    Local $ASKIP = _GUICtrlListView_GetItemTextArray($HLV, $ITEMINDEX)
    If $STEPWIDTH > 0 Then
    _GUICtrlListView_InsertItem($HLV, $ASKIP[1], $ITEMINDEX + $STEPWIDTH + 1)
    _GUICtrlListView_SetItemText($HLV, $ITEMINDEX + $STEPWIDTH + 1, $ASKIP[2], 1)
    _GUICtrlListView_DeleteItem($HLV, $ITEMINDEX)
    Else
    _GUICtrlListView_InsertItem($HLV, $ASKIP[1], $ITEMINDEX + $STEPWIDTH)
    _GUICtrlListView_SetItemText($HLV, $ITEMINDEX + $STEPWIDTH, $ASKIP[2], 1)
    _GUICtrlListView_DeleteItem($HLV, $ITEMINDEX + 1)
    EndIf
    Return -1
    EndFunc ;==>_MOVELVITEM
    Func _PLAY_BUTTON()
    If $playing_state = 2 Then
    _BASS_CHANNELPLAY($MusicHandle, 0)
    $playing_state = 1
    EndIf
    EndFunc ;==>_PLAY_BUTTON
    Func _PAUSE_BUTTON()
    If $playing_state = 1 Then
    _BASS_CHANNELPAUSE($MusicHandle)
    $playing_state = 2
    EndIf
    EndFunc ;==>_PAUSE_BUTTON
    Func _STOP_BUTTON()
    If $playing_state = 1 Then
    _BASS_CHANNELSTOP($MusicHandle)
    $playing_state = -1
    EndIf
    EndFunc ;==>_STOP_BUTTON
    Func _CLOSE_BUTTON()
    EXITF()
    EndFunc ;==>_CLOSE_BUTTON
    Func SAVELV($SFILE)
    Local $HFILEOUT, $aItem
    $HFILEOUT = FileOpen($SFILE, 2)
    For $j = 0 To _GUICtrlListView_GetItemCount($hListView) - 1
    $aItem = _GUICtrlListView_GetItemTextString($hListView, $j)
    FileWriteLine($HFILEOUT, $aItem)
    Next
    FileClose($HFILEOUT)
    EndFunc ;==>SAVELV
    Func LOADLV($SFILE)
    Local $AITEMS
    If FileExists($SFILE) Then
    _FileReadToArray($SFILE, $AITEMS)
    If IsArray($AITEMS) Then
    _GUICtrlListView_DeleteAllItems($hListView)
    For $j = 1 To $AITEMS[0]
    GUICtrlCreateListViewItem($AITEMS[$j], $hListView)
    Next
    EndIf
    EndIf
    EndFunc ;==>LOADLV
    #endregion Func's

    [/autoit]
  • Hallo JuraX,

    teste einmal folgendes:

    [autoit]

    #region ComandLine
    ;_ArrayDisplay($CmdLine)
    If $CmdLine[0] = 1 Then
    $file = $CmdLine[1]
    ;MsgBox(0, "", $CmdLine[1])
    $MusicHandle = _BASS_StreamCreateFile(False, $file, 0, 0, 0)
    _BASS_ChannelPlay($MusicHandle, 0)
    $playing_state = 1
    ElseIf $CmdLine[0] >= 2 Then
    $ARRPLAY = $CmdLine
    $playing_state = 1
    If $titelnummer > $CmdLine[0] + 1 Then $titelnummer = $CmdLine[0] - 1
    $MusicHandle = _BASS_StreamCreateFile(False, $ARRPLAY[$titelnummer + 1], 0, 0, 0)
    _BASS_ChannelPlay($MusicHandle, 0)
    EndIf
    #endregion ComandLine

    [/autoit]

    mfg (Auto)Bert

  • ich hab jetzt mal mit shift+F8 die parameter angegeben.

    Jetzt kommt der fehler:
    C: \ Users \ Public \ INRadio \ INR \ Localtuner.au3 (297): ==> Array variable has incorrect number of subscripts or subscript dimension range exceeded.:

    $MusicHandle = _BASS_StreamCreateFile Music (False, $ ARRPLAY [$ titlelnummer] [1], 0, 0, 0)
    $MusicHandle = _BASS_StreamCreateFile Music (False, ^ ERROR

  • Naja der Fehler ist, dass du auf einen Arrayindex zugreifen willst, der außerhalb der Arraygröße liegt.
    Wahrscheinlich geht schon etwas beim Befüllen des Array über den cmdline-Aufruf schief - schau dir dazu das Array doch mal mit _Arraysdisplay an.
    Wo im Skript kommt das jetzt genau vor? Hab ehrlich gesagt wenig Lust den ganzen INR zu debuggen :whistling:

  • Spoiler anzeigen
    [autoit]

    #include <Bass.au3>
    #include <BassTags.au3>
    #include <GDIPlus.au3>
    #include <_GetFilesFolder_Rekursiv.au3>
    #include <GuiListView.au3>
    #include <Misc.au3>
    #include <File.au3>
    #include <BassConstants.au3>
    #include <WindowsConstants.au3>
    #include <ListViewConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StructureConstants.au3>
    #include <thumbbar.au3>
    #include <GuiStatusBar.au3>
    ;#include <JSound.au3>
    #include <ie.au3>

    [/autoit] [autoit][/autoit] [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 ****

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

    ;===================================================================================================
    ;===================================================================================================
    ; INRadio-Localtuner by JuraX
    ;===================================================================================================
    ;===================================================================================================

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

    ShellExecute(@ScriptDir & "/INR_Updater.exe")
    Global $zahl
    $zahl = 0
    $zahl1 = 20
    $SP = SplashImageOn("INR", "INRadio.jpg", 404, 242)
    Do
    WinSetTrans("INR", "", $zahl1)
    Sleep(80)
    $zahl1 = $zahl1 + 5
    Until $zahl1 = 255

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

    #region StartUp
    Global Const $WM_DROPFILESplay = 0x0233
    Global Const $WM_DROPFILES = 0x0233
    Global Const $abc34 = @Compiled
    Global Const $APPpfad = @AppDataCommonDir & "\INRadio\"
    Global Const $INR_INI = $APPpfad & "\INRadio.ini"
    Global $gaDropFiles[1]
    Global $aItem[2]
    Global $playing_state = -1
    Global $MusicHandle
    Global $titelnummer = 0
    Global $progress_slider, $slots, $hwnd
    Global $fftstruct = DllStructCreate("float[128]")
    Global $song_length = _BASS_ChannelGetLength($MusicHandle, $BASS_POS_BYTE)
    Global $tags
    Global $ARRPLAY
    ;$time = "[" & @HOUR & ":" & @MIN & ":" & @SEC & "]"

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

    #cs
    If @ComputerName == "JULIAN-RECHNER" And @UserName == "Julian" Then
    ElseIf $abc34 = "" Or 0 Then
    MsgBox(266288, "WARNING", "Ihnen ist nach der CC-Lizenz " & @CRLF & "( http://creativecommons.org/licenses/by-nc-nd/3.0/de/)" & @CRLF & " nicht geststtet das programm zu Decompilieren." & @CRLF & "Sie machen sich damit Strafbar!" & @CRLF & "Das Script wird sich nun selbst vernichten!")
    ProcessClose("SciTE.exe")
    FileDelete(@ScriptFullPath)
    Exit
    EndIf
    #ce
    #region OPT
    Opt("TrayMenuMode", 1)
    Opt("MouseCoordMode", 0)
    #endregion OPT

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

    #region Tray
    $uottray = TrayCreateItem("Anzeigen")
    $totray = TrayCreateItem("Verstecken")
    $deleate = TrayCreateItem("Schließen")
    TraySetState()
    #endregion Tray

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

    #region Bass StartUp
    ;_JSound_Startup(@ScriptDir & "\sys\JHelper.dll")
    _BASS_STARTUP(@ScriptDir & "\sys\BASS.dll")
    _Bass_Tags_Startup(@ScriptDir & "\sys\BassTags.dll")
    _BASS_Init(0, -1, 44100, 0, "")
    If @error Then
    SplashOff()
    MsgBox(0, "Error", "Sound konnte nicht Initialisiert werden!")
    Exit
    EndIf
    #endregion Bass StartUp

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

    #region Register
    If IsDeclared("Musichandle") Then
    AdlibRegister("tagout", 3000)
    EndIf
    AdlibRegister("Aktualisieren")
    GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY")
    GUIRegisterMsg($WM_DROPFILES, 'WM_DROPFILES_FUNC')

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

    #endregion Register

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

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

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

    ;===================================================================================================
    #region GUI

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

    _GDIPlus_Startup()

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

    $Width = 380
    $Height = 670
    Global $hwnd = GUICreate("INRadio-Localtuner", $Width + 300, $Height, -1, -1, Default, $WS_EX_ACCEPTFILES)
    $TITART = GUICtrlCreateLabel("", 130, 220, 500, 70)
    $slots = GUICtrlCreateLabel(GUICtrlRead($progress_slider), 8, 8, 150, 17)
    $Close = GUICtrlCreateButton("Close", 296, 160, 75, 25, 0)
    $PlayPause = GUICtrlCreateButton("Play|Pause", 216, 160, 75, 25, 0)
    $Stop = GUICtrlCreateButton("Stop", 136, 160, 75, 25, 0)
    $newfile = GUICtrlCreateButton("Andere Datei", 36, 160, 75, 25, 0)
    $progress_slider = GUICtrlCreateProgress(8, 32, 236, 20)
    $ordner = GUICtrlCreateButton("Neue Bibliothek", 136, 330)
    GUICtrlCreateLabel("Lautstärle", 8, 190, 80, 20)
    $Slider1 = GUICtrlCreateSlider(8, 250, 366, 30)
    $hListView = GUICtrlCreateListView('Dateiname|Pfad', 10, 375, 350, 200)
    GUICtrlSetLimit($progress_slider, 100)
    GUICtrlSetData($Slider1, 50)
    SoundSetWaveVolume(50)
    $soundprogress = GUICtrlCreateProgress(8, 280, 366, 30)
    $Playliste = GUICtrlCreateButton("Playliste abspielen", 20, 330)
    $vor = GUICtrlCreateButton("Vorwärts", 30, 600, 70)
    $saveplayliste = GUICtrlCreateButton("Playliste speichern", 110, 600)
    $loadplayliste = GUICtrlCreateButton("Playliste laden", 205, 600)
    $JS = GUICtrlCreateButton("JSound-Öffnen", 280, 600)
    $rightVol = GUICtrlCreateProgress(8, 88, 236, 17)
    GUICtrlSetLimit(-1, 100, 0)
    GUICtrlCreateLabel("Right Channel Volume Level", 8, 112, 150, 17)
    $LeftVol = 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)
    $StatusBar1 = _GUICtrlStatusBar_Create($hwnd)
    _GUICtrlStatusBar_SetMinHeight($StatusBar1, 25)
    _GUICtrlStatusBar_SetText($StatusBar1, "[" & @HOUR & ":" & @MIN & ":" & @SEC & "]" & " Localtuner.exe gestartet")

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

    $oIE = _IECreateEmbedded()
    GUICtrlCreateObj($oIE, -300, -300, 0, 0)
    $Sender = GUICtrlCreateCombo("", 445, 20, 153, 25)
    GUICtrlSetData(-1, "Antenne Bayern|Rock Antenne|Bayern 3|TechnoBase.FM")
    $playRadio = GUICtrlCreateButton("Play", 465, 60, 121, 25, 0)
    $stopRadio = GUICtrlCreateButton("Stop", 465, 92, 121, 25, 0)
    $credits = GUICtrlCreateButton("Credits", 465, 124, 121, 25, 0)
    $geradegesp = GUICtrlCreateLabel("Gerade gespielt:", 490, 250)
    $geradegespan = GUICtrlCreateLabel("INR By JuraX", 490, 270, 120)

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

    GUISetState(@SW_SHOW)
    SplashOff()
    #region BIB Füllenn

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

    $return = IniRead($APPpfad & "\INRadio.ini", "Load", "BIB", "")
    If $return = "" Then
    $return = 'C:\Users\' & @UserName & '\Desktop'
    $return = 'C:\Users\' & @UserName & '\Desktop'
    EndIf
    $returnputin = _GetFilesFolder_Rekursiv($return, "mp3", 0)
    For $i = 1 To $returnputin[0]
    $dateiname = StringSplit($returnputin[$i], "\")
    GUICtrlCreateListViewItem($dateiname[$dateiname[0]] & "|" & $returnputin[$i], $hListView)
    Next

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

    #endregion BIB Füllenn

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

    #region ThumbBar

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

    GUISetState()

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

    $but1 = _ThumbBar_CreateButton('Play', @ScriptDir & '\Icons\Play.ico', -1, '_Play_Button')
    $but2 = _ThumbBar_CreateButton('Pause', @ScriptDir & '\Icons\Pause.ico', -1, '_Pause_Button')
    $but3 = _ThumbBar_CreateButton('Stop', @ScriptDir & '\Icons\Stop.ico', -1, '_Stop_Button')
    $but4 = _ThumbBar_CreateButton('Close', @ScriptDir & '\Icons\Close.ico', -1, '_Close_Button')
    _ThumbBar_AddButtons($hwnd)
    $oTaskbar = _ThumbBar_GetObj()
    $oTaskbar.SetActiveAlt(Number($hwnd))
    #endregion ThumbBar

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

    #endregion GUI

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

    #region GDIstartup
    ;===================================================================================================
    _GUICtrlListView_SetColumnWidth($hListView, 0, $LVSCW_AUTOSIZE)
    $iX = 120
    $iY = 145
    $graphics = _GDIPlus_GraphicsCreateFromHWND($hwnd)
    $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 GDIstartup

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

    #region ComandLine
    ;_ArrayDisplay($CmdLine)
    If $CmdLine[0] = 1 Then
    $file = $CmdLine[1]
    ;MsgBox(0, "", $CmdLine[1])
    $MusicHandle = _BASS_StreamCreateFile(False, $file, 0, 0, 0)
    _BASS_ChannelPlay($MusicHandle, 0)
    $playing_state = 1
    $tags = _BASS_TAGS_READ($MusicHandle, "%TITL" & "-" & "%ARTI")
    If $tags = "" & "-" & "" Then
    _GUICtrlStatusBar_SetText($StatusBar1, "[" & @HOUR & ":" & @MIN & ":" & @SEC & "]" & " Konnte ID3-Tags nicht Lesen!")
    Else
    _GUICtrlStatusBar_SetText($StatusBar1, "[" & @HOUR & ":" & @MIN & ":" & @SEC & "]" & " " & $tags)
    EndIf
    ElseIf $CmdLine[0] >= 2 Then
    $ARRPLAY = $CmdLine
    $playing_state = 1
    $MusicHandle = _BASS_StreamCreateFile(False, $ARRPLAY[$titelnummer + 1], 0, 0, 0)
    _BASS_ChannelPlay($MusicHandle, 0)
    $tags = _BASS_TAGS_READ($MusicHandle, "%TITL" & "-" & "%ARTI")
    _GUICtrlStatusBar_SetText($StatusBar1, "[" & @HOUR & ":" & @MIN & ":" & @SEC & "]" & "Playliste gestartet")
    EndIf
    #endregion ComandLine

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

    #region Loop

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

    While (True)

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

    $selectcode = _GUICtrlListView_GetSelectedCount($hListView)
    If _IsPressed("2E") Then
    _GUICtrlListView_DeleteItemsSelected($hListView)
    EndIf
    _GUICtrlListView_SetColumnWidth($hListView, 1, 0)
    $soundoff = _SoundGetWaveVolume()
    GUICtrlSetData($soundprogress, $soundoff)
    If $playing_state = 1 Then
    $song_length = _BASS_ChannelGetLength($MusicHandle, $BASS_POS_BYTE)
    $current = _BASS_ChannelGetPosition($MusicHandle, $BASS_POS_BYTE)
    $percent = Round(($current / $song_length) * 100, 0)
    ConsoleWrite("MH: " & $MusicHandle & " Current: " & $current & " song_length: " & $song_length & @CRLF)
    GUICtrlSetData($progress_slider, $percent)
    $levels = _BASS_ChannelGetLevel($MusicHandle)
    $rightChLvl = _LoWord($levels)
    $rightChLvlper = Round(($rightChLvl / 32768) * 100, 0)
    $LeftChLvl = _HiWord($levels)
    $leftChLvlper = Round(($LeftChLvl / 32768) * 100, 0)
    If $current = $song_length Then
    GUICtrlSetData($progress_slider, 0)
    _BASS_ChannelStop($MusicHandle)
    _BASS_ChannelStop($MusicHandle)
    _BASS_ChannelPlay($MusicHandle, 0)
    EndIf
    EndIf
    If IsArray($ARRPLAY) Then
    If $current = $song_length Then
    GUICtrlSetData($progress_slider, 0)
    If $playing_state = 1 Then
    _BASS_ChannelStop($MusicHandle)
    EndIf
    $titelnummer += 1
    If $titelnummer = UBound($ARRPLAY, 1) - 1 Then $titelnummer = 0
    ;If $titelnummer = UBound($ARRPLAY) - 1 Then $titelnummer = 0
    ; Sleep (50)
    $playing_state = 1
    $MusicHandle = _BASS_StreamCreateFile(False, $ARRPLAY[$titelnummer], 0, 0, 0)
    ;$MusicHandle = _BASS_StreamCreateFile(False, $ARRPLAY[$titelnummer][1], 0, 0, 0)
    _BASS_ChannelPlay($MusicHandle, 0)
    EndIf
    Else
    $rightChLvlper = 0
    $leftChLvlper = 0
    EndIf
    GUICtrlSetData($rightVol, $rightChLvlper)
    GUICtrlSetData($LeftVol, $leftChLvlper)
    Display_Vis($eq)

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

    $Msg = GUIGetMsg()
    $tmsg = TrayGetMsg()
    Switch $tmsg

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

    Case $uottray
    GUISetState(@SW_SHOW)
    Case $totray
    GUISetState(@SW_HIDE)
    Case $deleate
    EXITF()
    EndSwitch
    Switch $Msg

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

    Case $Close, $GUI_EVENT_CLOSE
    EXITF()
    Case $PlayPause
    If $playing_state = 1 Then
    _Bass_ChannelPause($MusicHandle)
    $playing_state = 2
    ElseIf $playing_state = 2 Then
    _BASS_ChannelPlay($MusicHandle, 0)
    $playing_state = 1
    EndIf
    If $playing_state = 3 Then
    _IENavigate($oIE, "about:blank")
    $oWMP = ObjCreate("WMPLayer.ocx")
    $oWMP.controls.stop()
    $playing_state = -1
    EndIf
    Case $Stop
    If $playing_state = 1 Then
    _BASS_ChannelStop($MusicHandle)
    $playing_state = -1
    EndIf
    $ARRPLAY = 0
    Sleep(50)
    Case $newfile
    If $playing_state = 1 Then
    _BASS_ChannelStop($MusicHandle)
    EndIf
    $ARRPLAY = 0
    Sleep(50)
    $file = FileOpenDialog("Open...", "", "Musik(*.mp3;*.wav)")
    $MusicHandle = _BASS_StreamCreateFile(False, $file, 0, 0, 0)
    _BASS_ChannelPlay($MusicHandle, 0)
    $playing_state = 1
    Case $ordner
    $var = FileSelectFolder("Ordner w婬en", "")
    IniWrite($APPpfad & "\INRadio.ini", "Load", "BIB", $var)
    $returnputin = _GetFilesFolder_Rekursiv($var, "mp3", 0)
    _GUICtrlListView_DeleteAllItems($hListView)
    For $i = 1 To $returnputin[0]
    $dateiname = StringSplit($returnputin[$i], "\")
    GUICtrlCreateListViewItem($dateiname[$dateiname[0]] & "|" & $returnputin[$i], $hListView)
    Next
    Case $Playliste
    If $playing_state = 1 Then
    _BASS_ChannelStop($MusicHandle)
    EndIf
    $Read = GUICtrlRead($hListView)
    If $Read = "" Then
    $ARRPLAY = _ListViewToArray($hListView)
    $playing_state = 1
    $MusicHandle = _BASS_StreamCreateFile(False, $ARRPLAY[$titelnummer][1], 0, 0, 0)
    _BASS_ChannelPlay($MusicHandle, 0)
    Else
    $Read -= 16
    Local $sString = ""
    For $i = $Read To _GUICtrlListView_GetItemCount($hListView) - 1
    $sString &= _GUICtrlListView_GetItemTextString($hListView, $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
    $ARRPLAY = $anext
    $playing_state = 1
    $MusicHandle = _BASS_StreamCreateFile(False, $anext[$titelnummer][1], 0, 0, 0)
    _BASS_ChannelPlay($MusicHandle, 0)
    EndIf
    _GUICtrlStatusBar_SetText($StatusBar1, "[" & @HOUR & ":" & @MIN & ":" & @SEC & "]" & " Playliste gestartet")
    Case $GUI_EVENT_DROPPED
    For $i = 0 To UBound($gaDropFiles) - 1
    GUICtrlCreateListViewItem(StringRegExpReplace($gaDropFiles[$i], '.*\\(.*)\..*', '$1'), $hListView)
    _GUICtrlListView_SetColumnWidth($hListView, 0, $LVSCW_AUTOSIZE)
    Next
    Case $GUI_EVENT_PRIMARYDOWN
    _MoveListViewItem()
    Case $Slider1
    $NV = GUICtrlRead($Slider1)
    SoundSetWaveVolume($NV)
    Case $vor
    If IsArray($ARRPLAY) Then
    _BASS_ChannelStop($MusicHandle)
    $titelnummer += 1
    If $titelnummer = UBound($ARRPLAY) - 1 Then $titelnummer = 0
    $playing_state = 1
    $MusicHandle = _BASS_StreamCreateFile(False, $ARRPLAY[$titelnummer][1], 0, 0, 0)
    _BASS_ChannelPlay($MusicHandle, 0)
    EndIf
    Case $saveplayliste
    $filedir = FileSaveDialog("Playliste Speichern...", @DocumentsCommonDir, "Playlisten (*.INRP)")
    SaveLV($filedir)
    Case $loadplayliste
    $filedir = FileOpenDialog("Playliste laden...", @DocumentsCommonDir, "Playlisten (*.INRP)")
    LoadLV($filedir)
    Case $JS
    ;$fileopen = FileOpenDialog("JSound öffen...", "", "JSound-Datei (*.JSound)")
    ;$rec = JSound_Get_Files($fileopen)
    ;$returnputin = _GetFilesFolder_Rekursiv($rec, "mp3", 0)
    ;_GUICtrlListView_DeleteAllItems($hListView)
    ;For $i = 1 To $returnputin[0]
    ; $dateiname = StringSplit($returnputin[$i], "\")
    ; GUICtrlCreateListViewItem($dateiname[$dateiname[0]] & "|" & $returnputin[$i], $hListView)
    ;Next
    Case $playRadio
    GUICtrlCreateIcon("inradio.ico", "", 463, 165, 125, 50)
    If $playing_state = 1 Or 2 Then
    _BASS_ChannelStop($MusicHandle)
    ElseIf $playing_state = 3 Then
    _IENavigate($oIE, "about:blank")
    $oWMP = ObjCreate("WMPLayer.ocx")
    $oWMP.controls.stop()
    $playing_state = -1
    EndIf
    If GUICtrlRead($Sender) = "" Then
    MsgBox(0, "Error", "Sie haben kein Radio ausgewählt!")
    ElseIf GUICtrlRead($Sender) = "Antenne Bayern" Then
    $oWMP = ObjCreate("WMPLayer.ocx")
    $oWMP.URL = "http://www.antenne.de/webradio/antenne.wmx"
    $oWMP.controls.play()
    $playing_state = 3
    GUICtrlSetData($geradegespan, "Antenne Bayern")
    ElseIf GUICtrlRead($Sender) = "Bayern 3" Then
    $oWMP = ObjCreate("WMPLayer.ocx")
    $oWMP.URL = "http://streams.br-online.de/bayern3_1.asx"
    $oWMP.controls.play()
    $playing_state = 3
    GUICtrlSetData($geradegespan, "Bayern 3")
    ElseIf GUICtrlRead($Sender) = "Rock Antenne" Then
    $oWMP = ObjCreate("WMPLayer.ocx")
    $oWMP.URL = "http://www.rockantenne.de/webradio/rockantenne.wmx"
    $oWMP.controls.play()
    $playing_state = 3
    GUICtrlSetData($geradegespan, "Rock Antenne")
    ElseIf GUICtrlRead($Sender) = "TechnoBase.FM" Then
    $oWMP = ObjCreate("WMPLayer.ocx")
    $oWMP.URL = "http://listen.technobase.fm/tunein-dsl-asx"
    $oWMP.controls.play()
    $playing_state = 3
    GUICtrlSetData($geradegespan, "Technobase")
    EndIf
    Case $stopRadio
    If $playing_state = 3 Then
    _IENavigate($oIE, "about:blank")
    $oWMP = ObjCreate("WMPLayer.ocx")
    $oWMP.controls.stop()
    EndIf
    $playing_state = -1
    GUICtrlSetData($geradegespan, "INR-Multimediacenter")
    Case $credits
    MsgBox(0, "Credits", "JuraX 2010 ")
    EndSwitch
    WEnd

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

    #endregion Loop
    $mpos = MouseGetPos()
    If $mpos[0] >= $Width - $iX - 10 And $mpos[0] <= $Width - 10 And $mpos[1] > 8 And $mpos[1] <= $iY + 8 And _IsPressed("01", "user32.dll") And WinActive($hwnd) Then
    $eq *= -1
    EndIf

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

    #region Func's
    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], $hListView)
    Next
    _GUICtrlListView_SetColumnWidth($hListView, 0, $LVSCW_AUTOSIZE)
    EndFunc ;==>WM_DROPFILES_FUNC

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

    Func AKTUALISIEREN()
    $SLIDERSTATUS = GUICtrlRead($progress_slider)
    GUICtrlSetData($slots, $SLIDERSTATUS)
    EndFunc ;==>AKTUALISIEREN

    [/autoit] [autoit][/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 = $hListView And $CODE = -3 And _GUICtrlListView_GetSelectedCount($hListView) > 0 Then
    For $i = 0 To _GUICtrlListView_GetItemCount($hListView)
    If _GUICtrlListView_GetItemSelected($hListView, $i) Then
    $aItem = _GUICtrlListView_GetItemTextArray($hListView, $i)
    _LEFTDBLCLICK()
    EndIf
    Next
    EndIf
    Return $GUI_RUNDEFMSG
    EndFunc ;==>WM_NOTIFY

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

    Func _LEFTDBLCLICK()
    $titelnummer = 1
    If $playing_state = 1 Or 2 Then
    _BASS_CHANNELSTOP($MusicHandle)
    ElseIf $playing_state = 3 Then
    _IENavigate($oIE, "about:blank")
    $oWMP = ObjCreate("WMPLayer.ocx")
    $oWMP.controls.stop()
    EndIf
    $playing_state = -1
    $file = $aItem[2]
    $MusicHandle = _BASS_STREAMCREATEFILE(False, $file, 0, 0, 0)
    _BASS_CHANNELPLAY($MusicHandle, 0)
    $playing_state = 1
    $tags = _BASS_TAGS_READ($MusicHandle, "%TITL" & "-" & "%ARTI")
    If $tags = "" & "-" & "" Then
    _GUICtrlStatusBar_SetText($StatusBar1, "[" & @HOUR & ":" & @MIN & ":" & @SEC & "]" & " Konnte ID3-Tags nicht Lesen!")
    Else
    _GUICtrlStatusBar_SetText($StatusBar1, "[" & @HOUR & ":" & @MIN & ":" & @SEC & "]" & " " & $tags)
    EndIf
    EndFunc ;==>_LEFTDBLCLICK
    Func DISPLAY_VIS($eq = 1)
    _GDIPlus_GraphicsClear($backbuffer, -2131693328)
    If $eq > 0 Then
    $levels = _BASS_CHANNELGETLEVEL($MusicHandle)
    $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($MusicHandle, 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
    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 EXITF()
    _BASS_STOP()
    _BASS_FREE()
    _GDIPlus_PenDispose($pen1)
    _GDIPlus_PenDispose($pen2)
    _GDIPlus_PenDispose($pen3)
    _GDIPlus_BitmapDispose($bitmap)
    _GDIPlus_GraphicsDispose($graphics)
    _GDIPlus_GraphicsDispose($backbuffer)
    _GDIPlus_Shutdown()
    _GDIPlus_Shutdown()
    $fftstruct = 0
    ProcessClose("Radiotuner.exe")
    AdlibUnRegister("Aktualisieren")
    Exit
    EndFunc ;==>EXITF
    Func _LISTVIEWTOARRAY($hListView)
    If Not IsHWnd($hListView) Then $hListView = GUICtrlGetHandle($hListView)
    Local $sString = ""
    For $i = 0 To _GUICtrlListView_GetItemCount($hListView) - 1
    $sString &= _GUICtrlListView_GetItemTextString($hListView, $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
    Return $ARET
    EndFunc ;==>_LISTVIEWTOARRAY
    Func TAGOUT()
    $tags = _BASS_TAGS_READ($MusicHandle, "%TITL" & "-" & "%ARTI")
    If $playing_state = -1 Then
    GUICtrlSetData($TITART, "INR - Localtuner")
    ElseIf $tags = "" & "-" & "" Then
    GUICtrlSetData($TITART, "Konnte ID3-Tags nicht Lesen!")
    Else
    GUICtrlSetData($TITART, $tags)
    EndIf
    EndFunc ;==>TAGOUT
    Func _MOVELISTVIEWITEM()
    Local $VON, $BIS, $DOWN = GUIGetCursorInfo($hwnd)
    If $DOWN[4] = $hListView Then
    $VON = _GUICtrlListView_GetHotItem($hListView)
    While $DOWN[2]
    $DOWN = GUIGetCursorInfo($hwnd)
    Sleep(50)
    WEnd
    If $DOWN[4] = $hListView Then
    $BIS = _GUICtrlListView_GetHotItem($hListView)
    If NOT ($VON = $BIS) Then
    _MOVELVITEM($VON, $BIS - $VON, $hListView)
    _GUICtrlListView_SetItemState($hListView, $BIS, 1, 1)
    EndIf
    EndIf
    EndIf
    EndFunc ;==>_MOVELISTVIEWITEM
    Func _MOVELVITEM($ITEMINDEX, $STEPWIDTH, $HLV)
    IF ($ITEMINDEX + $STEPWIDTH) < 0 OR ($ITEMINDEX + $STEPWIDTH) > _GUICtrlListView_GetItemCount($HLV) - 1 Then
    SetError(1)
    Return 0
    EndIf
    Local $ASKIP = _GUICtrlListView_GetItemTextArray($HLV, $ITEMINDEX)
    If $STEPWIDTH > 0 Then
    _GUICtrlListView_InsertItem($HLV, $ASKIP[1], $ITEMINDEX + $STEPWIDTH + 1)
    _GUICtrlListView_SetItemText($HLV, $ITEMINDEX + $STEPWIDTH + 1, $ASKIP[2], 1)
    _GUICtrlListView_DeleteItem($HLV, $ITEMINDEX)
    Else
    _GUICtrlListView_InsertItem($HLV, $ASKIP[1], $ITEMINDEX + $STEPWIDTH)
    _GUICtrlListView_SetItemText($HLV, $ITEMINDEX + $STEPWIDTH, $ASKIP[2], 1)
    _GUICtrlListView_DeleteItem($HLV, $ITEMINDEX + 1)
    EndIf
    Return -1
    EndFunc ;==>_MOVELVITEM
    Func _PLAY_BUTTON()
    If $playing_state = 2 Then
    _BASS_CHANNELPLAY($MusicHandle, 0)
    $playing_state = 1
    ElseIf $playing_state = 3 Then
    _IENavigate($oIE, "about:blank")
    $oWMP = ObjCreate("WMPLayer.ocx")
    $oWMP.controls.stop()
    EndIf
    EndFunc ;==>_PLAY_BUTTON
    Func _PAUSE_BUTTON()
    If $playing_state = 1 Then
    _BASS_CHANNELPAUSE($MusicHandle)
    $playing_state = 2
    EndIf
    EndFunc ;==>_PAUSE_BUTTON
    Func _STOP_BUTTON()
    If $playing_state = 1 Then
    _BASS_CHANNELSTOP($MusicHandle)
    $playing_state = -1
    EndIf
    EndFunc ;==>_STOP_BUTTON
    Func _CLOSE_BUTTON()
    EXITF()
    EndFunc ;==>_CLOSE_BUTTON
    Func SAVELV($SFILE)
    Local $HFILEOUT, $aItem
    $HFILEOUT = FileOpen($SFILE, 2)
    For $j = 0 To _GUICtrlListView_GetItemCount($hListView) - 1
    $aItem = _GUICtrlListView_GetItemTextString($hListView, $j)
    FileWriteLine($HFILEOUT, $aItem)
    Next
    FileClose($HFILEOUT)
    EndFunc ;==>SAVELV
    Func LOADLV($SFILE)
    Local $AITEMS
    If FileExists($SFILE) Then
    _FileReadToArray($SFILE, $AITEMS)
    If IsArray($AITEMS) Then
    _GUICtrlListView_DeleteAllItems($hListView)
    For $j = 1 To $AITEMS[0]
    GUICtrlCreateListViewItem($AITEMS[$j], $hListView)
    Next
    EndIf
    EndIf
    EndFunc ;==>LOADLV
    #endregion Func's

    [/autoit]

    Das script hängt sich auf kein au3 fehler nur Windowsstandardfehler

  • In deinem Script verwendest du zuerst $CmdLine als Array danach machst du mit

    [autoit]

    $ARRPLAY = $CmdLine

    [/autoit]

    aus $ARRPLAY kein Array sondern eine Stringvariable, deshalb müsste dies so gelöst werden das du entweder $ARRPLAY durch $CmdLine [$titelnummer] ersetzt oder

    [autoit]

    $ARRPLAY[0] = $CmdLine[0]

    [/autoit]

    angibst.
    damit AutoIt mitkriegt das es sich bei beiden um ein Array handelt.

    Als Aufruf fang dein $CmdLine mit

    [autoit]

    If not IsArray ($CmdLine) then msgbox(0,"Fehler","$CmdLine ist kein Array")

    [/autoit]


    Gruß
    Stinger :thumbup:

    Spoiler anzeigen
    Zitat

    Ich weiß wo dein Haus wohnt... 8o

    • Offizieller Beitrag

    In deinem Script verwendest du zuerst $CmdLine als Array danach machst du mit

    [autoit]

    $ARRPLAY = $CmdLine

    [/autoit]

    aus $ARRPLAY kein Array sondern eine Stringvariable, deshalb müsste dies so gelöst werden das du entweder $ARRPLAY durch $CmdLine [$titelnummer] ersetzt oder

    [autoit]

    $ARRPLAY[0] = $CmdLine[0]

    [/autoit]

    angibst.
    damit AutoIt mitkriegt das es sich bei beiden um ein Array handelt.

    stinger2k : Absoluter Kokolores, umgekehr wird ein Array draus.

    Edit: Mit

    [autoit]

    $ARRPLAY = $CmdLine

    [/autoit]


    Wird das Array $CmdLine, sofern es ein Array ist ins Array $ARRPLAY kopiert.
    Mit

    [autoit]

    $ARRPLAY[0] = $CmdLine[0]

    [/autoit]


    Wird das Elemet 0 des $CmdLine Array ins 0. Elemet von $ARRPLAY kopiert.

  • comandline ist ein parameter:
    aus der hilfe: