A few fixes to IPC

This commit is contained in:
visionmercer 2026-06-23 12:10:10 +02:00
commit 19701af4ec

View file

@ -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,20 +37,37 @@ if ipc_status = 0 then
' --- CLIENT MODE ---
dim cmd_msg as string
if command$(1) = "--next" then
Select Case command$(1)
Case "--next"
cmd_msg = "NEXT"
elseif command$(1) = "--prev" then
Case "--prev"
cmd_msg = "PREV"
elseif command$(1) = "-v" or command$(1) = "--volume" then
Case "-v", "--volume"
cmd_msg = "VOL:" + command$(2)
elseif command$(1) = "--add" then
cmd_msg = "ADD:" + get_abs_path(command$(2))
elseif command$(1) = "--playlist" then
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"
else
Case Else
' Default behavior: Resolve target file/playlist and replace active queue
cmd_msg = "PLAY:" + get_abs_path(command$(1))
end if
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,8 @@ 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))
print new_file
if _fileexists(new_file) then
if lcase$(right$(new_file, 4)) = ".m3u" then
parsem3u new_file, file()
@ -355,7 +375,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 +383,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