- Fix pop logic
- Retrieve data onlye when triggered - Show message when thread is dead - Push timer to thread
This commit is contained in:
@@ -70,7 +70,12 @@ local getCHN=love.thread.getChannel('CLIP_get')
|
|||||||
local setCHN=love.thread.getChannel('CLIP_set')
|
local setCHN=love.thread.getChannel('CLIP_set')
|
||||||
local trigCHN=love.thread.getChannel('CLIP_trig')
|
local trigCHN=love.thread.getChannel('CLIP_trig')
|
||||||
|
|
||||||
love.thread.newThread('Zframework/clipboard_thread.lua'):start()
|
local clipboard_thread=love.thread.newThread('Zframework/clipboard_thread.lua')
|
||||||
|
local isStarted,errorMessage=clipboard_thread:start()
|
||||||
|
|
||||||
|
if not isStarted then
|
||||||
|
MES.new("error",errorMessage,26)
|
||||||
|
end
|
||||||
|
|
||||||
local freshInterval=1
|
local freshInterval=1
|
||||||
local timer=0
|
local timer=0
|
||||||
@@ -83,8 +88,12 @@ return {
|
|||||||
_update=function(dt)
|
_update=function(dt)
|
||||||
timer=timer+dt
|
timer=timer+dt
|
||||||
if timer>freshInterval then
|
if timer>freshInterval then
|
||||||
|
if isStarted and not clipboard_thread:isRunning() then
|
||||||
|
MES.new("warn",clipboard_thread:getError(),26)
|
||||||
|
isStarted=false
|
||||||
|
end
|
||||||
|
trigCHN:push(timer)
|
||||||
timer=0
|
timer=0
|
||||||
trigCHN:push(0)
|
|
||||||
end
|
end
|
||||||
end,
|
end,
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,14 +3,14 @@ local setCHN=love.thread.getChannel('CLIP_set')
|
|||||||
local trigCHN=love.thread.getChannel('CLIP_trig')
|
local trigCHN=love.thread.getChannel('CLIP_trig')
|
||||||
|
|
||||||
JS=require'Zframework.js'
|
JS=require'Zframework.js'
|
||||||
love.timer=require'love.timer'
|
local sleep=require'love.timer'.sleep
|
||||||
|
|
||||||
local retrieving=false
|
local retrieving=false
|
||||||
while true do
|
while true do
|
||||||
if trigCHN:getCount()>0 then
|
if trigCHN:getCount()>0 then
|
||||||
trigCHN:pop()
|
local dt = trigCHN:pop()
|
||||||
if setCHN:getCount()>0 then
|
if setCHN:getCount()>0 then
|
||||||
repeat setCHN:pop() until setCHN:getCount()==1
|
while setCHN:getCount()>1 do setCHN:pop() end
|
||||||
-- Set Clipboard
|
-- Set Clipboard
|
||||||
JS.callJS(JS.stringFunc(
|
JS.callJS(JS.stringFunc(
|
||||||
[[
|
[[
|
||||||
@@ -32,19 +32,17 @@ while true do
|
|||||||
.catch((e)=>{});
|
.catch((e)=>{});
|
||||||
]],
|
]],
|
||||||
function(data)
|
function(data)
|
||||||
while getCHN:getCount()>0 do print('getCHN count:', getCHN:getCount()); getCHN:pop() end
|
while getCHN:getCount()>0 do getCHN:pop() end
|
||||||
print('Clipboard:', data)
|
|
||||||
getCHN:push(data)
|
getCHN:push(data)
|
||||||
print('Pushed clipboard data')
|
|
||||||
retrieving=false
|
retrieving=false
|
||||||
end,
|
end,
|
||||||
function(id,error) print(id, error) end,
|
function() retrieving=false end,
|
||||||
2,
|
1,
|
||||||
'getClipboardText'
|
'getClipboardText'
|
||||||
)
|
)
|
||||||
retrieving=true
|
retrieving=true
|
||||||
end
|
end
|
||||||
JS.retrieveData(.0626)
|
JS.retrieveData(dt)
|
||||||
end
|
end
|
||||||
love.timer.sleep(.0626)
|
sleep(.001)
|
||||||
end
|
end
|
||||||
|
|||||||
Reference in New Issue
Block a user