forked from hkc/cc-stuff
48 lines
844 B
Lua
48 lines
844 B
Lua
local args = { ... }
|
|
|
|
local dfpwm = require("cc.audio.dfpwm")
|
|
local buffer_size = 8192
|
|
|
|
if not http then
|
|
print("no http, check config")
|
|
return
|
|
end
|
|
|
|
local speaker = peripheral.find("speaker")
|
|
|
|
if not speaker then
|
|
print("no speaker")
|
|
return
|
|
end
|
|
|
|
local req, err = http.get(args[1], {}, true)
|
|
if not req then
|
|
print("failed to perform HTTP request")
|
|
print(err)
|
|
return
|
|
end
|
|
|
|
local buffer = { }
|
|
for i = 1, buffer_size do
|
|
buffer[i] = 0
|
|
end
|
|
|
|
local decode = dfpwm.make_decoder()
|
|
while true do
|
|
local chunk = req.read(buffer_size)
|
|
if not chunk then
|
|
break
|
|
end
|
|
|
|
--local buffer = {}
|
|
--for i = 1, #chunk do
|
|
-- buffer[i] = string.byte(chunk, i) - 128
|
|
--end
|
|
|
|
local buffer = decode(chunk)
|
|
|
|
while not speaker.playAudio(buffer) do
|
|
os.pullEvent("speaker_audio_empty")
|
|
end
|
|
end
|