diff --git a/cimp.bas b/cimp.bas index 8d0ee67..3b60a71 100644 --- a/cimp.bas +++ b/cimp.bas @@ -16,12 +16,15 @@ const key_up=1001 const key_down=1002 const key_right=1003 const key_left=1004 - +dim slash as string +slash="/" $if win then shell"chcp 65001 > nul" +slash="\" $end if redim file(0) as string +chdir _startdir$ if command$=""then print"please specify file to play." goto quit @@ -34,21 +37,38 @@ if ipc_status = 0 then ' --- CLIENT MODE --- dim cmd_msg as string - if command$(1) = "--next" then - cmd_msg = "NEXT" - elseif command$(1) = "--prev" then - cmd_msg = "PREV" - elseif command$(1) = "-v" or command$(1) = "--volume" then - cmd_msg = "VOL:" + command$(2) - elseif command$(1) = "--add" then - cmd_msg = "ADD:" + get_abs_path(command$(2)) - elseif command$(1) = "--playlist" then - cmd_msg = "GET_PLAYLIST" - else - ' Default behavior: Resolve target file/playlist and replace active queue - cmd_msg = "PLAY:" + get_abs_path(command$(1)) - end if + Select Case command$(1) + Case "--next" + cmd_msg = "NEXT" + Case "--prev" + cmd_msg = "PREV" + + Case "-v", "--volume" + cmd_msg = "VOL:" + command$(2) + + Case "--add" + For i = 2 To _commandcount + cmd_msg = "ADD:" + _cwd$ + slash + command$(i) + ipc_send_message cmd_msg + Next i + System + + Case "--playlist" + cmd_msg = "GET_PLAYLIST" + + Case Else + ' Default behavior: Resolve target file/playlist and replace active queue + cmd_msg = "PLAY:" + _cwd$ + slash + command$(1) + If _commandcount > 1 Then + For i = 2 To _commandcount + cmd_msg = "ADD:" + _cwd$ + slash + command$(i) + ipc_send_message cmd_msg + Next i + System + End If + End Select + ' Send instruction to the main player instance ipc_send_message cmd_msg @@ -88,7 +108,6 @@ end if echooff cursoroff -chdir _startdir$ dim volume as single dim repeat as integer @@ -344,7 +363,7 @@ while keyin<>27 _sndvol musichandle, volume elseif left$(client_cmd, 4) = "ADD:" then dim new_file as string - new_file = mid$(client_cmd, 5) + new_file = _trim$(mid$(client_cmd, 5)) if _fileexists(new_file) then if lcase$(right$(new_file, 4)) = ".m3u" then parsem3u new_file, file() @@ -355,7 +374,7 @@ while keyin<>27 end if elseif left$(client_cmd, 5) = "PLAY:" then dim replace_file as string - replace_file = mid$(client_cmd, 6) + replace_file = _trim$(mid$(client_cmd, 6)) if _fileexists(replace_file) then redim file(0) as string if lcase$(right$(replace_file, 4)) = ".m3u" then @@ -363,7 +382,7 @@ while keyin<>27 else file(0) = replace_file end if - i = 0 + i = -1 playnext = 1 end if elseif client_cmd = "GET_PLAYLIST" then