From c76e8c96773a9f278875641ffaa29edded1e7667 Mon Sep 17 00:00:00 2001 From: itzmarkoni Date: Mon, 16 Jun 2025 20:27:40 -0400 Subject: [PATCH] updated --- speaker_driver.lua | 42 +++++++----------------------------------- 1 file changed, 7 insertions(+), 35 deletions(-) diff --git a/speaker_driver.lua b/speaker_driver.lua index 3214c8c..3346beb 100644 --- a/speaker_driver.lua +++ b/speaker_driver.lua @@ -17,58 +17,30 @@ local function randomFileName() return name end --- local function playSound(speaker, fileName) --- local fileStream = getFileName(fileName) --- local values = io.lines(fileStream, 16 * 1024) --- for input in values do --- print("playing audo....") --- local decoded = decoder(input) - - --- while not speaker.playAudio(decoded, 3) do --- os.pullEvent("speaker_audio_empty") --- end --- end --- end - -local function playFullFile(speaker, fileName) - local decoder = require("cc.audio.dfpwm").make_decoder() - local file = fs.open(fileName, "rb") - - if not file then - print("Failed to open file: " .. fileName) - return - end - - while true do - local chunk = file.read(16 * 1024) - if not chunk then break end - - local decoded = decoder(chunk) +local function playFullFile(fileName) + local fileStream = getFileName(fileName) + local values = io.lines(fileStream, 16 * 1024) + for input in values do + print("playing audo....") + local decoded = decoder(input) while not speaker.playAudio(decoded, 3) do os.pullEvent("speaker_audio_empty") end end - - file.close() end -local function playSound(placeholder,fileName) +local function playSound(speaker, fileName) local speakers = table.pack(peripheral.find("speaker")) local tasks = {} - for i = 1, speakers.n do tasks[i] = function() playFullFile(speakers[i], fileName) end end - parallel.waitForAll(table.unpack(tasks, 1, speakers.n)) end - - local function playControlRoomAlarm(speakers) playSound(speakers,"short_control_alarm") end